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
...
continuous-integration/drone/push Build was killed
Reviewed-on: #457
2026-03-09 14:32:46 +01:00
Renovate Bot
bda2aba06d
Update Mix dependencies
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
...
continuous-integration/drone/push Build was killed
Reviewed-on: #396
2026-03-09 13:15:30 +01:00
4469421871
fix renovate syntax
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
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
...
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
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
...
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
...
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
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
...
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
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
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
ea350ab315
Seeds: robust default fee type lookup; no fee type overwrite on re-run
...
Bootstrap: filter default fee type by name and interval (yearly).
Dev: do not send membership_fee_type_id in member upsert; set only
via update when nil so re-runs do not overwrite existing assignments.
2026-03-04 17:11:51 +01:00
a98d921848
Seeds: scope compiler_options to seed run, restore in after
...
Remove global ignore_module_conflict from mix.exs. Set it only in
seeds.exs during eval_file and restore via try/after so crashes
do not leave the option enabled.
2026-03-04 17:11:43 +01:00
70c3ca82ea
fix(a11y): WCAG 2 AA contrast, labels and dropdown
continuous-integration/drone/push Build is passing
2026-03-04 16:21:17 +01:00
8025858060
Gettext: add translations for member index and membership fee settings
2026-03-04 16:21:17 +01:00
f9d6936274
Membership fee settings: row-click table, compact default layout
2026-03-04 16:21:17 +01:00
60d3fa74fb
Member index: rename cycle toggle, add tooltip
2026-03-04 16:21:16 +01:00
52228ca5d5
Member form: remove duplicate save button in header
2026-03-04 16:21:16 +01:00
081e44fc05
fix: add test, accidentally deleted by commit baa288bf
2026-03-04 16:21:16 +01:00
e537f4eb31
Fix Credo Design in test support and member index test
...
Add aliases in fixtures, conn_case, data_case. Use aliases
in index_test.exs. Remove empty placeholder test files.
2026-03-04 16:21:15 +01:00
7a8b069834
Fix Credo Design (AliasUsage): add aliases in lib
...
Add module aliases at top and use short names instead of
fully qualified nested modules across lib/.
2026-03-04 16:21:15 +01:00
cfc8900c5c
CI: run Credo in strict mode
...
Exclude test files from AliasUsage check in .credo.exs.
Use mix credo --strict in Justfile and .drone.yml.
2026-03-04 16:21:15 +01:00
81ce204502
Fix Credo Readability (strict)
...
- Max line length, implicit try, alias order, zero-arity defs
- String sigils, long comments split; redundant blank lines fixed
2026-03-04 16:21:14 +01:00
f0a8dfcc21
Suppress redefining module warnings via compiler_options
2026-03-04 16:21:14 +01:00
edd8657c92
Split seeds into bootstrap and dev-only
2026-03-04 16:21:14 +01:00
0b23b816fb
Merge pull request 'Adds User docu' ( #452 ) from docs/341_user_docu into main
...
continuous-integration/drone/push Build was killed
Reviewed-on: #452
2026-03-04 16:20:33 +01:00
8da2fe532e
docs: add link to user docu to readme
continuous-integration/drone/push Build is passing
2026-03-04 13:49:24 +01:00
70685874e2
Merge pull request 'chore(deps): update postgres to v18.3' ( #454 ) from renovate/postgres into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #454
2026-03-03 15:14:08 +01:00
Renovate Bot
fb77cb5aa3
chore(deps): update postgres to v18.3
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-03 14:30:48 +01:00
70d574813c
Merge pull request 'chore(deps): update renovate/renovate docker tag to v42.99' ( #455 ) from renovate/renovate-renovate-42.x into main
...
continuous-integration/drone/push Build was killed
Reviewed-on: #455
2026-03-03 14:30:05 +01:00
Renovate Bot
30b61718a7
chore(deps): update renovate/renovate docker tag to v42.99
continuous-integration/drone/push Build was killed
2026-03-03 14:29:45 +01:00
a37c2f5d13
Merge pull request 'chore(deps): update mix dependencies' ( #453 ) from renovate/mix-dependencies into main
...
continuous-integration/drone/push Build was killed
Reviewed-on: #453
2026-03-03 14:28:16 +01:00
Renovate Bot
844f5a18d1
chore(deps): update mix dependencies
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-03-03 00:04:19 +00:00
f3be6ee198
Merge pull request '[Bug] OIDC: use Application config :oidc from runtime.exs for client secret in prod' ( #456 ) from fix/oidc into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #456
2026-03-02 15:18:08 +01:00
3187d408c5
OIDC: use Application config :oidc from runtime.exs for client secret in prod
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-03-02 15:09:33 +01:00
8fac974b1b
Merge pull request 'Enhances accessibiity closes #421 ' ( #450 ) from feat/421_accessibility into main
...
continuous-integration/drone/push Build is passing
Reviewed-on: #450
2026-02-26 21:03:00 +01:00
7f15909cc6
fix tests
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-02-26 17:14:47 +01:00
e0484a0533
formatting
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is failing
2026-02-26 15:30:27 +01:00
c71c7d6ed6
fix: color contrast dark mode and keyboard moadals
2026-02-26 15:24:29 +01:00
5516c7fe62
fix: remove + from name in email field
2026-02-26 14:02:47 +01:00