Commit graph

1707 commits

Author SHA1 Message Date
8e5dd7e4c6 feat(web): add chevron affordance and scope-badge slot to dropdown triggers
Dropdown openers were visually indistinguishable from ordinary buttons. A
trailing chevron now marks every dropdown trigger — both the shared
dropdown_menu component and the bespoke member-filter trigger — and an
optional badge slot lets a trigger show a status indicator beside its label.
2026-06-04 16:40:05 +02:00
397ec69ed3 Merge pull request 'add landingURL for openCode' (#523) from issue/opencode-landingurl into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #523
2026-06-04 16:35:15 +02:00
065ecdfb2c docs(opencode): add landingURL to publiccode.yml
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-04 16:18:24 +02:00
f3e1eeaec5 Merge pull request 'chore(deps): update mix dependencies to v1 (major)' (#488) from renovate/major-mix-dependencies into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #488
2026-06-04 16:17:02 +02:00
7f3b610937
chore: update mix.lock
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-04 15:45:00 +02:00
8cdbd63b09
Merge remote-tracking branch 'origin/main' into renovate/major-mix-dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-04 15:34:04 +02:00
3b21e45322 Merge pull request 'chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.35.2' (#498) from renovate/ghcr.io-sebadob-rauthy-0.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #498
2026-06-04 15:29:58 +02:00
c158454123 Merge pull request 'chore(deps): update postgres docker tag to v18.4' (#518) from renovate/postgres into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #518
2026-06-04 15:29:45 +02:00
cb82b64b55 Merge pull request 'chore(deps): update dependency just to v1.51.0' (#499) from renovate/asdf-tool-versions into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #499
2026-06-04 15:29:28 +02:00
c78d6dbe7f Merge pull request 'Mila on OpenCode: publiccode.yml, logo & screenshots' (#522) from issue/mila-on-opencode-515 into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #522
2026-06-04 15:26:45 +02:00
ff1aa3e56a
fix: removed linux as platform from publiccode.yml
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-04 15:21:39 +02:00
defce80ece docs(opencode): add publiccode.yml, logo and screenshots for software directory
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-04 15:00:31 +02:00
ef21e0ada3 Merge pull request 'Improve Join description handling for GDPR/DSGVO' (#521) from issue/mitgliederverwaltung-508 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #521
2026-06-04 13:02:39 +02:00
6500dead95
Merge remote-tracking branch 'origin/main' into issue/mitgliederverwaltung-508
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/promote/production Build is passing
2026-06-04 09:53:27 +02:00
03bc895ab1 Merge pull request 'fix path for asdf' (#520) from fix-path into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #520
2026-06-04 09:45:46 +02:00
f9495f557a
chore: prepend asdf paths
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-04 09:06:03 +02:00
Renovate Bot
7a0dff926a chore(deps): update mix dependencies
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is passing
2026-06-04 00:06:08 +00:00
36ca305299 docs(changelog): record GDPR/DSGVO join-form description under Unreleased
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-03 12:32:48 +02:00
1f52350562 feat(seeds): shorten the GDPR field to "DSGVO" and seed its join_description 2026-06-03 12:32:15 +02:00
404d524ee1 feat(custom-field): let admins set join_description with a link-syntax hint 2026-06-03 12:28:23 +02:00
df271055a8 feat(member): show join_description as a tooltip on custom-field labels 2026-06-03 12:22:58 +02:00
ee5ccbf7e9 feat(join): highlight auto-linked join-form links 2026-06-03 12:16:53 +02:00
aced57d0fd feat(join): use join_description as the join-form field label 2026-06-03 12:11:39 +02:00
cb5cb68483 feat(join): render join_description with auto-linked URLs and Markdown links 2026-06-03 12:06:48 +02:00
b6c2cf58b1 feat(custom-field): add join_description attribute for GDPR join-form labels 2026-06-03 12:01:41 +02:00
1b671ea41a Merge pull request 'Minor CSV import improvements closes #509' (#519) from issue/mitgliederverwaltung-509 into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #519
2026-06-03 03:02:09 +02:00
2bc5fcec5a docs(changelog): record CSV import improvements under Unreleased
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/promote/production Build is passing
2026-06-03 02:37:46 +02:00
45c9b81983 fix(import): collapse duplicate fee-type warnings into a bounded list 2026-06-03 02:37:12 +02:00
118b9f8d57 perf(import): reuse auto-created groups across import chunks 2026-06-03 02:32:15 +02:00
68a1a9530a feat(import): confirm column mapping in a preview before importing members 2026-06-03 02:25:50 +02:00
a93dd9d535 feat(import): serve dynamic CSV import templates reflecting current custom fields 2026-06-03 02:21:36 +02:00
00e1624ee4 feat(import): assign groups and fee types to imported members, creating missing groups 2026-06-03 02:15:54 +02:00
a4a34cab3a feat(import): resolve import group and fee-type names against existing records 2026-06-03 02:10:33 +02:00
Renovate Bot
8429fb2b9c chore(deps): update mix dependencies to v1
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-03 00:06:45 +00:00
Renovate Bot
aaffd7b91c chore(deps): update postgres docker tag to v18.4
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-03 00:06:34 +00:00
95c7bf7a15 feat(import): recognize group and fee-type columns and always ignore fee-status 2026-06-03 02:01:09 +02:00
5c5fd56749 fix(export): emit date custom-field values as ISO-8601 for re-import 2026-06-03 01:54:49 +02:00
d51dcb1ac3 chore(ci): make test workflow faster with test --stale
All checks were successful
continuous-integration/drone/push Build is passing
2026-06-02 23:35:39 +02:00
1ef6ea502e Merge pull request 'Add dialyzer and resolve all findings closes #503 #504 #514' (#516) from issue/mitgliederverwaltung-514 into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #516
2026-06-02 13:15:00 +02:00
9a14cedc14 fix(repo): define all_tenants/0 as empty for non-multitenant schema
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
2026-06-02 12:26:35 +02:00
b5756d8e00 refactor(vereinfacht): gate retry skipping on runtime sandbox flag
The compile-time Mix.env() comparison folded to an always-false literal under analysis. sql_sandbox?/0 reads runtime config (true only in test) and works in releases where Mix is unavailable, preserving the fast-fail-no-retry behavior in tests.
2026-06-02 12:23:04 +02:00
a7ad608051 fix(auth): redirect a live-view socket in the user-required guard
LiveSession.assign_new_resources/2 is typed to return a Phoenix.Socket, which made the on_mount redirect type-incompatible. The authenticated-routes live_session already assigns current_user, so the guard reads it from socket.assigns directly. Also assign the locale into the socket actually used by the no-user redirect instead of discarding it.
2026-06-02 12:19:21 +02:00
6a4a99f638 refactor(types): drop guards and clauses that can never succeed 2026-06-02 12:11:59 +02:00
ec6422d450 fix(membership-fees): show error for unparseable cycle date instead of crashing
Date.from_iso8601/1 returns {:error, reason}, so the with else clause matching a bare :error never fired and an invalid date raised a WithClauseError. Match the real date/calendar error reasons so the user sees the validation message.
2026-06-02 12:08:19 +02:00
2db467d5d1 fix(pdf-export): match DateTime.from_iso8601 three-tuple when formatting cells
DateTime.from_iso8601/1 returns {:ok, datetime, offset}, so the two-tuple clauses never matched and datetime cells fell through to the naive-parse fallback. Matching the real shape routes them through the intended DateTime path; UTC values render identically.
2026-06-02 12:04:37 +02:00
c41d24113f fix(import): return readable string for unreadable upload errors
File.read/1 only yields posix atoms, so the File.Error and bare-reason branches were unreachable, and :file.format_error/1 returns a charlist rather than a String. Normalize the error to a binary so it interpolates correctly in flash messages.
2026-06-02 12:00:38 +02:00
05f66ccf74 refactor(types): remove dead catch-all clauses unreachable per success typing 2026-06-02 11:56:44 +02:00
d9a5a081df refactor(import): drop unreachable CSV error-formatting path
consume_and_read_csv/2 and MemberCSV.prepare/2 only ever return {:error, binary()}, so the non-binary error branch and the format_error_message/* helpers it called were unreachable. Removed them and bound the remaining discarded locale/dispatch results.
2026-06-02 11:50:43 +02:00
c0395f16e8 fix(types): resolve unknown type references in member and authorization specs 2026-06-02 11:46:54 +02:00
848f0cd013 refactor(types): bind intentionally discarded side-effecting results 2026-06-02 11:42:57 +02:00