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
Björn Fromme
398eb448cb
feat: cli command to download travel xml data from buspro api
2026-01-14 16:57:17 +01:00
Björn Fromme
6cdede138e
fix: correct body dimensions values
2026-01-14 16:07:30 +01:00
Björn Fromme
3046aad94d
fix: account for discounts applied by bpn api in validation request
2026-01-14 12:47:25 +01:00
Björn Fromme
ec2ce6ec62
feat: revert room price fetching for performance reasons
2026-01-13 15:54:54 +01:00
Björn Fromme
3c61e7eaf3
feat: trigger form refresh for dob when completely entered only
2026-01-13 15:37:05 +01:00
Björn Fromme
f942600dd8
fix: fetch fresh room prices from api to avoid calculation mismatch
2026-01-13 15:14:27 +01:00
Björn Fromme
efacbf64cb
fix: consider booking status O correctly
2026-01-13 14:42:51 +01:00
Björn Fromme
e38445f184
fix: correctly compare age range
2026-01-13 14:42:35 +01:00
Björn Fromme
00803b2e73
feat: always load fresh api data when starting to edit booking
2026-01-13 13:16:35 +01:00
Björn Fromme
a52f65919f
chore: update project dependencies
2026-01-13 10:22:25 +01:00
Björn Fromme
3d4d88e986
feat: xlsx export of booking edit draft data for admins
2026-01-13 10:22:03 +01:00
Björn Fromme
5221cea53b
feat: merge draft data with api response for selected fields
2026-01-12 18:25:51 +01:00
Björn Fromme
7636ee41af
fix: ensure nationality is assigned when editing booking data
2026-01-12 18:23:52 +01:00
Björn Fromme
830fd2464c
fix: avoid reinstallation of claude code with each restart of ddev
2026-01-11 13:35:50 +01:00
Björn Fromme
d922fd2b9c
chore: update project dependencies
2026-01-11 13:26:02 +01:00
Björn Fromme
d22078b26e
fix: populate booking number with edit drafts
2026-01-11 13:25:13 +01:00
Björn Fromme
195af95995
feat: integrate with easy admin bundle
2026-01-11 13:24:07 +01:00
Björn Fromme
d95d0a8930
feat: streamlined booking number property
2026-01-10 12:12:54 +01:00
Björn Fromme
6fca40963d
wip: integrate with easy admin bundle
2026-01-10 11:35:16 +01:00
Björn Fromme
ace251c1dd
feat: cleanup favicons
2026-01-10 11:34:46 +01:00
Björn Fromme
db2e92c058
feat: custom hx redirect class
2026-01-10 11:32:14 +01:00
Björn Fromme
28b62f5071
feat: adjust xml dump reader command to new filename format
2026-01-10 11:31:24 +01:00
Björn Fromme
168c128b1d
chore: update claude code installation in ddev container
2026-01-09 18:07:45 +01:00