From d9358139d28207731263c03a9342e6957809d7c3 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Wed, 7 Sep 2016 15:45:16 +0200 Subject: [PATCH] Bug 15516: Reword 'reserve group' to 'hold group' --- C4/Reserves.pm | 64 +++++++++++----------- installer/data/mysql/atomicupdate/bug_15516.sql | 16 +++--- installer/data/mysql/kohastructure.sql | 18 +++--- .../prog/en/includes/reserve-group-modal.inc | 27 --------- .../intranet-tmpl/prog/en/includes/strings.inc | 2 +- .../prog/en/modules/circ/pendingreserves.tt | 6 +- .../prog/en/modules/members/moremember.tt | 2 +- .../reserve/{reserve-group.tt => hold-group.tt} | 18 +++--- .../prog/en/modules/reserve/request.tt | 6 +- koha-tmpl/intranet-tmpl/prog/js/holds.js | 4 +- reserve/{reserve-group.pl => hold-group.pl} | 10 ++-- reserve/placerequest.pl | 6 +- svc/holds | 2 +- t/db_dependent/Reserves/ReserveCount.t | 22 ++++---- 14 files changed, 88 insertions(+), 115 deletions(-) delete mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/reserve-group-modal.inc rename koha-tmpl/intranet-tmpl/prog/en/modules/reserve/{reserve-group.tt => hold-group.tt} (50%) rename reserve/{reserve-group.pl => hold-group.pl} (82%) diff --git a/C4/Reserves.pm b/C4/Reserves.pm index a0c33d9..c847825 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -139,9 +139,9 @@ BEGIN { GetMaxPatronHoldsForRecord - &AddReserveGroup - &DeleteReserveGroup - &GetReserveGroupReserves + &AddHoldGroup + &DeleteHoldGroup + &GetHoldGroupHolds ); @EXPORT_OK = qw( MergeHolds ); } @@ -168,7 +168,7 @@ sub AddReserve { $branch, $borrowernumber, $biblionumber, $bibitems, $priority, $resdate, $expdate, $notes, $title, $checkitem, $found, $itemtype, - $reserve_group_id + $hold_group_id ) = @_; $resdate = output_pref( { str => dt_from_string( $resdate ), dateonly => 1, dateformat => 'iso' }) @@ -206,7 +206,7 @@ sub AddReserve { waitingdate => $waitingdate, expirationdate => $expdate, itemtype => $itemtype, - reserve_group_id => $reserve_group_id, + hold_group_id => $hold_group_id, } )->store(); @@ -475,7 +475,7 @@ sub GetReserveCount { SELECT COUNT(*) AS counter FROM reserves WHERE borrowernumber = ? - AND reserve_group_id is NULL"; #added by 15516 + AND hold_group_id is NULL"; #added by 15516 my $sth = $dbh->prepare($query); $sth->execute($borrowernumber); my $row = $sth->fetchrow_hashref; @@ -484,10 +484,10 @@ sub GetReserveCount { $count += $row->{counter}; $query = " - SELECT COUNT(DISTINCT reserve_group_id) AS counter + SELECT COUNT(DISTINCT hold_group_id) AS counter FROM reserves WHERE borrowernumber = ? - AND reserve_group_id is not NULL + AND hold_group_id is not NULL "; $sth = $dbh->prepare($query); $sth->execute($borrowernumber); @@ -1055,14 +1055,14 @@ sub ModReserveAffect { $hold->itemnumber($itemnumber); $hold->set_waiting($transferToDo); - if ($hold->reserve_group_id) { + if ($hold->hold_group_id) { # Delete other reserves from same group $dbh->do(q{ DELETE FROM reserves - WHERE reserve_group_id = ? + WHERE hold_group_id = ? AND reserve_id != ? - }, undef, $hold->reserve_group_id, $hold->reserve_id); - DeleteReserveGroup($hold->reserve_group_id); + }, undef, $hold->hold_group_id, $hold->reserve_id); + DeleteHoldGroup($hold->hold_group_id); } _koha_notify_reserve( $hold->reserve_id ) @@ -2121,54 +2121,54 @@ sub GetHoldRule { return $sth->fetchrow_hashref(); } -=head2 AddReserveGroup +=head2 AddHoldGroup - my $reserve_group_id = AddReserveGroup(); + my $hold_group_id = AddHoldGroup(); -Creates a new reserve group and returns its ID +Creates a new hold group and returns its ID =cut -sub AddReserveGroup { +sub AddHoldGroup { my $dbh = C4::Context->dbh; - $dbh->do('INSERT INTO reserve_group VALUES ()'); - return $dbh->last_insert_id(undef, undef, 'reserve_group', undef); + $dbh->do('INSERT INTO hold_group VALUES ()'); + return $dbh->last_insert_id(undef, undef, 'hold_group', undef); } -=head2 DeleteReserveGroup +=head2 DeleteHoldGroup - DeleteReserveGroup($reserve_group_id); + DeleteHoldGroup($hold_group_id); -Delete a reserve group. Reserves that belong to this group are not removed. +Delete a hold group. Reserves that belong to this group are not removed. =cut -sub DeleteReserveGroup { - my ($reserve_group_id) = @_; +sub DeleteHoldGroup { + my ($hold_group_id) = @_; my $dbh = C4::Context->dbh; - my $query = 'DELETE FROM reserve_group WHERE reserve_group_id = ?'; - $dbh->do($query, undef, $reserve_group_id); + my $query = 'DELETE FROM hold_group WHERE hold_group_id = ?'; + $dbh->do($query, undef, $hold_group_id); } -=head2 GetReserveGroupReserves +=head2 GetHoldGroupHolds - my @reserves = GetReserveGroupReserves($reserve_group_id); + my @reserves = GetHoldGroupHolds($hold_group_id); -Fetch all reserve from a reserve group. +Fetch all reserve from a hold group. =cut -sub GetReserveGroupReserves { - my ($reserve_group_id) = @_; +sub GetHoldGroupHolds { + my ($hold_group_id) = @_; my $dbh = C4::Context->dbh; my $reserves = $dbh->selectall_arrayref(q{ SELECT * FROM reserves - WHERE reserve_group_id = ? - }, { Slice => {} }, $reserve_group_id); + WHERE hold_group_id = ? + }, { Slice => {} }, $hold_group_id); return () unless defined $reserves; diff --git a/installer/data/mysql/atomicupdate/bug_15516.sql b/installer/data/mysql/atomicupdate/bug_15516.sql index cad3cc5..bc2c059 100644 --- a/installer/data/mysql/atomicupdate/bug_15516.sql +++ b/installer/data/mysql/atomicupdate/bug_15516.sql @@ -1,11 +1,11 @@ -DROP TABLE IF EXISTS reserve_group; -CREATE TABLE reserve_group ( - reserve_group_id int unsigned NOT NULL AUTO_INCREMENT, - PRIMARY KEY (reserve_group_id) +DROP TABLE IF EXISTS hold_group; +CREATE TABLE hold_group ( + hold_group_id int unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (hold_group_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -ALTER TABLE reserves ADD COLUMN reserve_group_id int unsigned NULL DEFAULT NULL; -ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_6 FOREIGN KEY (reserve_group_id) REFERENCES reserve_group (reserve_group_id) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE reserves ADD COLUMN hold_group_id int unsigned NULL DEFAULT NULL; +ALTER TABLE reserves ADD CONSTRAINT reserves_ibfk_6 FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE; -ALTER TABLE old_reserves ADD COLUMN reserve_group_id int unsigned NULL DEFAULT NULL; -ALTER TABLE old_reserves ADD CONSTRAINT old_reserves_ibfk_5 FOREIGN KEY (reserve_group_id) REFERENCES reserve_group (reserve_group_id) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE old_reserves ADD COLUMN hold_group_id int unsigned NULL DEFAULT NULL; +ALTER TABLE old_reserves ADD CONSTRAINT old_reserves_ibfk_5 FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 167cbc2..6521339 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -1770,7 +1770,7 @@ CREATE TABLE `old_issues` ( -- lists items that were checked out and have been r ON DELETE SET NULL ON UPDATE SET NULL, CONSTRAINT `old_issues_ibfk_2` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE SET NULL ON UPDATE SET NULL, - CONSTRAINT `old_reserves_ibfk_5` FOREIGN KEY (reserve_group_id) REFERENCES reserve_group (reserve_group_id) + CONSTRAINT `old_reserves_ibfk_5` FOREIGN KEY (hold_group_id) REFERENCES hold_group (hold_group_id) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; @@ -1873,7 +1873,7 @@ CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha `suspend` BOOLEAN NOT NULL DEFAULT 0, `suspend_until` DATETIME NULL DEFAULT NULL, `itemtype` VARCHAR(10) NULL DEFAULT NULL, -- If record level hold, the optional itemtype of the item the patron is requesting - `reserve_group_id` int unsigned NULL DEFAULT NULL, -- Id used on reservations spanning multiple titles + `hold_group_id` int unsigned NULL DEFAULT NULL, -- Id used on reservations spanning multiple titles PRIMARY KEY (`reserve_id`), KEY priorityfoundidx (priority,found), KEY `borrowernumber` (`borrowernumber`), @@ -1886,17 +1886,17 @@ CREATE TABLE `reserves` ( -- information related to holds/reserves in Koha CONSTRAINT `reserves_ibfk_3` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `reserves_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `reserves_ibfk_5` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `reserves_ibfk_6` FOREIGN KEY (`reserve_group_id`) REFERENCES `reserve_group` (`reserve_group_id`) ON DELETE SET NULL ON UPDATE CASCADE + CONSTRAINT `reserves_ibfk_6` FOREIGN KEY (`hold_group_id`) REFERENCES `hold_group` (`hold_group_id`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- --- Table structure for table reserve_group +-- Table structure for table hold_group -- -DROP TABLE IF EXISTS `reserve_group`; -CREATE TABLE `reserve_group` ( - `reserve_group_id` int unsigned NOT NULL AUTO_INCREMENT, - PRIMARY KEY(`reserve_group_id`) +DROP TABLE IF EXISTS `hold_group`; +CREATE TABLE `hold_group` ( + `hold_group_id` int unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY(`hold_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- @@ -1924,7 +1924,7 @@ CREATE TABLE `old_reserves` ( -- this table holds all holds/reserves that have b `suspend` BOOLEAN NOT NULL DEFAULT 0, -- in this hold suspended (1 for yes, 0 for no) `suspend_until` DATETIME NULL DEFAULT NULL, -- the date this hold is suspended until (NULL for infinitely) `itemtype` VARCHAR(10) NULL DEFAULT NULL, -- If record level hold, the optional itemtype of the item the patron is requesting - `reserve_group_id` int unsigned NULL DEFAULT NULL, -- The id of a group of titles reservations fulfilled when one title is picked + `hold_group_id` int unsigned NULL DEFAULT NULL, -- The id of a group of titles reservations fulfilled when one title is picked PRIMARY KEY (`reserve_id`), KEY `old_reserves_borrowernumber` (`borrowernumber`), KEY `old_reserves_biblionumber` (`biblionumber`), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/reserve-group-modal.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/reserve-group-modal.inc deleted file mode 100644 index 2a3e68b..0000000 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/reserve-group-modal.inc +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc index 39cde26..f4aef8a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc @@ -44,6 +44,6 @@ var RESUME_HOLD_ERROR_NOT_FOUND = _("Unable to resume, hold not found"); var CURRENT = _(" (current) "); var PART_OF_A = _("(part of a %s)"); - var RESERVE_GROUP = _("reserve group"); + var HOLD_GROUP = _("hold group"); //]]> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt index e934752..dabc1e2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt @@ -61,8 +61,8 @@ [% IF ( reserveloo.author ) %]

by [% reserveloo.author %]

[% END %] - [% IF reserveloo.reserve_group_id %] -

(part of a reserve group)

+ [% IF reserveloo.hold_group_id %] +

(part of a reserve group)

[% END %] [% ELSE %] @@ -219,5 +219,5 @@ [% END %] [%# TODO: this modul needs to be separated to html and js part to be icnluded correctly %] -[% INCLUDE 'reserve-group-modal.inc' %] +[% INCLUDE 'hold-group-modal.inc' %] [% INCLUDE 'intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt index d4dc968..c37b2e2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -666,5 +666,5 @@ [% END %] -[% INCLUDE 'reserve-group-modal.inc' %] +[% INCLUDE 'hold-group-modal.inc' %] [% INCLUDE 'intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/reserve-group.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/hold-group.tt similarity index 50% rename from koha-tmpl/intranet-tmpl/prog/en/modules/reserve/reserve-group.tt rename to koha-tmpl/intranet-tmpl/prog/en/modules/reserve/hold-group.tt index 8926c0a..cb5f927 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/reserve-group.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/hold-group.tt @@ -1,12 +1,12 @@ [% USE Biblio %] [% INCLUDE 'doc-head-open.inc' %] - Koha › Circulation › Holds › Holds group ([% reserve_group_id %]) + Koha › Circulation › Holds › Holds group ([% hold_group_id %]) [% INCLUDE 'doc-head-close.inc' %] - -

Holds group ([% reserve_group_id %])

+ +

Holds group ([% hold_group_id %])

- [% IF reserves.size %] + [% IF holds.size %] @@ -16,12 +16,12 @@ - [% FOREACH reserve IN reserves %] - [% biblio = Biblio.Get(reserve.biblionumber) %] + [% FOREACH hold IN holds %] + [% biblio = Biblio.Get(hold.biblionumber) %] - - - + + + [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt index b50dff8..1df7f3a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -857,8 +857,8 @@ function checkMultiHold() { [% END %] [% END %] - [% IF reserveloo.reserve_group_id %] -
(part of a reserve group)
+ [% IF reserveloo.hold_group_id %] +
(part of a hold group)
[% END %] @@ -923,6 +923,6 @@ function checkMultiHold() { -[% INCLUDE 'reserve-group-modal.inc' %] +[% INCLUDE 'hold-group-modal.inc' %] [% INCLUDE 'intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/holds.js b/koha-tmpl/intranet-tmpl/prog/js/holds.js index 8ce905e..4033384 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/holds.js +++ b/koha-tmpl/intranet-tmpl/prog/js/holds.js @@ -42,9 +42,9 @@ $(document).ready(function() { title += " - " + oObj.itemnotes + "" } - if (oObj.reserve_group_id) { + if (oObj.hold_group_id) { title += '
'; - var link = '' + RESERVE_GROUP +'' + var link = '' + HOLD_GROUP +'' title += '' + PART_OF_A.format(link) + ''; } diff --git a/reserve/reserve-group.pl b/reserve/hold-group.pl similarity index 82% rename from reserve/reserve-group.pl rename to reserve/hold-group.pl index 91ed958..fbffa13 100755 --- a/reserve/reserve-group.pl +++ b/reserve/hold-group.pl @@ -24,19 +24,19 @@ use C4::Reserves; my $cgi = new CGI; my ($template, $loggedinuser, $cookie) = get_template_and_user({ - template_name => "reserve/reserve-group.tt", + template_name => "reserve/hold-group.tt", query => $cgi, type => "intranet", authnotrequired => 0, flagsrequired => { circulate => 'circulate_remaining_permissions' }, }); -my $reserve_group_id = $cgi->param('reserve_group_id'); -my @reserves = GetReserveGroupReserves($reserve_group_id); +my $hold_group_id = $cgi->param('hold_group_id'); +my @reserves = GetHoldGroupHolds($hold_group_id); $template->param( - reserve_group_id => $reserve_group_id, - reserves => \@reserves, + hold_group_id => $hold_group_id, + holds => \@holds, ); output_html_with_http_headers $cgi, $cookie, $template->output; diff --git a/reserve/placerequest.pl b/reserve/placerequest.pl index fcc64c1..aee0b30 100755 --- a/reserve/placerequest.pl +++ b/reserve/placerequest.pl @@ -85,9 +85,9 @@ if (defined $checkitem && $checkitem ne ''){ if ( $type eq 'str8' && $borrower ) { - my $reserve_group_id; + my $hold_group_id; if ($multi_hold && $requestany) { - $reserve_group_id = AddReserveGroup(); + $hold_group_id = AddReserveGroup(); } foreach my $biblionumber ( keys %bibinfos ) { @@ -116,7 +116,7 @@ if ( $type eq 'str8' && $borrower ) { AddReserve($branch, $borrower->{'borrowernumber'}, $biblionumber, [$biblionumber], $bibinfo->{rank}, $startdate, $expirationdate, $notes, $bibinfo->{title}, $checkitem, $found, $itemtype, - $reserve_group_id); + $hold_group_id); } else { # place a request on 1st available for ( my $i = 0 ; $i < $holds_to_place_count ; $i++ ) { diff --git a/svc/holds b/svc/holds index 4f464c4..4006583 100755 --- a/svc/holds +++ b/svc/holds @@ -102,7 +102,7 @@ while ( my $h = $holds_rs->next() ) { waiting_here => $h->branch()->branchcode() eq $branch, priority => $h->priority(), itemtype_limit => $itemtype_limit, - reserve_group_id => $h->reserve_group_id, + hold_group_id => $h->hold_group_id, subtitle => GetRecordValue( 'subtitle', GetMarcBiblio({ biblionumber => $biblionumber }), diff --git a/t/db_dependent/Reserves/ReserveCount.t b/t/db_dependent/Reserves/ReserveCount.t index f5724a0..dc0f9e7 100644 --- a/t/db_dependent/Reserves/ReserveCount.t +++ b/t/db_dependent/Reserves/ReserveCount.t @@ -50,7 +50,7 @@ my $biblio = $builder->build( { source => 'Biblio', } ); my $biblionumber = $biblio->{biblionumber}; # Use AddReserve instead of TestBuilder because i don't manage -# to make TestBuilder set reserve_group_id to null. Idea ? +# to make TestBuilder set hold_group_id to null. Idea ? my $reserve_id = AddReserve($branchcode, $borrowernumber, $biblionumber, $biblionumber, 1, undef, undef, undef $biblio->{title}, undef, undef, undef); @@ -58,9 +58,9 @@ $biblio->{title}, undef, undef, undef); is(GetReserveCount($borrowernumber), 1, 'Test borrower has 1 reserve.'); my $reserves_group = $builder->build({ - source => 'ReserveGroup', + source => 'HoldGroup', value => { - reserve_group_id => 1 + hold_group_id => 1 } }); @@ -68,46 +68,46 @@ my $reserve2 = $builder->build({ source => 'Reserve', value => { borrowernumber => $borrowernumber, - reserve_group_id => 1 + hold_group_id => 1 } }); my $reserve3 = $builder->build({ source => 'Reserve', value => { borrowernumber => $borrowernumber, - reserve_group_id => 1 + hold_group_id => 1 } }); is(GetReserveCount($borrowernumber), 2, 'Test borrower has 2 reserve.'); my $reserves_group2 = $builder->build({ - source => 'ReserveGroup', + source => 'HoldGroup', value => { - reserve_group_id => 2 + hold_group_id => 2 } }); -my $reserve_group_id2 = $reserves_group2->{reserve_group_id}; +my $hold_group_id2 = $reserves_group2->{hold_group_id}; my $reserve4 = $builder->build({ source => 'Reserve', value => { borrowernumber => $borrowernumber, - reserve_group_id => 2 + hold_group_id => 2 } }); my $reserve5 = $builder->build({ source => 'Reserve', value => { borrowernumber => $borrowernumber, - reserve_group_id => 2 + hold_group_id => 2 } }); my $reserve6 = $builder->build({ source => 'Reserve', value => { borrowernumber => $borrowernumber, - reserve_group_id => 2 + hold_group_id => 2 } }); -- 2.1.4
[% biblio.title %][% reserve.priority %][% reserve.reservenotes %][% biblio.title %][% hold.priority %][% hold.reservenotes %]