[MERGE] forward port of branch 8.0 up to c825d05
[odoo/odoo.git] / addons / membership / membership_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5         <!-- MEMBERSHIP -->
6
7         <!-- MEMBERSHIP/MEMBERSHIP PRODUCTS -->
8
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'}"/>
21                     </group>
22                 </search>
23             </field>
24         </record>
25
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">
32                     <field name="name"/>
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"/>
39                 </tree>
40             </field>
41         </record>
42
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"/>
50                     <h1>
51                         <field name="name"/>
52                     </h1>
53                     <group>
54                         <group>
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"
60                                 widget="selection"/>
61                             <field name="active"/>
62                         </group>
63                         <group>
64                             <label for="membership_date_from" string="Membership Duration"/>
65                             <div>
66                                 <field name="membership_date_from" required="1" class="oe_inline"/> -
67                                 <field name="membership_date_to" required="1" class="oe_inline"/>
68                             </div>
69                             <field name="list_price" string="Membership Fee"/>
70                             <field
71                                 name="property_account_income"
72                                 domain="[('type', '!=', 'view')]"/>
73                             <field name="taxes_id" widget="many2many_tags" string="Taxes"/>
74                         </group>
75                     </group>
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..."/>
80                  </form>
81             </field>
82         </record>
83
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')]}"/>
92                 </field>
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)]}"/>
97                     </group>
98                 </field>
99             </field>
100         </record>
101
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"/>
108         </record>
109
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"/>
115         </record>
116
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"/>
122         </record>
123
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"/>
128
129
130         <menuitem name="Membership Products"
131                   parent="base.menu_marketing_config_association"
132                   id="menu_membership_products"
133                   action="action_membership_products"
134                   sequence="1"/>
135
136
137         <!-- MEMBERSHIP/CURRENT MEMBERS -->
138
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">
144                     <field name="name"/>
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"/>
150                 </tree>
151             </field>
152         </record>
153
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"/>
163                     <separator/>
164                     <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
165                     <separator/>
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'}"/>
174                     </group>
175                 </search>
176             </field>
177         </record>
178
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>
184         </record>
185
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"/>
191         </record>
192
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"/>
198         </record>
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"/>
204         </record>
205
206         <menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
207
208         <!-- PARTNERS -->
209
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"/>
218                 </tree>
219             </field>
220         </record>
221
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">
229                         <group>
230                             <group>
231                                 <field name="free_member"/>
232                                 <label for="membership_state"/>
233                                 <div>
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"/>
237                                 </div>
238                             </group>
239                             <group>
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)]}"/>
244                             </group>
245                         </group>
246                         <field name="member_lines" nolabel="1" colspan="4" readonly="1">
247                             <tree string="Memberships">
248                                 <field name="date"/>
249                                 <field name="membership_id"/>
250                                 <field name="member_price"/>
251                                 <field name="account_invoice_id"/>
252                                 <field name="state"/>
253                             </tree>
254                             <form string="Memberships">
255                                 <field name="date"/>
256                                 <field name="member_price"/>
257                                 <field name="membership_id"/>
258                                 <field name="account_invoice_id"/>
259                                 <field name="state" colspan="4"/>
260                             </form>
261                         </field>
262
263                     </page>
264                 </notebook>
265             </field>
266         </record>
267
268         <!-- MEMBERSHIP/REPORTING -->
269         <menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
270
271     </data>
272 </openerp>