@@ -, +, @@
---
C4/Members/AttributeTypes.pm | 31 +++++++++++++++++--
C4/Members/Attributes.pm | 3 +-
admin/patron-attr-types.pl | 9 +++++-
circ/circulation.pl | 3 ++
.../0009-patron-attr-display-checkout.pl | 7 ++++
installer/data/mysql/kohastructure.sql | 1 +
.../intranet-tmpl/prog/en/includes/circ-menu.inc | 7 ++++
.../prog/en/modules/admin/patron-attr-types.tt | 7 ++++-
members/boraccount.pl | 6 +++-
members/mancredit.pl | 3 ++
members/maninvoice.pl | 3 ++
members/member-flags.pl | 5 ++-
members/member-password.pl | 7 +++-
members/messaging.pl | 3 ++
members/moremember.pl | 3 ++
members/notices.pl | 5 ++-
members/pay.pl | 5 ++-
members/readingrec.pl | 6 +++-
18 files changed, 100 insertions(+), 14 deletions(-)
create mode 100644 installer/data/mysql/atomicupdate/0009-patron-attr-display-checkout.pl
--- a/C4/Members/AttributeTypes.pm
+++ a/C4/Members/AttributeTypes.pm
@@ -118,6 +118,7 @@ sub new {
$self->{'opac_display'} = 0;
$self->{'password_allowed'} = 0;
$self->{'staff_searchable'} = 0;
+ $self->{'display_checkout'} = 0;
$self->{'authorised_value_category'} = '';
bless $self, $class;
@@ -152,6 +153,7 @@ sub fetch {
$self->{'opac_display'} = $row->{'opac_display'};
$self->{'password_allowed'} = $row->{'password_allowed'};
$self->{'staff_searchable'} = $row->{'staff_searchable'};
+ $self->{'display_checkout'} = $row->{'display_checkout'};
$self->{'authorised_value_category'} = $row->{'authorised_value_category'};
bless $self, $class;
@@ -182,14 +184,15 @@ sub store {
opac_display = ?,
password_allowed = ?,
staff_searchable = ?,
- authorised_value_category = ?
+ authorised_value_category = ?,
+ display_checkout = ?
WHERE code = ?");
} else {
$sth = $dbh->prepare_cached("INSERT INTO borrower_attribute_types
(description, repeatable, unique_id, opac_display, password_allowed,
- staff_searchable, authorised_value_category, code)
+ staff_searchable, authorised_value_category, display_checkout, code)
VALUES (?, ?, ?, ?, ?,
- ?, ?, ?)");
+ ?, ?, ?, ?)");
}
$sth->bind_param(1, $self->{'description'});
$sth->bind_param(2, $self->{'repeatable'});
@@ -198,7 +201,8 @@ sub store {
$sth->bind_param(5, $self->{'password_allowed'});
$sth->bind_param(6, $self->{'staff_searchable'});
$sth->bind_param(7, $self->{'authorised_value_category'});
- $sth->bind_param(8, $self->{'code'});
+ $sth->bind_param(8, $self->{'display_checkout'});
+ $sth->bind_param(9, $self->{'code'});
$sth->execute;
}
@@ -304,6 +308,25 @@ sub staff_searchable {
@_ ? $self->{'staff_searchable'} = ((shift) ? 1 : 0) : $self->{'staff_searchable'};
}
+=head2 display_checkout
+
+=over 4
+
+my $display_checkout = $attr_type->display_checkout();
+$attr_type->display_checkout($display_checkout);
+
+=back
+
+Accessor. The C<$display_checkout> argument
+is interpreted as a Perl boolean.
+
+=cut
+
+sub display_checkout {
+ my $self = shift;
+ @_ ? $self->{'display_checkout'} = ((shift) ? 1 : 0) : $self->{'display_checkout'};
+}
+
=head2 authorised_value_category
my $authorised_value_category = $attr_type->authorised_value_category();
--- a/C4/Members/Attributes.pm
+++ a/C4/Members/Attributes.pm
@@ -72,7 +72,7 @@ sub GetBorrowerAttributes {
my $opac_only = @_ ? shift : 0;
my $dbh = C4::Context->dbh();
- my $query = "SELECT code, description, attribute, lib, password
+ my $query = "SELECT code, description, attribute, lib, password, display_checkout
FROM borrower_attributes
JOIN borrower_attribute_types USING (code)
LEFT JOIN authorised_values ON (category = authorised_value_category AND attribute = authorised_value)
@@ -89,6 +89,7 @@ sub GetBorrowerAttributes {
value => $row->{'attribute'},
value_description => $row->{'lib'},
password => $row->{'password'},
+ display_checkout => $row->{'display_checkout'},
}
}
return \@results;
--- a/admin/patron-attr-types.pl
+++ a/admin/patron-attr-types.pl
@@ -106,6 +106,9 @@ sub error_add_attribute_type_form {
if ($input->param('staff_searchable')) {
$template->param(staff_searchable_checked => 'checked="checked"');
}
+ if ($input->param('display_checkout')) {
+ $template->param(display_checkout_checked => 'checked="checked"');
+ }
$template->param(
attribute_type_form => 1,
@@ -147,6 +150,8 @@ sub add_update_attribute_type {
$attr_type->authorised_value_category($authorised_value_category);
my $password_allowed = $input->param('password_allowed');
$attr_type->password_allowed($password_allowed);
+ my $display_checkout = $input->param('display_checkout');
+ $attr_type->display_checkout($display_checkout);
if ($op eq 'edit') {
$template->param(edited_attribute_type => $attr_type->code());
@@ -222,7 +227,9 @@ sub edit_attribute_type_form {
if ($attr_type->staff_searchable()) {
$template->param(staff_searchable_checked => 'checked="checked"');
}
-
+ if ($attr_type->display_checkout()) {
+ $template->param(display_checkout_checked => 'checked="checked"');
+ }
authorised_value_category_list($template, $attr_type->authorised_value_category());
$template->param(
--- a/circ/circulation.pl
+++ a/circ/circulation.pl
@@ -35,6 +35,7 @@ use C4::Biblio;
use C4::Reserves;
use C4::Context;
use CGI::Session;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
use Date::Calc qw(
Today
@@ -630,6 +631,7 @@ my $fast_cataloging = 0;
if (defined getframeworkinfo('FA')) {
$fast_cataloging = 1
}
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
lib_messages_loop => $lib_messages_loop,
@@ -679,6 +681,7 @@ $template->param(
circview => 1,
soundon => C4::Context->preference("SoundOn"),
fast_cataloging => $fast_cataloging,
+ extendedattributes => $attributes,
);
# save stickyduedate to session
--- a/installer/data/mysql/atomicupdate/0009-patron-attr-display-checkout.pl
+++ a/installer/data/mysql/atomicupdate/0009-patron-attr-display-checkout.pl
@@ -0,0 +1,7 @@
+#! /usr/bin/perl
+use strict;
+use warnings;
+use C4::Context;
+my $dbh=C4::Context->dbh;
+$dbh->do("ALTER TABLE borrower_attribute_types ADD COLUMN `display_checkout` TINYINT(1) NOT NULL DEFAULT '0';");
+print "Upgrade done (Added a display_checkout field in borrower_attribute_types table)\n";
--- a/installer/data/mysql/kohastructure.sql
+++ a/installer/data/mysql/kohastructure.sql
@@ -284,6 +284,7 @@ CREATE TABLE `borrower_attribute_types` (
`password_allowed` tinyint(1) NOT NULL default 0,
`staff_searchable` tinyint(1) NOT NULL default 0,
`authorised_value_category` varchar(10) default NULL,
+ `display_checkout` tinyint(1) NOT NULL default 0,
PRIMARY KEY (`code`),
KEY `auth_val_cat_idx` (`authorised_value_category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
@@ -48,6 +48,13 @@
No email stored.
[% END %]
[% END %]
+ [% FOREACH extendedattribute IN extendedattributes %]
+ [% IF ( extendedattribute.display_checkout ) %]
+ [% IF ( extendedattribute.value ) %]
+ [% extendedattribute.description %] : [% IF ( extendedattribute.value_description ) %][% extendedattribute.value_description %][% ELSE %][% extendedattribute.value %][% END %]
+ [% END %]
+ [% END %]
+ [% END %]
Category: [% categoryname %] ([% categorycode %])
Home Library: [% IF ( branchname ) %][% branchname %][% ELSE %][% branch %][% END %]
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tt
@@ -68,7 +68,7 @@ function CheckAttributeTypeForm(f) {
[% IF ( WARNING_extended_attributes_off ) %]
-
Because the 'ExtendedPatronAttributes` system preference is currently not enabled, extended patron attributes cannot be given to patron records. Go
here if you wish to enable this feature.
+
Because the 'ExtendedPatronAttributes` system preference is currently not enabled, extended patron attributes cannot be given to patron records. Go
here if you wish to enable this feature.
[% END %]
[% IF ( attribute_type_form ) %]
@@ -122,6 +122,11 @@ function CheckAttributeTypeForm(f) {
Check to make this attribute staff_searchable in the staff patron search.
+
Display in check-out:
+
+ Check to show this attribute in patron check-out.
+
+
Authorized value category:
--- a/members/boraccount.pl
+++ a/members/boraccount.pl
@@ -32,6 +32,7 @@ use CGI;
use C4::Members;
use C4::Branch;
use C4::Accounts;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
my $input=new CGI;
@@ -96,6 +97,7 @@ $template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' );
my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
finesview => 1,
@@ -120,6 +122,8 @@ $template->param(
totalcredit => $totalcredit,
is_child => ($data->{'category_type'} eq 'C'),
reverse_col => $reverse_col,
- accounts => $accts );
+ accounts => $accts,
+ extendedattributes => $attributes,
+);
output_html_with_http_headers $input, $cookie, $template->output;
--- a/members/mancredit.pl
+++ a/members/mancredit.pl
@@ -33,6 +33,7 @@ use C4::Members;
use C4::Branch;
use C4::Accounts;
use C4::Items;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
my $input=new CGI;
@@ -77,6 +78,7 @@ if ($add){
$template->param( adultborrower => 1 ) if ( $data->{category_type} eq 'A' );
my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
+ my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
borrowernumber => $borrowernumber,
@@ -97,6 +99,7 @@ if ($add){
branchcode => $data->{'branchcode'},
branchname => GetBranchName($data->{'branchcode'}),
is_child => ($data->{'category_type'} eq 'C'),
+ extendedattributes => $attributes,
);
output_html_with_http_headers $input, $cookie, $template->output;
}
--- a/members/maninvoice.pl
+++ a/members/maninvoice.pl
@@ -32,6 +32,7 @@ use C4::Members;
use C4::Accounts;
use C4::Items;
use C4::Branch;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
my $input=new CGI;
@@ -105,6 +106,7 @@ if ($add){
$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' );
my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
+ my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
borrowernumber => $borrowernumber,
@@ -125,6 +127,7 @@ if ($add){
branchcode => $data->{'branchcode'},
branchname => GetBranchName($data->{'branchcode'}),
is_child => ($data->{'category_type'} eq 'C'),
+ extendedattributes => $attributes,
);
output_html_with_http_headers $input, $cookie, $template->output;
}
--- a/members/member-flags.pl
+++ a/members/member-flags.pl
@@ -13,6 +13,7 @@ use C4::Auth qw(:DEFAULT :EditPermissions);
use C4::Context;
use C4::Members;
use C4::Branch;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
#use C4::Acquisitions;
use C4::Output;
@@ -161,7 +162,8 @@ if ($input->param('newflags')) {
$template->param( adultborrower => 1 ) if ( $bor->{'category_type'} eq 'A' );
my ($picture, $dberror) = GetPatronImage($bor->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
-
+my $attributes = GetBorrowerAttributes($bor->{'borrowernumber'});
+
$template->param(
borrowernumber => $bor->{'borrowernumber'},
cardnumber => $bor->{'cardnumber'},
@@ -182,6 +184,7 @@ $template->param(
branchname => GetBranchName($bor->{'branchcode'}),
loop => \@loop,
is_child => ($bor->{'category_type'} eq 'C'),
+ extendedattributes => $attributes,
);
output_html_with_http_headers $input, $cookie, $template->output;
--- a/members/member-password.pl
+++ a/members/member-password.pl
@@ -14,6 +14,7 @@ use C4::Members;
use C4::Branch;
use C4::Circulation;
use CGI;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
use Digest::MD5 qw(md5_base64);
@@ -89,7 +90,8 @@ if ( $newpassword && ! $errormsg ) {
$template->param( adultborrower => 1 ) if ( $bor->{'category_type'} eq 'A' );
my ($picture, $dberror) = GetPatronImage($bor->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
-
+my $attributes = GetBorrowerAttributes($bor->{'borrowernumber'});
+
$template->param( othernames => $bor->{'othernames'},
surname => $bor->{'surname'},
firstname => $bor->{'firstname'},
@@ -111,7 +113,8 @@ $template->param( picture => 1 ) if $picture;
userid => $bor->{'userid'},
destination => $destination,
is_child => ($bor->{'category_type'} eq 'C'),
- defaultnewpassword => $defaultnewpassword
+ defaultnewpassword => $defaultnewpassword,
+ extendedattributes => $attributes,
);
--- a/members/messaging.pl
+++ a/members/messaging.pl
@@ -35,6 +35,7 @@ use C4::Letters;
use C4::Biblio;
use C4::Reserves;
use C4::Branch; # GetBranchName
+use C4::Members::Attributes qw(GetBorrowerAttributes);
use Data::Dumper;
@@ -79,6 +80,7 @@ $template->param( picture => 1 ) if $picture;
# get some recent messages sent to this borrower for display:
my $message_queue = C4::Letters::GetQueuedMessages( { borrowernumber => $query->param('borrowernumber') } );
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param( messagingview => 1,
message_queue => $message_queue,
@@ -88,6 +90,7 @@ $template->param( messagingview => 1,
dateformat => C4::Context->preference("dateformat"),
categoryname => $borrower->{'description'},
$borrower->{'categorycode'} => 1,
+ extendedattributes => $attributes,
);
#$messaging_preferences->{'SMSnumber'}{'value'} = defined $borrower->{'smsalertnumber'}
--- a/members/moremember.pl
+++ a/members/moremember.pl
@@ -52,6 +52,7 @@ use C4::Branch; # GetBranchName
use C4::Form::MessagingPreferences;
use C4::NewsChannels; #get slip news
use List::MoreUtils qw/uniq/;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
#use Smart::Comments;
#use Data::Dumper;
@@ -438,6 +439,7 @@ if (C4::Context->preference('EnhancedMessagingPreferences')) {
$template->param(SMSSendDriver => C4::Context->preference("SMSSendDriver"));
$template->param(SMSnumber => defined $data->{'smsalertnumber'} ? $data->{'smsalertnumber'} : $data->{'mobile'});
}
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
detailview => 1,
@@ -467,6 +469,7 @@ $template->param(
"dateformat_" . (C4::Context->preference("dateformat") || '') => 1,
samebranch => $samebranch,
quickslip => $quickslip,
+ extendedattributes => $attributes,
);
#Get the slip news items
--- a/members/notices.pl
+++ a/members/notices.pl
@@ -27,6 +27,7 @@ use CGI;
use C4::Members;
use C4::Branch;
use C4::Letters;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
use C4::Dates qw/format_date/;
my $input=new CGI;
@@ -52,11 +53,13 @@ $template->param( picture => 1 ) if $picture;
# Getting the messages
my $queued_messages = C4::Letters::GetQueuedMessages({borrowernumber => $borrowernumber});
$template->param( %{$borrower} );
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
QUEUED_MESSAGES => $queued_messages,
borrowernumber => $borrowernumber,
- sentnotices => 1
+ sentnotices => 1,
+ extendedattributes => $attributes,
);
output_html_with_http_headers $input, $cookie, $template->output;
--- a/members/pay.pl
+++ a/members/pay.pl
@@ -39,6 +39,7 @@ use C4::Stats;
use C4::Koha;
use C4::Overdues;
use C4::Branch; # GetBranches
+use C4::Members::Attributes qw(GetBorrowerAttributes);
my $input = new CGI;
@@ -152,6 +153,7 @@ if ( $data->{'category_type'} eq 'C') {
$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' );
my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
allfile => \@allfile,
@@ -173,7 +175,8 @@ $template->param( picture => 1 ) if $picture;
branchcode => $data->{'branchcode'},
branchname => GetBranchName($data->{'branchcode'}),
is_child => ($data->{'category_type'} eq 'C'),
- total => sprintf( "%.2f", $total )
+ total => sprintf( "%.2f", $total ),
+ extendedattributes => $attributes,
);
output_html_with_http_headers $input, $cookie, $template->output;
--- a/members/readingrec.pl
+++ a/members/readingrec.pl
@@ -32,6 +32,7 @@ use C4::Branch;
use List::MoreUtils qw/any/;
use C4::Dates qw/format_date/;
+use C4::Members::Attributes qw(GetBorrowerAttributes);
my $input = CGI->new;
@@ -95,6 +96,7 @@ if (! $limit){
my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'});
$template->param( picture => 1 ) if $picture;
+my $attributes = GetBorrowerAttributes($borrowernumber);
$template->param(
readingrecordview => 1,
@@ -122,7 +124,9 @@ $template->param(
is_child => ($data->{'category_type'} eq 'C'),
branchname => GetBranchName($data->{'branchcode'}),
showfulllink => (scalar @loop_reading > 50),
- loop_reading => \@loop_reading);
+ loop_reading => \@loop_reading,
+ extendedattributes => $attributes,
+);
output_html_with_http_headers $input, $cookie, $template->output;
--