LP#1821804 - Cloned patron address set to pending
authorJosh Stompro <stompro@stompro.org>
Wed, 23 Jun 2021 19:21:46 +0000 (14:21 -0500)
committerBill Erickson <berickxx@gmail.com>
Mon, 20 Sep 2021 14:05:53 +0000 (10:05 -0400)
When cloning a patron record, the address gets set to pending and cannot
be fixed until the new patron record is saved.

The address creation steps for cloned records are a little different if
the library setting "Patron Registration: Cloned patrons get address copy" is
set, so test with that enabled and disabled.  In our system we have that setting
enabled.

The issue is that the values come in as a string like 't' or 'f' and need to be converted
to a boolean value.  That is done in the normal address loading code, but wasn't in
the cloning code.

I also added in a fix for the city limits flag not getting cloned which seems
like an related issue.  This seems like it was just cosmetic, the city limits
does get set when the record is saved, based on the parent records address.

Testing Plan:

Before change:

1. Enable "Cloned patrons get address copy" setting.
2. Open up a patron record that has a valid non pending address with city limits checked.
3. Save and Clone
4. Notice that the address in the new cloned record says pending.
5. Notice that the city limits checkbox isn't checked.

After change applied:

1. Enable "Cloned patrons get address copy" setting.
2. Open up a patron record that has a valid non pending address with city limits checked.
3. Save and Clone
4. Notice that the address in the new cloned record doesn't say pending.
5. Notice that the city limits checkbox is checked.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js

index c091300..29725cb 100644 (file)
@@ -1017,6 +1017,8 @@ angular.module('egCoreMod')
                 new_addr.usr = user.id;
                 new_addr.isnew = true;
                 new_addr.valid = true;
+                new_addr.pending = new_addr.pending === 't';
+                new_addr.within_city_limits = new_addr.within_city_limits == 't';
                 user.addresses.push(new_addr);
                 return new_addr;
             }