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">
50 <label for="name" class="oe_edit_only"/>
56 <field name="default_code"/>
57 <field name="categ_id"/>
58 <field name="membership" invisible="1"/>
59 <field name="company_id"
60 groups="base.group_multi_company"
62 <field name="active"/>
65 <label for="membership_date_from" string="Membership Duration"/>
67 <field name="membership_date_from" required="1" class="oe_inline"/> -
68 <field name="membership_date_to" required="1" class="oe_inline"/>
70 <field name="list_price" string="Membership Fee"/>
72 name="property_account_income"
73 domain="[('type', '!=', 'view')]"/>
74 <field name="taxes_id" widget="many2many_tags" string="Taxes"/>
77 <label for="description"/>
78 <field colspan="4" name="description" placeholder="Add a description..."/>
79 <label for="description_sale"/>
80 <field colspan="4" name="description_sale" placeholder="This note will be displayed on quotations..."/>
86 <record model="ir.ui.view" id="product_template_form_view">
87 <field name="name">Membership Products</field>
88 <field name="model">product.template</field>
89 <field name="priority">6</field>
90 <field name="inherit_id" ref="product.product_template_form_view"/>
91 <field name="arch" type="xml">
92 <field name="type" position="after">
93 <field name="membership" readonly="0" attrs="{'invisible': [('type', '!=', 'service')]}"/>
95 <field name="description" position="before">
96 <group attrs="{'invisible':[('membership','=',False)]}">
97 <field name="membership_date_from" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
98 <field name="membership_date_to" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
104 <record model="ir.actions.act_window" id="action_membership_products">
105 <field name="name">Membership Products</field>
106 <field name="res_model">product.template</field>
107 <field name="domain">[('membership','=',True), ('type', '=', 'service')]</field>
108 <field name="context">{'membership':True, 'type':'service', 'default_membership': True, 'default_type': 'service'}</field>
109 <field name="search_view_id" ref="membership_product_search_form_view"/>
112 <record model="ir.actions.act_window.view" id="action_membership_product_view_tree">
113 <field name="sequence" eval="1"/>
114 <field name="view_mode">tree</field>
115 <field name="view_id" ref="membership_products_tree"/>
116 <field name="act_window_id" ref="action_membership_products"/>
119 <record model="ir.actions.act_window.view" id="action_membership_product_view_form">
120 <field name="sequence" eval="2"/>
121 <field name="view_mode">form</field>
122 <field name="view_id" ref="membership_products_form"/>
123 <field name="act_window_id" ref="action_membership_products"/>
126 <menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="10"/>
127 <menuitem name="Members" id="menu_membership" sequence="0" parent="base.menu_association"/>
128 <menuitem name="Configuration" id="base.menu_marketing_config_association"
129 parent="base.menu_association" sequence="30"/>
132 <menuitem name="Membership Products"
133 parent="base.menu_marketing_config_association"
134 id="menu_membership_products"
135 action="action_membership_products"
139 <!-- MEMBERSHIP/CURRENT MEMBERS -->
141 <record model="ir.ui.view" id="membership_members_tree">
142 <field name="name">Members</field>
143 <field name="model">res.partner</field>
144 <field name="arch" type="xml">
145 <tree string="Members">
147 <field name="membership_state"/>
148 <field name="associate_member" attrs="{'invisible':[('membership_state', '!=', 'none')]}"/>
149 <field name="membership_start"/>
150 <field name="membership_stop"/>
151 <field name="user_id" invisible="1"/>
156 <record id="view_res_partner_member_filter" model="ir.ui.view">
157 <field name="name">res.partner.select</field>
158 <field name="model">res.partner</field>
159 <field name="priority">50</field>
160 <field name="arch" type="xml">
161 <search string="Membership Partners">
162 <field name="membership_start" invisible="1"/>
163 <field name="membership_stop" string="End Membership Date"/>
164 <filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
166 <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
168 <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"/>
169 <filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
170 <group expand="0" string="Group By" colspan="10" col="8">
171 <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
172 <filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
173 <filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
174 <filter string="Start Month" help="Starting Month Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_start'}"/>
175 <filter string="End Month" help="Ending Month Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_stop'}"/>
181 <record model="ir.actions.act_window" id="action_membership_members">
182 <field name="name">Members</field>
183 <field name="res_model">res.partner</field>
184 <field name="search_view_id" ref="view_res_partner_member_filter"/>
185 <field name="context">{"search_default_all_members": 1, "default_free_member": True}</field>
188 <record model="ir.actions.act_window.view" id="action_membership_members_view_tree">
189 <field name="sequence" eval="2"/>
190 <field name="view_mode">tree</field>
191 <field name="view_id" ref="membership_members_tree"/>
192 <field name="act_window_id" ref="action_membership_members"/>
195 <record model="ir.actions.act_window.view" id="action_membership_members_view_form">
196 <field name="sequence" eval="3"/>
197 <field name="view_mode">form</field>
198 <field name="view_id" ref="base.view_partner_form"/>
199 <field name="act_window_id" ref="action_membership_members"/>
201 <record model="ir.actions.act_window.view" id="action_membership_members_view_kanban">
202 <field name="sequence" eval="1"/>
203 <field name="view_mode">kanban</field>
204 <field name="view_id" ref="base.res_partner_kanban_view"/>
205 <field name="act_window_id" ref="action_membership_members"/>
208 <menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
212 <record model="ir.ui.view" id="view_partner_tree">
213 <field name="name">res.partner.tree.form.inherit</field>
214 <field name="model">res.partner</field>
215 <field name="inherit_id" ref="base.view_partner_tree"/>
216 <field name="arch" type="xml">
217 <tree string="Contacts">
218 <field name="category_id" position="after"/>
219 <field name="membership_state"/>
224 <record model="ir.ui.view" id="view_partner_form">
225 <field name="name">res.partner.form.inherit</field>
226 <field name="model">res.partner</field>
227 <field name="inherit_id" ref="base.view_partner_form"/>
228 <field name="arch" type="xml">
229 <notebook position="inside">
230 <page string="Membership">
233 <field name="free_member"/>
234 <label for="membership_state"/>
236 <field name="membership_state"/>
237 <button name="%(action_membership_invoice_view)d" type="action" string="Buy Membership"
238 attrs="{'invisible':[('free_member','=',True)]}" class="oe_link"/>
242 <field name="associate_member" attrs="{'invisible':[('free_member','=',True)]}"/>
243 <field name="membership_start" attrs="{'invisible':[('membership_start','=',False)]}"/>
244 <field name="membership_stop" attrs="{'invisible':[('membership_stop','=',False)]}"/>
245 <field name="membership_cancel" attrs="{'invisible':[('membership_cancel','=',False)]}"/>
248 <field name="member_lines" nolabel="1" colspan="4" readonly="1">
249 <tree string="Memberships">
251 <field name="membership_id"/>
252 <field name="member_price"/>
253 <field name="account_invoice_id"/>
254 <field name="state"/>
256 <form string="Memberships">
258 <field name="member_price"/>
259 <field name="membership_id"/>
260 <field name="account_invoice_id"/>
261 <field name="state" colspan="4"/>
270 <!-- MEMBERSHIP/REPORTING -->
271 <menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>