aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/DB')
-rw-r--r--perllib/FixMyStreet/DB/Result/Body.pm11
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm2
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Body.pm8
3 files changed, 18 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/DB/Result/Body.pm b/perllib/FixMyStreet/DB/Result/Body.pm
index 74a38f225..d459d5f02 100644
--- a/perllib/FixMyStreet/DB/Result/Body.pm
+++ b/perllib/FixMyStreet/DB/Result/Body.pm
@@ -138,10 +138,17 @@ use namespace::clean;
with 'FixMyStreet::Roles::Translatable',
'FixMyStreet::Roles::Extra';
+sub _url {
+ my ( $obj, $cobrand, $args ) = @_;
+ my $uri = URI->new('/reports/' . $cobrand->short_name($obj));
+ $uri->query_form($args) if $args;
+ return $uri;
+}
+
sub url {
my ( $self, $c, $args ) = @_;
- # XXX $areas_info was used here for Norway parent - needs body parents, I guess
- return $c->uri_for( '/reports/' . $c->cobrand->short_name( $self ), $args || {} );
+ my $cobrand = $self->result_source->schema->cobrand;
+ return _url($self, $cobrand, $args);
}
__PACKAGE__->might_have(
diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index 2192158d3..a222c78cd 100644
--- a/perllib/FixMyStreet/DB/Result/Problem.pm
+++ b/perllib/FixMyStreet/DB/Result/Problem.pm
@@ -663,7 +663,7 @@ sub body {
my @body_names = sort map {
my $name = $_->name;
if ($c and FixMyStreet->config('AREA_LINKS_FROM_PROBLEMS')) {
- '<a href="' . $_->url($c) . '">' . $name . '</a>';
+ '<a href="' . $_->url . '">' . $name . '</a>';
} else {
$name;
}
diff --git a/perllib/FixMyStreet/DB/ResultSet/Body.pm b/perllib/FixMyStreet/DB/ResultSet/Body.pm
index 1855a45c1..4e9661d2e 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Body.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Body.pm
@@ -149,9 +149,17 @@ sub all_sorted {
})->all;
@bodies = sort { strcoll($a->{msgstr} || $a->{name}, $b->{msgstr} || $b->{name}) } @bodies;
+ my $cobrand = $rs->result_source->schema->cobrand;
+
foreach my $body (@bodies) {
$body->{parent} = { id => $body->{parent}, name => $body->{parent_name} } if $body->{parent};
+ # DEPRECATED: url(c, query_params) -> url
+ $body->{url} = sub {
+ my ($c, $args) = @_;
+ return FixMyStreet::DB::Result::Body::_url($body, $cobrand, $args);
+ };
+
# DEPRECATED: get_column('area_count') -> area_count
next unless defined $body->{area_count};
$body->{get_column} = sub {