Originally, selection widget was used to prevent the creation of new companies, but now, we have an option for that in m2o widgets.
283 lines
15 KiB
XML
283 lines
15 KiB
XML
<?xml version="1.0"?>
|
|
<openerp>
|
|
<data>
|
|
|
|
<!-- MEMBERSHIP -->
|
|
|
|
<!-- MEMBERSHIP/MEMBERSHIP PRODUCTS -->
|
|
|
|
<record model="ir.ui.view" id="membership_product_search_form_view">
|
|
<field name="name">membership.product.search.form</field>
|
|
<field name="model">product.template</field>
|
|
<field name="priority">50</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Membership Products">
|
|
<field name="name" string="Membership Product"/>
|
|
<filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',0)]"/>
|
|
<field name="categ_id" operator="child_of"/>
|
|
<group expand='0' string='Group by...'>
|
|
<filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}"/>
|
|
<filter string='From Month' icon="terp-go-month" domain="[]" context="{'group_by' : 'membership_date_from'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="membership_products_tree">
|
|
<field name="name">Membership products</field>
|
|
<field name="model">product.template</field>
|
|
<field name="priority">50</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Membership products">
|
|
<field name="name"/>
|
|
<field name="membership_date_from"/>
|
|
<field name="membership_date_to"/>
|
|
<field name="list_price" string="Membership Fee"/>
|
|
<field name="categ_id" invisible="1"/>
|
|
<field name="uom_id" invisible="1"/>
|
|
<field name="type" invisible="1"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="membership_products_form">
|
|
<field name="name">Membership Products</field>
|
|
<field name="model">product.template</field>
|
|
<field name="priority">50</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Membership products">
|
|
<label for="name" class="oe_edit_only"/>
|
|
<h1>
|
|
<field name="name"/>
|
|
</h1>
|
|
<group>
|
|
<group>
|
|
<field name="default_code"/>
|
|
<field name="categ_id"/>
|
|
<field name="membership" invisible="1"/>
|
|
<field name="company_id"
|
|
groups="base.group_multi_company"
|
|
options="{'no_create': True}"/>
|
|
<field name="active"/>
|
|
</group>
|
|
<group>
|
|
<label for="membership_date_from" string="Membership Duration"/>
|
|
<div>
|
|
<field name="membership_date_from" required="1" class="oe_inline"/> -
|
|
<field name="membership_date_to" required="1" class="oe_inline"/>
|
|
</div>
|
|
<field name="list_price" string="Membership Fee"/>
|
|
<field
|
|
name="property_account_income"
|
|
domain="[('type', '!=', 'view')]"/>
|
|
<field name="taxes_id" widget="many2many_tags" string="Taxes"/>
|
|
</group>
|
|
</group>
|
|
<label for="description"/>
|
|
<field colspan="4" name="description" placeholder="Add a description..."/>
|
|
<label for="description_sale"/>
|
|
<field colspan="4" name="description_sale" placeholder="This note will be displayed on quotations..."/>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="product_template_form_view">
|
|
<field name="name">Membership Products</field>
|
|
<field name="model">product.template</field>
|
|
<field name="priority">6</field>
|
|
<field name="inherit_id" ref="product.product_template_form_view"/>
|
|
<field name="arch" type="xml">
|
|
<field name="type" position="after">
|
|
<field name="membership" readonly="0" attrs="{'invisible': [('type', '!=', 'service')]}"/>
|
|
</field>
|
|
<field name="description" position="before">
|
|
<group attrs="{'invisible':[('membership','=',False)]}">
|
|
<field name="membership_date_from" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
|
|
<field name="membership_date_to" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
|
|
</group>
|
|
</field>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="action_membership_products">
|
|
<field name="name">Membership Products</field>
|
|
<field name="res_model">product.template</field>
|
|
<field name="domain">[('membership','=',True), ('type', '=', 'service')]</field>
|
|
<field name="context">{'membership':True, 'type':'service', 'default_membership': True, 'default_type': 'service'}</field>
|
|
<field name="search_view_id" ref="membership_product_search_form_view"/>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window.view" id="action_membership_product_view_tree">
|
|
<field name="sequence" eval="1"/>
|
|
<field name="view_mode">tree</field>
|
|
<field name="view_id" ref="membership_products_tree"/>
|
|
<field name="act_window_id" ref="action_membership_products"/>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window.view" id="action_membership_product_view_form">
|
|
<field name="sequence" eval="2"/>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="membership_products_form"/>
|
|
<field name="act_window_id" ref="action_membership_products"/>
|
|
</record>
|
|
|
|
<menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="10"/>
|
|
<menuitem name="Members" id="menu_membership" sequence="0" parent="base.menu_association"/>
|
|
<menuitem name="Configuration" id="base.menu_marketing_config_association"
|
|
parent="base.menu_association" sequence="30"/>
|
|
|
|
|
|
<menuitem name="Membership Products"
|
|
parent="base.menu_marketing_config_association"
|
|
id="menu_membership_products"
|
|
action="action_membership_products"
|
|
sequence="1"/>
|
|
|
|
|
|
<!-- MEMBERSHIP/CURRENT MEMBERS -->
|
|
|
|
<record model="ir.ui.view" id="membership_members_tree">
|
|
<field name="name">Members</field>
|
|
<field name="model">res.partner</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Members">
|
|
<field name="name"/>
|
|
<field name="membership_state"/>
|
|
<field name="associate_member" attrs="{'invisible':[('membership_state', '!=', 'none')]}"/>
|
|
<field name="membership_start"/>
|
|
<field name="membership_stop"/>
|
|
<field name="user_id" invisible="1"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_res_partner_member_filter" model="ir.ui.view">
|
|
<field name="name">res.partner.select</field>
|
|
<field name="model">res.partner</field>
|
|
<field name="priority">50</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Membership Partners">
|
|
<field name="name" string="Members"/>
|
|
<field name="category_id"/>
|
|
<field name="membership_start" invisible="1"/>
|
|
<field name="membership_stop" string="End Membership Date"/>
|
|
<filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
|
|
<separator/>
|
|
<filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
|
|
<separator/>
|
|
<filter icon="terp-personal" name="all_non_members" domain="[('membership_state', 'in', ['none','canceled','old','waiting'])]" string="All non Members" help="None/Canceled/Old/Waiting"/>
|
|
<filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
|
|
<group expand="0" string="Group By" colspan="10" col="8">
|
|
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
|
|
<filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
|
|
<filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
|
|
<filter string="Start Month" help="Starting Month Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_start'}"/>
|
|
<filter string="End Month" help="Ending Month Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_stop'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="action_membership_members">
|
|
<field name="name">Members</field>
|
|
<field name="res_model">res.partner</field>
|
|
<field name="search_view_id" ref="view_res_partner_member_filter"/>
|
|
<field name="context">{"search_default_all_members": 1, "default_free_member": True}</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to add a new Member
|
|
</p><p>
|
|
Odoo helps you easily track all activities related to a member:
|
|
Current Membership Status, Discussions and History of Membership, etc.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window.view" id="action_membership_members_view_tree">
|
|
<field name="sequence" eval="2"/>
|
|
<field name="view_mode">tree</field>
|
|
<field name="view_id" ref="membership_members_tree"/>
|
|
<field name="act_window_id" ref="action_membership_members"/>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window.view" id="action_membership_members_view_form">
|
|
<field name="sequence" eval="3"/>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="base.view_partner_form"/>
|
|
<field name="act_window_id" ref="action_membership_members"/>
|
|
</record>
|
|
<record model="ir.actions.act_window.view" id="action_membership_members_view_kanban">
|
|
<field name="sequence" eval="1"/>
|
|
<field name="view_mode">kanban</field>
|
|
<field name="view_id" ref="base.res_partner_kanban_view"/>
|
|
<field name="act_window_id" ref="action_membership_members"/>
|
|
</record>
|
|
|
|
<menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
|
|
|
|
<!-- PARTNERS -->
|
|
|
|
<record model="ir.ui.view" id="view_partner_tree">
|
|
<field name="name">res.partner.tree.form.inherit</field>
|
|
<field name="model">res.partner</field>
|
|
<field name="inherit_id" ref="base.view_partner_tree"/>
|
|
<field name="arch" type="xml">
|
|
<tree string="Contacts">
|
|
<field name="category_id" position="after"/>
|
|
<field name="membership_state"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_partner_form">
|
|
<field name="name">res.partner.form.inherit</field>
|
|
<field name="model">res.partner</field>
|
|
<field name="inherit_id" ref="base.view_partner_form"/>
|
|
<field name="arch" type="xml">
|
|
<notebook position="inside">
|
|
<page string="Membership">
|
|
<group>
|
|
<group>
|
|
<field name="free_member"/>
|
|
<label for="membership_state"/>
|
|
<div>
|
|
<field name="membership_state"/>
|
|
<button name="%(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" readonly="1">
|
|
<tree string="Memberships">
|
|
<field name="date"/>
|
|
<field name="membership_id"/>
|
|
<field name="member_price"/>
|
|
<field name="account_invoice_id"/>
|
|
<field name="state"/>
|
|
</tree>
|
|
<form string="Memberships">
|
|
<field name="date"/>
|
|
<field name="member_price"/>
|
|
<field name="membership_id"/>
|
|
<field name="account_invoice_id"/>
|
|
<field name="state" colspan="4"/>
|
|
</form>
|
|
</field>
|
|
|
|
</page>
|
|
</notebook>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- MEMBERSHIP/REPORTING -->
|
|
<menuitem name="Association" id="base.menu_report_association" parent="base.menu_reporting" sequence="23"/>
|
|
|
|
</data>
|
|
</openerp>
|