Multi cylinder support for CSV export

Fixes #2830

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
This commit is contained in:
Miika Turkia 2020-05-18 18:29:37 +03:00 committed by Dirk Hohndel
parent 19cdab52b3
commit 889f36a57c

View file

@ -38,6 +38,7 @@
$fs)"/> $fs)"/>
<!-- Print cylinder info according to the amount of cylinders in dive --> <!-- Print cylinder info according to the amount of cylinders in dive -->
<xsl:for-each select="dive/cylinder">
<xsl:value-of select="concat( <xsl:value-of select="concat(
'&quot;cylinder size (cuft)&quot;', '&quot;cylinder size (cuft)&quot;',
$fs, $fs,
@ -49,6 +50,7 @@
$fs, $fs,
'&quot;he (%)&quot;', '&quot;he (%)&quot;',
$fs)"/> $fs)"/>
</xsl:for-each>
<!-- Print rest of the header --> <!-- Print rest of the header -->
<xsl:value-of select="concat( <xsl:value-of select="concat(
@ -98,6 +100,7 @@
$fs)"/> $fs)"/>
<!-- Print cylinder info according to the amount of cylinders in dive --> <!-- Print cylinder info according to the amount of cylinders in dive -->
<xsl:for-each select="dive/cylinder">
<xsl:value-of select="concat( <xsl:value-of select="concat(
'&quot;cylinder size (l)&quot;', '&quot;cylinder size (l)&quot;',
$fs, $fs,
@ -109,6 +112,7 @@
$fs, $fs,
'&quot;he (%)&quot;', '&quot;he (%)&quot;',
$fs)"/> $fs)"/>
</xsl:for-each>
<!-- Print rest of the header --> <!-- Print rest of the header -->
<xsl:value-of select="concat( <xsl:value-of select="concat(
@ -225,19 +229,20 @@
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:for-each select="cylinder">
<xsl:choose> <xsl:choose>
<xsl:when test="cylinder[1]/@start|cylinder[1]/@end != ''"> <xsl:when test="@start|@end != ''">
<xsl:apply-templates select="cylinder[1]"/> <xsl:apply-templates select="."/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="$fs"/> <xsl:value-of select="$fs"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
<xsl:choose> <xsl:choose>
<xsl:when test="$units = 1"> <xsl:when test="$units = 1">
<xsl:value-of select="concat(format-number((substring-before(cylinder[1]/@size, ' ') div 14.7 * 3000) * 0.035315, '#.#'), '')"/> <xsl:value-of select="concat(format-number((substring-before(@size, ' ') div 14.7 * 3000) * 0.035315, '#.#'), '')"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="substring-before(cylinder[1]/@size, ' ')"/> <xsl:value-of select="substring-before(@size, ' ')"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
@ -246,8 +251,8 @@
<xsl:choose> <xsl:choose>
<xsl:when test="$units = 1"> <xsl:when test="$units = 1">
<xsl:choose> <xsl:choose>
<xsl:when test="substring-before(divecomputer[1]/sample[@pressure]/@pressure, ' ') &gt; 0"> <xsl:when test="substring-before(../divecomputer[1]/sample[@pressure]/@pressure, ' ') &gt; 0">
<xsl:value-of select="concat(format-number((substring-before(divecomputer[1]/sample[@pressure]/@pressure, ' ') * 14.5037738007), '#'), '')"/> <xsl:value-of select="concat(format-number((substring-before(../divecomputer[1]/sample[@pressure]/@pressure, ' ') * 14.5037738007), '#'), '')"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="''"/> <xsl:value-of select="''"/>
@ -255,7 +260,7 @@
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="substring-before(divecomputer[1]/sample[@pressure]/@pressure, ' ')"/> <xsl:value-of select="substring-before(../divecomputer[1]/sample[@pressure]/@pressure, ' ')"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
@ -264,8 +269,8 @@
<xsl:choose> <xsl:choose>
<xsl:when test="$units = 1"> <xsl:when test="$units = 1">
<xsl:choose> <xsl:choose>
<xsl:when test="substring-before(divecomputer[1]/sample[@pressure][last()]/@pressure, ' ') &gt; 0"> <xsl:when test="substring-before(../divecomputer[1]/sample[@pressure][last()]/@pressure, ' ') &gt; 0">
<xsl:value-of select="concat(format-number((substring-before(divecomputer[1]/sample[@pressure][last()]/@pressure, ' ') * 14.5037738007), '#'), '')"/> <xsl:value-of select="concat(format-number((substring-before(../divecomputer[1]/sample[@pressure][last()]/@pressure, ' ') * 14.5037738007), '#'), '')"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="''"/> <xsl:value-of select="''"/>
@ -273,20 +278,22 @@
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="substring-before(divecomputer[1]/sample[@pressure][last()]/@pressure, ' ')"/> <xsl:value-of select="substring-before(../divecomputer[1]/sample[@pressure][last()]/@pressure, ' ')"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
<xsl:value-of select="$fs"/> <xsl:value-of select="$fs"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
<xsl:value-of select="substring-before(cylinder[1]/@o2, '%')"/> <xsl:value-of select="substring-before(@o2, '%')"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
<xsl:value-of select="$fs"/> <xsl:value-of select="$fs"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
<xsl:value-of select="substring-before(cylinder[1]/@he, '%')"/> <xsl:value-of select="substring-before(@he, '%')"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:for-each>
<xsl:choose> <xsl:choose>
<!-- Old location format --> <!-- Old location format -->
<xsl:when test="location != ''"> <xsl:when test="location != ''">
@ -469,6 +476,7 @@
<xsl:value-of select="substring-before(@he, '%')"/> <xsl:value-of select="substring-before(@he, '%')"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>
</xsl:template> </xsl:template>
<xsl:template match="location"> <xsl:template match="location">
<xsl:value-of select="$fs"/> <xsl:value-of select="$fs"/>
<xsl:text>&quot;</xsl:text> <xsl:text>&quot;</xsl:text>