aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
Diffstat (limited to 'perllib')
-rw-r--r--perllib/FixMyStreet/App/Controller/Report.pm3
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm5
2 files changed, 6 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm
index a9d171d33..cd42e89a4 100644
--- a/perllib/FixMyStreet/App/Controller/Report.pm
+++ b/perllib/FixMyStreet/App/Controller/Report.pm
@@ -345,6 +345,9 @@ sub inspect : Private {
if ( $problem->state eq 'hidden' ) {
$problem->get_photoset->delete_cached;
}
+ if ( $problem->state ne 'duplicate' ) {
+ $problem->unset_extra_metadata('duplicate_of');
+ }
if ( $problem->state ne $old_state ) {
$c->forward( '/admin/log_edit', [ $problem->id, 'problem', 'state_change' ] );
}
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index c63e6c881..bb21fcc11 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -1037,8 +1037,9 @@ has duplicate_of => (
lazy => 1,
default => sub {
my $self = shift;
- my $duplicate_of = $self->get_extra_metadata("duplicate_of");
- return unless defined $duplicate_of;
+ return unless $self->state eq 'duplicate';
+ my $duplicate_of = int($self->get_extra_metadata("duplicate_of") || 0);
+ return unless $duplicate_of;
return $self->result_source->schema->resultset('Problem')->search({ id => $duplicate_of })->first;
},
);