diff --git a/gym_mgmt_system/README.rst b/gym_mgmt_system/README.rst new file mode 100644 index 000000000..ed45f267e --- /dev/null +++ b/gym_mgmt_system/README.rst @@ -0,0 +1,45 @@ +.. 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 will help manage the GYM. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V16) Sahla Sherin , 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: ``__ \ No newline at end of file diff --git a/gym_mgmt_system/__init__.py b/gym_mgmt_system/__init__.py new file mode 100644 index 000000000..97e00d266 --- /dev/null +++ b/gym_mgmt_system/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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..694ef5091 --- /dev/null +++ b/gym_mgmt_system/__manifest__.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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': '16.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': False, + '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..6f3733af1 --- /dev/null +++ b/gym_mgmt_system/data/ir_sequence_data.xml @@ -0,0 +1,10 @@ + + + + Gym Membership sequence + gym.membership + MEMPLAN/ + 4 + + + \ No newline at end of file diff --git a/gym_mgmt_system/doc/RELEASE_NOTES.md b/gym_mgmt_system/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..ec5063af3 --- /dev/null +++ b/gym_mgmt_system/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 18.11.2023 +#### Version 16.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..70a88ae17 --- /dev/null +++ b/gym_mgmt_system/models/__init__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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..bf666fd17 --- /dev/null +++ b/gym_mgmt_system/models/exercise_for.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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 ') + 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..1014627ae --- /dev/null +++ b/gym_mgmt_system/models/gym_exercise.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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') + exercise_for_ids = fields.Many2many("exercise.for", + string="Exercise For", + help='For which part this exercise') + equipment_ids = fields.Many2one('product.product', + string='Equipment', + required=True, tracking=True, + domain="[('gym_product', '!=',False)]", + help='The equiments 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..feac4544b --- /dev/null +++ b/gym_mgmt_system/models/gym_membership.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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')) + member_id = fields.Many2one('res.partner', string='Member', + required=True, tracking=True, + domain="[('gym_member', '!=',False)]") + membership_scheme_id = fields.Many2one('product.product', + string='Membership scheme', + required=True, tracking=True, + domain="[('membership_date_from', " + "'!=',False)]") + paid_amount = fields.Float(string="Paid Amount", tracking=True) + membership_fees = fields.Float(string="Membership Fees", tracking=True, + related="membership_scheme_id.list_price") + sale_order_id = fields.Many2one('sale.order', string='Sales Order', + ondelete='cascade', copy=False, + 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 + def create_multi(self, vals): + """Sequence number for membership """ + if vals.get('reference', ('New')) == ('New'): + vals['reference'] = self.env['ir.sequence'].next_by_code( + 'gym.membership') or ('New') + res = super(GymMembership, self).create(vals) + return res diff --git a/gym_mgmt_system/models/gym_report.py b/gym_mgmt_system/models/gym_report.py new file mode 100644 index 000000000..b54d1d3df --- /dev/null +++ b/gym_mgmt_system/models/gym_report.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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..12dbb5cc3 --- /dev/null +++ b/gym_mgmt_system/models/hr_employee.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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' + + 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..4e0cb1753 --- /dev/null +++ b/gym_mgmt_system/models/measurement_history.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin() +# +# 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 = "gender" + + 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="[('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='Enter the age') + weight = fields.Float( + 'Weight', digits='Stock Weight', store=True, + help='define the your weight') + weight_uom_name = fields.Char(string='Weight unit of measure label', + default=_get_default_weight_uom, + help='weight uom ') + height = fields.Float( + 'Height', digits='Stock Height', store=True, help='Define your ' + 'height') + height_uom_name = fields.Char(string='height unit of measure label', + default='cm', help='height uom') + bmi = fields.Float(string='BMI', store=True, + compute='_compute_display_name', help='Calculate BMI') + bmr = fields.Float(string='BMR', store=True, + compute='_compute_display_name', + help='Calculate BMR') + neck = fields.Float(string='neck', store=True, help='The length of neck') + biceps = fields.Float(string='Biceps', store=True, + help='The length of biceps') + calf = fields.Float(string='Calf', store=True, help='The length of calf') + hips = fields.Float(string='Hips', store=True, help='The length of hips') + chest = fields.Float(string='Chest', store=True, + help='The length of chest') + waist = fields.Float(string='Waist', store=True, + help='The length of waist') + thighs = fields.Float(string='Thighs', store=True, + 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') + def _compute_display_name(self): + """Based on weight and height ,calculate the bmi and bmr""" + self.bmi = self.bmr = 0 + self.display_name = self.member_id.name + 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 + self.display_name = self.member_id.name 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..8af74562f --- /dev/null +++ b/gym_mgmt_system/models/my_workout_plan.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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 ") + assign_to_id = fields.Many2one('res.partner', + string='Assign To', + domain="[('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..98ef0ab0d --- /dev/null +++ b/gym_mgmt_system/models/product_template.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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' + + 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..e7628b197 --- /dev/null +++ b/gym_mgmt_system/models/res_partner.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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' + + gym_member = fields.Boolean(string='Gym Member', default=True, + help='This field define the whether is member' + 'of gym') + membership_count = fields.Integer('membership_count', + compute='_compute_membership_count', + help='This help to count the membership') + measurement_count = fields.Integer('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('gym_member') + def _validate_gym_member(self): + """Select sale person to assign workout plan """ + if self.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..d517bc2b7 --- /dev/null +++ b/gym_mgmt_system/models/sale_order.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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, + }]) + + res = super(SaleOrder, self).action_confirm() + return res diff --git a/gym_mgmt_system/models/trainer_skill.py b/gym_mgmt_system/models/trainer_skill.py new file mode 100644 index 000000000..6688916dc --- /dev/null +++ b/gym_mgmt_system/models/trainer_skill.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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") + code = fields.Char(string="Code", help="Code") + 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..70712abb2 --- /dev/null +++ b/gym_mgmt_system/models/workout_days.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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..d5fb435dc --- /dev/null +++ b/gym_mgmt_system/models/workout_plan.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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") + workout_days_ids = fields.Many2many("workout.days", + string="Workout Days", help="Workout " + "days") + workout_plan_option_ids = fields.One2many( + 'workout.plan.option', 'order_id', + '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..03167234d --- /dev/null +++ b/gym_mgmt_system/models/workout_plan_option.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Sahla Sherin () +# +# 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', 'Workout' + ' Plan Reference', + ondelete='cascade', + index=True, help="Workout plan") + name = fields.Text('Description', required=True, help="Name") + exercise_id = fields.Many2one('gym.exercise', 'Exercises', + required=True, help="Exercise for the plan") + equipment_ids = fields.Many2one('product.product', + string='equipment', required=True, + tracking=True, help="Equipment for the " + "workout", + domain="[('gym_product', '!=',False)]",) + sets = fields.Integer(string="Sets", help="Set") + 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..1e0193f66 --- /dev/null +++ b/gym_mgmt_system/security/ir.model.access.csv @@ -0,0 +1,49 @@ +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_product_template_trainer,access.product.template,model_product_template,gym_mgmt_system.group_gym_trainer,1,1,1,0 +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_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_trainer_skill_operator,access.trainer_skill,model_trainer_skill,gym_mgmt_system.group_gym_operator,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_trainer_skill_trainer,access.trainer_skill,model_trainer_skill,gym_mgmt_system.group_gym_trainer,1,1,1,1 +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/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/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/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/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/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/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/logo.png b/gym_mgmt_system/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/gym_mgmt_system/static/description/assets/icons/logo.png differ 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/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.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/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/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/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/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/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/misc/categories.png b/gym_mgmt_system/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/categories.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/check-box.png b/gym_mgmt_system/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/check-box.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/compass.png b/gym_mgmt_system/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/compass.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/corporate.png b/gym_mgmt_system/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/corporate.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/customer-support.png b/gym_mgmt_system/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/customer-support.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/cybrosys-logo.png b/gym_mgmt_system/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/cybrosys-logo.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/features.png b/gym_mgmt_system/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/features.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/logo.png b/gym_mgmt_system/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/logo.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/pictures.png b/gym_mgmt_system/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/pictures.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/pie-chart.png b/gym_mgmt_system/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/pie-chart.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/right-arrow.png b/gym_mgmt_system/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/right-arrow.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/star.png b/gym_mgmt_system/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/star.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/support.png b/gym_mgmt_system/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/support.png differ diff --git a/gym_mgmt_system/static/description/assets/misc/whatsapp.png b/gym_mgmt_system/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/misc/whatsapp.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/1.png b/gym_mgmt_system/static/description/assets/modules/1.png new file mode 100644 index 000000000..b21837312 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/1.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/2.png b/gym_mgmt_system/static/description/assets/modules/2.png new file mode 100644 index 000000000..eb3f8652f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/2.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/3.png b/gym_mgmt_system/static/description/assets/modules/3.png new file mode 100644 index 000000000..a9c4ec82c Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/3.png 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..17ba4d75f 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.gif b/gym_mgmt_system/static/description/assets/modules/5.gif new file mode 100644 index 000000000..2a5f8e659 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/5.gif differ diff --git a/gym_mgmt_system/static/description/assets/modules/5.png b/gym_mgmt_system/static/description/assets/modules/5.png new file mode 100644 index 000000000..489f44e86 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/5.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/6.png b/gym_mgmt_system/static/description/assets/modules/6.png new file mode 100644 index 000000000..ed11bd818 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/6.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/budget_image.png b/gym_mgmt_system/static/description/assets/modules/budget_image.png new file mode 100644 index 000000000..b50130c7d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/budget_image.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/credit_image.png b/gym_mgmt_system/static/description/assets/modules/credit_image.png new file mode 100644 index 000000000..3ad04ecfd Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/credit_image.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/employee_image.png b/gym_mgmt_system/static/description/assets/modules/employee_image.png new file mode 100644 index 000000000..30ad58232 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/employee_image.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/export_image.png b/gym_mgmt_system/static/description/assets/modules/export_image.png new file mode 100644 index 000000000..492980ad0 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/export_image.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/gantt_image.png b/gym_mgmt_system/static/description/assets/modules/gantt_image.png new file mode 100644 index 000000000..1ae7cfe3b Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/gantt_image.png differ diff --git a/gym_mgmt_system/static/description/assets/modules/quotation_image.png b/gym_mgmt_system/static/description/assets/modules/quotation_image.png new file mode 100644 index 000000000..499b1a72f Binary files /dev/null and b/gym_mgmt_system/static/description/assets/modules/quotation_image.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/1.png b/gym_mgmt_system/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..d6067f694 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/1.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/10.png b/gym_mgmt_system/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..e5901ccdb Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/10.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/11.png b/gym_mgmt_system/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..60ba25699 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/11.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/12.png b/gym_mgmt_system/static/description/assets/screenshots/12.png new file mode 100644 index 000000000..493edbb57 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/12.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/13.png b/gym_mgmt_system/static/description/assets/screenshots/13.png new file mode 100644 index 000000000..5092b9b43 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/13.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/14.png b/gym_mgmt_system/static/description/assets/screenshots/14.png new file mode 100644 index 000000000..8bc49856c Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/14.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/15.png b/gym_mgmt_system/static/description/assets/screenshots/15.png new file mode 100644 index 000000000..841da2fdb Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/15.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/16.png b/gym_mgmt_system/static/description/assets/screenshots/16.png new file mode 100644 index 000000000..3827fc7f8 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/16.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/17.png b/gym_mgmt_system/static/description/assets/screenshots/17.png new file mode 100644 index 000000000..4f266225b Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/17.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/18.png b/gym_mgmt_system/static/description/assets/screenshots/18.png new file mode 100644 index 000000000..20c2ae56b Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/18.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/19.png b/gym_mgmt_system/static/description/assets/screenshots/19.png new file mode 100644 index 000000000..647e0fac9 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/19.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/2.png b/gym_mgmt_system/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..b65eda2ef Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/2.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/20.png b/gym_mgmt_system/static/description/assets/screenshots/20.png new file mode 100644 index 000000000..27386f5ab Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/20.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/21.png b/gym_mgmt_system/static/description/assets/screenshots/21.png new file mode 100644 index 000000000..c92ead767 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/21.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/3.png b/gym_mgmt_system/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..9893e19db Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/3.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/4.png b/gym_mgmt_system/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..c6b9fd25d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/4.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/5.png b/gym_mgmt_system/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..dd73850cd Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/5.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/6.png b/gym_mgmt_system/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..1264a9223 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/6.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/7.png b/gym_mgmt_system/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..d1925df57 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/7.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/8.png b/gym_mgmt_system/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..f04c4cca9 Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/8.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/9.png b/gym_mgmt_system/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..4bb53d65d Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/9.png differ diff --git a/gym_mgmt_system/static/description/assets/screenshots/hero.gif b/gym_mgmt_system/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..0b72839ee Binary files /dev/null and b/gym_mgmt_system/static/description/assets/screenshots/hero.gif 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..773622c58 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..e10b02710 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..73ec0edbd --- /dev/null +++ b/gym_mgmt_system/static/description/index.html @@ -0,0 +1,731 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+ +

+ Gym Management System

+

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

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

+ Explore This + Module

+
+ + + + +
+
+ +
+

+ Overview +

+
+
+
+ In this software, provides fitness businesses the functionality needed + to manage all aspects of their business + and efficiently operate their studio. +
+
+ + + +
+
+ +
+

+ Features +

+
+
+
+
+ + 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 +
+
+
+ + +
+
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+ +
+

+ Manage Members. +

+

+ Create new member and + manage all members in the gym. Also check the number of + measurements and memberships of members.

+ +
+ +
+

+ Manage Membership + Plan. +

+

+ User can create + membership plansxzx c.

+ + +
+ +
+

+ Create Membership + from sale Order +

+ + +
+ +
+

+ Measurement History +

+

+ - Automatically create + BMI and BMR of member.

+ + +
+ +
+

+ Manage Trainers. +

+

+ - Create specialization + for trainer.

+

+ - Create Trainer + Skills

+ + + +
+ +
+

+ Workout Plan. +

+

+ - Create Workout + Plans.

+

+ - Assign Workout + Plans.

+

+ - Create Workout + Days.

+ + + + +
+ +
+

+ Gym Measurement + Report +

+ + +
+ +
+

+ Gym Equipments + Report +

+ + +
+
+

+ Gym Exercises +

+

+ - Create Exercise with thier attributes like + benefits,steps,images etc

+

+ - Create exercise for parts of body

+ + + + + + +
+
+

+ Gym Exercises +

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

+ Related + Products +

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

+ Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

+ Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ 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..a8b47fcba --- /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 + tree + +

+ 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..6b2c060f9 --- /dev/null +++ b/gym_mgmt_system/views/gym_exercise_views.xml @@ -0,0 +1,94 @@ + + + + + gym.exercise.view.form + gym.exercise + +
+ + + + + + + + + + + + + + + + + + +
+ + + + +
+
+ + +
+
+
+
+
+
+
+
+ Video Preview + +

+ Please enter a valid Video URL. +

+
+ +
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+ + + Gym Exercise + ir.actions.act_window + gym.exercise + tree,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..1fefbf7b4 --- /dev/null +++ b/gym_mgmt_system/views/gym_membership_views.xml @@ -0,0 +1,78 @@ + + + + + gym.membership.form + gym.membership + +
+
+ +
+ +
+

+ +

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

+ Create your first Membership! +

+
+
+ + +
\ No newline at end of file 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..cabb22db0 --- /dev/null +++ b/gym_mgmt_system/views/gym_report_views.xml @@ -0,0 +1,69 @@ + + + + + gym.report.form + gym.report + +
+ + + + + + + +
+ + + +
+
+
+
+ + + Gym Report + ir.actions.act_window + gym.report + tree,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..62daa11d6 --- /dev/null +++ b/gym_mgmt_system/views/hr_employee_views.xml @@ -0,0 +1,46 @@ + + + + + Trainers + ir.actions.act_window + hr.employee + kanban,tree,form + [('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..f2b7a3928 --- /dev/null +++ b/gym_mgmt_system/views/measurement_history_views.xml @@ -0,0 +1,122 @@ + + + + + measurement.history.view.form + measurement.history + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+
+
+ + + measurement.history.view.tree + measurement.history + + + + + + + + + + + + Measurement History + ir.actions.act_window + measurement.history + tree,form,kanban + +

+ Create your first Measurement History! +

+
+
+ + +
\ No newline at end of file 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..fd2d22df1 --- /dev/null +++ b/gym_mgmt_system/views/membership_plan_views.xml @@ -0,0 +1,22 @@ + + + + + Membership Plan + ir.actions.act_window + product.template + + tree,form + +

+ Create your first Trainer! +

+
+
+ + + +
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..0def063aa --- /dev/null +++ b/gym_mgmt_system/views/my_workout_plan_views.xml @@ -0,0 +1,59 @@ + + + + + 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 + tree,form + [('assign_to_id', '=', uid)] + +

+ My Workout Plan! +

+
+
+ + +
\ No newline at end of file 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..7215bb307 --- /dev/null +++ b/gym_mgmt_system/views/product_template_views.xml @@ -0,0 +1,42 @@ + + + + + Equipments + ir.actions.act_window + product.template + kanban,tree,form + [('gym_product','=','True')] + +

+ Create your first Equipment! +

+
+
+ + + product.template.view.form.inherit.gym.mgmt.system + product.template + + + + + + + + + + + + +
\ No newline at end of file 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..40a6abafc --- /dev/null +++ b/gym_mgmt_system/views/res_partner_views.xml @@ -0,0 +1,69 @@ + + + + + Gym Member + ir.actions.act_window + res.partner + kanban,tree,form + [('gym_member','=','True')] + +

+ Create your first Member! +

+
+
+ + + res.partner.inherit.form + res.partner + + + + + + + + + + + + res.partner.kanban.inherit + 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..17ea3fd42 --- /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 + tree + +

+ 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..ff63f3d51 --- /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 + tree + +

+ Create your first Workout Days! +

+
+
+ + +
\ No newline at end of file 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..e9f2e2933 --- /dev/null +++ b/gym_mgmt_system/views/workout_plan_views.xml @@ -0,0 +1,79 @@ + + + + + workout.plan.view.tree + workout.plan + + + + + + + + + + workout.plan.view.form + workout.plan + +
+ +
+

+ +

+
+ + + + + +