[Koha-patches] [PATCH] Bug 5436: Extended patron attributes display improvements

Julian Maurice julian.maurice at biblibre.com
Mon Mar 21 12:18:57 CET 2011


From: Henri-Damien LAURENT <henridamien.laurent at biblibre.com>

(MT #2262) member search improving
if only one member is found, go directly to his details.

change borrower link in return.pl
go to circulation.pl instead of moremembers.pl

(MT #2262) Show extended attributes in borrower toolbar
This made some modifications to be more generic, and to show extended attributes in borrower "toolbar".
It hide by default the borrower address, and the user have a toggle link to show/hide the user address.

(bug #MT2262) don't show all attributes
this hide non-active extended attributes in circulation.

(MT2262) Followup : Enhancement to extended attributes display
View/Hide address improvement in moremember.pl
---
 C4/Members.pm                                      |   46 ++++++++-
 C4/Members/AttributeTypes.pm                       |   31 +++++-
 C4/Members/Attributes.pm                           |    3 +-
 admin/patron-attr-types.pl                         |    9 ++-
 circ/circulation.pl                                |   13 +--
 .../0009-patron-attr-display-checkout.pl           |    7 ++
 installer/data/mysql/kohastructure.sql             |    1 +
 .../intranet-tmpl/prog/en/css/staff-global.css     |   32 ++++++
 .../intranet-tmpl/prog/en/includes/circ-menu.inc   |  111 +++++++++++++-------
 .../prog/en/modules/admin/patron-attr-types.tmpl   |    5 +
 .../prog/en/modules/circ/returns.tmpl              |    2 +-
 .../prog/en/modules/members/moremember.tmpl        |    2 +-
 .../intranet-tmpl/prog/img/more-right-arrow.gif    |  Bin 0 -> 81 bytes
 members/member.pl                                  |    6 +
 members/moremember.pl                              |    3 +-
 15 files changed, 211 insertions(+), 60 deletions(-)
 create mode 100644 installer/data/mysql/atomicupdate/0009-patron-attr-display-checkout.pl
 create mode 100644 koha-tmpl/intranet-tmpl/prog/img/more-right-arrow.gif

diff --git a/C4/Members.pm b/C4/Members.pm
index ace939d..4f2fe0f 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -26,12 +26,13 @@ use C4::Dates qw(format_date_in_iso);
 use Digest::MD5 qw(md5_base64);
 use Date::Calc qw/Today Add_Delta_YM/;
 use C4::Log; # logaction
+use C4::Branch;
 use C4::Overdues;
 use C4::Reserves;
 use C4::Accounts;
 use C4::Biblio;
 use C4::SQLHelper qw(InsertInTable UpdateInTable SearchInTable);
-use C4::Members::Attributes qw(SearchIdMatchingAttribute);
+use C4::Members::Attributes qw(SearchIdMatchingAttribute GetBorrowerAttributes);
 
 our ($VERSION, at ISA, at EXPORT, at EXPORT_OK,$debug);
 
@@ -88,6 +89,8 @@ BEGIN {
 		&DeleteMessage
 		&GetMessages
 		&GetMessagesCount
+
+        &SetMemberInfosInTemplate
 	);
 
 	#Modify data
@@ -1651,6 +1654,47 @@ sub DelMember {
     return $sth->rows;
 }
 
+=head2 SetMemberInfosInTemplate
+    &SetMemberInfosInTemplate($borrowernumber, $template)
+    
+    
+Settings borrower informations for template user
+
+=cut
+
+sub SetMemberInfosInTemplate {
+    my ($borrowernumber, $template) = @_;
+    
+    my $borrower = GetMemberDetails( $borrowernumber, 0 );
+    foreach my $key (keys %$borrower){
+        $template->param($key => $borrower->{$key});
+    }
+    
+    # Computes full borrower address
+    my (undef, $roadttype_hashref) = &GetRoadTypes();
+    my $address = $borrower->{'streetnumber'}.' '.$roadttype_hashref->{$borrower->{'streettype'}}.' '.$borrower->{'address'};
+    $template->param(is_child  => ($borrower->{'category_type'} eq 'C'),
+                    address    => $address,
+                    branchname => GetBranchName($borrower->{'branchcode'}),
+                    );
+                    
+    foreach (qw(dateenrolled dateexpiry dateofbirth)) {
+		my $userdate = $borrower->{$_};
+		unless ($userdate) {
+			$borrower->{$_} = '';
+			next;
+		}
+		$userdate = C4::Dates->new($userdate,'iso')->output('syspref');
+		$borrower->{$_} = $userdate || '';
+		$template->param( $_ => $userdate );
+    }
+    
+    my $attributes = GetBorrowerAttributes($borrowernumber);
+    $template->param(
+        extendedattributes => $attributes,
+    );
+}
+
 =head2 ExtendMemberSubscriptionTo (OUEST-PROVENCE)
 
     $date = ExtendMemberSubscriptionTo($borrowerid, $date);
diff --git a/C4/Members/AttributeTypes.pm b/C4/Members/AttributeTypes.pm
index 21d17eb..37193fa 100644
--- a/C4/Members/AttributeTypes.pm
+++ b/C4/Members/AttributeTypes.pm
@@ -102,6 +102,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;
@@ -136,6 +137,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;
@@ -166,14 +168,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'});
@@ -182,7 +185,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;
 
 }
@@ -288,6 +292,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();
diff --git a/C4/Members/Attributes.pm b/C4/Members/Attributes.pm
index 1db9424..4976d76 100644
--- a/C4/Members/Attributes.pm
+++ b/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;
diff --git a/admin/patron-attr-types.pl b/admin/patron-attr-types.pl
index 1dfe442..c32b6c2 100755
--- a/admin/patron-attr-types.pl
+++ b/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(
diff --git a/circ/circulation.pl b/circ/circulation.pl
index 1ed4afd..8ae2f32 100755
--- a/circ/circulation.pl
+++ b/circ/circulation.pl
@@ -231,8 +231,8 @@ if ($borrowernumber) {
 
     # Warningdate is the date that the warning starts appearing
     my (  $today_year,   $today_month,   $today_day) = Today();
-    my ($warning_year, $warning_month, $warning_day) = split /-/, $borrower->{'dateexpiry'};
-    my (  $enrol_year,   $enrol_month,   $enrol_day) = split /-/, $borrower->{'dateenrolled'};
+    my ($warning_year, $warning_month, $warning_day) = split (/-/, $borrower->{'dateexpiry'});
+    my (  $enrol_year,   $enrol_month,   $enrol_day) = split (/-/, $borrower->{'dateenrolled'});
     # Renew day is calculated by adding the enrolment period to today
     my (  $renew_year,   $renew_month,   $renew_day);
     if ($enrol_year*$enrol_month*$enrol_day>0) {
@@ -611,10 +611,6 @@ if($lib_messages_loop){ $template->param(flagged => 1 ); }
 my $bor_messages_loop = GetMessages( $borrowernumber, 'B', $branch );
 if($bor_messages_loop){ $template->param(flagged => 1 ); }
 
-# Computes full borrower address
-my (undef, $roadttype_hashref) = &GetRoadTypes();
-my $address = $borrower->{'streetnumber'}.' '.$roadttype_hashref->{$borrower->{'streettype'}}.' '.$borrower->{'address'};
-
 my $fast_cataloging = 0;
     if (defined getframeworkinfo('FA')) {
     $fast_cataloging = 1 
@@ -635,9 +631,7 @@ $template->param(
     surname           => $borrower->{'surname'},
     dateexpiry        => format_date($newexpiry),
     expiry            => format_date($borrower->{'dateexpiry'}),
-    categorycode      => $borrower->{'categorycode'},
     categoryname      => $borrower->{description},
-    address           => $address,
     address2          => $borrower->{'address2'},
     email             => $borrower->{'email'},
     emailpro          => $borrower->{'emailpro'},
@@ -646,7 +640,6 @@ $template->param(
     zipcode           => $borrower->{'zipcode'},
     country           => $borrower->{'country'},
     phone             => $borrower->{'phone'} || $borrower->{'mobile'},
-    cardnumber        => $borrower->{'cardnumber'},
     amountold         => $amountold,
     barcode           => $barcode,
     stickyduedate     => $stickyduedate,
@@ -666,6 +659,8 @@ $template->param(
     fast_cataloging   => $fast_cataloging,
 );
 
+SetMemberInfosInTemplate($borrowernumber, $template);
+
 # save stickyduedate to session
 if ($stickyduedate) {
     $session->param( 'stickyduedate', $duedatespec );
diff --git a/installer/data/mysql/atomicupdate/0009-patron-attr-display-checkout.pl b/installer/data/mysql/atomicupdate/0009-patron-attr-display-checkout.pl
new file mode 100644
index 0000000..44cfcfa
--- /dev/null
+++ b/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";
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index a62e07c..ec0b587 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -281,6 +281,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;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
index 49ed8c3..98066cd 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
+++ b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
@@ -1924,6 +1924,38 @@ ul.budget_hierarchy li:last-child:after {
 ul.budget_hierarchy li:first-child:after {
     content: "";
 }
+#cartmenulink img {
+	background-image : none;
+	display : inline;
+	padding : 3px 6px 0 0;
+}
+
+* html #cartmenulink {
+	border : 1px solid #336600;
+}
+
+* html #listsmenulink {
+	border : 1px solid #006699;
+}
+
+#collapsedaddress {
+    border: solid 1px #eee;
+    margin-right: 10px;
+    overflow: hidden;
+}
+#toggleaddress {
+    display: block;
+    padding: 2px 2px 2px 12px;
+    margin-right: 10px;
+    cursor: pointer;
+}
+.toggleaddress {
+    background: #eee url(../../img/more-right-arrow.gif) 0 50% no-repeat;
+}
+.toggleaddress2 {
+    background: #eee url(../../img/more-up-arrow.gif) 0 50% no-repeat;
+}
+
 .holdcount { font-size : 105%; line-height : 200%; }
 .holdcount a { border : 1px solid #a4bedd; background-color : #e4ecf5; font-weight : bold; -moz-border-radius: 4px; padding : .1em .4em; text-decoration : none; }
 .holdcount a:hover { background-color : #ebeff7; }
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
index 56dd2f2..28c0841 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
@@ -4,6 +4,19 @@
 <style type="tex/css">img { width: expression(this.width > 140 ? 140: true);
 }</style>
 <![endif]-->
+<script type="text/javascript">
+$(document).ready(function()
+{
+  //hide the all of the element with class msg_body
+  $("#collapsedaddress").hide();
+  //toggle the componenet with class msg_body
+  $("#toggleaddress").click(function()
+  {
+    $("#collapsedaddress").slideToggle("normal");
+    $("#toggleaddress").toggleClass("toggleaddress2");
+  });
+});
+</script>
 <ul>
 <!-- TMPL_IF NAME="patronimages" -->
 <!-- TMPL_IF NAME="picture" -->
@@ -12,46 +25,64 @@
 <li><img src="/intranet-tmpl/prog/img/patron-blank.png" alt="<!-- TMPL_VAR name="firstname" --> <!-- TMPL_VAR name="surname" --> (<!-- TMPL_VAR NAME="cardnumber" -->)" border="0" style="margin: .3em 0 .3em .3em; padding: .2em; border: 1px solid #CCCCCC;" /></li>
 <!-- /TMPL_IF -->
 <!-- /TMPL_IF -->
-    <li><!-- TMPL_IF NAME="address"-->
-            <!-- TMPL_VAR NAME="address" -->
-    <!-- TMPL_ELSE -->
-            <span class="empty">No address stored.</span>
-    <!-- /TMPL_IF --></li>
-    <!-- TMPL_IF NAME="address2" -->
-        <li><!-- TMPL_VAR NAME="address2" --></li>
-    <!-- /TMPL_IF --><li> 
-    <!-- TMPL_IF NAME="city" -->
-            <!-- TMPL_VAR NAME="city" -->
-	    <!-- TMPL_VAR NAME="zipcode" -->
-	    <!-- TMPL_IF NAME="country" -->, <!-- TMPL_VAR NAME="country" --><!-- /TMPL_IF -->
-    <!-- TMPL_ELSE -->
-        <span class="empty">No city stored.</span>
-    <!-- /TMPL_IF --></li>
-    <li><!--TMPL_IF NAME="phone" -->
-        <!-- TMPL_VAR NAME="phone" -->
-    <!-- TMPL_ELSE -->
-        <!--TMPL_IF NAME="mobile" -->
-            <!-- TMPL_VAR NAME="mobile" -->
-        <!-- TMPL_ELSE -->
-            <!--TMPL_IF NAME="phonepro" -->
-                <!-- TMPL_VAR NAME="phonepro" -->
-            <!-- TMPL_ELSE -->
-                <span class="empty">No phone stored.</span>    
-            <!-- /TMPL_IF -->
-        <!-- /TMPL_IF -->
-    <!-- /TMPL_IF --></li>
-    <!-- TMPL_IF NAME="email" -->
-        <li class="email"> <a href="mailto:<!-- TMPL_VAR NAME="email" -->" title="<!-- TMPL_VAR NAME="email" -->"><!-- TMPL_VAR NAME="email" --></a></li>
-    <!-- TMPL_ELSE -->
-        <!-- TMPL_IF NAME="emailpro" -->
-            <li class="email"> <a href="mailto:<!-- TMPL_VAR NAME="emailpro" -->" title="<!-- TMPL_VAR NAME="emailpro" -->"><!-- TMPL_VAR NAME="emailpro" --></a></li>
-        <!-- TMPL_ELSE -->
-            <li> <span class="empty">No email stored.</span>    </li>
-        <!-- /TMPL_IF -->
-    <!-- /TMPL_IF -->
-    <li>Category: <!-- TMPL_VAR NAME="categoryname" --> (<!-- TMPL_VAR NAME="categorycode" -->)</li>
-    <li>Home Library: <!-- TMPL_IF NAME="branchname" --><!-- TMPL_VAR NAME="branchname" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="branch" --><!-- /TMPL_IF --></li>
-</ul></div>
+    <li><!-- TMPL_VAR NAME="categoryname" --> (<!-- TMPL_VAR NAME="categorycode" -->)</li>
+    <li><!-- TMPL_IF NAME="branchname" --><!-- TMPL_VAR NAME="branchname" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="branch" --><!-- /TMPL_IF --></li>
+    <!-- TMPL_LOOP NAME="extendedattributes" -->
+    	<!-- TMPL_IF NAME="display_checkout" -->
+    		<!-- TMPL_IF NAME="value" -->
+    			<!-- TMPL_VAR NAME="description" --> : <!-- TMPL_IF NAME="value_description" --><!-- TMPL_VAR NAME="value_description" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="value" --><!-- /TMPL_IF -->
+    		<!-- /TMPL_IF -->
+    	<!-- /TMPL_IF -->
+    <!-- /TMPL_LOOP -->
+    <li>
+		<div id="collapsedaddress">
+			<p>
+		    <!-- TMPL_IF NAME="address"-->
+		            <!-- TMPL_VAR NAME="address" -->
+		    <!-- TMPL_ELSE -->
+		            <span class="empty">No address stored.</span>
+		    <!-- /TMPL_IF -->
+		    <!-- TMPL_IF NAME="address2" -->
+		        <!-- TMPL_VAR NAME="address2" -->
+		    <!-- /TMPL_IF -->
+		    <!-- TMPL_IF NAME="city" -->
+		            <!-- TMPL_VAR NAME="city" -->
+			    <!-- TMPL_VAR NAME="zipcode" -->
+			    <!-- TMPL_IF NAME="country" -->, <!-- TMPL_VAR NAME="country" --><!-- /TMPL_IF -->
+		    <!-- TMPL_ELSE -->
+		        <span class="empty">No city stored.</span>
+		    <!-- /TMPL_IF -->
+		    </p>
+		    <p>
+		    <!--TMPL_IF NAME="phone" -->
+		        <!-- TMPL_VAR NAME="phone" -->
+		    <!-- TMPL_ELSE -->
+		        <!--TMPL_IF NAME="mobile" -->
+		            <!-- TMPL_VAR NAME="mobile" -->
+		        <!-- TMPL_ELSE -->
+		            <!--TMPL_IF NAME="phonepro" -->
+		                <!-- TMPL_VAR NAME="phonepro" -->
+		            <!-- TMPL_ELSE -->
+		                <span class="empty">No phone stored.</span>    
+		            <!-- /TMPL_IF -->
+		        <!-- /TMPL_IF -->
+		    <!-- /TMPL_IF -->
+		    </p><p>
+		    <!-- TMPL_IF NAME="email" -->
+		        <a href="mailto:<!-- TMPL_VAR NAME="email" -->" title="<!-- TMPL_VAR NAME="email" -->"><!-- TMPL_VAR NAME="email" --></a>
+		    <!-- TMPL_ELSE -->
+		        <!-- TMPL_IF NAME="emailpro" -->
+		            <a href="mailto:<!-- TMPL_VAR NAME="emailpro" -->" title="<!-- TMPL_VAR NAME="emailpro" -->"><!-- TMPL_VAR NAME="emailpro" --></a>
+		        <!-- TMPL_ELSE -->
+		            <span class="empty">No email stored.</span>
+		        <!-- /TMPL_IF -->
+		    <!-- /TMPL_IF -->
+		    </p>
+		</div>
+		<a id="toggleaddress" class="toggleaddress">View/Hide address</a>
+    </li>
+</ul>
+</div>
 <div id="menu">
 <ul>
 	<!-- TMPL_IF NAME="circview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->">Check Out</a></li>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tmpl
index b445c41..e969273 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/patron-attr-types.tmpl
@@ -122,6 +122,11 @@ function CheckAttributeTypeForm(f) {
             <input type="checkbox" id="staff_searchable" name="staff_searchable" <!-- TMPL_VAR name="staff_searchable_checked" --> />
             <span>Check to make this attribute staff_searchable in the staff patron search.</span>
        </li>
+       <li><label for="display_checkout">Display in check-out: </label>
+            <input type="checkbox" id="display_checkout" name="display_checkout" <!-- TMPL_VAR name="display_checkout_checked" --> />
+            <span>Check to show this attribute in member check-out.</span>
+       </li>
+       
         <li><label for="authorised_value_category">Authorized value category: </label>
             <select name="authorised_value_category" id="authorised_value_category">
                 <option value=""></option>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl
index 724a3e9..b65d71d 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tmpl
@@ -406,7 +406,7 @@ function Dopop(link) {
             <td><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="itembiblionumber" -->&amp;itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#item<!-- TMPL_VAR NAME="itemnumber" -->"><!-- TMPL_VAR Name="barcode" --></a></td>
             <td><!-- TMPL_VAR Name="itemtype" --> <!-- TMPL_VAR Name="ccode" --></td>
 			<td><!-- TMPL_IF Name="duedate" -->
-                <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=<!-- TMPL_VAR Name="borrowernumber" -->">
+                <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=<!-- TMPL_VAR Name="borrowernumber" -->">
                     <!-- TMPL_VAR Name="borsurname" -->, <!-- TMPL_VAR Name="borfirstname" --> (<!-- TMPL_VAR name="borcategorycode" -->)
                 </a>
             <!-- TMPL_ELSE -->Not checked out<!-- /TMPL_IF --></td>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl
index 2cdc13a..34cf05b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl
@@ -168,7 +168,7 @@ function validate1(date) {
 
      <!-- TMPL_UNLESS NAME="I" --><!-- TMPL_IF NAME="othernames" -->&ldquo;<!-- TMPL_VAR NAME="othernames" -->&rdquo;<!-- /TMPL_IF -->
 
-<p class="address"><!-- TMPL_VAR NAME="streetnumber" -->
+<p class="address">
         <!--TMPL_IF NAME="roaddetails"-->
          <!-- TMPL_VAR NAME="roaddetails" -->,
         <!-- /TMPL_IF -->
diff --git a/koha-tmpl/intranet-tmpl/prog/img/more-right-arrow.gif b/koha-tmpl/intranet-tmpl/prog/img/more-right-arrow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1729fafa7cb9d8d01a37a4dc55558255f3619549
GIT binary patch
literal 81
zcmZ?wbhEHb<YwSyXkcV8PMi7v|9{1Qg3d*$i6yBi3gww484B*6z5xu1KUo+V7#JCJ
i7=QqzoPkNWr+?*X*#`|Nn^tuRww=^_*W%5{U=0A}+!)vZ

literal 0
HcmV?d00001

diff --git a/members/member.pl b/members/member.pl
index f66b851..73a0dab 100755
--- a/members/member.pl
+++ b/members/member.pl
@@ -115,6 +115,12 @@ if ($results) {
 	}
     $count = scalar(@$results);
 }
+
+if($count == 1){
+    print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=" . @$results[0]->{borrowernumber});
+    exit;
+}
+
 my @resultsdata;
 $to=($count>$to?$to:$count);
 my $index=$from;
diff --git a/members/moremember.pl b/members/moremember.pl
index bb593c4..02dcf9f 100755
--- a/members/moremember.pl
+++ b/members/moremember.pl
@@ -145,7 +145,6 @@ foreach (qw(dateenrolled dateexpiry dateofbirth)) {
 		$data->{$_} = $userdate || '';
 		$template->param( $_ => $userdate );
 }
-$data->{'IS_ADULT'} = ( $data->{'categorycode'} ne 'I' );
 
 for (qw(debarred gonenoaddress lost borrowernotes)) {
 	 $data->{$_} and $template->param(flagged => 1) and last;
@@ -405,7 +404,7 @@ $template->param( picture => 1 ) if $picture;
 
 my $branch=C4::Context->userenv->{'branch'};
 
-$template->param($data);
+SetMemberInfosInTemplate($borrowernumber, $template);
 
 if (C4::Context->preference('ExtendedPatronAttributes')) {
     $template->param(ExtendedPatronAttributes => 1);
-- 
1.7.4.1



More information about the Koha-patches mailing list