From 46b9ee7a931ed079c6175330a26fc6cc155405bb Mon Sep 17 00:00:00 2001 From: Joe Atzberger Date: Wed, 8 Jul 2009 16:52:18 -0500 Subject: [PATCH] Branch auto-selection in additem Adding a new item should pre-select the library you are logged in at, where possible. Use GetBranchesLoop. This solves indy branches filtering, and sort order problems. Set default off of ->{selected}, to establish pre-selected branch. Fix flags check in onlymine sub, so superlibrarian + other flags still gets everything. Removed defined(@array) check, since perl -wc warns it is deprecated. Note new FIXME for botched date processing. Signed-off-by: Galen Charlton --- C4/Branch.pm | 2 +- cataloguing/additem.pl | 27 +++++++------------ .../prog/en/modules/cataloguing/additem.tmpl | 2 +- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/C4/Branch.pm b/C4/Branch.pm index a2558d9c76..7dfd737245 100644 --- a/C4/Branch.pm +++ b/C4/Branch.pm @@ -141,7 +141,7 @@ sub onlymine { return C4::Context->preference('IndependantBranches') && C4::Context->userenv && - C4::Context->userenv->{flags}!=1 && + C4::Context->userenv->{flags} %2 != 1 && C4::Context->userenv->{branch} ; } diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index a7595e7130..9509e43938 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -197,8 +197,7 @@ my ($branchtagfield, $branchtagsubfield) = &GetMarcFromKohaField("items.homebran foreach my $field (@fields) { next if ($field->tag()<10); - my @subf = $field->subfields; - (defined @subf) or @subf = (); + my @subf = $field->subfields || (); my %this_row; # loop through each subfield for my $i (0..$#subf) { @@ -254,11 +253,8 @@ my @loop_data =(); my $i=0; my $authorised_values_sth = $dbh->prepare("SELECT authorised_value,lib FROM authorised_values WHERE category=? ORDER BY lib"); -my $onlymine = C4::Context->preference('IndependantBranches') && - C4::Context->userenv && - C4::Context->userenv->{flags} % 2 == 0 && - C4::Context->userenv->{branch}; -my $branches = GetBranches($onlymine); # build once ahead of time, instead of multiple times later. +my $branches = GetBranchesLoop(); # build once ahead of time, instead of multiple times later. +my $pref_itemcallnumber = C4::Context->preference('itemcallnumber'); foreach my $tag (sort keys %{$tagslib}) { # loop through each subfield @@ -286,14 +282,13 @@ foreach my $tag (sort keys %{$tagslib}) { unless ($value) { $value = $tagslib->{$tag}->{$subfield}->{defaultvalue}; # get today date & replace YYYY, MM, DD if provided in the default value - my ( $year, $month, $day ) = split ',', $today_iso; + my ( $year, $month, $day ) = split ',', $today_iso; # FIXME: iso dates don't have commas! $value =~ s/YYYY/$year/g; $value =~ s/MM/$month/g; $value =~ s/DD/$day/g; } $subfield_data{visibility} = "display:none;" if (($tagslib->{$tag}->{$subfield}->{hidden} > 4) || ($tagslib->{$tag}->{$subfield}->{hidden} < -4)); # testing branch value if IndependantBranches. - my $pref_itemcallnumber = C4::Context->preference('itemcallnumber'); if (!$value && $tagslib->{$tag}->{$subfield}->{kohafield} eq 'items.itemcallnumber' && $pref_itemcallnumber) { my $CNtag = substr($pref_itemcallnumber, 0, 3); my $CNsubfield = substr($pref_itemcallnumber, 3, 1); @@ -314,27 +309,25 @@ foreach my $tag (sort keys %{$tagslib}) { # builds list, depending on authorised value... if ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "branches" ) { - foreach my $thisbranch ( sort keys %$branches ) { - push @authorised_values, $thisbranch; - $authorised_lib{$thisbranch} = $branches->{$thisbranch}->{'branchname'}; + foreach my $thisbranch (@$branches) { + push @authorised_values, $thisbranch->{value}; + $authorised_lib{$thisbranch->{value}} = $thisbranch->{branchname}; + $value = $thisbranch->{value} if $thisbranch->{selected}; } } elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "itemtypes" ) { push @authorised_values, "" unless ( $tagslib->{$tag}->{$subfield}->{mandatory} ); my $sth = $dbh->prepare("select itemtype,description from itemtypes order by description"); $sth->execute; - my $itemtype; # FIXME: double declaration of $itemtype while ( my ( $itemtype, $description ) = $sth->fetchrow_array ) { push @authorised_values, $itemtype; $authorised_lib{$itemtype} = $description; } unless ( $value ) { - my $default_itemtype; my $itype_sth = $dbh->prepare("SELECT itemtype FROM biblioitems WHERE biblionumber = ?"); $itype_sth->execute( $biblionumber ); - ( $default_itemtype ) = $itype_sth->fetchrow_array; - $value = $default_itemtype; + ( $value ) = $itype_sth->fetchrow_array; } #---- class_sources @@ -364,7 +357,7 @@ foreach my $tag (sort keys %{$tagslib}) { $authorised_lib{$value} = $lib; } } - $subfield_data{marc_value} =CGI::scrolling_list( # FIXME: factor out scrolling_list + $subfield_data{marc_value} =CGI::scrolling_list( # FIXME: factor out scrolling_list -name => "field_value", -values => \@authorised_values, -default => $value, diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl index 841279b702..ca745e471b 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl @@ -222,7 +222,7 @@ function set_to_today(id, force) { - + -- 2.39.5