Commit graph

139 commits

Author SHA1 Message Date
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
All checks were successful
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
Some checks failed
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
Some checks failed
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
All checks were successful
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
Some checks failed
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
Some checks failed
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
All checks were successful
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
Some checks failed
continuous-integration/drone/push Build is failing
2025-12-23 18:14:59 +01:00
1dd68bcaf2 feat: coherent required boolean handling
Some checks failed
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
Some checks failed
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
All checks were successful
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