diff --git a/gym_mgmt_system/README.rst b/gym_mgmt_system/README.rst new file mode 100644 index 000000000..646bd8043 --- /dev/null +++ b/gym_mgmt_system/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +GYM Management System +===================== +This module is used for the managing gym we can add membership, member, workout plans etc in this module basically for managing the membership,member, workout plan etc. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V16) Sahla Sherin , + (V17) Gayathri V, + (V18) Abbas P +Contact:odoo@cybrosys.com + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/gym_mgmt_system/__init__.py b/gym_mgmt_system/__init__.py new file mode 100644 index 000000000..fa84410c2 --- /dev/null +++ b/gym_mgmt_system/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models +from . import wizard diff --git a/gym_mgmt_system/__manifest__.py b/gym_mgmt_system/__manifest__.py new file mode 100644 index 000000000..1ed3d95f3 --- /dev/null +++ b/gym_mgmt_system/__manifest__.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'GYM Management System', + 'version': '18.0.1.0.0', + 'category': 'Industries', + 'summary': 'GYM Management System For Managing ' + 'Membership, Member, Workout Plan, etc', + 'description': 'This module is used for the managing gym we can add ' + 'membership, member, workout plans etc in this module ' + 'basically for managing the membership,member, workout ' + 'plan etc', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': [ 'mail', 'contacts', 'hr', + 'product', 'membership', 'sale_management', + ], + 'data': [ + 'security/gym_mgmt_system_groups.xml', + 'security/ir.model.access.csv', + 'security/gym_mgmt_system_security.xml', + 'data/ir_sequence_data.xml', + 'wizard/assign_workout.xml', + 'views/product_template_views.xml', + 'views/res_partner_views.xml', + 'views/exercise_for_views.xml', + 'views/gym_exercise_views.xml', + 'views/gym_membership_views.xml', + 'views/measurement_history_views.xml', + 'views/membership_plan_views.xml', + 'views/gym_report_views.xml', + 'views/trainer_skill_views.xml', + 'views/workout_plan_views.xml', + 'views/workout_days_views.xml', + 'views/my_workout_plan_views.xml', + 'views/hr_employee_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/gym_mgmt_system/data/ir_sequence_data.xml b/gym_mgmt_system/data/ir_sequence_data.xml new file mode 100644 index 000000000..c523957e9 --- /dev/null +++ b/gym_mgmt_system/data/ir_sequence_data.xml @@ -0,0 +1,11 @@ + + + + + Gym Membership sequence + gym.membership + MEMPLAN/ + 4 + + + diff --git a/gym_mgmt_system/doc/RELEASE_NOTES.md b/gym_mgmt_system/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..6ab65ab82 --- /dev/null +++ b/gym_mgmt_system/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 23.05.2025 +#### Version 18.0.1.0.0 +#### ADD +- Initial commit for GYM Management System diff --git a/gym_mgmt_system/models/__init__.py b/gym_mgmt_system/models/__init__.py new file mode 100644 index 000000000..95bdb5bfa --- /dev/null +++ b/gym_mgmt_system/models/__init__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import exercise_for +from . import gym_exercise +from . import gym_membership +from . import gym_report +from . import hr_employee +from . import measurement_history +from . import my_workout_plan +from . import product_template +from . import res_partner +from . import sale_order +from . import trainer_skill +from . import workout_days +from . import workout_plan +from . import workout_plan_option diff --git a/gym_mgmt_system/models/exercise_for.py b/gym_mgmt_system/models/exercise_for.py new file mode 100644 index 000000000..8f3badc45 --- /dev/null +++ b/gym_mgmt_system/models/exercise_for.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ExerciseFor(models.Model): + """This model mention why this exercise for.""" + _name = "exercise.for" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Gym Exercise For" + + name = fields.Char(string="Name", help='This hold the name ', required=True) + company_id = fields.Many2one('res.company', string='Company', + default=lambda self: self.env.company, + help='This field hold the company id') diff --git a/gym_mgmt_system/models/gym_exercise.py b/gym_mgmt_system/models/gym_exercise.py new file mode 100644 index 000000000..34bd1c3f4 --- /dev/null +++ b/gym_mgmt_system/models/gym_exercise.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models, _ +from odoo.addons.web_editor.tools import get_video_embed_code +from odoo.exceptions import ValidationError + + +class GymExercise(models.Model): + """The model gym. exercise for defining the exercises.""" + _name = "gym.exercise" + _inherit = ["mail.thread", "mail.activity.mixin", "image.mixin"] + _description = "Gym Exercises" + _columns = { + 'image': fields.Binary("Image", help="This field holds the image" + )} + + name = fields.Char(string="Name", help='Define the name of exercise', required=True) + exercise_for_ids = fields.Many2many("exercise.for", + string="Exercise For", + help='For which part this exercise') + equipment_id = fields.Many2one('product.product', + string='Equipment', + required=True, tracking=True, + domain="[('is_gym_product', '!=',False)]", + help='The equipment used') + note_benefit = fields.Html(string='Note', help='Can add note here') + note_step = fields.Html(string='Note', help='Can add note step') + embed_code = fields.Html(compute="_compute_embed_code", sanitize=False, + help='The embed code') + video_url = fields.Char(string='Video URL', + help='URL of a video for showcasing your product.') + image = fields.Binary(string="Image", help="This field holds the image") + image12 = fields.Binary(string="Image", help="This field holds the image") + image123 = fields.Binary(string="Image", help="This field holds the image") + image124 = fields.Binary(string="Image", help="This field holds the image") + company_id = fields.Many2one('res.company', string='Company', + default=lambda self: self.env.company, + help='This field hold the company id') + + @api.constrains('video_url') + def _check_valid_video_url(self): + """Check url is valid or not """ + for image in self: + if image.video_url and not image.embed_code: + raise ValidationError( + _("Provided video URL for '%s' is not valid. " + "Please enter a valid video URL.", image.name)) + + @api.depends('video_url') + def _compute_embed_code(self): + """To get video field """ + for image in self: + image.embed_code = get_video_embed_code(image.video_url) diff --git a/gym_mgmt_system/models/gym_membership.py b/gym_mgmt_system/models/gym_membership.py new file mode 100644 index 000000000..294993cba --- /dev/null +++ b/gym_mgmt_system/models/gym_membership.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models, _ + + +class GymMembership(models.Model): + """This model is for gym membership.""" + _name = "gym.membership" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Gym Membership" + _rec_name = "reference" + + reference = fields.Char(string='GYM reference', readonly=True, + default=lambda self: _('New'), + help="Member reference") + member_id = fields.Many2one('res.partner', string='Member', + required=True, tracking=True, + help="Member taken the membership", + domain="[('is_gym_member', '!=',False)]") + membership_scheme_id = fields.Many2one('product.product', + string='Membership scheme', + help="Member ship scheme", + required=True, tracking=True, + domain="[('membership_date_from', " + "'!=',False)]") + paid_amount = fields.Float(string="Paid Amount", tracking=True, + help="The amount paid for the membership") + membership_fees = fields.Float(string="Membership Fees", tracking=True, + help="The membership fees", + related="membership_scheme_id.list_price") + sale_order_id = fields.Many2one('sale.order', string='Sales Order', + ondelete='cascade', copy=False, + help="Order reference", + readonly=True) + membership_date_from = fields.Date(string='Membership Start Date', + related="membership_scheme_id." + "membership_date_from", + help='Date from which membership ' + 'becomes active.') + membership_date_to = fields.Date(string='Membership End Date', + related="membership_scheme_id.membership_" + "date_to", + help='Date until which membership remains' + 'active.') + company_id = fields.Many2one('res.company', string='Company', + default=lambda self: self.env.company, + help='The field hold the company id') + state = fields.Selection([ + ('draft', 'Draft'), + ('confirm', 'Confirm'), + ('cancelled', 'Cancelled') + ], default='draft', string='Status', + help="The status of record defined here") + + _sql_constraints = [ + ('membership_date_greater', + 'check(membership_date_to >= membership_date_from)', + 'Error ! Ending Date cannot be set before Beginning Date.') + ] + + @api.model_create_multi + def create(self, vals_list): + """Sequence number for membership """ + for vals in vals_list: + if vals.get('reference', 'New') == 'New': + vals['reference'] = self.env['ir.sequence'].next_by_code( + 'gym.membership') or 'New' + return super(GymMembership, self).create(vals_list) diff --git a/gym_mgmt_system/models/gym_report.py b/gym_mgmt_system/models/gym_report.py new file mode 100644 index 000000000..eed91d501 --- /dev/null +++ b/gym_mgmt_system/models/gym_report.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class GymReport(models.Model): + """This module is for the gym report.""" + _name = "gym.report" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Gym Report" + + name = fields.Char(string="Name", help="Name of the report") diff --git a/gym_mgmt_system/models/hr_employee.py b/gym_mgmt_system/models/hr_employee.py new file mode 100644 index 000000000..057d5eec2 --- /dev/null +++ b/gym_mgmt_system/models/hr_employee.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class HrEmployee(models.Model): + """Inherited the model hr employee for adding some field to check whether he + is trainer or not.""" + _inherit = 'hr.employee' + + is_trainer = fields.Boolean(string='Gym Trainer', + help="The employee is trainer ") + exercise_for_ids = fields.Many2many("trainer.skill", + string="Specialization", + help="Skill of the trainer") diff --git a/gym_mgmt_system/models/measurement_history.py b/gym_mgmt_system/models/measurement_history.py new file mode 100644 index 000000000..9392bcd91 --- /dev/null +++ b/gym_mgmt_system/models/measurement_history.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class MeasurementHistory(models.Model): + """This model used for measurement history.""" + _name = "measurement.history" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Measurement History" + _rec_name = "member_id" + + def _get_default_weight_uom(self): + """ to get default weight uom """ + return self.env[ + 'product.template']._get_weight_uom_name_from_ir_config_parameter() + + member_id = fields.Many2one('res.partner', string='Member', + tracking=True, required=True, + domain="[('is_gym_member', '!=',False)]", + help='Name of the member') + gender = fields.Selection([ + ('male', 'Male'), + ('female', 'Female'), + ('other', 'Other'), + ], string="Gender", required=True, help='Select the gender') + age = fields.Integer(string='Age', tracking=True, required=True, + help='Age of the member') + weight = fields.Float( + 'Weight', digits='Stock Weight', + help='Define the your weight') + weight_uom_name = fields.Char(string='Weight unit of measure label', + default=_get_default_weight_uom, + help='Weight of uom') + height = fields.Float( + 'Height', digits='Stock Height', help='Define your ' + 'height') + height_uom_name = fields.Char(string='Height unit of measure label', + default='cm', help='Uom for height') + bmi = fields.Float(string='BMI', store=True, + compute='_compute_bmi_bmr', help='Calculate BMI') + bmr = fields.Float(string='BMR', store=True, + compute='_compute_bmi_bmr', + help='Calculate BMR') + neck = fields.Float(string='Neck', help='The length of neck') + biceps = fields.Float(string='Biceps', + help='The length of biceps') + calf = fields.Float(string='Calf', help='The length of calf') + hips = fields.Float(string='Hips', help='The length of hips') + chest = fields.Float(string='Chest', + help='The length of chest') + waist = fields.Float(string='Waist', + help='The length of waist') + thighs = fields.Float(string='Thighs', + help='The length of thighs') + date = fields.Date(string='Date', + help='Date from which measurement active.') + company_id = fields.Many2one('res.company', string='Company', + default=lambda self: self.env.company, + help="This field hold the company id") + + @api.depends('weight', 'height', 'gender', 'age') + def _compute_bmi_bmr(self): + """Based on weight and height ,calculate the bmi and bmr""" + self.bmi = self.bmr = 0 + if self.weight and self.height: + self.bmi = (self.weight / self.height / self.height) * 10000 + if self.gender == "male": + self.bmr = 66.47 + (13.75 * self.weight) + \ + (5.003 * self.height) - (6.755 * self.age) + if self.gender == "female": + self.bmr = 655.1 + (9.563 * self.weight) + \ + (1.85 * self.height) - (6.755 * self.age) + else: + self.bmi = 1 + self.bmr = 1 diff --git a/gym_mgmt_system/models/my_workout_plan.py b/gym_mgmt_system/models/my_workout_plan.py new file mode 100644 index 000000000..c567e9d56 --- /dev/null +++ b/gym_mgmt_system/models/my_workout_plan.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MyWorkoutPlan(models.Model): + """This model for showing my workout plans.""" + _name = "my.workout.plan" + _inherit = ["mail.thread", "mail.activity.mixin", "image.mixin"] + _description = "My Workout Plan" + _rec_name = "payment_term_id" + + payment_term_id = fields.Many2one('workout.plan', + string="Name", help="payment term ", required=True) + assign_to_id = fields.Many2one('res.partner', + string='Assign To', + domain="[('is_gym_member', '!=',False)]", + default=lambda self: self.env.user, + help="Assigned person") + from_date = fields.Date(string='Date From', help="Start date") + to_date = fields.Date(string='Date To', help="End date") diff --git a/gym_mgmt_system/models/product_template.py b/gym_mgmt_system/models/product_template.py new file mode 100644 index 000000000..0157cd7b0 --- /dev/null +++ b/gym_mgmt_system/models/product_template.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ProductTemplate(models.Model): + """Inherited the model product Template for adding a field.""" + _inherit = 'product.template' + + is_gym_product = fields.Boolean(string='Gym Product', + help='This help to define the product ' + 'whether' + 'it is gym product') diff --git a/gym_mgmt_system/models/res_partner.py b/gym_mgmt_system/models/res_partner.py new file mode 100644 index 000000000..b5e48dd81 --- /dev/null +++ b/gym_mgmt_system/models/res_partner.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class ResPartner(models.Model): + """Inherited the partner model for adding gym related fields.""" + _inherit = 'res.partner' + + is_gym_member = fields.Boolean(string='Gym Member', default=False, + help='This field define the whether is ' + 'member of gym') + membership_count = fields.Integer(string='Membership Count', + compute='_compute_membership_count', + help='This help to count the membership') + measurement_count = fields.Integer(string='Measurement Count', + compute='_compute_measurement_count', + help='This helps to get the umber of ' + 'measurements for gym members') + + def _compute_membership_count(self): + """Number of membership for gym members """ + for rec in self: + rec.membership_count = self.env['gym.membership'].search_count([ + ('member_id', '=', rec.id)]) + + def _compute_measurement_count(self): + """Number of measurements for gym members """ + for rec in self: + rec.measurement_count = self.env[ + 'measurement.history'].search_count([('member_id', '=', + rec.id)]) + + @api.constrains('is_gym_member') + def _validate_gym_member(self): + """Select sale person to assign workout plan """ + if self.is_gym_member: + return { + 'warning': { + 'title': 'User Error', + 'message': 'select sale person (sales & purchase) ' + 'to assign workout plan'} + } diff --git a/gym_mgmt_system/models/sale_order.py b/gym_mgmt_system/models/sale_order.py new file mode 100644 index 000000000..a358d0a94 --- /dev/null +++ b/gym_mgmt_system/models/sale_order.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, _ + + +class SaleOrder(models.Model): + """Inherit the sale.order model for supering the action confirm.""" + _inherit = "sale.order" + + def action_confirm(self): + """ Membership created directly from sale order confirmed """ + product = self.env['product.product'].search([('membership_date_from', '!=', False), + ('id', '=', self.order_line.product_id.id)]) + for record in product: + self.env['gym.membership'].create([ + {'member_id': self.partner_id.id, + 'membership_date_from': record.membership_date_from, + 'membership_scheme_id': self.order_line.product_id.id, + 'sale_order_id': self.id, + }]) + self.partner_id.is_gym_member = True + return super().action_confirm() diff --git a/gym_mgmt_system/models/trainer_skill.py b/gym_mgmt_system/models/trainer_skill.py new file mode 100644 index 000000000..a05eb530c --- /dev/null +++ b/gym_mgmt_system/models/trainer_skill.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class TrainerSkill(models.Model): + """This model is showing the trainer skill.""" + _name = "trainer.skill" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Trainer Skill" + + name = fields.Char(string="Name", help="Name of the trainer", required=True) + code = fields.Char(string="Code", help="Code for the trainer") + company_id = fields.Many2one('res.company', string='Company', + default=lambda self: self.env.company, + help="This field hold company id") diff --git a/gym_mgmt_system/models/workout_days.py b/gym_mgmt_system/models/workout_days.py new file mode 100644 index 000000000..c7b166ae8 --- /dev/null +++ b/gym_mgmt_system/models/workout_days.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models, _ + + +class WorkoutDays(models.Model): + """This model is used for getting workout days.""" + _name = "workout.days" + _description = "Days given for Workout" + + name = fields.Char(string='Workout days', required=True, + help="Days given for Workout") diff --git a/gym_mgmt_system/models/workout_plan.py b/gym_mgmt_system/models/workout_plan.py new file mode 100644 index 000000000..c77de8131 --- /dev/null +++ b/gym_mgmt_system/models/workout_plan.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models, _ + + +class WorkoutPlan(models.Model): + """The model contain workout plan.""" + _name = "workout.plan" + _inherit = ["mail.thread", "mail.activity.mixin", "image.mixin"] + _description = "Workout Plan" + + name = fields.Char(string="Name", help="Name of the workout plan", required=True) + workout_days_ids = fields.Many2many("workout.days", + string="Workout Days", help="Workout " + "days") + workout_plan_option_ids = fields.One2many( + 'workout.plan.option', 'order_id', + string='Optional Products Lines', help="Workout plan option") + company_id = fields.Many2one('res.company', string='Company', + default=lambda self: self.env.company, + help="The current company") + + def action_workout_plan(self): + """Wizard opened to create my workout plans """ + assign_workout_form = self.env.ref( + 'gym_mgmt_system.view_workout_plan_wizard', False) + assign_workout_id = self.env['assign.workout'].create({ + 'workout_plan_id': self.id, + }) + return { + 'name': _('Assign Workout Plan'), + 'type': 'ir.actions.act_window', + 'res_model': 'assign.workout', + 'res_id': assign_workout_id.id, + 'view_id': assign_workout_form, + 'view_type': 'form', + 'view_mode': 'form', + 'target': 'new', + } diff --git a/gym_mgmt_system/models/workout_plan_option.py b/gym_mgmt_system/models/workout_plan_option.py new file mode 100644 index 000000000..20bef8f7d --- /dev/null +++ b/gym_mgmt_system/models/workout_plan_option.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Abbas P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class WorkoutPlanOption(models.Model): + """This model workout plan option is used adding the option for the workout + """ + _name = "workout.plan.option" + _description = "Workout Option" + _order = 'id' + + order_id = fields.Many2one('workout.plan', string='Workout' + ' Plan Reference', + ondelete='cascade', + index=True, help="Workout plan") + name = fields.Text(string='Description', required=True, + help="Name of the workout plan option") + exercise_id = fields.Many2one('gym.exercise', string='Exercises', + required=True, help="Exercise for the plan") + equipment_id = fields.Many2one('product.product', + string='Equipment', required=True, + tracking=True, help="Equipment for the " + "workout", + domain="[('is_gym_product', '!=',False)]", ) + sets = fields.Integer(string="Sets", help="Number of sets") + repeat = fields.Integer(string="Repeat", help="Number of repeat for cycle") + company_id = fields.Many2one('res.company', string='Company', + required=True, readonly=True, + default=lambda self: self.env.company, + help="The current company") diff --git a/gym_mgmt_system/security/gym_mgmt_system_groups.xml b/gym_mgmt_system/security/gym_mgmt_system_groups.xml new file mode 100644 index 000000000..bd59d1a23 --- /dev/null +++ b/gym_mgmt_system/security/gym_mgmt_system_groups.xml @@ -0,0 +1,22 @@ + + + + + Gym Management + category for Gym Management + + + Member + + + + Trainer + + + + + Operator + + + + diff --git a/gym_mgmt_system/security/gym_mgmt_system_security.xml b/gym_mgmt_system/security/gym_mgmt_system_security.xml new file mode 100644 index 000000000..c3b6829ae --- /dev/null +++ b/gym_mgmt_system/security/gym_mgmt_system_security.xml @@ -0,0 +1,44 @@ + + + + + Gym Management Exercise Rule + + [('company_id', 'in', company_ids)] + + + Gym Management Exercise For Rule + + [('company_id', 'in', company_ids)] + + + Gym Management Measurement History Rule + + [('company_id', 'in', company_ids)] + + + Gym Management Trainer Rule + + [('company_id', 'in', company_ids)] + + + Gym Management Gym Member Rule + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + + Gym Management Membership Rule + + [('company_id', 'in', company_ids)] + + + Gym Management Trainer skill Rule + + [('company_id', 'in', company_ids)] + + + Gym Management Trainer skill Rule + + [('company_id', 'in', company_ids)] + + diff --git a/gym_mgmt_system/security/ir.model.access.csv b/gym_mgmt_system/security/ir.model.access.csv new file mode 100644 index 000000000..df153ab21 --- /dev/null +++ b/gym_mgmt_system/security/ir.model.access.csv @@ -0,0 +1,43 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_assign_workout,access.assign.workout,model_assign_workout,gym_mgmt_system.group_gym_trainer,1,0,0,0 +access_assign_workout,access.assign.workout,model_assign_workout,gym_mgmt_system.group_gym_member,1,0,0,0 +access_assign_workout_operator,access.assign.workout,model_assign_workout,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_hr_employee_trainer,access.hr.employee,model_hr_employee,gym_mgmt_system.group_gym_trainer,1,1,1,0 +access_hr_employee_member,access.hr.employee,model_hr_employee,gym_mgmt_system.group_gym_member,1,0,0,0 +access_hr_employee_operator,access.hr.employee,model_hr_employee,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_sale_order_trainer,access.sale.order,model_sale_order,gym_mgmt_system.group_gym_trainer,1,1,1,0 +access_sale_order_member,access.sale.order,model_sale_order,gym_mgmt_system.group_gym_member,1,0,0,0 +access_sale_order_operator,access.sale.order,model_sale_order,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_res_partner_trainer,access.res.partner,model_res_partner,gym_mgmt_system.group_gym_trainer,1,0,0,0 +access_res_partner_operator,access.res.partner,model_res_partner,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_res_partner_member,access.res.partner,model_res_partner,gym_mgmt_system.group_gym_member,1,0,0,0 +access_gym_membership_operator,access.gym.membership,model_gym_membership,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_gym_membership_trainer,access.gym.membership,model_gym_membership,gym_mgmt_system.group_gym_trainer,1,0,0,0 +access_gym_membership_member,access.gym.membership,model_gym_membership,gym_mgmt_system.group_gym_member,1,0,0,0 +access_measurement_history_operator,access.measurement.history,model_measurement_history,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_measurement_history_trainer,access.measurement.history,model_measurement_history,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_measurement_history_member,access.measurement.history,model_measurement_history,gym_mgmt_system.group_gym_member,1,0,0,0 +access_product_template_trainer,access.product_template,model_product_template,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_product_template_member,access.product_template,model_product_template,gym_mgmt_system.group_gym_member,1,0,0,0 +access_product_template_operator,access.product_template,model_product_template,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_workout_plan_operator,access.workout.plan,model_workout_plan,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_workout_plan_trainer,access.workout.plan,model_workout_plan,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_workout_plan_member,access.workout.plan,model_workout_plan,gym_mgmt_system.group_gym_member,1,0,0,0 +access_workout_plan_option_operator,access.workout.plan.option,model_workout_plan_option,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_workout_plan_option_trainer,access.workout.plan.option,model_workout_plan_option,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_workout_plan_option_member,access.workout.plan.option,model_workout_plan_option,gym_mgmt_system.group_gym_member,1,0,0,0 +access_workout_days_operator,access.workout.days,model_workout_days,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_workout_days_trainer,access.workout.days,model_workout_days,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_workout_days_member,access.workout.days,model_workout_days,gym_mgmt_system.group_gym_member,1,1,0,0 +access_gym_exercise_operator,access.gym.exercise,model_gym_exercise,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_gym_exercise_trainer,access.gym.exercise,model_gym_exercise,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_gym_exercise_member,access.gym.exercise,model_gym_exercise,gym_mgmt_system.group_gym_member,1,0,0, +access_exercise_for_operator,access.exercise.for,model_exercise_for,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_exercise_for_trainer,access.exercise.for,model_exercise_for,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_exercise_for_member,access.exercise.for,model_exercise_for,gym_mgmt_system.group_gym_member,1,0,0,0 +access_trainer_skill_operator,access.trainer.skill,model_trainer_skill,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_trainer_skill_trainer,access.trainer.skill,model_trainer_skill,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_trainer_skill_member,access.trainer.skill,model_trainer_skill,gym_mgmt_system.group_gym_member,1,0,0,0 +access_my_workout_plan_operator,access.my.workout.plan,model_my_workout_plan,gym_mgmt_system.group_gym_operator,1,1,1,1 +access_my_workout_plan_trainer,access.my.workout.plan,model_my_workout_plan,gym_mgmt_system.group_gym_trainer,1,1,1,1 +access_my_workout_plan_member,access.my.workout.plan,model_my_workout_plan,gym_mgmt_system.group_gym_member,1,0,0,0 diff --git a/gym_mgmt_system/static/description/assets/cybro-icon.png b/gym_mgmt_system/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/cybro-icon.png differ diff --git a/gym_mgmt_system/static/description/assets/cybro-odoo.png b/gym_mgmt_system/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/cybro-odoo.png differ diff --git a/gym_mgmt_system/static/description/assets/h2.png b/gym_mgmt_system/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/h2.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/arrows-repeat.svg b/gym_mgmt_system/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/banner-1.png b/gym_mgmt_system/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/banner-1.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/banner-2.svg b/gym_mgmt_system/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/banner-bg.png b/gym_mgmt_system/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/banner-bg.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/banner-bg.svg b/gym_mgmt_system/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/banner-call.svg b/gym_mgmt_system/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/banner-mail.svg b/gym_mgmt_system/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/banner-pattern.svg b/gym_mgmt_system/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/banner-promo.svg b/gym_mgmt_system/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/brand-pair.svg b/gym_mgmt_system/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/check.png b/gym_mgmt_system/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/check.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/chevron.png b/gym_mgmt_system/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/chevron.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/close-icon.svg b/gym_mgmt_system/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/cogs.png b/gym_mgmt_system/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/cogs.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/collabarate-icon.svg b/gym_mgmt_system/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/gym_mgmt_system/static/description/assets/icons/consultation.png b/gym_mgmt_system/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/consultation.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/cybro-logo.png b/gym_mgmt_system/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/cybro-logo.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/down.svg b/gym_mgmt_system/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gym_mgmt_system/static/description/assets/icons/ecom-black.png b/gym_mgmt_system/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/ecom-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/education-black.png b/gym_mgmt_system/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/education-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/faq.png b/gym_mgmt_system/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/faq.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/feature-icon.svg b/gym_mgmt_system/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/feature.png b/gym_mgmt_system/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/feature.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/gear.svg b/gym_mgmt_system/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/hero.gif b/gym_mgmt_system/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..ed5d46f90 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/hero.gif differ diff --git a/gym_mgmt_system/static/description/assets/icons/hire-odoo.svg b/gym_mgmt_system/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/hotel-black.png b/gym_mgmt_system/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/hotel-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/license.png b/gym_mgmt_system/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/license.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/life-ring-icon.svg b/gym_mgmt_system/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/lifebuoy.png b/gym_mgmt_system/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/lifebuoy.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/mail.svg b/gym_mgmt_system/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/gym_mgmt_system/static/description/assets/icons/manufacturing-black.png b/gym_mgmt_system/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/manufacturing-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/notes.png b/gym_mgmt_system/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/notes.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/notification icon.svg b/gym_mgmt_system/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/odoo-consultancy.svg b/gym_mgmt_system/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/odoo-licencing.svg b/gym_mgmt_system/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/gym_mgmt_system/static/description/assets/icons/odoo-logo.png b/gym_mgmt_system/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/odoo-logo.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/patter.svg b/gym_mgmt_system/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/pattern1.png b/gym_mgmt_system/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/pattern1.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/pos-black.png b/gym_mgmt_system/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/pos-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/puzzle-piece-icon.svg b/gym_mgmt_system/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/puzzle.png b/gym_mgmt_system/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/puzzle.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/replace-icon.svg b/gym_mgmt_system/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/restaurant-black.png b/gym_mgmt_system/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/restaurant-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/screenshot-main.png b/gym_mgmt_system/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/screenshot-main.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/screenshot.png b/gym_mgmt_system/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/screenshot.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/service-black.png b/gym_mgmt_system/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/service-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/skype-fill.svg b/gym_mgmt_system/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/skype.png b/gym_mgmt_system/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/skype.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/skype.svg b/gym_mgmt_system/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/gym_mgmt_system/static/description/assets/icons/star-1.svg b/gym_mgmt_system/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/star-2.svg b/gym_mgmt_system/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/support.png b/gym_mgmt_system/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/support.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/test-1 - Copy.png b/gym_mgmt_system/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/test-1 - Copy.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/test-1.png b/gym_mgmt_system/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/test-1.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/test-2.png b/gym_mgmt_system/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/test-2.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/trading-black.png b/gym_mgmt_system/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/trading-black.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/training.png b/gym_mgmt_system/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/training.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/translate.svg b/gym_mgmt_system/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/update.png b/gym_mgmt_system/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/update.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/user.png b/gym_mgmt_system/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/user.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/video.png b/gym_mgmt_system/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/video.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/whatsapp.png b/gym_mgmt_system/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/whatsapp.png differ diff --git a/gym_mgmt_system/static/description/assets/icons/wrench-icon.svg b/gym_mgmt_system/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/gym_mgmt_system/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/gym_mgmt_system/static/description/assets/icons/wrench.png b/gym_mgmt_system/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/wrench.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/1.jpg b/gym_mgmt_system/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..3cb15fe01 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/1.jpg differ diff --git a/gym_mgmt_system/static/description/assets/modules/2.jpg b/gym_mgmt_system/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/2.jpg differ diff --git a/gym_mgmt_system/static/description/assets/modules/3.jpg b/gym_mgmt_system/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..717a00443 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/3.jpg differ diff --git a/gym_mgmt_system/static/description/assets/modules/4.png b/gym_mgmt_system/static/description/assets/modules/4.png new file mode 100644 index 000000000..00ebf54ad Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/4.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/5.jpg b/gym_mgmt_system/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..7c67e2eec Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/5.jpg differ diff --git a/gym_mgmt_system/static/description/assets/modules/6.gif b/gym_mgmt_system/static/description/assets/modules/6.gif new file mode 100644 index 000000000..a35ece8df Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/6.gif differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/img_1.png b/gym_mgmt_system/static/description/assets/screenshots/img_1.png new file mode 100644 index 000000000..bbc6d8000 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/img_1.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/img_16.png b/gym_mgmt_system/static/description/assets/screenshots/img_16.png new file mode 100644 index 000000000..b28f00a42 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/img_16.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss1.png b/gym_mgmt_system/static/description/assets/screenshots/ss1.png new file mode 100644 index 000000000..095cb9dfc Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss1.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss10.png b/gym_mgmt_system/static/description/assets/screenshots/ss10.png new file mode 100644 index 000000000..4716fc0a0 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss10.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss11.png b/gym_mgmt_system/static/description/assets/screenshots/ss11.png new file mode 100644 index 000000000..3e8a12c7a Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss11.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss12.png b/gym_mgmt_system/static/description/assets/screenshots/ss12.png new file mode 100644 index 000000000..09a8eaf7a Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss12.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss13.png b/gym_mgmt_system/static/description/assets/screenshots/ss13.png new file mode 100644 index 000000000..d4f50f02c Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss13.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss14.png b/gym_mgmt_system/static/description/assets/screenshots/ss14.png new file mode 100644 index 000000000..c7b7b117e Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss14.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss15.png b/gym_mgmt_system/static/description/assets/screenshots/ss15.png new file mode 100644 index 000000000..95e31caac Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss15.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss16.png b/gym_mgmt_system/static/description/assets/screenshots/ss16.png new file mode 100644 index 000000000..3827fc7f8 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss16.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss17.png b/gym_mgmt_system/static/description/assets/screenshots/ss17.png new file mode 100644 index 000000000..8e883ee3f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss17.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss18.png b/gym_mgmt_system/static/description/assets/screenshots/ss18.png new file mode 100644 index 000000000..675317da2 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss18.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss2.png b/gym_mgmt_system/static/description/assets/screenshots/ss2.png new file mode 100644 index 000000000..01a7fc3d3 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss2.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss3.png b/gym_mgmt_system/static/description/assets/screenshots/ss3.png new file mode 100644 index 000000000..21a4004b8 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss3.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss4.png b/gym_mgmt_system/static/description/assets/screenshots/ss4.png new file mode 100644 index 000000000..b8e855f17 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss4.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss5.png b/gym_mgmt_system/static/description/assets/screenshots/ss5.png new file mode 100644 index 000000000..23666f259 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss5.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss6.png b/gym_mgmt_system/static/description/assets/screenshots/ss6.png new file mode 100644 index 000000000..86dc0bea3 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss6.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss7.png b/gym_mgmt_system/static/description/assets/screenshots/ss7.png new file mode 100644 index 000000000..8cd94cd5e Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss7.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss8.png b/gym_mgmt_system/static/description/assets/screenshots/ss8.png new file mode 100644 index 000000000..70695586f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss8.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/ss9.png b/gym_mgmt_system/static/description/assets/screenshots/ss9.png new file mode 100644 index 000000000..13034f5df Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/ss9.png differ diff --git a/gym_mgmt_system/static/description/assets/y18.jpg b/gym_mgmt_system/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/y18.jpg differ diff --git a/gym_mgmt_system/static/description/banner.jpg b/gym_mgmt_system/static/description/banner.jpg new file mode 100644 index 000000000..46394627f Binary files /dev/null and b/gym_mgmt_system/static/description/banner.jpg differ diff --git a/gym_mgmt_system/static/description/icon.png b/gym_mgmt_system/static/description/icon.png new file mode 100644 index 000000000..c24d53089 Binary files /dev/null and b/gym_mgmt_system/static/description/icon.png differ diff --git a/gym_mgmt_system/static/description/index.html b/gym_mgmt_system/static/description/index.html new file mode 100644 index 000000000..26fdfa2ea --- /dev/null +++ b/gym_mgmt_system/static/description/index.html @@ -0,0 +1,1344 @@ + + + + + + Gym Management System + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+ +
+
+ +
+
+
+
+

+ GYM Management System For Managing Membership, Member, Workout Plan, etc. +

+

Gym Management System +

+
+
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+

Key + Highlights

+
+
+
+
+ +
+
+ Members can check their workout plans, track body measurements, access membership + details. +
+

+ + +
+
+
+
+
+ +
+
+ Trainer can create workout plans to members, develop their skills. +
+ +
+
+
+
+
+ +
+
+ Operator can manage trainers and members, Also Access all the membership + information. +
+ +
+
+
+
+
+ +
+
+ Directly create new membership from sale order. +
+ +
+
+
+
+ +
+
+
+ Gym Management System +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ Give Access rights to user + +

+
+
+

+ Go to Users and grant access rights; only then will the user be able to + access the Gym Management module. +

+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+

+ Manage Members +

+
+ +
+
+
+

+ Create and manage gym members, and track their measurements and + memberships. +

+
+ +
+
+
+
+
+
+
+
+
+

+ Manage Membership Plan +

+

+ User can create membership plans. +

+ +
+ +
+
+ +
+
+
+
+ +
+
+
+
+

+ Create Membership from sale Order + +

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Created Membership With SO Reference + +

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Measurement History +

+

+ Automatically create BMI and BMR of + member. +

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Manage Trainers +

+
+
+

+ Create specialization for trainer. +

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ List View Of Trainer Skills + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Workout Plan + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Assign Workout Plans + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Create Workout Days + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Gym Measurement Report + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Gym Equipments + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Gym Exercises + +

+
+
+

+ Create Exercise with their attributes like + benefits,steps,images etc. +

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Create exercise for parts of body + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

+ Create exercise And Also Add Video As + Refernce + +

+
+
+

+

+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+
+ +
+
+
+
+ +
+

+ Members can check + their workout + plans, track body measurements, access + membership details.

+
+
+
+
+
+
+
+ +
+

+ Trainer can create + workout plans + to members, develop their skills.

+
+
+
+
+
+
+
+ +
+

+ Operator can manage + trainers and + members, Also Access all the membership + information.

+
+
+
+
+
+
+
+ +
+

+ Directly create new + membership + from sale order.

+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+

+ Yes, any employee whose image is set in the employee profile + and is selected in the POS configuration settings can use + Face Recognition for login. +

+
+
+ +
+ +
+

+ If the system fails to recognize the employee's face, + login will not be allowed, and the employee may need to + retry after setting latest image in the Employee module. +

+
+
+ + +
+ +
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 2th March, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + \ No newline at end of file diff --git a/gym_mgmt_system/views/exercise_for_views.xml b/gym_mgmt_system/views/exercise_for_views.xml new file mode 100644 index 000000000..3937d66ff --- /dev/null +++ b/gym_mgmt_system/views/exercise_for_views.xml @@ -0,0 +1,33 @@ + + + + + exercise.for.view.tree + exercise.for + + + + + + + + + + Exercise For + ir.actions.act_window + exercise.for + list + +

+ Create your first Exercise For! +

+
+
+ + + +
diff --git a/gym_mgmt_system/views/gym_exercise_views.xml b/gym_mgmt_system/views/gym_exercise_views.xml new file mode 100644 index 000000000..d671052f4 --- /dev/null +++ b/gym_mgmt_system/views/gym_exercise_views.xml @@ -0,0 +1,99 @@ + + + + + gym.exercise.view.form + gym.exercise + +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+
+
+
+
+
+
+
+ Video Preview + +

+ Please enter a valid + Video URL. +

+
+ +
+
+
+
+
+
+
+
+ + +
+
+ + + Gym Exercise + ir.actions.act_window + gym.exercise + list,form,kanban + +

+ Create your first Exercise! +

+
+
+ + +
diff --git a/gym_mgmt_system/views/gym_membership_views.xml b/gym_mgmt_system/views/gym_membership_views.xml new file mode 100644 index 000000000..1d5ab67b9 --- /dev/null +++ b/gym_mgmt_system/views/gym_membership_views.xml @@ -0,0 +1,76 @@ + + + + + gym.membership.view.form + gym.membership + +
+
+ +
+ +
+

+ +

+
+ + + + + + + + + + + +
+ + +
+
+ + + gym.membership.view.tree + gym.membership + + + + + + + + + + + + + Gym Membership + ir.actions.act_window + gym.membership + list,form,kanban + +

+ Create your first Membership! +

+
+
+ + +
diff --git a/gym_mgmt_system/views/gym_report_views.xml b/gym_mgmt_system/views/gym_report_views.xml new file mode 100644 index 000000000..543000687 --- /dev/null +++ b/gym_mgmt_system/views/gym_report_views.xml @@ -0,0 +1,65 @@ + + + + + gym.report.form + gym.report + +
+ + + + + + + + + +
+
+ + + Gym Report + ir.actions.act_window + gym.report + list,form,kanban + +

+ Create your first Report! +

+
+
+ + + Measurement History + ir.actions.act_window + measurement.history + pivot + +

+ Create your first Measurement History! +

+
+
+ + + measurement.history.report.pivot + measurement.history + + + + + + + + + + +
diff --git a/gym_mgmt_system/views/hr_employee_views.xml b/gym_mgmt_system/views/hr_employee_views.xml new file mode 100644 index 000000000..672efda99 --- /dev/null +++ b/gym_mgmt_system/views/hr_employee_views.xml @@ -0,0 +1,48 @@ + + + + + Trainers + ir.actions.act_window + hr.employee + kanban,list,form + [('is_trainer','=','True')] + {'default_is_trainer':'True'} + +

+ Create your first Trainer! +

+
+
+ + + hr.employee.view.form.inherited.gym.mgmt.system + + hr.employee + + + + + + + + + + + + +
diff --git a/gym_mgmt_system/views/measurement_history_views.xml b/gym_mgmt_system/views/measurement_history_views.xml new file mode 100644 index 000000000..c186b3c07 --- /dev/null +++ b/gym_mgmt_system/views/measurement_history_views.xml @@ -0,0 +1,118 @@ + + + + + measurement.history.view.form + measurement.history + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + measurement.history.view.tree + measurement.history + + + + + + + + + + + + Measurement History + ir.actions.act_window + measurement.history + list,form,kanban + +

+ Create your first Measurement History! +

+
+
+ + +
diff --git a/gym_mgmt_system/views/membership_plan_views.xml b/gym_mgmt_system/views/membership_plan_views.xml new file mode 100644 index 000000000..07d09bfba --- /dev/null +++ b/gym_mgmt_system/views/membership_plan_views.xml @@ -0,0 +1,143 @@ + + + + + Membership Plans + product.template + 50 + + + + + + + + + + + + + + product.template.kanban + product.template + + + + +
+ + + + + +
+
+ + From: + + To: + +
+
+
+
+
+
+ + Membership Plan + product.template + 50 + +
+ + +
+
+
+ + + Membership Plan + ir.actions.act_window + product.template + + list,form + +

+ Create your first Trainer! +

+
+
+ + Membership Plans + product.template + [('membership','=',True), ('type', '=', 'service')] + { + 'membership':True, + 'type':'service', + 'default_membership': True, + 'default_type': 'service', + } + + +

+ Create new Membership Plan +

+
+ +
+ + + list + + + + + + form + + + + + + kanban + + + + + +
diff --git a/gym_mgmt_system/views/my_workout_plan_views.xml b/gym_mgmt_system/views/my_workout_plan_views.xml new file mode 100644 index 000000000..bf0a9cf80 --- /dev/null +++ b/gym_mgmt_system/views/my_workout_plan_views.xml @@ -0,0 +1,56 @@ + + + + + my.workout.plan.view.form + my.workout.plan + +
+ +
+

+ +

+
+ + + + +
+ + +
+
+ + + my.workout.plan.view.tree + my.workout.plan + + + + + + + + + + + My Workout Plan + ir.actions.act_window + my.workout.plan + list,form + [('assign_to_id', '=', uid)] + +

+ My Workout Plan! +

+
+
+ + +
diff --git a/gym_mgmt_system/views/product_template_views.xml b/gym_mgmt_system/views/product_template_views.xml new file mode 100644 index 000000000..9cb040d41 --- /dev/null +++ b/gym_mgmt_system/views/product_template_views.xml @@ -0,0 +1,46 @@ + + + + + Equipments + ir.actions.act_window + product.template + kanban,list,form + [('is_gym_product','=','True')] + {'default_is_gym_product':'True'} + +

+ Create your first Equipment! +

+
+
+ + + product.template.view.form.inherit.gym.mgmt.system + + product.template + + + + + + + + + + + + + +
diff --git a/gym_mgmt_system/views/res_partner_views.xml b/gym_mgmt_system/views/res_partner_views.xml new file mode 100644 index 000000000..73fe22691 --- /dev/null +++ b/gym_mgmt_system/views/res_partner_views.xml @@ -0,0 +1,74 @@ + + + + + Gym Member + ir.actions.act_window + res.partner + kanban,list,form + [('is_gym_member','=','True')] + {'default_is_gym_member':'True'} + +

+ Create your first Member! +

+
+
+ + + res.partner.view.form.inherit.gym.mgmt.system + res.partner + + + + + + + + + + + + res.partner.view.kanban.inherit.gym.mgmt.system + + res.partner + + + +
+
    +
  • + Gym Member + +
  • +
    + Memberships : + +
    +
    + Measurements : + +
    +
  • + +
+
+
+
+
+ + + +
diff --git a/gym_mgmt_system/views/trainer_skill_views.xml b/gym_mgmt_system/views/trainer_skill_views.xml new file mode 100644 index 000000000..4e495748d --- /dev/null +++ b/gym_mgmt_system/views/trainer_skill_views.xml @@ -0,0 +1,27 @@ + + + + + trainer.skill.view.tree + trainer.skill + + + + + + + + + + + Trainer skill + ir.actions.act_window + trainer.skill + list + +

+ Create your first Trainer skill! +

+
+
+
diff --git a/gym_mgmt_system/views/workout_days_views.xml b/gym_mgmt_system/views/workout_days_views.xml new file mode 100644 index 000000000..5d4072bb9 --- /dev/null +++ b/gym_mgmt_system/views/workout_days_views.xml @@ -0,0 +1,30 @@ + + + + workout.days.view.tree + workout.days + + + + + + + + + Workout Days + ir.actions.act_window + workout.days + list + +

+ Create your first Workout Days! +

+
+
+ + +
diff --git a/gym_mgmt_system/views/workout_plan_views.xml b/gym_mgmt_system/views/workout_plan_views.xml new file mode 100644 index 000000000..c68bcaac1 --- /dev/null +++ b/gym_mgmt_system/views/workout_plan_views.xml @@ -0,0 +1,78 @@ + + + + + workout.plan.view.tree + workout.plan + + + + + + + + + + workout.plan.view.form + workout.plan + +
+ +
+

+ +

+
+ + + + + +