- Add comprehensive tabbed player detail view with full parity to internal view
- Implement four organized tabs: Injuries, Patient Info, Team Info, Emergency Contacts
- Add prominent status card above tabs showing match/practice status and allergies
- Add email field to emergency contacts model and forms
- Fix QWeb template errors by replacing t-field date widgets with t-esc in td elements
- Convert HTML fields to Text fields to resolve tracking compatibility issues
- Maintain role-based access control throughout all tabs
- Add missing fields: injured_since, active_injury_count for complete parity
- Improve UI/UX with color-coded status badges and responsive design
- Fix ACL test assumptions about browse() behavior
* Update tests to check field-level access instead of browse().exists()
* Correct test methodology for AccessError validation
- Implement buddy method pattern for RPC security
* Refactor all sudo()/api.model methods to use public/private pattern
* Public methods perform access checks, private methods contain privileged ops
* Prevents RPC privilege escalation vulnerabilities
- Enhanced security architecture
* Add comprehensive mail activity portal access rules
* Strengthen partner access controls
* Update controller method references to use secure public methods
- Test suite improvements
* Add extensive mail activity portal access tests
* Update player removal tests to use public method interfaces
* Improve test coverage for security scenarios
- Security best practices enforcement
* All privileged operations now encapsulated in private methods
* Clear separation between public API and internal operations
* Maintains functionality while securing RPC access
Resolves RPC security vulnerabilities and establishes proper ACL enforcement patterns.
- Removed models/injury_models.py and all its references
- Converted relational fields to character fields:
- body_location_id → body_location
- injury_type_id → injury_type
- Updated portal templates to use text inputs instead of dropdowns
- Updated controller code to process the new field formats
- Removed related access rights from security CSV
- Modified test files to accommodate the new structure
This refactoring simplifies the data model by removing unnecessary
classifications that were adding complexity without significant benefit.
The direct text fields maintain the same functionality while reducing
the database overhead and simplifying the UI.
- Refactor portal templates to eliminate intra-module template inheritance
- Integrate emergency contacts section into player injuries template
- Add full internal admin views for treatment notes with chatter support
- Fix ORM warning in test_rights by using proper ORM commands
- Update manifest to reflect new functionality (v18.0.1.9.0)
This refactoring improves template stability by removing XPath errors and
provides treatment professionals with better access to emergency contacts
and treatment notes both in portal and backend interfaces.
Timezone differences were causing dates to come up very weirdly on new
patient injury records. They now use the user timezone to convert
datetime.now() appropriately.
Added two mail.message.subtypes to notify all followers of updates to
patient status and changes to injury fields. Added a post-migration
script to update all existing followers to subscribe to these new
subtypes.
Kanban view added for players to improve the experience when browsing on
mobile. Card text color synchronized with what the user expects from the
list view.
- Team staff phone field replaced by mobile field
- Doctor added to team staff options
- Trainer replaced by therapist in team staff nomenclature
- N/A option and onchange behaviour for injury date
- Patient contact info added on the form view (linked to partner)
- Allergies field added to patient record
- Notes added to team information section of patient record
- Fixed next page button on portal (controller routes update)