diff options
author | Struan Donald <struan@exo.org.uk> | 2017-09-08 17:20:54 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2017-09-13 09:50:02 +0100 |
commit | e2225f14211e061330223b9f752b7924610bc0f9 (patch) | |
tree | e910fcdc7a2ed17da435afa50d36627c5328a9b1 | |
parent | d9c0917b84d501e6cfca7e0113470997b6ff2f35 (diff) |
select default response priority in inspect panel
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 6 | ||||
-rw-r--r-- | t/app/controller/report_inspect.t | 12 | ||||
-rw-r--r-- | templates/web/base/report/_inspect.html | 4 |
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> |