12 Commits
Author SHA1 Message Date
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 07f7b4828a Describe the backend style sheet registration in the README
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 20:21:28 +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 27375e8d66 Support Contao 6
- Allow contao/core-bundle and calendar-bundle ^6.0 and Symfony 8
- Return the category columns as RecordLabel under Contao 6, where
  callback strings are encoded as text
- Only undo the double-escaped navigation tooltips where
  BackendUser::navigation() still exists (Contao 5)
- Decode stored entities in the W&K CSV export (Contao 5 stores input
  encoded)
- Use #[Target] for the named Contao logger aliases (Symfony 8.1
  deprecation); document Contao 6 in the README

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 13:07:17 +02:00
Jürgen MummertandClaude Fable 5.1 8aebfcd28d Housekeeping from the code review
Adds wk-sync:purge to remove old files under var/wk-sync (purge() was
never reachable), makes stored file names unique within a second,
excludes widgets from service autowiring, removes unused repository
methods, and adds a planner test covering re-imports with and without
member groups.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 18:56:59 +02:00
Jürgen MummertandClaude Fable 5.1 a96eed690a Bring the README up to date with the setup check and settings form
Documents the setup check legend, the explained notification matrix and
the missing-notification notice, that wk-sync:form:create creates a new
form on every call and only the selected form counts, the member group
behaviour on re-import, the birthday format, export file naming, MySQL 8
support and the reusable backend explanation widget.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-26 18:05:21 +02:00
admin.juergenandClaude Fable 5.1 08aa204ef9 Name the group field for record operations correctly in the README
Contao 5.7 calls it "Tabellenrechte" (create/update/delete per table).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-24 19:40:30 +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