summaryrefslogtreecommitdiff
path: root/addons/membership/views
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/membership/views
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/membership/views')
-rw-r--r--addons/membership/views/partner_views.xml151
-rw-r--r--addons/membership/views/product_views.xml147
2 files changed, 298 insertions, 0 deletions
diff --git a/addons/membership/views/partner_views.xml b/addons/membership/views/partner_views.xml
new file mode 100644
index 00000000..c4e8acdf
--- /dev/null
+++ b/addons/membership/views/partner_views.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- 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"/>
+ <field name="membership_start"/>
+ <field name="membership_stop"/>
+ <field name="user_id" invisible="1"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </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"
+ filter_domain="['|', '|', ('name', 'ilike', self), ('parent_id', 'ilike', self), ('ref' , '=', self)]"/>
+ <field name="category_id"/>
+ <field name="membership_start" invisible="1"/>
+ <field name="membership_stop" string="End Membership Date"/>
+ <filter name="customer" string="Customers" domain="[('customer_rank' ,'>', 0)]"/>
+ <filter name="supplier" string="Vendors" domain="[('supplier_rank', '>', 0)]"/>
+ <separator/>
+ <filter name="all_members" string="Members" domain="[('membership_state', 'in', ['invoiced', 'paid', 'free'])]" help="Invoiced/Paid/Free"/>
+ <separator/>
+ <filter string="Start Date" name="start_date" date="membership_start"/>
+ <filter string="End Date" name="end_date" date="membership_stop"/>
+ <group expand="0" string="Group By" colspan="10" col="8">
+ <filter string="Salesperson" name="salesperson" domain="[]" context="{'group_by' : 'user_id'}"/>
+ <filter string="Associate Member" name = "associate" domain="[]" context="{'group_by': 'associate_member'}"/>
+ <filter string="Membership State" name="membership_state" domain="[]" context="{'group_by': 'membership_state'}"/>
+ <filter string="Start Date" name="start_month" help="Starting Date Of Membership" domain="[]" context="{'group_by': 'membership_start'}"/>
+ <filter string="End Date" name="end_month" help="Ending Date Of Membership" 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="view_mode">kanban,tree,form,activity</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="o_view_nocontent_smiling_face">
+ 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" id="menu_membership" sequence="0" parent="menu_association" 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="membership_state" optional="hide"/>
+ </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" name="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">
+ <group col="2">
+ <group>
+ <field name="membership_id"/>
+ <field name="date"/>
+ <field name="state"/>
+ </group>
+ <group>
+ <field name="member_price"/>
+ <field name="account_invoice_id" context="{'form_view_ref': 'account.view_move_form'}"/>
+ </group>
+ </group>
+ </form>
+ </field>
+
+ </page>
+ </notebook>
+ </field>
+ </record>
+</odoo>
diff --git a/addons/membership/views/product_views.xml b/addons/membership/views/product_views.xml
new file mode 100644
index 00000000..6abf1fd4
--- /dev/null
+++ b/addons/membership/views/product_views.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <!-- 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" name="inactive" domain="[('active','=',False)]"/>
+ <field name="categ_id" operator="child_of"/>
+ <group expand='0' string='Group by...'>
+ <filter string='Category' name="category" domain="[]" context="{'group_by' : 'categ_id'}"/>
+ <filter string='Start Date' name="from_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 id="membership_products_kanban" model="ir.ui.view">
+ <field name="name">product.template.kanban</field>
+ <field name="model">product.template</field>
+ <field name="arch" type="xml">
+ <kanban class="o_kanban_mobile">
+ <field name="name"/>
+ <field name="membership_date_from"/>
+ <field name="membership_date_to"/>
+ <field name="list_price"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div t-attf-class="oe_kanban_card oe_kanban_global_click">
+ <div class="o_kanban_record_top">
+ <div class="o_kanban_record_headings">
+ <strong class="o_kanban_record_title"><span class="mt4"><field name="name"/></span></strong>
+ </div>
+ <span class="badge badge-pill"><i class="fa fa-money" role="img" aria-label="Price" title="Price"/> <field name="list_price"/></span>
+ </div>
+ <div class="o_kanban_record_body">
+ <i class="fa fa-clock-o" role="img" aria-label="Period" title="Period"></i><strong> From: </strong><field name="membership_date_from"/><strong> To:</strong> <field name="membership_date_to"/>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </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">
+ <sheet>
+ <label for="name" class="oe_edit_only"/>
+ <h1>
+ <field name="name"/>
+ </h1>
+ <group>
+ <group name="product_details">
+ <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" widget="boolean_toggle"/>
+ </group>
+ <group name="membership_details">
+ <label for="membership_date_from" string="Membership Duration"/>
+ <div class="o_row">
+ <field name="membership_date_from" required="1"/> -
+ <field name="membership_date_to" required="1"/>
+ </div>
+ <field name="list_price" string="Membership Fee"/>
+ <field
+ name="property_account_income_id"/>
+ <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..."/>
+ </sheet>
+ </form>
+ </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>
+
+ <record model="ir.actions.act_window.view" id="action_membership_product_view_kanban">
+ <field name="sequence" eval="3"/>
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="membership_products_kanban"/>
+ <field name="act_window_id" ref="action_membership_products"/>
+ </record>
+
+ <menuitem name="Members" id="menu_association" sequence="15" web_icon="membership,static/description/icon.png"/>
+ <menuitem name="Configuration" id="menu_marketing_config_association"
+ parent="menu_association" sequence="100"/>
+ <menuitem name="Membership Products" id="menu_membership_products" parent="menu_marketing_config_association"
+ action="action_membership_products"/>
+
+</odoo>