aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/DB/ResultSet/Problem.pm
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2020-06-16 20:36:52 +0100
committerMatthew Somerville <matthew@mysociety.org>2020-06-18 11:45:15 +0100
commit04d217ae31c156c17d95e757842693caa31c06ed (patch)
treeb04490721764ff4da978f9b3d1bd16500256a353 /perllib/FixMyStreet/DB/ResultSet/Problem.pm
parent32ad0501c46816b3e6b28b53c0df5bccc5fa057a (diff)
[Hounslow] Closed as well as fixed on front page.
Diffstat (limited to 'perllib/FixMyStreet/DB/ResultSet/Problem.pm')
-rw-r--r--perllib/FixMyStreet/DB/ResultSet/Problem.pm17
1 files changed, 15 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
index 2ce4c04be..9f7c035ed 100644
--- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm
+++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm
@@ -72,13 +72,26 @@ sub _cache_timeout {
FixMyStreet->config('CACHE_TIMEOUT') // 3600;
}
+sub recent_completed {
+ my $rs = shift;
+ $rs->_recent_in_states('completed', [
+ FixMyStreet::DB::Result::Problem->fixed_states(),
+ FixMyStreet::DB::Result::Problem->closed_states()
+ ]);
+}
+
sub recent_fixed {
my $rs = shift;
- my $key = "recent_fixed:$site_key";
+ $rs->_recent_in_states('fixed', [ FixMyStreet::DB::Result::Problem->fixed_states() ]);
+}
+
+sub _recent_in_states {
+ my ($rs, $state_key, $states) = @_;
+ my $key = "recent_$state_key:$site_key";
my $result = Memcached::get($key);
unless ($result) {
$result = $rs->search( {
- state => [ FixMyStreet::DB::Result::Problem->fixed_states() ],
+ state => $states,
lastupdate => { '>', \"current_timestamp-'1 month'::interval" },
} )->count;
Memcached::set($key, $result, _cache_timeout());