[Koha-patches] [PATCH] [SIGNED OFF] Incremental fix for Bug 3285 - Location on Add Subscription should be pull down

Colin Campbell colin.campbell at ptfs-europe.com
Mon Dec 6 12:56:12 CET 2010


From: Owen Leonard <oleonard at myacpl.org>

- Adds location dropdown to subscription edit form
- Pulls authorised value for display on subscription detail page
- Adds function for pulling authorised value description based
  on category and value

This patch does NOT implement automatic preselection of the shelving
location form field on the serial add item screen. This must be
worked out in order for the bug to be closed.

Signed-off-by: Colin Campbell <colin.campbell at ptfs-europe.com>
---
 C4/Koha.pm                                         |   22 ++++++++++++++++++++
 .../prog/en/modules/serials/subscription-add.tmpl  |    5 +++-
 serials/subscription-add.pl                        |    4 +++
 serials/subscription-detail.pl                     |    2 +-
 4 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/C4/Koha.pm b/C4/Koha.pm
index a63a3a5..d10c52e 100644
--- a/C4/Koha.pm
+++ b/C4/Koha.pm
@@ -57,6 +57,7 @@ BEGIN {
 		&GetAuthorisedValueCategories
 		&GetKohaAuthorisedValues
 		&GetKohaAuthorisedValuesFromField
+    &GetKohaAuthorisedValueLib
 		&GetAuthValCode
 		&GetNormalizedUPC
 		&GetNormalizedISBN
@@ -1214,6 +1215,27 @@ sub xml_escape {
     return $str;
 }
 
+=head2 GetKohaAuthorisedValueLib
+
+Takes $category, $authorised_value as parameters.
+
+If $opac parameter is set to a true value, displays OPAC descriptions rather than normal ones when they exist.
+
+Returns authorised value description
+
+=cut
+
+sub GetKohaAuthorisedValueLib {
+  my ($category,$authorised_value,$opac) = @_;
+  my $value;
+  my $dbh = C4::Context->dbh;
+  my $sth = $dbh->prepare("select lib, lib_opac from authorised_values where category=? and authorised_value=?");
+  $sth->execute($category,$authorised_value);
+  my $data = $sth->fetchrow_hashref;
+  $value = ($opac && $$data{'lib_opac'}) ? $$data{'lib_opac'} : $$data{'lib'};
+  return $value;
+}
+
 =head2 display_marc_indicators
 
   my $display_form = C4::Koha::display_marc_indicators($field);
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
index 5a665de..ae4932e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
@@ -1007,7 +1007,10 @@ $(document).ready(function() {
         </li>
         <li>
             <label for="location">Location:</label>
-            <input type="text" name="location" id="location" value="<!-- TMPL_VAR name="location" -->" size="30" />
+            <select name="location" id="location">
+                <option value="">None</option>
+                <!-- TMPL_LOOP NAME="locations_loop" --><!-- TMPL_IF NAME="selected" --><option value="<!-- TMPL_VAR NAME="authorised_value" -->" selected="selected"><!-- TMPL_VAR NAME="lib" --></option><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR NAME="authorised_value" -->"><!-- TMPL_VAR NAME="lib" --></option><!-- /TMPL_IF --><!-- /TMPL_LOOP -->
+            </select>
         </li>
          <li>
             <label for="callnumber">Call Number:</label>
diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl
index 143cf88..72eee22 100755
--- a/serials/subscription-add.pl
+++ b/serials/subscription-add.pl
@@ -130,8 +130,12 @@ for my $thisbranch (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{b
         branchname => $branches->{$thisbranch}->{'branchname'},
     };
 }
+
+my $locations_loop = GetAuthorisedValues("LOC",$subs->{'location'});
+
 $template->param(branchloop => $branchloop,
     DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+    locations_loop=>$locations_loop,
 );
 # prepare template variables common to all $op conditions:
 $template->param(  'dateformat_' . C4::Context->preference('dateformat') => 1 );
diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl
index 7324d59..4233d9f 100755
--- a/serials/subscription-detail.pl
+++ b/serials/subscription-detail.pl
@@ -103,8 +103,8 @@ my ($user, $sessionID, $flags);
 for my $date qw(startdate enddate firstacquidate histstartdate histenddate){
     $$subs{$date}      = format_date($$subs{$date}) if $date && $$subs{$date};
 }
+$subs->{location} = GetKohaAuthorisedValueLib("LOC",$subs->{location});
 $subs->{abouttoexpire}  = abouttoexpire($subs->{subscriptionid});
-
 $template->param($subs);
 $template->param(biblionumber_for_new_subscription => $subs->{bibnum});
 my @irregular_issues = split /,/, $subs->{irregularity};
-- 
1.7.3.2



More information about the Koha-patches mailing list