Bug 8443: Suggestions publication year and copyright date
Main patch correcting suggestions search : - allow filtering on copyrightdate, manageddate and accepteddate - entered dates remains in filter during search - empty and null values are in the same tab - null/empty values are not present in filers comboboxes Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
parent
aca672839c
commit
7ca9093f03
|
|
@ -121,7 +121,7 @@ sub SearchSuggestion {
|
|||
push @sql_params,'%'.$s.'%';
|
||||
" and suggestions.$_ like ? ";
|
||||
} else { () }
|
||||
} qw( title author isbn publishercode collectiontitle )
|
||||
} qw( title author isbn publishercode copyrightdate collectiontitle )
|
||||
);
|
||||
|
||||
my $userenv = C4::Context->userenv;
|
||||
|
|
@ -137,7 +137,7 @@ sub SearchSuggestion {
|
|||
foreach my $field (grep { my $fieldname=$_;
|
||||
any {$fieldname eq $_ } qw<
|
||||
STATUS branchcode itemtype suggestedby managedby acceptedby
|
||||
bookfundid biblionumber
|
||||
budgetid biblionumber
|
||||
>} keys %$suggestion
|
||||
) {
|
||||
if ($$suggestion{$field}){
|
||||
|
|
@ -155,7 +155,7 @@ sub SearchSuggestion {
|
|||
my $from = $_ . "_from";
|
||||
my $to = $_ . "_to";
|
||||
if ($$suggestion{$from} || $$suggestion{$to}) {
|
||||
push @query, " AND suggestions.suggesteddate BETWEEN '"
|
||||
push @query, " AND suggestions.$_ BETWEEN '"
|
||||
. (format_date_in_iso($$suggestion{$from}) || 0000-00-00) . "' AND '" . (format_date_in_iso($$suggestion{$to}) || $today) . "'";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -493,7 +493,7 @@ $(document).ready(function() { calcNewsuggTotal(); });
|
|||
<li><label for="author"> Author:</label><input type="text" id="author" name="author" value="[% author %]" /></li>
|
||||
<li><label for="isbn"> ISBN:</label><input type="text" id="isbn" name="isbn" value="[% isbn %]" /></li>
|
||||
<li><label for="publishercode"> Publisher:</label><input type="text" id="publishercode" name="publishercode" value="[% publishercode %]" /></li>
|
||||
<li><label for="publicationyear"> Publication year:</label><input type="text" id="publicationyear" name="publicationyear" value="[% publicationyear %]" /></li>
|
||||
<li><label for="copyrightdate_filter"> Copyright date:</label><input type="text" id="copyrightdate_filter" name="copyrightdate" value="[% copyrightdate %]" /></li>
|
||||
<li><label for="collectiontitle"> Collection title:</label><input type="text" id="collectiontitle" name="collectiontitle" value="[% collectiontitle %]" /></li><li><input type="submit" value="Go" /></li></ol>
|
||||
</fieldset>
|
||||
<fieldset class="brief"><h4 class="collapse"><a href="#">Suggestion information</a></h4>
|
||||
|
|
@ -511,39 +511,39 @@ $(document).ready(function() { calcNewsuggTotal(); });
|
|||
<li><label for="suggestedby"> Suggested by:</label><select id="suggestedby" name="suggestedby"><option value="">Any</option>
|
||||
[% FOREACH suggestedby_loo IN suggestedby_loop %][% IF ( suggestedby_loo.selected ) %]<option value="[% suggestedby_loo.code %]" selected="selected">[% suggestedby_loo.desc %]</option>[% ELSE %]<option value="[% suggestedby_loo.code %]">[% suggestedby_loo.desc %]</option>[% END %][% END %]
|
||||
</select></li>
|
||||
<li><label for="suggesteddate_from"> Suggested on:</label>[% suggesteddate %]
|
||||
<li><label for="suggesteddate_from"> Suggested on:</label>
|
||||
<table class="invis">
|
||||
<tr>
|
||||
<td><label for="suggesteddate_from">from:</label></td><td><input type="text" id="suggesteddate_from" name="suggesteddate_from" style="width:80px;" /></td>
|
||||
<td><label for="suggesteddate_from">from:</label></td><td><input type="text" id="suggesteddate_from" name="suggesteddate_from" value="[% suggesteddate_from %]" style="width:80px;" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="suggesteddate_to">to:</label></td><td><input type="text" id="suggesteddate_to" name="suggesteddate_to" style="width:80px;" /></td>
|
||||
<td><label for="suggesteddate_to">to:</label></td><td><input type="text" id="suggesteddate_to" name="suggesteddate_to" value="[% suggesteddate_to %]" style="width:80px;" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li><label for="managedby"> Managed by:</label><select id="managedby" name="managedby"><option value="">Any</option>
|
||||
[% FOREACH managedby_loo IN managedby_loop %][% IF ( managedby_loo.selected ) %]<option value="[% managedby_loo.code %]" selected="selected">[% managedby_loo.desc %]</option>[% ELSE %]<option value="[% managedby_loo.code %]">[% managedby_loo.desc %]</option>[% END %][% END %]
|
||||
</select></li>
|
||||
<li><label for="manageddate_from"> Management date:</label>[% manageddate %]
|
||||
<li><label for="manageddate_from"> Management date:</label>
|
||||
<table class="invis">
|
||||
<tr>
|
||||
<td><label for="manageddate_from">from:</label></td><td><input type="text" id="manageddate_from" name="manageddate_from" style="width:80px;" /></td>
|
||||
<td><label for="manageddate_from">from:</label></td><td><input type="text" id="manageddate_from" name="manageddate_from" value="[% manageddate_from %]" style="width:80px;" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="manageddate_to">to:</label></td><td><input type="text" id="manageddate_to" name="manageddate_to" style="width:80px;" /></td>
|
||||
<td><label for="manageddate_to">to:</label></td><td><input type="text" id="manageddate_to" name="manageddate_to" value="[% manageddate_to %]" style="width:80px;" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li><label for="acceptedby"> Accepted by:</label><select id="acceptedby" name="acceptedby"><option value="">Any</option>
|
||||
[% FOREACH acceptedby_loo IN acceptedby_loop %][% IF ( acceptedby_loo.selected ) %] <option value="[% acceptedby_loo.code %]" selected="selected">[% acceptedby_loo.desc %]</option>[% ELSE %]<option value="[% acceptedby_loo.code %]">[% acceptedby_loo.desc %]</option>[% END %][% END %]
|
||||
</select></li>
|
||||
<li><label for="accepteddate_from"> Accepted on:</label>[% accepteddate %]
|
||||
<li><label for="accepteddate_from"> Accepted on:</label>
|
||||
<table class="invis">
|
||||
<tr>
|
||||
<td><label for="accepteddate_from">from:</label></td><td><input type="text" id="accepteddate_from" name="accepteddate_from" style="width:80px;" /></td>
|
||||
<td><label for="accepteddate_from">from:</label></td><td><input type="text" id="accepteddate_from" name="accepteddate_from" value="[% accepteddate_from %]" style="width:80px;" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="accepteddate_to">to:</label></td><td><input type="text" id="accepteddate_to" name="accepteddate_to" style="width:80px;" /></td>
|
||||
<td><label for="accepteddate_to">to:</label></td><td><input type="text" id="accepteddate_to" name="accepteddate_to" value="[% accepteddate_to %]" style="width:80px;" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -190,10 +190,22 @@ if ($op=~/else/) {
|
|||
|
||||
$displayby||="STATUS";
|
||||
delete $$suggestion_ref{'branchcode'} if($displayby eq "branchcode");
|
||||
# distinct values of display by
|
||||
my $criteria_list=GetDistinctValues("suggestions.".$displayby);
|
||||
my (@criteria_dv, $criteria_has_empty);
|
||||
foreach (@$criteria_list) {
|
||||
if ($_->{value}) {
|
||||
push @criteria_dv, $_->{value};
|
||||
} else {
|
||||
$criteria_has_empty = 1;
|
||||
}
|
||||
}
|
||||
# agregate null and empty values under empty value
|
||||
push @criteria_dv, '' if $criteria_has_empty;
|
||||
|
||||
my @allsuggestions;
|
||||
my $reasonsloop = GetAuthorisedValues("SUGGEST");
|
||||
foreach my $criteriumvalue ( map { $$_{'value'} } @$criteria_list ) {
|
||||
foreach my $criteriumvalue ( @criteria_dv ) {
|
||||
# By default, display suggestions from current working branch
|
||||
if(not defined $branchfilter) {
|
||||
$$suggestion_ref{'branchcode'} = C4::Context->userenv->{'branch'};
|
||||
|
|
@ -356,15 +368,18 @@ $template->param(
|
|||
total => sprintf("%.2f", $$suggestion_ref{'total'}||0),
|
||||
);
|
||||
|
||||
# lists of distinct values (without empty) for filters
|
||||
my %hashlists;
|
||||
foreach my $field ( qw(managedby acceptedby suggestedby budgetid) ) {
|
||||
my $values_list;
|
||||
$values_list = GetDistinctValues( "suggestions." . $field );
|
||||
my @codes_list = map {
|
||||
{ 'code' => $$_{'value'},
|
||||
'desc' => GetCriteriumDesc( $$_{'value'}, $field ),
|
||||
'desc' => GetCriteriumDesc( $$_{'value'}, $field ) || $$_{'value'},
|
||||
'selected' => ($$suggestion_ref{$field}) ? $$_{'value'} eq $$suggestion_ref{$field} : 0,
|
||||
}
|
||||
} grep {
|
||||
$$_{'value'}
|
||||
} @$values_list;
|
||||
$hashlists{ lc($field) . "_loop" } = \@codes_list;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue