bemade-addons/bemade_sports_clinic/TODO.md
Denis Durepos c0834eb327 [REF] bemade_sports_clinic: Remove injury models and simplify data model
- 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.
2025-07-16 11:37:50 -04:00

155 lines
5.4 KiB
Markdown

# Sports Clinic Module - TODO List
## High Priority
### Player Management
- [x] **Review permission checks** in `patient.remove_from_team()`
- [x] Ensure proper access controls are in place for player removal
- [x] Consider adding more granular permissions for different user roles
- [x] Refactored to use cron jobs for permission-sensitive operations
- [x] Fixed test cases for player removal workflow
### Injury Tracking
- [x] **Add parental consent field** to injuries
- [x] Verified existing field: `parental_consent = fields.Selection([('yes', 'Yes'), ('no', 'No'), ('na', 'Not Applicable')])`
- [x] Confirmed French Canadian (fr_CA) translations are in place for all UI elements
- [x] Verified field is properly displayed in injury forms and lists
- [x] Added field to the therapist portal UI for injury creation
- [x] Updated portal controller to handle the parental consent field
- [ ] **Fix configuration issues**
- [ ] Fix injury update chatter links pointing to example.com before going live
## Medium Priority
### Team Staff Management
- [x] **Review and refactor** `_update_treatment_professional_group`
- [x] Refactored into smaller, more maintainable methods
- [x] Improved code documentation and clarity
- [x] Verified functionality with existing tests
- [x] Removed unnecessary `web_responsive` dependency
## Testing Strategy
### Email Configuration
- [ ] **Fix email configuration in tests**
- `test_treatment_prof_can_remove_player_from_team` is currently disabled due to email configuration issues
- Need to properly configure test environment to handle email sending
- Consider using `mail.trap` or similar for test emails
- Re-enable test after configuration is fixed
### Unit Tests
- [x] **Player Management**
- [x] Test player removal workflow
- [x] Coach-initiated removal requests
- [x] Treatment professional approval flow
- [x] Permission enforcement
- [x] Pending removal flag behavior
- [x] Archiving of players with no teams
- [x] Parental consent field functionality
- [x] Match and practice availability tracking
- [x] **Injury Tracking**
- [x] Enhanced notification system
- [ ] Progress tracking and resolution monitoring
- [x] Internal vs external notes functionality
- [x] Treatment professional assignments
- [ ] **Data Protection**
- [ ] GDPR and Quebec Law 25 compliance features
- [ ] Data anonymization functionality
- [ ] Configurable retention periods
- [ ] Audit logging verification
- [ ] Manual anonymization wizard
### Integration Tests
- [x] **Portal Features**
- [x] Field therapist portal access
- [x] Coach portal functionality
- [x] Injury reporting through portal
- [x] Player status updates
- [x] **Security**
- [x] Field-level security validations
- [x] Permission escalation prevention
- [ ] Audit trail verification
### End-to-End Tests
- [x] Complete injury workflow (report → treatment → resolution)
- [x] Player removal workflow
- [x] Data export/anonymization process
### Performance Tests
- [ ] Large dataset handling
- [ ] Concurrent user access
- [ ] Report generation with extensive data
## Portal Requirements
### Therapist Portal
### Player Management
- [x] **Player CRUD Operations**
- [x] Add new players to the system
- [x] Remove players from teams
- [x] Update player information (name, contact details, etc.)
- [x] Manage player team assignments
### Injury Management
- [x] **Injury Tracking**
- [x] Add new injuries
- [x] Modify existing injury details
- [x] Update injury status and progress
- [x] Add treatment notes and updates
- [x] Upload and manage injury-related documents
### Patient Information
- [x] **Patient Profile Management**
- [x] Edit visible patient information
- [x] Update emergency contacts
- [x] Manage patient medical history
- [x] Track and update insurance information
### Task Management
- [x] **Mail Activities (To-Dos)**
- [x] Create new activities for patients/injuries
- [x] Assign activities to internal users
- [x] Assign activities to portal users with appropriate access
- [x] Track activity status and completion
- [x] Set due dates and priorities
- [x] Add activity notes and updates
## Data Privacy & Compliance
### Data Retention & Anonymization
- [ ] **Implement scheduled data anonymization**
- Create a scheduled action to automatically anonymize personal data after a configurable retention period
- Add configuration settings for retention periods (default: 7 years for medical records, 2 years for non-medical data)
- Ensure compliance with GDPR and Quebec's Law 25 (Loi 25)
- Add logging of all anonymization actions for audit purposes
- Create a manual anonymization wizard for one-off requests
- Add data export functionality for records before anonymization
## Future Enhancements
### Player Management
- [ ] Add bulk operations for player management
- [ ] Add more detailed player status tracking
### Reporting
- [ ] Add reports for player injuries and team health status
- [ ] Create dashboard for treatment professionals
## Back Burner (Postponed)
### Injury Tracking
- [x] **Improve injury notification system**
- [x] Review and enhance how injury tracking notifications are sent
- [x] Consider adding more detailed tracking information
## Notes
- Keep this file updated as new TODOs are identified
- Reference relevant issue numbers when available
- Delete or check off items as they are completed