work on diet plan
166
diet_template/LICENSE/LICENSE
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Copyright (C) 2019-TODAY Serpent Consulting Services Pvt. Ltd. (<http://www.serpentcs.com>).
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
||||||
63
diet_template/README.rst
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
=========================
|
||||||
|
Diet Template Management
|
||||||
|
=========================
|
||||||
|
|
||||||
|
The Diet Plan Template Management System module is manage Diet Plan Designing and Scheduling.
|
||||||
|
|
||||||
|
=========
|
||||||
|
Features
|
||||||
|
=========
|
||||||
|
|
||||||
|
* Diet Meals
|
||||||
|
|
||||||
|
- Create customized diet meals based on the intervals along with the quantity to be taken.
|
||||||
|
|
||||||
|
* Diet Routines
|
||||||
|
|
||||||
|
- Select multiple diet meals and you can plan a diet routine for your gym members.
|
||||||
|
|
||||||
|
* Food Items
|
||||||
|
|
||||||
|
- Configure food items along with their nutritive value.
|
||||||
|
|
||||||
|
* Diet Plan Assignment
|
||||||
|
|
||||||
|
- Easily assign a diet plan to the member.
|
||||||
|
- You can set a start date and the end date and the number of days will be automatically calculated upon start date.
|
||||||
|
- The plans in the hierarchy will get populated and assigned automatically.
|
||||||
|
|
||||||
|
* My Diet Plans
|
||||||
|
|
||||||
|
- Member can see his diet plan and check what he has to eat on a particular day.
|
||||||
|
|
||||||
|
============
|
||||||
|
Similar Apps
|
||||||
|
============
|
||||||
|
|
||||||
|
Diet Template Management
|
||||||
|
Diet Template
|
||||||
|
Diet Plan Designing and Scheduling
|
||||||
|
Diet app template
|
||||||
|
Diet plan template
|
||||||
|
Diet record template
|
||||||
|
Diet schedule template
|
||||||
|
Diet design template
|
||||||
|
Diet plan sheet template
|
||||||
|
Diet plan table template
|
||||||
|
Diet analysis template
|
||||||
|
Diet diary template
|
||||||
|
Diet food journal template
|
||||||
|
Diet food log template
|
||||||
|
Diet meal plan template
|
||||||
|
Diet meal template
|
||||||
|
Diet plan schedule template
|
||||||
|
Diet planner template
|
||||||
|
Diet planning template
|
||||||
|
Diet website template
|
||||||
|
Meals diet plan template
|
||||||
|
Odoo Diet Template
|
||||||
|
Odoo DietTemplate Management
|
||||||
|
Diet Template Management System
|
||||||
|
odoo diet plan template
|
||||||
|
Diet Template Management System in odoo
|
||||||
|
Diet plan template tool
|
||||||
4
diet_template/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import models
|
||||||
|
from . import wizard
|
||||||
31
diet_template/__manifest__.py
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'Diet Template',
|
||||||
|
'summary': 'Diet Plan Designing and Scheduling',
|
||||||
|
'author': 'Serpent Consulting Services Pvt. Ltd.',
|
||||||
|
'maintainer': 'Serpent Consulting Services Pvt. Ltd.',
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
'category': 'Gym Management',
|
||||||
|
'website': 'http://www.serpentcs.com',
|
||||||
|
'version': '13.0.1.0.0',
|
||||||
|
'sequence': 1,
|
||||||
|
'depends': ['gym'],
|
||||||
|
'data': [
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
'views/diet_view.xml',
|
||||||
|
'views/project_view.xml',
|
||||||
|
'views/project_task_view.xml',
|
||||||
|
'views/menuitem_hide.xml',
|
||||||
|
'views/sale_order_view.xml',
|
||||||
|
'wizard/diet_schedule_view.xml',
|
||||||
|
"views/partner_view.xml",
|
||||||
|
],
|
||||||
|
'demo': [
|
||||||
|
'demo/diet_plan_demo.xml',
|
||||||
|
],
|
||||||
|
'images': ['static/description/gym2.jpg'],
|
||||||
|
'installable': True,
|
||||||
|
'price': 99,
|
||||||
|
'currency': 'EUR',
|
||||||
|
}
|
||||||
BIN
diet_template/__pycache__/__init__.cpython-36.pyc
Normal file
BIN
diet_template/__pycache__/__init__.cpython-37.pyc
Normal file
1163
diet_template/demo/diet_plan_demo.xml
Normal file
6
diet_template/models/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import diet
|
||||||
|
from . import project
|
||||||
|
from . import sale_order
|
||||||
|
from . import res_partner
|
||||||
BIN
diet_template/models/__pycache__/__init__.cpython-36.pyc
Normal file
BIN
diet_template/models/__pycache__/__init__.cpython-37.pyc
Normal file
BIN
diet_template/models/__pycache__/diet.cpython-36.pyc
Normal file
BIN
diet_template/models/__pycache__/diet.cpython-37.pyc
Normal file
BIN
diet_template/models/__pycache__/project.cpython-36.pyc
Normal file
BIN
diet_template/models/__pycache__/project.cpython-37.pyc
Normal file
BIN
diet_template/models/__pycache__/res_partner.cpython-36.pyc
Normal file
BIN
diet_template/models/__pycache__/res_partner.cpython-37.pyc
Normal file
BIN
diet_template/models/__pycache__/sale_order.cpython-36.pyc
Normal file
BIN
diet_template/models/__pycache__/sale_order.cpython-37.pyc
Normal file
47
diet_template/models/diet.py
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from odoo import api, fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class DietList(models.Model):
|
||||||
|
"""New model for creating diet Task."""
|
||||||
|
|
||||||
|
_name = 'diet.list'
|
||||||
|
_description = 'Information of task,interval and food items in task.'
|
||||||
|
|
||||||
|
name = fields.Char('Name')
|
||||||
|
sequence = fields.Integer("Sequence")
|
||||||
|
diet_id = fields.Many2one('diet.master', 'Diet Line')
|
||||||
|
food_item_ids = fields.One2many('diet.plan.lines', 'diet_list_id', 'Food')
|
||||||
|
|
||||||
|
|
||||||
|
class DietMaster(models.Model):
|
||||||
|
"""Information about diet plan and task in the plan and total
|
||||||
|
days of task.
|
||||||
|
"""
|
||||||
|
|
||||||
|
_name = 'diet.master'
|
||||||
|
_description = 'Diet Master'
|
||||||
|
|
||||||
|
name = fields.Char("Goal")
|
||||||
|
diet_task_ids = fields.One2many('diet.list', 'diet_id', 'Diet')
|
||||||
|
total_days = fields.Integer(
|
||||||
|
compute="_compute_calculate_total_days",
|
||||||
|
string="Total Days Of Diet Plan")
|
||||||
|
diet_plan_ids = fields.Many2many('diet.list', 'master_list_rel',
|
||||||
|
'master_id', 'diet_list_id',
|
||||||
|
string="Diet Task")
|
||||||
|
|
||||||
|
@api.depends('diet_plan_ids')
|
||||||
|
def _compute_calculate_total_days(self):
|
||||||
|
"""Calculating total days of PLan."""
|
||||||
|
for diet_master_rec in self:
|
||||||
|
diet_master_rec.total_days = \
|
||||||
|
len(diet_master_rec.diet_plan_ids.ids)
|
||||||
|
|
||||||
|
|
||||||
|
class DietPlanLines(models.Model):
|
||||||
|
_inherit = 'diet.plan.lines'
|
||||||
|
|
||||||
|
diet_list_id = fields.Many2one('diet.list', 'project task list')
|
||||||
|
diet_plan_id = fields.Many2one('project.task', 'Diet plan in task')
|
||||||
23
diet_template/models/project.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from odoo import fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class Project(models.Model):
|
||||||
|
"""Inherited Project model for creating diet project."""
|
||||||
|
|
||||||
|
_inherit = 'project.project'
|
||||||
|
|
||||||
|
product_id = fields.Many2one('product.product', string='Client Product')
|
||||||
|
type = fields.Selection([('workout', 'Workout'), ('diet', 'Diet')], 'Type')
|
||||||
|
|
||||||
|
|
||||||
|
class Task(models.Model):
|
||||||
|
"""Inherited Project Task model for creating diet project."""
|
||||||
|
|
||||||
|
_inherit = "project.task"
|
||||||
|
_order = 'schedule_date asc'
|
||||||
|
_description = 'Details of task in diet plan.'
|
||||||
|
|
||||||
|
diet_plan_ids = fields.One2many(
|
||||||
|
'diet.plan.lines', 'diet_plan_id', 'Diet Plan')
|
||||||
18
diet_template/models/res_partner.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from odoo import api, fields, models
|
||||||
|
|
||||||
|
|
||||||
|
class ResPartner(models.Model):
|
||||||
|
_inherit = "res.partner"
|
||||||
|
|
||||||
|
member_diet_plan = fields.Integer(
|
||||||
|
string='Diet Plan',
|
||||||
|
compute='_compute_member_diet_plan'
|
||||||
|
)
|
||||||
|
|
||||||
|
def _compute_member_diet_plan(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.member_diet_plan = \
|
||||||
|
self.env['project.project'].search_count(
|
||||||
|
[('partner_id', '=', rec.id)])
|
||||||
15
diet_template/models/sale_order.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from odoo import api, models
|
||||||
|
|
||||||
|
|
||||||
|
class SaleOrder(models.Model):
|
||||||
|
|
||||||
|
_inherit = 'sale.order'
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def create(self, values):
|
||||||
|
rec = super(SaleOrder, self).create(values)
|
||||||
|
if self._context.get("is_diet_sale"):
|
||||||
|
rec.action_confirm()
|
||||||
|
return rec
|
||||||
12
diet_template/security/ir.model.access.csv
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
|
access_diet_list,access.diet_list,model_diet_list,base.group_user,1,1,1,1
|
||||||
|
access_diet_master,access.diet_master,model_diet_master,base.group_user,1,1,1,1
|
||||||
|
access_diet_master_trainer,access.diet_master.trainer,model_diet_master,gym.group_gym_trainer,1,1,1,1
|
||||||
|
access_diet_list_trainer,access.diet_list.trainer,model_diet_list,gym.group_gym_trainer,1,1,1,1
|
||||||
|
access_diet_master_member,access.diet_master.member,model_diet_master,gym.group_gym_member,1,0,0,0
|
||||||
|
access_diet_list_member,access.diet_list.member,model_diet_list,gym.group_gym_member,1,0,0,0
|
||||||
|
access_diet_master_operator,access.diet_master.operator,model_diet_master,gym.group_gym_operator,1,1,1,1
|
||||||
|
access_diet_list_operator,access.diet_list.operator,model_diet_list,gym.group_gym_operator,1,1,1,1
|
||||||
|
access_diet_master_manager,access.diet_master.manager,model_diet_master,gym.group_gym_manager,1,1,1,1
|
||||||
|
access_diet_list_manager,access.diet_list.manager,model_diet_list,gym.group_gym_manager,1,1,1,1
|
||||||
|
access_project_project_trainer,access.project_project.trainer,project.model_project_project,gym.group_gym_trainer,1,1,1,1
|
||||||
|
BIN
diet_template/static/description/fb.jpg
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
diet_template/static/description/gym2.jpg
Normal file
|
After Width: | Height: | Size: 4.2 MiB |
BIN
diet_template/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
diet_template/static/description/icon2.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
diet_template/static/description/img/dt2.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
diet_template/static/description/img/food-k.png
Normal file
|
After Width: | Height: | Size: 269 KiB |
BIN
diet_template/static/description/img/food-n.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
diet_template/static/description/img/in-1.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
diet_template/static/description/img/inter.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
diet_template/static/description/img/meals.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
diet_template/static/description/img/plan-new.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
diet_template/static/description/img/s1.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
diet_template/static/description/img/tk-2.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
diet_template/static/description/img/wi.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
diet_template/static/description/in.jpg
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
361
diet_template/static/description/index.html
Normal file
@@ -0,0 +1,361 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<section class="container oe_dark" style="background-color: #F2F2F2;">
|
||||||
|
<div class='row'>
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12">
|
||||||
|
<a class="float-right" href="https://www.serpentcs.com" target="_blank"><img
|
||||||
|
src="serpent_logo.png"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row oe_spaced justify-content-center" style="padding-left: 2%; margin-top: 0px;">
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12 text-center">
|
||||||
|
<h1 class="text-primary" style="font-size: calc(14.4px + 2.5vw); font-family:
|
||||||
|
'Lato', 'Open Sans', 'Helvetica', Sans; margin-top: 0px;">
|
||||||
|
Diet Template
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- If video/flow diagram is not available then skip it this portion. -->
|
||||||
|
<!-- Flow Diagram -->
|
||||||
|
<div class="row oe_spaced justify-content-center" style="padding-left: 2%; margin-top: 0px;">
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12 text-center">
|
||||||
|
<!--Video Link -->
|
||||||
|
<a href="https://www.youtube.com/watch?v=sp_X8UYjb-U"
|
||||||
|
target="new"
|
||||||
|
class="oe_button oe_big bg-primary fa fa-youtube-play"
|
||||||
|
style="background-color: #21b799; margin: 4px 0px;"> View video</a>
|
||||||
|
<a href="http://serpentcs.in/product/gym-management-system"
|
||||||
|
target="new"
|
||||||
|
class="oe_button oe_big bg-primary fa"
|
||||||
|
style="background-color: #21b799; margin: 4px 0px;"> Demo of System</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row oe_spaced justify-content-center" style="padding-left: 2%; margin-top: 0px;">
|
||||||
|
<!-- Module Screenshots Image -->
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12 text-center">
|
||||||
|
<h4 class="oe_centered text-primary" style="font-size: calc(16px + 1.3vw); font-family: 'Lato', 'Open Sans', 'Helvetica', Sans;margin: 15px; text-align: center;">
|
||||||
|
Diet Meals
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12">
|
||||||
|
<ul style="margin-left: 0%; padding-left: 5%;">
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">Create customized diet meals based on the intervals along with the quantity to be taken.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/meals.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/inter.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_span12 text-center">
|
||||||
|
<h4 class="oe_centered text-primary" style="font-size: calc(16px + 1.3vw); font-family: 'Lato', 'Open Sans', 'Helvetica', Sans;
|
||||||
|
margin: 15px; text-align: center;">
|
||||||
|
Diet Routines
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12">
|
||||||
|
<ul style="margin-left: 0%; padding-left: 5%;">
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">Select multiple diet meals and you can plan a diet routine for your gym members.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/dt2.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/plan-new.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/tk-2.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/in-1.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_span12 text-center">
|
||||||
|
<h4 class="oe_centered text-primary" style="font-size: calc(16px + 1.3vw); font-family: 'Lato', 'Open Sans', 'Helvetica', Sans;
|
||||||
|
margin: 15px; text-align: center;">
|
||||||
|
Food Items
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12">
|
||||||
|
<ul style="margin-left: 0%; padding-left: 5%;">
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">Configure food items along with thier nutritive value.</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/food-k.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/food-n.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_span12 text-center">
|
||||||
|
<h4 class="oe_centered text-primary" style="font-size: calc(16px + 1.3vw); font-family: 'Lato', 'Open Sans', 'Helvetica', Sans;
|
||||||
|
margin: 15px; text-align: center;">
|
||||||
|
Diet Plan Assignment
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12">
|
||||||
|
<ul style="margin-left: 0%; padding-left: 5%;">
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">Easily assign an diet plan to the member.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">You can set a start date and the end date
|
||||||
|
and the number of days will be automatically calculated upon start date.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">The plans in the hierarchy will get populated and assigned automatically.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/wi.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_span12 text-center">
|
||||||
|
<h4 class="oe_centered text-primary" style="font-size: calc(16px + 1.3vw); font-family: 'Lato', 'Open Sans', 'Helvetica', Sans;
|
||||||
|
margin: 15px; text-align: center;">
|
||||||
|
My Diet Plans
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-12 col-lg-12">
|
||||||
|
<ul style="margin-left: 0%; padding-left: 5%;">
|
||||||
|
<li>
|
||||||
|
<p style="margin-right: 4px; color: black; font-size: calc(16px + 0.3vw); text-align: justify;
|
||||||
|
font-family: Lato;">Member can see his diet plan and check what he has to eat on a particular day.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="text-center" style="margin-top: 10px; margin-bottom: 20px;">
|
||||||
|
<img class="img img-responsive center-block oe_demo oe_screenshot"
|
||||||
|
src="img/s1.png" style="width: 90%;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!--Footer-->
|
||||||
|
<section class="container oe_dark">
|
||||||
|
<div class='row justify-content-center'>
|
||||||
|
<p class="fa fa-certificate fa-1x" style="color: #1f2327; font-size: calc(13.6px + 0.3vw); font-weight: bold;
|
||||||
|
text-align: center; margin: 0px 5px; margin-top: 5px;"> Check out our
|
||||||
|
various Odoo Services below</p>
|
||||||
|
<hr style="border-bottom: #d74930 solid 1px; border-style: inset; width: 97%;"/>
|
||||||
|
</div>
|
||||||
|
<div class='row' style="margin: 0px auto;">
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/odoo-openerp-services/consulting">Odoo Consulting</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/odoo-openerp-services/offshore-development-partnership">Offshore & Onsite Development</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/community/aios-mobile-client">Odoo Mobile App Development</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/odoo-openerp-services/gap-analysis">Gap Analysis and BPR</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/odoo-packages/odoo-support-package">Support and Maintenance</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.odooqa.com/page/manual-functional-testing">Odoo Manual Testing</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/odoo-openerp-services/implementation">Odoo Implementation</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/odoo-openerp-services/hire-odoo-openerp-developer">Hire Dedicated Odoo Developer</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.odooqa.com/page/automated-functional-testing">Odoo Automated Testing</a></span><br/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/ecommerce-integrations/magento-integration">Integration with E-Commerce</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/ecommerce-integrations/paymentech-elavon-paypal-integration">Payment Gateway Integrations</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/trainings/openerp-odoo-technical-training">Odoo Technical Training</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/trainings/openerpodoo-functional-training">Odoo Functional Training</a></span><br/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/ecommerce-integrations/fedex-ups-usps-integration">Integration with Shipping API</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://www.serpentcs.com/services/odoo-openerp-services/installation-and-hosting">Installation & Hosting</a></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='row justify-content-center'>
|
||||||
|
<hr style="border-bottom: #d74930 solid 1px; border-style: inset; width: 97%;"/>
|
||||||
|
<p class="fa fa-certificate fa-1x" style="color: #1f2327; font-size: calc(13.6px + 0.3vw); font-weight: bold;
|
||||||
|
text-align: center; margin: 0px 5px;"> Check out our various
|
||||||
|
Odoo Based Products</p>
|
||||||
|
<hr style="border-bottom: #d74930 solid 1px; border-style: inset; width: 97%;"/>
|
||||||
|
</div>
|
||||||
|
<div class='row' style="margin: 0px auto;">
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-coffee fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/restaurant-management-system">Restaurant Management</a></span><br/>
|
||||||
|
<span class="fa fa-cubes fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/construction-management-system">Construction Management</a></span><br/>
|
||||||
|
<span class="fa fa-map-marker fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/odoo-fieldstaff-tracking-system">Field Service Management</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-building fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/property-management-system">Property Management</a></span><br/>
|
||||||
|
<span class="fa fa-bus fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/fleet-management-systems">Fleet Management</a></span><br/>
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/spa-salon-management-system">Spa & Salone Management</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-plane fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/visa-management-system">Visa Agency Management</a></span><br/>
|
||||||
|
<span class="fa fa-stethoscope fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/healthcare-management-software">Medical ERP</a></span><br/>
|
||||||
|
<span class="fa fa-phone fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/odoo-ringcentral-integration">Ringcentral telephone integration</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-globe fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/odoo-singapore-localization">Singapore Localization</a></span><br/>
|
||||||
|
<span class="fa fa-hotel fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/hotel-management-system">Hotel Management</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-graduation-cap fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/education-management-system">School, University Management</a></span><br/>
|
||||||
|
<span class="fa fa-users fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/human-resource-management-system">Human Resource Management</a></span>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-3 col-lg-2">
|
||||||
|
<span class="fa fa-heart fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/customer-relationship-management">Customer Relationship</a></span><br/>
|
||||||
|
<span class="fa fa-user fa-1x"> <a target="_blank" style="color: #697582; text-decoration: none; font-size: 11px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"
|
||||||
|
href="http://serpentcs.in/product/talent-management-system">Talent Management</a></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='row justify-content-center'>
|
||||||
|
<hr style="border-bottom: #d74930 solid 1px; border-style: inset; width: 97%;"/>
|
||||||
|
<p class="fa fa-certificate fa-1x" style="color: #1f2327; font-size: calc(13.6px + 0.3vw); font-weight: bold;
|
||||||
|
text-align: center; margin: 0px 5px;"> For any questions,
|
||||||
|
support and development contact us.</p>
|
||||||
|
<hr style="border-bottom: #d74930 solid 1px; border-style: inset; width: 97%;"/>
|
||||||
|
</div>
|
||||||
|
<div class='row justify-content-center'>
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3" style="margin: 5px auto;" align="center">
|
||||||
|
<a href="mailto:contact@serpentcs.com"
|
||||||
|
target="new"
|
||||||
|
class="oe_button bg-primary fa fa-envelope fa-1x text-center"
|
||||||
|
style="background-color: #21b799; width: 78%; font-weight: bold;"> Help! Send Mail</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3" style="margin: 5px auto;" align="center">
|
||||||
|
<a href="http://www.serpentcs.com"
|
||||||
|
target="new"
|
||||||
|
class="oe_button bg-primary fa fa-globe fa-1x text-center"
|
||||||
|
style="background-color: #21b799; width: 78%; font-weight: bold;"> Browse our Services</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3" style="margin: 5px auto;" align="center">
|
||||||
|
<a href="http://www.serpentcs.in"
|
||||||
|
target="new"
|
||||||
|
class="oe_button bg-primary fa fa-globe fa-1x text-center"
|
||||||
|
style="background-color: #21b799; width: 78%; font-weight: bold;"> Browse our Products</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-6 col-md-3 col-lg-3" style="margin: 5px auto;" align="center">
|
||||||
|
<a href="http://www.odooqa.com"
|
||||||
|
target="new"
|
||||||
|
class="oe_button bg-primary fa fa-globe fa-1x text-center"
|
||||||
|
style="background-color: #21b799; width: 78%; font-weight: bold;"> QA Services</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='row justify-content-center' style="margin: 0px auto;">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center">
|
||||||
|
<h3><span class="fa fa-whatsapp fa-1x" style="color: #697582; text-decoration: none; font-size: 13px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"> (+91) 98793-54457, (+91) 90334-72982 </span>
|
||||||
|
<span class="fa fa-phone fa-1x" style="color: #697582; text-decoration: none; font-size: 13px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"> +91-79-2975-0867</span>
|
||||||
|
</h3>
|
||||||
|
<span class="fa fa-hand-pointer-o fa-1x" style="color: #697582; text-decoration: none; font-size: 13px;
|
||||||
|
font-weight: bold; margin-right: auto; margin-left: auto;"> WhatsApp, Telegram or Call 24X7</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='row justify-content-center'>
|
||||||
|
<hr style="border-bottom: #d74930 solid 1px; border-style: inset; width: 97%;"/>
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 text-center">
|
||||||
|
<a target="_blank" href="https://www.facebook.com/Serpent-Consulting-Services-Pvt-Ltd-299017730141795/">
|
||||||
|
<img src="fb.jpg" style="vertical-align: middle; border-radius: 50%; width: 25px;">
|
||||||
|
</a>
|
||||||
|
<a target="_blank" href="https://twitter.com/Serpent_CS"
|
||||||
|
style="text-decoration:none;"><img src="twitter.jpg" style="vertical-align: middle; border-radius: 50%; width: 25px;">
|
||||||
|
</a>
|
||||||
|
<a target="_blank" href="https://in.linkedin.com/company/serpent-consulting-services"><img
|
||||||
|
src="in.jpg" style="vertical-align: middle; border-radius: 50%; width: 25px;"></a>
|
||||||
|
<a target="_blank" href="https://www.youtube.com/user/husendaudi123/videos"><img
|
||||||
|
src="youtube.jpg" style="vertical-align: middle; border-radius: 50%; width: 25px;"></a>
|
||||||
|
<a target="_blank" href="https://www.instagram.com/explore/tags/serpentcs/"><img
|
||||||
|
src="insta.jpg" style="vertical-align: middle; border-radius: 50%; width: 25px;"></a>
|
||||||
|
<a target="_blank" href="http://www.serpentcs.com"><img src="serpent32.png" style="vertical-align: middle; border-radius: 50%; width: 25px;"></a>
|
||||||
|
<a target="_blank" href="http://www.serpentcs.in"><img src="serpent32.png" style="vertical-align: middle; border-radius: 50%; width: 25px;"></a>
|
||||||
|
<a target="_blank" href="http://www.odooqa.com"><img src="odooqa32.png" style="vertical-align: middle; border-radius: 50%; width: 25px;"></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
diet_template/static/description/insta.jpg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
diet_template/static/description/odooqa32.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
diet_template/static/description/serpent32.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
diet_template/static/description/serpent_logo.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
diet_template/static/description/twitter.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
diet_template/static/description/youtube.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
27
diet_template/static/src/css/style.css
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
.scs_contactus_form{
|
||||||
|
border-radius: 0px !important;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ffffff;
|
||||||
|
border: 2px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scs_contactus_form:-webkit-input-placeholder {
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scs_contactus_form:-moz-placeholder { /* Firefox 18- */
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scs_contactus_form::-moz-placeholder { /* Firefox 19+ */
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scs_contactus_form:-ms-input-placeholder {
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scs_contactus_setting{
|
||||||
|
margin-left: 0px !important;
|
||||||
|
margin-right: 0px !important;
|
||||||
|
}
|
||||||
BIN
diet_template/static/src/img/crm_lead_img.png
Normal file
|
After Width: | Height: | Size: 536 B |
7
diet_template/static/src/xml/widget.xml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<templates>
|
||||||
|
<t t-name="FieldOdooUrl" t-extend="FieldEmail">
|
||||||
|
<t t-jquery="span" t-operation="inner">
|
||||||
|
<a target="_blank" class="o_form_uri" href="#"></a>
|
||||||
|
</t>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
284
diet_template/views/diet_view.xml
Normal file
@@ -0,0 +1,284 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<!-- Form view of Diet Plan lines -->
|
||||||
|
<record id="view_diet_plan_lines_form" model="ir.ui.view">
|
||||||
|
<field name="name">view.diet.plan.lines.form</field>
|
||||||
|
<field name="model">diet.plan.lines</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group>
|
||||||
|
<field name="interval"/>
|
||||||
|
</group>
|
||||||
|
<group string="Food Items">
|
||||||
|
<field name="food_item_ids" nolabel="1">
|
||||||
|
<tree editable="bottom">
|
||||||
|
<field name="food_name_id"
|
||||||
|
domain="[('is_food','=',True)]"
|
||||||
|
context="{'form_view_ref':'diet_template.view_food_item_product_form','default_is_food':True}"/>
|
||||||
|
<field name="quantity"/>
|
||||||
|
<field name="measure_unit_id"/>
|
||||||
|
</tree>
|
||||||
|
<form>
|
||||||
|
<group>
|
||||||
|
<field name="food_name_id"/>
|
||||||
|
<field name="quantity"/>
|
||||||
|
<field name="measure_unit_id"/>
|
||||||
|
</group>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Tree view of Diet Plan lines -->
|
||||||
|
<record id="view_diet_plan_lines_tree" model="ir.ui.view">
|
||||||
|
<field name="name">view.diet.plan.lines.tree</field>
|
||||||
|
<field name="model">diet.plan.lines</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree>
|
||||||
|
<field name="interval"/>
|
||||||
|
<field name="food_item_ids"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Action of Diet Plan lines -->
|
||||||
|
<record id="action_diet_plan_lines" model="ir.actions.act_window">
|
||||||
|
<field name="name">Diet Plan</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">diet.plan.lines</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Form view of Diet Plan -->
|
||||||
|
<record id="view_diet_plan_form" model="ir.ui.view">
|
||||||
|
<field name="name">view.diet.plan.form</field>
|
||||||
|
<field name="model">diet.plan</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group>
|
||||||
|
<h1>
|
||||||
|
<field name="name"
|
||||||
|
Placeholder="e.g Diet Plan For Kids"/>
|
||||||
|
</h1>
|
||||||
|
<separator string="Diet Plan" colspan="4"/>
|
||||||
|
<field name="diet_plans_ids" nolabel="1"/>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Tree view of Diet Plan -->
|
||||||
|
<record id="view_diet_plan_tree" model="ir.ui.view">
|
||||||
|
<field name="name">view.diet.plan.tree</field>
|
||||||
|
<field name="model">diet.plan</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="diet_plans_ids" widget="many2many_tags"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Action of Diet Plan lines -->
|
||||||
|
<record id="action_diet_plan" model="ir.actions.act_window">
|
||||||
|
<field name="name">Diet Plans</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">diet.plan</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Form view of food item-->
|
||||||
|
<record id="view_item_form" model="ir.ui.view">
|
||||||
|
<field name="name">view.item.form</field>
|
||||||
|
<field name="model">food.item</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group>
|
||||||
|
<group>
|
||||||
|
<field name="food_name_id"
|
||||||
|
domain="[('is_food','=',True)]"
|
||||||
|
required="1"/>
|
||||||
|
<field name="quantity"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Tree view of food item -->
|
||||||
|
<record id="view_item_tree" model="ir.ui.view">
|
||||||
|
<field name="name">view.item.tree</field>
|
||||||
|
<field name="model">food.item</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree>
|
||||||
|
<field name="food_name_id"/>
|
||||||
|
<field name="quantity"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Action of food item -->
|
||||||
|
<record id="action_food_item" model="ir.actions.act_window">
|
||||||
|
<field name="name">Food Items</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">food.item</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
<field name="domain">[('is_food','=',True)]</field>
|
||||||
|
<field name="context">{"food_default":True}</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Form view of Food Product-->
|
||||||
|
<record id="view_food_item_product_form" model="ir.ui.view">
|
||||||
|
<field name="name">view.food.item.product.form</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<field name="image_1920"
|
||||||
|
widget="image" class="oe_avatar"/>
|
||||||
|
<div class="oe_title">
|
||||||
|
<label class="oe_edit_only"
|
||||||
|
for="name" string="Food Name"/>
|
||||||
|
<h1>
|
||||||
|
<field name="name" placeholder="Food Name"/>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<notebook>
|
||||||
|
<page string="Nutrition Information">
|
||||||
|
<table border="1" style="width:100%; height:100%">
|
||||||
|
<tr>
|
||||||
|
<td class="text-align:center;">
|
||||||
|
<style>h4 {text-align: center;}</style>
|
||||||
|
<h4>
|
||||||
|
<separator
|
||||||
|
string="Nutrition Information"
|
||||||
|
colspan="4"/>
|
||||||
|
</h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<group>
|
||||||
|
<group>
|
||||||
|
<field name="unit_id" widget="selection"
|
||||||
|
/>
|
||||||
|
<field name="calorie"/>
|
||||||
|
<field name="protein"/>
|
||||||
|
<field name="carbohydrates"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="fat"/>
|
||||||
|
<field name="fibres"/>
|
||||||
|
<field name="sodium"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
<page string="General Information">
|
||||||
|
<group col="4">
|
||||||
|
<field name="type"/>
|
||||||
|
<field name="list_price"/>
|
||||||
|
<field name="categ_id"/>
|
||||||
|
<field name="taxes_id"
|
||||||
|
widget="many2many_tags"/>
|
||||||
|
<field name="default_code"/>
|
||||||
|
<field name="standard_price"/>
|
||||||
|
</group>
|
||||||
|
<group string="Internal Notes">
|
||||||
|
<field name="description" nolabel="1"/>
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</notebook>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Tree View of Food Product -->
|
||||||
|
<record id="product_template_food_tree_view" model="ir.ui.view">
|
||||||
|
<field name="name">product.template.food.product.tree</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="priority">60</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Product">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="unit_id" widget="selection" required="1"/>
|
||||||
|
<field name="calorie"/>
|
||||||
|
<field name="protein"/>
|
||||||
|
<field name="carbohydrates"/>
|
||||||
|
<field name="fat"/>
|
||||||
|
<field name="fibres"/>
|
||||||
|
<field name="sodium"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Action of Food Product -->
|
||||||
|
<record id="action_food_food_item" model="ir.actions.act_window">
|
||||||
|
<field name="name">Food Items</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">product.template</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="domain">[('is_food','=',True)]</field>
|
||||||
|
<field name="context">{'default_is_food':True}</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p class="oe_view_nocontent_create">
|
||||||
|
Click to add a new Food Item.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Binding the action of Food to Kanban -->
|
||||||
|
<record id="view_food_product_kanban_bind"
|
||||||
|
model="ir.actions.act_window.view">
|
||||||
|
<field name="view_mode">kanban</field>
|
||||||
|
<field name="sequence">0</field>
|
||||||
|
<field name="view_id" ref="product.product_template_kanban_view"/>
|
||||||
|
<field name="act_window_id" ref="action_food_food_item"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Binding the action of Food to Tree -->
|
||||||
|
<record id="view_food_product_tree_bind"
|
||||||
|
model="ir.actions.act_window.view">
|
||||||
|
<field name="view_mode">tree</field>
|
||||||
|
<field name="sequence">1</field>
|
||||||
|
<field name="view_id" ref="product_template_food_tree_view"/>
|
||||||
|
<field name="act_window_id" ref="action_food_food_item"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Binding the action of Food to Form -->
|
||||||
|
<record id="view_food_product_form_bind"
|
||||||
|
model="ir.actions.act_window.view">
|
||||||
|
<field name="view_mode">form</field>
|
||||||
|
<field name="sequence">2</field>
|
||||||
|
<field name="view_id" ref="view_food_item_product_form"/>
|
||||||
|
<field name="act_window_id" ref="action_food_food_item"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!--Parent Menu -->
|
||||||
|
<menuitem
|
||||||
|
id="menu_diet_main"
|
||||||
|
name="Diet"
|
||||||
|
sequence="13"
|
||||||
|
web_icon="diet_template,static/description/icon2.png"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<menuitem
|
||||||
|
id="menu_food_item"
|
||||||
|
action="action_food_food_item"
|
||||||
|
parent="menu_diet_main"
|
||||||
|
sequence="5"
|
||||||
|
groups='gym.group_gym_operator'
|
||||||
|
/>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
10
diet_template/views/menuitem_hide.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<!--Project -->
|
||||||
|
<menuitem name="Project"
|
||||||
|
id="project.menu_main_pm"
|
||||||
|
groups="-project.group_project_manager,-project.group_project_user,gym.group_menu_visible"
|
||||||
|
web_icon="project,static/description/icon.png"
|
||||||
|
sequence="50"/>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
57
diet_template/views/partner_view.xml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<!-- Inherited kanban of res_partner -->
|
||||||
|
<!-- <record id="view_member_kanban_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">view.member.kanban.inherit</field>
|
||||||
|
<field name="model">res.partner</field>
|
||||||
|
<field name="inherit_id" ref="gym.member_kanban_view_new"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//field[@name='color']" position="after">
|
||||||
|
<field name="task_count"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[@class='col-md-12']/div[1]" position="before">
|
||||||
|
<div class="col-md-4 "
|
||||||
|
style="text-align: center; color:white;" role="button">
|
||||||
|
<button type="action" class="btn btn-link"
|
||||||
|
name="%(project.action_view_task)d"
|
||||||
|
style="color:white;"
|
||||||
|
context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}">
|
||||||
|
<h1>
|
||||||
|
<span t-esc="record.task_count.value"/>
|
||||||
|
</h1>
|
||||||
|
<h4>Tasks</h4>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record> -->
|
||||||
|
|
||||||
|
<record id="action_diet_plan" model="ir.actions.act_window">
|
||||||
|
<field name="name">Diet Plan</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">project.project</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="domain">[('partner_id', '=', active_id)]</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_partner_diet_form_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">view.diet.form.inherit</field>
|
||||||
|
<field name="model">res.partner</field>
|
||||||
|
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//div[hasclass('oe_button_box')]" position="inside">
|
||||||
|
<button name="%(action_diet_plan)d"
|
||||||
|
class="oe_stat_button"
|
||||||
|
icon="fa-list-ul"
|
||||||
|
type="action"
|
||||||
|
attrs="{'invisible':[('is_member','=',False)]}"
|
||||||
|
>
|
||||||
|
<field name="member_diet_plan" widget="statinfo"
|
||||||
|
string="Diet Plan" attrs="{'invisible':[('is_member','=',False)]}"/>
|
||||||
|
</button>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
18
diet_template/views/project_task_view.xml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<record id="view_project_task_form_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">view.project.task.inherited</field>
|
||||||
|
<field name="model">project.task</field>
|
||||||
|
<field name="inherit_id" ref="project.view_task_form2"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//notebook/page[@name='description_page']"
|
||||||
|
position="before">
|
||||||
|
<page string="Diet Plan"
|
||||||
|
attrs="{'invisible':[('task_type','=','workout')]}">
|
||||||
|
<field name="diet_plan_ids"/>
|
||||||
|
</page>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
350
diet_template/views/project_view.xml
Normal file
@@ -0,0 +1,350 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<menuitem id="menu_workout_main" name="Workout" sequence="3"/>
|
||||||
|
|
||||||
|
<record id="project_search_view" model="ir.ui.view">
|
||||||
|
<field name="name">view.project.search.inherited</field>
|
||||||
|
<field name="model">project.project</field>
|
||||||
|
<field name="inherit_id" ref="project.view_project_project_filter"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search>
|
||||||
|
<filter name="fil_by_customer"
|
||||||
|
context="{'group_by':'partner_id'}" string="Customer"/>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="project_kanban_inherit_view" model="ir.ui.view">
|
||||||
|
<field name="name">view.project.kanban.inherited</field>
|
||||||
|
<field name="model">project.project</field>
|
||||||
|
<field name="inherit_id" ref="project.project_view_kanban"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<kanban position="replace">
|
||||||
|
<kanban class="o_kanban_mobile" create="false" edit="false">
|
||||||
|
<field name="user_id" string="Project Manager"/>
|
||||||
|
<field name="partner_id"/>
|
||||||
|
<field name="task_count"/>
|
||||||
|
<field name="label_tasks"/>
|
||||||
|
<templates>
|
||||||
|
<t t-name="kanban-box">
|
||||||
|
<div t-attf-class="oe_kanban_content oe_kanban_global_click o_kanban_get_form o_kanban_record_has_image_fill">
|
||||||
|
<div class="o_kanban_image_fill_left d-none d-md-block" t-attf-style="background-image:url('#{kanban_image('res.partner', 'image_128', record.partner_id.raw_value, placeholder)}')">
|
||||||
|
</div>
|
||||||
|
<div class="oe_kanban_details">
|
||||||
|
<div class="o_kanban_record_title">
|
||||||
|
<strong>
|
||||||
|
<field name="name"/>
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<field name="partner_id" string="Contact"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_kanban_bottom_right">
|
||||||
|
<img t-att-src="kanban_image('res.users', 'image_128', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" class="oe_kanban_avatar o_image_24_cover float-right"/>
|
||||||
|
</div>
|
||||||
|
<div class="o_project_kanban_boxes">
|
||||||
|
<a class="o_project_kanban_box" name="%(project.act_project_project_2_project_task_all)d" type="action">
|
||||||
|
<div>
|
||||||
|
<span class="o_value"><t t-esc="record.task_count.value"/></span>
|
||||||
|
<span class="o_label"><t t-esc="record.label_tasks.value"/></span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
</kanban>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="project_tree_inherit_view" model="ir.ui.view">
|
||||||
|
<field name="name">view.project.tree.inherited</field>
|
||||||
|
<field name="model">project.project</field>
|
||||||
|
<field name="inherit_id" ref="project.view_project"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree position="attributes">
|
||||||
|
<attribute name="create">false</attribute>
|
||||||
|
<attribute name="edit">false</attribute>
|
||||||
|
</tree>
|
||||||
|
<field name="user_id" position="attributes">
|
||||||
|
<attribute name="string">Trainer</attribute>
|
||||||
|
</field>
|
||||||
|
<field name="partner_id" position="attributes">
|
||||||
|
<attribute name="string">Member</attribute>
|
||||||
|
</field>
|
||||||
|
<field name="name" position="attributes">
|
||||||
|
<attribute name="string">Plan Name</attribute>
|
||||||
|
</field>
|
||||||
|
<field name="partner_id" position="after">
|
||||||
|
<field name="analytic_account_id"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="project_from_inherit_view" model="ir.ui.view">
|
||||||
|
<field name="name">view.project.form.inherited</field>
|
||||||
|
<field name="model">project.project</field>
|
||||||
|
<field name="inherit_id" ref="project.edit_project"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form position="attributes">
|
||||||
|
<attribute name="edit">false</attribute>
|
||||||
|
<attribute name="create">false</attribute>
|
||||||
|
</form>
|
||||||
|
<xpath expr="//div[@name='options_active']" position="attributes">
|
||||||
|
<attribute name="invisible">1</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//group[@name='misc']" position="attributes">
|
||||||
|
<attribute name="invisible">1</attribute>
|
||||||
|
</xpath>
|
||||||
|
<field name="user_id" position="attributes">
|
||||||
|
<attribute name="string">Trainer</attribute>
|
||||||
|
</field>
|
||||||
|
<field name="partner_id" position="attributes">
|
||||||
|
<attribute name="string">Member</attribute>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!--Action for see My Diet plan -->
|
||||||
|
<record id="action_diet_project_list" model="ir.actions.act_window">
|
||||||
|
<field name="name">All Diet Plans</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">project.project</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="domain">[('type','=','diet'),]</field>
|
||||||
|
<field name="context">{'default_type':'diet'}</field>
|
||||||
|
</record>
|
||||||
|
<menuitem id="menu_my_diet_project_list"
|
||||||
|
action="action_diet_project_list" parent="menu_diet_main"
|
||||||
|
sequence="1"/>
|
||||||
|
|
||||||
|
<!-- *************** Diet Description********************-->
|
||||||
|
<record id="view_diet_list_form" model="ir.ui.view">
|
||||||
|
<field name="name">diet.list.form</field>
|
||||||
|
<field name="model">diet.list</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group colspan="4" cols="4">
|
||||||
|
<field name="name" required="1"/>
|
||||||
|
<group>
|
||||||
|
<separator string="List of Meals" colspan="4"/>
|
||||||
|
<field name="food_item_ids" nolabel="1"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_diet_list_tree" model="ir.ui.view">
|
||||||
|
<field name="name">diet.list.tree</field>
|
||||||
|
<field name="model">diet.list</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Diet Meals">
|
||||||
|
<field name="sequence" widget='handle'/>
|
||||||
|
<field name="name"/>
|
||||||
|
<!-- <field name="exercise_ids"/> -->
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_diet_list_kanban" model="ir.ui.view">
|
||||||
|
<field name="name">diet.list.kanban</field>
|
||||||
|
<field name="model">diet.list</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<kanban>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="diet_id"/>
|
||||||
|
<templates>
|
||||||
|
<t t-name="kanban-box">
|
||||||
|
<div t-attf-class="oe_kanban_global_click">
|
||||||
|
<div style="margin: 0 auto; top: 0; left: 0; bottom: 0; right: 0;">
|
||||||
|
<div style="padding-top:25px;padding-right:10px;padding-left:10px;">
|
||||||
|
<div>
|
||||||
|
<center>
|
||||||
|
<img src="/gym/static/image/diet.jpg"
|
||||||
|
style="width: 30%;"
|
||||||
|
alt="Contact"/>
|
||||||
|
</center>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style="padding-bottom:10px">
|
||||||
|
<h3 class="text-center"
|
||||||
|
style="margin-top:8px">
|
||||||
|
<t t-esc="record.name.value"/>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_diet_list" model="ir.actions.act_window">
|
||||||
|
<field name="name">Diet Meals</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">diet.list</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="context">{}</field>
|
||||||
|
<field name="domain">[]</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<menuitem id="menu_diet_list" action="action_diet_list"
|
||||||
|
name="Meals" parent="menu_diet_main" sequence="4"
|
||||||
|
groups='gym.group_gym_operator,gym.group_gym_trainer'/>
|
||||||
|
|
||||||
|
<!-- *************** Diet Description********************-->
|
||||||
|
<record id="view_diet_list_form" model="ir.ui.view">
|
||||||
|
<field name="name">diet.list.form</field>
|
||||||
|
<field name="model">diet.list</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group>
|
||||||
|
<field name="name" required="1"/>
|
||||||
|
</group>
|
||||||
|
<separator string='Meal Interval'/>
|
||||||
|
<group>
|
||||||
|
<field name="food_item_ids" nolabel='1'/>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_diet_list_tree" model="ir.ui.view">
|
||||||
|
<field name="name">diet.list.tree</field>
|
||||||
|
<field name="model">diet.list</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Diet Meals">
|
||||||
|
<field name="name"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
<record id="action_diet_list" model="ir.actions.act_window">
|
||||||
|
<field name="name">Diet Meals</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">diet.list</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="context">{}</field>
|
||||||
|
<field name="domain">[]</field>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p class="oe_view_nocontent_create">
|
||||||
|
Click here to add new diet meal.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- *************** Diet Plan********************-->
|
||||||
|
<record id="view_diet_form" model="ir.ui.view">
|
||||||
|
<field name="name">diet.form</field>
|
||||||
|
<field name="model">diet.master</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group>
|
||||||
|
<h1>
|
||||||
|
<field name="name" required="1"
|
||||||
|
placeholder="e.g Weight Loss"/>
|
||||||
|
</h1>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="total_days"/>
|
||||||
|
</group>
|
||||||
|
<separator string='Diet Meals'/>
|
||||||
|
<group>
|
||||||
|
<field name="diet_plan_ids" nolabel='1'/>
|
||||||
|
</group>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_diet_tree" model="ir.ui.view">
|
||||||
|
<field name="name">diet.tree</field>
|
||||||
|
<field name="model">diet.master</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="diet_plan_ids"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!--Kanban view of Diet -->
|
||||||
|
<record model="ir.ui.view" id="view_workout_kanban">
|
||||||
|
<field name="name">diet.master</field>
|
||||||
|
<field name="model">diet.master</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<kanban class="oe_background_grey o_kanban_dashboard o_project_kanban">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="total_days"/>
|
||||||
|
<templates>
|
||||||
|
<t t-name="kanban-box">
|
||||||
|
<div t-attf-class="oe_kanban_global_click">
|
||||||
|
<div style="margin: 0 auto; top: 0; left: 0; bottom: 0; right: 0;">
|
||||||
|
<div style="padding-top:25px;padding-right:10px;padding-left:10px;">
|
||||||
|
<div>
|
||||||
|
<center>
|
||||||
|
<img src="/gym/static/image/diet.jpg"
|
||||||
|
style="width: 30%;"
|
||||||
|
alt="Contact"/>
|
||||||
|
</center>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style="padding-bottom:10px">
|
||||||
|
<h3 class="text-center"
|
||||||
|
style="margin-top:8px">
|
||||||
|
<t t-esc="record.name.value"/>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="o_project_kanban_boxes">
|
||||||
|
<div t-if="record.total_days.raw_value"
|
||||||
|
class="o_project_kanban_box text-center"
|
||||||
|
style="background-color:#958e9a; width: 100%;">
|
||||||
|
<span class="o_value">
|
||||||
|
<t t-esc="record.total_days.value"/>
|
||||||
|
</span>
|
||||||
|
<span class="o_label">Days</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_diet" model="ir.actions.act_window">
|
||||||
|
<field name="name">Diet Plans</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">diet.master</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="context">{}</field>
|
||||||
|
<field name="domain">[]</field>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p class="oe_view_nocontent_create">
|
||||||
|
Click here to add new diet routine.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!--parent menu -->
|
||||||
|
<menuitem id="menu_diet" action="action_diet"
|
||||||
|
parent="menu_diet_main" sequence="3"
|
||||||
|
groups='gym.group_gym_operator,gym.group_gym_trainer'/>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
36
diet_template/views/sale_order_view.xml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<record id="sale_order_form_view_inherit_diet" model="ir.ui.view">
|
||||||
|
<field name="name">sale.order.form.inherit.diet</field>
|
||||||
|
<field name="model">sale.order</field>
|
||||||
|
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="partner_id" position="attributes">
|
||||||
|
<attribute name="domain">
|
||||||
|
[('is_member','=?',context.get('is_diet_sale'))]
|
||||||
|
</attribute>
|
||||||
|
</field>
|
||||||
|
<field name="product_id" position="attributes">
|
||||||
|
<attribute name="domain">
|
||||||
|
[('is_food','=?',context.get('is_diet_sale')),
|
||||||
|
('type','!=','service')]
|
||||||
|
</attribute>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_sale_order_dite" model="ir.actions.act_window">
|
||||||
|
<field name="name">Sales</field>
|
||||||
|
<field name="type">ir.actions.act_window</field>
|
||||||
|
<field name="res_model">sale.order</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
<field name="view_id" ref="sale.view_order_tree"/>
|
||||||
|
<field name="context">{'is_diet_sale': True}</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- <menuitem id="menu_sales_items" action="action_sale_order_dite"
|
||||||
|
parent="menu_diet_main" sequence="2"
|
||||||
|
groups='gym.group_gym_operator,gym.group_gym_manager'/> -->
|
||||||
|
|
||||||
|
</odoo>
|
||||||
3
diet_template/wizard/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import diet_schedule
|
||||||
BIN
diet_template/wizard/__pycache__/__init__.cpython-36.pyc
Normal file
BIN
diet_template/wizard/__pycache__/__init__.cpython-37.pyc
Normal file
BIN
diet_template/wizard/__pycache__/diet_schedule.cpython-36.pyc
Normal file
BIN
diet_template/wizard/__pycache__/diet_schedule.cpython-37.pyc
Normal file
111
diet_template/wizard/diet_schedule.py
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
# See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
from odoo import api, fields, models, _
|
||||||
|
from odoo.exceptions import ValidationError
|
||||||
|
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
|
||||||
|
|
||||||
|
|
||||||
|
class DietSchedule(models.TransientModel):
|
||||||
|
"""object for taking information about Diet schedule."""
|
||||||
|
|
||||||
|
_name = 'diet.scheduling'
|
||||||
|
_description = 'Diet Schedule'
|
||||||
|
|
||||||
|
member_id = fields.Many2one('res.partner', string='Member')
|
||||||
|
goal_id = fields.Many2one('diet.master', string='Diet Plan')
|
||||||
|
total_days = fields.Integer(string="Total Days Of Plan",
|
||||||
|
compute='_compute_total_days')
|
||||||
|
start_date = fields.Date(string='Start Date',
|
||||||
|
default=datetime.strftime(
|
||||||
|
datetime.now(), DEFAULT_SERVER_DATE_FORMAT))
|
||||||
|
end_date = fields.Date(string='End Date')
|
||||||
|
|
||||||
|
@api.onchange('member_id')
|
||||||
|
def _onchange_member_id(self):
|
||||||
|
if self.env.user.has_group('gym.group_gym_trainer'):
|
||||||
|
partner_list = []
|
||||||
|
calendar_event_ids = self.env['calendar.event'].search(
|
||||||
|
[('trainer_id.user_id', '=', self.env.user.id)])
|
||||||
|
for rec in calendar_event_ids:
|
||||||
|
partner_list += rec.partner_ids.ids
|
||||||
|
return {'domain': {
|
||||||
|
'member_id': [('id', 'in', partner_list)]}}
|
||||||
|
return {}
|
||||||
|
|
||||||
|
@api.onchange('goal_id', 'start_date')
|
||||||
|
def _onchange_total_diet_plan_days(self):
|
||||||
|
"""Method for assign total days based on goal."""
|
||||||
|
# End Date assign
|
||||||
|
if not self.total_days:
|
||||||
|
self.end_date = datetime.strftime(
|
||||||
|
datetime.now(), DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
elif self.start_date:
|
||||||
|
self.end_date = \
|
||||||
|
self.start_date + timedelta(days=self.total_days - 1)
|
||||||
|
|
||||||
|
@api.depends('goal_id', 'start_date')
|
||||||
|
def _compute_total_days(self):
|
||||||
|
# Set the total Days
|
||||||
|
self.total_days = self.goal_id.total_days
|
||||||
|
|
||||||
|
def schedule_project(self):
|
||||||
|
"""Method for assign workout project to member."""
|
||||||
|
project = self.env['project.project']
|
||||||
|
project_task = self.env['project.task']
|
||||||
|
user_obj = self.env['res.users']
|
||||||
|
project_kanban = self.env.ref('project.view_project_kanban', False)
|
||||||
|
for diet_schedule_rec in self:
|
||||||
|
user_rec = user_obj.search(
|
||||||
|
[('partner_id', '=', diet_schedule_rec.member_id.id)])
|
||||||
|
if not user_rec:
|
||||||
|
raise ValidationError(_('Please make the customer as user'))
|
||||||
|
elif not diet_schedule_rec.total_days:
|
||||||
|
raise ValidationError(_('You can\'t created diet schedule '
|
||||||
|
'with total days of zero.'))
|
||||||
|
else:
|
||||||
|
# Creating the project
|
||||||
|
val = {
|
||||||
|
'name': diet_schedule_rec.member_id.name + "'s " +
|
||||||
|
diet_schedule_rec.goal_id.name + ' Schedule',
|
||||||
|
'type': 'diet',
|
||||||
|
'partner_id': diet_schedule_rec.member_id.id
|
||||||
|
}
|
||||||
|
project_id = project.create(val)
|
||||||
|
start_tm = diet_schedule_rec.start_date
|
||||||
|
for task_rec in diet_schedule_rec.goal_id.diet_plan_ids:
|
||||||
|
interval_list = []
|
||||||
|
# loop on diet paln lines
|
||||||
|
for diet_line in task_rec.food_item_ids:
|
||||||
|
food_list = []
|
||||||
|
# loop omn food items
|
||||||
|
for food_rec in diet_line.food_item_ids:
|
||||||
|
food_list.append((0, 0, {
|
||||||
|
'food_name_id': food_rec.food_name_id.id,
|
||||||
|
'quantity': food_rec.quantity
|
||||||
|
}))
|
||||||
|
interval_list.append((0, 0, {
|
||||||
|
'interval': diet_line.interval,
|
||||||
|
'food_item_ids': food_list
|
||||||
|
}))
|
||||||
|
# creating task and assign it to project
|
||||||
|
project_task.create({'name': task_rec.name + " Plan ",
|
||||||
|
'project_id': project_id.id,
|
||||||
|
'diet_plan_ids': interval_list,
|
||||||
|
'schedule_date': start_tm,
|
||||||
|
'user_id': user_rec.id,
|
||||||
|
'sequence': task_rec.sequence,
|
||||||
|
'task_type': 'diet'
|
||||||
|
})
|
||||||
|
start_tm = start_tm + timedelta(days=1)
|
||||||
|
return {
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'domain': [('id', '=', project_id.id)],
|
||||||
|
'binding_view_types': 'form',
|
||||||
|
'view_mode': 'kanban,tree,form',
|
||||||
|
'res_model': 'project.project',
|
||||||
|
'view_id': project_kanban.id,
|
||||||
|
'views': [(project_kanban.id, 'kanban'), (False, 'form')],
|
||||||
|
'context': dict(create=False),
|
||||||
|
'target': 'new'
|
||||||
|
}
|
||||||
46
diet_template/wizard/diet_schedule_view.xml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<odoo>
|
||||||
|
|
||||||
|
<!-- Form view of Diet schedule -->
|
||||||
|
<record id="view_diet_schedule_form" model="ir.ui.view">
|
||||||
|
<field name="name">view.diet.schedule.form</field>
|
||||||
|
<field name="model">diet.scheduling</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<group colspan="4" col="4">
|
||||||
|
<field name="member_id"
|
||||||
|
options="{'no_create': True, 'no_open': True}"
|
||||||
|
required="1"
|
||||||
|
domain="[('is_member','=',True)]"
|
||||||
|
context="{'default_is_member':True}"/>
|
||||||
|
<field name="start_date" required="1"/>
|
||||||
|
<field name="goal_id"
|
||||||
|
options="{'no_create': True, 'no_open': True}"
|
||||||
|
required="1"/>
|
||||||
|
<field name="end_date" readonly="1"/>
|
||||||
|
<field name="total_days"/>
|
||||||
|
</group>
|
||||||
|
<footer>
|
||||||
|
<button name="schedule_project" type="object"
|
||||||
|
string="Create Schedule" class="oe_highlight"/>
|
||||||
|
<button special="cancel" string="Cancel"/>
|
||||||
|
</footer>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Action of Diet schedule Wizard -->
|
||||||
|
<record id="action_diet_schedule" model="ir.actions.act_window">
|
||||||
|
<field name="name">Assign Diet Plan</field>
|
||||||
|
<field name="res_model">diet.scheduling</field>
|
||||||
|
<field name="binding_view_types">form</field>
|
||||||
|
<field name="view_mode">form</field>
|
||||||
|
<field name="target">new</field>
|
||||||
|
<field name="view_id" ref="view_diet_schedule_form"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Menu of Diet schedule Wizard -->
|
||||||
|
<menuitem id="menu_diet_schedule" action="action_diet_schedule"
|
||||||
|
parent="menu_diet_main" sequence="2"
|
||||||
|
groups='gym.group_gym_operator,gym.group_gym_trainer'/>
|
||||||
|
|
||||||
|
</odoo>
|
||||||