7 <!-- MEMBERSHIP/MEMBERSHIP PRODUCTS -->
9 <record model="ir.ui.view" id="membership_product_search_form_view">
10 <field name="name">membership.product.search.form</field>
11 <field name="model">product.template</field>
12 <field name="priority">50</field>
13 <field name="arch" type="xml">
14 <search string="Membership Products">
15 <field name="name" string="Membership Product"/>
16 <filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',0)]"/>
17 <field name="categ_id" operator="child_of"/>
18 <group expand='0' string='Group by...'>
19 <filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}"/>
20 <filter string='From Month' icon="terp-go-month" domain="[]" context="{'group_by' : 'membership_date_from'}"/>
26 <record model="ir.ui.view" id="membership_products_tree">
27 <field name="name">Membership products</field>
28 <field name="model">product.template</field>
29 <field name="priority">50</field>
30 <field name="arch" type="xml">
31 <tree string="Membership products">
33 <field name="membership_date_from"/>
34 <field name="membership_date_to"/>
35 <field name="list_price" string="Membership Fee"/>
36 <field name="categ_id" invisible="1"/>
37 <field name="uom_id" invisible="1"/>
38 <field name="type" invisible="1"/>
43 <record model="ir.ui.view" id="membership_products_form">
44 <field name="name">Membership Products</field>
45 <field name="model">product.template</field>
46 <field name="priority">50</field>
47 <field name="arch" type="xml">
48 <form string="Membership products">
49 <label for="name" class="oe_edit_only"/>
55 <field name="default_code"/>
56 <field name="categ_id"/>
57 <field name="membership" invisible="1"/>
58 <field name="company_id"
59 groups="base.group_multi_company"
61 <field name="active"/>
64 <label for="membership_date_from" string="Membership Duration"/>
66 <field name="membership_date_from" required="1" class="oe_inline"/> -
67 <field name="membership_date_to" required="1" class="oe_inline"/>
69 <field name="list_price" string="Membership Fee"/>
71 name="property_account_income"
72 domain="[('type', '!=', 'view')]"/>
73 <field name="taxes_id" widget="many2many_tags" string="Taxes"/>
76 <label for="description"/>
77 <field colspan="4" name="description" placeholder="Add a description..."/>
78 <label for="description_sale"/>
79 <field colspan="4" name="description_sale" placeholder="This note will be displayed on quotations..."/>
84 <record model="ir.ui.view" id="product_template_form_view">
85 <field name="name">Membership Products</field>
86 <field name="model">product.template</field>
87 <field name="priority">6</field>
88 <field name="inherit_id" ref="product.product_template_form_view"/>
89 <field name="arch" type="xml">
90 <field name="type" position="after">
91 <field name="membership" readonly="0" attrs="{'invisible': [('type', '!=', 'service')]}"/>
93 <field name="description" position="before">
94 <group attrs="{'invisible':[('membership','=',False)]}">
95 <field name="membership_date_from" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
96 <field name="membership_date_to" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
102 <record model="ir.actions.act_window" id="action_membership_products">
103 <field name="name">Membership Products</field>
104 <field name="res_model">product.template</field>
105 <field name="domain">[('membership','=',True), ('type', '=', 'service')]</field>
106 <field name="context">{'membership':True, 'type':'service', 'default_membership': True, 'default_type': 'service'}</field>
107 <field name="search_view_id" ref="membership_product_search_form_view"/>
110 <record model="ir.actions.act_window.view" id="action_membership_product_view_tree">
111 <field name="sequence" eval="1"/>
112 <field name="view_mode">tree</field>
113 <field name="view_id" ref="membership_products_tree"/>
114 <field name="act_window_id" ref="action_membership_products"/>
117 <record model="ir.actions.act_window.view" id="action_membership_product_view_form">
118 <field name="sequence" eval="2"/>
119 <field name="view_mode">form</field>
120 <field name="view_id" ref="membership_products_form"/>
121 <field name="act_window_id" ref="action_membership_products"/>
124 <menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="10"/>
125 <menuitem name="Members" id="menu_membership" sequence="0" parent="base.menu_association"/>
126 <menuitem name="Configuration" id="base.menu_marketing_config_association"
127 parent="base.menu_association" sequence="30"/>
130 <menuitem name="Membership Products"
131 parent="base.menu_marketing_config_association"
132 id="menu_membership_products"
133 action="action_membership_products"
137 <!-- MEMBERSHIP/CURRENT MEMBERS -->
139 <record model="ir.ui.view" id="membership_members_tree">
140 <field name="name">Members</field>
141 <field name="model">res.partner</field>
142 <field name="arch" type="xml">
143 <tree string="Members">
145 <field name="membership_state"/>
146 <field name="associate_member" attrs="{'invisible':[('membership_state', '!=', 'none')]}"/>
147 <field name="membership_start"/>
148 <field name="membership_stop"/>
149 <field name="user_id" invisible="1"/>
154 <record id="view_res_partner_member_filter" model="ir.ui.view">
155 <field name="name">res.partner.select</field>
156 <field name="model">res.partner</field>
157 <field name="priority">50</field>
158 <field name="arch" type="xml">
159 <search string="Membership Partners">
160 <field name="membership_start" invisible="1"/>
161 <field name="membership_stop" string="End Membership Date"/>
162 <filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
164 <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
166 <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"/>
167 <filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
168 <group expand="0" string="Group By" colspan="10" col="8">
169 <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
170 <filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
171 <filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
172 <filter string="Start Month" help="Starting Month Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_start'}"/>
173 <filter string="End Month" help="Ending Month Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_stop'}"/>
179 <record model="ir.actions.act_window" id="action_membership_members">
180 <field name="name">Members</field>
181 <field name="res_model">res.partner</field>
182 <field name="search_view_id" ref="view_res_partner_member_filter"/>
183 <field name="context">{"search_default_all_members": 1, "default_free_member": True}</field>
186 <record model="ir.actions.act_window.view" id="action_membership_members_view_tree">
187 <field name="sequence" eval="2"/>
188 <field name="view_mode">tree</field>
189 <field name="view_id" ref="membership_members_tree"/>
190 <field name="act_window_id" ref="action_membership_members"/>
193 <record model="ir.actions.act_window.view" id="action_membership_members_view_form">
194 <field name="sequence" eval="3"/>
195 <field name="view_mode">form</field>
196 <field name="view_id" ref="base.view_partner_form"/>
197 <field name="act_window_id" ref="action_membership_members"/>
199 <record model="ir.actions.act_window.view" id="action_membership_members_view_kanban">
200 <field name="sequence" eval="1"/>
201 <field name="view_mode">kanban</field>
202 <field name="view_id" ref="base.res_partner_kanban_view"/>
203 <field name="act_window_id" ref="action_membership_members"/>
206 <menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
210 <record model="ir.ui.view" id="view_partner_tree">
211 <field name="name">res.partner.tree.form.inherit</field>
212 <field name="model">res.partner</field>
213 <field name="inherit_id" ref="base.view_partner_tree"/>
214 <field name="arch" type="xml">
215 <tree string="Contacts">
216 <field name="category_id" position="after"/>
217 <field name="membership_state"/>
222 <record model="ir.ui.view" id="view_partner_form">
223 <field name="name">res.partner.form.inherit</field>
224 <field name="model">res.partner</field>
225 <field name="inherit_id" ref="base.view_partner_form"/>
226 <field name="arch" type="xml">
227 <notebook position="inside">
228 <page string="Membership">
231 <field name="free_member"/>
232 <label for="membership_state"/>
234 <field name="membership_state"/>
235 <button name="%(action_membership_invoice_view)d" type="action" string="Buy Membership"
236 attrs="{'invisible':[('free_member','=',True)]}" class="oe_link"/>
240 <field name="associate_member" attrs="{'invisible':[('free_member','=',True)]}"/>
241 <field name="membership_start" attrs="{'invisible':[('membership_start','=',False)]}"/>
242 <field name="membership_stop" attrs="{'invisible':[('membership_stop','=',False)]}"/>
243 <field name="membership_cancel" attrs="{'invisible':[('membership_cancel','=',False)]}"/>
246 <field name="member_lines" nolabel="1" colspan="4" readonly="1">
247 <tree string="Memberships">
249 <field name="membership_id"/>
250 <field name="member_price"/>
251 <field name="account_invoice_id"/>
252 <field name="state"/>
254 <form string="Memberships">
256 <field name="member_price"/>
257 <field name="membership_id"/>
258 <field name="account_invoice_id"/>
259 <field name="state" colspan="4"/>
268 <!-- MEMBERSHIP/REPORTING -->
269 <menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>