diff options
author | Matthew Somerville <matthew@mysociety.org> | 2011-06-09 11:31:17 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2011-06-09 11:31:17 +0100 |
commit | 3307a7e64f7d105562a3f61af5ab935589824b9f (patch) | |
tree | 7435a4c0331dd2c24c2547a64faaabad7e7a0982 | |
parent | 5d60e828ccd46a805e9463d14f388188efef9f4e (diff) |
Transfer comment count function.
-rw-r--r-- | perllib/FixMyStreet/Cobrand/Default.pm | 2 | ||||
-rw-r--r-- | perllib/FixMyStreet/DB/ResultSet/Problem.pm | 14 | ||||
-rw-r--r-- | perllib/Problems.pm | 17 |
3 files changed, 15 insertions, 18 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm index 72c279076..fd03f235f 100644 --- a/perllib/FixMyStreet/Cobrand/Default.pm +++ b/perllib/FixMyStreet/Cobrand/Default.pm @@ -258,7 +258,7 @@ sub front_stats_data { my $shorter_recency = '3 days'; my $fixed = $self->problems->recent_fixed(); - my $updates = Problems::number_comments(); + my $updates = $self->problems->number_comments(); my $new = $self->problems->recent_new( $recency ); if ( $new > $fixed && $self->shorten_recency_if_new_greater_than_fixed ) { diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm index 0ca8d1127..1f06acf5a 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm @@ -29,6 +29,20 @@ sub recent_fixed { return $result; } +sub number_comments { + my $rs = shift; + my $key = "number_comments:$site_key"; + my $result = Memcached::get($key); + unless ($result) { + $result = $rs->search( + { 'comments.state' => 'confirmed' }, + { join => 'comments' } + )->count; + Memcached::set($key, $result, 3600); + } + return $result; +} + sub recent_new { my ( $rs, $interval ) = @_; (my $key = $interval) =~ s/\s+//g; diff --git a/perllib/Problems.pm b/perllib/Problems.pm index 1f3eaf7b9..987820d0c 100644 --- a/perllib/Problems.pm +++ b/perllib/Problems.pm @@ -22,23 +22,6 @@ use mySociety::MaPit; my $site_restriction = ''; my $site_key = 0; -sub number_comments { - my $key = "number_comments:$site_key"; - my $result = Memcached::get($key); - unless ($result) { - if ($site_restriction) { - $result = dbh()->selectrow_array("select count(*) from comment, problem - where comment.problem_id=problem.id and comment.state='confirmed' - $site_restriction"); - } else { - $result = dbh()->selectrow_array("select count(*) from comment - where state='confirmed'"); - } - Memcached::set($key, $result, 3600); - } - return $result; -} - # Admin view functions =item problem_search SEARCH |