aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/DB')
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm11
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm22
2 files changed, 23 insertions, 10 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index ab6f20050..91b8d449e 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -680,16 +680,7 @@ alphabetical order of name.
sub response_priorities {
my $self = shift;
- return $self->result_source->schema->resultset('ResponsePriority')->search(
- {
- 'me.body_id' => $self->bodies_str_ids,
- 'contact.category' => [ $self->category, undef ],
- },
- {
- order_by => 'name',
- join => { 'contact_response_priorities' => 'contact' },
- }
- );
+ return $self->result_source->schema->resultset('ResponsePriority')->for_bodies($self->bodies_str_ids, $self->category);
}
# returns true if the external id is the council's ref, i.e., useful to publish it
diff --git a/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm b/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm
new file mode 100644
index 000000000..aa9c426f4
--- /dev/null
+++ b/perllib/FixMyStreet/DB/ResultSet/ResponsePriority.pm
@@ -0,0 +1,22 @@
+package FixMyStreet::DB::ResultSet::ResponsePriority;
+use base 'DBIx::Class::ResultSet';
+
+use strict;
+use warnings;
+
+sub for_bodies {
+ my ($rs, $bodies, $category) = @_;
+ my $attrs = {
+ 'me.body_id' => $bodies,
+ };
+ if ($category) {
+ $attrs->{'contact.category'} = [ $category, undef ];
+ }
+ $rs->search($attrs, {
+ order_by => 'name',
+ join => { 'contact_response_priorities' => 'contact' },
+ distinct => 1,
+ });
+}
+
+1;