aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZarino Zappia <mail@zarino.co.uk>2019-08-22 10:55:20 +0100
committerZarino Zappia <mail@zarino.co.uk>2019-08-23 10:38:29 +0100
commit3c73315e3b6a9d403b008bb06a6497224f2486c4 (patch)
treec477c26e2602c97c156bc154e85a67f1d47dbbd6
parent3c4d48f5fd5f499736f07ac2a5d17c1d4bab6c14 (diff)
$user->latest_visible_problem() convenience method
-rw-r--r--perllib/FixMyStreet/App/Controller/Contact.pm6
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Develop.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/User.pm9
3 files changed, 11 insertions, 10 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Contact.pm b/perllib/FixMyStreet/App/Controller/Contact.pm
index 90ea18ca2..c8cd14907 100644
--- a/perllib/FixMyStreet/App/Controller/Contact.pm
+++ b/perllib/FixMyStreet/App/Controller/Contact.pm
@@ -202,11 +202,7 @@ sub prepare_params_for_email : Private {
$c->stash->{user_admin_url} = $admin_url . '/users/' . $user->id;
$c->stash->{user_reports_admin_url} = $admin_url . '/reports?search=' . $user->email;
- my $user_latest_problem = $user->problems->search({
- state => [ FixMyStreet::DB::Result::Problem->visible_states() ]
- }, {
- order_by => { -desc => 'id' }
- })->single;
+ my $user_latest_problem = $user->latest_visible_problem();
if ( $user_latest_problem) {
$c->stash->{user_latest_report_admin_url} = $admin_url . '/report_edit/' . $user_latest_problem->id;
}
diff --git a/perllib/FixMyStreet/App/Controller/Develop.pm b/perllib/FixMyStreet/App/Controller/Develop.pm
index e6845ac02..d2457a3d7 100755
--- a/perllib/FixMyStreet/App/Controller/Develop.pm
+++ b/perllib/FixMyStreet/App/Controller/Develop.pm
@@ -132,11 +132,7 @@ sub email_previewer : Path('/_dev/email') : Args(1) {
$vars->{admin_url} = $c->cobrand->admin_base_url . '/report_edit/' . $vars->{problem}->id;
$vars->{user_admin_url} = $c->cobrand->admin_base_url . '/users/' . $c->user->id;
$vars->{user_reports_admin_url} = $c->cobrand->admin_base_url . '/reports?search=' . $c->user->email;
- my $user_latest_problem = $c->user->problems->search({
- state => [ FixMyStreet::DB::Result::Problem->visible_states() ]
- }, {
- order_by => { -desc => 'id' }
- })->single;
+ my $user_latest_problem = $c->user->latest_visible_problem();
if ( $user_latest_problem ) {
$vars->{user_latest_report_admin_url} = $c->cobrand->admin_base_url . '/report_edit/' . $user_latest_problem->id;
}
diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm
index 4ea7524bb..51f959e0e 100644
--- a/perllib/FixMyStreet/DB/Result/User.pm
+++ b/perllib/FixMyStreet/DB/Result/User.pm
@@ -198,6 +198,15 @@ sub latest_anonymity {
return $obj ? $obj->anonymous : 0;
}
+sub latest_visible_problem {
+ my $self = shift;
+ return $self->problems->search({
+ state => [ FixMyStreet::DB::Result::Problem->visible_states() ]
+ }, {
+ order_by => { -desc => 'id' }
+ })->single;
+}
+
=head2 check_for_errors
$error_hashref = $user->check_for_errors();