aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/Result/Problem.pm
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2016-12-13 16:41:00 +0000
committerDave Arter <davea@mysociety.org>2016-12-13 16:41:00 +0000
commitb8aa0d6da9009dc3182093165df9b1a4c6d7d164 (patch)
treefaac683c3d9a5ec56b9e54d8913742f1169f0f5e /perllib/FixMyStreet/DB/Result/Problem.pm
parent93180a49cb9f56cd92c97ea1e22cf5cc9dd7194a (diff)
parentec6389940afce877a0bc7771d11a27ee7183f96a (diff)
Merge branch 'issues/forcouncils/18-merge-duplicate-reports'
Diffstat (limited to 'perllib/FixMyStreet/DB/Result/Problem.pm')
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm25
1 files changed, 25 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index ab6f20050..ec1534fe9 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -181,6 +181,7 @@ use namespace::clean -except => [ 'meta' ];
use Utils;
use FixMyStreet::Map::FMS;
use LWP::Simple qw($ua);
+use RABX;
my $IM = eval {
require Image::Magick;
@@ -941,6 +942,7 @@ sub pin_data {
id => $self->id,
title => $opts{private} ? $self->title : $self->title_safe,
problem => $self,
+ type => $opts{type},
}
};
@@ -1032,4 +1034,27 @@ has shortlisted_user => (
},
);
+has duplicate_of => (
+ is => 'ro',
+ lazy => 1,
+ default => sub {
+ my $self = shift;
+ 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;
+ },
+);
+
+has duplicates => (
+ is => 'ro',
+ lazy => 1,
+ default => sub {
+ my $self = shift;
+ my $rabx_id = RABX::serialise( $self->id );
+ my @duplicates = $self->result_source->schema->resultset('Problem')->search({ extra => { like => "\%duplicate_of,$rabx_id%" } })->all;
+ return \@duplicates;
+ },
+);
+
1;