aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2020-03-16 14:12:49 +0000
committerMatthew Somerville <matthew@mysociety.org>2020-03-19 17:38:13 +0000
commit1a3a9076e7e0faba55be2c127c725d349a6daae7 (patch)
treea0e95828c42638cb826813782a5beb1b5a9610a2
parentb0d165d88cb45587bbae598e8b0aafb4bfb9b29f (diff)
[Admin] Access staff-only categories in admin.
-rw-r--r--CHANGELOG.md1
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm2
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Contact.pm5
-rw-r--r--t/app/controller/report_new_staff.t3
4 files changed, 10 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3bc43e66c..f03ccf413 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
- Bugfixes
- Application user in Docker container can't install packages. #2914
- Look at all categories when sending reports.
+ - Provide access to staff-only categories in admin.
- UK:
- Added junction lookup, so you can search for things like "M60, Junction 2"
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index bd45ad55e..f3d1b2e63 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -180,7 +180,7 @@ sub fetch_contacts : Private {
my $contacts = $c->stash->{body}->contacts->search(undef, { order_by => [ 'category' ] } );
$c->stash->{contacts} = $contacts;
- $c->stash->{live_contacts} = $contacts->not_deleted;
+ $c->stash->{live_contacts} = $contacts->not_deleted_admin;
$c->stash->{any_not_confirmed} = $contacts->search({ state => 'unconfirmed' })->count;
if ( $c->get_param('text') && $c->get_param('text') eq '1' ) {
diff --git a/perllib/FixMyStreet/DB/ResultSet/Contact.pm b/perllib/FixMyStreet/DB/ResultSet/Contact.pm
index eb502c190..f8f182e05 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Contact.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Contact.pm
@@ -20,6 +20,11 @@ sub not_deleted {
return $rs->search( { $rs->me('state') => { -not_in => [ 'deleted', 'staff' ] } } );
}
+sub not_deleted_admin {
+ my $rs = shift;
+ return $rs->search( { $rs->me('state') => { -not_in => [ 'deleted' ] } } );
+}
+
sub active {
my $rs = shift;
$rs->search( { $rs->me('state') => [ 'unconfirmed', 'confirmed' ] } );
diff --git a/t/app/controller/report_new_staff.t b/t/app/controller/report_new_staff.t
index ee9dff9e4..422b154ed 100644
--- a/t/app/controller/report_new_staff.t
+++ b/t/app/controller/report_new_staff.t
@@ -237,6 +237,9 @@ subtest 'staff-only categories when reporting' => sub {
$edin_trees->discard_changes;
is $edin_trees->state, 'staff', 'category is staff only';
+ $mech->get_ok('/admin/templates/' . $body_ids{2651} . '/new');
+ $mech->content_contains('Trees');
+
my $extra_details = $mech->get_ok_json( '/report/new/ajax?latitude=55.952055&longitude=-3.189579' );
is_deeply [ sort keys %{$extra_details->{by_category}} ], [ 'Street lighting', 'Trees' ], 'Superuser can see staff-only category';