improve inconsistency list

This commit is contained in:
Daniel Friesel 2023-02-04 22:17:57 +01:00
parent 16cdc3d10a
commit 3da22fc8f9
No known key found for this signature in database
GPG key ID: 100D5BFB5166E005
3 changed files with 39 additions and 9 deletions

View file

@ -1300,6 +1300,18 @@ my @migrations = (
}
);
},
# v31 -> v32
# travelynx v1.29.18 improves above-mentioned conflict links.
sub {
my ($db) = @_;
$db->query(
qq{
truncate journey_stats;
update schema_version set version = 32;
}
);
},
);
sub sync_stations {

View file

@ -1458,6 +1458,8 @@ sub compute_stats {
my @inconsistencies;
my $next_departure = 0;
my $next_id;
my $next_train;
for my $journey (@journeys) {
$num_trains++;
@ -1488,11 +1490,21 @@ sub compute_stats {
if ( $next_departure - $journey->{rt_arr_ts} < 0 ) {
push(
@inconsistencies,
[
epoch_to_dt($next_departure)
{
conflict => {
train => $journey->{type} . ' '
. ( $journey->{line} // $journey->{no} ),
arr => epoch_to_dt( $journey->{rt_arr_ts} )
->strftime('%d.%m.%Y %H:%M'),
$journey->{id}
]
id => $journey->{id},
},
ignored => {
train => $next_train,
dep => epoch_to_dt($next_departure)
->strftime('%d.%m.%Y %H:%M'),
id => $next_id,
},
}
);
}
else {
@ -1504,6 +1516,9 @@ sub compute_stats {
$num_journeys++;
}
$next_departure = $journey->{rt_dep_ts};
$next_id = $journey->{id};
$next_train
= $journey->{type} . ' ' . ( $journey->{line} // $journey->{no} ),;
}
my $ret = {
km_route => $km_route,

View file

@ -6,12 +6,15 @@
<i class="material-icons small right">warning</i>
<span class="card-title">Inkonsistente Reisedaten</span>
<p>
Die folgenden Abfahrtszeiten liegen vor der Ankunftszeit der
vorherigen Zugfahrt und wurden bei der Wartezeitberechnung
ignoriert.
Die folgenden Zugfahrten wurden bei der Wartezeitberechnung
ignoriert, da ihre Abfahrtszeit vor der Ankunftszeit der
vorherigen Zugfahrt liegt. Bei den restlichen Statistken
wurden sie mitberücksichtigt.
<ul>
% for my $field (@{$stats->{inconsistencies}}) {
<li><a href="/journey/<%= $field->[1] %>"><%= $field->[0] %></a></li>
<li><a href="/journey/<%= $field->{ignored}{id} %>"><%= $field->{ignored}{train} %> ab <%= $field->{ignored}{dep} %></a>
(Konflikt: <a href="/journey/<%= $field->{conflict}{id} %>"><%= $field->{conflict}{train} %> an <%= $field->{conflict}{arr} %>)</a>
</li>
% }
</ul>
</p>