Portal Timesheets Feature\n- Add new portal timesheets list with edit modal: views/portal_timesheets_templates.xml\n- New controller: controllers/timesheets_portal.py\n- New model for event timesheets: models/sports_event_timesheet.py\n- Security: sports_event_timesheet_rules.xml + ir.model.access.csv updates\n\nEvent/Portal Integration\n- Wire timesheets into events portal: controllers/events_portal.py, views/portal_event_* templates, menus\n- Sports event model enhancements: models/sports_event.py\n\nGeneral Portal/View Updates\n- Updates across player/team/user/partner views for consistency and UX\n\nAsset Cleanup\n- Remove unused 24h datetime initializer from frontend bundles\n * Dropped bemade_sports_clinic/static/src/js/portal_datetime_24h.js from __manifest__.py assets\n\nNotes\n- No functional dependency on the 24h initializer remains; inputs use native datetime-local or explicit formatting in templates.
[MIG] bemade_fsm to 18.0
Aside from fixing standard 17.0..18.0 stuff and fixing XML ID
references:
1. **Remove `_get_closed_stage_by_project()`**: This method is
obsolete - it was copied from base FSM but no longer exists in
18.0. Base system now uses `is_closed` field.
2. **Implement State Propagation**: Enhance the `write()` method
to propagate done/cancelled states to child tasks using `is_closed` field logic.
3. **Test Task Creation**: Thoroughly test the custom task creation logic
against base 18.0
All 56 tests are passing.
Squashed commit of the following:
commit 5adce1fd15
Author: Marc Durepos <marc@bemade.org>
Date: Thu Sep 4 12:33:00 2025 -0400
[MIG] 17.0..18.0 account_credit_hold
Migrated module account_credit_hold from 17.0 to 18.0. Fixed views and
models and wrote test cases to check functionality.
commit 91c52af6f4
Author: Marc Durepos <marc@bemade.org>
Date: Thu Sep 4 11:38:37 2025 -0400
Initial migration of account_credit_hold for testing in 18.0
- Add wizard models: team_role_mass_assign_wizard.py (wizard + line)
- Register in models/__init__.py
- Add views/team_role_mass_assign_wizard_views.xml
- Update res_users_views.xml to expose the wizard (button/action)
- Define ACLs for wizard and lines in security/ir.model.access.csv
- Update __manifest__.py to load new security and views
- Stack action buttons onto a second line in list/detail views\n- Remove redundant team/venue under event title (retained in details card)\n- Minor styling/consistency tweaks
- Add DOB validation (not in future, not >120y) in controllers:\n - controllers/team_management_portal.py: portal_create_player_full, portal_add_player_submit\n - controllers/player_management_portal.py: create_player_submit, edit_player_submit\n- Preserve form inputs and display clear error messages on invalid DOB\n- Add dateutil.relativedelta import for date range checks\n- Minor template/context tweaks for consistent error rendering