Bug 21260: Remove item details from reallynotforloan block
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Mon, 24 Aug 2020 13:05:23 +0000 (15:05 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 1 Apr 2021 15:58:49 +0000 (17:58 +0200)
No need to display itemcallnumbers and branch info for items that
are ('really') not available.
We only show a status and a count for the reallynotforloan ('ordered')
categories (not per branch). This simplifies the code too.
We use the preceding-sibling axis to loop over the unique substatuses.

Test plan:
[1] Pick a biblio with an available item A, an item B with notforloan 1,
    an item C with notforloan 2 and two damaged items.
    Include it in a OPAC search. You should see:
        Available: A. Reference: B, C. Not-available: Damaged(2).
[2] Edit item C (notforloan 2). Change to notforloan -1.
    Search again. You should see:
        Available: A. Reference: B. Not-available: On order(1), Damaged(2).

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: ava li <rubyli208@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl

index b611865..a2eb621 100644 (file)
 
                         <!-- First the remaining not for loan categories -->
                         <xsl:variable name="unavailable_items" select="key('item-by-status', 'reallynotforloan')"/>
-                        <xsl:for-each select="$unavailable_items[generate-id() = generate-id(key('item-by-substatus-and-branch', concat(items:substatus, ' ', items:homebranch))[1])]">
-                            <span>
-                                    <xsl:attribute name="class">
-                                        ItemSummary
-                                        <xsl:value-of select="translate(items:substatus,' ','_')"/>
-                                    </xsl:attribute>
-                                    <xsl:if test="$singleBranchMode=0">
-                                        <span class="ItemBranch"><xsl:value-of select="items:homebranch"/><xsl:text> </xsl:text></span>
-                                    </xsl:if>
-                                      <span class='notforloandesc'><xsl:value-of select="items:substatus"/></span>
-                                      <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber and $OPACItemLocation='callnum'">
-                                          <span class="CallNumberAndLabel">
-                                              <span class="LabelCallNumber">Call number: </span>
-                                                                 <span class="CallNumber"><xsl:value-of select="items:itemcallnumber"/></span>
-                                          </span>
-                                      </xsl:if>
-                                      <xsl:text> (</xsl:text>
-                                      <xsl:value-of select="count(key('item-by-substatus-and-branch', concat(items:substatus, ' ', items:homebranch)))"/>
-                                      <xsl:text>)</xsl:text>
-                                      <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
+                        <xsl:for-each select="$unavailable_items[not(./items:substatus=preceding-sibling::*/items:substatus)]">
+                            <span class="ItemSummary unavailable">
+                                <span class='notforloandesc'><xsl:value-of select="items:substatus"/></span>
+                                <xsl:text> (</xsl:text>
+                                <xsl:value-of select="count(parent::*/items:item/items:substatus[ text() = current()/items:substatus  ])"/>
+                                <xsl:text>)</xsl:text>
+                                <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
                             </span>
                         </xsl:for-each>