LP1185524 - Duplicate patron checking in the user editor is limited to workstation OU
authorKyle Tomita <ktomita@catalystitservices.com>
Fri, 31 May 2013 18:33:59 +0000 (11:33 -0700)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Fri, 16 Aug 2013 14:29:15 +0000 (10:29 -0400)
Added a new library setting opac.duplicate_patron_check_use_consortium.
When true, the duplicate check will use the consortium (1) as the OU.
When false or not set, the duplicate check will use the workstation OU.

The setting is checked in subroutine that creates the search request and
sets the OU accordingly.

[LFW: Signing off but following with material changes next commit.]

Signed-off-by: Kyle Tomita <ktomita@catalystitservices.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.add_setting_for_selecting_consortium_as_search_ou_for_duplicate_patron_check.sql [new file with mode: 0644]

index 0c25c51..1ea0f32 100644 (file)
@@ -1329,6 +1329,9 @@ sub patron_adv_search {
     my $opt_boundary = 0;
     $opt_boundary = $U->ou_ancestor_setting_value($e->requestor->ws_ou,'org.patron_opt_boundary') if user_opt_in_enabled($self);
 
+    #Only set search_ou if it is undef.  Set search_ou to Consortium (1) or the workstation org unit depending on Library Setting
+    $search_ou = ($U->ou_ancestor_setting_value($e->requestor->ws_ou, 'opac.duplicate_patron_check_use_consortium') == 1) ? 1 : $e->requestor->ws_ou if $search_ou == undef;
+
     return $U->storagereq(
         "open-ils.storage.actor.user.crazy_search", $search_hash, 
             $search_limit, $search_sort, $include_inactive, $e->requestor->ws_ou, $search_ou, $opt_boundary);
index 433fbfd..47765d5 100644 (file)
@@ -4880,6 +4880,18 @@ INSERT into config.org_unit_setting_type
     ),
     'string', null)
 
+,( 'opac.duplicate_patron_check_use_consortium', 'opac',
+    oils_i18n_gettext(
+        'opac.duplicate_patron_check_use_consortium',
+        'Use consortium as the search ou for the duplicate patron check.',
+        'coust',
+        'label'),
+    oils_i18n_gettext(
+        'opac.duplicate_patron_check_use_consortium',
+        'When using the patron registration page, the duplicate patron check will use the consortium as the search_ou.',
+        'coust',
+        'description'),
+    'bool', null)
 ;
 
 UPDATE config.org_unit_setting_type
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.add_setting_for_selecting_consortium_as_search_ou_for_duplicate_patron_check.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.add_setting_for_selecting_consortium_as_search_ou_for_duplicate_patron_check.sql
new file mode 100644 (file)
index 0000000..957d278
--- /dev/null
@@ -0,0 +1,24 @@
+BEGIN;
+
+    SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+    INSERT INTO config.org_unit_setting_type ( name, grp, label, description, datatype ) VALUES (
+        'opac.duplicate_patron_check_use_consortium', 'opac',
+            oils_i18n_gettext(
+                'opac.duplicate_patron_check_use_consortium',
+                'Use consortium as the search ou for the duplicate patron check.',
+                'coust',
+                'label'),
+            oils_i18n_gettext(
+                'opac.duplicate_patron_check_use_consortium',
+                'When using the patron registration page, the duplicate patron check will use the consortium as the search_ou.',
+                'coust',
+                'description'),
+            'bool'
+    );
+
+    INSERT INTO actor.org_unit_setting (org_unit, name, value) VALUES (
+            1, 'opac.duplicate_patron_check_use_consortium', 'true'
+    );
+
+COMMIT;