aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2017-09-08 17:20:54 +0100
committerStruan Donald <struan@exo.org.uk>2017-09-13 09:50:02 +0100
commite2225f14211e061330223b9f752b7924610bc0f9 (patch)
treee910fcdc7a2ed17da435afa50d36627c5328a9b1
parentd9c0917b84d501e6cfca7e0113470997b6ff2f35 (diff)
select default response priority in inspect panel
-rw-r--r--perllib/FixMyStreet/App/Controller/Report.pm6
-rw-r--r--t/app/controller/report_inspect.t12
-rw-r--r--templates/web/base/report/_inspect.html4
3 files changed, 20 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm
index 60d373a16..e37e08698 100644
--- a/perllib/FixMyStreet/App/Controller/Report.pm
+++ b/perllib/FixMyStreet/App/Controller/Report.pm
@@ -320,6 +320,12 @@ sub inspect : Private {
$c->stash->{post_inspect_url} = $c->req->referer;
}
+ if ($c->user->has_body_permission_to('report_edit_priority') or
+ $c->user->has_body_permission_to('report_inspect')
+ ) {
+ $c->stash->{has_default_priority} = scalar( grep { $_->is_default } $problem->response_priorities );
+ }
+
if ( $c->get_param('save') ) {
$c->forward('/auth/check_csrf_token');
diff --git a/t/app/controller/report_inspect.t b/t/app/controller/report_inspect.t
index 68f9063cf..5bbbdff79 100644
--- a/t/app/controller/report_inspect.t
+++ b/t/app/controller/report_inspect.t
@@ -226,6 +226,18 @@ FixMyStreet::override_config {
$user->user_body_permissions->search({ body_id => $oxon->id, permission_type => 'planned_reports' })->delete;
};
+ subtest "default response priorities display correctly" => sub {
+ $mech->get_ok("/report/$report_id");
+ $mech->content_contains('Priority</label', 'report priority list present');
+ like $mech->content, qr/<select name="priority" id="problem_priority" class="form-control">[^<]*<option value="" selecte/s, 'blank priority option is selected';
+ $mech->content_lacks('value="' . $rp->id . '" selected>High', 'non default priority not selected');
+
+ $rp->update({ is_default => 1});
+ $mech->get_ok("/report/$report_id");
+ unlike $mech->content, qr/<select name="priority" id="problem_priority" class="form-control">[^<]*<option value="" selecte/s, 'blank priority option not selected';
+ $mech->content_contains('value="' . $rp->id . '" selected>High', 'default priority selected');
+ };
+
foreach my $test (
{ type => 'report_edit_priority', priority => 1 },
{ type => 'report_edit_category', category => 1 },
diff --git a/templates/web/base/report/_inspect.html b/templates/web/base/report/_inspect.html
index 59806dc66..a275555f1 100644
--- a/templates/web/base/report/_inspect.html
+++ b/templates/web/base/report/_inspect.html
@@ -122,9 +122,9 @@
<p>
<label for="problem_priority">[% loc('Priority') %]</label>
<select name="priority" id="problem_priority" class="form-control">
- <option value="" [% 'selected' UNLESS problem.response_priority_id %]>-</option>
+ <option value="" [% 'selected' UNLESS problem.response_priority_id OR has_default_priority %]>-</option>
[% FOREACH priority IN problem.response_priorities %]
- <option value="[% priority.id %]" [% 'selected' IF problem.response_priority_id == priority.id %] [% 'disabled' IF priority.deleted %]>[% priority.name | html %]</option>
+ <option value="[% priority.id %]" [% 'selected' IF ( problem.response_priority_id == priority.id ) OR priority.is_default %][% 'disabled' IF priority.deleted %]>[% priority.name | html %]</option>
[% END %]
</select>
</p>