diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-04-27 14:50:22 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-04-27 15:50:58 +0100 |
commit | 033fa395369324188beea2469d072ee0965c8d74 (patch) | |
tree | 86b16c9dbd3bf2c552a4dc77e9a46255f50fff04 | |
parent | 86677908feec287449467b565f63fa2f8db7e560 (diff) |
[Open311] Hide fetched update if no data to show.
If no text, photo, or state change, hide the update from display.
-rw-r--r-- | perllib/Open311/GetServiceRequestUpdates.pm | 8 | ||||
-rw-r--r-- | t/open311/getservicerequestupdates.t | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/perllib/Open311/GetServiceRequestUpdates.pm b/perllib/Open311/GetServiceRequestUpdates.pm index e052e4bd4..b4d7c6347 100644 --- a/perllib/Open311/GetServiceRequestUpdates.pm +++ b/perllib/Open311/GetServiceRequestUpdates.pm @@ -136,8 +136,8 @@ sub update_comments { # a more fine-grained status code that we use within FMS for # response templates. if ( $external_status_code ) { - $comment->set_extra_metadata(external_status_code =>$external_status_code); - $p->set_extra_metadata(external_status_code =>$external_status_code); + $comment->set_extra_metadata(external_status_code => $external_status_code); + $p->set_extra_metadata(external_status_code => $external_status_code); } $open311->add_media($request->{media_url}, $comment) @@ -162,6 +162,10 @@ sub update_comments { } } + # If nothing to show (no text, photo, or state change), don't show this update + $comment->state('hidden') unless $comment->text || $comment->photo + || ($comment->problem_state && $state ne $old_state); + $p->lastupdate( $comment->created ); $p->update; $comment->insert(); diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t index dad3bb0d1..3c279d776 100644 --- a/t/open311/getservicerequestupdates.t +++ b/t/open311/getservicerequestupdates.t @@ -368,6 +368,7 @@ for my $test ( mark_open => 0, problem_state => 'investigating', end_state => 'investigating', + comment_state => 'hidden', }, { desc => 'open status does not re-open hidden report', @@ -401,6 +402,7 @@ for my $test ( is $c->mark_fixed, $test->{mark_fixed}, 'mark_closed correct'; is $c->problem_state, $test->{problem_state}, 'problem_state correct'; is $c->mark_open, $test->{mark_open}, 'mark_open correct'; + is $c->state, $test->{comment_state} || 'confirmed', 'comment state correct'; is $problem->state, $test->{end_state}, 'correct problem state'; $problem->comments->delete; }; |