Bugzilla – Attachment 21620 Details for
Bug 10589
Override OpacHiddenItems based on Patron Branch
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10589 - Override OpacHiddenItems based on Patron Category
Bug-10589---Override-OpacHiddenItems-based-on-Patr.patch (text/plain), 7.85 KB, created by
Srdjan Jankovic
on 2013-09-30 02:38:32 UTC
(
hide
)
Description:
Bug 10589 - Override OpacHiddenItems based on Patron Category
Filename:
MIME Type:
Creator:
Srdjan Jankovic
Created:
2013-09-30 02:38:32 UTC
Size:
7.85 KB
patch
obsolete
>From 4f1a077981301ca8d7fb83e2badc2d3c9f3890fb Mon Sep 17 00:00:00 2001 >From: Mark Tompsett <mtompset@hotmail.com> >Date: Wed, 10 Jul 2013 18:41:01 -0400 >Subject: [PATCH] Bug 10589 - Override OpacHiddenItems based on Patron Category > >Two system preferences, PatronSingleBranch and >PatronEveryBranch, have been added to facilitate some >granularity on the override. > >If the home branch of the item and the patron match and the >catgegory code of the patron matches one of the pipe delimited >values in the PatronSingleBranch patron category code, then >an item which would normally be hidden will be visible. > >If the patron category matches one of the pipe delimited >values in the PatronEveryBranch patron category, then every >item hidden by OpacHiddenItems will be visible. > >Since the patron category codes used by default for these >two system preferences are not added, OpacHiddenItems will >continue function as expected until individual patrons and >system preferences are configured. > >There is no need to provide this functionality to staff, >as they have access to the staff client. > >Rebased to current master (again). > >Signed-off-by: Srdjan <srdjan@catalyst.net.nz> >--- > C4/Items.pm | 25 ++++++++++++++++++++-- > installer/data/mysql/sysprefs.sql | 2 ++ > installer/data/mysql/updatedatabase.pl | 17 +++++++++++++++ > .../prog/en/modules/admin/preferences/opac.pref | 8 +++++++ > 4 files changed, 50 insertions(+), 2 deletions(-) > >diff --git a/C4/Items.pm b/C4/Items.pm >index 8116c22..ba1d985 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -33,6 +33,7 @@ use List::MoreUtils qw/any/; > use YAML qw/Load/; > use Data::Dumper; # used as part of logging item record changes, not just for > # debugging; so please don't remove this >+use C4::Members qw/GetBorrowerCategorycode/; > > use vars qw($VERSION @ISA @EXPORT); > >@@ -1641,6 +1642,18 @@ sub GetHiddenItemnumbers { > return (); > } > my $dbh = C4::Context->dbh; >+ my $borrowernumber = 0; >+ my $homebranch = q{}; >+ my $categorycode = q{}; >+ if (C4::Context->userenv) { >+ $borrowernumber = C4::Context->userenv->{'number'} || 0; >+ $homebranch = C4::Context->userenv->{'branch'} || q{}; >+ } >+ if ($borrowernumber) { >+ $categorycode = C4::Members::GetBorrowerCategorycode($borrowernumber) || q{}; >+ } >+ my @SingleBranchCodes = split /\|/,C4::Context->preference('PatronSingleBranch'); >+ my @EveryBranchCodes = split /\|/,C4::Context->preference('PatronEveryBranch'); > > # For each item > foreach my $item (@items) { >@@ -1660,8 +1673,16 @@ sub GetHiddenItemnumbers { > # If the results matches the values in the yaml file > if (any { $val eq $_ } @{$hidingrules->{$field}}) { > >- # We add the itemnumber to the list >- push @resultitems, $item->{'itemnumber'}; >+ my $override = 0; >+ if ( ($homebranch eq $item->{'homebranch'} && >+ (any { /^$categorycode$/ } @SingleBranchCodes ) ) || >+ (any { /^$categorycode$/ } @EveryBranchCodes ) ) { >+ $override = 1; >+ } >+ if ($override==0) { >+ # We add the itemnumber to the hidden list >+ push @resultitems, $item->{'itemnumber'}; >+ } > > # If at least one rule matched for an item, no need to test the others > last; >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index 4b0f364..aaa529d 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -286,6 +286,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('OverDriveLibraryID','','Library ID for OverDrive integration','','Integer'), > ('OverdueNoticeBcc','','','Email address to bcc outgoing overdue notices sent by email','free'), > ('OverduesBlockCirc','noblock','noblock|confirmation|block','When checking out an item should overdues block checkout, generate a confirmation dialogue, or allow checkout','Choice'), >+('PatronEveryBranch','','Pipe delimited patron category codes which allow viewing hidden items for every branch','',''), > ('patronimages','0',NULL,'Enable patron images for the Staff Client','YesNo'), > ('PatronSelfRegistration','0',NULL,'If enabled, patrons will be able to register themselves via the OPAC.','YesNo'), > ('PatronSelfRegistrationAdditionalInstructions','','','A free text field to display additional instructions to newly self registered patrons.','free'), >@@ -294,6 +295,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('PatronSelfRegistrationDefaultCategory','','','A patron registered via the OPAC will receive a borrower category code set in this system preference.','free'), > ('PatronSelfRegistrationExpireTemporaryAccountsDelay','0',NULL,'If PatronSelfRegistrationDefaultCategory is enabled, this system preference controls how long a patron can have a temporary status before the account is deleted automatically. It is an integer value representing a number of days to wait before deleting a temporary patron account. Setting it to 0 disables the deleting of temporary accounts.','Integer'), > ('PatronSelfRegistrationVerifyByEmail','0',NULL,'If enabled, any patron attempting to register themselves via the OPAC will be required to verify themselves via email to activate his or her account.','YesNo'), >+('PatronSingleBranch','',"Pipe delimited patron category codes which allow viewing hidden items for only the patron's home branch",'',''), > ('PatronsPerPage','20','20','Number of Patrons Per Page displayed by default','Integer'), > ('Persona','0','','Use Mozilla Persona for login','YesNo'), > ('PrefillItem','0','','When a new item is added, should it be prefilled with last created item values?','YesNo'), >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index a37ea02..47d4367 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -7155,6 +7155,23 @@ if ( CheckVersion($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion = "3.13.00.XXX"; >+if ( CheckVersion($DBversion) ) { >+ $dbh->do( >+ q{ >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('PatronEveryBranch','',"Pipe delimited patron category codes which allow viewing hidden items for every branch",'',''); >+} >+ ); >+ $dbh->do( >+ q{ >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('PatronSingleBranch','',"Pipe delimited patron category codes which allow viewing hidden items for only the patron's home branch",'',''); >+} >+ ); >+ print "Upgrade to $DBversion done (Bug filtering: Patron Category to override OPACHiddenItems)\n"; >+ SetVersion($DBversion); >+} >+ >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index a75c7ef..eb7ff48 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -497,6 +497,14 @@ OPAC: > class: code > - Allows to define custom rules for hiding specific items at opac. See docs/opac/OpacHiddenItems.txt for more informations > - >+ - pref: PatronSingleBranch >+ class: short >+ - Patrons matching one of these pipe delimited patron category codes override OpacHiddenItems for their home branch only. >+ - >+ - pref: PatronEveryBranch >+ class: short >+ - Patrons matching one of these pipe delimited patron category codes override OpacHiddenItems for every branch. >+ - > - pref: OpacAllowPublicListCreation > default: 1 > choices: >-- >1.8.1.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10589
:
19647
|
19708
|
19931
|
19932
|
19933
|
19949
|
19954
|
21063
|
21066
|
21256
|
21620
|
22587
|
22629
|
30796
|
30806
|
82521
|
82522