diff options
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Admin.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin.pm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 07a6e7f3c..748842df5 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -8,10 +8,10 @@ use Path::Class; use POSIX qw(strftime strcoll); use Digest::SHA qw(sha1_hex); use mySociety::EmailUtil qw(is_valid_email); +use mySociety::ArrayUtils; use DateTime::Format::Strptime; use List::Util 'first'; - use FixMyStreet::SendReport; =head1 NAME @@ -852,8 +852,12 @@ sub report_edit_category : Private { if ((my $category = $c->get_param('category')) ne $problem->category) { $problem->category($category); my @contacts = grep { $_->category eq $problem->category } @{$c->stash->{contacts}}; - my $bs = join( ',', map { $_->body_id } @contacts ); - $problem->bodies_str($bs); + my @new_body_ids = map { $_->body_id } @contacts; + # If the report has changed bodies we need to resend it + if (scalar @{mySociety::ArrayUtils::symmetric_diff($problem->bodies_str_ids, \@new_body_ids)}) { + $problem->whensent(undef); + } + $problem->bodies_str(join( ',', @new_body_ids )); } } |