Bug 9468: use new SUGGEST_FORMAT list
authorGalen Charlton <gmc@esilibrary.com>
Mon, 5 May 2014 00:23:19 +0000 (00:23 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Thu, 5 Nov 2015 13:46:57 +0000 (10:46 -0300)
This patch uses the new SUGGEST_FORMAT authorized value list for
populating the list of suggestion item types/document types.  It
also improves the display by using the staff or OPAC description of
the authorised value rather than the code.

To test:

[1] Enter a suggestion via the OPAC and select an item type (which
    I will call "desired format" for the rest of this test plan).
[2] Verify that the saved suggestion displays the desired format
    description in both staff and OPAC.
[3] Verify that organizing the list of suggestions by item type
    now works in the staff interface, rather than displaying "Unknown"
    in each tab header.
[4] Verify that existing suggestions' desired formats are displayed
    correctly.
[5] Verify that suggestions can have their desired format edited
    in the staff inteface.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt
opac/opac-suggestions.pl
suggestion/suggestion.pl

index 442cc25..547265d 100644 (file)
@@ -213,9 +213,7 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
         <li><span class="label">Publication place:</span>[% place |html %]</li>
         <li><span class="label">Collection title:</span>[% collectiontitle |html %]</li>
         <li><span class="label">Document type:</span>
-            [% FOREACH itemtypeloo IN itemtypeloop %]
-                [% IF ( itemtypeloo.selected ) %][% itemtypeloo.translated_description %][% END %]
-            [% END %]
+            [% AuthorisedValues.GetByCode( 'SUGGEST_FORMAT', itemtype, 0 ) %]
         </li>
         [% IF ( patron_reason_loop ) %]
           <li><span class="label">Reason for suggestion: </span>
@@ -336,12 +334,7 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
         <li><label for="place">Publication place:</label><input type="text" id="place" name="place" size="50" maxlength="80" value="[% place | html %]"/></li>
         <li><label for="collectiontitle">Collection title:</label><input type="text" id="collectiontitle" name="collectiontitle" size="50" maxlength="80" value="[% collectiontitle | html %]"/></li>
         <li><label for="itemtype">Document type:</label>
-            <select id="itemtype" name="itemtype" >
-            [% FOREACH itemtypeloo IN itemtypeloop %]
-                [% IF ( itemtypeloo.selected ) %]<option selected="selected" value="[% itemtypeloo.itemtype %]">[% ELSE %]<option value="[% itemtypeloo.itemtype %]">[% END %]
-                [% itemtypeloo.translated_description %]</option>
-            [% END %]
-            </select>
+            [% PROCESS 'av-build-dropbox.inc' name="itemtype", category="SUGGEST_FORMAT", size = 20, default=itemtype %]
         </li>
         [% IF ( patron_reason_loop ) %]<li><label for="patronreason">Reason for suggestion: </label><select name="patronreason" id="patronreason"><option value=""> -- Choose -- </option>[% FOREACH patron_reason_loo IN patron_reason_loop %]
                 [% IF ( patron_reason_loo.selected ) %]<option value="[% patron_reason_loo.authorised_value %]" selected="selected">[% patron_reason_loo.lib %]</option>[% ELSE %]<option value="[% patron_reason_loo.authorised_value %]">[% patron_reason_loo.lib %]</option>[% END %]
@@ -526,7 +519,7 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
                     <br />
                     [% IF ( suggestions_loo.copyrightdate ) %]&copy; [% suggestions_loo.copyrightdate |html %] [% END %]
                         [% IF ( suggestions_loo.volumedesc ) %]; Volume:<i>[% suggestions_loo.volumedesc |html %]</i> [% END %]
-                        [% IF ( suggestions_loo.isbn ) %]; ISBN:<i>[% suggestions_loo.isbn |html %]</i> [% END %][% IF ( suggestions_loo.publishercode ) %]; Published by [% suggestions_loo.publishercode |html %] [% END %][% IF ( suggestions_loo.publicationyear ) %] in <i>[% suggestions_loo.publicationyear |html %]</i> [% END %][% IF ( suggestions_loo.place ) %] in <i>[% suggestions_loo.place |html %]</i> [% END %][% IF ( suggestions_loo.collectiontitle ) %]; [% suggestions_loo.collectiontitle |html %] [% END %][% IF ( suggestions_loo.itemtype ) %]; [% suggestions_loo.itemtype |html %] [% END %]<br />[% IF ( suggestions_loo.note ) %]<span class="note">[% suggestions_loo.note |html%]</span>[% END %]
+                        [% IF ( suggestions_loo.isbn ) %]; ISBN:<i>[% suggestions_loo.isbn |html %]</i> [% END %][% IF ( suggestions_loo.publishercode ) %]; Published by [% suggestions_loo.publishercode |html %] [% END %][% IF ( suggestions_loo.publicationyear ) %] in <i>[% suggestions_loo.publicationyear |html %]</i> [% END %][% IF ( suggestions_loo.place ) %] in <i>[% suggestions_loo.place |html %]</i> [% END %][% IF ( suggestions_loo.collectiontitle ) %]; [% suggestions_loo.collectiontitle |html %] [% END %][% IF ( suggestions_loo.itemtype ) %]; [% AuthorisedValues.GetByCode( 'SUGGEST_FORMAT', suggestions_loo.itemtype, 0 ) %] [% END %]<br />[% IF ( suggestions_loo.note ) %]<span class="note">[% suggestions_loo.note |html%]</span>[% END %]
                 </td>
                 <td>
                     [% IF ( suggestions_loo.emailsuggestedby ) %]<a href="mailto:[% suggestions_loo.emailsuggestedby %]">[% END %][% suggestions_loo.surnamesuggestedby %][% IF ( suggestions_loo.firstnamesuggestedby ) %], [% suggestions_loo.firstnamesuggestedby %][% END %] [% IF (suggestions_loo.cardnumbersuggestedby ) %]([% suggestions_loo.cardnumbersuggestedby %])[% END %] [% IF ( suggestions_loo.emailsuggestedby ) %]</a>[% END %]
index 1753d8e..4d792f6 100644 (file)
                                         <li><label for="collectiontitle">Collection title:</label><input type="text" id="collectiontitle" name="collectiontitle" class="span6" maxlength="80" /></li>
                                         <li><label for="place">Publication place:</label><input type="text" id="place" name="place"  maxlength="80" /></li>
                                         <li><label for="itemtype">Item type:</label>
-                                            <select name="itemtype" id="itemtype">
-                                                <option value="">Default</option>
-                                                [% FOREACH itemtypeloo IN itemtypeloop %]
-                                                    [% IF ( itemtypeloo.selected ) %]
-                                                        <option value="[% itemtypeloo.itemtype %]" selected="selected">
-                                                    [% ELSE %]
-                                                        <option value="[% itemtypeloo.itemtype %]">
-                                                    [% END %]
-                                                            [% itemtypeloo.translated_description %]
-                                                        </option>
-                                                [% END %]
-                                            </select>
+                                            [% PROCESS 'av-build-dropbox.inc' name="itemtype", category="SUGGEST_FORMAT", size = 20 %]
                                         </li>
                                         [% IF ( branchloop ) %]
                                             <li><label for="branch">Library:</label>
                                                                 [% IF ( suggestions_loo.publishercode ) %] - [% suggestions_loo.publishercode |html %][% END %]
                                                                 [% IF ( suggestions_loo.place ) %]([% suggestions_loo.place |html %])[% END %]
                                                                 [% IF ( suggestions_loo.collectiontitle ) %] , [% suggestions_loo.collectiontitle |html %][% END %]
-                                                                [% IF ( suggestions_loo.itemtype ) %] - [% suggestions_loo.itemtype %][% END %]
+                                                                [% IF ( suggestions_loo.itemtype ) %] - [% AuthorisedValues.GetByCode( 'SUGGEST_FORMAT', suggestions_loo.itemtype, 1 ) %][% END %]
                                                         </p>
                                                     </td>
                                                     <td>
index 78b409f..e00fd9c 100755 (executable)
@@ -151,15 +151,6 @@ if ( $op eq "delete_confirm" ) {
     exit;
 }
 map{ $_->{'branchcodesuggestedby'}=GetBranchInfo($_->{'branchcodesuggestedby'})->[0]->{'branchname'}} @$suggestions_loop;
-my $supportlist=GetSupportList();
-foreach my $support(@$supportlist){
-       if ($$support{'imageurl'}){
-               $$support{'imageurl'}= getitemtypeimagelocation( 'opac', $$support{'imageurl'} );
-       }
-       else {
-          delete $$support{'imageurl'}
-       }
-}
 
 foreach my $suggestion(@$suggestions_loop) {
     if($suggestion->{'suggestedby'} == $borrowernumber) {
@@ -192,7 +183,6 @@ if ( C4::Context->preference("AllowPurchaseSuggestionBranchChoice") ) {
 
 $template->param(
        %$suggestion,
-       itemtypeloop=> $supportlist,
     suggestions_loop => $suggestions_loop,
     patron_reason_loop => $patron_reason_loop,
     "op_$op"         => 1,
index 43834f6..e772a2a 100755 (executable)
@@ -54,14 +54,13 @@ sub Init{
 sub GetCriteriumDesc{
     my ($criteriumvalue,$displayby)=@_;
     if ($displayby =~ /status/i) {
-        if ( grep { /^($criteriumvalue)$/ } qw(ASKED ACCEPTED REJECTED CHECKED ORDERED AVAILABLE) ) {
-            return ($criteriumvalue eq 'ASKED'?"Pending":ucfirst(lc( $criteriumvalue)));
-        } else {
-            return GetAuthorisedValueByCode('SUGGEST_STATUS', $criteriumvalue) || $criteriumvalue;
+        unless ( grep { /$criteriumvalue/ } qw(ASKED ACCEPTED REJECTED CHECKED ORDERED AVAILABLE) ) {
+            return GetAuthorisedValueByCode('SUGGEST_STATUS', $criteriumvalue ) || "Unknown";
         }
+        return ($criteriumvalue eq 'ASKED'?"Pending":ucfirst(lc( $criteriumvalue))) if ($displayby =~/status/i);
     }
     return (GetBranchName($criteriumvalue)) if ($displayby =~/branchcode/);
-    return (GetSupportName($criteriumvalue)) if ($displayby =~/itemtype/);
+    return GetAuthorisedValueByCode('SUGGEST_FORMAT', $criteriumvalue) || "Unknown" if ($displayby =~/itemtype/);
     if ($displayby =~/suggestedby/||$displayby =~/managedby/||$displayby =~/acceptedby/){
         my $borr=C4::Members::GetMember(borrowernumber=>$criteriumvalue);
         return "" unless $borr;
@@ -324,20 +323,6 @@ $branchfilter=C4::Context->userenv->{'branch'} if ($onlymine && !$branchfilter);
 $template->param( branchloop => \@branchloop,
                 branchfilter => $branchfilter);
 
-# the index parameter is different for item-level itemtypes
-my $supportlist = GetSupportList();
-
-foreach my $support (@$supportlist) {
-    $$support{'selected'} = (defined $$suggestion_ref{'itemtype'})
-        ? $$support{'itemtype'} eq $$suggestion_ref{'itemtype'}
-        : 0;
-    if ( $$support{'imageurl'} ) {
-        $$support{'imageurl'} = getitemtypeimagelocation( 'intranet', $$support{'imageurl'} );
-    } else {
-        delete $$support{'imageurl'};
-    }
-}
-$template->param(itemtypeloop=>$supportlist);
 $template->param( returnsuggestedby => $returnsuggestedby );
 
 my $patron_reason_loop = GetAuthorisedValues("OPAC_SUG",$$suggestion_ref{'patronreason'});