Commit graph

143 commits

Author SHA1 Message Date
1d17c4f2dd fix: CustomField policies, no system-actor fallback, guidelines
- Tests and UI pass actor for CustomField create/read/destroy; seeds use actor
- Member required-custom-fields validation uses context.actor only (no fallback)
- CODE_GUIDELINES: add rule forbidding system-actor fallbacks
2026-01-29 16:10:12 +01:00
bb7e3cbe77
fix: make sure all tests run
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-29 14:49:39 +01:00
1b44730b95
Fix: Ensure members are loaded in handle_params when signature unchanged
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-23 14:48:37 +01:00
672b4a8250
Merge branch 'main' into feature/filter-boolean-custom-fields
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-23 14:41:48 +01:00
20c96123e1
fix: failing test
Some checks failed
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
Some checks failed
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2026-01-20 19:12:13 +01:00
fbf3b64192
refactor: fix credo issues
All checks were successful
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
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-20 18:13:20 +01:00
ff8b29cffe
feat: implement filter logic for boolean ustom fields
Some checks failed
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
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