Commit graph

1510 commits

Author SHA1 Message Date
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
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
All checks were successful
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
Some checks reported errors
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
All checks were successful
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
All checks were successful
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
Some checks reported errors
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
Some checks reported errors
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
Some checks reported errors
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
Some checks reported errors
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
All checks were successful
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
All checks were successful
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
Some checks reported errors
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
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #450
2026-02-26 21:03:00 +01:00
7f15909cc6 fix tests
All checks were successful
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
Some checks failed
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
4ac56958b4 feat: keep empty cells consistent empty
All checks were successful
continuous-integration/drone/push Build is passing
2026-02-26 13:37:35 +01:00
9751525a0c fix: datafield edit view was shown alongside othe relements
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-26 12:37:52 +01:00
faf80bfb4b refactor: consistend subheadings
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-26 12:10:42 +01:00
88831685fc i18n: update translations
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-26 11:56:24 +01:00
2c49018ab7 feat: improve color contrast 2026-02-26 11:54:24 +01:00
e422e5f4ef feat: consistent and accessible modal on delete
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-26 11:17:21 +01:00
2922a4d1ee feat: adds keyboard accessibility to tabs 2026-02-26 10:37:57 +01:00
615b4b866b style: fix tab in edit mode 2026-02-26 09:42:10 +01:00
cde6a68591 fix merge format issue 2026-02-26 09:35:09 +01:00
73382c2c3f Merge branch 'main' into feat/421_accessibility
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-26 08:49:55 +01:00
d0b8cb672a style: consistent badges with sufficient color contrast 2026-02-26 08:33:52 +01:00