36edee6fcc
Fix: Ensure members are loaded in handle_params when signature unchanged
2026-01-27 10:23:15 +01:00
3852c93ac9
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-27 10:23:08 +01:00
214b84b9b3
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-27 10:14:06 +01:00
cf9e6e91fd
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-27 10:14:03 +01:00
41d680f994
fix: failing test
2026-01-27 10:14:02 +01:00
0016c43c34
feat: improve filter performance by reducing Ash.read! calls
2026-01-27 10:14:01 +01:00
0d244a4860
fix: resolve pr remarks
2026-01-27 10:14:01 +01:00
ca1300f46a
feat: add new filter component to members view
2026-01-27 10:13:59 +01:00
7171e21a10
feat: load boolean custom fields
2026-01-27 10:13:59 +01:00
7f4c22d072
refactor: fix credo issues
2026-01-27 10:13:58 +01:00
4e48ace2d4
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-27 10:13:56 +01:00
c137ee6221
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-27 10:13:56 +01:00
d72bb8869f
docs: Update domain Public API documentation
2026-01-27 10:13:55 +01:00
926974e2da
chore: update docs
2026-01-27 10:13:54 +01:00
da9ec06e8e
feat: implement filter logic for boolean ustom fields
2026-01-27 10:13:53 +01:00
0519433644
feat: add custom boolean field state & URL-Parameter
2026-01-27 10:13:53 +01:00
d8ab9a1015
fix: linting + tests
2026-01-27 10:13:52 +01:00
3aa1aee11e
fix: add error message to form
2026-01-27 10:13:51 +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
adb107e6a4
Rename cycle button to Show Last/Current Cycle Payment Status
...
Update button text and styling to match PaymentFilterComponent.
Button now shows active state when filter is applied.
2025-12-18 15:11:02 +01:00