add gym module

This commit is contained in:
sonal
2020-08-04 16:50:06 +05:30
parent d32f648b75
commit 29f684db39
219 changed files with 5030 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
<odoo>
<!-- Inherited view of res_partner -->
<record id="view_company_form_inherit" model="ir.ui.view">
<field name="name">view.company.form.inherit</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<div>
<label for="default_password" class="oe_edit_only"/>
<field name="default_password" password="True"/>
<group>
<field name="default_umo_of_height_id"
class="oe_inline"/>
<field name="default_umo_of_weight_id"
class="oe_inline"/>
<field name="default_umo_of_measure_id"
class="oe_inline"/>
</group>
</div>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,44 @@
<odoo>
<!-- Form view of Trainer Skills -->
<record id="view_trainer_skills_form" model="ir.ui.view">
<field name="name">view.trainer.skills.form</field>
<field name="model">gym.skills</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name"/>
<field name="code"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view of Trainer Skills -->
<record id="view_trainer_skills_tree" model="ir.ui.view">
<field name="name">view.trainer.skills.tree</field>
<field name="model">gym.skills</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<!-- Action of Trainer Skills -->
<record id="action_trainer_skills" model="ir.actions.act_window">
<field name="name">Trainer Skills</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">gym.skills</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,form</field>
</record>
<!-- Menu of the Time slot -->
<!-- <menuitem id="menu_trainer_skills" action="action_trainer_skills"
parent="gym.menu_Configuration"/> -->
</odoo>

609
gym/views/member_view.xml Normal file
View File

@@ -0,0 +1,609 @@
<odoo>
<!-- Inherited view of res_partner -->
<record id="view_member_tree_inherit" model="ir.ui.view">
<field name="name">view.tree.tree.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_tree"/>
<field name="arch" type="xml">
<field name="display_name" position="before">
<field name="is_member" invisible="1"/>
<field name="membership_number" attrs="{'invisible':[('is_member','=',False)]}"/>
</field>
<field name="phone" position="before">
<field name="gender"/>
<field name="account_manager_id"/>
<field name="analytic_id" attrs="{'invisible':[('is_member','=',False)]}"/>
<field name="occupation"/>
</field>
<field name="phone" position="after">
<field name="mobile"/>
</field>
<field name="email" position="after">
<field name="nationality_id"/>
<field name="lang" string="Preferred Language"/>
</field>
</field>
</record>
<record id="view_member_form_inherit" model="ir.ui.view">
<field name="name">view.member.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="name" position="after">
<field name="is_member" invisible="1"/>
<group>
<label for="membership_number" attrs="{'invisible':[('is_member','=',False)]}"/>
<div>
<field name="membership_number" attrs="{'invisible':[('is_member','=',False)]}"/>
</div>
</group>
</field>
<xpath expr="/form/sheet/group/group[1]"
position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="/form/sheet/group" position="inside">
<group>
<field name="emirate_number"/>
<field name="passport_number"/>
<field name="nationality_id"/>
<field name="lang"/>
</group>
</xpath>
<field name="vat" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="website" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<xpath expr="//group/field[@name='function']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//div/field[@name='parent_id']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<field name="email" position="attributes">
<attribute name="required">1</attribute>
</field>
<xpath expr="//page[@name='sales_purchases']/group/group[@name='sale']/field[@name='user_id']"
position="after">
<field name="is_member" invisible="1"/>
</xpath>
<xpath expr="//group/field[@name='category_id']" position="before">
<field name="user_id" invisible="1"/>
</xpath>
<xpath expr="//group/field[@name='category_id']"
position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//field[@name='lang']" position="after">
<field name="measurements" invisible="1"/>
<field name="membership" invisible="1"/>
</xpath>
<xpath expr="//field[@name='image_1920']" position="after">
<h1>
<field name="reg_no" readonly="1"
attrs="{'invisible':[('is_member','=',False)]}"/>
</h1>
</xpath>
<xpath expr="/form/sheet" position="before">
<header>
<button name="open_user"
type="object"
string="Open User"
groups='gym.group_gym_operator'
attrs="{'invisible':[('user_id','=',False)]}"/>
</header>
</xpath>
<xpath expr="//notebook/page[@name='sales_purchases']"
position="before">
<page string="Measurement History" attrs="{'invisible':[('is_member','=',False)]}">
<group cols='2' colspan='2'>
<field name="member_measurement_ids" nolabel='1'
context="{'member_invisible':1}">
<form>
<sheet>
<separator string="Member's Detail"
col="4"/>
<group>
<field name="date"/>
</group>
<separator string="Height - Weight"
col="4"/>
<group>
<label for="weight" string="Weight"/>
<div>
<field name="weight"
class="oe_inline"/>
&#x2063;
<field name="umo_weight_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. kg"/>
</div>
<label for="height" string="Height"/>
<div>
<field name="height"
class="oe_inline"/>
&#x2063;
<field name="umo_height_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. foot"/>
</div>
<field name="bmi"/>
<field name="bmr"/>
</group>
<separator string="Body Measurement"
col="4"/>
<group col="2">
<label for="neck" string="Neck"/>
<div>
<field name="neck"
class="oe_inline"/>
&#x2063;
<field name="umo_neck_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="chest"/>
<div>
<field name="chest"
class="oe_inline"/>
&#x2063;
<field name="umo_chest_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="biceps"/>
<div>
<field name="biceps"
class="oe_inline"/>
&#x2063;
<field name="umo_biceps_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="waist"/>
<div>
<field name="waist"
class="oe_inline"/>
&#x2063;
<field name="umo_waist_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="hips"/>
<div>
<field name="hips"
class="oe_inline"/>
&#x2063;
<field name="umo_hips_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="thigh"/>
<div>
<field name="thigh"
class="oe_inline"/>
&#x2063;
<field name="umo_thigh_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="calf"/>
<div>
<field name="calf"
class="oe_inline"/>
&#x2063;
<field name="umo_calf_id"
class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
</group>
</sheet>
</form>
</field>
</group>
</page>
</xpath>
<xpath expr="//button[@name='%(membership.action_membership_invoice_view)d']"
position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
</field>
</record>
<record id="view_task_partner_info_form_inherit" model="ir.ui.view">
<field name="name">view.task.partner.info.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="project.view_task_partner_info_form"/>
<field name="arch" type="xml">
<field name="task_count" position="attributes">
<attribute name="string">Workouts</attribute>
</field>
</field>
</record>
<!-- Action of Measurement History -->
<record id="action_measurement_history" model="ir.actions.act_window">
<field name="name">Measurements</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">body.measurement</field>
<field name="binding_view_types">form</field>
<field name="view_mode">kanban,tree,form</field>
</record>
<!-- Action of Member Measurement History -->
<record id="action_member_measurement_history"
model="ir.actions.act_window">
<field name="name">Member Measurement History</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">body.measurement</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('partner_id', '=', active_id)]</field>
</record>
<!--Kanban view of member -->
<record id="member_kanban_view_new" model="ir.ui.view">
<field name="name">member.kanban.view.new</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<kanban class="o_res_partner_kanban">
<field name="id"/>
<field name="color"/>
<field name="display_name"/>
<field name="title"/>
<field name="email"/>
<field name="parent_id"/>
<field name="is_company"/>
<field name="function"/>
<field name="phone"/>
<field name="street"/>
<field name="street2"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="mobile"/>
<field name="state_id"/>
<field name="category_id"/>
<field name="image_128"/>
<field name="type"/>
<field name="measurements"/>
<field name="membership"/>
<field name="task_count"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click o_kanban_record_has_image_fill o_res_partner_kanban">
<t t-if="!record.is_company.raw_value">
<t t-if="record.type.raw_value === 'delivery'" t-set="placeholder" t-value="'/base/static/img/truck.png'"/>
<t t-elif="record.type.raw_value === 'invoice'" t-set="placeholder" t-value="'/base/static/img/money.png'"/>
<t t-else="" t-set="placeholder" t-value="'/base/static/img/avatar_grey.png'"/>
<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.id.raw_value, placeholder)}')">
<img class="o_kanban_image_inner_pic" t-if="record.parent_id.raw_value" t-att-alt="record.parent_id.value" t-att-src="kanban_image('res.partner', 'image_128', record.parent_id.raw_value)"/>
</div>
<div class="o_kanban_image rounded-circle d-md-none" t-attf-style="background-image:url('#{kanban_image('res.partner', 'image_128', record.id.raw_value, placeholder)}')">
<img class="o_kanban_image_inner_pic" t-if="record.parent_id.raw_value" t-att-alt="record.parent_id.value" t-att-src="kanban_image('res.partner', 'image_128', record.parent_id.raw_value)"/>
</div>
</t>
<t t-else="">
<t t-set="placeholder" t-value="'/base/static/img/company_image.png'"/>
<div class="o_kanban_image_fill_left o_kanban_image_full" t-attf-style="background-image: url(#{kanban_image('res.partner', 'image_128', record.id.raw_value, placeholder)})" role="img"/>
</t>
<div class="oe_kanban_details">
<strong class="oe_partner_heading">
<field name="display_name"/>
</strong>
<ul>
<li
t-if="record.parent_id.raw_value and !record.function.raw_value">
<field name="parent_id"/>
</li>
<li
t-if="!record.parent_id.raw_value and record.function.raw_value">
<field name="function"/>
</li>
<li
t-if="record.parent_id.raw_value and record.function.raw_value">
<field name="function"/>
at
<field name="parent_id"/>
</li>
<li t-if="record.city.raw_value and !record.country_id.raw_value">
<field name="city"/>
</li>
<li t-if="!record.city.raw_value and record.country_id.raw_value">
<field name="country_id"/>
</li>
<li t-if="record.city.raw_value and record.country_id.raw_value">
<field name="city"/>
,
<field name="country_id"/>
</li>
<li t-if="record.email.raw_value"
class="o_text_overflow">
<field name="email"/>
</li>
</ul>
<div class="oe_kanban_partner_links">
<div id="measurement"
style="float: left; padding-right: 3px;">
<a name="%(gym.action_member_measurement_history)d"
type="action"
id="measurement_div"
context="{'default_partner_id': active_id}">
<div>
<span t-esc="record.measurements.value"/> :
Measurements
</div>
</a>
</div>
<br/>
<div id="membership"
style="float: left; padding-right: 3px;">
<a name="%(gym.action_member_membership_plan)d"
context="{'default_partner': active_id}"
type="action">
<div>
<span t-esc="record.membership.value"/> :
Memberships
</div>
</a>
</div>
<br/>
<div id="task_count"
style="float: left; padding-right: 3px;">
<a name="%(gym.action_view_member_task)d"
type="action"
context="{'default_partner_id': active_id}">
<div>
<span t-esc="record.task_count.value"/> :
Workout
</div>
</a>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!--Action for members menu -->
<record id="action_member" model="ir.actions.act_window">
<field name="name">Members</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('is_member','=',True)]</field>
<field name="context">{"member_default":True}</field>
</record>
<!-- Binding the action of customer -->
<record id="view_member_kanban" model="ir.actions.act_window.view">
<field name="view_mode">kanban</field>
<field name="view_id" ref="member_kanban_view_new"/>
<field name="act_window_id" ref="action_member"/>
</record>
<!-- parent menu -->
<menuitem id="menu_gym" name="Gym Management"/>
<!-- Sub Menu as members -->
<menuitem id="menu_member" action="action_member"
parent="gym.menu_gym" sequence="1"/>
<!-- Form view of Measurement History -->
<record id="view_measurement_history_form" model="ir.ui.view">
<field name="name">view.measurement.history.form</field>
<field name="model">body.measurement</field>
<field name="arch" type="xml">
<form>
<sheet>
<separator string="Member's Detail" col="4"/>
<group>
<field name="partner_id" required="1"
invisible="context.get('member_invisible', False)"
domain="[('is_member','=',True)]"
context="{'default_is_member':True}"/>
<field name="date"/>
</group>
<separator string="Height - Weight" col="4"/>
<group>
<label for="weight" string="Weight"/>
<div>
<field name="weight" class="oe_inline"/>&#x2063;
<field name="umo_weight_id" class="oe_inline"
nolabel="1" placeholder="e.g. kg"/>
</div>
<label for="height" string="Height"/>
<div>
<field name="height" class="oe_inline"/>&#x2063;
<field name="umo_height_id" class="oe_inline"
nolabel="1" placeholder="e.g. foot"/>
</div>
<field name="bmi" readonly="1"/>
<field name="bmr"/>
</group>
<separator string="Body Measurement" col="4"/>
<group col="4">
<label for="neck" string="Neck"/>
<div>
<field name="neck" class="oe_inline"/>&#x2063;
<field name="umo_neck_id" class="oe_inline"
nolabel="1" placeholder="e.g. inch(s)"/>
</div>
<label for="chest"/>
<div>
<field name="chest" class="oe_inline"/>&#x2063;
<field name="umo_chest_id" class="oe_inline"
nolabel="1" placeholder="e.g. inch(s)"/>
</div>
<label for="biceps"/>
<div>
<field name="biceps" class="oe_inline"/>
&#x2063;
<field name="umo_biceps_id" class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="waist"/>
<div>
<field name="waist" class="oe_inline"/>
&#x2063;
<field name="umo_waist_id" class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="hips"/>
<div>
<field name="hips" class="oe_inline"/>
&#x2063;
<field name="umo_hips_id" class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
<label for="thigh"/>
<div>
<field name="thigh" class="oe_inline"/>
&#x2063;
<field name="umo_thigh_id" class="oe_inline"
nolabel="1" placeholder="e.g. inch(s)"/>
</div>
<label for="calf"/>
<div>
<field name="calf" class="oe_inline"/>
&#x2063;
<field name="umo_calf_id" class="oe_inline"
nolabel="1"
placeholder="e.g. inch(s)"/>
</div>
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view of Measurement History -->
<record id="view_measurement_history_tree" model="ir.ui.view">
<field name="name">view.measurement.history.tree</field>
<field name="model">body.measurement</field>
<field name="arch" type="xml">
<tree>
<field name="date"/>
<field name="weight"/>
<field name="height"/>
<field name="bmi"/>
<field name="bmr"/>
<field name="neck"/>
<field name="biceps"/>
<field name="hips"/>
<field name="calf"/>
<field name="chest"/>
<field name="waist"/>
<field name="thigh"/>
</tree>
</field>
</record>
<!-- Search view of Measurement History -->
<record id="view_measurement_search" model="ir.ui.view">
<field name="name">view.measurement.search</field>
<field name="model">body.measurement</field>
<field name="arch" type="xml">
<search>
<field name="partner_id"/>
<filter name="group_by_member" domain="[]" string="Member"
context="{'group_by':'partner_id'}"/>
<filter name="group_by_date_day" domain="[]" string="Day"
context="{'group_by':'date:day'}"/>
<filter name="group_by_date_month" domain="[]" string="Month"
context="{'group_by':'date:month'}"/>
<filter name="group_by_date_year" domain="[]" string="Year"
context="{'group_by':'date:year'}"/>
</search>
</field>
</record>
<!--Pivot view of Measurement History -->
<record id="measurement_view_pivot" model="ir.ui.view">
<field name="name">measurement.pivot</field>
<field name="model">body.measurement</field>
<field name="arch" type="xml">
<pivot string="Measurement">
<field name="partner_id" type="row"/>
<field name="date" type="col measure"/>
<field name="neck" type="measure"/>
<field name="chest" type="measure"/>
<field name="biceps" type="measure"/>
<field name="waist" type="measure"/>
<field name="hips" type="measure"/>
<field name="thigh" type="measure"/>
<field name="calf" type="measure"/>
<field name="weight" type="measure"/>
<field name="height" type="measure"/>
</pivot>
</field>
</record>
<!--Graph view of Measurement History -->
<record id="measurement_view_graph" model="ir.ui.view">
<field name="name">measurement.graph</field>
<field name="model">body.measurement</field>
<field name="arch" type="xml">
<graph string="Measurement">
<field name="partner_id"/>
<field name="date"/>
<field name="weight" type="measure"/>
</graph>
</field>
</record>
<!--Action for Measurement Analysis -->
<record id="measurement_graph_action" model="ir.actions.act_window">
<field name="name">Measurements Analysis</field>
<field name="res_model">body.measurement</field>
<field name="binding_view_types">form</field>
<field name="view_mode">pivot,graph</field>
<field name="view_id"></field> <!-- force empty -->
<field name="context">{'search_default_group_by_member': 1,
'search_default_group_by_date_day': 1}
</field>
</record>
<!--Main Menu of Measurement history -->
<menuitem
id="menu_measurement_history"
name="Measurements"
sequence="14"
web_icon="gym,static/description/icon2.png"
action="action_measurement_history"
/>
<!--Measurement history menu-->
<!-- <menuitem id="menu_measurement"
parent="gym.menu_measurement_history" sequence="1"/> -->
<!--Main Menu of Report -->
<menuitem id="menu_report" name="Report"
parent="gym.menu_measurement_history"/>
<!-- Measurement history analysis report -->
<menuitem id="menu_measurement_report" parent="gym.menu_report"
sequence="2" action="measurement_graph_action"/>
</odoo>

View File

@@ -0,0 +1,420 @@
<odoo>
<!-- form of the membership -->
<record id="view_membership_form_inherit" model="ir.ui.view">
<field name="name">view.membership.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="membership.membership_products_form"/>
<field name="arch" type="xml">
<xpath expr="//group/div/field[@name='membership_date_from']"
position="attributes">
<attribute name="required">0</attribute>
</xpath>
<xpath expr="//group/div"
position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//group/div/field[@name='membership_date_to']"
position="attributes">
<attribute name="required">0</attribute>
</xpath>
<xpath expr="/form/sheet/group/group[2]/label[1]" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//field[@name='description']" position="after">
<separator />
</xpath>
</field>
</record>
<record id="view_membership_tree_inherit" model="ir.ui.view">
<field name="name">view.membership.tree.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="membership.membership_products_tree"/>
<field name="arch" type="xml">
<xpath expr="//tree/field[@name='membership_date_from']"
position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//tree/field[@name='membership_date_to']"
position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
</field>
</record>
<record id="view_partner_form_membership_inherit" model="ir.ui.view">
<field name="name">view.partner.form.membership.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="membership.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//page[1]" position="before">
<page string="Other Details" name="others" autofocus="autofocus">
<group>
<group>
<field name="type" groups="base.group_no_one" invisible="1"/>
<label for="" name="address_name">
<b attrs="{'invisible': [('type', '!=', 'contact')]}">Address</b>
<b attrs="{'invisible': [('type', '!=', 'invoice')]}">Invoice Address</b>
<b attrs="{'invisible': [('type', '!=', 'delivery')]}">Delivery Address</b>
<b attrs="{'invisible': [('type', '!=', 'other')]}">Other Address</b>
<b attrs="{'invisible': [('type', '!=', 'private')]}">Private Address</b>
<b attrs="{'invisible': [('type', '!=', False)]}">Address</b>
</label>
<div class="o_address_format">
<field name="street" placeholder="Street..." class="o_address_street" attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}"/>
<field name="street2" placeholder="Street 2..." class="o_address_street" attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}"/>
<field name="city" placeholder="City" class="o_address_city" attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}"/>
<field name="state_id" class="o_address_state" placeholder="State" options="{&quot;no_open&quot;: True}" attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}" context="{'country_id': country_id, 'zip': zip}"/>
<field name="zip" placeholder="ZIP" class="o_address_zip" attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}"/>
<field name="country_id" placeholder="Country" class="o_address_country" options="{&quot;no_open&quot;: True, &quot;no_create&quot;: True}" attrs="{'readonly': [('type', '=', 'contact'),('parent_id', '!=', False)]}"/>
</div>
<field name="vat" placeholder="e.g. BE0477472701" attrs="{'readonly': [('parent_id','!=',False)]}"/>
<field name="marketing_source"/>
<field name="account_manager_id"/>
<field name="referred_by_id"/>
<field name="analytic_id" domain="[('is_location','=','True')]" attrs="{'invisible':[('is_member','=',False)]}"/>
</group>
<group>
<field name="occupation"/>
<field name="website" widget="url"/>
<field name="gender" widget="radio" required="1"/>
<field name="birthdate"/>
<field name="age"/>
</group>
</group>
</page>
</xpath>
<xpath expr="//page[2]" position="after">
<page string="Membership" name="membership" attrs="{'invisible':[('is_member','=',False)]}">
<group>
<group>
<field name="free_member"/>
<label for="membership_state"/>
<div>
<field name="membership_state"/>
<button name="%(membership.action_membership_invoice_view)d" type="action" string="Buy Membership"
attrs="{'invisible':[('free_member','=',True)]}" class="oe_link"/>
</div>
</group>
<group>
<field name="associate_member" attrs="{'invisible':[('free_member','=',True)]}"/>
<field name="membership_start" attrs="{'invisible':[('membership_start','=',False)]}"/>
<field name="membership_stop" attrs="{'invisible':[('membership_stop','=',False)]}"/>
<field name="membership_cancel" attrs="{'invisible':[('membership_cancel','=',False)]}"/>
</group>
</group>
<field name="member_lines" nolabel="1" colspan="4">
<tree string="Memberships">
<field name="partner"/>
<field name="date" string="Start Date"/>
<field name="end_date"/>
<field name="states"/>
</tree>
</field>
</page>
<page name="document" string="Documents" attrs="{'invisible':[('is_member','=',False)]}">
<separator string="Documents"/>
<field name="document_ids">
<tree editable="bottom" decoration-danger="is_document_set == False" decoration-info="is_document_set == True">
<field name="document_name_id"/>
<field name="is_document_set" invisible="1"/>
<field name="datas" filename="datas_fname"/>
<field name="datas_fname" invisible="1" class="oe_inline oe_right"/>
<field name="user_id"/>
<field name="date"/>
</tree>
<form>
<group>
<field name="document_name_id"/>
</group>
<group>
<field name="datas" filename="datas_fname"/>
<field name="datas_fname" invisible="1" class="oe_inline oe_right"/>
</group>
</form>
</field>
</page>
</xpath>
<xpath expr="//page[9]" position="replace"/>
<xpath expr="//page[@name='sales_purchases']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//page[@name='accounting']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//page[@name='internal_notes']" position="after">
<page string="Invoicing" name="accounting" attrs="{'invisible': [('is_company','=',False),('parent_id','!=',False)]}" groups="account.group_account_invoice">
<group>
<group string="Bank Accounts" name="banks" groups="account.group_account_invoice">
<field name="bank_ids" nolabel="1">
<tree editable="bottom">
<field name="sequence" widget="handle"/>
<field name="bank_id"/>
<field name="acc_number"/>
<field name="acc_holder_name"/>
</tree>
</field>
<button type="action" class="btn-link" name="65" context="{'search_default_partner_id': active_id, 'default_partner_id': active_id, 'form_view_ref': 'account.view_company_partner_bank_form'}" string="View accounts detail" colspan="2"/>
</group>
<group string="Credit Card Details" name="credit_card" attrs="{'invisible':[('is_member','=',False)]}">
<field name="credit_card_ids" nolabel="1">
<tree editable="bottom">
<field name="name"/>
<field name="type_id"/>
<field name="number"/>
<field name="expiry_date"/>
<field name="ccb_number"/>
</tree>
</field>
</group>
<group string="Accounting Entries" name="accounting_entries" groups="account.group_account_user" attrs="{'invisible':[('is_member','=',True)]}">
<field name="currency_id" invisible="1"/>
<field name="property_account_receivable_id"/>
<field name="property_account_payable_id"/>
</group>
</group>
</page>
<page string="Invoicing" name="accounting_disabled" attrs="{'invisible': ['|',('is_company','=',True),('parent_id','=',False)]}" groups="account.group_account_invoice">
<div>
<p>Accounting-related settings are managed on <button name="open_commercial_entity" type="object" string="the parent company" class="oe_link"/></p>
</div>
</page>
<xpath expr="//group[@name='misc']" position="before">
<group string="Fiscal Information" name="fiscal_information" priority="5" groups="account.group_account_invoice">
<field name="property_account_position_id" options="{'no_create': True, 'no_open': True}"/>
</group>
</xpath>
<group name="sale" position="inside">
<field string="Payment Terms" name="property_payment_term_id" widget="selection" groups="account.group_account_invoice"/>
</group>
<group name="purchase" position="inside">
<field string="Payment Terms" name="property_supplier_payment_term_id" widget="selection" groups="account.group_account_invoice"/>
</group>
</xpath>
<field name='free_member' position='attributes'>
<attribute name='invisible'>True</attribute>
</field>
<label for='membership_state' position='attributes'>
<attribute name='invisible'>True</attribute>
</label>
<field name='membership_state' position='attributes'>
<attribute name='invisible'>True</attribute>
</field>
<field name='associate_member' position='attributes'>
<attribute name='invisible'>True</attribute>
</field>
</field>
</record>
<!--Action for membership menu -->
<record id="action_membership" model="ir.actions.act_window">
<field name="name">Membership Plans</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="view_mode">tree,form</field>
<field name="view_id" ref="view_membership_form_inherit"/>
<field name="domain">[('is_membership','=',True)]</field>
<field name="context">{'membership':True, 'type':'service',
'default_is_membership': True, 'default_type': 'service'}
</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click here to add new membership.
</p>
</field>
</record>
<record id="view_membership_tree" model="ir.actions.act_window.view">
<field name="view_mode">tree</field>
<field name="view_id" ref="membership.membership_products_tree"/>
<field name="act_window_id" ref="action_membership"/>
</record>
<!-- <menuitem id="menu_membership_main" name="Membership"
parent="gym.menu_gym" sequence="3"
groups='gym.group_gym_operator,gym.group_gym_manager,gym.group_gym_member'/>
-->
<!-- Sub Menu as Membership plan -->
<!-- <menuitem id="menu_membership" action="action_membership"
parent="gym.menu_membership_main"
groups='gym.group_gym_operator'/> -->
<!-- Form view of membership plan-->
<record id="view_membership_plan_form" model="ir.ui.view">
<field name="name">view.membership.plan.form</field>
<field name="model">membership.membership_line</field>
<field name="arch" type="xml">
<form>
<header>
<field name="states" widget="statusbar"
statusbar_visible="draft,confirmed,expired,cancel"/>
<button name="action_draft"
type="object"
string="Set to draft"
class="oe_highlight"
groups='gym.group_gym_operator'
attrs="{'invisible':[('states','not in',['cancel'])]}"/>
<button name="action_confirm"
type="object"
string="Confirm"
class="oe_highlight"
groups='gym.group_gym_operator'
attrs="{'invisible':[('states','not in',['draft'])]}"/>
<button name="action_cancel"
string="Cancel"
type="object"
class="oe_highlight"
groups='gym.group_gym_operator'
attrs="{'invisible':[('states','in',['cancel', 'confirm'])]}"/>
</header>
<sheet>
<group colspan="4" col="4" name="grp_1">
<h1>
<field name="plan_sequence" readonly="1"
nolabel="1"/>
</h1>
<separator string="Membership Detail" colspan="4"/>
<field name="partner"
string="Member"
class="oe_inline"
context="{'default_is_member':True}"
domain="[('is_member','=',True)]"
required="1"
attrs="{'readonly':[('states','not in',['draft'])]}"/>
<field name="member_price"
string="Membership Fees"
required="0"
class="oe_inline"
attrs="{'readonly':[('states','not in',['draft'])]}"/>
<field name="membership_id"
required="1"
class="oe_inline"
domain="[('is_membership','=',True)]"
context="{'form_view_ref':'gym.view_membership_form_inherit','default_membership':True,
'default_is_membership':True}"
attrs="{'readonly':[('states','not in',['draft'])]}"/>
<field name="sale_order_id"
attrs="{'invisible':[('sale_order_id','=',False)]}"/>
<field name="paid_amount" force_save="1"/>
</group>
<group>
<separator string="Duration" colspan="2"/>
<field name="date"
string='Start Date'
class="oe_inline"
required="1"
attrs="{'readonly':[('states','not in',['draft'])]}"/>
<field name="end_date"
class="oe_inline"
required="1"
attrs="{'readonly':[('states','not in',['draft'])]}"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view of membership plan -->
<record id="view_membership_plan_tree" model="ir.ui.view">
<field name="name">view.membership.plan.tree</field>
<field name="model">membership.membership_line</field>
<field name="arch" type="xml">
<tree>
<field name="partner"/>
<field name="date" string="Start Date"/>
<field name="end_date"/>
<field name="states"/>
</tree>
</field>
</record>
<!-- Search view of membership plan-->
<record id="view_membership_search" model="ir.ui.view">
<field name="name">view.membership.search</field>
<field name="model">membership.membership_line</field>
<field name="arch" type="xml">
<search>
<filter name="group_by_member" domain="[]" string="Member"
context="{'group_by':'partner'}"/>
<filter name="group_by_state" domain="[]" string="State"
context="{'group_by':'states'}"/>
</search>
</field>
</record>
<!-- Kanban view of membership -->
<record id="view_membership_kanban" model="ir.ui.view">
<field name="name">view.membership.kanban</field>
<field name="model">membership.membership_line</field>
<field name="arch" type="xml">
<kanban class="o_kanban_small_column o_kanban_project_tasks"
on_create="quick_create">
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_card oe_kanban_global_click">
<div class="o_dropdown_kanban dropdown">
</div>
<div class="oe_kanban_content">
<field name="member_price"
invisible="1"/>
<div class="row">
<div class="col-6 pull-left text-left"
col="2" style="padding-right: 0px;">
<div>
<strong>
<field name="partner"/>
</strong>
</div>
<div>
<lable>Start Date -</lable>
<field name="date"/>
</div>
<div>
<lable>End Date -</lable>
<field name="end_date"/>
</div>
</div>
<div class="col-6 o_assignation_leads_count pull-left text-left"
style="padding: 0px;">
<field name="paid_amount"
widget="gauge"
style="width:90%; height: 90%;cursor:pointer;"
options="{'max_field': 'member_price', 'label_field':'member_price'}"/>
</div>
</div>
</div>
<div class="oe_clear"/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Action of membership plan -->
<record id="action_membership_plan" model="ir.actions.act_window">
<field name="name">Membership</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">membership.membership_line</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,kanban,form</field>
</record>
<!--Sub Action of Member membership plan -->
<record id="action_member_membership_plan" model="ir.actions.act_window">
<field name="name">Member Membership</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">membership.membership_line</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,kanban,form</field>
<field name="domain">[('partner', '=', active_id)]</field>
</record>
<!-- Menu of the membership plan -->
<!-- <menuitem id="menu_membership_plan" action="action_membership_plan"
parent="gym.menu_membership_main" sequence="1"/> -->
</odoo>

View File

@@ -0,0 +1,31 @@
<odoo>
<!--sale -->
<menuitem name="Sales"
id="sales_team.menu_base_partner"
web_icon="sale,static/description/icon.png"
groups="gym.group_menu_visible"/>
<!-- calendar -->
<menuitem
id="calendar.mail_menu_calendar"
name="Calendar"
sequence="2"
action="calendar.action_calendar_event"
web_icon="calendar,static/description/icon.png"
groups="-base.group_user,gym.group_menu_visible"/>
<!--Employee -->
<menuitem
id="hr.menu_hr_root"
name="Employees"
groups="-hr.group_hr_manager,-hr.group_hr_user,-base.group_user,gym.group_menu_visible"
web_icon="hr,static/description/icon.png"
sequence="75"/>
<!-- Member -->
<menuitem name="Members" id="membership.menu_association"
sequence="15" web_icon="membership,static/description/icon.png"
groups="gym.group_menu_visible"/>
</odoo>

View File

@@ -0,0 +1,345 @@
<odoo>
<!--parent menu -->
<menuitem id="menu_gym"
web_icon="gym,static/description/icon.png"
name="Gym Management"/>
<!--Configuration menu -->
<menuitem
id="menu_Configuration"
name="Configuration"
parent="workout_template.menu_workout_main"
groups='gym.group_gym_operator'/>
<!-- Inherited view of product -->
<record id="view_equipments_form_view" model="ir.ui.view">
<field name="name">view.equipments.form.view</field>
<field name="model">product.template</field>
<field name="arch" type="xml">
<form>
<header>
<button name="sts_work" string="Working" type="object"
states="maintenance,repair"/>
<button name="sts_maintan" string="Maintenance"
type="object" states="working"/>
<button name="sts_rpr" string="Repair" type="object"
states="working,maintenance"/>
<button name="sts_out" string="Out Of Service"
type="object" states="working,maintenance,repair"/>
<field name="state" widget="statusbar" clickable="0"
statusbar_visible="working,repair"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button name="toggle_active" type="object"
class="oe_stat_button"
icon="fa-archive">
<field name="active" widget="boolean_button"
options="{&quot;terminology&quot;: &quot;archive&quot;}"/>
</button>
</div>
<field name="image_1920" widget="image"
class="oe_avatar"/>
<div class="oe_title">
<label class="oe_edit_only" for="name"
string="Equipment Name"/>
<h1>
<field name="name" placeholder="Equipment Name"/>
</h1>
<div>
<field name="is_equipment" invisible="1"/>
<label for="is_equipment" invisible="1"/>
</div>
</div>
<notebook>
<page string="General Information"
name="general_information">
<group>
<group name="group_standard_price">
<label for="standard_price"
groups="base.group_user"/>
<div name="standard_price_uom"
groups="base.group_user">
<field name="standard_price"
widget="monetary"
options="{'currency_field': 'currency_id'}"
class="oe_inline"/>
</div>
<label for="exercise_ids"/>
<div>
<field name="exercise_ids"
widget="many2many_tags"/>
</div>
<label for="company"/>
<div>
<field name="company"/>
</div>
<label for="purchase_date"/>
<div>
<field name="purchase_date"/>
</div>
<field name="currency_id" invisible="1"/>
</group>
</group>
</page>
<page string="Notes" name="notes">
<group name="description">
<separator string="Description for Equipment"
colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Tree view of equipments-->
<record id="view_equipments_tree_view" model="ir.ui.view">
<field name="name">view.equipments.tree.view</field>
<field name="model">product.template</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="is_equipment" invisible="1"/>
<field name="standard_price"/>
<field name="exercise_ids" widget="many2many_tags"/>
<field name="company"/>
<field name="purchase_date"/>
<field name="note"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_equipments_kanban_view" model="ir.ui.view">
<field name="name">view.equipments.kanban.view</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_kanban_view"/>
<field name="arch" type="xml">
<field name="id" position="after">
<field name="is_equipment"/>
<field name="exercise_ids"/>
<field name="is_food"/>
</field>
<xpath expr="//div/div[hasclass('oe_kanban_details')]/ul" position="replace">
<ul>
<li>Cost: <field name="lst_price" widget="monetary" options="{'currency_field': 'currency_id', 'field_digits': True}"/></li>
<t t-if="record.is_equipment.raw_value">
<div>
<li>Exercise Type: <field name="exercise_ids" widget="many2many_tags"/></li>
</div>
<div>
<li>Company Name: <field name="company"/></li>
</div>
<div>
<li>Purchase Date: <field name="purchase_date"/></li>
</div>
<div>
<li>Note: <field name="note"/></li>
</div>
<div>
<li>State: <field name="state"/></li>
</div>
</t>
<t t-if="record.is_food.raw_value">
<div>
<li>Unit Of Measure: <field name="unit_id"/></li>
</div>
<div>
<li>Calories: <field name="calorie"/></li>
</div>
<div>
<li>Protein: <field name="protein"/></li>
</div>
<div>
<li>Carbohydrates: <field name="carbohydrates"/></li>
</div>
<div>
<li>Fat: <field name="fat"/></li>
</div>
<div>
<li>Fibres: <field name="fibres"/></li>
</div>
<div>
<li>Sodium: <field name="sodium"/></li>
</div>
</t>
</ul>
</xpath>
</field>
</record>
<!-- Search view of equipments-->
<record id="view_equipments_search" model="ir.ui.view">
<field name="name">view.equipments.search</field>
<field name="model">product.template</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="is_equipment"/>
</search>
</field>
</record>
<!-- Form view of exercise_type -->
<record id="view_exercise_form" model="ir.ui.view">
<field name="name">view.exercise.form</field>
<field name="model">exercise.type</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view of exercise_type -->
<record id="view_exercise_tree" model="ir.ui.view">
<field name="name">view.exercise.tree</field>
<field name="model">exercise.type</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
</tree>
</field>
</record>
<!-- Action of exercise_type -->
<record id="action_exercise" model="ir.actions.act_window">
<field name="name">Body Parts</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">exercise.type</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click here to add new body part.
</p>
</field>
</record>
<!-- Menu of the exercise_type -->
<menuitem id="menu_exercise" action="action_exercise"
parent="gym.menu_Configuration" sequence="2"/>
<record id="view_service_form_inherit" model="ir.ui.view">
<field name="name">view.service.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id"
ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="attributes">
<attribute name="placeholder">Service Name</attribute>
</xpath>
</field>
</record>
<record id="view_product_temp_form_inherit" model="ir.ui.view">
<field name="name">view.product.template.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='options']/div[2]" position="after">
<div>
<field name="is_membership" invisible="1"/>
<label for="is_membership" invisible="1"/>
</div>
</xpath>
</field>
</record>
<!-- Action of service -->
<record id="action_service" model="ir.actions.act_window">
<field name="name">Service Type</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="view_mode">kanban,tree,form</field>
<field name="domain">[('is_service','=',True)]</field>
<field name="context">{'service_default':True}</field>
<field name="help" type="html">
<p>
Click here to add new service.
</p>
</field>
</record>
<!-- Menu of the service -->
<!-- <menuitem id="menu_service" action="action_service"
parent="gym.menu_Configuration"/> -->
<!-- equipments action -->
<record id="action_gym" model="ir.actions.act_window">
<field name="name">Equipments</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="view_mode">kanban,tree,form</field>
<field name="domain">[('is_equipment','=',True)]</field>
<field name="context">
{"equipments_default":True,'search_default_fill_equipment':1}
</field>
<field name="help" type="html">
<p>
Click here to add new equipment.
</p>
</field>
</record>
<!-- Binding the action of Equipment kanban -->
<record id="view_equipment_kanban" model="ir.actions.act_window.view">
<field name="view_mode">kanban</field>
<field name="view_id" ref="product.product_template_kanban_view"/>
<field name="act_window_id" ref="action_gym"/>
</record>
<record id="view_equipment_tree" model="ir.actions.act_window.view">
<field name="view_mode">tree</field>
<field name="view_id" ref="view_equipments_tree_view"/>
<field name="act_window_id" ref="action_gym"/>
</record>
<record id="view_equipment_form" model="ir.actions.act_window.view">
<field name="view_mode">form</field>
<field name="view_id" ref="view_equipments_form_view"/>
<field name="act_window_id" ref="action_gym"/>
</record>
<!-- Sub Menu as Equipments -->
<menuitem
id="menu_gym_equipment"
action="action_gym"
sequence="15"
web_icon="gym,static/description/icon3.png"
/>
<report
id="product.report_product_template_label"
string="Product Label (PDF)"
model="product.template"
report_type="qweb-pdf"
name="product.report_producttemplatelabel"
file="product.report_producttemplatelabel"
print_report_name="'Products Labels - %s' % (object.name)"
menu="False"
/>
<report
id="product.report_product_template_barcode"
string="Product Barcode (PDF)"
model="product.template"
report_type="qweb-pdf"
name="product.report_producttemplatebarcode"
file="product.report_producttemplatebarcode"
print_report_name="'Products barcode - %s' % (object.name)"
menu="False"
/>
</odoo>

View File

@@ -0,0 +1,67 @@
<odoo>
<record id="base.menu_board_root" model="ir.ui.menu">
<field name="sequence">1</field>
</record>
<record id="view_project_task_form_form_inherit" model="ir.ui.view">
<field name="name">view.project.task.form.inherited</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_form2"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='date_deadline']" position="before">
<field name="schedule_date"/>
</xpath>
<xpath expr="//field[@name='user_id']" position="after">
<field name="reviewer_id"/>
</xpath>
<xpath expr="//group/field[@name='tag_ids']" position="after">
<field name="task_type" invisible="1"/>
</xpath>
</data>
</field>
</record>
<!--Kanban view-->
<record id="view_project_task_kanban_inherit" model="ir.ui.view">
<field name="name">view.project.kanban.inherited</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_kanban"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<div>
<lable>Schedule Date -</lable>
<field name="schedule_date"/>
</div>
</xpath>
</field>
</record>
<!--Project form view -->
<record id="view_project_form_client" model="ir.ui.view">
<field name="name">view.project.form.inherited1</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
<data>
<xpath expr="//notebook" position="before">
<group>
<field name="type" invisible="1"/>
</group>
</xpath>
</data>
</field>
</record>
<!-- Action of Member Tasks -->
<record id="action_view_member_task" model="ir.actions.act_window">
<field name="name">Member Tasks</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">project.task</field>
<field name="binding_view_types">form</field>
<field name="view_mode">kanban,tree,form,calendar,pivot,graph,activity</field>
<field name="domain">[('partner_id', '=', active_id)]</field>
</record>
</odoo>

View File

@@ -0,0 +1,45 @@
<odoo>
<!-- Inherited view of hr employee -->
<record id="view_trainer_form_inherit" model="ir.ui.view">
<field name="name">view.trainer.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='address_id']"
position="after">
<field name="is_trainer" invisible="1"/>
</xpath>
<xpath expr="//group/field[@name='work_phone']" position="after">
<field name="specialist_ids" widget="many2many_tags"
required="1"/>
</xpath>
<field name='work_email' position='attributes'>
<attribute name='attrs'>
{'required':[('is_trainer','=',True)]}
</attribute>
</field>
<field name='gender' position='attributes'>
<attribute name='required'>True</attribute>
</field>
<field name='name' position='attributes'>
<attribute name='placeholder'>Trainer's Name</attribute>
</field>
</field>
</record>
<!--Action for trainer menu -->
<record id="action_trainer" model="ir.actions.act_window">
<field name="name">Trainers</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.employee</field>
<field name="binding_view_types">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('is_trainer','=',True)]</field>
<field name="context">{"default_is_trainer":True}</field>
</record>
<!-- parent menu -->
<menuitem id="menu_gym" name="Members" sequence="9"/>
</odoo>

171
gym/views/workout_view.xml Normal file
View File

@@ -0,0 +1,171 @@
<odoo>
<!-- Form view of exercise.lines -->
<record id="view_exercise_workout_lines_form" model="ir.ui.view">
<field name="name">view.exercise.workout.lines.form</field>
<field name="model">exercise.lines</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="exercise_name_id" required="1"/>
<field name="sets"/>
<field name="reps_ids" widget="many2many_tags"/>
<field name="sequence" invisible="1"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Tree view of exercise.lines-->
<record id="view_exercise_workout_lines_tree" model="ir.ui.view">
<field name="name">view.exercise.workout.lines.tree</field>
<field name="model">exercise.lines</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="sequence" widget="handle"/>
<field name="exercise_name_id" required="1"/>
<field name="sets"/>
<field name="reps_ids" widget="many2many_tags"/>
</tree>
</field>
</record>
<!-- Form view of repeat.repeat -->
<record id="view_exercise_repeat_repeat_form" model="ir.ui.view">
<field name="name">view.exercise.repeat.repeat.form</field>
<field name="model">repeat.repeat</field>
<field name="arch" type="xml">
<form>
<sheet>
<group col="2">
<group>
<field name="name"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- Form view of exercise.exercise -->
<record id="view_exercisess_form" model="ir.ui.view">
<field name="name">view.exercisess.form</field>
<field name="model">exercise.exercise</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name" required="1"/>
<field name="exercise_type_ids"
widget="many2many_tags"/>
<field name="equipment_id"
domain="[('is_equipment','=',True), ('state', '=', 'working')]"
context="{'form_view_ref':'gym.view_equipments_form_view','default_is_equipment':True}"/>
</group>
<notebook>
<page string="Benefits">
<separator string="Benefits"/>
<field name="benefits"
placeholder="Benefits of Exercise"/>
</page>
<page string="Steps">
<separator string="Steps To Follow"/>
<field name="steps" placeholder="Steps To Follow"/>
</page>
<page string="Images">
<field name="exercise_images_ids" mode="kanban">
<kanban>
<field name="datas" widget='image'/>
<templates>
<t t-name="kanban-box">
<div class='oe_kanban_global_click'>
<a t-if="!read_only_mode"
type="delete"
class="fa fa-times pull-right"/>
<div class="oe_kanban_avatar">
<img alt=""
t-if="record.datas.raw_value"
width="320" height="128"
t-att-src="'data:datas/png;base64,'+record.datas.raw_value"/>
</div>
</div>
</t>
</templates>
</kanban>
<form>
<group col="2">
<field name="name" />
<field name="datas"/>
</group>
</form>
</field>
</page>
<page string="Videos">
<separator string="Videos"/>
<field name="exercise_video_ids">
<form>
<group>
<field name="name"/>
<field name="link"/>
</group>
</form>
<tree editable='bottom'>
<field name="name"/>
<field name="link"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Tree view of exercise.exercise-->
<record id="view_exercisess_tree" model="ir.ui.view">
<field name="name">view.exercisess.tree</field>
<field name="model">exercise.exercise</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="exercise_type_ids"/>
<field name="equipment_id"/>
</tree>
</field>
</record>
<!-- Search view of exercise.exercise-->
<record id="view_exercisess_search" model="ir.ui.view">
<field name="name">view.exercisess.search</field>
<field name="model">exercise.exercise</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="exercise_type_ids"/>
<filter name="fill_equipment" string="Equipment" domain="[]"
context="{'group_by':'equipment_id'}"/>
</search>
</field>
</record>
<!-- Action of exercise.lines-->
<record id="action_exercise_exercise" model="ir.actions.act_window">
<field name="name">Exercises</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">exercise.exercise</field>
<field name="binding_view_types">form</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click here to add new exercise.
</p>
</field>
</record>
<!-- Menu of the Exercises -->
<menuitem id="menu_exercise_exercise" action="action_exercise_exercise"
parent="gym.menu_Configuration" sequence="3"/>
</odoo>