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
744cf55a7e
chore: update project dependencies
2026-03-07 12:38:10 +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
cd5d353158
chore: update project dependencies
2026-03-02 11:57:46 +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
8e2c688641
chore: cleanup
2026-02-25 17:17:21 +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
949bea723d
chore: add git ignored temp directory
2026-02-24 11:27:41 +01:00
Björn Fromme
0365daa57b
feat: avoid indexing of content by crawlers
2026-02-23 09:45:22 +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
bd488211bd
chore: update plan for symfony 7.4 upgrade
2026-02-23 09:11:15 +01:00
Björn Fromme
ca34d4a4f3
chore: update project dependencies
2026-02-23 08:59:35 +01:00
Björn Fromme
a93a8469c4
chore: remove claude code entirely
2026-02-23 08:49:32 +01:00
Björn Fromme
cec481741b
fix: prevent race conditions in htmx boost response handling
2026-02-20 17:24:20 +01:00
Björn Fromme
39bacd2927
fix: ensure loading indicator when entering booking flow in Chrome
2026-02-20 17:23:56 +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
21356f00d5
chore: update project dependencies
2026-02-19 12:57:09 +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
41b0f56b5b
chore: split scheduler config for prod and staging
2026-02-17 11:53:14 +01:00
Björn Fromme
b034b8c7f8
chore: update project dependencies
2026-02-17 08:57:07 +01:00
Björn Fromme
a4cae4f321
fix: handle empty api responses more gracefully
2026-02-17 08:55:49 +01:00
Björn Fromme
ab67f9d7b5
feat: legal links in page footer
2026-02-16 09:09:28 +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
a339f8a517
feat: show booking status in sidebar
2026-02-14 16:04:54 +01:00
Björn Fromme
abeb91b59f
feat: dummy data fill
...
closes #869c3khk0
2026-02-14 15:56:56 +01:00
Björn Fromme
350a9e6742
chore: update project dependencies
2026-02-14 09:49:38 +01:00
Björn Fromme
c373a98953
feat: reduce session payload
2026-02-14 09:47:14 +01:00
Björn Fromme
3863999f2a
chore: use correct database type to replicate prod environment
2026-02-13 20:22:29 +01:00
Björn Fromme
54410628b4
chore: add staging environment to deployer config
2026-02-13 13:45:41 +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
dd03cdd77f
chore: align node and npm versions of DDEV with host, use npm ci
2026-02-05 18:07:43 +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
6f869bdb1a
chore: update frontend tooling
2026-02-05 17:56:36 +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
3036a7773c
chore: update project dependencies
2026-02-05 10:30:01 +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
bb4768c491
chore: update platform specs in composer.json for prod
2026-01-30 17:46:51 +01:00
Björn Fromme
9140e4f3fc
chore: update project dependencies
2026-01-30 17:29:56 +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
ee3b1f47a7
chore: update project dependencies
2026-01-29 16:25:35 +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
786a4306dd
chore: update project dependencies
2026-01-28 19:41:28 +01:00
Björn Fromme
677ffc7368
fix: streamline datalayer integration for all events
2026-01-28 19:40:48 +01:00
Björn Fromme
93eb08c610
fix: properly initialize CMP, GTM and data layer for tracking
2026-01-27 21:25:03 +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
e138fbeca8
chore: update frontend dependencies
2026-01-27 18:29:59 +01:00
Björn Fromme
d29a6a1835
chore: update project dependencies
2026-01-27 18:26:15 +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
2355442ac0
chore: update database and php versions to match prod environment
2026-01-26 08:24:19 +01:00
Björn Fromme
789555078d
chore: update deployer config for new hosting environment
2026-01-25 13:53:43 +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
8646c4ffdd
chore: update project url in ddev
2026-01-23 13:05:48 +01:00
Björn Fromme
419d3b78c6
chore: update project dependencies
2026-01-23 12:54:07 +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
512b63b88b
feat: infotext for insurance booking conditions
...
closes #869bvcu2p
2026-01-21 09:33:36 +01:00
Björn Fromme
92d7eac3a1
chore: update httpclient config to use random values for contactform
2026-01-21 09:02:47 +01:00
Björn Fromme
548b8a8ef0
feat: log contact form submissions
2026-01-21 08:43:28 +01:00
Björn Fromme
fb8aabe34c
chore: remove debug logging in toast controller
2026-01-21 08:11:36 +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
e7a139b025
chore: update test to fix deprecation warning
2026-01-20 16:05:48 +01:00
Björn Fromme
cfe19b7a74
chore: update project dependencies
2026-01-20 16:05:28 +01:00
Björn Fromme
f725a6b72f
feat: ignored room types
...
closes #869bvbmcw
2026-01-20 15:52:57 +01:00
Björn Fromme
a097159897
feat: move profile completeness check from login to booking flow entry
...
- Add profileComplete flag to User entity to avoid API calls
- Set flag during login (BpnAuthenticator) and profile save
- Check flag in IndexController when entering booking flow
- Remove ProfileCompletionSubscriber (no longer needed)
Users with incomplete profiles are only redirected when starting
a new booking, not on every login. Eliminates extra API call by
caching completeness status on the user entity.
2026-01-19 18:55:55 +01:00
Björn Fromme
da33620ea9
chore: update alert wording to be more descriptive
2026-01-19 18:06:29 +01:00
Björn Fromme
0b44394b11
feat: enforce profile data completeness before entering booking flow
2026-01-19 18:04:19 +01:00
Björn Fromme
2949870acc
feat: allow editing of nationality in personal data
2026-01-19 17:12:26 +01:00
Björn Fromme
35c289240d
fix: default participant's nationality to German to avoid missing data
2026-01-19 17:12:12 +01:00
Björn Fromme
3b165bf292
chore: update rsync excludes in deployer config
2026-01-19 16:17:35 +01:00
Björn Fromme
f0c43a17d8
feat: body dimensions mandatory with selected rentals, updated help text
...
feat: body dimensions mandatory with selected rentals
2026-01-19 16:12:53 +01:00
Björn Fromme
2776429639
fix: preserve selected services from booking even when unavailable
...
When editing a booking, services that were previously booked but are no
longer available in the travel catalog were being dropped. This caused
API error 650 ("Anzahl Leistung stimmt nicht mit Teilnehmerzuordnung
überein") because the service participant counts no longer matched.
The fix ensures that in edit mode, booked services are merged with
travel data services in both:
- Form rendering (ParticipantFieldOptionsProvider): so checkboxes appear
- Handler validation (AbstractParticipantFieldHandler): so selections
are accepted
This allows users to keep their existing service selections or
deliberately replace them with other available options. Create mode
remains unchanged.
2026-01-19 15:51:39 +01:00
Björn Fromme
5c9f8c2a2e
doc: add technical documentation
2026-01-17 19:27:06 +01:00
Björn Fromme
3e6533829c
fix: ensure unique services mapping when creating api payload
2026-01-16 14:22:17 +01:00
Björn Fromme
054505d853
feat: match modes for room selection condition to detect MBZ*
...
addresses #869btdcyh
2026-01-15 11:02:27 +01:00
Björn Fromme
c793550af5
feat: improved logic to control field visibility
...
addresses #869btdphv
2026-01-15 10:28:26 +01:00
Björn Fromme
b18fccff9d
fix: correctly handle discounts applied by dpn api
2026-01-14 17:46:15 +01:00