From 1f91c27a447f8c1c2f359e70e80e08a4cf8faed0 Mon Sep 17 00:00:00 2001 From: Denis Durepos Date: Sun, 22 Jun 2025 11:32:53 -0400 Subject: [PATCH] Added Add Player functionality to portal access for therapists and coaches. --- bemade_sports_clinic/__manifest__.py | 56 +++++++++--- bemade_sports_clinic/controllers/__init__.py | 1 + bemade_sports_clinic/models/patient.py | 5 ++ .../views/sports_clinic_portal_views.xml | 88 ++++++++++++++++++- 4 files changed, 134 insertions(+), 16 deletions(-) diff --git a/bemade_sports_clinic/__manifest__.py b/bemade_sports_clinic/__manifest__.py index e9b7644..a84bda1 100644 --- a/bemade_sports_clinic/__manifest__.py +++ b/bemade_sports_clinic/__manifest__.py @@ -21,22 +21,50 @@ 'version': '18.0.1.6.2', 'summary': 'Manage the patients of a sports medicine clinic.', 'description': """ - Adds the notion of sports teams, players (patients), coaches and treatment - professionals. The core purpose of this module is to keep track of the treatment - history of players and to make it appropriately accessible to the various - involved parties (medical practitioners, clinic staff, team staff, and patients). + Sports Clinic Management System + ============================= - Internal users get access to patient data as appropriate, i.e. - treatment professionals get full access to their own patients' data, clinic - staff users get access to basic patient data needed for contacting patients, etc. + A comprehensive solution for managing sports medicine clinics, focusing on player health, + injury tracking, and team collaboration. - External users (portal users) can be added to give coaches and other team - personnel access to limited player data such as estimated return-to-play dates. - Medical professionals (primarily field therapists) can also access the system - via the portal interface instead of requiring full internal user accounts, allowing - for more flexible collaboration while maintaining appropriate access controls. - Coaches and treatment professionals can signal player injuries directly through the - portal interface, streamlining communication and injury tracking. + Key Features: + ------------ + + 1. User Roles and Access: + - Internal clinic staff with full patient record access + - Treatment professionals with medical record access + - Portal access for field therapists and team coaches + + 2. Player Management: + - Track player details and contact information + - Monitor team memberships and playing status + - Record and track injuries and treatment history + - Track match and practice availability + + 3. Injury Tracking: + - Comprehensive injury recording and documentation + - Treatment professional assignment + - Progress tracking and resolution monitoring + - Internal and external notes for different audiences + + 4. Team Management: + - Organize players into teams + - Assign coaching and medical staff + - Team-specific player status tracking + + 5. Portal Access: + - Coaches can view their teams and player status + - Field therapists can access and update medical records + - Injury reporting directly through the portal + + 6. Security and Privacy: + - Granular permission system + - Field-level security for sensitive information + - Audit trails for all changes + + This module is designed to facilitate communication between medical professionals, + coaching staff, and administrative personnel while maintaining appropriate access + controls and data privacy. """, "category": "Services/Medical", "author": "Bemade Inc.", diff --git a/bemade_sports_clinic/controllers/__init__.py b/bemade_sports_clinic/controllers/__init__.py index 95a9e8e..b70d3a6 100644 --- a/bemade_sports_clinic/controllers/__init__.py +++ b/bemade_sports_clinic/controllers/__init__.py @@ -1,2 +1,3 @@ from . import team_staff_portal from . import patient_injury_portal +from . import team_management_portal diff --git a/bemade_sports_clinic/models/patient.py b/bemade_sports_clinic/models/patient.py index 76abce7..981f7f8 100644 --- a/bemade_sports_clinic/models/patient.py +++ b/bemade_sports_clinic/models/patient.py @@ -27,6 +27,11 @@ class Patient(models.Model): _description = "Patient" _inherit = ["mail.thread", "mail.activity.mixin"] _order = "last_name, first_name" + + active = fields.Boolean( + string='Active', + default=True, + help="If unchecked, it means this patient has been archived and won't appear in searches by default.") # res.partner fields partner_id = fields.Many2one( diff --git a/bemade_sports_clinic/views/sports_clinic_portal_views.xml b/bemade_sports_clinic/views/sports_clinic_portal_views.xml index 4454ad5..cda42ff 100644 --- a/bemade_sports_clinic/views/sports_clinic_portal_views.xml +++ b/bemade_sports_clinic/views/sports_clinic_portal_views.xml @@ -47,7 +47,12 @@ + + + - \ No newline at end of file +