Björn Fromme
c02b1b57c7
fix: reduce mutability data cache ttl to avoid staleness
...
addresses #869cdzmkq
2026-03-16 11:20:05 +01:00
Björn Fromme
efff024196
fix: ensure mutability is accounted for when restoring drafts
...
addresses #869cdzmkq
2026-03-16 11:20:05 +01:00
Björn Fromme
021671a45f
fix: assign mandatory services when applying dummy data
2026-03-07 12:46:56 +01:00
Björn Fromme
f2c12a9f03
feat: update wording
2026-03-04 12:43:49 +01:00
Björn Fromme
5cf4b0f9ea
feat: shortened and filename-safe request ids
2026-03-04 11:25:23 +01:00
Björn Fromme
370bc9fc5f
fix: ensure pickups node exists in api payload
2026-03-04 11:09:41 +01:00
Björn Fromme
a1d43b9c5a
fix: ensure drop-offs are submitted when same as pickups
2026-03-04 10:48:57 +01:00
Björn Fromme
90fc66277e
feat: anonymization command for request/response XML dumps
2026-03-04 10:47:20 +01:00
Björn Fromme
590146be9e
feat: adopt new pickups planning payload JSON structure
2026-03-02 11:55:57 +01:00
Björn Fromme
f705a851c2
fix: validate mandatory services selection
2026-02-25 17:09:13 +01:00
Björn Fromme
d33ff9779c
fix: correctly validate pickup selection
...
closes #869c94jqn
2026-02-25 16:55:22 +01:00
Björn Fromme
876cd5a8fa
fix: don't restore selections from draft for immutable fields
2026-02-24 18:16:52 +01:00
Björn Fromme
5a64c85fb6
fix: enforce mutability checks for all fields
2026-02-24 11:53:00 +01:00
Björn Fromme
31153e90b4
chore: remove dead code
2026-02-24 11:27:53 +01:00
Björn Fromme
3996e02dd9
feat: use normalized checkbox values in field handlers
2026-02-23 09:31:19 +01:00
Björn Fromme
39972c1418
fix: avoid selection trap for mandatory services with age constraints
2026-02-20 17:06:43 +01:00
Björn Fromme
45cfc459aa
fix: always fill-in empty participants names when submitting to api
2026-02-20 09:48:22 +01:00
Björn Fromme
4529fe5472
fix: correct sort order of pickups and drop-offs
2026-02-19 12:56:06 +01:00
Björn Fromme
08aaff1e2d
fix: show pickup select field for outbound bus travel only
2026-02-19 08:22:52 +01:00
Björn Fromme
0884a39f3d
feat: selectable drop-offs for inbound bus travel
2026-02-17 11:53:39 +01:00
Björn Fromme
a4cae4f321
fix: handle empty api responses more gracefully
2026-02-17 08:55:49 +01:00
Björn Fromme
a22688c87e
fix: catch unexpected api response for personal data
2026-02-15 12:57:03 +01:00
Björn Fromme
cfc52a9cf3
fix: backward compatibility for new session format
2026-02-15 12:55:48 +01:00
Björn Fromme
33e09bbe89
fix: correctly determine file size and avoid type mismatch
2026-02-14 16:09:21 +01:00
Björn Fromme
abeb91b59f
feat: dummy data fill
...
closes #869c3khk0
2026-02-14 15:56:56 +01:00
Björn Fromme
c373a98953
feat: reduce session payload
2026-02-14 09:47:14 +01:00
Björn Fromme
2c3ce32282
fix: correct room assignment and count
...
closes #869c2jnzr
2026-02-09 11:00:36 +01:00
Björn Fromme
bc8d4f74c1
feat: fill default names for canceled participants in agency bookings
2026-02-05 17:57:35 +01:00
Björn Fromme
6adc0769c7
chore: code cleanup
2026-02-05 17:45:54 +01:00
Björn Fromme
2f9930a240
feat: update personal data of canceled participants as well
...
addresses #869bze0kq
2026-02-05 11:23:25 +01:00
Björn Fromme
e668c2d882
feat: revert allow updating room assignments in edit mode
2026-02-05 10:29:34 +01:00
Björn Fromme
6b205c7a86
fix: allow updating room assignments in edit mode
2026-01-30 17:29:26 +01:00
Björn Fromme
0aa4bb5055
chore: streamline namespacing
2026-01-30 16:10:29 +01:00
Björn Fromme
40da2ecaf3
fix: enforce profile completion of applicant in all situations
2026-01-29 16:24:27 +01:00
Björn Fromme
5d0ba0ef9a
fix: ensure complete participant data even when canceled
2026-01-29 12:57:37 +01:00
Björn Fromme
6365e4b24c
feat: remove street from hotel address in sidebar
...
addresses #869bwq1vh
2026-01-27 18:36:03 +01:00
Björn Fromme
dc91660488
feat: require all personal data fields for registration
2026-01-27 18:25:38 +01:00
Björn Fromme
e9548d9f38
feat: tracking integration with GTM and CMP
2026-01-27 17:31:41 +01:00
Björn Fromme
d5944bf717
feat: domain-based theme-detection
2026-01-27 11:18:37 +01:00
Björn Fromme
34f190f469
fix: don't normalize hotel and product codes when fetching cms data
2026-01-23 15:35:24 +01:00
Björn Fromme
e8df7d193e
feat: display error codes in admin overview
2026-01-23 11:15:46 +01:00
Björn Fromme
aa08307500
feat: error-codes in flash messages to reference log entries
2026-01-23 11:06:24 +01:00
Björn Fromme
c41524c1fd
feat: user-friendly error messages on login
2026-01-23 10:30:17 +01:00
Björn Fromme
8dec0be375
feat: streamlined flash messages
2026-01-23 10:15:44 +01:00
Björn Fromme
9471abce94
fix: revert pickup pricing to match current BusPro behavior
...
Reverts split pricing calculation to use outbound-only pricing,
matching BusPro's current behavior where pickup is only charged when
outbound transportation is BUS.
- Use pickup->price directly instead of calculateEffectivePrice()
- PKW+BUS scenario now correctly charges €0 (matches BusPro loophole)
- priceOutbound/priceInbound remain populated for future activation
- Updated documentation with current behavior and future plan
2026-01-21 17:18:09 +01:00
Björn Fromme
2aeed762fd
feat: extensible participant status determination for booking creation
...
Adds a rule-based system to determine participant status in CREATE
payloads. Participants selecting a 'Begleitperson' service now receive
status 'O' (Option), all others default to 'F' (Final).
- Add ParticipantStatusRuleInterface for defining status rules
- Add ParticipantStatusRuleRegistry for priority-based rule evaluation
- Add ChaperonServiceStatusRule for Begleitperson detection
- Integrate status evaluation into BookingPayloadBuilder
2026-01-21 10:16:57 +01:00
Björn Fromme
548b8a8ef0
feat: log contact form submissions
2026-01-21 08:43:28 +01:00
Björn Fromme
0c1f143b12
feat: info text and correct field type for service group 'VEG'
...
addresses #869bvch71
2026-01-20 18:36:33 +01:00
Björn Fromme
24ac2efc53
fix: don't hide voucher fields for booking status 'O'
...
closes #869bvbkrd
2026-01-20 16:06:17 +01:00
Björn Fromme
f725a6b72f
feat: ignored room types
...
closes #869bvbmcw
2026-01-20 15:52:57 +01:00