Bugzilla – Attachment 61139 Details for
Bug 13757
Make patron attributes editable in the opac if set to 'editable in OPAC'
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13757: (followup) Only touch opac_editable attributes
Bug-13757-followup-Only-touch-opaceditable-attribu.patch (text/plain), 4.47 KB, created by
Nick Clemens (kidclamp)
on 2017-03-15 20:30:47 UTC
(
hide
)
Description:
Bug 13757: (followup) Only touch opac_editable attributes
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2017-03-15 20:30:47 UTC
Size:
4.47 KB
patch
obsolete
>From bc021a91c076a1d80d58de058458bfe46fd07fb1 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Fri, 23 Dec 2016 16:19:06 -0300 >Subject: [PATCH] Bug 13757: (followup) Only touch opac_editable attributes > >As reported by Owen, the members-update.pl was showing every attributes >the patron has (display issue) instead of showing only those affected by >the changes. > >This patch fixes this by filtering the patron's attributes by opac >editability. > >It also fixes Koha::Patron::Modification->approve so it only clears the >attributes with the updating 'code' and leaves the others untouched. >As its been coded so far (until someone refactors it all) the >Koha::Patron::Modification object needs to contain all the attributes >for a specific code. And it comes from parsing the UI's input. > >Tests for Koha::Patron::Modification->approve to come. > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> > >Signed-off-by: Nick Clemens <nick@bywatersolutions.com> >--- > Koha/Patron/Modification.pm | 33 ++++++++++++++++++++++----------- > members/members-update.pl | 7 ++++--- > 2 files changed, 26 insertions(+), 14 deletions(-) > >diff --git a/Koha/Patron/Modification.pm b/Koha/Patron/Modification.pm >index 696f7e8..e3573ca 100644 >--- a/Koha/Patron/Modification.pm >+++ b/Koha/Patron/Modification.pm >@@ -23,11 +23,12 @@ use Carp; > > use Koha::Database; > use Koha::Exceptions::Patron::Modification; >+use Koha::Patron::Attribute; >+use Koha::Patron::Attributes; > use Koha::Patron::Modifications; >-# TODO: Remove once Koha::Patron::Attribute(s) is implemented >-use C4::Members::Attributes qw( SetBorrowerAttributes ); > > use JSON; >+use List::MoreUtils qw( uniq ); > use Try::Tiny; > > use base qw(Koha::Object); >@@ -87,6 +88,7 @@ sub approve { > my ($self) = @_; > > my $data = $self->unblessed(); >+ my $extended_attributes; > > delete $data->{timestamp}; > delete $data->{verification_token}; >@@ -104,7 +106,7 @@ sub approve { > > # Take care of extended attributes > if ( $self->extended_attributes ) { >- our $extended_attributes >+ $extended_attributes > = try { decode_json( $self->extended_attributes ) } > catch { > Koha::Exceptions::Patron::Modification::InvalidData->throw( >@@ -117,12 +119,23 @@ sub approve { > try { > $patron->store(); > >- # Take care of extended attributes >- if ( $self->extended_attributes ) { >- my $extended_attributes >- = decode_json( $self->extended_attributes ); >- SetBorrowerAttributes( $patron->borrowernumber, >- $extended_attributes ); >+ # Deal with attributes >+ my @codes >+ = uniq( map { $_->{code} } @{$extended_attributes} ); >+ foreach my $code (@codes) { >+ map { $_->delete } Koha::Patron::Attributes->search( >+ { borrowernumber => $patron->borrowernumber, >+ code => $code >+ } >+ ); >+ } >+ foreach my $attr ( @{$extended_attributes} ) { >+ Koha::Patron::Attribute->new( >+ { borrowernumber => $patron->borrowernumber, >+ code => $attr->{code}, >+ attribute => $attr->{value} >+ } >+ )->store; > } > } > catch { >@@ -141,8 +154,6 @@ sub approve { > } > > >- >- > =head3 type > > =cut >diff --git a/members/members-update.pl b/members/members-update.pl >index 24179e6..851af14 100755 >--- a/members/members-update.pl >+++ b/members/members-update.pl >@@ -24,7 +24,6 @@ use C4::Auth; > use C4::Output; > use C4::Context; > use C4::Members; >-use C4::Members::Attributes qw( GetBorrowerAttributes ); > use Koha::Patron::Attributes; > use Koha::Patron::Modifications; > >@@ -55,10 +54,12 @@ my $borrowers; > foreach my $pm (@$pending_modifications) { > $borrowers->{ $pm->{borrowernumber} } > = GetMember( borrowernumber => $pm->{borrowernumber} ); >- my $patron_attributes = Koha::Patron::Attributes->search( >+ my @patron_attributes >+ = grep { $_->opac_editable } >+ Koha::Patron::Attributes->search( > { borrowernumber => $pm->{borrowernumber} } ); > $borrowers->{ $pm->{'borrowernumber'} }->{extended_attributes} >- = $patron_attributes; >+ = \@patron_attributes; > } > > $template->param( >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13757
:
42254
|
42626
|
42627
|
47625
|
48040
|
48041
|
48042
|
48043
|
48379
|
48380
|
48381
|
48382
|
56924
|
56925
|
56926
|
56927
|
56928
|
56929
|
57041
|
57042
|
57043
|
57044
|
57045
|
57046
|
58252
|
58253
|
58254
|
58255
|
58351
|
58352
|
58353
|
58354
|
58355
|
58356
|
58357
|
58428
|
58429
|
58581
|
58703
|
58706
|
58707
|
58708
|
58709
|
58710
|
58711
|
58712
|
58713
|
58714
|
58715
|
59376
|
59737
|
59738
|
59739
|
59813
|
59896
|
59897
|
59898
|
60359
|
60360
|
61132
|
61133
|
61134
|
61135
|
61136
|
61137
|
61138
|
61139
|
61140
|
61141
|
61142
|
61143
|
61144
|
61145
|
61146
|
61147
|
61148
|
61149
|
61150
|
61492
|
61493
|
61555
|
61556
|
61557
|
61558
|
61559
|
61560
|
61561
|
61562
|
61563
|
61564
|
61565
|
61566
|
61567
|
61568
|
61569
|
61570
|
61571
|
61572
|
61573
|
61574
|
61575