From 1fa1fb9f5aaf297dbb66812c290ec8bd5550b454 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 29 Jun 2023 14:17:09 -0400 Subject: [PATCH] Bug 31357: Separate holds history from intranetreadinghistory Currently the system preference intranetreadinghistory determines visibility of both circulation history and holds history tabs in the patron record. It would be helpful to allow the option of setting each of those independently. Specifically, libraries have requested the option of being able to view the holds history in a patron record without having to enable viewing of the circulation history. Test Plan: 1) Apply this patch 2) Restart all the things! 3) Run updatadatabase.pl 4) Verify the new syspref intranetReadingHistoryHolds has the same value as the existing syspref intranetreadinghistory 5) Disable intranetreadinghistory, enable intranetReadingHistoryHolds 6) Verify you can view a patron's holds history but not reading history Signed-off-by: Sam Lau JD amended patch: * renamed syspref intranetReadingHistoryHolds => IntranetReadingHistoryHolds * tidy --- C4/Auth.pm | 1 + installer/data/mysql/atomicupdate/bug_31357.pl | 17 +++++++++++++++++ .../prog/en/includes/circ-menu.inc | 2 +- .../en/modules/admin/preferences/patrons.pref | 8 +++++++- .../prog/en/modules/members/holdshistory.tt | 2 +- 5 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_31357.pl diff --git a/C4/Auth.pm b/C4/Auth.pm index cdc4ba80129..0d1e2086d9a 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -498,6 +498,7 @@ sub get_template_and_user { IntranetmainUserblock => C4::Context->preference("IntranetmainUserblock"), IntranetNav => C4::Context->preference("IntranetNav"), intranetreadinghistory => C4::Context->preference("intranetreadinghistory"), + IntranetReadingHistoryHolds => C4::Context->preference("IntranetReadingHistoryHolds"), intranetstylesheet => C4::Context->preference("intranetstylesheet"), IntranetUserCSS => C4::Context->preference("IntranetUserCSS"), IntranetUserJS => C4::Context->preference("IntranetUserJS"), diff --git a/installer/data/mysql/atomicupdate/bug_31357.pl b/installer/data/mysql/atomicupdate/bug_31357.pl new file mode 100644 index 00000000000..e38675285f2 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_31357.pl @@ -0,0 +1,17 @@ +use Modern::Perl; + +return { + bug_number => "31357", + description => "Add new system preference IntranetReadingHistoryHolds", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + $dbh->do( + q{ + INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) SELECT + 'IntranetReadingHistoryHolds', value, '', 'If ON, Holds history is enabled for all patrons', 'YesNo' + FROM systempreferences WHERE variable = 'intranetreadinghistory'; + } + ); + }, + } diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc index 3ed1cc52826..2aaca93d3e9 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc @@ -151,7 +151,7 @@ [% END %] [% END %] [% IF CAN_user_borrowers_edit_borrowers %] - [% IF ( intranetreadinghistory ) %] + [% IF ( IntranetReadingHistoryHolds ) %] [% IF ( holdshistoryview ) %]
  • [% ELSE %]
  • [% END %]Holds history
  • [% END %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref index 3fa642ea5ec..3bf35dfd5c8 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref @@ -26,7 +26,13 @@ Patrons: choices: 1: "Allow" 0: "Don't allow" - - "staff to access a patron's checkout and hold history (checkout history is still stored, regardless of staff being allowed access or not)." + - "staff to access a patron's checkout (checkout history is still stored, regardless of staff being allowed access or not)." + - + - pref: IntranetReadingHistoryHolds + choices: + 1: "Allow" + 0: "Don't allow" + - "staff to access a patron's hold history (hold history is still stored, regardless of staff being allowed access or not)." - - "When deleting a patron who owns public or shared lists," - pref: ListOwnershipUponPatronDeletion diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/holdshistory.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/holdshistory.tt index 8acf414340d..92a7e1d7584 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/holdshistory.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/holdshistory.tt @@ -44,7 +44,7 @@ [% INCLUDE 'members-toolbar.inc' %]

    Holds history

    -[% UNLESS Koha.Preference('intranetreadinghistory') %] +[% UNLESS Koha.Preference('IntranetReadingHistoryHolds') %]
    Staff members are not allowed to access patron's holds history
    [% ELSIF is_anonymous %]
    This is the anonymous patron, so no holds history is displayed.
    -- 2.34.1