aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
Diffstat (limited to 'perllib')
-rw-r--r--perllib/FixMyStreet/Cobrand/Default.pm40
-rw-r--r--perllib/FixMyStreet/Cobrand/EmptyHomes.pm10
-rw-r--r--perllib/Problems.pm62
3 files changed, 77 insertions, 35 deletions
diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm
index 9054af81c..9a2788c08 100644
--- a/perllib/FixMyStreet/Cobrand/Default.pm
+++ b/perllib/FixMyStreet/Cobrand/Default.pm
@@ -228,15 +228,47 @@ sub recent {
return Problems::recent(@_);
}
-=head2 front_stats
+=item shorten_recency_if_new_greater_than_fixed
-Given a QUERY, return a block of html for showing front stats for the site
+By default we want to shorten the recency so that the numbers are more
+attractive.
=cut
-sub front_stats {
+sub shorten_recency_if_new_greater_than_fixed {
+ return 1;
+}
+
+=head2 front_stats_data
+
+Return a data structure containing the front stats information that a template
+can then format.
+
+=cut
+
+sub front_stats_data {
my $self = shift;
- return Problems::front_stats(@_);
+
+ my $recency = '1 week';
+ my $shorter_recency = '3 days';
+
+ my $fixed = Problems::recent_fixed();
+ my $updates = Problems::number_comments();
+ my $new = Problems::recent_new($recency);
+
+ if ( $new > $fixed && $self->shorten_recency_if_new_greater_than_fixed ) {
+ $recency = $shorter_recency;
+ $new = Problems::recent_new($recency);
+ }
+
+ my $stats = {
+ fixed => $fixed,
+ updates => $updates,
+ new => $new,
+ recency => $recency,
+ };
+
+ return $stats;
}
=head2 disambiguate_location
diff --git a/perllib/FixMyStreet/Cobrand/EmptyHomes.pm b/perllib/FixMyStreet/Cobrand/EmptyHomes.pm
index 5ebee0d2b..c0de92c5e 100644
--- a/perllib/FixMyStreet/Cobrand/EmptyHomes.pm
+++ b/perllib/FixMyStreet/Cobrand/EmptyHomes.pm
@@ -68,5 +68,15 @@ sub feed_xsl {
return '/xsl.eha.xsl';
}
+=item shorten_recency_if_new_greater_than_fixed
+
+For empty homes we don't want to shorten the recency
+
+=cut
+
+sub shorten_recency_if_new_greater_than_fixed {
+ return 0;
+}
+
1;
diff --git a/perllib/Problems.pm b/perllib/Problems.pm
index 860ae04a0..76ccdc677 100644
--- a/perllib/Problems.pm
+++ b/perllib/Problems.pm
@@ -149,37 +149,37 @@ sub recent {
return $result;
}
-sub front_stats {
- my ($q) = @_;
- my $fixed = Problems::recent_fixed();
- my $updates = Problems::number_comments();
- my $new = Problems::recent_new('1 week');
- (my $new_pretty = $new) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
- my $new_text = sprintf(mySociety::Locale::nget('<big>%s</big> report in past week',
- '<big>%s</big> reports in past week', $new), $new_pretty);
- if ($q->{site} ne 'emptyhomes' && $new > $fixed) {
- $new = Problems::recent_new('3 days');
- ($new_pretty = $new) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
- $new_text = sprintf(mySociety::Locale::nget('<big>%s</big> report recently', '<big>%s</big> reports recently', $new), $new_pretty);
- }
- (my $fixed_pretty = $fixed) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
- (my $updates_pretty = $updates) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
-
- my $out = '';
- $out .= $q->h2(_('FixMyStreet updates'));
- my $lastmo = '';
- if ($q->{site} ne 'emptyhomes'){
- $lastmo = $q->div(sprintf(mySociety::Locale::nget("<big>%s</big> fixed in past month", "<big>%s</big> fixed in past month", $fixed), $fixed), $fixed_pretty);
- }
- $out .= $q->div({-id => 'front_stats'},
- $q->div($new_text),
- ($q->{site} ne 'emptyhomes' ? $q->div(sprintf(mySociety::Locale::nget("<big>%s</big> fixed in past month", "<big>%s</big> fixed in past month", $fixed), $fixed_pretty)) : ''),
- $q->div(sprintf(mySociety::Locale::nget("<big>%s</big> update on reports",
- "<big>%s</big> updates on reports", $updates), $updates_pretty))
- );
- return $out;
-
-}
+# sub front_stats {
+# my ($q) = @_;
+# my $fixed = Problems::recent_fixed();
+# my $updates = Problems::number_comments();
+# my $new = Problems::recent_new('1 week');
+# (my $new_pretty = $new) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
+# my $new_text = sprintf(mySociety::Locale::nget('<big>%s</big> report in past week',
+# '<big>%s</big> reports in past week', $new), $new_pretty);
+# if ($q->{site} ne 'emptyhomes' && $new > $fixed) {
+# $new = Problems::recent_new('3 days');
+# ($new_pretty = $new) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
+# $new_text = sprintf(mySociety::Locale::nget('<big>%s</big> report recently', '<big>%s</big> reports recently', $new), $new_pretty);
+# }
+# (my $fixed_pretty = $fixed) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
+# (my $updates_pretty = $updates) =~ s/(?<=\d)(?=(?:\d\d\d)+$)/,/g;
+#
+# my $out = '';
+# $out .= $q->h2(_('FixMyStreet updates'));
+# my $lastmo = '';
+# if ($q->{site} ne 'emptyhomes'){
+# $lastmo = $q->div(sprintf(mySociety::Locale::nget("<big>%s</big> fixed in past month", "<big>%s</big> fixed in past month", $fixed), $fixed), $fixed_pretty);
+# }
+# $out .= $q->div({-id => 'front_stats'},
+# $q->div($new_text),
+# ($q->{site} ne 'emptyhomes' ? $q->div(sprintf(mySociety::Locale::nget("<big>%s</big> fixed in past month", "<big>%s</big> fixed in past month", $fixed), $fixed_pretty)) : ''),
+# $q->div(sprintf(mySociety::Locale::nget("<big>%s</big> update on reports",
+# "<big>%s</big> updates on reports", $updates), $updates_pretty))
+# );
+# return $out;
+#
+# }
# Problems around a location