aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2017-12-13 13:35:12 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2017-12-13 13:35:12 +0000
commit5a6d30ba74e70412593398b43e4c5e5c938c1d4c (patch)
tree0b48ac48f1914a4091b6312fc175ce0849012c37
parentc6dd57095435257b1a37e424c4170d37a1c82a37 (diff)
parentf982c8f38d192c7d4c3304ab5617df01be4176a6 (diff)
Merge branch 'issues/forcouncils/261-rdi-check'
-rw-r--r--CHANGELOG.md2
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm13
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm11
-rw-r--r--perllib/FixMyStreet/Script/Reports.pm4
-rw-r--r--perllib/FixMyStreet/SendReport/Angus.pm1
-rw-r--r--perllib/FixMyStreet/SendReport/Open311.pm1
-rw-r--r--templates/web/fixmystreet.com/report/updates-sidebar-notes.html2
7 files changed, 22 insertions, 12 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0f950e974..0e73a903a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -38,6 +38,7 @@
- Superusers without a from_body can make reports again. #1913
- Fix crash when viewing /around in certain locales. #1916
- Fix back bug, from report after using list filters. #1920
+ - Fix issues with send method category change. #1933
- Admin improvements:
- Character length limit can be placed on report detailed information #1848
- Inspector panel shows nearest address if available #1850
@@ -55,6 +56,7 @@
- Consolidate various admin summary statistics page. #1919.
- 'Auto-response' flag on response templates is honoured for fetched
Open311 updates. #1924
+ - Store all successful send methods. #1933
- UK:
- Use SVG logo, inlined on front page. #1887
- Inline critical CSS on front page.
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index e21b0cc2f..7b9bd6e96 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -960,17 +960,14 @@ sub report_edit_category : Private {
$problem->whensent(undef);
}
# If the send methods of the old/new contacts differ we need to resend the report
- my @old_contacts = grep { $_->category eq $category_old } @{$c->stash->{contacts}};
my @new_send_methods = uniq map {
( $_->body->can_be_devolved && $_->send_method ) ?
- $_->send_method : $_->body->send_method;
+ $_->send_method : $_->body->send_method
+ ? $_->body->send_method
+ : $c->cobrand->_fallback_body_sender()->{method};
} @contacts;
- my @old_send_methods = map {
- ( $_->body->can_be_devolved && $_->send_method ) ?
- $_->send_method : $_->body->send_method;
- } @old_contacts;
- if ( scalar @{ mySociety::ArrayUtils::symmetric_diff(\@old_send_methods, \@new_send_methods) } ) {
- $c->log->debug("Report changed, resending");
+ my %old_send_methods = map { $_ => 1 } split /,/, ($problem->send_method_used || "Email");
+ if (grep !$old_send_methods{$_}, @new_send_methods) {
$problem->whensent(undef);
}
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index 3866532e9..8625bf17a 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -867,6 +867,17 @@ sub update_send_failed {
} );
}
+sub add_send_method {
+ my $self = shift;
+ my $sender = shift;
+ ($sender = ref $sender) =~ s/^.*:://;
+ if (my $send_method = $self->send_method_used) {
+ $self->send_method_used("$send_method,$sender");
+ } else {
+ $self->send_method_used($sender);
+ }
+}
+
sub as_hashref {
my $self = shift;
my $c = shift;
diff --git a/perllib/FixMyStreet/Script/Reports.pm b/perllib/FixMyStreet/Script/Reports.pm
index 1ea98342c..04ad1c893 100644
--- a/perllib/FixMyStreet/Script/Reports.pm
+++ b/perllib/FixMyStreet/Script/Reports.pm
@@ -222,7 +222,9 @@ sub send(;$) {
for my $sender ( keys %reporters ) {
debug_print("sending using " . $sender, $row->id) if $debug_mode;
$sender = $reporters{$sender};
- $result *= $sender->send( $row, \%h );
+ my $res = $sender->send( $row, \%h );
+ $result *= $res;
+ $row->add_send_method($sender) if !$res;
if ( $sender->unconfirmed_counts) {
foreach my $e (keys %{ $sender->unconfirmed_counts } ) {
foreach my $c (keys %{ $sender->unconfirmed_counts->{$e} }) {
diff --git a/perllib/FixMyStreet/SendReport/Angus.pm b/perllib/FixMyStreet/SendReport/Angus.pm
index b552fbd9d..4ba5f3070 100644
--- a/perllib/FixMyStreet/SendReport/Angus.pm
+++ b/perllib/FixMyStreet/SendReport/Angus.pm
@@ -154,7 +154,6 @@ sub send {
my $external_id = $self->get_external_id( $result );
if ( $external_id ) {
$row->external_id( $external_id );
- $row->send_method_used('Angus');
$return = 0;
}
} catch {
diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm
index 467030a89..ecda0bca1 100644
--- a/perllib/FixMyStreet/SendReport/Open311.pm
+++ b/perllib/FixMyStreet/SendReport/Open311.pm
@@ -84,7 +84,6 @@ sub send {
if ( $resp ) {
$row->external_id( $resp );
- $row->send_method_used('Open311');
$result *= 0;
$self->success( 1 );
} else {
diff --git a/templates/web/fixmystreet.com/report/updates-sidebar-notes.html b/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
index 90e88d86c..17e3ade62 100644
--- a/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
+++ b/templates/web/fixmystreet.com/report/updates-sidebar-notes.html
@@ -1,5 +1,5 @@
<p>
- [% IF problem.send_method_used != 'Open311' OR NOT problem.to_body_named('Bromley|Stevenage') %]
+ [% IF NOT problem.send_method_used.match('Open311') OR NOT problem.to_body_named('Bromley|Stevenage') %]
[% loc( 'Please note that updates are not sent to the council.' ) %]
[% END %]
[% loc( 'Your information will only be used in accordance with our <a href="/privacy">privacy policy</a>' ) %]