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
...
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
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
...
continuous-integration/drone/push Build is passing
Reviewed-on: #488
2026-06-04 16:17:02 +02:00
7f3b610937
chore: update mix.lock
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
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
...
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
...
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
...
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
...
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
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
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
...
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
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
...
continuous-integration/drone/push Build is failing
Reviewed-on: #520
2026-06-04 09:45:46 +02:00
f9495f557a
chore: prepend asdf paths
continuous-integration/drone/push Build is passing
2026-06-04 09:06:03 +02:00
Renovate Bot
7a0dff926a
chore(deps): update mix dependencies
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
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
...
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
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
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
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
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
...
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
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