adb44241d9
Add migration: oidc_only boolean to settings table
2026-02-24 15:12:45 +01:00
62b37b9aa2
feat: Datafields page, merge fee types into membership_fee_settings, sidebar
...
- Add /admin/datafields (DatafieldsLive) for member and custom field config
- Remove Memberdata block from GlobalSettingsLive
- Router: drop /membership_fee_types, add new_fee_type and edit_fee_type under membership_fee_settings
- MembershipFeeSettingsLive: fee types table, collapsible examples; Index links updated
- PagePaths: admin_datafields, admin_import; remove membership_fee_types
- Sidebar: order and labels (Basic settings, Datafields, Membership fee settings, Import, Users, Roles)
- Gettext: German translations for sidebar and OIDC
- Tests: datafields and fee routes, permission and form tests updated
2026-02-24 13:58:38 +01:00
8edbbac95f
feat: OIDC configuration in global Settings (ENV or DB)
...
- Add oidc_* attributes to Setting, migration and Config helpers
- Secrets and OidcRoleSyncConfig read from Config (ENV overrides DB)
- GlobalSettingsLive: OIDC section with disabled fields when ENV set
- OIDC role sync tests use DataCase for DB access
2026-02-24 13:58:24 +01:00
f29bbb02a2
feat: add Vereinfacht connection test button to settings
2026-02-24 13:09:34 +01:00
623543b7bd
fix: add missing postal_code in seeds
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
postal_code is a Vereinfacht-required field. When Vereinfacht is
configured, seeds failed for members without postal_code.
2026-02-24 12:06:56 +01:00
d95d4dc737
Fix gettext msgid for OIDC sign-in button after strategy rename
...
continuous-integration/drone/push Build is passing
Phoenix.Naming.humanize(:oidc) = "Oidc", so the generated msgid is
"Sign in with Oidc" (previously "Sign in with Rauthy" for :rauthy).
Update all .po/.pot files so the "Single Sign On" translation matches.
2026-02-24 11:51:01 +01:00
97fcae3e9d
Translate "Sign in with Rauthy" to "Single Sign On" via Gettext
...
Add manual msgid/msgstr entries in auth.po (de + en) and auth.pot for the
dynamically interpolated OAuth2 sign-in button label.
2026-02-24 11:50:59 +01:00
d5df2338a7
test: export and PDF regression for Fee Type without start_date
...
continuous-integration/drone/push Build is passing
Add test for CSV export with only first_name and membership_fee_type.
Add test for PDF export with same field set (status and content-type).
2026-02-24 09:30:15 +01:00
b7ef69813b
feat(members): add Fee Type label and gettext strings
...
MemberFields.label(:membership_fee_type), DE: Beitragsart.
2026-02-23 23:54:59 +01:00
717b8f5676
UpdateSingleMemberField: error attribution, updated_at, snapshot newline
...
Attach errors to :field, :show_in_overview, :member_field_required.
Set updated_at in SQL UPDATE. Add trailing newline to snapshot JSON.
2026-02-23 22:50:51 +01:00
8933ad9d14
Member field settings: required checkbox, line break, toggle fix
...
Index/Form use member_field_required; Required disabled for email and
Vereinfacht-required fields with tooltip. Rebuild form with to_form
on validate to fix checkbox toggle. Add mt-4 block before Required.
2026-02-23 22:13:31 +01:00
c86781c32b
Setting: add member_field_required and update_single_member_field
...
Add JSONB attribute member_field_required, migration, Change and
Membership code interface for atomic per-field required flag.
2026-02-23 22:13:08 +01:00
0f20e459e9
Gettext: Vereinfacht strings in du-form (i18n guidelines)
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-23 20:49:38 +01:00
68e6c74a67
Gettext: add DE translations for Vereinfacht receipts and app URL
2026-02-23 19:54:44 +01:00
9d3c72acff
Add Vereinfacht app URL setting and contact view URL
...
- Setting attribute vereinfacht_app_url, migration, .env.example
- Config: vereinfacht_app_url() from env/setting or derived from API URL
- Contact view URL uses app URL with /en/admin/finances/contacts/{id}
- Global settings: App URL field, read-only when VEREINFACHT_APP_URL set
- Tests: update contact view URL expectations
2026-02-23 19:54:43 +01:00
7db609deec
Gettext: translate Vereinfacht API validation messages to German
2026-02-23 19:54:42 +01:00
c33199465c
Gettext: new Vereinfacht UI strings and German translations
...
(set), Leave blank to keep current, env hint; DE msgstr added.
2026-02-23 19:54:42 +01:00
a23f999eee
fix(a11y): WCAG 2 AA contrast and keyboard access
2026-02-23 19:54:36 +01:00
c46365576d
feat(vereinfacht): gettext and German translations
...
- POT/PO: Vereinfacht UI and API error message strings
2026-02-23 19:53:17 +01:00
a5a4d66655
feat(vereinfacht): add DB schema, config and setting attributes
...
- Migrations: vereinfacht_contact_id on members, vereinfacht_* on settings
- Mv.Config: Vereinfacht ENV/Settings helpers, vereinfacht_configured?, contact_view_url
- Setting: vereinfacht_api_url, api_key, club_id
2026-02-23 19:51:31 +01:00
be9d12f181
Merge pull request 'finalize groups' ( #437 ) from feature/finalize-groups into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #437
2026-02-23 17:27:48 +01:00
01d901a61d
Merge branch 'main' into feature/428_export_groups
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-23 16:11:13 +01:00
8430069b45
chore: add dev db seeds for groups
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-20 17:16:29 +01:00
83b104ecf3
refactor: when adding group members, search in-memory on typing
2026-02-20 15:56:12 +01:00
dbdac5870a
fix: adds shoe/hide for group column
2026-02-20 08:45:21 +01:00
2315f2588f
Merge branch 'main' into bug/289_rauthy_error_message
continuous-integration/drone/push Build is failing
2026-02-19 10:02:30 +01:00
e47e266570
feat: type not editable
2026-02-18 16:42:54 +01:00
84f97c12f8
Merge branch 'main' into feature/groups-search-integration
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production Build is failing
2026-02-18 13:06:26 +01:00
63b8e70e62
fix: adress review comments
continuous-integration/drone/push Build is failing
2026-02-18 13:05:31 +01:00
ac13a39e7c
Merge branch 'main' into bug/289_rauthy_error_message
continuous-integration/drone/push Build is passing
2026-02-18 12:53:48 +01:00
002d723d0e
fix: tests and flash layout
2026-02-18 12:53:25 +01:00
f6575319f7
feat: add groups to search vector
...
continuous-integration/drone/push Build was killed
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 12:47:23 +01:00
a25263b721
fix: adds user friendly flas message
2026-02-17 19:29:49 +01:00
b18f895939
chore: rename ImportExport module to Import
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-17 18:59:18 +01:00
49bd2eee0b
i18n: update translations
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-17 17:59:30 +01:00
911f308a67
fix: address review comments
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production Build is passing
2026-02-17 15:30:23 +01:00
b1a9eb8b1d
feat: add groups to member detail view #374
continuous-integration/drone/push Build is passing
2026-02-17 14:15:43 +01:00
6831ba046f
Merge remote-tracking branch 'origin/main' into feature/member-overview-groups
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-16 15:57:57 +01:00
5fd7c0e7f6
feat: improve groups fillter
continuous-integration/drone/push Build is failing
2026-02-13 17:45:51 +01:00
22458cd52b
Merge branch 'main' into feature/286_export_pdf
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-13 17:40:39 +01:00
3d53bd0247
i18n: add translation
continuous-integration/drone/push Build is failing
2026-02-13 17:27:02 +01:00
baa288bff3
refactor
2026-02-13 17:21:14 +01:00
7828fc729f
Gettext: add DE translation for Fee types could not be loaded
2026-02-12 19:35:48 +01:00
98af2b77ee
Add German translations for statistics page
2026-02-12 19:35:48 +01:00
6fd9d00327
Update gettext: extract and add DE/EN for statistics strings
2026-02-12 19:35:48 +01:00
a263cb4954
Pass actor through CycleGenerator so seeds can use admin
...
- get_actor(opts): use opts[:actor] or system actor
- load_member, do_generate_cycles, create_cycles pass opts
- Seeds pass admin_user_with_role for Ash.load! and cycle updates
2026-02-12 19:35:48 +01:00
2f8a6a2768
Merge remote-tracking branch 'origin/main' into feature/ui-for-adding-members-groups
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production Build is passing
2026-02-12 15:16:35 +01:00
900f322422
fix: pr comments
continuous-integration/drone/push Build is passing
2026-02-12 15:08:40 +01:00
4fb5b12ea7
chore: adds liberation fonts
2026-02-11 15:26:19 +01:00
f6b35f03a5
feat: adds pdf export with imprintor
continuous-integration/drone/push Build is failing
2026-02-11 11:47:26 +01:00