LP1185524 - Duplicate patron checking in the user editor is limited to workstation OU user/catalystit/lp1185524-duplicate_patron_checking
authorKyle Tomita <ktomita@catalystitservices.com>
Fri, 31 May 2013 18:33:59 +0000 (11:33 -0700)
committerKyle Tomita <ktomita@catalystitservices.com>
Fri, 31 May 2013 18:33:59 +0000 (11:33 -0700)
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.

Signed-off-by: Kyle Tomita <ktomita@catalystitservices.com>
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 d818454..1afa6dc 100644 (file)
@@ -1329,7 +1329,10 @@ 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);
 
-       return $U->storagereq(
+    #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 a8ddf6a..e4a8e2b 100644 (file)
@@ -4740,7 +4740,18 @@ INSERT into config.org_unit_setting_type
         'description'
     ),
     '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;