Commit graph

702 commits

Author SHA1 Message Date
7a50ea6016 Improve launch status UI and alert on SpaceDevs payload errors 2026-02-21 16:39:47 +00:00
458dfc5136 Refresh active crewed mission cache in updater
Closes #175
2026-02-21 16:08:45 +00:00
a275683f90 Keep active crewed missions on launches page 2026-02-21 16:00:52 +00:00
7cced919a2 Show full conference dates alongside partial attendance dates.
When attend_start or attend_end is set, display the full conference
date range in parentheses after the attended dates, e.g.
"Wed 6 Mar to Sun 10 Mar (full conference: Sun 3 Mar to Sun 10 Mar)".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 18:23:33 +00:00
49e5a3000e Add attend_start/attend_end fields for partial conference attendance.
Allows recording when you arrive late or leave early at a multi-day
conference. Both fields accept a plain date or datetime with time.
Trip pages display the attendance dates instead of the official
conference dates when these fields are set.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 18:14:27 +00:00
2edfb40e66 Avoid crash when flight.co2_kg is not set. 2026-02-18 17:09:18 +00:00
84dfafefa1 Avoid crash when flight.co2_kg is not set. 2026-02-18 17:07:40 +00:00
53f4252b92 Refactor bus/coach loading and rendering to share code.
Extract `load_road_transport()` as a shared helper for bus and coach,
combining the near-identical route rendering blocks in `get_trip_routes`
and `Trip.elements()` into single `in ("coach", "bus")` branches.
Document transport type patterns in AGENTS.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 12:52:28 +00:00
c87320415f Show bus stops and coach stations on trip map.
Add case "bus" to get_locations() and bus route handling to
get_trip_routes() in trip.py. Coach stations now populate a dedicated
"coach_station" dict instead of the train station list. Add
"coach_station" (🚌) and "bus_stop" (🚏) emoji types to map.js.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 12:13:42 +00:00
363967b739 Fix bus stop parsing. 2026-02-18 09:47:08 +00:00
24f4c49429 Fix bus parsing. 2026-02-18 09:46:01 +00:00
3a786c4b04 Add bus journeys. 2026-02-18 09:43:02 +00:00
960b4a1fc7 Add bus journeys. 2026-02-18 09:39:51 +00:00
bc2c884589 Show flash messages on event list. 2026-02-17 11:34:40 +00:00
b835956ea9 Show bootstrap alert after login. 2026-02-17 11:30:03 +00:00
e0b9e4e719 Switch from UniAuth to OpenID Connect 2026-02-17 11:25:55 +00:00
1f026c31ca UniAuth 2026-02-17 11:10:46 +00:00
828cb40dfa Handle Year Half precision in launch date formatting
Closes: #172

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 11:55:17 +00:00
905c9c330d Redesign trip stats page with collapsible sections
Use Bootstrap cards and collapsible sections to make the long
lists of airlines, airports, and stations easier to read. Items
are now displayed as badges and hidden by default.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:30:58 +00:00
523dc78b35 Add overall airline, airport, and station stats to trip summary
Aggregate yearly stats into overall totals so the trip stats page
shows flight segments by airline, airports used, and stations used
in the summary section at the top.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:25:10 +00:00
bc5e595bb0 Add airline, airport, and station stats 2026-01-15 23:05:39 +00:00
f22772d12d Move trip new-country filtering into stats 2026-01-15 22:53:17 +00:00
ddfa77b152 Fix mypy type errors in trip helpers 2026-01-15 22:53:10 +00:00
8a0df48a73 Fix trip stats new-country counting 2026-01-15 22:43:22 +00:00
91a74fd887 Add YAML output on debug page. 2025-11-14 16:16:54 +00:00
7e2b79c672 Serve conferences in iCalendar format. 2025-11-14 15:40:05 +00:00
5eab5361b2 Serve events in ics with UTZ timestamps. 2025-11-14 15:14:17 +00:00
77ea6a8afa Generate iCalendar for Thunderbird, etc. 2025-11-14 14:40:19 +00:00
97933cfe8f Update gitignore 2025-11-14 07:53:01 +00:00
c423ec45ea Tighten map marker styling 2025-11-13 06:51:21 +00:00
6d899113ce Add map fixture. 2025-11-13 06:42:12 +00:00
178c669b01 Fix country name box wrapping. 2025-11-03 19:57:16 +00:00
7266568010 Bug fix 2025-11-03 19:39:28 +00:00
8a9126b729 Remove unused code. 2025-11-03 19:31:14 +00:00
e82ca9d9e9 The pandas module has type info. 2025-11-03 19:30:57 +00:00
83e1406ab4 Fix type error. 2025-11-03 19:30:29 +00:00
a7ec33c500 warn if hotel/accommodation coords to far apart 2025-11-03 19:29:42 +00:00
4364c95f25 Move accommodation max distance to config 2025-11-03 19:14:27 +00:00
a8652d881c Show country flags in Schengen compliance history 2025-11-03 13:05:09 +00:00
5d5ce61da4 Hide compliance status on none-Schengen trips. 2025-11-03 12:59:12 +00:00
7e3f9a9b1e Show trip stats in reverse chronological order. 2025-11-03 12:36:41 +00:00
b4126d04f8 Move two functions to agenda/trip.py 2025-11-03 12:36:13 +00:00
f718535624 Adjust code formatting. 2025-11-03 12:21:59 +00:00
4143190a8a Accommodation must be within 5km of conference 2025-10-30 17:30:27 +00:00
623e20c273 Add days until column to birthdays table 2025-10-09 20:57:46 +01:00
d4b43d70ba Add description field to Conference class. 2025-10-06 10:54:01 +01:00
c6d39ace60 Trip: fix total_distance undercount
Previously Trip.total_distance returned None if any travel leg lacked a
distance, which led to undercounted trip stats (less than flight + train
totals).

Now it accumulates only distances that are present and ignores
missing/falsy values.  The method returns a float and yields 0.0 when no
distances are available.  Docstring updated accordingly.

Fixes #185
2025-08-30 20:46:03 +01:00
4ee2492e5b Not using Claude Code any more 2025-08-30 20:36:55 +01:00
09eb44b55d Send alerts for all space launch test flights
In addition to the configured FOLLOW_LAUNCHES, also send emails for any
launch whose mission.type == "Test Flight" even if its slug is not in
FOLLOW_LAUNCHES.

Fixes #192.
2025-08-12 23:23:29 +01:00
97c0531a22 Send at most one grouped birthday reminder email
Collects birthdays in the next 7 days, groups them into sections
(Today/Tomorrow/In N days), and sends a single email.

Fixes #201.
2025-08-12 22:33:52 +01:00