aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Rss.pm
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2011-08-17 22:56:37 +0100
committerStruan Donald <struan@exo.org.uk>2011-08-17 22:56:37 +0100
commit3b5d561700b184c20e63111d4cbc1daab78e16c6 (patch)
treef0c53c6bf8d4ebf12e5388053ad856fb0d0e7b86 /perllib/FixMyStreet/App/Controller/Rss.pm
parent390f8e8ad1e10f832c4323c39bed2c883744a03f (diff)
parentf38b8e985697c35a62374a2f02dce2d681ef58cd (diff)
Merge branch 'master' of ssh://git.mysociety.org/data/git/public/fixmystreet into new_statuses
Conflicts: db/schema.sql perllib/FixMyStreet/App/Controller/Admin.pm perllib/FixMyStreet/DB/Result/User.pm t/app/controller/admin.t templates/web/default/admin/update_edit.html web/css/core.css
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Rss.pm')
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Rss.pm24
1 files changed, 20 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Rss.pm b/perllib/FixMyStreet/App/Controller/Rss.pm
index 78793d9c1..45a16a9dd 100755
--- a/perllib/FixMyStreet/App/Controller/Rss.pm
+++ b/perllib/FixMyStreet/App/Controller/Rss.pm
@@ -151,12 +151,21 @@ sub local_problems_ll : Private {
sub output : Private {
my ( $self, $c ) = @_;
+ $c->forward( 'lookup_type' );
+ $c->forward( 'query_main' );
+ $c->forward( 'generate' );
+}
+
+sub lookup_type : Private {
+ my ( $self, $c ) = @_;
$c->stash->{alert_type} = $c->model('DB::AlertType')->find( { ref => $c->stash->{type} } );
$c->detach( '/page_error_404_not_found', [ _('Unknown alert type') ] )
unless $c->stash->{alert_type};
+}
- $c->forward( 'query_main' );
+sub generate : Private {
+ my ( $self, $c ) = @_;
# Do our own encoding
$c->stash->{rss} = new XML::RSS(
@@ -170,8 +179,15 @@ sub output : Private {
uri => 'http://www.georss.org/georss'
);
- while (my $row = $c->stash->{query_main}->fetchrow_hashref) {
- $c->forward( 'add_row', [ $row ] );
+ my $problems = $c->stash->{problems};
+ if ( $problems->can('fetchrow_hashref') ) {
+ while ( my $row = $problems->fetchrow_hashref ) {
+ $c->forward( 'add_row', [ $row ] );
+ }
+ } else {
+ while ( my $row = $problems->next ) {
+ $c->forward( 'add_row', [ $row ] );
+ }
}
$c->forward( 'add_parameters' );
@@ -210,7 +226,7 @@ sub query_main : Private {
} else {
$q->execute();
}
- $c->stash->{query_main} = $q;
+ $c->stash->{problems} = $q;
}
sub add_row : Private {