Bug 24809: Get only timestamp of deleted items attached to existing bibs when check...
authorNick Clemens <nick@bywatersolutions.com>
Thu, 5 Mar 2020 10:59:22 +0000 (10:59 +0000)
committerHayley Mapley <hayleymapley@catalyst.net.nz>
Tue, 14 Apr 2020 03:01:05 +0000 (15:01 +1200)
To test:
 1 - Edit/create a file in the koha home dir '/var/lib/koha/{instance}/OAI.yaml' with content like below:
format:
  marcxml:
    metadataPrefix: marcxml
    metadataNamespace: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim
    schema: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
    include_items: 1
 2 - Set the systempreferences below to indicated values:
  OAI-PMH => Enable
  OAI-PMH:ConfFile => /var/lib/koha/{instace}/OAI.yaml
 3 - View a record with items and confirm the items show:
  http://localhost:8080/cgi-bin/koha/oai.pl?verb=GetRecord&metadataPrefix=marcxml&identifier=KOHA-OAI-TEST:4
 4 - Delete the items, then delete the record
 5 - Reload the URL from step 3
 6 - Internal Server Error:
  Empty String at /kohadevbox/koha/Koha/OAI/Server/Record.pm line 58.
    at /usr/share/perl/5.24/Carp.pm line 167
 7 - Apply patch
 8 - restart_all
 9 - Repeat
10 - Reload URL from step 3
11 - Success

Signed-off-by: Michal Denar <black23@gmail.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Joy Nelson <joy@bywatersolutions.com>
(cherry picked from commit 68488f40558d66b7e4e444c1ed57a260b33ee034)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit d474a4edb165d7116b5bfc459d33e04cc88ca456)

Signed-off-by: Hayley Mapley <hayleymapley@catalyst.net.nz>

Koha/OAI/Server/GetRecord.pm

index d4870e3..a6fa428 100644 (file)
@@ -44,9 +44,10 @@ sub new {
     my @bind_params = ($biblionumber);
     if ( $items_included ) {
         # Take latest timestamp of biblio and any items
+        # Or timestamp of deleted items where bib not deleted
         $sql .= "
             UNION
-            SELECT timestamp from deleteditems
+            SELECT deleteditems.timestamp FROM deleteditems JOIN biblio USING (biblionumber)
             WHERE biblionumber=?
             UNION
             SELECT timestamp from items