Bugzilla – Attachment 2295 Details for
Bug 3459
topissues doesn't take care of ccode.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed fix
0001-Fix-for-Bug-3459-topissues-doesn-t-take-care-of-ccod.patch (text/plain), 10.81 KB, created by
Owen Leonard
on 2010-06-30 15:46:25 UTC
(
hide
)
Description:
Proposed fix
Filename:
MIME Type:
Creator:
Owen Leonard
Created:
2010-06-30 15:46:25 UTC
Size:
10.81 KB
patch
obsolete
>From a4f8e378a1122c50442d4f23123de34ea03a2f3a Mon Sep 17 00:00:00 2001 >From: Owen Leonard <oleonard@myacpl.org> >Date: Tue, 29 Jun 2010 16:28:59 -0400 >Subject: [PATCH] Fix for Bug 3459, topissues doesn't take care of ccode > >- Change conditional to display filter in sidebar without EXPR >- Enhance switch between ccode default and itemtype default searches >- Enable preselect of submitted collection code in filter form, > stealing code from opac-search.pl >--- > .../opac-tmpl/prog/en/includes/opac-topissues.inc | 4 +- > .../opac-tmpl/prog/en/modules/opac-topissues.tmpl | 40 ++++++--- > opac/opac-topissues.pl | 95 ++++++++++++++------ > 3 files changed, 98 insertions(+), 41 deletions(-) > >diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/opac-topissues.inc b/koha-tmpl/opac-tmpl/prog/en/includes/opac-topissues.inc >index 20eba49..b96b8d3 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/includes/opac-topissues.inc >+++ b/koha-tmpl/opac-tmpl/prog/en/includes/opac-topissues.inc >@@ -25,9 +25,9 @@ > </li> > <li><label for="itemtype">Limit to: </label> > <select name="itemtype" id="itemtype" style="width: 10em;"> >- <option value="">All item types</option> >+ <!-- TMPL_IF NAME="ccodesearch" --><option value="">All collections</option><!-- TMPL_ELSE --><option value="">All item types</option><!-- /TMPL_IF --> > <!-- TMPL_LOOP name="itemtypeloop" --> >- <!-- TMPL_IF EXPR="itemtype eq description" --><option value="<!-- TMPL_VAR name="value" -->" selected="selected"><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR name="value" -->"><!-- /TMPL_IF --> >+ <!-- TMPL_IF NAME="selected" --><option value="<!-- TMPL_VAR name="value" -->" selected="selected"><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR name="value" -->"><!-- /TMPL_IF --> > <!-- TMPL_VAR name="description" --> > </option> > <!-- /TMPL_LOOP --> >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-topissues.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-topissues.tmpl >index 871d6c9..c02e78d 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-topissues.tmpl >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-topissues.tmpl >@@ -27,7 +27,19 @@ function Dopop(link) { > </style> > </head> > <body id="opac-topissues"> >- <!-- TMPL_IF EXPR="OpacNav||results_loop" --><div id="doc3" class="yui-t1"><!-- TMPL_ELSE --><div id="doc3" class="yui-t7"><!-- /TMPL_IF --> >+ >+<!-- TMPL_IF NAME="results_loop" --> >+<div id="doc3" class="yui-t1"> >+<!-- TMPL_ELSE --> >+<!-- TMPL_IF NAME="OpacNav" --> >+<div id="doc3" class="yui-t1"> >+<!-- TMPL_ELSE --> >+<div id="doc3" class="yui-t7"> >+<!-- /TMPL_IF --> >+<!-- /TMPL_IF --> >+ >+ >+ > <div id="bd"> > <!-- TMPL_INCLUDE name="masthead.inc" --> > >@@ -51,7 +63,7 @@ function Dopop(link) { > </caption> > <thead><tr> > <th>Title</th> >- <th>Itemtype</th> >+ <th><!-- TMPL_IF NAME="ccodesearch" -->Collection<!-- TMPL_ELSE -->Item type<!-- /TMPL_IF --></th> > <th>Checkouts</th> > <!-- TMPL_IF NAME="opacuserlogin" --><th> </th><!-- /TMPL_IF --> > >@@ -100,13 +112,11 @@ function Dopop(link) { > </li> > <li><label for="itemtype">Limit to: </label> > <select name="itemtype" id="itemtype"> >- <option value="">All item types</option> >- <!-- TMPL_LOOP name="itemtypeloop" --> >- <!-- TMPL_IF name="selected" --> >- <option value="<!-- TMPL_VAR name="value" -->" selected="selected"><!-- TMPL_VAR name="description" --></option> >- <!-- TMPL_ELSE --> >- <option value="<!-- TMPL_VAR name="value" -->"><!-- TMPL_VAR name="description" --></option> >- <!-- /TMPL_IF --> >+ <!-- TMPL_IF NAME="ccodesearch" --><option value="">All collections</option><!-- TMPL_ELSE --><option value="">All item types</option><!-- /TMPL_IF --> >+ <!-- TMPL_LOOP name="itemtypeloop" --> >+ <!-- TMPL_IF NAME="selected" --><option value="<!-- TMPL_VAR name="value" -->" selected="selected"><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR name="value" -->"><!-- /TMPL_IF --> >+ <!-- TMPL_VAR name="description" --> >+ </option> > <!-- /TMPL_LOOP --> > </select></li> > <li> >@@ -126,11 +136,19 @@ function Dopop(link) { > </div> > </div> > </div> >-</div><!-- TMPL_IF EXPR="OpacNav||results_loop" --> >+</div> >+<!-- TMPL_IF NAME="results_loop" --> >+<div class="yui-b"><div class="container"> >+<!-- TMPL_INCLUDE NAME="opac-topissues.inc" --> >+<!-- TMPL_IF NAME="OpacNav" --><!--TMPL_INCLUDE NAME="navigation.inc" --><!-- /TMPL_IF --> >+</div></div> >+<!-- TMPL_ELSE --> >+<!-- TMPL_IF NAME="OpacNav" --> > <div class="yui-b"><div class="container"> >-<!-- TMPL_IF NAME="results_loop" --><!-- TMPL_INCLUDE NAME="opac-topissues.inc" --><!-- /TMPL_IF --> > <!--TMPL_INCLUDE NAME="navigation.inc" --> > </div></div> > <!-- /TMPL_IF --> >+<!-- /TMPL_IF --> >+ > </div> > <!-- TMPL_INCLUDE NAME="opac-bottom.inc" --> >diff --git a/opac/opac-topissues.pl b/opac/opac-topissues.pl >index 1d88850..1c24a2f 100755 >--- a/opac/opac-topissues.pl >+++ b/opac/opac-topissues.pl >@@ -57,27 +57,52 @@ my $limit = $input->param('limit') || 10; > my $branch = $input->param('branch') || ''; > my $itemtype = $input->param('itemtype') || ''; > my $timeLimit = $input->param('timeLimit') || 3; >+my $advanced_search_types = C4::Context->preference('AdvancedSearchTypes'); >+ > my $whereclause = ''; >-$whereclause .= 'items.homebranch='.$dbh->quote($branch)." AND " if ($branch); >-$whereclause .= 'biblioitems.itemtype='.$dbh->quote($itemtype)." AND " if $itemtype; >-$whereclause .= ' TO_DAYS(NOW()) - TO_DAYS(biblio.datecreated) <= '.($timeLimit*30).' AND ' if $timeLimit < 999; >+$whereclause .= ' AND items.homebranch='.$dbh->quote($branch) if ($branch); >+$whereclause .= ' AND TO_DAYS(NOW()) - TO_DAYS(biblio.datecreated) <= '.($timeLimit*30) if $timeLimit < 999; > $whereclause =~ s/ AND $// if $whereclause; >-$whereclause = " WHERE ".$whereclause if $whereclause; >- >-my $query = "SELECT datecreated, biblio.biblionumber, title, >- author, sum( items.issues ) AS tot, biblioitems.itemtype, >- biblioitems.publishercode,biblioitems.publicationyear, >- itemtypes.description >- FROM biblio >- LEFT JOIN items USING (biblionumber) >- LEFT JOIN biblioitems USING (biblionumber) >- LEFT JOIN itemtypes ON itemtypes.itemtype = biblioitems.itemtype >- $whereclause >- GROUP BY biblio.biblionumber >- HAVING tot >0 >- ORDER BY tot DESC >- LIMIT $limit >- "; >+my $query; >+ >+if($advanced_search_types eq 'ccode'){ >+ $whereclause .= ' AND authorised_values.authorised_value='.$dbh->quote($itemtype) if $itemtype; >+ $query = "SELECT datecreated, biblio.biblionumber, title, >+ author, sum( items.issues ) AS tot, biblioitems.itemtype, >+ biblioitems.publishercode,biblioitems.publicationyear, >+ authorised_values.lib as description >+ FROM biblio >+ LEFT JOIN items USING (biblionumber) >+ LEFT JOIN biblioitems USING (biblionumber) >+ LEFT JOIN authorised_values ON items.ccode = authorised_values.authorised_value >+ WHERE 1 >+ $whereclause >+ AND authorised_values.category = 'ccode' >+ GROUP BY biblio.biblionumber >+ HAVING tot >0 >+ ORDER BY tot DESC >+ LIMIT $limit >+ "; >+ $template->param(ccodesearch => 1); >+}else{ >+ $whereclause .= ' AND biblioitems.itemtype='.$dbh->quote($itemtype) if $itemtype; >+ $query = "SELECT datecreated, biblio.biblionumber, title, >+ author, sum( items.issues ) AS tot, biblioitems.itemtype, >+ biblioitems.publishercode,biblioitems.publicationyear, >+ itemtypes.description >+ FROM biblio >+ LEFT JOIN items USING (biblionumber) >+ LEFT JOIN biblioitems USING (biblionumber) >+ LEFT JOIN itemtypes ON itemtypes.itemtype = biblioitems.itemtype >+ WHERE 1 >+ $whereclause >+ GROUP BY biblio.biblionumber >+ HAVING tot >0 >+ ORDER BY tot DESC >+ LIMIT $limit >+ "; >+ $template->param(itemtypesearch => 1); >+} > > my $sth = $dbh->prepare($query); > $sth->execute(); >@@ -100,20 +125,34 @@ $template->param(do_it => 1, > > $template->param( branchloop => GetBranchesLoop(C4::Context->userenv->{'branch'})); > >-#doctype >+# the index parameter is different for item-level itemtypes >+my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype'; > $itemtypes = GetItemTypes; >-my @itemtypeloop; >-foreach my $thisitemtype (sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'}} keys %$itemtypes) { >+my @itemtypesloop; >+my $selected=1; >+if (!$advanced_search_types or $advanced_search_types eq 'itemtypes') { >+ foreach my $thisitemtype ( sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} } keys %$itemtypes ) { > my $selected = 1 if $thisitemtype eq $itemtype; >- my %row =(value => $thisitemtype, >- description => $itemtypes->{$thisitemtype}->{'description'}, >- selected => $selected, >- ); >- push @itemtypeloop, \%row; >+ my %row =( value => $thisitemtype, >+ description => $itemtypes->{$thisitemtype}->{'description'}, >+ selected => $selected, >+ ); >+ push @itemtypesloop, \%row; >+ } >+} else { >+ my $advsearchtypes = GetAuthorisedValues($advanced_search_types, '', 'opac'); >+ for my $thisitemtype (@$advsearchtypes) { >+ my $selected = 1 if $thisitemtype->{authorised_value} eq $itemtype; >+ my %row =( value => $thisitemtype->{authorised_value}, >+ selected => $selected, >+ description => $thisitemtype->{'lib'}, >+ ); >+ push @itemtypesloop, \%row; >+ } > } > > $template->param( >- itemtypeloop =>\@itemtypeloop, >+ itemtypeloop =>\@itemtypesloop, > dateformat => C4::Context->preference("dateformat"), > ); > output_html_with_http_headers $input, $cookie, $template->output; >-- >1.7.0.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 3459
:
1314
| 2295