summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2020-04-19 17:03:02 +0200
committerDaniel Friesel <derf@finalrewind.org>2020-04-19 17:03:02 +0200
commit94ea5a089f91fb51b60d9cf1f2f8d822c4f2b54b (patch)
treeb93fc73bdf635beb0839735e7c0f2093ff96ada4
parent0a87135e35132fc6442add641b7862fbae294862 (diff)
Commute stats: count days, not journeys
-rwxr-xr-xlib/Travelynx/Controller/Traveling.pm47
-rw-r--r--templates/commute.html.ep2
2 files changed, 26 insertions, 23 deletions
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index bcc0090..db70368 100755
--- a/lib/Travelynx/Controller/Traveling.pm
+++ b/lib/Travelynx/Controller/Traveling.pm
@@ -534,36 +534,38 @@ sub commute {
);
my %journeys_by_month;
+ my %count_by_month;
my $total = 0;
+ my $prev_doy = 0;
for my $journey ( reverse @journeys ) {
my $month = $journey->{rt_departure}->month;
if (
- $filter_type eq 'exact'
- and ( $journey->{to_name} eq $station
- or $journey->{from_name} eq $station )
- )
- {
- push( @{ $journeys_by_month{$month} }, $journey );
- $total++;
- }
- elsif (
- $filter_type eq 'substring'
- and ( $journey->{to_name} =~ m{\Q$station\E}
- or $journey->{from_name} =~ m{\Q$station\E} )
- )
- {
- push( @{ $journeys_by_month{$month} }, $journey );
- $total++;
- }
- elsif (
- $filter_type eq 'regex'
- and ( $journey->{to_name} =~ m{$station}
- or $journey->{from_name} =~ m{$station} )
+ (
+ $filter_type eq 'exact' and ( $journey->{to_name} eq $station
+ or $journey->{from_name} eq $station )
+ )
+ or (
+ $filter_type eq 'substring'
+ and ( $journey->{to_name} =~ m{\Q$station\E}
+ or $journey->{from_name} =~ m{\Q$station\E} )
+ )
+ or (
+ $filter_type eq 'regex'
+ and ( $journey->{to_name} =~ m{$station}
+ or $journey->{from_name} =~ m{$station} )
+ )
)
{
push( @{ $journeys_by_month{$month} }, $journey );
- $total++;
+
+ my $doy = $journey->{rt_departure}->day_of_year;
+ if ( $doy != $prev_doy ) {
+ $count_by_month{$month}++;
+ $total++;
+ }
+
+ $prev_doy = $doy;
}
}
@@ -575,6 +577,7 @@ sub commute {
template => 'commute',
with_autocomplete => 1,
journeys_by_month => \%journeys_by_month,
+ count_by_month => \%count_by_month,
total_journeys => $total,
months => [
qw(Januar Februar März April Mai Juni Juli August September Oktober November Dezember)
diff --git a/templates/commute.html.ep b/templates/commute.html.ep
index ef1c7ab..476f6e7 100644
--- a/templates/commute.html.ep
+++ b/templates/commute.html.ep
@@ -75,7 +75,7 @@
% for my $i (0 .. $#{$months}) {
<tr>
<td><%= $months->[$i] %></td>
- <td><%= scalar @{$journeys_by_month->{$i+1} // []} %></td>
+ <td><%= $count_by_month->{$i+1} // 0 %></td>
</tr>
% }
</tbody>