mirror of
https://gitlab.com/sonalarora/tra_backend.git
synced 2026-01-03 22:52:55 +02:00
add gym module
This commit is contained in:
26
gym/views/company_view.xml
Normal file
26
gym/views/company_view.xml
Normal 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>
|
||||
44
gym/views/gym_skills_view.xml
Normal file
44
gym/views/gym_skills_view.xml
Normal 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
609
gym/views/member_view.xml
Normal 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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>⁣
|
||||
<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"/>⁣
|
||||
<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"/>⁣
|
||||
<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"/>⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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"/>
|
||||
⁣
|
||||
<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>
|
||||
420
gym/views/membership_view.xml
Normal file
420
gym/views/membership_view.xml
Normal 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="{"no_open": 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="{"no_open": True, "no_create": 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>
|
||||
31
gym/views/menuitem_hide.xml
Normal file
31
gym/views/menuitem_hide.xml
Normal 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>
|
||||
345
gym/views/product_template.xml
Normal file
345
gym/views/product_template.xml
Normal 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="{"terminology": "archive"}"/>
|
||||
</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>
|
||||
67
gym/views/project_task_view.xml
Normal file
67
gym/views/project_task_view.xml
Normal 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>
|
||||
45
gym/views/trainer_view.xml
Normal file
45
gym/views/trainer_view.xml
Normal 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
171
gym/views/workout_view.xml
Normal 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>
|
||||
Reference in New Issue
Block a user