0
|
1 <?xml version="1.0" encoding="UTF-8"?>
|
|
2 <xsl:stylesheet version="1.0"
|
|
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
4 <xsl:output method="text" />
|
|
5 <xsl:key name="bugs-key" match="bug" use="bug_id" />
|
|
6 <xsl:variable name="roots" select="bugzilla/bug[not(blocked[key('bugs-key',.)])]"/>
|
|
7
|
|
8 <xsl:template match="/">
|
|
9 <xsl:apply-templates select="$roots"/>
|
|
10 </xsl:template>
|
|
11
|
|
12 <xsl:template match="bug">
|
|
13 <xsl:call-template name="bug-template" />
|
|
14 </xsl:template>
|
|
15
|
|
16 <xsl:template match="text()" />
|
|
17
|
|
18 <xsl:template name="bug-template">
|
|
19 <xsl:param name="indent" select="0" />
|
|
20 <xsl:variable name="isOrganizing" select="component = 'product'"></xsl:variable>
|
|
21
|
|
22 <xsl:call-template name="start-task">
|
|
23 <xsl:with-param name="indent" select="$indent" />
|
|
24 </xsl:call-template>
|
|
25
|
|
26 <xsl:if test="$isOrganizing">
|
|
27
|
|
28 </xsl:if>
|
|
29
|
|
30 <xsl:choose>
|
|
31 <xsl:when test="$isOrganizing">
|
|
32 <xsl:for-each select="dependson">
|
|
33 <xsl:for-each select="key('bugs-key', .)">
|
|
34 <xsl:call-template name="bug-template">
|
|
35 <xsl:with-param name="indent" select="$indent + 1" />
|
|
36 </xsl:call-template>
|
|
37 </xsl:for-each>
|
|
38 </xsl:for-each>
|
|
39 </xsl:when>
|
|
40 <xsl:otherwise>
|
|
41 <xsl:if test="number(estimated_time)">
|
|
42 <xsl:call-template name="begin-line">
|
|
43 <xsl:with-param name="indent" select="$indent + 1" />
|
|
44 </xsl:call-template>
|
|
45 <xsl:value-of select="concat('effort ', estimated_time, 'h')" />
|
|
46 <xsl:call-template name="end-line" />
|
|
47 </xsl:if>
|
|
48 </xsl:otherwise>
|
|
49 </xsl:choose>
|
|
50
|
|
51 <xsl:call-template name="end-task">
|
|
52 <xsl:with-param name="indent" select="$indent" />
|
|
53 </xsl:call-template>
|
|
54 </xsl:template>
|
|
55
|
|
56 <xsl:template name="make-bug-id">
|
|
57 <xsl:param name="id"></xsl:param>
|
|
58 <xsl:value-of select="concat('bug', $id)"></xsl:value-of>
|
|
59 </xsl:template>
|
|
60
|
|
61 <xsl:template name="start-task">
|
|
62 <xsl:param name="indent" />
|
|
63 <xsl:call-template name="begin-line">
|
|
64 <xsl:with-param name="indent" select="$indent" />
|
|
65 </xsl:call-template>
|
|
66 <xsl:text>task </xsl:text>
|
|
67 <xsl:call-template name="make-bug-id">
|
|
68 <xsl:with-param name="id" select="bug_id" />
|
|
69 </xsl:call-template>
|
|
70 <xsl:value-of select="concat(' "',short_desc,'" {')" />
|
|
71 <xsl:call-template name="end-line" />
|
|
72 </xsl:template>
|
|
73
|
|
74 <xsl:template name="end-task">
|
|
75 <xsl:param name="indent" />
|
|
76 <xsl:call-template name="begin-line">
|
|
77 <xsl:with-param name="indent" select="$indent" />
|
|
78 </xsl:call-template>
|
|
79 <xsl:text>}</xsl:text>
|
|
80 <xsl:call-template name="end-line" />
|
|
81 </xsl:template>
|
|
82
|
|
83 <xsl:template name="begin-line">
|
|
84 <xsl:param name="indent" />
|
|
85 <xsl:if test="number($indent) > 0">
|
|
86 <xsl:text> </xsl:text>
|
|
87 <xsl:call-template name="begin-line">
|
|
88 <xsl:with-param name="indent" select="$indent - 1" />
|
|
89 </xsl:call-template>
|
|
90 </xsl:if>
|
|
91 </xsl:template>
|
|
92 <xsl:template name="end-line">
|
|
93 <xsl:text>
</xsl:text>
|
|
94 </xsl:template>
|
|
95 </xsl:stylesheet> |