LP#1361270 Self-registration doesn't retain org unit on refresh
authorDan Briem <dbriem@wlsmail.org>
Tue, 25 Aug 2020 19:47:15 +0000 (15:47 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Wed, 23 Sep 2020 20:17:34 +0000 (16:17 -0400)
This sets the self-registration form's org unit selector to the
the current org unit request parameter if it's set and self-
registration is allowed for that org unit. This will preopulate
the org selector on refresh or error instead of resetting to the
default context.

To test:
1. Administration->Local Administration->Library Settings Editor
   set Allow Patron Self-Registration to True (top context)
2. go to OPAC->Request Library Card (stock link is on bottom)
3. select a Home Library and click Submit Registration
4. note the Home Library select doesn't retain your selection
5. apply this fix and repeat steps
6. note the Home Library is retained

Signed-off-by: Dan Briem <dbriem@wlsmail.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>

Open-ILS/src/templates/opac/register.tt2

index d108651..206ca5a 100644 (file)
@@ -99,6 +99,14 @@ END;
                 ) | html %]</h4>
         [% END %]
 
+        [%
+            #prepopulate org selector on refresh or error
+            cgi_org = CGI.param('stgu.home_ou') | html;
+            IF cgi_org && ctx.register.valid_orgs.grep("^$cgi_org$").size;
+                prepopulate_org = cgi_org;
+            END
+        %]
+
         <form method='POST' onSubmit="return dobValidate(document.getElementById('stgu.dob'))">
             <table>
                 <tr>
@@ -107,7 +115,7 @@ END;
                     </td>
                     <td>[% INCLUDE build_org_selector 
                             name='stgu.home_ou' 
-                            value=value || ctx_org
+                            value=value || prepopulate_org || ctx_org
                             can_have_users_only=1
                             valid_org_list=ctx.register.valid_orgs
                         %]