diff options
Diffstat (limited to 'perllib')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 23 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm | 24 |
2 files changed, 14 insertions, 33 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index eefb4fc99..223cea9b4 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -312,27 +312,10 @@ sub inspect : Private { $c->forward('/admin/categories_for_point'); $c->stash->{report_meta} = { map { $_->{name} => $_ } @{ $c->stash->{problem}->get_extra_fields() } }; - my %category_body = map { $_->category => $_->body_id } map { $_->contacts->all } values %{$problem->bodies}; - - my @priorities = $c->model('DB::ResponsePriority')->for_bodies($problem->bodies_str_ids)->all; - my $priorities_by_category = {}; - foreach my $pri (@priorities) { - my $any = 0; - foreach ($pri->contacts->all) { - $any = 1; - push @{$priorities_by_category->{$_->category}}, $pri->id . '=' . URI::Escape::uri_escape_utf8($pri->name); - } - if (!$any) { - foreach (grep { $category_body{$_} == $pri->body_id } @{$c->stash->{categories}}) { - push @{$priorities_by_category->{$_}}, $pri->id . '=' . URI::Escape::uri_escape_utf8($pri->name); - } - } + if ($c->cobrand->can('council_area_id')) { + my $priorities_by_category = FixMyStreet::App->model('DB::ResponsePriority')->by_categories($c->cobrand->council_area_id, @{$c->stash->{contacts}}); + $c->stash->{priorities_by_category} = $priorities_by_category; } - foreach (keys %{$priorities_by_category}) { - $priorities_by_category->{$_} = join('&', @{$priorities_by_category->{$_}}); - } - - $c->stash->{priorities_by_category} = $priorities_by_category; if ( $c->get_param('save') ) { $c->forward('/auth/check_csrf_token'); diff --git a/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm b/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm index aa9c426f4..89bb4dfd7 100644 --- a/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm +++ b/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm @@ -3,20 +3,18 @@ use base 'DBIx::Class::ResultSet'; use strict; use warnings; +use Moo; +use HTML::Entities; -sub for_bodies { - my ($rs, $bodies, $category) = @_; - my $attrs = { - 'me.body_id' => $bodies, - }; - if ($category) { - $attrs->{'contact.category'} = [ $category, undef ]; - } - $rs->search($attrs, { - order_by => 'name', - join => { 'contact_response_priorities' => 'contact' }, - distinct => 1, - }); +with('FixMyStreet::Roles::ContactExtra'); + +sub join_table { + return 'contact_response_priorities'; +} + +sub map_extras { + my ($rs, @ts) = @_; + return map { { id => $_->id, name => encode_entities($_->name) } } @ts; } 1; |