Mercurial > pub > buggler
comparison bug-list.xsl @ 10:14a966369278
working version of exporting bugs from bugzilla in tj3 format (without bookings)
| author | cin |
|---|---|
| date | Mon, 07 Sep 2015 01:37:11 +0300 |
| parents | 2a5f38eb25a9 |
| children | 4eb9fdf4efa9 |
comparison
equal
deleted
inserted
replaced
| 9:cc7244ab1b9f | 10:14a966369278 |
|---|---|
| 20 <xsl:variable name="resources" | 20 <xsl:variable name="resources" |
| 21 select="document('resources.xml')/resources/resource" /> | 21 select="document('resources.xml')/resources/resource" /> |
| 22 | 22 |
| 23 <xsl:variable name="bugs" select="/bugzilla/bug" /> | 23 <xsl:variable name="bugs" select="/bugzilla/bug" /> |
| 24 | 24 |
| 25 <xsl:key name="bugid" match="/bugzilla/bug" use="string(bug_id)" /> | 25 <xsl:key name="bugid" match="/bugzilla/bug" use="string(id)" /> |
| 26 | 26 |
| 27 <xsl:variable name="roots" select="$bugs[not(blocked[key('bugid',.)])]" /> | 27 <xsl:variable name="roots" select="$bugs[not(blocks[key('bugid',.)])]" /> |
| 28 | 28 |
| 29 <!-- BUILD BUG TREE --> | 29 <!-- BUILD BUG TREE --> |
| 30 <xsl:variable name="tree"> | 30 <xsl:variable name="tree"> |
| 31 <xsl:apply-templates mode="tree" select="$roots" /> | 31 <xsl:apply-templates mode="tree" select="$roots" /> |
| 32 </xsl:variable> | 32 </xsl:variable> |
| 33 | 33 |
| 34 <xsl:template match="bug" mode="tree"> | 34 <xsl:template match="bug" mode="tree"> |
| 35 <xsl:element name="bug"> | 35 <xsl:element name="bug"> |
| 36 <xsl:attribute name="id"><xsl:value-of select="bug_id" /></xsl:attribute> | 36 <xsl:attribute name="id"><xsl:value-of select="id" /></xsl:attribute> |
| 37 <xsl:if test="component = 'product' or not(number(estimated_time))"> | 37 <xsl:if test="component = 'product' or not(number(estimated_time))"> |
| 38 <xsl:attribute name="group"><xsl:value-of select="boolean(1)" /></xsl:attribute> | 38 <xsl:attribute name="group"><xsl:value-of select="boolean(1)" /></xsl:attribute> |
| 39 </xsl:if> | 39 </xsl:if> |
| 40 <xsl:for-each select="dependson"> | 40 <xsl:for-each select="depends_on"> |
| 41 <xsl:apply-templates mode="tree" select="key('bugid', .)" /> | 41 <xsl:apply-templates mode="tree" select="key('bugid', .)" /> |
| 42 </xsl:for-each> | 42 </xsl:for-each> |
| 43 </xsl:element> | 43 </xsl:element> |
| 44 </xsl:template> | 44 </xsl:template> |
| 45 | 45 |
| 47 <xsl:variable name="relations"> | 47 <xsl:variable name="relations"> |
| 48 <xsl:apply-templates select="$bugs" mode="relations" /> | 48 <xsl:apply-templates select="$bugs" mode="relations" /> |
| 49 </xsl:variable> | 49 </xsl:variable> |
| 50 | 50 |
| 51 <xsl:template match="bug" mode="relations"> | 51 <xsl:template match="bug" mode="relations"> |
| 52 <xsl:variable name="bugid" select="string(bug_id)" /> | 52 <xsl:variable name="bugid" select="string(id)" /> |
| 53 <bug id="{$bugid}"> | 53 <bug id="{$bugid}"> |
| 54 <!-- calculate all palaces where the same node appears --> | 54 <!-- calculate all palaces where the same node appears --> |
| 55 <xsl:apply-templates select="exsl:node-set($tree)//bug[@id = $bugid]" | 55 <xsl:apply-templates select="exsl:node-set($tree)//bug[@id = $bugid]" |
| 56 mode="traverse-relations"> | 56 mode="traverse-relations"> |
| 57 </xsl:apply-templates> | 57 </xsl:apply-templates> |
| 104 </xsl:choose> | 104 </xsl:choose> |
| 105 </xsl:variable> | 105 </xsl:variable> |
| 106 | 106 |
| 107 <!-- applied in context of the bugzilla document --> | 107 <!-- applied in context of the bugzilla document --> |
| 108 <xsl:template match="bug" mode="structure"> | 108 <xsl:template match="bug" mode="structure"> |
| 109 <xsl:variable name="id" select="string(bug_id)" /> | 109 <xsl:variable name="id" select="string(id)" /> |
| 110 <xsl:variable name="self" select="." /> | 110 <xsl:variable name="self" select="." /> |
| 111 <xsl:variable name="children" | 111 <xsl:variable name="children" |
| 112 select="exsl:node-set($parents)/bug[@parent = $id]" /> | 112 select="exsl:node-set($parents)/bug[@parent = $id]" /> |
| 113 <xsl:element name="bug"> | 113 <xsl:element name="bug"> |
| 114 <xsl:attribute name="id"><xsl:value-of select="$id" /></xsl:attribute> | 114 <xsl:attribute name="id"><xsl:value-of select="$id" /></xsl:attribute> |
| 115 <xsl:attribute name="desc"><xsl:value-of select="short_desc" /></xsl:attribute> | 115 <xsl:attribute name="desc"><xsl:value-of select="summary" /></xsl:attribute> |
| 116 | 116 |
| 117 <xsl:if test="$children"> | 117 <xsl:if test="$children"> |
| 118 <xsl:attribute name="group"><xsl:value-of select="boolean($children)" /></xsl:attribute> | 118 <xsl:attribute name="group"><xsl:value-of select="boolean($children)" /></xsl:attribute> |
| 119 | 119 |
| 120 <xsl:for-each select="$children"> | 120 <xsl:for-each select="$children"> |
| 121 <xsl:variable name="child" select="@id" /> | 121 <xsl:variable name="child" select="@id" /> |
| 122 <xsl:apply-templates select="$bugs[bug_id = $child]" | 122 <xsl:apply-templates select="$bugs[id = $child]" |
| 123 mode="structure" /> | 123 mode="structure" /> |
| 124 </xsl:for-each> | 124 </xsl:for-each> |
| 125 | 125 |
| 126 </xsl:if> | 126 </xsl:if> |
| 127 | 127 |
| 128 <!-- filter out dependencies --> | 128 <!-- filter out dependencies --> |
| 129 <!-- exclude children, and missing bugs --> | 129 <!-- exclude children, and missing bugs --> |
| 130 <xsl:variable name="dependencies" | 130 <xsl:variable name="dependencies" |
| 131 select="dependson[not(text() = exsl:node-set($parents)/bug/parent[@id=$id]/@bugid)][key('bugid', .)]" /> | 131 select="depends_on[not(text() = exsl:node-set($parents)/bug/parent[@id=$id]/@bugid)][key('bugid', .)]" /> |
| 132 <xsl:for-each select="$dependencies"> | 132 <xsl:for-each select="$dependencies"> |
| 133 <dependency id="{.}" /> | 133 <dependency id="{.}" /> |
| 134 </xsl:for-each> | 134 </xsl:for-each> |
| 135 </xsl:element> | 135 </xsl:element> |
| 136 </xsl:template> | 136 </xsl:template> |
| 145 | 145 |
| 146 <xsl:template match="bug"> | 146 <xsl:template match="bug"> |
| 147 <xsl:param name="indent" select="0" /> | 147 <xsl:param name="indent" select="0" /> |
| 148 <xsl:param name="chargeset" /> | 148 <xsl:param name="chargeset" /> |
| 149 <xsl:variable name="id" select="@id" /> | 149 <xsl:variable name="id" select="@id" /> |
| 150 <xsl:variable name="details" select="$bugs[bug_id = $id]" /> | 150 <xsl:variable name="details" select="$bugs[id = $id]" /> |
| 151 <xsl:variable name="hasTime" | 151 <xsl:variable name="hasTime" |
| 152 select="number($details/estimated_time) or number($details/actual_time) or number($details/remaining_time)" /> | 152 select="number($details/estimated_time) or number($details/actual_time) or number($details/remaining_time)" /> |
| 153 | 153 |
| 154 <!-- task header --> | 154 <!-- task header --> |
| 155 <xsl:call-template name="start-task"> | 155 <xsl:call-template name="start-task"> |
