672b4a8250
Merge branch 'main' into feature/filter-boolean-custom-fields
continuous-integration/drone/push Build is failing
2026-01-23 14:41:48 +01:00
20c96123e1
fix: failing test
continuous-integration/drone/push Build is failing
2026-01-23 14:33:54 +01:00
1d46fd1baf
feat: improve filter performance by reducing Ash.read! calls
continuous-integration/drone/push Build is failing
2026-01-23 14:22:57 +01:00
b4657cae23
fix: resolve pr remarks
2026-01-23 14:00:18 +01:00
47c938cc50
Centralize role preloading in global LiveView on_mount
...
Add ensure_user_role_loaded to global live_view quote block.
Remove redundant on_mount calls from individual LiveViews.
2026-01-22 21:36:15 +01:00
b0ddf99117
Add admin authorization check for regenerate cycles button
...
Restrict UI access to cycle regeneration to administrators only
to prevent policy bypass via user interface
2026-01-21 08:02:38 +01:00
f996aee6b2
feat: add new filter component to members view
continuous-integration/drone/push Build is passing
2026-01-21 00:47:01 +01:00
c64b74588f
Use system actor for cycle generation
...
Update cycle generator, member hooks, and job to use system actor.
Remove actor parameters as cycle generation is a mandatory side effect.
2026-01-20 22:09:20 +01:00
1011b94acf
feat: load boolean custom fields
continuous-integration/drone/push Build is passing
2026-01-20 19:12:13 +01:00
fbf3b64192
refactor: fix credo issues
continuous-integration/drone/push Build is passing
2026-01-20 18:34:17 +01:00
01dea8bb8b
Merge branch 'main' into feature/filter-boolean-custom-fields
continuous-integration/drone/push Build is failing
2026-01-20 18:13:20 +01:00
ff8b29cffe
feat: implement filter logic for boolean ustom fields
continuous-integration/drone/push Build is failing
2026-01-20 18:08:41 +01:00
433f008af8
refactor: Reduce function complexity and nesting depth
...
- Extract helper functions from process_chunk to reduce nesting
- Extract format_error_message from extract_changeset_error
- Split extract_error_message into smaller functions to reduce complexity
- Fixes Credo refactoring opportunities
2026-01-20 16:05:32 +01:00
0abcf540bb
refactor: Replace length/1 with empty list comparison
...
Replace expensive length/1 calls with direct list comparison
to fix Credo warnings about performance
2026-01-20 15:58:15 +01:00
37e1553a02
feat: add custom boolean field state & URL-Parameter
2026-01-20 15:55:08 +01:00
9c2cff6307
docs: Update domain Public API documentation
2026-01-20 15:50:08 +01:00
b380f63cf6
chore: update docs
2026-01-20 14:31:13 +01:00
d9b659e5ea
fix: linting + tests
2026-01-19 14:09:19 +01:00
584442076e
fix: add error message to form
2026-01-19 12:47:17 +01:00
b103ae3a5f
i18n: Update English translations
continuous-integration/drone/push Build is passing
2026-01-13 16:30:32 +01:00
a22081f288
refactor: Replace bang calls with error handling in Index LiveViews
...
- Replace Ash.get!/Ash.destroy! with Ash.get/Ash.destroy
- Add case statements for Forbidden, NotFound, and generic errors
- Display user-friendly flash messages for all error cases
- Use Enum.map_join/3 for efficient error formatting
2026-01-13 15:17:07 +01:00
77ae5c4888
refactor: Use submit_form wrapper in all LiveView forms
...
- Replace AshPhoenix.Form.submit with submit_form/3 wrapper
- Import current_actor and submit_form from LiveHelpers
- Consistent actor handling in all form submissions
2026-01-13 15:17:06 +01:00
351eac4c02
Fix error handling and actor access in MemberLive.Index
...
Replace bang calls with proper error handling and use current_actor/1
helper for consistent actor access.
2026-01-13 15:17:05 +01:00
cd7e6b0843
Use current_actor/1 helper in all LiveViews
...
Replace inconsistent actor access patterns with current_actor/1 helper
and ensure actor is passed to all Ash operations for proper authorization.
2026-01-13 15:16:00 +01:00
075a06ba6f
Refactor test setup: use global setup and fix MembershipFees domain alias
...
- Remove redundant setup blocks from member_live tests
- Add build_unauthenticated_conn helper for AuthController tests
- Add global setup in conn_case.ex
2026-01-13 15:15:56 +01:00
bc87893134
Integrate Member policies in LiveViews
...
- Add on_mount hook to ensure user role is loaded in all Member LiveViews
- Pass actor parameter to all Ash operations (read, get, create, update, destroy, load)
2026-01-13 15:12:24 +01:00
35895ac7fd
fix tests
continuous-integration/drone/push Build is failing
2026-01-13 10:48:44 +01:00
47c46eaebf
i18n: update translations
2026-01-08 11:40:04 +01:00
30c43271ea
refactor: remove code duplication using helper modules
2026-01-08 11:37:07 +01:00
36776f8e28
fix tests and linting
2026-01-07 18:11:36 +01:00
38d106a69e
fix: exit date as default hidden column
2026-01-07 12:14:41 +01:00
a5a1cb7fdd
style: remove display name helper in member overview for UX
continuous-integration/drone/push Build is failing
2026-01-07 09:55:06 +01:00
9f97515d74
chore: movs display name helper to won helper module
2026-01-07 09:54:37 +01:00
e1211fcf0f
fix linting
continuous-integration/drone/push Build is passing
2026-01-07 09:05:51 +01:00
b59a4ef61a
feat: adds email as fallback for name in member details
continuous-integration/drone/push Build is failing
2026-01-06 16:43:13 +01:00
dc8271451d
feat: adapt UI
2026-01-02 16:20:23 +01:00
08f563a412
Merge branch 'main' into bugfix/274_required_custom_fields
continuous-integration/drone/push Build is failing
2026-01-02 13:47:24 +01:00
0df5d1c0b9
Merge branch 'main' into feature/280_membership_fee_ui
continuous-integration/drone/push Build is passing
2025-12-26 23:14:10 +01:00
77ac3d1b18
fix: remove duplicate toggle button in table header
...
Keep only the toggle button in toolbar for better UX.
2025-12-26 21:41:22 +01:00
856ce53295
fix: improve MembershipFeesComponent state management and error handling
...
Replace assign_new with assign for cycles and available_fee_types. Set regenerating flag at event start. Fix create_cycle parsing with explicit error handling. Use atomic bulk delete for all cycles. Improve delete confirmation robustness. Fix unless/else pattern for Credo compliance.
2025-12-26 21:41:05 +01:00
3cf8244cd6
fix linting errors
continuous-integration/drone/push Build is failing
2025-12-23 18:14:59 +01:00
1dd68bcaf2
feat: coherent required boolean handling
continuous-integration/drone/push Build is failing
2025-12-23 18:08:31 +01:00
33652265b8
feat: add accessible empty value also to member fields
continuous-integration/drone/push Build is failing
2025-12-23 17:10:52 +01:00
8e58829e95
fix: improve performance loading custom fields
2025-12-23 17:07:38 +01:00
4e101ea36e
feat: Add WCAG-compliant handling for boolean custom fields
2025-12-23 17:02:07 +01:00
5718a37aca
fix: show custom field input fields also when empty
continuous-integration/drone/push Build is passing
2025-12-23 16:15:22 +01:00
9233f56847
Fix accessibility issues: add select label, improve contrast, fix heading hierarchy
2025-12-22 17:56:56 +01:00
562d7d6ab4
Fix handle_event for update_create_cycle_date to use correct param name
2025-12-22 17:02:07 +01:00
50a8657718
Fix cycle action buttons layout and visibility
...
Arrange Paid/Suspended/Unpaid/Delete buttons side by side without wrapping.
Hide Suspend button when cycle is already suspended, matching behavior
of Paid and Unpaid buttons.
2025-12-18 15:11:03 +01:00
f25e198b0e
Update cycle button styling and text
...
Make cycle button match PaymentFilterComponent and Columns button style.
Show 'Current Cycle Payment Status' or 'Last Cycle Payment Status'
based on active state. Button shows active state when current cycle
is selected.
2025-12-18 15:11:03 +01:00