Bug 42027 - Implement "Show volumes" for serial records
Summary: Implement "Show volumes" for serial records
Status: NEW
Alias: None
Product: Koha
Classification: Unclassified
Component: MARC Bibliographic data support (show other bugs)
Version: 24.11
Hardware: All All
: P5 - low enhancement
Assignee: Bugs List
QA Contact: Testopia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-03-09 14:10 UTC by Katrin Fischer
Modified: 2026-03-09 14:23 UTC (History)
2 users (show)

See Also:
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:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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>