Bug 42027

Summary: Implement "Show volumes" for serial records
Product: Koha Reporter: Katrin Fischer <katrin.fischer>
Component: MARC Bibliographic data supportAssignee: Bugs List <koha-bugs>
Status: NEW --- QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: michaela.sieber, pascal.uphaus
Version: 24.11   
Hardware: All   
OS: All   
GIT URL: Initiative type: ---
Sponsorship status: --- Comma delimited list of Sponsors:
Crowdfunding goal: 0 Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:

Description Katrin Fischer 2026-03-09 14:10:21 UTC
Currently Koha can show the "Show volumes" link for set and traced series records. With a search in the background we check for existing volumes and display of the link depends on their existence.

The same should be implemented for serial records that can also have separate records in some libraries for bound volumes of serial issues.

Currently we use this XSLT to always show the link for serial records (or never, depending on CSS):

    <xsl:template name="serial_volumes">
        <xsl:param name="gui"/>
        <xsl:param name="UseControlNumber" />
        <xsl:variable name="SearchUrl">
            <xsl:call-template name="SearchUrl">
                <xsl:with-param name="gui"><xsl:value-of select="$gui" /></xsl:with-param>
            </xsl:call-template>
        </xsl:variable>
        <xsl:if test="substring(marc:leader,8,1) = 's' and not(substring(marc:leader,20,1)='a' or substring(marc:controlfield[@tag=008],22,1)='m')">
            <span class="results_summary serial_volumes"><span class="transl label en">Volumes: </span><span class="transl label de-DE">Bände: </span>
                <a>
                <xsl:choose>
                <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
                    <xsl:attribute name="href"><xsl:value-of select="$SearchUrl"/>q=rcn:<xsl:value-of select="marc:controlfield[@tag=001]"/>+not+(bib-level:a+or+bib-level:b)</xsl:attribute>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:attribute name="href"><xsl:value-of select="$SearchUrl"/>q=ti,phr:<xsl:value-of select="translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
                </xsl:otherwise>
                </xsl:choose>
                <span class="transl en">Show volumes</span><span class="transl de-DE">Zeige Bände</span>
                </a>
            </span>
        </xsl:if>
    </xsl:template>