diff options
-rw-r--r-- | perllib/FixMyStreet/Cobrand/Zurich.pm | 7 | ||||
-rw-r--r-- | t/cobrand/zurich.t | 5 |
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; |