[FIX] decimal_precision: avoid refreshing float precisions at each cache invalidation
[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                     <sheet>
50                         <label for="name" class="oe_edit_only"/>
51                         <h1>
52                             <field name="name"/>
53                         </h1>
54                         <group>
55                             <group>
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"
61                                     widget="selection"/>
62                                 <field name="active"/>
63                             </group>
64                             <group>
65                                 <label for="membership_date_from" string="Membership Duration"/>
66                                 <div>
67                                     <field name="membership_date_from" required="1" class="oe_inline"/> -
68                                     <field name="membership_date_to" required="1" class="oe_inline"/>
69                                 </div>
70                                 <field name="list_price" string="Membership Fee"/>
71                                 <field
72                                     name="property_account_income"
73                                     domain="[('type', '!=', 'view')]"/>
74                                 <field name="taxes_id" widget="many2many_tags" string="Taxes"/>
75                             </group>
76                         </group>
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..."/>
81                     </sheet>
82                  </form>
83             </field>
84         </record>
85
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')]}"/>
94                 </field>
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)]}"/>
99                     </group>
100                 </field>
101             </field>
102         </record>
103
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"/>
110         </record>
111
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"/>
117         </record>
118
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"/>
124         </record>
125
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"/>
130
131
132         <menuitem name="Membership Products"
133                   parent="base.menu_marketing_config_association"
134                   id="menu_membership_products"
135                   action="action_membership_products"
136                   sequence="1"/>
137
138
139         <!-- MEMBERSHIP/CURRENT MEMBERS -->
140
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">
146                     <field name="name"/>
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"/>
152                 </tree>
153             </field>
154         </record>
155
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"/>
165                     <separator/>
166                     <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
167                     <separator/>
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'}"/>
176                     </group>
177                 </search>
178             </field>
179         </record>
180
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>
186         </record>
187
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"/>
193         </record>
194
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"/>
200         </record>
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"/>
206         </record>
207
208         <menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
209
210         <!-- PARTNERS -->
211
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"/>
220                 </tree>
221             </field>
222         </record>
223
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">
231                         <group>
232                             <group>
233                                 <field name="free_member"/>
234                                 <label for="membership_state"/>
235                                 <div>
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"/>
239                                 </div>
240                             </group>
241                             <group>
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)]}"/>
246                             </group>
247                         </group>
248                         <field name="member_lines" nolabel="1" colspan="4" readonly="1">
249                             <tree string="Memberships">
250                                 <field name="date"/>
251                                 <field name="membership_id"/>
252                                 <field name="member_price"/>
253                                 <field name="account_invoice_id"/>
254                                 <field name="state"/>
255                             </tree>
256                             <form string="Memberships">
257                                 <field name="date"/>
258                                 <field name="member_price"/>
259                                 <field name="membership_id"/>
260                                 <field name="account_invoice_id"/>
261                                 <field name="state" colspan="4"/>
262                             </form>
263                         </field>
264
265                     </page>
266                 </notebook>
267             </field>
268         </record>
269
270         <!-- MEMBERSHIP/REPORTING -->
271         <menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
272
273     </data>
274 </openerp>