aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2018-03-02 17:06:51 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2018-03-02 17:10:27 +0000
commit224855a5571b59a8276595ed9a80d1706cba1d6e (patch)
tree206c2ecebaee17bfe8ac293417abcc58ae0739a5
parenta112bff47201786dab2239fe72efbf4b162a870b (diff)
parent9154199ddf8ddb373ca34758f96d009401e4dc81 (diff)
Merge branch 'issues/commercial/974-closed-report-incorrectly-reopened'
-rw-r--r--perllib/FixMyStreet/Cobrand/Zurich.pm7
-rw-r--r--t/cobrand/zurich.t5
2 files changed, 8 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Zurich.pm b/perllib/FixMyStreet/Cobrand/Zurich.pm
index f0308d6d7..06244ccd4 100644
--- a/perllib/FixMyStreet/Cobrand/Zurich.pm
+++ b/perllib/FixMyStreet/Cobrand/Zurich.pm
@@ -639,7 +639,7 @@ sub admin_report_edit {
my $closure_states = $self->zurich_closed_states;
delete $closure_states->{'fixed - council'}; # may not be needed?
- my $old_closure_state = $problem->get_extra_metadata('closure_status');
+ my $old_closure_state = $problem->get_extra_metadata('closure_status') || '';
# update the public update from DM
if (my $update = $c->get_param('status_update')) {
@@ -661,9 +661,8 @@ sub admin_report_edit {
$internal_note_text = "Weitergeleitet von $old_cat an $new_cat";
$self->update_admin_log($c, $problem, "Changed category from $old_cat to $new_cat");
$redirect = 1 if $cat->body_id ne $body->id;
- } elsif ( $closure_states->{$state} and
- ( $oldstate ne 'planned' )
- || (($old_closure_state ||'') ne $state))
+ } elsif ( $oldstate ne $state and $closure_states->{$state} and
+ $oldstate ne 'planned' || $old_closure_state ne $state)
{
# for these states
# - closed (Extern)
diff --git a/t/cobrand/zurich.t b/t/cobrand/zurich.t
index 7be6bd3b2..4ae9a0cde 100644
--- a/t/cobrand/zurich.t
+++ b/t/cobrand/zurich.t
@@ -289,6 +289,11 @@ subtest "report_edit" => sub {
is ( $report->get_extra_metadata('closed_overdue'), 0, "Closing as hidden sets closed_overdue..." );
is ( $report->state, 'hidden', 'Closing as hidden sets state to hidden');
is ( $report->get_extra_metadata('closure_status'), undef, 'Closing as hidden unsets closure_status');
+
+ $mech->submit_form_ok( { with_fields => { new_internal_note => 'Initial internal note.' } } );
+ $report->discard_changes;
+ is ( $report->state, 'hidden', 'Another internal note does not reopen');
+
$mech->get( '/report/' . $report->id);
is $mech->res->code, 410;