From d4a80109f396618f2b713d88903dc55ee78415d7 Mon Sep 17 00:00:00 2001 From: Jonathan Druart <jonathan.druart@biblibre.com> Date: Wed, 17 Oct 2012 10:19:01 +0200 Subject: [PATCH] Bug 8782: Followup: add some minor modifications - Show 'closed' information in biblio detail page - Add a column in serials report table - Search subscriptions on title words instead of string - Prevent serials editing when subscription is closed - Don't change status of "disabled" serials --- C4/Serials.pm | 12 ++++++++++-- catalogue/detail.pl | 2 ++ .../intranet-tmpl/prog/en/modules/catalogue/detail.tt | 2 ++ .../intranet-tmpl/prog/en/modules/reports/serials_stats.tt | 8 ++++++++ .../intranet-tmpl/prog/en/modules/serials/serials-edit.tt | 2 +- koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt | 2 ++ opac/opac-detail.pl | 2 ++ reports/serials_stats.pl | 3 ++- serials/serials-edit.pl | 1 + 9 files changed, 30 insertions(+), 4 deletions(-) diff --git a/C4/Serials.pm b/C4/Serials.pm index 76aae10..0c4b60e 100644 --- a/C4/Serials.pm +++ b/C4/Serials.pm @@ -670,8 +670,16 @@ sub SearchSubscriptions { push @where_args, $args->{biblionumber}; } if( $args->{title} ){ - push @where_strs, "biblio.title LIKE ?"; - push @where_args, "%$args->{title}%"; + my @words = split / /, $args->{title}; + my (@strs, @args); + foreach my $word (@words) { + push @strs, "biblio.title LIKE ?"; + push @args, "%$word%"; + } + if (@strs) { + push @where_strs, '(' . join (' AND ', @strs) . ')'; + push @where_args, @args; + } } if( $args->{issn} ){ push @where_strs, "biblioitems.issn LIKE ?"; diff --git a/catalogue/detail.pl b/catalogue/detail.pl index 67e9c99..162530f 100755 --- a/catalogue/detail.pl +++ b/catalogue/detail.pl @@ -155,6 +155,8 @@ foreach my $subscription (@subscriptions) { $cell{branchcode} = $subscription->{branchcode}; $cell{branchname} = GetBranchName($subscription->{branchcode}); $cell{hasalert} = $subscription->{hasalert}; + $cell{callnumber} = $subscription->{callnumber}; + $cell{closed} = $subscription->{closed}; #get the three latest serials. $serials_to_display = $subscription->{staffdisplaycount}; $serials_to_display = C4::Context->preference('StaffSerialIssueDisplayCount') unless $serials_to_display; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt index f6a2ea9..0e3313a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -470,6 +470,8 @@ function verify_images() { [% FOREACH subscription IN subscriptions %] [% IF ( subscription.branchname ) %]<h3>At library: [% subscription.branchname %]</h3>[% ELSE %] [% IF ( subscription.branchcode ) %]<h3>At library: [% subscription.branchcode %]</h3>[% END %][% END %] + [% IF ( subscription.closed ) %]<p>This subscription is closed.</p>[% END %] + [% IF ( subscription.callnumber ) %]<p>Callnumber: [% subscription.callnumber %] </p>[% END %] [% IF ( subscription.subscriptionnotes ) %]<p>[% subscription.subscriptionnotes FILTER html_line_break %] </p>[% END %] [% IF ( subscription.missinglist ) %]<p>Missing issues: [% subscription.missinglist %] </p>[% END %] [% IF ( subscription.librariannote ) %]<p>([% subscription.librariannote %])</p>[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/serials_stats.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/serials_stats.tt index af51a4c..65f662f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/serials_stats.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reports/serials_stats.tt @@ -38,6 +38,7 @@ <th>Call number</th> <th>Subscription begin</th> <th>Subscription end</th> + <th>Expired? / Closed?</th> </tr> </thead> <tbody> @@ -50,6 +51,13 @@ <td>[% data.callnumber %]</td> <td>[% data.startdate %]</td> <td>[% data.enddate %]</td> + <td> + [% IF data.closed %] + Closed + [% ELSIF data.expired %] + Expired + [% END %] + </td> </tr> [% END %] </tr> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt index 75f32ea..cc08add 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-edit.tt @@ -230,7 +230,7 @@ $(document).ready(function() { </td> <td> [% IF ( serialslis.editdisable ) %] - <input type="hidden" name="status" id="status[% serialslis.serialid %]" value="1"> + <input type="hidden" name="status" id="status[% serialslis.serialid %]" value="[% serialslis.serstatus %]"> <select name="status" size="1" disabled="disabled"> [% ELSE %] [% IF ( serialslis.serialsadditems ) %] diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt index f740488..ea27756 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt @@ -981,6 +981,8 @@ YAHOO.util.Event.onContentReady("furtherm", function () { [% FOREACH subscription IN subscriptions %] [% IF ( subscription.branchname ) %]<h3>At library: [% subscription.branchname %]</h3>[% ELSE %] [% IF ( subscription.branchcode ) %]<h3>At library: [% subscription.branchcode %]</h3>[% END %][% END %] + [% IF ( subscription.closed ) %]<p>This subscription is closed.</p>[% END %] + <span style="display:none;"> [% IF ( subscription.callnumber ) %]<p>Callnumber: [% subscription.callnumber %]</p>[% END %]</span> [% IF ( subscription.subscriptionnotes ) %]<p>[% subscription.subscriptionnotes FILTER html_line_break %] </p>[% END %] <p>Subscription from: [% subscription.histstartdate | $KohaDates %] to:[% IF ( subscription.histenddate ) %] [% subscription.histenddate | $KohaDates %] [% ELSE %] now (current)[% END %]</p> [% IF ( subscription.missinglist ) %]<p>Missing issues: [% subscription.missinglist %] </p>[% END %] diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index cdb4a5a..2b28691 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -470,6 +470,8 @@ foreach my $subscription (@subscriptions) { $cell{branchcode} = $subscription->{branchcode}; $cell{branchname} = GetBranchName($subscription->{branchcode}); $cell{hasalert} = $subscription->{hasalert}; + $cell{callnumber} = $subscription->{callnumber}; + $cell{closed} = $subscription->{closed}; #get the three latest serials. $serials_to_display = $subscription->{opacdisplaycount}; $serials_to_display = C4::Context->preference('OPACSerialIssueDisplayCount') unless $serials_to_display; diff --git a/reports/serials_stats.pl b/reports/serials_stats.pl index 2b019c7..36f7cc5 100755 --- a/reports/serials_stats.pl +++ b/reports/serials_stats.pl @@ -96,12 +96,13 @@ if($do_it){ while(my $row = $sth->fetchrow_hashref){ $row->{'enddate'} = format_date(GetExpirationDate($row->{'subscriptionid'})); $row->{'startdate'} = format_date($row->{'startdate'}); + $row->{expired} = HasSubscriptionExpired($row->{subscriptionid}); push @datas, $row if ( $expired or ( not $expired and ( - not HasSubscriptionExpired($row->{subscriptionid}) + not $row->{expired} and not $row->{closed} ) ) diff --git a/serials/serials-edit.pl b/serials/serials-edit.pl index bb87c5f..66d3a4e 100755 --- a/serials/serials-edit.pl +++ b/serials/serials-edit.pl @@ -151,6 +151,7 @@ foreach my $serialid (@serialids) { ) || $serinfo->{'cannotedit'} ); + $serinfo->{editdisable} ||= ($serinfo->{status8} and $serinfo->{closed}); push @serialdatalist, $serinfo; $processedserialid{$serialid} = 1; } -- 1.7.10.4