Bugzilla – Attachment 23549 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.60 KB, created by
Kyle M Hall (khall)
on 2013-12-13 20:40:21 UTC
(
hide
)
Description:
Bug 10852: serials search improvements
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2013-12-13 20:40:21 UTC
Size:
12.60 KB
patch
obsolete
>From c6dc492df32c451a5c3a040b04aba7869009d553 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. > >Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr> >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > 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 6d188e7..7e17a04 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -682,6 +682,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}%"; >@@ -694,6 +698,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 a5f9795..c6cb4d4 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,9 +1,11 @@ > [% USE Branches %] > [% 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> >@@ -73,6 +75,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> >@@ -93,6 +99,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"> >@@ -118,6 +143,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 ) %] >@@ -133,8 +159,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> >@@ -157,6 +184,9 @@ > [% IF ( subscription.branchcode ) %][% Branches.GetName( subscription.branchcode ) %][% END %] > </td> > <td> >+ [% IF ( subscription.location ) %][% KohaAuthorisedValues.GetByCode( 'LOC', subscription.location ) %][% END %] >+ </td> >+ <td> > [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %] > </td> > <td> >@@ -203,6 +233,7 @@ > <th>Title</th> > <th> Notes </th> > <th>Library</th> >+ <th>Location</th> > <th>Call number</th> > <th> </th> > <th> </th> >@@ -214,7 +245,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> >@@ -239,6 +271,9 @@ > [% IF ( subscription.branchcode ) %][% Branches.GetName( subscription.branchcode ) %][% END %] > </td> > <td> >+ [% IF ( subscription.location ) %][% KohaAuthorisedValues.GetByCode( 'LOC', subscription.location ) %][% END %] >+ </td> >+ <td> > [% IF ( subscription.callnumber ) %][% subscription.callnumber %][% END %] > </td> > <td> >@@ -295,6 +330,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> >@@ -315,6 +354,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 28dc9d0..b4e7715 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, > } > ); > } >@@ -115,6 +124,7 @@ foreach (sort keys %$branches){ > }; > } > >+ > $template->param( > openedsubscriptions => \@openedsubscriptions, > closedsubscriptions => \@closedsubscriptions, >@@ -122,9 +132,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.2.5
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