Browse Source

Bug 21105: oai.pl returns invalid earliestDatestamp

For OAI-PMH, all date and time values must be in the format
"YYYY-MM-DDThh:mm:ssZ" and in UTC. Currently,
Identify.earliestDatestamp uses the SQL format "YYYY-MM-DD hh:mm:ss".
This patch fixes that.

To test:
1) Get a Koha instance with OAI-PMH enabled.
2) Visit /cgi-bin/koha/oai.pl?verb=Identify, view source for the page
   and observe that earliestDate is in the wrong format
   "YYYY-MM-DD hh:mm:ss"
3) Apply patch
4) Visit /cgi-bin/koha/oai.pl?verb=Identify, view the source for the page
   and observe that earliestDate is now in the correct format
   "YYYY-MM-DDThh:mm:ssZ"
5) Sign off

Sponsored-by: Reformational Study Centre

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.11/bug30761
Rudolf Byker 2 years ago
committed by Jonathan Druart
parent
commit
0b3d856bc4
  1. 8
      Koha/OAI/Server/Identify.pm

8
Koha/OAI/Server/Identify.pm

@ -54,7 +54,13 @@ sub new {
# will be returned and we will report the fallback 0001-01-01.
sub _get_earliest_datestamp {
my $dbh = C4::Context->dbh;
my ( $earliest ) = $dbh->selectrow_array("SELECT MIN(timestamp) AS earliest FROM biblio" );
# We do not need to perform timezone conversion here, because the time zone
# is set to UTC for the entire SQL session in Koha/OAI/Server/Repository.pm
my $query = q{
SELECT DATE_FORMAT(MIN(timestamp), '%Y-%m-%dT%H:%i:%SZ') AS earliest
FROM biblio
};
my ( $earliest ) = $dbh->selectrow_array($query);
return $earliest
}

Loading…
Cancel
Save