fromme
3c34cfa76a
feat: offer the questionnaire for placements ended within a rolling window
2026-11-10 09:23:23 +01:00
fromme
9d0cdd7f52
chore: update inline documentation of feedback config files
2026-11-08 14:41:38 +01:00
fromme
9583612fdc
refactor: use english naming for the n8n assignments api
2026-11-07 09:33:54 +01:00
fromme
0bc77b7463
feat: expose winter placements to n8n over an api endpoint
2026-11-06 10:09:56 +01:00
fromme
4ff963d1e2
feat: let managers edit the staffing matrix
2026-11-05 17:18:26 +01:00
fromme
f9d2ff084d
feat: decide the staffing split per ski level
2026-11-05 17:04:24 +01:00
fromme
7aefe88610
chore: replace contract template pdf
2026-11-05 10:57:18 +01:00
fromme
09eea86183
chore: update project dependencies
2026-11-04 16:29:04 +01:00
fromme
ddfaa4b440
chore: streamlined naming of feedback menu items
2026-10-28 11:23:21 +01:00
fromme
d3b9b0611b
chore: update project dependencies
2026-10-28 09:19:05 +01:00
fromme
fe0c854f1d
refactor: offer the questionnaire test from the assignment overview
2026-10-27 17:37:47 +01:00
fromme
0b736b51fb
feat: calmer questionnaire form with selects and clickable answer rows
2026-10-27 17:32:41 +01:00
fromme
af97468b2d
feat: put the placement in one line above the questionnaire
2026-10-27 17:27:40 +01:00
fromme
a0170f5952
refactor: split the questionnaire into teamer and bus feedback
2026-10-27 17:22:22 +01:00
fromme
2f4f9800dd
fix: offer the questionnaire after every placement, the bus part to escorts
2026-10-27 17:12:24 +01:00
fromme
9fedc5b5d3
feat: let the office test the questionnaire on any assignment
2026-10-27 17:07:17 +01:00
fromme
a35f91ac63
feat: list and show submitted questionnaires to the office
2026-10-27 17:02:51 +01:00
fromme
890e04f8a6
feat: remind teamers of open questionnaires on the dashboard
2026-10-27 16:59:44 +01:00
fromme
5e4e574076
feat: let teamers fill in and read their questionnaire
2026-10-27 16:56:49 +01:00
fromme
2a041d25a0
feat: let the teamer fill in the questionnaire after a bus escort
2026-10-27 16:53:23 +01:00
fromme
df6734c939
feat: store questionnaire responses per disposition
2026-10-27 16:51:56 +01:00
fromme
8070fda64d
feat: build the questionnaire form from its definition
2026-10-27 16:47:38 +01:00
fromme
d06b647dac
feat: decide when a conditional questionnaire question is shown
2026-10-27 16:43:14 +01:00
fromme
a84275b40e
feat: add questionnaire definitions and their catalog
2026-10-27 16:41:46 +01:00
fromme
2ec2a4c93f
chore: fix typo in menu item
2026-10-20 17:14:41 +02:00
fromme
de4aedd26e
refactor: name the per-teamer disposition lists correctly
2026-10-20 17:14:13 +02:00
fromme and Claude Opus 5.5
5090f72fab
fix: log a called-off disposition under its own id key
...
The disposition call-off logged the disposition's id as "assignment_id" and
set the status from the Assignment constant; both now use the disposition's
own name.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-20 17:13:53 +02:00
fromme
c00dd86eb4
feat: list upcoming season assignments among a teamer's dispositions
2026-10-20 17:13:45 +02:00
fromme
300bb2058f
feat: apply season task deadlines to all open checklist entries
2026-10-20 16:52:45 +02:00
fromme
3fe510e64e
fix: render form help texts smaller and muted
2026-10-20 16:52:32 +02:00
fromme
48691227cb
chore: move menu entry to better suiting submenu
2026-10-20 16:34:12 +02:00
fromme
34ff630b75
chore: update project dependencies
2026-10-20 14:21:22 +02:00
fromme
3f806669c6
fix: show scrollbars only when an inner area overflows
2026-10-20 14:17:58 +02:00
fromme
e31f607f66
chore: declare browser targets in .browserslistrc
2026-10-20 14:05:05 +02:00
fromme
8c53676133
feat: let the remaining textareas grow with their content
2026-10-20 14:04:55 +02:00
fromme
2de985b009
chore: upgrade webpack encore from 4.7 to 7.2
2026-10-20 14:04:43 +02:00
fromme
1cda9d378a
chore: upgrade tailwind css from 3.4 to 4.3
2026-10-20 14:04:24 +02:00
fromme
9fcba26942
chore: bump node to 24 in ddev
2026-10-16 10:46:40 +02:00
fromme
13e5b6c3af
feat: boost pagination and sorting links with htmx
2026-10-16 10:39:47 +02:00
fromme
493a43d952
fix: give the empty-field test case its own data provider
2026-10-16 10:12:30 +02:00
fromme
7493afde45
chore: update project dependencies
2026-10-16 10:06:22 +02:00
fromme
d159cb212c
feat: paginate the staffing matrix preview
2026-10-16 10:05:42 +02:00
fromme
c7e0ad67e6
fix: put the guiding fee on one guide place only
2026-10-16 09:56:04 +02:00
fromme
f0ad5374e9
docs: remove the myep api consumer guide
2026-10-16 09:15:04 +02:00
fromme
96d49fc488
docs: drop code references to local plan files
2026-10-16 09:14:44 +02:00
fromme
2a554bb7bf
feat: stop keeping buspro password hash in the session
2026-10-16 09:00:00 +02:00
fromme
c16e4bf53f
feat: update profile in buspro without the teamer's password
2026-10-16 08:59:39 +02:00
fromme
18fb3382c6
feat: redirect to the deeplink after the form login
2026-10-16 08:38:05 +02:00
fromme
0e2021e96d
refactor: derive the bus escort from the travel date
2026-10-16 08:36:54 +02:00
fromme
2fc9806c69
feat: generate draft assignments from a staffing matrix
2026-10-15 18:11:51 +02:00
fromme
3116d23199
fix: refuse deleting a document assigned to a season task
2026-10-15 13:02:13 +02:00
fromme
4aa2d7a5e6
fix: keep upload files until their deletion is committed
2026-10-15 12:49:48 +02:00
fromme and Claude Opus 5.5
7e182e3d51
feat: per-disposition feedback waiver
...
The overdue-feedback lists are a live query without stored state, so a
feedback nobody will provide any more could not be written off. The new
disposition.feedback_waived flag takes a placement out of the admin and
manager dashboards, the house-manager list and the reminder mail.
Statistics still count a waived placement as a missing feedback. The
flag has no UI yet and is set by SQL.
Co-Authored-By: Claude Opus 5.5 <[email protected] >
2026-10-13 13:53:25 +02:00
fromme
c04d9e0faf
chore: update project dependencies
2026-10-13 12:53:44 +02:00
fromme
3188f5f3da
feat: additional 'add' button on top of list view
2026-10-13 12:52:28 +02:00
fromme
57781ba347
fix: teamer dashboard crashing on isContractDue() without deadline
2026-10-06 15:04:17 +02:00
fromme
849da8d471
chore: upgrade phpunit to 12.5
2026-10-01 10:07:05 +02:00
fromme
da039d0527
fix: resolve the remaining deprecations reported by phpunit
2026-10-01 10:06:59 +02:00
fromme
1446211d22
chore: bump project to php 8.5
2026-10-01 09:55:34 +02:00
fromme
838b8944a2
feat: rearranged admin menu, proper gendering
2026-10-01 08:23:06 +02:00
fromme
a4206f51eb
chore: update project dependencies
2026-09-29 15:43:21 +02:00
fromme
2329fe17a0
fix: report an unresolvable hotel instead of failing on it
2026-09-29 15:27:44 +02:00
fromme
72be779038
chore: name the current import command in the probe's docblock
2026-09-29 15:27:34 +02:00
fromme
d8ff148f86
fix: adopt changed export api url
2026-09-29 14:45:51 +02:00
fromme
db529d2dc9
refactor: slim the hotel and country base-data models
2026-09-29 13:06:20 +02:00
fromme
aa66c50979
refactor: delete the BusProNet base-data read path
2026-09-29 13:06:12 +02:00
fromme
0f76c5a7b6
feat: import destinations from the MyE&P travel export
2026-09-29 12:57:54 +02:00
fromme
5c7e702eab
fix: accept the ISO-2 country codes when authoring a destination
2026-09-29 12:47:25 +02:00
fromme
169a17e19c
chore: verify the ISO-2 country move and renumber its migration
2026-09-29 12:47:25 +02:00
fromme
6c0a512c05
fix: refuse the import while MyE&P reports no cost unit or country code
2026-09-29 11:08:04 +02:00
fromme
1505f9b50b
chore: update project dependencies
2026-09-27 18:10:15 +02:00
fromme
392e67448e
feat: order and format the pickup fields
2026-09-27 18:05:12 +02:00
fromme
8da9af46f5
chore: update project dependencies
2026-09-26 12:13:59 +02:00
fromme
ca4a73eb4f
chore: cleanup ddev config
2026-09-26 12:13:59 +02:00
fromme
1a7c272414
feat: import work hours from SaaS and exchange signed time sheet
2026-09-26 12:13:59 +02:00
fromme
7cf39850e6
feat: email recipient whitelist
2026-09-26 12:13:37 +02:00
fromme
4cab57d136
feat: additional functionality and layout adjustments for season teamers
2026-09-26 12:13:16 +02:00
fromme
80c6016da3
fix: replace only missing uploads with dummy document
2026-09-26 12:13:16 +02:00
fromme
69b8e549ee
feat: gate the upload replacement file behind a feature flag
2026-09-26 12:13:16 +02:00
fromme
77986776c2
feat: send season deadline summary to the office address
2026-09-26 12:13:16 +02:00
fromme
675cec1b69
chore: rename menu entry and view title
2026-09-26 10:32:42 +02:00
fromme
e460b18661
fix: accept the German W as a gender on the application endpoint
2026-09-26 10:25:48 +02:00
fromme
5141673bcd
chore: drop the teamer provisioning feature flag
2026-09-25 14:51:39 +02:00
fromme
b530679658
feat: provision a teamer from a received application
2026-09-25 14:36:24 +02:00
fromme
d5f4b12f0a
chore: rename local project to align with prod
2026-09-25 09:36:59 +02:00
fromme
aa728ddc99
feat: answer received form submissions by mail
2026-09-24 16:35:31 +02:00
fromme
19364df2db
feat: mark a library document for a specific purpose
2026-09-24 16:35:24 +02:00
fromme
cb2d64f2cd
feat: review received form submissions in the admin ui
2026-09-24 16:35:18 +02:00
fromme
f073a2014d
fix: keep the log processors working on a stateless firewall
2026-09-24 16:35:12 +02:00
fromme
30ad5e8488
feat: accept form submissions from the websites over an API endpoint
2026-09-24 16:35:06 +02:00
fromme
f48e53fdd0
fix: verify the oauth2 state before the error parameter
2026-09-23 17:48:24 +02:00
fromme
3f4586ce06
feat: harden the myep oauth2 client
2026-09-23 16:06:25 +02:00
fromme and Claude Opus 5
2a8649fc6d
chore: run MariaDB 11.8 in ddev to match production
...
Development ran MySQL 8.4 while production runs MariaDB, so nothing engine-specific
was ever exercised on the engine it ships on.
DATABASE_URL carries serverVersion=mariadb-* now, which is what makes DBAL pick its
MariaDB platform. This matters most for the test environment: it reads DATABASE_URL
from the committed .env and not from .env.dev.local, so a MySQL version there had the
suite running on MySQL84Platform against a MariaDB server - and schema:validate
reporting every nullable and every json column as drift. With the platform right, a
db_test built from the mapping is in sync.
The post-start hooks create db_test and grant the db user, which ddev does not do on
its own, and sync the schema from the entity mapping. Without them the first test run
after a fresh start fails on the missing database.
The remaining changes in config.yaml are ddev's own regeneration of the commented
reference section.
Co-Authored-By: Claude Opus 5 <[email protected] >
2026-09-23 09:02:56 +02:00
fromme
161cfb9e62
chore: exclude secrets file from repository
2026-09-23 08:06:45 +02:00
fromme
eac125517f
fix: use a SortDirection instance for the availabilities ordering
2026-09-21 12:20:55 +02:00
fromme
af46c57bd1
feat: normalize email addresses to lowercase on write
2026-09-21 12:20:55 +02:00
fromme
d6327f033e
fix: stagger cron triggered tasks between prod and staging
2026-09-20 13:32:48 +02:00
fromme
752db081b3
chore: update project dependencies
2026-09-20 13:32:23 +02:00
fromme
518f3a46d0
test: adopt the ROLE_TEAM_ADMIN label rename
2026-09-19 11:36:23 +02:00
fromme
a05143bfbe
fix: make BusProNet response failures diagnosable and non-fatal
2026-09-19 11:36:14 +02:00