diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-01-31 12:15:16 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-01-31 12:15:16 +0000 |
commit | 35445b8cc7ae02acdfbfc3e2e9da15b022736906 (patch) | |
tree | 4a77d625c14688ff89e9fc0ece499a99b4062879 /perllib/FixMyStreet/DB/Result/Comment.pm | |
parent | df6212087ec4ba0fe5ea8b9cde1492cf69b84446 (diff) | |
parent | 2f8e3f7b86650d2b05b346615ac9f5fb7e8dcdb5 (diff) |
Merge branch '1942-admin-anonymize'
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/Comment.pm')
-rw-r--r-- | perllib/FixMyStreet/DB/Result/Comment.pm | 25 |
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; |