Bug 13757: (QA followup) Make opac-memberentry.pl handle attrs deletion
The original code on this bug skipped empty-valued attributes. But emptying attributes is the only way to tell the controller script that the user wants to delete them. This patch makes opac-memberentry.pl check the existence of attributes sharing the code of the empty for the given patron, and it stores the deletion on the Koha::Patron::Modification as needed. Otherwise deletions got skipped. To test: - Verify setting/deleting attributes that are opac-editable and verify the results are sound. https://bugs.koha-community.org/show_bug.cgi?id=13737 Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
parent
b6797fdc87
commit
c44a377d9c
1 changed files with 12 additions and 5 deletions
|
@ -89,7 +89,7 @@ $template->param(
|
|||
OPACPatronDetails => C4::Context->preference('OPACPatronDetails'),
|
||||
);
|
||||
|
||||
my $attributes = ParsePatronAttributes($cgi);
|
||||
my $attributes = ParsePatronAttributes($borrowernumber,$cgi);
|
||||
my $conflicting_attribute = 0;
|
||||
|
||||
foreach my $attr (@$attributes) {
|
||||
|
@ -560,7 +560,7 @@ sub GeneratePatronAttributesForm {
|
|||
}
|
||||
|
||||
sub ParsePatronAttributes {
|
||||
my ( $cgi ) = @_;
|
||||
my ($borrowernumber,$cgi) = @_;
|
||||
|
||||
my @codes = $cgi->multi_param('patron_attribute_code');
|
||||
my @values = $cgi->multi_param('patron_attribute_value');
|
||||
|
@ -569,8 +569,13 @@ sub ParsePatronAttributes {
|
|||
my @attributes;
|
||||
my %dups = ();
|
||||
|
||||
while ( my ( $code, $value, $password ) = $ea->() ) {
|
||||
next unless defined($value) and $value ne '';
|
||||
while ( my ( $code, $value ) = $ea->() ) {
|
||||
# Don't skip if the patron already has attributes with $code, because
|
||||
# it means we are being requested to remove the attributes.
|
||||
next
|
||||
unless defined($value) and $value ne ''
|
||||
or Koha::Patron::Attributes->search(
|
||||
{ borrowernumber => $borrowernumber, code => $code } )->count > 0;
|
||||
next if exists $dups{$code}->{$value};
|
||||
$dups{$code}->{$value} = 1;
|
||||
|
||||
|
@ -579,3 +584,5 @@ sub ParsePatronAttributes {
|
|||
|
||||
return \@attributes;
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
Loading…
Reference in a new issue