12 Commits
Author SHA1 Message Date
admin.juergenandClaude Fable 5.1 93baeac8a4 Hide the inbox edit button without access to the bookings or inquiries module
The button leads into the modules Anmeldungen and Kontaktanfragen. A group
that has those modules hidden got a 403 when clicking it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-27 20:12:37 +01:00
Jürgen MummertandClaude Fable 5.1 3aad6aa559 Store the display fields of events as virtual fields
- Move 29 display-only event fields (subtitles, audience, tags, prices,
  price types, organizer) from columns into the jsonData storage; fields
  used for filtering, joins and calculations stay real columns
- Add EventFieldsToVirtualMigration, which copies the values and drops
  the columns on contao:migrate
- Read and write the fields in the import, the preview and the booking
  through EventRowCodec; other bundles' keys in the storage are kept
- Validate prices in a save callback instead of the percent check that
  rejected every price above 100; accept a decimal comma
- Do not report events as changed after a backend save: ignore the
  spelling of HTML entities in teaser and topics and the order of the
  speakers

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 20:42:47 +02:00
Jürgen MummertandClaude Fable 5.1 4d4f21b7c8 Require Contao 6 and drop the Contao 5 compatibility code
- Require contao/core-bundle and calendar-bundle ^6.0
- Render the setup check and the notification help as input_field
  callbacks instead of a custom backend widget; the fields no longer
  create a virtual jsonData column
- Load the backend style sheet through contao.backend.custom_css and
  remove the menu listener (tooltip workaround for Contao 5 included)
- Tell editors when the Notification Center is not installed instead of
  linking to a module that does not exist
- Generate category aliases with the slug settings of the calendar page
  so that umlauts are transliterated for German sites
- Always return a RecordLabel for the category list, export stored
  values as they are, remove the decodeEntities options and the legacy
  "events" URL parameter, use array notation for the price columns

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 20:21:12 +02:00
Jürgen MummertandClaude Fable 5.1 36a317d32e Check the setup chain at the top of the settings form
A "setup check" box lists whether the booking form has the expected
field names (essential ones flagged as errors), the booking page carries
the booking form module, confirmation and inquiry pages are wired, the
calendar's reader page shows the booking status module and at least one
notification is assigned. Green when complete, red with concrete hints
otherwise, so misconfigurations show up before the first booking.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 18:01:22 +02:00
Jürgen MummertandClaude Fable 5.1 fdaff1b1d1 Explain the notification conditions in the settings form
The explanation texts existed but used the "explanation" input type,
which Contao only knows in the front end form generator, so the backend
rendered nothing and editors saw twelve unlabelled selects. A small
backend explanation widget now shows how a notification is chosen and
the condition matrix, each select carries its condition as label, the
single-day and multi-day variants sit side by side, and a notice with a
link to the Notification Center appears while no notification of the
type "W&K booking" exists.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 17:36:18 +02:00
Jürgen MummertandClaude Fable 5.1 fb2bfa1ee8 Separate the W&K names in the category list
The newline-separated names were rendered as one run-on string.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 16:59:33 +02:00
Jürgen MummertandClaude Fable 5.1 6e75ad31ea Store the birthday as a plain TT.MM.JJJJ text field in the backend
The field was declared as a Contao date field, so DC_Table parsed the
stored W&K format with the website's date format and threw "Invalid
date" when opening a booking. A save callback now normalises and
validates the value the same way the frontend form does.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 16:59:33 +02:00
admin.juergenandClaude Fable 5.1 cb3c3bdae7 Bookings without parent table link so editors need no calendar access
Editing a booking required read access to the calendar event because of
the ptable link. Bookings are now a standalone table (deleted together with
the event via ctable) and the README describes the group permissions
(modules, record operations, fields).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 19:34:36 +02:00
admin.juergenandClaude Fable 5.1 df38c58954 Mark all bundle DCA fields as excludable for group permissions
All editable fields of tl_wk_config, tl_wk_category, tl_wk_booking,
tl_wk_inquiry, the W&K fields of tl_calendar_events and the module
category filter can now be restricted per user group via "Erlaubte
Felder", like core tables. README documents the permission setup.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 19:22:27 +02:00
admin.juergenandClaude Fable 5.1 c976f47e9c Backend group W&K-Tools with settings module instead of calendar fields
All W&K configuration moves from tl_calendar into the new table
tl_wk_config (one entry per calendar), edited under W&K-Tools → Einstellungen.
The backend group now has separate entries for import, inbox, bookings,
inquiries, exports, categories, settings and log. Notification selects show
the notification ID.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 18:08:20 +02:00
admin.juergenandClaude Fable 5.1 efce662b4f Manage bookings in the W&K-Sync backend group instead of at the event
Bookings get their own backend module (W&K-Sync → Anmeldungen) with a
sortable, filterable list; the operation on calendar events is removed and
the calendar module no longer exposes tl_wk_booking. Inbox edit links point
to the new module.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 17:55:46 +02:00
admin.juergenandClaude Fable 5.1 142afa6e52 Initial version of the W&K sync bundle for Contao 5.7
Import of W&K seminar exports with preview, booking form via form generator
with event-dependent field rules, notification routing, inbox with folders
and CSV export for W&K.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 17:42:34 +02:00