Commit graph

298 commits

Author SHA1 Message Date
Daniel Friesel
3abe6aed5c
it's a secret to everybody. 2022-12-27 11:07:16 +01:00
Daniel Friesel
68bc276bff
connecting trains: fix warning when encountering unknown platforms 2022-12-26 20:47:43 +01:00
Daniel Friesel
d256a1956a
history: return 404 if no journeys have been logged for requested period 2022-12-26 16:50:39 +01:00
Daniel Friesel
f12bec530a
yearly/monthly history: return 404 for invalid dates 2022-12-26 15:35:33 +01:00
Daniel Friesel
2f9ba6e017
switch to internal station database; add out-of-service stations for old journeys 2022-12-07 19:42:48 +01:00
Daniel Friesel
90d2e0357c
show expected load of suggested connections, if available 2022-11-12 18:37:00 +01:00
Daniel Friesel
c26c8820f2
Switch to internal HAFAS client for connection details 2022-11-09 18:14:07 +01:00
Daniel Friesel
6f107754fb
get_connecting_trains: departure delay is relevant for connecting trains 2022-09-28 19:40:31 +02:00
Daniel Friesel
9f06b52a00
get_connecting_trains_p: leave loops when done 2022-09-28 19:37:20 +02:00
Daniel Friesel
f3ad5a5ef3
connecting trains: HAFAS: Handle delay and pass it to frontend 2022-09-25 16:54:06 +02:00
Daniel Friesel
e54130ad6e
optionally show local transit connections as well 2022-09-24 18:53:04 +02:00
Daniel Friesel
e83cfc5303
connections: show expected arrival at destination 2022-09-24 16:11:51 +02:00
Daniel Friesel
906a8a4f55
departure board: add footer 2022-09-23 19:25:17 +02:00
Daniel Friesel
8198c9fe23
Static: remove unused $travelynx_version 2022-09-23 19:22:22 +02:00
Daniel Friesel
4367085887
add legend (not referenced yet) 2022-09-23 17:35:02 +02:00
Daniel Friesel
6bae226d5c
always show 'run' icon when an interchange is short 2022-09-23 17:32:27 +02:00
Daniel Friesel
8c511f955c
Controller/Traveling: perltidy 2022-09-07 18:08:27 +02:00
Daniel Friesel
ffeeb11e5a
get_connecting_trains_p: remove trains with identical routes to current one 2022-09-05 21:06:05 +02:00
Daniel Friesel
0a7188d2e2
get_connecting_trains_p: use has_str_in_list helper more often 2022-09-05 21:00:20 +02:00
Daniel Friesel
3b9db4bfd4
get_connecting_trains_p: handle uninitialized arr_countdown 2022-09-03 17:58:12 +02:00
Daniel Friesel
dd151dc686
get_connecting_trains_p: we're doing boolean arithmetic here
(fixes 'useless use of numeric lt in void context' warning)
2022-09-03 16:58:54 +02:00
Daniel Friesel
2f2624a80a
get_connecting_trains: set lookahead to (expected arrival // now) + 40 minutes 2022-09-03 16:46:48 +02:00
Daniel Friesel
6aca1692e4 get_connecting_trains_p: increase lookahead to 60 2022-08-26 18:56:50 +02:00
Daniel Friesel
ff317c5c2a show connections up to 40 minutes before arrival (rather than just 20) 2022-08-26 18:38:54 +02:00
Daniel Friesel
1a2ff8262d
... 'status' is a reserved renderer key. oops. 2022-08-04 14:07:25 +02:00
Daniel Friesel
d0c061569d
Traveling: Rename log_action to travel_action 2022-08-02 22:22:10 +02:00
Daniel Friesel
d3c8daf84c
fetch connecting trains asynchronously 2022-08-01 10:07:24 +02:00
Daniel Friesel
c06d653195
Traveling: sort helpers <-> controllers 2022-07-30 10:47:18 +02:00
Daniel Friesel
de73024f1b
Passengerrights: section headers; perltidy 2022-07-30 10:45:18 +02:00
Daniel Friesel
aa19f4b00c
Api: section headers for helpers / controllers; perltidy 2022-07-30 10:42:21 +02:00
Daniel Friesel
0e01485952
Account: Move helpers to a separate section 2022-07-30 10:41:31 +02:00
Daniel Friesel
83954508f0
move get_connecting_trains helper to Traveling controller 2022-07-30 10:27:57 +02:00
Daniel Friesel
2da48e05be
move get_connecting_trains call from _checkeed_in to controller 2022-07-27 13:54:20 +02:00
Daniel Friesel
52ff756577
only show cancellation alternatives at original station 2022-07-26 15:36:45 +02:00
Daniel Friesel
1594ba9327
_checked_out: move get_connecting_trains call to controller 2022-07-26 15:36:22 +02:00
Daniel Friesel
960de27f0e
move get_connecting_trains out of _cancelled_departure template 2022-07-26 14:51:57 +02:00
Daniel Friesel
35338125bc
departure board: move get_connecting_trains call to controller
this is in preparation for turning it into a promise
2022-07-26 13:19:29 +02:00
Daniel Friesel
bb6acc0c6b
Use async IRIS API for /s/ 2022-07-26 10:41:44 +02:00
Daniel Friesel
ff290c78e0
services: add marudor.de/regional 2022-07-16 13:55:36 +02:00
Daniel Friesel
5eab0c14f4
optionally link to external departure boards where sensible (WiP) 2022-07-11 22:09:26 +02:00
Daniel Friesel
5ff9e5c7a1
history map: allow filtering by train type 2022-04-02 18:14:21 +02:00
Daniel Friesel
5dfbdd8644
history map: add filter by date 2022-04-02 15:24:39 +02:00
Daniel Friesel
13b4572a2f
limit password length to 10000 characters
that should be sufficient…
2022-03-07 18:12:43 +01:00
Daniel Friesel
01aec7e977
fix ajax refresh of public status card (trim .html suffix) 2022-02-20 21:45:51 +01:00
Daniel Friesel
209e291821
Move webhook database queries to Users model 2022-02-20 17:35:30 +01:00
Daniel Friesel
167b01fa42
link traewelling profile from travelynx profile; show traewelling status 2022-02-16 20:56:28 +01:00
Daniel Friesel
ef3252863e
Traewelling::get: Use named args 2022-02-16 20:39:49 +01:00
Daniel Friesel
170c7e420e Controller/Account: refactor mail notifications into separate functions 2022-01-19 19:25:03 +01:00
Daniel Friesel
ac3c70597d
Account: do not disclose denylist filename on open error 2021-10-30 10:03:40 +02:00
Daniel Friesel
39ab6e57d3 allow registration to be denied for certain IPs, e.g. known spammers
(yes, there are actually spambots flooding people with unsolicited
registration e-mails)
2021-08-20 22:52:02 +02:00
Daniel Friesel
95674ee2ea Add explanation to name change page 2021-06-14 19:30:58 +02:00
Daniel Friesel
1803a1723c move user name validation to Users model 2021-06-13 08:48:08 +02:00
Daniel Friesel
581aae081d Model/Users: Remove superfluous "check_if_" prefix from check functions 2021-06-13 06:20:21 +02:00
Daniel Friesel
6cee1e20ef allow users to change their name 2021-06-12 19:00:42 +02:00
Daniel Friesel
aad2a53459 attempt to prevent registration spam 2021-04-20 21:59:17 +02:00
Daniel Friesel
a4ff5e8ad8 Switch to AGPL3+ 2021-01-29 18:32:13 +01:00
Daniel Friesel
77ecd6d034 move statistics cache to a separate model class 2020-11-28 21:03:51 +01:00
Daniel Friesel
b70ecc7c7c Add a bunch of licensing data 2020-11-27 22:12:56 +01:00
Daniel Friesel
b1348c7d4a move in_transit queries to an InTransit model class 2020-10-11 19:38:01 +02:00
Daniel Friesel
562dd7ccae add toot and tweet settings to traewelling checkin 2020-10-04 12:27:20 +02:00
Daniel Friesel
89e709d8d5 Allow linking a Träwelling account, auto-sync Träwelling→travelynx
travelynx→Träwelling is still work-in-progress

Squashed commit of the following:

commit 97faa6e2e6c8d20fba30f2d0f6e78187ceeb72e6
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Wed Sep 30 18:50:05 2020 +0200

    improve traewelling log and tx handling

commit 487d7dd728b9d45b731bdc7098cf3358ea2e206e
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Wed Sep 30 18:02:41 2020 +0200

    add missing traewelling template

commit 0148da2f48d9a52dcddc0ab81f83d8f8ac3062ab
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Wed Sep 30 18:02:35 2020 +0200

    improve traewelling pull sync

commit 4861a9750f9f2d7621043361d0af6b0a8869a0df
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Tue Sep 29 22:14:24 2020 +0200

    wip checkin from traewelling

commit f6aeb6f06998a2a7a80f63a7b1b688b1a26b66bd
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Tue Sep 29 18:37:53 2020 +0200

    refactor traewelling integration. login and logout are less of a hack now.

    checkin and checkout are not supported at the moment.
2020-09-30 19:12:29 +02:00
Daniel Friesel
952740969c add opengraph metadata output 2020-09-21 20:31:08 +02:00
Daniel Friesel
362db912fa add twitter card to public journey view 2020-09-21 20:15:01 +02:00
Daniel Friesel
eb93ee40c9 passengerrights: fix a typo 2020-09-08 21:15:46 +02:00
Daniel Friesel
a3149adddd Fix checkin via API. Broken by 717cc18a40
Closes #44
2020-09-05 21:51:52 +02:00
Daniel Friesel
7eb5f967f2 profile: limit history to four weeks by default 2020-09-04 18:38:35 +02:00
Daniel Friesel
482fa975b5 add public profile page and public journey details 2020-09-03 22:27:50 +02:00
Daniel Friesel
47b957361e Move most journey code to newly introduced Journey model 2020-08-16 21:20:23 +02:00
Daniel Friesel
717cc18a40 Move get_departures to a separate IRIS helper 2020-08-06 16:04:12 +02:00
Daniel Friesel
f08bdaca5c Move user model to a separate module 2020-07-27 18:53:22 +02:00
Daniel Friesel
f5fd6d42e1 Add CSV Export 2020-04-19 18:26:20 +02:00
Daniel Friesel
346f1474bb commute stats: attempt to weed out non-work stations for auto-fill 2020-04-19 17:49:14 +02:00
Daniel Friesel
5ce4bc6995 improve commute station heuristic
Select top station on work days (Mo .. Fr) with arrival < 13:00 or
departure >= 13:00.
2020-04-19 17:40:39 +02:00
Daniel Friesel
94ea5a089f Commute stats: count days, not journeys 2020-04-19 17:03:02 +02:00
Daniel Friesel
94932c4102 add commute stats. not linked from nav yet. 2020-04-19 16:49:31 +02:00
Daniel Friesel
d7f251e51f public user status: show polyline if available 2020-02-26 18:43:34 +01:00
Daniel Friesel
5c05ed609f journey details: show route on map if available 2020-02-23 19:04:05 +01:00
Daniel Friesel
82f043e734 Move map data generation to a global helper function 2020-02-23 18:35:56 +01:00
Daniel Friesel
a15dc1791c calculate journey distance using polyline, if available 2020-02-21 23:31:50 +01:00
Daniel Friesel
0011e4a18d user_status: Improve TS lookup performance 2020-02-20 20:58:58 +01:00
Daniel Friesel
57f686b688 allow showing past journeys on shared status page 2020-02-19 20:58:38 +01:00
Daniel Friesel
cc7439dd5e handle departure cancellation after checkin 2020-02-17 21:13:07 +01:00
Daniel Friesel
a1865fa69e add privacy setting for showing history and latest arrival timestamp 2020-02-14 16:29:44 +01:00
Daniel Friesel
3ddd1a1cf4 Improve map performance by passing actual polylines for train routes 2020-02-07 23:19:01 +01:00
Daniel Friesel
eb3f4aed05 allow checkin and checkout station to be edited 2020-02-01 16:15:20 +01:00
Daniel Friesel
aa7a7db2bc map: show polylines by default 2020-01-31 18:16:00 +01:00
Daniel Friesel
dadb0f6637 map: improve polyline duplicate detection 2020-01-29 19:54:32 +01:00
Daniel Friesel
993f6be6c9 map: set bounds on stations; move polyline feature to staging 2020-01-29 18:48:58 +01:00
Daniel Friesel
cc25a56864 Api: Import: Set correct route key for add_journey 2020-01-26 16:04:08 +01:00
Daniel Friesel
d7c69acf41 import API: route -> intermediateStops 2020-01-26 10:50:21 +01:00
Daniel Friesel
c31254e996 import API: Add deprecated field, remove development check 2020-01-26 10:47:51 +01:00
Daniel Friesel
1723f8c1fb import API: invalidate stats cache after adding a journey 2020-01-26 10:08:46 +01:00
Daniel Friesel
3e9807b393 map, journey view: handle renamed stations 2020-01-25 15:46:42 +01:00
Daniel Friesel
1028e47a35 map: list skipped journeys 2020-01-25 14:55:51 +01:00
Daniel Friesel
ee1285e8fa map: support multiple polyline groups with different colors 2020-01-25 14:41:33 +01:00
Daniel Friesel
9232cdaa5f Return HTTP 404 for unknown journeys 2020-01-19 19:21:14 +01:00
Daniel Friesel
2764826da0 /journey/🆔 verify that id is numeric
As a side effect, this turns the response of GET /journey/edit (which should
never happen in the first place) from an exception into a 404 error (#36)
2020-01-19 19:15:53 +01:00
Daniel Friesel
a9a7fa4492 Release Travel API 2019-12-31 13:27:14 +01:00
Daniel Friesel
61889603f7 Checkin API: error out if fromStation / toStation are ambiguous 2019-12-30 01:31:26 +01:00
Daniel Friesel
d9126b927f fix connections display 2019-12-26 22:48:50 +01:00
Daniel Friesel
f9f1eec499 Use EVA IDs instead of travelynx-internal station IDs. Not 100% tested yet. 2019-12-23 22:57:45 +01:00
Daniel Friesel
e7f278574f more travel API documentation 2019-12-20 18:33:59 +01:00
Daniel Friesel
11a2e94a04 travel API: more helpful errors on invalid input 2019-12-20 16:39:15 +01:00
Daniel Friesel
bd372d57e2 Travel API: Add "deprecated" field 2019-12-20 16:23:41 +01:00
Daniel Friesel
ebb7c22a4b checkin api: only set comment if checkin was successful 2019-12-20 16:18:32 +01:00
Daniel Friesel
69f961a23c disable import and checkin API endpoints in production mode 2019-12-19 19:20:06 +01:00
Daniel Friesel
c8695ecb1c travel, import API: Verify that payload is a hash 2019-12-17 20:41:36 +01:00
Daniel Friesel
934a9ac21a api/import: More helpful errors, fix "lax" support 2019-12-17 20:09:02 +01:00
Daniel Friesel
ae21896982 API: Add lax option 2019-12-17 20:01:39 +01:00
Daniel Friesel
7ae60f2ea4 Travel API: comment support 2019-12-14 23:46:36 +01:00
Daniel Friesel
46fc64de48 Add travel (checkin/checkout/undo) API 2019-12-14 21:53:23 +01:00
Daniel Friesel
5fe4174feb Add API entry point for journey import 2019-12-14 20:46:02 +01:00
Daniel Friesel
315a94affe allow a journey's cancellation status to be edited
Closes #27
2019-12-08 19:46:45 +01:00
Daniel Friesel
561ff4574b Allow status visibility to be limited to travelynx users 2019-12-08 11:06:17 +01:00
Daniel Friesel
402a5597f5 Account: unset public_comment when public_status is disabled 2019-12-08 10:32:22 +01:00
Daniel Friesel
fb126c6928 optionally show journey comment in public user status
Closes #19
2019-12-06 21:44:31 +01:00
Daniel Friesel
094c536eb4 Allow comments to be entered while still in transit 2019-12-06 21:40:51 +01:00
Daniel Friesel
119f0a6b7d Do not show cancelled journeys without substitute in passengerrights list 2019-11-27 21:09:49 +01:00
Daniel Friesel
0e2e8cd78e history map: Add checkbox to display manually added journeys 2019-11-27 18:26:15 +01:00
Daniel Friesel
613f7d6087 Passengerrights: Fix typo 2019-11-24 20:32:24 +01:00
Daniel Friesel
b3b0a055b9 improve get_user_travels performance, most notably when rendering map
only create DateTime objects when needed
2019-11-24 20:29:52 +01:00
Daniel Friesel
57f47d2a3c allow routes to be edited after recording a journey 2019-11-20 17:41:21 +01:00
Daniel Friesel
b80613b8a8 allow route input when adding journeys manually (#26) 2019-11-19 19:46:39 +01:00
Daniel Friesel
13e59b3aa1 add journey: make realtime data optional (default to schedule data)
Closes #25
2019-11-18 21:02:57 +01:00
Daniel Friesel
783a540cb0 history map: show time range; handle users with no journeys 2019-11-16 23:47:18 +01:00
Daniel Friesel
e0187c5308 history map: Do not show route for manually added journeys 2019-11-16 23:46:45 +01:00
Daniel Friesel
cea4b71ca3 history map: skip duplicates earlier 2019-11-16 21:24:35 +01:00
Daniel Friesel
4f2eac9cef map_history: uniq_by_route did not consider the actual passenger route, scrap it 2019-11-16 16:03:03 +01:00
Daniel Friesel
733fe2d853 map: add legend, link to history map from history page 2019-11-16 15:57:09 +01:00
Daniel Friesel
77e4998708 move station -> location map to generic helper 2019-11-16 15:24:16 +01:00
Daniel Friesel
45f747961e map: add station names to points 2019-11-16 14:50:07 +01:00
Daniel Friesel
0bfb71d78d add map view of past journeys. unfinished and unreferenced. 2019-11-16 00:01:50 +01:00
Daniel Friesel
4ba82b51d3 Fix invalid geolocation list when less than 5 unique station names are nearby
This issue was introduced in 7c7b5e9f95 and
caused the client-side javascript code to crash
2019-10-19 16:47:33 +02:00
Daniel Friesel
780cdafcf5 show related stations in departure list 2019-10-19 10:15:18 +02:00
Daniel Friesel
1cb26e2053 handle substitute connections in passenger rights form 2019-09-18 20:21:16 +02:00
Daniel Friesel
8e6ee729e0 passengerrights: improve support for cancelled trains
To do: also do so in form generation
2019-09-18 18:19:54 +02:00
Daniel Friesel
a9850d073e improve connection detection heuristic 2019-09-14 12:27:36 +02:00
Daniel Friesel
35cc18dfae add passenger rights heuristic for missed connections 2019-09-13 23:39:28 +02:00
Daniel Friesel
0822cfc993 add auto-generated passenger rights forms 2019-09-12 18:07:21 +02:00
Daniel Friesel
a40aa1936b Allow comments to be edited 2019-08-23 12:02:22 +02:00
Daniel Friesel
7c7b5e9f95
Do not show station duplicates in geolocation list 2019-07-20 15:42:49 +02:00
Daniel Friesel
b12b5a821b Show departures of all linked stations
Not well-tested yet, deployment will have to wait a bit. Issue #15
2019-07-14 21:29:52 +02:00
Daniel Friesel
155f9f39cc use journey-specific status links -> one twitter card per journey 2019-05-29 20:01:52 +02:00
Daniel Friesel
146b3a2682 add twitter preview tags to public user status page 2019-05-29 18:11:25 +02:00
Daniel Friesel
7fe95532c1 Use JSON for messages and route storage, prepare for extended route data 2019-05-26 17:28:21 +02:00
Daniel Friesel
1dc04eb45a show journey suggestions on departure board as well 2019-05-20 19:15:21 +02:00
Daniel Friesel
d9d3aac792 allow checkin from connections view 2019-05-19 10:32:57 +02:00
Daniel Friesel
b85db3a10d Show web-hook test result immediately after saving it
Closes #12
2019-05-14 20:05:45 +02:00
Daniel Friesel
59c677ba12 history: validate year and month 2019-05-11 01:35:57 +02:00
Daniel Friesel
269b8536f4 Add webhook to account page 2019-05-10 19:03:18 +02:00