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
Björn Fromme
90af012e56
chore: update lts upgrade plan with current state of the project
2026-01-09 16:34:46 +01:00
Björn Fromme
d6c36b4171
chore: simplify and update claude code installation in ddev container
2026-01-09 16:25:43 +01:00
Björn Fromme
9575aad10c
feat: always allow editing of participants for internal bookings
...
Prior to this commit the mutability flag from BusProNet was evaluated
and would potentially conflict with this rule. This flag is now
completely ignored for internal bookings.
2026-01-09 13:37:22 +01:00
Björn Fromme
7b98cccbe9
fix: add suffix to request id in xml-dump filenames to avoid overwrites
2026-01-09 13:28:04 +01:00
Björn Fromme
fe2268c897
feat: cleanup, log successful bookings
2026-01-09 10:05:21 +01:00
Björn Fromme
f2c1988d75
chore: add draft cleanup command to schedule
2026-01-09 09:49:35 +01:00
Björn Fromme
5b9f35eddc
fix: use correct property path for travel date determination
2026-01-09 09:46:29 +01:00
Björn Fromme
c8ed5b2cc7
feat: cli command to backfill travel dates on draft records, single use
2026-01-09 09:39:35 +01:00
Björn Fromme
da517b37b6
feat: cli command to clean up outdated or stale booking draft records
2026-01-09 09:22:51 +01:00
Björn Fromme
0992c05539
fix: don't update booking session and draft on form refresh
...
Each form refresh would create a draft even for users that just explore
booking options causing stale draft records in the database.
2026-01-09 09:22:18 +01:00
Björn Fromme
ed8a8a2f8b
feat: streamlined display of hotel image, name and address
2026-01-08 17:51:39 +01:00
Björn Fromme
5516ef45f6
chore: update project dependencies
2026-01-08 16:43:16 +01:00
Björn Fromme
6beb965c85
feat: new service category 'VEG'
2026-01-08 16:42:42 +01:00
Björn Fromme
479a88e131
chore: update httpclient config
2026-01-08 16:32:02 +01:00
Björn Fromme
e4a1a992be
feat: command to read xml-dumps from bpn api by provided request id
2026-01-08 14:23:22 +01:00
Björn Fromme
97a5d7f9f1
fix: include gender and nationality into group of mandatory fields
2026-01-08 14:18:37 +01:00
Björn Fromme
776b9d0912
feat: proper determination of agency initiated bookings
...
For booking that are agency initiated (groups) different rules apply
concerning mutability and requirement of personal data and whether the
first participant is the applicant or not. This commit adds logic to
evaluate the agency id assigned to the booking data to decide.
2026-01-08 12:54:59 +01:00