8.6 KiB
8.6 KiB
Sports Clinic Module - TODO List
High Priority
Player Management
- Review permission checks in
patient.remove_from_team()- Ensure proper access controls are in place for player removal
- Consider adding more granular permissions for different user roles
- Refactored to use cron jobs for permission-sensitive operations
- Fixed test cases for player removal workflow
Injury Tracking
-
Add parental consent field to injuries
- Verified existing field:
parental_consent = fields.Selection([('yes', 'Yes'), ('no', 'No'), ('na', 'Not Applicable')]) - Confirmed French Canadian (fr_CA) translations are in place for all UI elements
- Verified field is properly displayed in injury forms and lists
- Added field to the therapist portal UI for injury creation
- Updated portal controller to handle the parental consent field
- Verified existing field:
-
Fix configuration issues
- Fix injury update chatter links pointing to example.com before going live
-
Improve notification system
- Find a way to improve notifications sent about tracking injury details
Medium Priority
Team Staff Management
- Review and refactor
_update_treatment_professional_group- Refactored into smaller, more maintainable methods
- Improved code documentation and clarity
- Verified functionality with existing tests
- Removed unnecessary
web_responsivedependency
Testing Strategy
Email Configuration
- Fix email configuration in tests
test_treatment_prof_can_remove_player_from_teamis currently disabled due to email configuration issues- Need to properly configure test environment to handle email sending
- Consider using
mail.trapor similar for test emails - Re-enable test after configuration is fixed
Unit Tests
-
Player Management
- Test player removal workflow
- Coach-initiated removal requests
- Treatment professional approval flow
- Permission enforcement
- Pending removal flag behavior
- Archiving of players with no teams
- Parental consent field functionality
- Match and practice availability tracking
- Test player removal workflow
-
Injury Tracking
- Enhanced notification system
- Progress tracking and resolution monitoring
- Internal vs external notes functionality
- 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
-
Portal Features
- Field therapist portal access
- Coach portal functionality
- Injury reporting through portal
- Player status updates
-
Security
- Field-level security validations
- Permission escalation prevention
- Audit trail verification
End-to-End Tests
- Complete injury workflow (report → treatment → resolution)
- Player removal workflow
- Data export/anonymization process
Performance Tests
- Large dataset handling
- Concurrent user access
- Report generation with extensive data
Portal Requirements
Therapist Portal
Player Management
- Player CRUD Operations
- Add new players to the system
- Remove players from teams
- Update player information (name, contact details, etc.)
- Manage player team assignments
Injury Management
- Injury Tracking
- Add new injuries
- Modify existing injury details
- Update injury status and progress
- Add treatment notes and updates
- Upload and manage injury-related documents
Patient Information
- Patient Profile Management
- Edit visible patient information
- Update emergency contacts
- Manage patient medical history
- Track and update insurance information
Task Management
- Mail Activities (To-Dos)
- Create new activities for patients/injuries
- Assign activities to internal users
- Assign activities to portal users with appropriate access
- Track activity status and completion
- Set due dates and priorities
- 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
- Improve injury notification system
- Review and enhance how injury tracking notifications are sent
- 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
MC's notes
- Change action button colors to Fit Crew color scheme (instead of the weird turquoise)
- Confirm followers added correctly when therapist adds player to team
- Remove Team from injury detail (including from model - was not there before)
- Fix treatment professional selection in injury detail
- Add patient address add/edit to coach/therapist portal
DD & MD notes on how to move forward
- Calendar integration - add calendar events linked to tasks so that tasks block out therapist time (only really required for Steph, so can wait a bit)
- Project/product setup for billing:
- Create products for FEE-SIDELINE and FEE-TRANSPORT
- Config FEE-SIDELINE to create Project on confirmation
- Config FEE-TRANSPORT to create NOTHING on confirmation
- Set up SO per client cost center
- Put a FEE-SIDELINE product on the SO
- Put a FEE-TRANSPORT product on the SO
- Confirm SO then configure resulting Project (consider a project template to load on the FEE-SIDELINE)
- Portal user timesheet module (project_subcontractor_portal)
- Create portal user add timesheet modal
- Allow portal user to be selected as assignee on project tasks
- (optional?) Link portal users to Employee records? Probably required for timesheets to work
- Project task link to event (to block out calendar time re Appointments)
- Sanitize code for production readiness
- Remove debug code
- Remove debug logging (convert _logger.info to _logger.debug)
- Remove debug print statements
- Remove debug comments
- Remove debug TODOs
- Remove debug print statements
- Re-establish no-update on security rules and anywhere else we temporarily removed it for debugging, if required
- Check status of MAIL_ACTIVITY_PORTAL_ACCESS.md and PORTAL_ACCESS_LIMITATIONS.md as well as test suite status (i.e. still have commented out tests?) + update notes at top of mail_activity_portal_rules.xml
- Sanity checks on functionality
- Check if tracking needs to be re-enabled on any notes fields (or convert the fields to not be html)
- Check if portal patient creation functionality actually accessible
- Check all translations present into french
- Check injury.document categories
- Bypass unverified stage for patient.injury when declared by a treatment professional
- Migration
- Get medsportsuroit db dump loaded into psql on fitcrew server
- Create module in bemade-tools
- See verajet/odoo migration module for example
- Use direct psql connection to suck out data and map as required
- Use Command.create() when required to create records with sub-records
- Set an environment (launch.json) up for testing the migration
- Staging
- Don't bother. Just run the whole migration on localhost (neutralizing the fit crew db each time) and test on LAN.
- Live migration
- Get a backup of the prod db
- Stop the server
- Run the migration locally
- Restore it back into the fitcrew server
- Cross fingers (while retesting)