aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet')
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm17
-rw-r--r--perllib/FixMyStreet/Cobrand/Buckinghamshire.pm2
-rw-r--r--perllib/FixMyStreet/Map/BathNES.pm6
-rw-r--r--perllib/FixMyStreet/Map/Bristol.pm2
-rw-r--r--perllib/FixMyStreet/Map/Bromley.pm3
-rw-r--r--perllib/FixMyStreet/Map/Buckinghamshire.pm3
-rw-r--r--perllib/FixMyStreet/Map/FMS.pm2
-rw-r--r--perllib/FixMyStreet/Map/OSM.pm2
8 files changed, 25 insertions, 12 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index 5d24bc980..c332830b9 100644
--- a/perllib/FixMyStreet/App/Controller/Report/New.pm
+++ b/perllib/FixMyStreet/App/Controller/Report/New.pm
@@ -636,7 +636,7 @@ sub setup_categories_and_bodies : Private {
= $c #
->model('DB::Contact') #
->active
- ->search( { body_id => [ keys %bodies ] }, { prefetch => 'body' } );
+ ->search( { 'me.body_id' => [ keys %bodies ] }, { prefetch => 'body' } );
my @contacts = $c->cobrand->categories_restriction($contacts)->all;
# variables to populate
@@ -955,7 +955,9 @@ sub process_report : Private {
my $body = $c->model('DB::Body')->search({ name => $single_body_only })->first;
$body ? $body->id : '-1';
} else {
- my $bodies = $c->forward('contacts_to_bodies', [ $report->category ]);
+ my $contact_options = {};
+ $contact_options->{do_not_send} = [ $c->get_param_list('do_not_send', 1) ];
+ my $bodies = $c->forward('contacts_to_bodies', [ $report->category, $contact_options ]);
join(',', map { $_->id } @$bodies) || '-1';
}
};
@@ -1014,10 +1016,19 @@ sub process_report : Private {
}
sub contacts_to_bodies : Private {
- my ($self, $c, $category) = @_;
+ my ($self, $c, $category, $options) = @_;
my @contacts = grep { $_->category eq $category } @{$c->stash->{contacts}};
+ # check that the front end has not indicated that we should not send to a
+ # body. This is usually because the asset code thinks it's not near enough
+ # to a road.
+ if ($options->{do_not_send}) {
+ my %do_not_send_check = map { $_ => 1 } @{$options->{do_not_send}};
+ my @contacts_filtered = grep { !$do_not_send_check{$_->body->name} } @contacts;
+ @contacts = @contacts_filtered if scalar @contacts_filtered;
+ }
+
if ($c->stash->{unresponsive}{$category} || $c->stash->{unresponsive}{ALL} || !@contacts) {
[];
} else {
diff --git a/perllib/FixMyStreet/Cobrand/Buckinghamshire.pm b/perllib/FixMyStreet/Cobrand/Buckinghamshire.pm
index 11b52174a..c910756cc 100644
--- a/perllib/FixMyStreet/Cobrand/Buckinghamshire.pm
+++ b/perllib/FixMyStreet/Cobrand/Buckinghamshire.pm
@@ -334,7 +334,7 @@ sub categories_restriction {
my ($self, $rs) = @_;
# Buckinghamshire is a two-tier council, but only want to display
# county-level categories on their cobrand.
- return $rs->search( { 'body.id' => 2217 } );
+ return $rs->search( { 'body_areas.area_id' => 2217 }, { join => { body => 'body_areas' } });
}
sub lookup_site_code {
diff --git a/perllib/FixMyStreet/Map/BathNES.pm b/perllib/FixMyStreet/Map/BathNES.pm
index 9c9c3c11d..b21ba6ce7 100644
--- a/perllib/FixMyStreet/Map/BathNES.pm
+++ b/perllib/FixMyStreet/Map/BathNES.pm
@@ -7,12 +7,12 @@ use base 'FixMyStreet::Map::OSM';
use strict;
sub map_javascript { [
- '/vendor/OpenLayers/OpenLayers.bathnes.js',
+ '/vendor/OpenLayers/OpenLayers.wfs.js',
'/vendor/OpenLayers.Projection.OrdnanceSurvey.js',
'/js/map-OpenLayers.js',
'/js/map-OpenStreetMap.js',
'/cobrands/fixmystreet/assets.js',
- '/cobrands/bathnes/js.js',
+ '/cobrands/bathnes/assets.js',
] }
-1; \ No newline at end of file
+1;
diff --git a/perllib/FixMyStreet/Map/Bristol.pm b/perllib/FixMyStreet/Map/Bristol.pm
index 5d05fbd34..99bdd26d7 100644
--- a/perllib/FixMyStreet/Map/Bristol.pm
+++ b/perllib/FixMyStreet/Map/Bristol.pm
@@ -64,7 +64,7 @@ sub map_javascript { [
'/js/map-wmts-base.js',
'/js/map-wmts-bristol.js',
'/cobrands/fixmystreet/assets.js',
- '/cobrands/bristol/js.js',
+ '/cobrands/bristol/assets.js',
] }
# Reproject a WGS84 lat/lon into BNG easting/northing
diff --git a/perllib/FixMyStreet/Map/Bromley.pm b/perllib/FixMyStreet/Map/Bromley.pm
index 22e4147f6..cd50cc1d1 100644
--- a/perllib/FixMyStreet/Map/Bromley.pm
+++ b/perllib/FixMyStreet/Map/Bromley.pm
@@ -10,12 +10,13 @@ use base 'FixMyStreet::Map::FMS';
use strict;
sub map_javascript { [
- '/vendor/OpenLayers/OpenLayers.buckinghamshire.js',
+ '/vendor/OpenLayers/OpenLayers.wfs.js',
'/js/map-OpenLayers.js',
'/js/map-bing-ol.js',
'/js/map-fms.js',
'/cobrands/fixmystreet/assets.js',
'/cobrands/bromley/map.js',
+ '/cobrands/bromley/assets.js',
] }
sub map_tile_base {
diff --git a/perllib/FixMyStreet/Map/Buckinghamshire.pm b/perllib/FixMyStreet/Map/Buckinghamshire.pm
index b6d86d4b9..10ee2a080 100644
--- a/perllib/FixMyStreet/Map/Buckinghamshire.pm
+++ b/perllib/FixMyStreet/Map/Buckinghamshire.pm
@@ -7,13 +7,14 @@ use base 'FixMyStreet::Map::OSM';
use strict;
sub map_javascript { [
- '/vendor/OpenLayers/OpenLayers.buckinghamshire.js',
+ '/vendor/OpenLayers/OpenLayers.wfs.js',
'/vendor/OpenLayers.Projection.OrdnanceSurvey.js',
'/js/map-OpenLayers.js',
'/js/map-OpenStreetMap.js',
'/cobrands/fixmystreet-uk-councils/roadworks.js',
'/cobrands/fixmystreet/assets.js',
'/cobrands/buckinghamshire/js.js',
+ '/cobrands/buckinghamshire/assets.js',
] }
1;
diff --git a/perllib/FixMyStreet/Map/FMS.pm b/perllib/FixMyStreet/Map/FMS.pm
index 89f872297..226123c69 100644
--- a/perllib/FixMyStreet/Map/FMS.pm
+++ b/perllib/FixMyStreet/Map/FMS.pm
@@ -12,7 +12,7 @@ use strict;
sub map_template { 'fms' }
sub map_javascript { [
- '/vendor/OpenLayers/OpenLayers.fixmystreet.js',
+ '/vendor/OpenLayers/OpenLayers.wfs.js',
'/js/map-OpenLayers.js',
'/js/map-bing-ol.js',
'/js/map-fms.js',
diff --git a/perllib/FixMyStreet/Map/OSM.pm b/perllib/FixMyStreet/Map/OSM.pm
index 47d6eeee7..67f12d526 100644
--- a/perllib/FixMyStreet/Map/OSM.pm
+++ b/perllib/FixMyStreet/Map/OSM.pm
@@ -19,7 +19,7 @@ sub map_type { 'OpenLayers.Layer.OSM.Mapnik' }
sub map_template { 'osm' }
sub map_javascript { [
- '/vendor/OpenLayers/OpenLayers.fixmystreet.js',
+ '/vendor/OpenLayers/OpenLayers.wfs.js',
'/js/map-OpenLayers.js',
'/js/map-OpenStreetMap.js',
] }