2515a679b8
feat: add join request resource
continuous-integration/drone/push Build is passing
2026-03-09 14:44:45 +01:00
2a04fad4fe
test: add tests for join request
2026-03-09 14:06:22 +01:00
5595dc322c
docs: add join concept #308
continuous-integration/drone/push Build is passing
2026-03-09 13:28:46 +01: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
4ac56958b4
feat: keep empty cells consistent empty
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
continuous-integration/drone/push Build is failing
2026-02-26 12:37:52 +01:00
faf80bfb4b
refactor: consistend subheadings
continuous-integration/drone/push Build is failing
2026-02-26 12:10:42 +01:00
88831685fc
i18n: update translations
continuous-integration/drone/push Build is failing
2026-02-26 11:56:24 +01:00