Bugzilla – Attachment 20945 Details for
Bug 10852
Add 3 filters to the serials search
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10852: serials search improvements
Bug-10852-serials-search-improvements.patch (text/plain), 12.43 KB, created by
Jonathan Druart
on 2013-09-10 12:19:00 UTC
(
hide
)
Description:
Bug 10852: serials search improvements
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2013-09-10 12:19:00 UTC
Size:
12.43 KB
patch
obsolete
>From 2b175e1f65e89173890a54a64c54eb0ece36f64e Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Tue, 20 Aug 2013 15:06:08 +0200 >Subject: [PATCH] Bug 10852: serials search improvements > >This patch adds 3 filters for the serials search: >- location >- callnumber >- expiration date > >To test: >- Search serials by location and/or callnumber and/or expiration date > and check that results are consistent. >--- > C4/Serials.pm | 12 ++++ > .../prog/en/modules/serials/serials-search.tt | 65 +++++++++++++++++++- > serials/serials-search.pl | 15 ++++- > 3 files changed, 88 insertions(+), 4 deletions(-) > >diff --git a/C4/Serials.pm b/C4/Serials.pm >index a1ce054..84636b6 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -687,6 +687,10 @@ sub SearchSubscriptions { > push @where_strs, "biblioitems.ean LIKE ?"; > push @where_args, "%$args->{ean}%"; > } >+ if ( $args->{callnumber} ) { >+ push @where_strs, "subscription.callnumber LIKE ?"; >+ push @where_args, "%$args->{callnumber}%"; >+ } > if( $args->{publisher} ){ > push @where_strs, "biblioitems.publishercode LIKE ?"; > push @where_args, "%$args->{publisher}%"; >@@ -699,6 +703,14 @@ sub SearchSubscriptions { > push @where_strs, "subscription.branchcode = ?"; > push @where_args, "$args->{branch}"; > } >+ if ( $args->{location} ) { >+ push @where_strs, "subscription.location = ?"; >+ push @where_args, "$args->{location}"; >+ } >+ if ( $args->{expiration_date} ) { >+ push @where_strs, "subscription.enddate <= ?"; >+ push @where_args, "$args->{expiration_date}"; >+ } > if( defined $args->{closed} ){ > push @where_strs, "subscription.closed = ?"; > push @where_args, "$args->{closed}"; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >index 459a80a..7578a04 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >@@ -1,8 +1,10 @@ > [% INCLUDE 'doc-head-open.inc' %] > [% USE KohaDates %] >+[% USE KohaAuthorisedValues %] > <title>Koha › Serials [% biblionumber %]</title> > <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" /> > [% INCLUDE 'doc-head-close.inc' %] >+[% INCLUDE 'calendar.inc' %] > <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script> > [% INCLUDE 'datatables-strings.inc' %] > <script type="text/javascript" src="[% themelang %]/js/datatables.js"></script> >@@ -72,6 +74,10 @@ > </li> > [% END %] > <li> >+ <label for="callnumber">Callnumber:</label> >+ <input type="text" id="callnumber" name="callnumber_filter" value="[% callnumber_filter %]" /> >+ </li> >+ <li> > <label for="publisher">Publisher:</label> > <input type="text" id="publisher" name="publisher_filter" value="[% publisher_filter %]" /> > </li> >@@ -92,6 +98,25 @@ > [% END %] > </select> > </li> >+ [% IF locations %] >+ <li> >+ <label for="location">Location:</label> >+ <select name="location_filter"> >+ <option value="">All</option> >+ [% FOR loc IN locations %] >+ [% IF loc.selected %] >+ <option value="[% loc.authorised_value %]" selected="selected">[% loc.lib %]</option> >+ [% ELSE %] >+ <option value="[% loc.authorised_value %]">[% loc.lib %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ <li> >+ <label for="to">Expiration date:</label> >+ <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | $KohaDates %]" size="10" maxlength="10" class="datepickerto" /> >+ </li> > </ol> > <input type="hidden" name="searched" value="1" /> > <fieldset class="action"> >@@ -117,6 +142,7 @@ > <th>Title</th> > <th> Notes </th> > <th>Library</th> >+ <th>Location</th> > <th>Call number</th> > <th>Expiration date</th> > [% IF ( routing && CAN_user_serials_routing ) %] >@@ -132,8 +158,9 @@ > <td><input type="text" class="filter" data-column_num="1" placeholder="Search title" /></td> > <td><input type="text" class="filter" data-column_num="2" placeholder="Search notes" /></td> > <td><input type="text" class="filter" data-column_num="3" placeholder="Search library" /></td> >- <td><input type="text" class="filter" data-column_num="4" placeholder="Search callnumber" /></td> >- <td><input type="text" class="filter" data-column_num="5" placeholder="Search expiration date" /></td> >+ <td><input type="text" class="filter" data-column_num="4" placeholder="Search location" /></td> >+ <td><input type="text" class="filter" data-column_num="5" placeholder="Search callnumber" /></td> >+ <td><input type="text" class="filter" data-column_num="6" placeholder="Search expiration date" /></td> > [% IF ( routing && CAN_user_serials_routing ) %]<td></td>[% END %] > <td></td> > <td></td> >@@ -155,6 +182,9 @@ > [% IF ( subscription.branchname ) %][% subscription.branchname %][% END %] > </td> > <td> >+ [% IF ( subscription.location ) %][% KohaAuthorisedValues.GetByCode( 'LOC', subscription.location ) %][% END %] >+ </td> >+ <td> > [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %] > </td> > <td> >@@ -202,6 +232,7 @@ > <th>Title</th> > <th> Notes </th> > <th>Library</th> >+ <th>Location</th> > <th>Call number</th> > <th> </th> > <th> </th> >@@ -213,7 +244,8 @@ > <td><input type="text" class="filter" data-column_num="1" placeholder="Search title" /></td> > <td><input type="text" class="filter" data-column_num="2" placeholder="Search notes" /></td> > <td><input type="text" class="filter" data-column_num="3" placeholder="Search library" /></td> >- <td><input type="text" class="filter" data-column_num="4" placeholder="Search callnumber" /></td> >+ <td><input type="text" class="filter" data-column_num="4" placeholder="Search location" /></td> >+ <td><input type="text" class="filter" data-column_num="5" placeholder="Search callnumber" /></td> > <td></td> > <td></td> > </tr> >@@ -237,6 +269,9 @@ > [% IF ( subscription.branchname ) %][% subscription.branchname %][% END %] > </td> > <td> >+ [% IF ( subscription.location ) %][% KohaAuthorisedValues.GetByCode( 'LOC', subscription.location ) %][% END %] >+ </td> >+ <td> > [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %] > </td> > <td> >@@ -292,6 +327,10 @@ > </li> > [% END %] > <li> >+ <label for="callnumber">Callnumber:</label> >+ <input type="text" id="callnumber" name="callnumber_filter" value="[% callnumber_filter %]" /> >+ </li> >+ <li> > <label for="publisher">Publisher:</label> > <input type="text" id="publisher" name="publisher_filter" value="[% publisher_filter %]" /> > </li> >@@ -312,6 +351,26 @@ > [% END %] > </select> > </li> >+ [% IF locations %] >+ <li> >+ <label for="location">Location:</label> >+ <select name="location_filter"> >+ <option value="">All</option> >+ [% FOR loc IN locations %] >+ [% IF loc.selected %] >+ <option value="[% loc.authorised_value %]" selected="selected">[% loc.lib %]</option> >+ [% ELSE %] >+ <option value="[% loc.authorised_value %]">[% loc.lib %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ <li> >+ <label for="to">Expiration date:</label> >+ <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | $KohaDates %]" size="10" maxlength="10" class="datepickerto" /> >+ </li> >+ > </ol> > <input type="hidden" name="searched" value="1" /> > <fieldset class="action"> >diff --git a/serials/serials-search.pl b/serials/serials-search.pl >index bc84ed6..5ea3b14 100755 >--- a/serials/serials-search.pl >+++ b/serials/serials-search.pl >@@ -36,14 +36,19 @@ use C4::Context; > use C4::Output; > use C4::Serials; > >+use Koha::DateUtils; >+ > my $query = new CGI; > my $title = $query->param('title_filter') || ''; > my $ISSN = $query->param('ISSN_filter') || ''; > my $EAN = $query->param('EAN_filter') || ''; >+my $callnumber = $query->param('callnumber_filter') || ''; > my $publisher = $query->param('publisher_filter') || ''; > my $bookseller = $query->param('bookseller_filter') || ''; > my $biblionumber = $query->param('biblionumber') || ''; > my $branch = $query->param('branch_filter') || ''; >+my $location = $query->param('location_filter') || ''; >+my $expiration_date = $query->param('expiration_date_filter') || ''; > my $routing = $query->param('routing') || C4::Context->preference("RoutingSerials"); > my $searched = $query->param('searched') || 0; > my @subscriptionids = $query ->param('subscriptionid'); >@@ -51,7 +56,7 @@ my $op = $query->param('op'); > > my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > { >- template_name => "serials/serials-search.tmpl", >+ template_name => "serials/serials-search.tt", > query => $query, > type => "intranet", > authnotrequired => 0, >@@ -70,6 +75,7 @@ if ( $op and $op eq "close" ) { > } > } > >+my $expiration_date_dt = $expiration_date ? dt_from_string( $expiration_date ) : undef; > my @subscriptions; > if ($searched){ > @subscriptions = SearchSubscriptions( >@@ -78,9 +84,12 @@ if ($searched){ > title => $title, > issn => $ISSN, > ean => $EAN, >+ callnumber => $callnumber, > publisher => $publisher, > bookseller => $bookseller, > branch => $branch, >+ location => $location, >+ expiration_date => $expiration_date_dt, > } > ); > } >@@ -114,6 +123,7 @@ foreach (sort keys %$branches){ > }; > } > >+ > $template->param( > openedsubscriptions => \@openedsubscriptions, > closedsubscriptions => \@closedsubscriptions, >@@ -121,9 +131,12 @@ $template->param( > title_filter => $title, > ISSN_filter => $ISSN, > EAN_filter => $EAN, >+ callnumber_filter => $callnumber, > publisher_filter => $publisher, > bookseller_filter => $bookseller, > branch_filter => $branch, >+ locations => C4::Koha::GetAuthorisedValues('LOC', $location), >+ expiration_date_filter => $expiration_date_dt, > branches_loop => \@branches_loop, > done_searched => $searched, > routing => $routing, >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10852
:
20945
|
23294
|
23295
|
23296
|
23548
|
23549
|
23550
|
23551