Browse Source

Bug 18399: Add reasons in edit suggestion page

Test plan:

 - Fill the authorised values's category 'SUGGEST' with reason
 - Edit a pending suggestion. Set the status to rejected
   and select a reason
 - Check the reason has been saved (i.e in the suggestions
   table of rejected tab)
 - Check in the corresponding message_queue that the reason
   is here
 - Re-edit the same suggestion
 - Check that the correct reason is selected by defaut
 - Edit an other pending suggetion. Set the status to rejected,
   select other reason and fill the input text
 - Re-edit the previews suggestion and make sure the input
   "other" is displayed by default with the correct value

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
17.11.x
Alex Arnaud 5 years ago
committed by Jonathan Druart
parent
commit
7b9140e8ef
  1. 41
      koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
  2. 17
      suggestion/suggestion.pl

41
koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt

@ -172,6 +172,24 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
$("#quantity,#price,#currency").on("change",function(){
calcNewsuggTotal();
});
[% IF other_reason %]
$(".select-reason").hide();
$(".select-reason").find("option[value='other']").attr("selected","selected");
$("#other_reason").show();
[% ELSE %]
$("#other_reason").hide();
[% END %]
$(".select-reason").change(function(){
if($(this).val() == "other"){
$(this).hide();
$("#other_reason").show();
}
});
$("a[href*=back]").click(function(){
$(".select-reason").show().find("option[value='']").attr("selected","selected");
$("#other_reason").hide();
});
});
// ]]>
</script>
@ -457,6 +475,29 @@ h4.local_collapse a { font-size : 80%; text-decoration: none; } fieldset.brief o
[% END %]
</select>
</li>
<li>
<label for="reason">Reason</label>
<select class="select-reason" id="reason" name="reason">
<option value=""> -- Choose a reason -- </option>
[% FOREACH reasonsloo IN suggestion.reasonsloop %]
[% IF (reasonsloo.lib == suggestion.reason) %]
<option value="[% reasonsloo.lib %]" selected="selected">[% reasonsloo.lib %]</option>
[% ELSE %]
<option value="[% reasonsloo.lib %]">[% reasonsloo.lib %]</option>
[% END %]
[% END %]
<option value="other">Others...</option>
</select>
<span id="other_reason" name="other_reason">
[% IF other_reason %]
<input type="text" size="31" id="select-other_reason" name="other_reason" placeholder="please note your reason here..." value="[% suggestion.reason%]"/>
[% ELSE %]
<input type="text" size="31" id="select-other_reason" name="other_reason" placeholder="please note your reason here..." />
[% END %]
<a href="#back">Cancel</a>
</span>
</li>
[% END %]
<li><table>
<thead><tr><th>&nbsp;</th><th>Date</th><th>By</th></tr></thead>

17
suggestion/suggestion.pl

@ -92,6 +92,7 @@ my $returnsuggested = $input->param('returnsuggested');
my $managedby = $input->param('managedby');
my $displayby = $input->param('displayby') || '';
my $tabcode = $input->param('tabcode');
my $reasonsloop = GetAuthorisedValues("SUGGEST");
# filter informations which are not suggestion related.
my $suggestion_ref = $input->Vars;
@ -133,6 +134,12 @@ if ( $op =~ /save/i ) {
$suggestion_only->{manageddate} = dt_from_string;
$suggestion_only->{"managedby"} = C4::Context->userenv->{number};
}
my $otherreason = $input->param('other_reason');
if ($suggestion_only->{reason} eq 'other' && $otherreason) {
$suggestion_only->{reason} = $otherreason;
}
if ( $suggestion_only->{'suggestionid'} > 0 ) {
&ModSuggestion($suggestion_only);
} else {
@ -169,6 +176,15 @@ elsif ($op=~/add/) {
elsif ($op=~/edit/) {
#Edit suggestion
$suggestion_ref=&GetSuggestion($$suggestion_ref{'suggestionid'});
$suggestion_ref->{reasonsloop} = $reasonsloop;
my $other_reason = 1;
foreach my $reason ( @{ $reasonsloop } ) {
if ($suggestion_ref->{reason} eq $reason->{lib}) {
$other_reason = 0;
}
}
$other_reason = 0 unless $suggestion_ref->{reason};
$template->param(other_reason => $other_reason);
Init($suggestion_ref);
$op ='save';
}
@ -243,7 +259,6 @@ if ($op=~/else/) {
push @criteria_dv, '' if $criteria_has_empty;
my @allsuggestions;
my $reasonsloop = GetAuthorisedValues("SUGGEST");
foreach my $criteriumvalue ( @criteria_dv ) {
# By default, display suggestions from current working branch
unless ( exists $$suggestion_ref{'branchcode'} ) {

Loading…
Cancel
Save