aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/App/Controller')
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm65
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Rss.pm6
2 files changed, 57 insertions, 14 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index f7942c45a..e5e15092f 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -810,14 +810,7 @@ sub user_edit : Path('user_edit') : Args(1) {
my $user = $c->model('DB::User')->find( { id => $id } );
$c->stash->{user} = $user;
- my @area_types = $c->cobrand->area_types;
- my $areas = mySociety::MaPit::call('areas', \@area_types);
-
- my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas;
- @councils_ids = $c->cobrand->filter_all_council_ids_list( @councils_ids );
-
- $c->stash->{council_ids} = \@councils_ids;
- $c->stash->{council_details} = $areas;
+ $c->forward('set_up_council_details');
if ( $c->req->param('submit') ) {
$c->forward('check_token');
@@ -833,6 +826,7 @@ sub user_edit : Path('user_edit') : Args(1) {
$user->name( $c->req->param('name') );
$user->email( $c->req->param('email') );
$user->from_council( $c->req->param('council') || undef );
+ $user->flagged( $c->req->param('flagged') || 0 );
$user->update;
if ($edited) {
@@ -869,6 +863,8 @@ sub stats : Path('stats') : Args(0) {
$c->forward('check_page_allowed');
+ $c->forward('set_up_council_details');
+
if ( $c->req->param('getcounts') ) {
my ( $start_date, $end_date, @errors );
@@ -901,25 +897,51 @@ sub stats : Path('stats') : Args(0) {
return 1 if @errors;
+ my $bymonth = $c->req->param('bymonth');
+ $c->stash->{bymonth} = $bymonth;
+ my ( %council, %dates );
+ $council{council} = { like => $c->req->param('council') }
+ if $c->req->param('council');
+
+ $c->stash->{selected_council} = $c->req->param('council');
+
my $field = 'confirmed';
$field = 'created' if $c->req->param('unconfirmed');
my $one_day = DateTime::Duration->new( days => 1 );
+
+ my %select = (
+ select => [ 'state', { 'count' => 'me.id' } ],
+ as => [qw/state count/],
+ group_by => [ 'state' ],
+ order_by => [ 'state' ],
+ );
+
+ if ( $c->req->param('bymonth') ) {
+ %select = (
+ select => [
+ { extract => \"year from $field", -as => 'c_year' },
+ { extract => \"month from $field", -as => 'c_month' },
+ { 'count' => 'me.id' }
+ ],
+ as => [qw/c_year c_month count/],
+ group_by => [qw/c_year c_month/],
+ order_by => [qw/c_year c_month/],
+ );
+ }
+
my $p = $c->model('DB::Problem')->search(
{
-AND => [
$field => { '>=', $start_date},
$field => { '<=', $end_date + $one_day },
],
+ %council,
+ %dates,
},
- {
- select => [ 'state', { 'count' => 'me.id' } ],
- as => [qw/state count/],
- group_by => [ 'state' ],
- order_by => [ 'state' ],
- }
+ \%select,
);
# in case the total_report count is 0
@@ -1153,6 +1175,21 @@ sub check_page_allowed : Private {
return 1;
}
+sub set_up_council_details : Private {
+ my ($self, $c ) = @_;
+
+ my @area_types = $c->cobrand->area_types;
+ my $areas = mySociety::MaPit::call('areas', \@area_types);
+
+ my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas;
+ @councils_ids = $c->cobrand->filter_all_council_ids_list( @councils_ids );
+
+ $c->stash->{council_ids} = \@councils_ids;
+ $c->stash->{council_details} = $areas;
+
+ return 1;
+}
+
sub trim {
my $self = shift;
my $e = shift;
diff --git a/perllib/FixMyStreet/App/Controller/Rss.pm b/perllib/FixMyStreet/App/Controller/Rss.pm
index 45a16a9dd..767d38c21 100755
--- a/perllib/FixMyStreet/App/Controller/Rss.pm
+++ b/perllib/FixMyStreet/App/Controller/Rss.pm
@@ -263,6 +263,12 @@ sub add_row : Private {
my $key = $alert_type->item_table eq 'comment' ? 'c' : 'id';
$item{description} .= ent("\n<br><img src=\"". $c->cobrand->base_url . "/photo?$key=$row->{id}\">");
}
+
+ if ( $row->{used_map} ) {
+ #my $address = $c->cobrand->find_closest_address_for_rss( $row->{latitude}, $row->{longitude} );
+ #$item{description} .= ent("\n<br>$address");
+ }
+
my $recipient_name = $c->cobrand->contact_name;
$item{description} .= ent("\n<br><a href='$url'>" .
sprintf(_("Report on %s"), $recipient_name) . "</a>");