aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2013-02-08 16:35:41 +0000
committerMatthew Somerville <matthew@mysociety.org>2013-02-08 16:35:41 +0000
commitc3e5268e9769c2399da2a68260233345dd6d266b (patch)
tree7a074b513ea1d6480e57650512d0dd4cc6345681 /perllib
parent6fc5665f17fcfe9e6266ad67108616930fe46717 (diff)
Allow sorting of more Zurich admin tables.
Diffstat (limited to 'perllib')
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm12
-rw-r--r--perllib/FixMyStreet/Cobrand/Zurich.pm12
2 files changed, 18 insertions, 6 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index 0f072b9a2..d25a23816 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -498,6 +498,12 @@ sub reports : Path('reports') {
}
}
+ my $order = $c->req->params->{o} || 'created';
+ my $dir = defined $c->req->params->{d} ? $c->req->params->{d} : 1;
+ $c->stash->{order} = $order;
+ $c->stash->{dir} = $dir;
+ $order .= ' desc' if $dir;
+
if (my $search = $c->req->param('search')) {
$c->stash->{searched} = $search;
@@ -544,7 +550,7 @@ sub reports : Path('reports') {
$query,
{
prefetch => 'user',
- order_by => [\"(state='hidden')",'created']
+ order_by => [ \"(state='hidden')", $order ]
}
);
@@ -587,7 +593,7 @@ sub reports : Path('reports') {
{
-select => [ 'me.*', qw/problem.bodies_str problem.state/ ],
prefetch => [qw/user problem/],
- order_by => [\"(me.state='hidden')",\"(problem.state='hidden')",'me.created']
+ order_by => [ \"(me.state='hidden')", \"(problem.state='hidden')", "me.$order" ]
}
);
$c->stash->{updates} = [ $updates->all ];
@@ -600,7 +606,7 @@ sub reports : Path('reports') {
my $page = $c->req->params->{p} || 1;
my $problems = $c->cobrand->problems->search(
$query,
- { order_by => 'created desc' }
+ { order_by => $order }
)->page( $page );
$c->stash->{problems} = [ $problems->all ];
$c->stash->{pager} = $problems->pager;
diff --git a/perllib/FixMyStreet/Cobrand/Zurich.pm b/perllib/FixMyStreet/Cobrand/Zurich.pm
index 8375e1809..104ba6bf5 100644
--- a/perllib/FixMyStreet/Cobrand/Zurich.pm
+++ b/perllib/FixMyStreet/Cobrand/Zurich.pm
@@ -229,18 +229,24 @@ sub admin {
my $body = $c->stash->{body};
+ my $order = $c->req->params->{o} || 'created';
+ my $dir = defined $c->req->params->{d} ? $c->req->params->{d} : 1;
+ $c->stash->{order} = $order;
+ $c->stash->{dir} = $dir;
+ $order .= ' desc' if $dir;
+
# XXX No multiples or missing bodies
$c->stash->{reports_new} = $c->cobrand->problems->search( {
state => 'in progress',
bodies_str => $body->id,
}, {
- order_by => 'created'
+ order_by => $order
} );
$c->stash->{reports_unpublished} = $c->cobrand->problems->search( {
state => 'planned',
bodies_str => $body->parent->id,
}, {
- order_by => 'created desc'
+ order_by => $order
} );
my $page = $c->req->params->{p} || 1;
@@ -248,7 +254,7 @@ sub admin {
state => 'fixed - council',
bodies_str => $body->parent->id,
}, {
- order_by => 'created desc'
+ order_by => $order
} )->page( $page );
$c->stash->{pager} = $c->stash->{reports_published}->pager;
}