add journey: make realtime data optional (default to schedule data)

Closes #25
This commit is contained in:
Daniel Friesel 2019-11-18 21:00:24 +01:00
parent ff2a3afe34
commit 13e59b3aa1
3 changed files with 37 additions and 4 deletions

View file

@ -800,6 +800,9 @@ sub add_journey_form {
} }
} }
$opt{rt_departure} //= $opt{sched_departure};
$opt{rt_arrival} //= $opt{sched_arrival};
for my $key (qw(dep_station arr_station cancelled comment)) { for my $key (qw(dep_station arr_station cancelled comment)) {
$opt{$key} = $self->param($key); $opt{$key} = $self->param($key);
} }

View file

@ -267,5 +267,35 @@ $t->get_ok('/history/2018')->status_is(200)->content_like(qr{124 km})
->content_like(qr{Bei Abfahrt: 00:09 Stunden}) ->content_like(qr{Bei Abfahrt: 00:09 Stunden})
->content_like(qr{Bei Ankunft: 00:26 Stunden}); ->content_like(qr{Bei Ankunft: 00:26 Stunden});
$csrf_token
= $t->ua->get('/journey/add')->res->dom->at('input[name=csrf_token]')
->attr('value');
$t->post_ok(
'/journey/add' => form => {
csrf_token => $csrf_token,
action => 'save',
train => 'ICE 1',
dep_station => 'EE',
sched_departure => '17.11.2018 15:42',
rt_departure => '',
arr_station => 'BL',
sched_arrival => '17.11.2018 19:42',
rt_arrival => '',
}
);
$t->status_is(302)->header_is( location => '/journey/3' );
$t->get_ok('/history/2018/11')->status_is(200)->content_like(qr{513 km})
->content_like(qr{05:15 Stunden})->content_like(qr{nach Fahrplan: 04:58})
->content_like(qr{00:00 Stunden})
->content_like(qr{Bei Abfahrt: 00:09 Stunden})
->content_like(qr{Bei Ankunft: 00:26 Stunden});
$t->get_ok('/history/2018')->status_is(200)->content_like(qr{576 km})
->content_like(qr{06:13 Stunden})->content_like(qr{nach Fahrplan: 05:56})
->content_like(qr{00:00 Stunden})
->content_like(qr{Bei Abfahrt: 00:09 Stunden})
->content_like(qr{Bei Ankunft: 00:26 Stunden});
$t->app->pg->db->query('drop schema travelynx_test_02 cascade'); $t->app->pg->db->query('drop schema travelynx_test_02 cascade');
done_testing(); done_testing();

View file

@ -58,8 +58,8 @@
<label for="sched_departure">Geplante Abfahrt</label> <label for="sched_departure">Geplante Abfahrt</label>
</div> </div>
<div class="input-field col s12"> <div class="input-field col s12">
%= text_field 'rt_departure', id => 'rt_departure', class => 'validate', required => undef, pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]' %= text_field 'rt_departure', id => 'rt_departure', class => 'validate', pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
<label for="rt_departure">Tatsächliche Abfahrt</label> <label for="rt_departure">Tatsächliche Abfahrt (wenn leer: pünktlich)</label>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -72,8 +72,8 @@
<label for="sched_arrival">Geplante Ankunft</label> <label for="sched_arrival">Geplante Ankunft</label>
</div> </div>
<div class="input-field col s12"> <div class="input-field col s12">
%= text_field 'rt_arrival', id => 'rt_arrival', class => 'validate', required => undef, pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]' %= text_field 'rt_arrival', id => 'rt_arrival', class => 'validate', pattern => '[0-9][0-9]?[.][0-9][0-9]?[.][0-9][0-9][0-9][0-9] +[0-9][0-9]:[0-9][0-9]'
<label for="rt_arrival">Tatsächliche Ankunft</label> <label for="rt_arrival">Tatsächliche Ankunft (wenn leer: pünktlich)</label>
</div> </div>
</div> </div>
<div class="row"> <div class="row">