Bugzilla – Attachment 56924 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: Make patron attributes editable in the OPAC (1/2)
Bug-13757-Make-patron-attributes-editable-in-the-O.patch (text/plain), 10.46 KB, created by
Tomás Cohen Arazi (tcohen)
on 2016-10-27 14:53:14 UTC
(
hide
)
Description:
Bug 13757: Make patron attributes editable in the OPAC (1/2)
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2016-10-27 14:53:14 UTC
Size:
10.46 KB
patch
obsolete
>From df5b6f8e193a33cdbcb1dfe50d5f70482dcd6dfc Mon Sep 17 00:00:00 2001 >From: Jesse Weaver <pianohacker@gmail.com> >Date: Wed, 2 Sep 2015 17:54:04 -0600 >Subject: [PATCH] Bug 13757: Make patron attributes editable in the OPAC (1/2) > >This patch adds an opac_editable property of borrower attribute types >that can be set in the interface. > >Test plan: > 1. Repeat the following with a new and existing borrower attribute > type: > 2. Verify that "Editable in OPAC" can only be checked if "Display in > OPAC" is checked. > 3. Verify that this new property is correctly saved. > >Signed-off-by: Aleisha <aleishaamohia@hotmail.com> >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >--- > C4/Members/AttributeTypes.pm | 45 +++++++++++++++------- > admin/patron-attr-types.pl | 8 ++++ > ...d_opac_editable_to_borrower_attribute_types.sql | 1 + > installer/data/mysql/kohastructure.sql | 1 + > koha-tmpl/intranet-tmpl/prog/css/staff-global.css | 4 ++ > .../prog/en/modules/admin/patron-attr-types.tt | 16 ++++++++ > 6 files changed, 62 insertions(+), 13 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_13757-add_opac_editable_to_borrower_attribute_types.sql > >diff --git a/C4/Members/AttributeTypes.pm b/C4/Members/AttributeTypes.pm >index d4927db..ad2ef22 100644 >--- a/C4/Members/AttributeTypes.pm >+++ b/C4/Members/AttributeTypes.pm >@@ -37,6 +37,7 @@ C4::Members::AttributeTypes - mananage extended patron attribute types > $attr_type->repeatable($repeatable); > $attr_type->unique_id($unique_id); > $attr_type->opac_display($opac_display); >+ $attr_type->opac_editable($opac_editable); > $attr_type->staff_searchable($staff_searchable); > $attr_type->authorised_value_category($authorised_value_category); > $attr_type->store(); >@@ -122,6 +123,7 @@ sub new { > $self->{'repeatable'} = 0; > $self->{'unique_id'} = 0; > $self->{'opac_display'} = 0; >+ $self->{'opac_editable'} = 0; > $self->{'staff_searchable'} = 0; > $self->{'display_checkout'} = 0; > $self->{'authorised_value_category'} = ''; >@@ -163,6 +165,7 @@ sub fetch { > $self->{'repeatable'} = $row->{'repeatable'}; > $self->{'unique_id'} = $row->{'unique_id'}; > $self->{'opac_display'} = $row->{'opac_display'}; >+ $self->{'opac_editable'} = $row->{'opac_editable'}; > $self->{'staff_searchable'} = $row->{'staff_searchable'}; > $self->{'display_checkout'} = $row->{'display_checkout'}; > $self->{'authorised_value_category'} = $row->{'authorised_value_category'}; >@@ -203,6 +206,7 @@ sub store { > repeatable = ?, > unique_id = ?, > opac_display = ?, >+ opac_editable = ?, > staff_searchable = ?, > authorised_value_category = ?, > display_checkout = ?, >@@ -211,23 +215,23 @@ sub store { > WHERE code = ?"); > } else { > $sth = $dbh->prepare_cached("INSERT INTO borrower_attribute_types >- (description, repeatable, unique_id, opac_display, >+ (description, repeatable, unique_id, opac_display, opac_editable, > staff_searchable, authorised_value_category, display_checkout, category_code, class, code) > VALUES (?, ?, ?, ?, > ?, ?, ?, ?, ?, ?)"); > } >- $sth->execute( >- $self->{description}, >- $self->{repeatable}, >- $self->{unique_id}, >- $self->{opac_display}, >- $self->{staff_searchable}, >- $self->{authorised_value_category}, >- $self->{display_checkout}, >- $self->{category_code} || undef, >- $self->{class}, >- $self->{code}, >- ); >+ $sth->bind_param(1, $self->{'description'}); >+ $sth->bind_param(2, $self->{'repeatable'}); >+ $sth->bind_param(3, $self->{'unique_id'}); >+ $sth->bind_param(4, $self->{'opac_display'}); >+ $sth->bind_param(5, $self->{'opac_editable'}); >+ $sth->bind_param(7, $self->{'staff_searchable'}); >+ $sth->bind_param(8, $self->{'authorised_value_category'}); >+ $sth->bind_param(9, $self->{'display_checkout'}); >+ $sth->bind_param(10, $self->{'category_code'} || undef); >+ $sth->bind_param(11, $self->{'class'}); >+ $sth->bind_param(12, $self->{'code'}); >+ $sth->execute; > > if ( defined $$self{branches} ) { > $sth = $dbh->prepare("DELETE FROM borrower_attribute_types_branches WHERE bat_code = ?"); >@@ -335,6 +339,21 @@ sub opac_display { > @_ ? $self->{'opac_display'} = ((shift) ? 1 : 0) : $self->{'opac_display'}; > } > >+=head2 opac_editable >+ >+ my $opac_editable = $attr_type->opac_editable(); >+ $attr_type->opac_editable($opac_editable); >+ >+Accessor. The C<$opac_editable> argument >+is interpreted as a Perl boolean. >+ >+=cut >+ >+sub opac_editable { >+ my $self = shift; >+ @_ ? $self->{'opac_editable'} = ((shift) ? 1 : 0) : $self->{'opac_editable'}; >+} >+ > =head2 staff_searchable > > my $staff_searchable = $attr_type->staff_searchable(); >diff --git a/admin/patron-attr-types.pl b/admin/patron-attr-types.pl >index 2faa178..e7b39ce 100755 >--- a/admin/patron-attr-types.pl >+++ b/admin/patron-attr-types.pl >@@ -119,6 +119,9 @@ sub error_add_attribute_type_form { > if ($input->param('opac_display')) { > $template->param(opac_display_checked => 1); > } >+ if ($input->param('opac_editable')) { >+ $template->param(opac_editable_checked => 1); >+ } > if ($input->param('staff_searchable')) { > $template->param(staff_searchable_checked => 1); > } >@@ -163,6 +166,8 @@ sub add_update_attribute_type { > > my $opac_display = $input->param('opac_display'); > $attr_type->opac_display($opac_display); >+ my $opac_editable = $input->param('opac_editable'); >+ $attr_type->opac_editable($opac_editable); > my $staff_searchable = $input->param('staff_searchable'); > $attr_type->staff_searchable($staff_searchable); > my $authorised_value_category = $input->param('authorised_value_category'); >@@ -243,6 +248,9 @@ sub edit_attribute_type_form { > if ($attr_type->opac_display()) { > $template->param(opac_display_checked => 1); > } >+ if ($attr_type->opac_editable()) { >+ $template->param(opac_editable_checked => 1); >+ } > if ($attr_type->staff_searchable()) { > $template->param(staff_searchable_checked => 1); > } >diff --git a/installer/data/mysql/atomicupdate/bug_13757-add_opac_editable_to_borrower_attribute_types.sql b/installer/data/mysql/atomicupdate/bug_13757-add_opac_editable_to_borrower_attribute_types.sql >new file mode 100644 >index 0000000..76a989f >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_13757-add_opac_editable_to_borrower_attribute_types.sql >@@ -0,0 +1 @@ >+ALTER TABLE borrower_attribute_types ADD COLUMN `opac_editable` tinyint(1) NOT NULL default 0 AFTER `opac_display`; >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 6b6fe57..27a5b3d 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -215,6 +215,7 @@ CREATE TABLE `borrower_attribute_types` ( -- definitions for custom patron field > `repeatable` tinyint(1) NOT NULL default 0, -- defines whether one patron/borrower can have multiple values for this custom field (1 for yes, 0 for no) > `unique_id` tinyint(1) NOT NULL default 0, -- defines if this value needs to be unique (1 for yes, 0 for no) > `opac_display` tinyint(1) NOT NULL default 0, -- defines if this field is visible to patrons on their account in the OPAC (1 for yes, 0 for no) >+ `opac_editable` tinyint(1) NOT NULL default 0, -- defines if this field is editable by patrons on their account in the OPAC (1 for yes, 0 for no) > `staff_searchable` tinyint(1) NOT NULL default 0, -- defines if this field is searchable via the patron search in the staff client (1 for yes, 0 for no) > `authorised_value_category` varchar(32) default NULL, -- foreign key from authorised_values that links this custom field to an authorized value category > `display_checkout` tinyint(1) NOT NULL default 0,-- defines if this field displays in checkout screens >diff --git a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/css/staff-global.css >index c8921f9..f9a9895 100644 >--- a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css >+++ b/koha-tmpl/intranet-tmpl/prog/css/staff-global.css >@@ -701,6 +701,10 @@ fieldset.action, div.action { > width: auto; > } > >+fieldset.rows li[aria-disabled="true"] { >+ color: #999; >+} >+ > div.rows+div.rows { > margin-top : .6em; > } >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tt >index 8b0c880..7fcd89a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tt >@@ -19,6 +19,14 @@ $(document).ready(function() { > if ( $("#branches option:selected").length < 1 ) { > $("#branches option:first").attr("selected", "selected"); > } >+ >+ $("#opac_display").change( function() { >+ if ( this.checked ) { >+ $("#opac_editable").removeAttr('disabled').parent().removeAttr('aria-disabled'); >+ } else { >+ $("#opac_editable").attr('disabled', true).parent().attr('aria-disabled', 'true'); >+ } >+ } ).change(); > } ); > //]]> > </script> >@@ -122,6 +130,14 @@ $(document).ready(function() { > [% END %] > <span>Check to display this attribute on a patron's details page in the OPAC.</span> > </li> >+ <li><label for="opac_editable">Editable in OPAC: </label> >+ [% IF ( opac_editable_checked ) %] >+ <input type="checkbox" id="opac_editable" name="opac_editable" checked="checked" /> >+ [% ELSE %] >+ <input type="checkbox" id="opac_editable" name="opac_editable" /> >+ [% END %] >+ <span>Check to allow patrons to edit this attribute from their details page in the OPAC. (Requires above.)</span> >+ </li> > <li><label for="staff_searchable">Searchable: </label> > [% IF ( staff_searchable_checked ) %] > <input type="checkbox" id="staff_searchable" name="staff_searchable" checked="checked" /> >-- >2.10.1
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