[MERGE] Sync with trunk
[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.product</field>
12             <field name="arch" type="xml">
13                 <search string="Membership Products">
14                     <field name="name" filter_domain="['|',('name','ilike',self),('code','ilike',self)]" string="Membership Product"/>
15                     <filter string="Inactive" icon="terp-gdu-smart-failing" domain="[('active','=',0)]"/>
16                     <field name="categ_id" operator="child_of"/>
17                     <group  expand='0' string='Group by...'>
18                         <filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}"/>
19                         <filter string='Date From' icon="terp-go-month" domain="[]" context="{'group_by' : 'membership_date_from'}"/>
20                     </group>
21                 </search>
22             </field>
23         </record>
24
25         <record model="ir.ui.view" id="membership_products_tree">
26             <field name="name">Membership products</field>
27             <field name="model">product.product</field>
28             <field name="arch" type="xml">
29                 <tree string="Membership products">
30                     <field name="code"/>
31                     <field name="name"/>
32                     <field name="membership_date_from"/>
33                     <field name="membership_date_to"/>
34                     <field name="list_price" string="Membership Fee"/>
35                     <field name="categ_id" invisible="1"/>
36                     <field name="uom_id" invisible="1"/>
37                     <field name="type" invisible="1"/>
38                 </tree>
39             </field>
40         </record>
41
42         <record model="ir.ui.view" id="membership_products_form">
43             <field name="name">Membership Products</field>
44             <field name="model">product.product</field>
45             <field name="arch" type="xml">
46                 <form string="Membership products" version="7.0">
47                     <sheet>
48                         <label for="name" class="oe_edit_only"/>
49                         <h1>
50                             <field name="name"/>
51                         </h1>
52                         <group>
53                             <group>
54                                 <field name="default_code"/>
55                                 <field name="categ_id"/>
56                                 <field name="membership" invisible="1"/>
57                                 <field name="company_id"
58                                     groups="base.group_multi_company"
59                                     widget="selection"/>
60                                 <field name="active"/>
61                             </group>
62                             <group>
63                                 <label for="membership_date_from" string="Membership Duration"/>
64                                 <div>
65                                     <field name="membership_date_from" required="1" class="oe_inline"/> -
66                                     <field name="membership_date_to" required="1" class="oe_inline"/>
67                                 </div>
68                                 <field name="list_price" string="Membership Fee"/>
69                                 <field
70                                     name="property_account_income"
71                                     domain="[('type', '!=', 'view')]"/>
72                                 <field name="taxes_id" widget="many2many_tags" string="Taxes"/>
73                             </group>
74                         </group>
75                         <label for="description"/>
76                         <field colspan="4" name="description" placeholder="Add a description..."/>
77                         <label for="description_sale"/>
78                         <field colspan="4" name="description_sale" placeholder="This note will be displayed on quotations..."/>
79                     </sheet>
80                  </form>
81             </field>
82         </record>
83
84         <record model="ir.ui.view" id="product_normal_form_view">
85             <field name="name">Membership Products</field>
86             <field name="model">product.product</field>
87             <field name="priority">6</field>
88             <field name="inherit_id" ref="product.product_normal_form_view"/>
89             <field name="arch" type="xml">
90                 <page string="Accounting" position="after">
91                     <page string="Membership">
92                         <group col="1">
93                             <group>
94                                 <field name="membership" readonly="0"/>
95                             </group>
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)]}"/>
99                             </group>
100                         </group>
101                     </page>
102                 </page>
103             </field>
104         </record>
105
106         <record model="ir.actions.act_window" id="action_membership_products">
107             <field name="name">Membership Products</field>
108             <field name="res_model">product.product</field>
109             <field name="domain">[('membership','=',True), ('type', '=', 'service')]</field>
110             <field name="context">{'membership':True, 'type':'service', 'default_membership': True, 'default_type': 'service'}</field>
111             <field name="search_view_id" ref="membership_product_search_form_view"/>
112         </record>
113
114         <record model="ir.actions.act_window.view" id="action_membership_product_view_tree">
115             <field name="sequence" eval="1"/>
116             <field name="view_mode">tree</field>
117             <field name="view_id" ref="membership_products_tree"/>
118             <field name="act_window_id" ref="action_membership_products"/>
119         </record>
120
121         <record model="ir.actions.act_window.view" id="action_membership_product_view_form">
122             <field name="sequence" eval="2"/>
123             <field name="view_mode">form</field>
124             <field name="view_id" ref="membership_products_form"/>
125             <field name="act_window_id" ref="action_membership_products"/>
126         </record>
127
128         <menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="10"/>
129         <menuitem name="Members" id="menu_membership" sequence="0" parent="base.menu_association"/>
130         <menuitem name="Configuration" id="base.menu_marketing_config_association"
131             parent="base.menu_association" sequence="30"/>
132
133
134         <menuitem name="Membership Products"
135                   parent="base.menu_marketing_config_association"
136                   id="menu_membership_products"
137                   action="action_membership_products"
138                   sequence="1"/>
139
140
141         <!-- MEMBERSHIP/CURRENT MEMBERS -->
142
143         <record model="ir.ui.view" id="membership_members_tree">
144             <field name="name">Members</field>
145             <field name="model">res.partner</field>
146             <field name="arch" type="xml">
147                 <tree string="Members">
148                     <field name="name"/>
149                     <field name="membership_state"/>
150                     <field name="associate_member" attrs="{'invisible':[('membership_state', '!=', 'none')]}"/>
151                     <field name="membership_start"/>
152                     <field name="membership_stop"/>
153                     <field name="user_id" invisible="1"/>
154                 </tree>
155             </field>
156         </record>
157
158         <record id="view_res_partner_member_filter" model="ir.ui.view">
159             <field name="name">res.partner.select</field>
160             <field name="model">res.partner</field>
161             <field name="arch" type="xml">
162                 <search string="Membership Partners">
163                     <field name="membership_start" invisible="1"/>
164                     <field name="membership_stop" string="End Membership Date"/>
165                     <filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
166                     <separator/>
167                     <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
168                     <separator/>
169                     <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"/>
170                     <filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
171                     <group expand="0" string="Group By..." colspan="10" col="8">
172                         <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
173                         <filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
174                         <filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
175                         <filter string="Start Date" help="Starting Date Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_start'}"/>
176                         <filter string="End Date" help="Ending Date Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_stop'}"/>
177                     </group>
178                 </search>
179             </field>
180         </record>
181
182         <record model="ir.actions.act_window" id="action_membership_members">
183             <field name="name">Members</field>
184             <field name="res_model">res.partner</field>
185             <field name="search_view_id" ref="view_res_partner_member_filter"/>
186             <field name="context">{"search_default_all_members": 1, "default_free_member": True}</field>
187         </record>
188
189         <record model="ir.actions.act_window.view" id="action_membership_members_view_tree">
190             <field name="sequence" eval="2"/>
191             <field name="view_mode">tree</field>
192             <field name="view_id" ref="membership_members_tree"/>
193             <field name="act_window_id" ref="action_membership_members"/>
194         </record>
195
196         <record model="ir.actions.act_window.view" id="action_membership_members_view_form">
197             <field name="sequence" eval="3"/>
198             <field name="view_mode">form</field>
199             <field name="view_id" ref="base.view_partner_form"/>
200             <field name="act_window_id" ref="action_membership_members"/>
201         </record>
202          <record model="ir.actions.act_window.view" id="action_membership_members_view_kanban">
203             <field name="sequence" eval="1"/>
204             <field name="view_mode">kanban</field>
205             <field name="view_id" ref="base.res_partner_kanban_view"/>
206             <field name="act_window_id" ref="action_membership_members"/>
207         </record>
208
209         <menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
210
211         <!-- PARTNERS -->
212
213         <record model="ir.ui.view" id="view_partner_tree">
214             <field name="name">res.partner.tree.form.inherit</field>
215             <field name="model">res.partner</field>
216             <field name="inherit_id" ref="base.view_partner_tree"/>
217             <field name="arch" type="xml">
218                 <tree string="Contacts">
219                     <field name="category_id" position="after"/>
220                     <field name="membership_state"/>
221                 </tree>
222             </field>
223         </record>
224
225         <record model="ir.ui.view" id="view_partner_form">
226             <field name="name">res.partner.form.inherit</field>
227             <field name="model">res.partner</field>
228             <field name="inherit_id" ref="base.view_partner_form"/>
229             <field name="arch" type="xml">
230                 <notebook position="inside">
231                     <page string="Membership">
232                         <group>
233                             <group>
234                                 <field name="free_member"/>
235                                 <label for="membership_state"/>
236                                 <div>
237                                     <field name="membership_state"/>
238                                     <button name="%(action_membership_invoice_view)d" type="action" string="Buy Membership" 
239                                         attrs="{'invisible':[('free_member','=',True)]}" class="oe_link"/>
240                                 </div>
241                             </group>
242                             <group>
243                                 <field name="associate_member" attrs="{'invisible':[('free_member','=',True)]}"/>
244                                 <field name="membership_start" attrs="{'invisible':[('membership_start','=',False)]}"/>
245                                 <field name="membership_stop" attrs="{'invisible':[('membership_stop','=',False)]}"/>
246                                 <field name="membership_cancel" attrs="{'invisible':[('membership_cancel','=',False)]}"/>
247                             </group>
248                         </group>
249                         <field name="member_lines" nolabel="1" colspan="4" readonly="1">
250                             <tree string="Memberships">
251                                 <field name="date"/>
252                                 <field name="membership_id"/>
253                                 <field name="member_price"/>
254                                 <field name="account_invoice_id"/>
255                                 <field name="state"/>
256                             </tree>
257                             <form string="Memberships">
258                                 <field name="date"/>
259                                 <field name="member_price"/>
260                                 <field name="membership_id"/>
261                                 <field name="account_invoice_id"/>
262                                 <field name="state" colspan="4"/>
263                             </form>
264                         </field>
265
266                     </page>
267                 </notebook>
268             </field>
269         </record>
270
271         <!-- MEMBERSHIP/REPORTING -->
272         <menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
273
274     </data>
275 </openerp>