aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/Result/Comment.pm
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2018-01-31 12:15:16 +0000
committerMatthew Somerville <matthew-github@dracos.co.uk>2018-01-31 12:15:16 +0000
commit35445b8cc7ae02acdfbfc3e2e9da15b022736906 (patch)
tree4a77d625c14688ff89e9fc0ece499a99b4062879 /perllib/FixMyStreet/DB/Result/Comment.pm
parentdf6212087ec4ba0fe5ea8b9cde1492cf69b84446 (diff)
parent2f8e3f7b86650d2b05b346615ac9f5fb7e8dcdb5 (diff)
Merge branch '1942-admin-anonymize'
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/Comment.pm')
-rw-r--r--perllib/FixMyStreet/DB/Result/Comment.pm25
1 files changed, 25 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Comment.pm b/perllib/FixMyStreet/DB/Result/Comment.pm
index 4e869ab24..8a4dbe475 100644
--- a/perllib/FixMyStreet/DB/Result/Comment.pm
+++ b/perllib/FixMyStreet/DB/Result/Comment.pm
@@ -273,4 +273,29 @@ sub problem_state_display {
return $update_state;
}
+sub is_latest {
+ my $self = shift;
+ my $latest_update = $self->result_source->resultset->search(
+ { problem_id => $self->problem_id, state => 'confirmed' },
+ { order_by => [ { -desc => 'confirmed' }, { -desc => 'id' } ] }
+ )->first;
+ return $latest_update->id == $self->id;
+}
+
+sub hide {
+ my $self = shift;
+
+ my $ret = {};
+
+ # If we're hiding an update, see if it marked as fixed and unfix if so
+ if ($self->mark_fixed && $self->is_latest && $self->problem->state =~ /^fixed/) {
+ $self->problem->state('confirmed');
+ $self->problem->update;
+ $ret->{reopened} = 1;
+ }
+ $self->get_photoset->delete_cached;
+ $self->update({ state => 'hidden' });
+ return $ret;
+}
+
1;