aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/Cobrand/Bexley.pm27
-rw-r--r--perllib/FixMyStreet/Cobrand/Oxfordshire.pm1
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Contact.pm9
-rw-r--r--t/cobrand/bexley.t10
4 files changed, 46 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Bexley.pm b/perllib/FixMyStreet/Cobrand/Bexley.pm
index 1f16b817e..26470617a 100644
--- a/perllib/FixMyStreet/Cobrand/Bexley.pm
+++ b/perllib/FixMyStreet/Cobrand/Bexley.pm
@@ -131,4 +131,31 @@ sub open311_post_send {
$sender->send($row, $h);
}
+sub dashboard_export_problems_add_columns {
+ my $self = shift;
+ my $c = $self->{c};
+
+ my %groups;
+ if ($c->stash->{body}) {
+ %groups = FixMyStreet::DB->resultset('Contact')->active->search({
+ body_id => $c->stash->{body}->id,
+ })->group_lookup;
+ }
+
+ splice @{$c->stash->{csv}->{headers}}, 5, 0, 'Subcategory';
+ splice @{$c->stash->{csv}->{columns}}, 5, 0, 'subcategory';
+
+ $c->stash->{csv}->{extra_data} = sub {
+ my $report = shift;
+
+ if ($groups{$report->category}) {
+ return {
+ category => $groups{$report->category},
+ subcategory => $report->category,
+ };
+ }
+ return {};
+ };
+}
+
1;
diff --git a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
index 72a56f46c..ea6f14904 100644
--- a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
+++ b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm
@@ -128,6 +128,7 @@ sub open311_config {
}
$row->set_extra_fields( @$extra );
+ $params->{multi_photos} = 1;
$params->{extended_description} = 'oxfordshire';
}
diff --git a/perllib/FixMyStreet/DB/ResultSet/Contact.pm b/perllib/FixMyStreet/DB/ResultSet/Contact.pm
index 8ef6d1ac5..7b3258262 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Contact.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Contact.pm
@@ -37,4 +37,13 @@ sub summary_count {
);
}
+sub group_lookup {
+ my $rs = shift;
+ map {
+ my $group = $_->get_extra_metadata('group') || '';
+ $group = join(',', ref $group ? @$group : $group);
+ $_->category => $group
+ } $rs->all;
+}
+
1;
diff --git a/t/cobrand/bexley.t b/t/cobrand/bexley.t
index f72b7e7c4..f227e7450 100644
--- a/t/cobrand/bexley.t
+++ b/t/cobrand/bexley.t
@@ -33,7 +33,9 @@ $mech->create_contact_ok(body_id => $body->id, category => 'Abandoned and untaxe
$mech->create_contact_ok(body_id => $body->id, category => 'Lamp post', email => "LAMP");
$mech->create_contact_ok(body_id => $body->id, category => 'Parks and open spaces', email => "PARK");
$mech->create_contact_ok(body_id => $body->id, category => 'Dead animal', email => "ANIM");
-$mech->create_contact_ok(body_id => $body->id, category => 'Something dangerous', email => "DANG");
+my $category = $mech->create_contact_ok(body_id => $body->id, category => 'Something dangerous', email => "DANG");
+$category->set_extra_metadata(group => 'Danger things');
+$category->update;
FixMyStreet::override_config {
ALLOWED_COBRANDS => [ 'bexley' ],
@@ -119,6 +121,12 @@ FixMyStreet::override_config {
$mech->content_lacks('Resend report');
};
+ subtest 'extra CSV column present' => sub {
+ $mech->get_ok('/dashboard?export=1');
+ $mech->content_contains(',Category,Subcategory,');
+ $mech->content_contains('"Danger things","Something dangerous"');
+ };
+
};
subtest 'nearest road returns correct road' => sub {