[IMP] membership: usability improvements
[odoo/odoo.git] / addons / membership / membership_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5
6
7         <!-- MEMBERSHIP -->
8
9         <!-- MEMBERSHIP/MEMBERSHIP PRODUCTS -->
10
11         <record model="ir.ui.view" id="membership_product_search_form_view">
12             <field name="name">membership.product.search.form</field>
13             <field name="model">product.product</field>
14             <field name="type">search</field>
15             <field name="arch" type="xml">
16                 <search string="Membership Products">
17                    <filter string="To Sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
18                    <filter string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]" />
19                    <separator orientation="vertical"/>
20                    <field name="default_code"/>
21                    <field name="name"/>
22                    <field name="categ_id" widget="selection" operator="child_of"/>
23                    <newline/>
24                    <group  expand='0' string='Group by...' groups="base.group_extended">
25                        <filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}" />
26                        <separator orientation="vertical"/>
27                        <filter string='Default UOM' icon="terp-mrp" domain="[]" context="{'group_by' : 'uom_id'}" />
28                    </group>
29                    <newline/>
30                    <group expand="0" string="Extended Filters..." groups="base.group_extended">
31                        <field name="pricelist_id" widget="selection" context="{'pricelist': self}" />
32                    </group>
33                 </search>
34             </field>
35         </record>
36
37         <record model="ir.ui.view" id="membership_products_tree">
38             <field name="name">Membership products</field>
39             <field name="model">product.product</field>
40             <field name="type">tree</field>
41             <field name="arch" type="xml">
42                 <tree string="Membership products">
43                     <field name="code"/>
44                     <field name="name"/>
45                     <field name="membership_date_from"/>
46                     <field name="membership_date_to"/>
47                     <field name="list_price" string="Membership Fee"/>
48                     <field name="categ_id" invisible="1"/>
49                     <field name="uom_id" invisible="1"/>
50                     <field name="type" invisible="1"/>
51                 </tree>
52             </field>
53         </record>
54
55         <record model="ir.ui.view" id="membership_products_form">
56             <field name="name">Membership Products</field>
57             <field name="model">product.product</field>
58             <field name="type">form</field>
59             <field name="arch" type="xml">
60                 <form string="Membership products">
61                   <group col="6">
62                       <field name="name"/>
63                       <field name="default_code"/>
64                       <field name="active"/>
65                       <field name="membership_date_from" required="1"/>
66                       <field name="membership_date_to" required="1"/>
67                       <field name="company_id" groups="base.group_multi_company" widget="selection"/>
68                     </group>
69                     <notebook colspan="4">
70                       <page string="General">
71                         <separator string="Accounting Info" colspan="2"/>
72                         <separator string="Categorization" colspan="2"/>
73                         <field name="list_price" />
74                         <field name="type" />
75                         <field name="property_account_income"/>
76                         <field name="categ_id"/>
77                         <separator string="Sale Taxes" colspan="2"/>
78                         <newline/>
79                         <field name="taxes_id" nolabel="1" colspan="4"/>
80                       </page>
81                       <page string="Description">
82                             <separator string="Description"/>
83                             <field colspan="4" name="description" nolabel="1"/>
84                             <separator string="Sale Description"/>
85                             <field colspan="4" name="description_sale" nolabel="1"/>
86                             <separator string="Purchase Description"/>
87                             <field colspan="4" name="description_purchase" nolabel="1"/>
88                       </page>
89                     </notebook>
90                        <!--field name="list_price" string="Membership Fee"/>
91                     <separator colspan="4" string="Customer Taxes:"/>
92                     <field name="taxes_id" colspan="4" nolabel="1"/-->
93
94                 </form>
95             </field>
96         </record>
97
98         <record model="ir.ui.view" id="product_normal_form_view">
99             <field name="name">Membership Products</field>
100             <field name="model">product.product</field>
101             <field name="inherit_id" ref="product.product_normal_form_view"/>
102             <field name="arch" type="xml">
103                 <page string="Information" position="after">
104                     <page string="Membership">
105                         <field name="membership" readonly="0"/>
106                         <newline/>
107                         <field name="membership_date_from" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
108                         <field name="membership_date_to" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
109                     </page>
110                 </page>
111             </field>
112         </record>
113
114         <record model="ir.actions.act_window" id="action_membership_products">
115             <field name="name">Membership Products</field>
116             <field name="res_model">product.product</field>
117             <field name="domain">[('membership','=',True), ('type', '=', 'service')]</field>
118             <field name="context">{'membership':True, 'type':'service'}</field>
119             <field name="search_view_id" ref="membership_product_search_form_view"/>
120         </record>
121
122         <record model="ir.actions.act_window.view" id="action_membership_product_view_tree">
123             <field name="sequence" eval="1"/>
124             <field name="view_mode">tree</field>
125             <field name="view_id" ref="membership_products_tree"/>
126             <field name="act_window_id" ref="action_membership_products"/>
127         </record>
128
129         <record model="ir.actions.act_window.view" id="action_membership_product_view_form">
130             <field name="sequence" eval="2"/>
131             <field name="view_mode">form</field>
132             <field name="view_id" ref="membership_products_form"/>
133             <field name="act_window_id" ref="action_membership_products"/>
134         </record>
135
136         <menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="9"/>
137         <menuitem name="Membership" id="menu_membership" sequence="0" parent="base.menu_association"/>
138         <menuitem name="Membership Products"
139                   parent="menu_membership"
140                   id="menu_membership_products"
141                   action="action_membership_products"
142                   sequence="1"
143                   groups="base.group_partner_manager"/>
144
145
146         <!-- MEMBERSHIP/CURRENT MEMBERS -->
147
148         <record model="ir.ui.view" id="membership_members_tree">
149             <field name="name">Members</field>
150             <field name="model">res.partner</field>
151             <field name="type">tree</field>
152             <field name="arch" type="xml">
153                 <tree string="Members">
154                     <field name="name"/>
155                     <field name="membership_state"/>
156                     <field name="associate_member" attrs="{'invisible':[('membership_state', '!=', 'none')]}"/>
157                     <field name="membership_start"/>
158                     <field name="membership_stop"/>
159                     <field name="user_id" invisible="1"/>
160                 </tree>
161             </field>
162         </record>
163
164         <record id="view_res_partner_member_filter" model="ir.ui.view">
165             <field name="name">res.partner.select</field>
166             <field name="model">res.partner</field>
167             <field name="type">search</field>
168             <field name="arch" type="xml">
169                 <field name="category_id" position="after">
170           <filter string="Customers" name="customer" icon="terp-personal" domain="[('customer','=',1)]" help="Customer Partners"/>
171                      <filter string="Suppliers" name="supplier" icon="terp-personal" domain="[('supplier','=',1)]" help="Supplier Partners"/>
172           <separator orientation="vertical"/>
173           <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"/>
174           <filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
175           <separator orientation="vertical"/>
176                    <field name="membership_stop" string="End Membership Date"/>
177                    <field name="membership_start" invisible="1"/>
178                    <newline/>
179                </field>
180             </field>
181         </record>
182
183         <record id="view_res_partner_member_filter2" model="ir.ui.view">
184             <field name="name">res.partner.select2</field>
185             <field name="model">res.partner</field>
186             <field name="inherit_id" ref="view_res_partner_member_filter"/>
187             <field name="type">search</field>
188             <field name="arch" type="xml">
189                 <field name="membership_start" position="after">
190                 <newline/>
191               <group expand="0" string="Group By" colspan="10" col="8">
192                 <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
193                   <filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
194                   <separator orientation="vertical"/>
195                     <filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
196                     <separator orientation="vertical"/>
197                   <filter string="Start Date" help="Starting Date Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_start'}"/>
198                   <filter string="End Date" help="Ending Date Of Membership" icon="terp-go-month" domain="[]" context="{'group_by':'membership_stop'}"/>
199                 </group>
200                 </field>
201             </field>
202         </record>
203
204         <record model="ir.actions.act_window" id="action_membership_members">
205             <field name="name">Members</field>
206             <field name="res_model">res.partner</field>
207             <field name="search_view_id" ref="view_res_partner_member_filter"/>
208             <field name="context">{"search_default_old": 1}</field>
209             <field name="context">{"search_default_all_members": 1}</field>
210         </record>
211
212         <record model="ir.actions.act_window.view" id="action_membership_members_view_tree">
213             <field name="sequence" eval="1"/>
214             <field name="view_mode">tree</field>
215             <field name="view_id" ref="membership_members_tree"/>
216             <field name="act_window_id" ref="action_membership_members"/>
217         </record>
218
219         <record model="ir.actions.act_window.view" id="action_membership_members_view_form">
220             <field name="sequence" eval="2"/>
221             <field name="view_mode">form</field>
222             <field name="view_id" ref="base.view_partner_form"/>
223             <field name="act_window_id" ref="action_membership_members"/>
224         </record>
225
226         <menuitem name="Members" parent="menu_membership" id="menu_members" sequence="2" action="action_membership_members"/>
227
228         <!-- PARTNERS -->
229
230         <record model="ir.ui.view" id="view_partner_tree">
231             <field name="name">res.partner.tree.form.inherit</field>
232             <field name="model">res.partner</field>
233             <field name="inherit_id" ref="base.view_partner_tree"/>
234             <field name="arch" type="xml">
235                 <tree string="Partners">
236                     <field name="category_id" position="after"/>
237                     <field name="membership_state"/>
238                 </tree>
239             </field>
240         </record>
241
242         <record model="ir.ui.view" id="view_partner_form">
243             <field name="name">res.partner.form.inherit</field>
244             <field name="model">res.partner</field>
245             <field name="inherit_id" ref="base.view_partner_form"/>
246             <field name="arch" type="xml">
247                 <notebook position="inside">
248                     <page string="Membership">
249                         <group colspan="2" col="2">
250                             <group colspan="4" col="3">
251                             <field name="free_member"/>
252                             <button name="%(action_membership_invoice_view)d" type="action" string="Join Membership" attrs="{'readonly':[('free_member','=',True)]}" icon="gtk-apply"/>
253                             <field colspan="4" name="associate_member" attrs="{'invisible':[('membership_state', '!=', 'none')], 'readonly':[('free_member','=',True)]}"/>
254                             <field colspan="4" name="membership_state"/>
255                             </group>
256                         </group>
257                         <group colspan="2" col="2">
258                             <field name="membership_start"/>
259                             <field name="membership_stop"/>
260                             <field name="membership_cancel"/>
261                         </group>
262                         <field name="member_lines" nolabel="1" colspan="4" readonly="1">
263                             <tree string="Memberships">
264                                 <field name="date"/>
265                                 <field name="membership_id"/>
266                                 <field name="member_price"/>
267                                 <field name="account_invoice_id"/>
268                                 <field name="state"/>
269                             </tree>
270                             <form string="Memberships">
271                                 <field name="date"/>
272                                 <field name="member_price"/>
273                                 <field name="membership_id"/>
274                                 <field name="account_invoice_id"/>
275                                 <field name="state" colspan="4"/>
276                             </form>
277                         </field>
278
279                     </page>
280                 </notebook>
281             </field>
282         </record>
283
284         <!-- MEMBERSHIP/REPORTING -->
285         <menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
286
287 <!-- View for product.product object inherited from product module................ -->
288         <record model="ir.ui.view" id="view_product_form_inherit1">
289             <field name="name">product.normal.form</field>
290             <field name="type">form</field>
291             <field name="model">product.product</field>
292             <field name="inherit_id" ref="product.product_normal_form_view"/>
293             <field name="arch" type="xml">
294                 <field name="list_price" position="after">
295                     <field name="member_price"/>
296                 </field>
297             </field>
298         </record>
299
300     </data>
301 </openerp>