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.
121 lines
5.6 KiB
Python
121 lines
5.6 KiB
Python
#
|
|
# Bemade Inc.
|
|
#
|
|
# Copyright (C) October 2023 Bemade Inc. (<https://www.bemade.org>).
|
|
# Author: Marc Durepos (Contact : marc@bemade.org)
|
|
#
|
|
# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
|
|
# It is forbidden to publish, distribute, sublicense, or sell copies of the Software
|
|
# or modified copies of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
# DEALINGS IN THE SOFTWARE.
|
|
#
|
|
{
|
|
'name': 'Sports Clinic Management',
|
|
'version': '18.0.2.0.0',
|
|
'summary': 'Comprehensive sports medicine clinic management with portal access and activity tracking.',
|
|
'description': """
|
|
Sports Clinic Management System
|
|
|
|
A comprehensive solution for managing sports medicine clinics, focusing on player health, injury tracking, team collaboration, and integrated activity management.
|
|
|
|
Key Features:
|
|
- User roles and access control for clinic staff, treatment professionals, and portal users
|
|
- Player management with contact information and team memberships
|
|
- Injury tracking with comprehensive documentation and workflow
|
|
- Team management with staff assignments and portal access
|
|
- Activity management with mail.activity integration
|
|
- Portal access for coaches and field therapists
|
|
- Security and privacy with layered architecture
|
|
- Data protection with anonymization and retention policies
|
|
- Full French Canadian localization support
|
|
- Integration with mail system and project tasks
|
|
|
|
This module provides a complete sports medicine clinic management solution with robust portal access, activity tracking, and team collaboration features while maintaining strict security and data privacy controls.
|
|
""",
|
|
"category": "Services/Medical",
|
|
"author": "Bemade Inc.",
|
|
"website": "https://www.bemade.org",
|
|
"license": "LGPL-3",
|
|
"depends": [
|
|
"mail", # Required for mail.activity functionality
|
|
"portal",
|
|
"contacts",
|
|
"phone_validation", # For phone number formatting in patient contacts
|
|
"project", # Required for project.task (Events) functionality
|
|
"account", # Ensure account portal templates (e.g., portal_my_home_invoice) are available
|
|
"hr_timesheet", # Ensure our portal card override loads after core timesheet portal
|
|
],
|
|
"external_dependencies": {
|
|
"python": [
|
|
"openupgradelib",
|
|
"pytz", # For timezone handling in injury tracking
|
|
],
|
|
},
|
|
"data": [
|
|
"security/sports_clinic_groups.xml",
|
|
"security/sports_clinic_portal_groups.xml",
|
|
"security/ir.model.access.csv",
|
|
"security/sports_clinic_rules.xml",
|
|
"security/sports_clinic_portal_rules.xml",
|
|
"security/mail_activity_portal_rules.xml",
|
|
"security/project_task_portal_rules.xml",
|
|
"security/sports_event_rules.xml",
|
|
"security/partner_access.xml",
|
|
"security/sports_event_timesheet_rules.xml",
|
|
"data/sports_clinic_data.xml",
|
|
"data/admin_access_data.xml",
|
|
# "data/project_portal_demo_data.xml", # Temporarily disabled for clean upgrade
|
|
"data/cron_actions.xml",
|
|
"views/sports_team_views.xml",
|
|
"views/sports_clinic_menus.xml",
|
|
"views/sports_patient_injury_views.xml",
|
|
"views/sports_patient_views.xml",
|
|
"views/sports_clinic_portal_views.xml",
|
|
"views/sports_patient_injury_portal.xml",
|
|
"views/player_management_portal_templates.xml",
|
|
"views/injury_management_portal_templates.xml",
|
|
"views/task_management_portal_templates.xml",
|
|
"views/events_portal_templates.xml",
|
|
"views/project_task_views.xml",
|
|
"views/project_task_security_test_views.xml",
|
|
"views/sports_event_views.xml",
|
|
"views/portal_activity_detail_template.xml",
|
|
"views/portal_messages_template.xml",
|
|
"views/portal_attachments_template.xml",
|
|
"views/portal_event_detail_template.xml",
|
|
"views/portal_event_edit_template.xml",
|
|
"views/portal_event_create_template.xml",
|
|
"views/portal_timesheets_templates.xml",
|
|
"views/treatment_note_views.xml",
|
|
"views/res_partner_views.xml",
|
|
"views/task_to_event_wizard_views.xml",
|
|
"views/team_role_mass_assign_wizard_views.xml",
|
|
"views/res_users_views.xml",
|
|
],
|
|
"demo": ["data/demo/sports_clinic_demo_data.xml"],
|
|
"installable": True,
|
|
"auto_install": False,
|
|
"application": True,
|
|
"assets": {
|
|
"web.assets_frontend": [
|
|
# Ensure legacy jQuery helpers exist where some website widgets expect them
|
|
"bemade_sports_clinic/static/src/js/jquery_scrolling_polyfill.js",
|
|
# Defensive patch for website TOC snippet to avoid null textContent errors
|
|
"bemade_sports_clinic/static/src/js/website_toc_safety_patch.js",
|
|
"bemade_sports_clinic/static/src/scss/portal_badges.scss",
|
|
],
|
|
# Also load in lazy bundle since many website widgets initialize lazily
|
|
"web.assets_frontend_lazy": [
|
|
"bemade_sports_clinic/static/src/js/jquery_scrolling_polyfill.js",
|
|
# Ensure patch is also present in lazy assets where snippet may initialize
|
|
"bemade_sports_clinic/static/src/js/website_toc_safety_patch.js",
|
|
],
|
|
},
|
|
}
|