Commit graph

1500 commits

Author SHA1 Message Date
bb1a80ad08
seeds: distribute fee types at create, add exit dates for 5 members
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-10 20:17:29 +01:00
f430762555
test: re-enable profile avatar test for first letter of email 2026-03-10 20:17:28 +01:00
137dca523a
test: remove skipped linked-member full-router integration tests 2026-03-10 20:17:28 +01:00
b04d59e3c4
test: remove placeholder test for non-existent member IDs 2026-03-10 20:17:27 +01:00
c264ce122d
test: remove skipped custom field slug lookup test 2026-03-10 20:17:27 +01:00
7686b63d7f
fix: use WCAG AA warning text class for Vereinfacht notice 2026-03-10 20:17:26 +01:00
a9c61f703d
fix: resolve Mix.env at compile time in Vereinfacht client
Mix.env() is not available in production releases. Use module
attribute so it is only evaluated at compile time.
2026-03-10 20:17:26 +01:00
697673ffb6 Merge pull request 'add join form settings' (#465) from feature/308-web-form into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #465
2026-03-10 17:02:37 +01:00
21812542ad
refactor: address review comments for join request settings
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-10 16:47:38 +01:00
05e2a298fe
feat: add accessible drag&drop table component
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-10 15:40:28 +01:00
fa738aae88
feat: add join form settings
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-10 14:29:49 +01:00
b7a83d9298
test: add tests for join form settings 2026-03-10 12:18:36 +01:00
dbd7afbaf4 Merge pull request 'add join request resource' (#463) from feature/308-web-form into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #463
2026-03-10 10:11:52 +01:00
5deb102e45
refactor: adress review comments
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-09 18:54:40 +01:00
0614592674
Merge remote-tracking branch 'origin/main' into feature/308-web-form
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-09 18:18:16 +01:00
6385fbc831
feat: add join confirmation and mail templating
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-09 18:15:12 +01:00
3672ef0d03
test: add tests for join mail confirmation
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-09 17:02:30 +01:00
0da030ecb7 Merge pull request 'Fix translations' (#464) from fix/translations into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #464
2026-03-09 16:45:37 +01:00
f601550526 fix translations
Some checks reported errors
continuous-integration/drone/push Build was killed
2026-03-09 16:45:14 +01:00
ad6ef169ac
Merge remote-tracking branch 'origin/main' into feature/308-web-form
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-03-09 15:40:02 +01:00
a41d8498ac
refactor: apply review changes to joinrequest
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-09 15:36:19 +01:00
085f61d10d Merge pull request 'Fix seeds to run in production' (#462) from fix/seeds into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #462
2026-03-09 15:25:05 +01:00
d032f1ca0c
Run bootstrap seeds in production; add RUN_DEV_SEEDS support
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-09 15:16:02 +01:00
a3e986ae58 Merge pull request 'feat: Add member fee type filter to member list' (#461) from feat/feetype_filter into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #461
2026-03-09 14:45:47 +01:00
2515a679b8
feat: add join request resource
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-09 14:44:45 +01:00
8da22b3d88 Apply review feedback and fix Credo in fee type filter
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
- Index: use FilterParams and constants; fix parse recursion; validate fee type/group
  IDs; OR semantics for :in; build_query_params/reset_all_filters map-based API;
  alias order (Credo); Map.take list deprecation fix
- MemberFilterComponent: use FilterParams and constants; fee_type_filter_part
  helper (Credo nesting); in_not_in_filter_label_class; reset_all_filters map;
  button label for :not_in and combined filter count; fieldset borders
- Gettext: Fee types, filter count plural, 'without %{name}' (en/de)
2026-03-09 14:33:58 +01:00
ae07e3efc2 Add filter prefix constants and shared FilterParams module
- Mv.Constants: group_filter_prefix/0, fee_type_filter_prefix/0
- MvWeb.MemberLive.Index.FilterParams: parse_in_not_in_value/1 for URL param parsing
2026-03-09 14:33:58 +01:00
3af52f2829 Update gettext: extract and merge after fee type filter strings 2026-03-09 14:33:58 +01:00
a8f12d1c91 Add member fee type filter to member list
- Filter by membership fee type in same style as groups (All/Yes/No per type)
- Index: load fee types, fee_type_filters, URL params, apply_fee_type_filters
- MemberFilterComponent: fee types section, events, reset, button label
- Refactor update_filters: extract parse/dispatch helpers to satisfy Credo complexity
2026-03-09 14:33:58 +01:00
312ec19deb Merge pull request 'Update Mix dependencies' (#457) from renovate/mix-dependencies into main
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #457
2026-03-09 14:32:46 +01:00
2a04fad4fe
test: add tests for join request 2026-03-09 14:06:22 +01:00
5595dc322c
docs: add join concept #308
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-09 13:28:46 +01:00
Renovate Bot
bda2aba06d Update Mix dependencies
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-09 13:16:00 +01:00
69a978de0f Merge pull request 'Update renovate/renovate Docker tag to v43' (#396) from renovate/renovate-renovate-43.x into main
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #396
2026-03-09 13:15:30 +01:00
4469421871
fix renovate syntax
Some checks reported errors
continuous-integration/drone/push Build was killed
2026-03-09 13:14:38 +01:00
Renovate Bot
419b64270c Update renovate/renovate Docker tag to v43
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-07 00:04:57 +00:00
b4d780e04d Merge pull request 'Fix filtered CSV Export closes #451' (#460) from fix/export into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #460
2026-03-04 21:16:22 +01:00
fc7b035123
CSV export: robust apply_export_filters, single custom_field_ids_union, string boolean_filters, more tests
Some checks reported errors
continuous-integration/drone/push Build was killed
2026-03-04 21:15:54 +01:00
d71d5881cf
CSV export: apply cycle_status_filter and boolean_filters when exporting all 2026-03-04 21:15:54 +01:00
d914f5aa22 Merge pull request 'Vereinfacht API: filter-based contact lookup, no extra required fields, country sync, and docs' (#459) from feat/vereinfacht_api into main
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #459
2026-03-04 21:15:06 +01:00
01b9ebd74b
Vereinfacht client: email normalization, multi-match warning, Bypass tests, doc note
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
- Normalize email (trim + downcase) before filter lookup
- Log warning when API returns multiple contacts for same email
- Add Bypass tests for find_contact_by_email (query params, empty/single response parsing)
- Document vereinfacht_required_field? as legacy/unused in vereinfacht-api.md
- Add bypass dependency (dev+test) for HTTP stubbing
2026-03-04 20:55:59 +01:00
9f169b9835
Vereinfacht: sync country with finance contact API
All checks were successful
continuous-integration/drone/push Build is passing
2026-03-04 20:21:51 +01:00
fbc3fc2a4d
Docs: Vereinfacht API integration and guidelines
- CODE_GUIDELINES: add vereinfacht/ to project structure, required-fields note, link to vereinfacht-api
- docs/vereinfacht-api.md: filter API, minimal create payload, no extra required fields
- feature-roadmap: member-contact sync implemented, link to doc
2026-03-04 20:21:51 +01:00
0ac39c646f
Remove Vereinfacht-required logic from settings and member validation
- Member field settings: required only from email + settings (no API override)
- Member resource validation: required fields from settings only
- Gettext: remove obsolete 'Required for Vereinfacht integration' string
2026-03-04 20:21:51 +01:00
96ca857e06
Vereinfacht API: use filter for contact lookup, drop extra required fields
- find_contact_by_email uses GET with filter[isExternal]=true and filter[email]
- vereinfacht_required_member_fields is now empty (API accepts minimal payload)
2026-03-04 20:21:50 +01:00
23e1afa994 Merge pull request 'Seeds split, Credo strict, and member/settings UI polish' (#458) from feat/seeds into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #458
2026-03-04 20:19:49 +01:00
e4ddaf0dc3
fix test: add for="csv_file" to CSV file label
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-04 20:14:13 +01:00
5bd803a4b4
A11y: dark mode contrast, sign-in landmark/h1, Banner link discernibility
Some checks failed
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is failing
2026-03-04 19:39:19 +01:00
6987733707
MembersPDF test: async false and try/after to avoid flakiness
Tests that remove the template file run sequentially; restore
template in after block so it is restored even when assertion fails.
2026-03-04 17:12:01 +01:00
1ce9915c7d
Member/CycleGenerator: better delete_cycles errors; UUID-based advisory lock
delete_cycles returns first error for debugging. Advisory lock key
derived from member id (first 8 bytes of UUID hex) to reduce
phash2 collision risk; fallback to phash2 on invalid UUID.
2026-03-04 17:11:56 +01:00