[MERGE] Sync with trunk
[odoo/odoo.git] / addons / lunch / lunch_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4         <!-- Top menu item -->
5         <menuitem id='menu_lunch' name='Lunch' sequence="100" groups="group_lunch_user"/>
6         <menuitem name="Lunch" parent="menu_lunch" id="menu_lunch_title" sequence="50" />
7         <menuitem name="Administrate Orders" parent="menu_lunch" id="menu_lunch_admin" sequence="51" groups="group_lunch_manager"/>
8         <menuitem name="Administrate Cash Moves" parent="menu_lunch" id="menu_lunch_cash" sequence="52" groups="group_lunch_manager"/>
9         <menuitem name="Configuration" parent="menu_lunch" id="menu_lunch_config" sequence="53" groups="group_lunch_manager"/>
10         
11          <!--View Search to group/filter by Supplier and time-->
12         <record model="ir.ui.view" id="lunch_order_line_search_view">
13             <field name="name">Search</field>
14             <field name="model">lunch.order.line</field>
15             <field name="arch" type="xml">
16                 <search string="Search">
17                     <field name="name" filter_domain="['|', ('name', 'ilike', self), ('note', 'ilike', self)]"/>
18                     <filter name="not_confirmed" string="Not Received" domain="[('state','!=',('confirmed'))]"/>
19                     <filter name="comfirmed" string="Received" domain="[('state','=','confirmed')]"/>
20                     <filter name="cancelled" string="Cancelled" domain="[('state','=','cancelled')]"/>
21                     <separator/>
22                     <filter name="today" string="Today" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/>
23                     <field name="user_id"/>
24                     <group expand="0" string="Group By...">
25                         <filter name="group_by_supplier" string="By Supplier" context="{'group_by':'supplier'}"/>
26                         <filter name="group_by_date" string="By Date" context="{'group_by':'date'}"/>
27                     </group>
28                 </search>
29             </field>
30         </record>
31
32         <!--View Search to group by employee and input/output (cashmoves)-->
33         <record id="view_lunch_employee_payment_filter" model="ir.ui.view">
34             <field name='name'>lunch employee payment</field>
35             <field name='model'>lunch.cashmove</field>
36             <field name='arch' type='xml'>
37                 <search string="lunch employee payment">
38                     <field name="description"/>
39                     <field name="user_id"/>
40                     <filter name='is_payment' string="Payment" domain="[('state','=','payment')]"/>
41                     <separator/>
42                     <filter name='is_mine_group' string="My Account grouped" domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}"/>
43                     <filter name="group_by_user" string="By User" context="{'group_by':'user_id'}"/>
44                 </search>
45             </field>
46         </record>
47
48         <record id="view_lunch_cashmove_filter" model="ir.ui.view">
49             <field name='name'>lunch cashmove</field>
50             <field name='model'>lunch.cashmove</field>
51             <field name='arch' type='xml'>
52                 <search string="lunch cashmove">
53                     <field name="description"/>
54                     <field name="user_id"/>
55                     <group expand="0" string="Group By...">
56                         <filter name='group_by_user' string="By Employee" context="{'group_by':'user_id'}"/>
57                     </group>
58                 </search>
59             </field>
60         </record>
61
62         <!--View search for order-->
63         <record id="view_search_my_order" model="ir.ui.view">
64             <field name='name'>lunch orders</field>
65             <field name='model'>lunch.order</field>
66             <field name='arch' type='xml'>
67                 <search string="lunch orders">
68                     <field name="user_id"/>
69                     <field name="date"/>
70                     <field name="order_line_ids"/>
71                     <filter name='is_mine' string="My Orders" domain="[('user_id','=',uid)]"/>
72                     <filter name='by_users' string="Users" context="{'group_by':'user_id'}"/>
73                 </search>
74             </field>
75         </record>
76
77
78         <record model="ir.ui.view" id="alert_search_view">
79             <field name="name">Search</field>
80             <field name="model">lunch.alert</field>
81             <field name="arch" type="xml">
82                 <search string="Search">
83                     <field name="message"/>
84                 </search>
85             </field>
86         </record>
87
88         <!--Action for Your Orders-->
89         <record model="ir.actions.act_window" id="action_lunch_order_form">
90             <field name="name">New Order</field>
91             <field name="res_model">lunch.order</field>
92             <field name="view_mode">form</field>
93         </record>
94         <menuitem name="New Order" parent="menu_lunch_title" id="menu_lunch_order_form" action="action_lunch_order_form" sequence="1"/>
95
96         <record model="ir.actions.act_window" id="action_lunch_order_tree">
97             <field name="name">Your Orders</field>
98             <field name="res_model">lunch.order</field>
99             <field name="view_mode">tree,form</field>
100             <field name="search_view_id" ref="view_search_my_order"/>
101             <field name="context">{"search_default_is_mine":1}</field>
102             <field name="help" type="html">
103             <p class="oe_view_nocontent_create">
104                 Click to create a lunch order. 
105             </p>
106             <p>
107                 A lunch order is defined by its user, date and order lines.
108                 Each order line corresponds to a product, an additional note and a price.
109                 Before selecting your order lines, don't forget to read the warnings displayed in the reddish area.
110             </p>
111             </field>
112         </record>
113         <menuitem name="Previous Orders" parent="menu_lunch_title" id="menu_lunch_order_tree" action="action_lunch_order_tree" sequence="2"/>
114
115         <!--Action for Lunch cashmoves-->
116         <record model="ir.actions.act_window" id="action_lunch_cashmove_form">
117             <field name="name">Your Account</field>
118             <field name="res_model">lunch.cashmove</field>
119             <field name="view_mode">tree</field>
120             <field name="search_view_id" ref="view_lunch_employee_payment_filter"/>
121             <field name="context">{"search_default_is_mine_group":1}</field>
122             <field name="help" type="html">
123               <p>
124                 Here you can see your cash moves.<br/>A cash moves can be either an expense or a payment.
125                 An expense is automatically created when an order is received while a payment is a reimbursement to the company encoded by the manager.
126               </p>
127             </field>
128         </record>
129         <menuitem name="Your Lunch Account" parent="menu_lunch_title" id="menu_lunch_cashmove_form" action="action_lunch_cashmove_form" sequence="3"/>
130
131         <!--Action for Administrate Orders group by supplier-->
132         <record model="ir.actions.act_window" id="action_lunch_order_by_supplier_form">
133             <field name="name">Orders by Supplier</field>
134             <field name="res_model">lunch.order.line</field>
135             <field name="view_mode">tree</field>
136             <field name="search_view_id" ref="lunch_order_line_search_view"/>
137             <field name="context">{"search_default_group_by_supplier":1, "search_default_today":1}</field>
138             <field name="help" type="html">
139               <p>
140                 Here you can see today's orders grouped by suppliers.
141               </p>
142               <p>
143                 - Click on the <img src="../../../web/static/src/img/icons/terp-call-start.png"/> to announce that the order is ordered <br/>
144                 - Click on the <img src="../../../web/static/src/img/icons/gtk-apply.png"/> to announce that the order is received <br/>
145                 - Click on the <img src="../../../web/static/src/img/icons/gtk-cancel.png"/> to announce that the order isn't available
146               </p>
147             </field>
148         </record>
149         <menuitem name="Today's Orders by Supplier" parent="menu_lunch_admin" id="menu_lunch_order_by_supplier_form" action="action_lunch_order_by_supplier_form" />
150
151         <!--Action for control Supplier-->
152         <record model="ir.actions.act_window" id="action_lunch_control_suppliers">
153             <field name="name">Control Suppliers</field>
154             <field name="res_model">lunch.order.line</field>
155             <field name="view_mode">tree</field>
156             <field name="search_view_id" ref="lunch_order_line_search_view"/> 
157             <field name="context">{"search_default_group_by_date":1, "search_default_group_by_supplier":1}</field>
158             <field name="help" type="html">
159               <p>
160                 Here you can see every orders grouped by suppliers and by date.
161               </p>
162               <p>
163                 - Click on the <img src="../../../web/static/src/img/icons/terp-call-start.png"/> to announce that the order is ordered <br/>
164                 - Click on the <img src="../../../web/static/src/img/icons/gtk-apply.png"/> to announce that the order is received <br/>
165                 - Click on the <img src="../../../web/static/src/img/icons/gtk-cancel.png"/> red X to announce that the order isn't available
166               </p>
167             </field>
168         </record>
169         <menuitem name="Orders by Supplier" parent="menu_lunch_admin" id="menu_lunch_control_suppliers" action="action_lunch_control_suppliers" />
170
171         <!--Action for Control Accounts-->
172         <record model="ir.actions.act_window" id="action_lunch_control_accounts">
173             <field name="name">Control Accounts</field>
174             <field name="res_model">lunch.cashmove</field>
175             <field name="view_mode">tree,form</field>
176             <field name="search_view_id" ref="view_lunch_cashmove_filter"/>
177             <field name="context">{"search_default_group_by_user":1}</field>
178             <field name="help" type="html">
179                 <p class="oe_view_nocontent_create">
180                 Click to create a new payment. 
181             </p>
182               <p>
183                 A cashmove can either be an expense or a payment.<br/>
184                 An expense is automatically created at the order receipt.<br/>
185                 A payment represents the employee reimbursement to the company.
186               </p>
187             </field>
188         </record>
189         <menuitem name="Control Accounts" parent="menu_lunch_cash" id="menu_lunch_control_accounts" action="action_lunch_control_accounts" />
190
191
192         <!--Action for Payment cashmove-->
193         <record model="ir.actions.act_window" id="action_lunch_cashmove">
194             <field name="name">Register Cash Moves</field>
195             <field name="res_model">lunch.cashmove</field>
196             <field name="view_mode">tree,form</field>
197             <field name="search_view_id" ref="view_lunch_employee_payment_filter"/>
198             <field name="context">{"search_default_is_payment":1}</field>
199             <field name="help" type="html">
200                 <p class="oe_view_nocontent_create">
201                 Click to create a payment. 
202             </p>
203               <p>
204                 Here you can see the employees' payment. A payment is a cash move from the employee to the company.
205               </p>
206             </field>
207         </record>
208         <menuitem name="Employee Payments" parent="menu_lunch_cash" id="menu_lunch_cashmove" action="action_lunch_cashmove" />
209
210         <!--Action for Products-->
211         <record model="ir.actions.act_window" id="action_lunch_products">
212             <field name="name">Products</field>
213             <field name="res_model">lunch.product</field>
214             <field name="view_mode">tree,form</field>
215             <field name="help" type="html">
216                 <p class="oe_view_nocontent_create">
217                 Click to create a product for lunch. 
218             </p>
219               <p>
220                 A product is defined by its name, category, price and supplier.
221               </p>
222             </field>
223         </record>
224         <menuitem name="Products" parent="menu_lunch_config" id="menu_lunch_products" action="action_lunch_products" />
225
226         <!--Action for Product categories-->
227         <record model="ir.actions.act_window" id="action_lunch_product_categories">
228             <field name="name">Product Categories</field>
229             <field name="res_model">lunch.product.category</field>
230             <field name="view_mode">tree,form</field>
231             <field name="help" type="html">
232                 <p class="oe_view_nocontent_create">
233                 Click to create a lunch category. 
234             </p>
235               <p>
236                 Here you can find every lunch categories for products.
237               </p>
238             </field>
239         </record>
240
241         <record model="ir.ui.view" id="product_category_form_view">
242             <field name="name">Product category Form</field>
243             <field name="model">lunch.product.category</field>
244             <field name="arch" type="xml">
245                 <form string="Products Form" version="7.0">
246                     <sheet>
247                     <group>
248                         <field name='name' string="Product Category: "/>
249                     </group>
250                     </sheet>
251                 </form>
252             </field>
253         </record>
254
255         <menuitem name="Product Categories" parent="menu_lunch_config" id="menu_lunch_product_categories" action="action_lunch_product_categories" />
256
257         <!--Action for Alert-->
258         <record model="ir.actions.act_window" id="action_lunch_alert">
259             <field name="name">Alerts</field>
260             <field name="res_model">lunch.alert</field>
261             <field name="view_mode">tree,form</field>
262             <field name="search_view_id" ref="alert_search_view"/>
263             <field name="help" type="html">
264                 <p class="oe_view_nocontent_create">
265                 Click to create a lunch alert. 
266             </p>
267               <p>
268                 Alerts are used to warn employee from possible issues concerning the lunch orders.
269                 To create a lunch alert you have to define its recurrency, the time interval during which the alert should be executed and the message to display.
270             </p>
271             <p>
272                 Example: <br/>
273                 - Recurency: Everyday<br/>
274                 - Time interval: from 00h00 am to 11h59 pm<br/>
275                 - Message: "You must order before 10h30 am"
276               </p>
277             </field>
278         </record>
279         <menuitem name="Alerts" parent="menu_lunch_config" id="menu_lunch_alert" action="action_lunch_alert" />
280
281         <!--View for Order lines-->
282         <record model="ir.ui.view" id="orders_order_lines_tree_view">
283             <field name="name">Order lines Tree</field>
284             <field name="model">lunch.order.line</field>
285             <field name="arch" type="xml">
286                 <tree string="Order lines Tree" create="false" edit="false">
287                     <field name='date'/>
288                     <field name='user_id'/>
289                     <field name='supplier' invisible='1'/> 
290                     <field name='product_id'/>                             
291                     <field name='note'/>
292                     <field name='state'/>
293                     <field name='price' sum="Total"/>
294                     <button name="order" string="Order" type="object" icon="terp-call-start" attrs="{'invisible': ['|',('state','=','confirmed'),('state','=','ordered')]}"/>
295                     <button name="confirm" string="Confirm" type="object" icon="gtk-apply" attrs="{'invisible': [('state','!=','ordered')]}"/>
296                     <button name="cancel" string="Cancel" type="object" icon="gtk-cancel" attrs="{'invisible': [('state','=','cancelled')]}"/>
297                 </tree>
298             </field>
299         </record>
300
301         <!--View for Your orders-->
302         <record model="ir.ui.view" id="orders_tree_view">
303             <field name="name">Orders Tree View</field>
304             <field name="model">lunch.order</field>
305             <field name="arch" type="xml">
306                 <tree string="Orders Tree">
307                     <field name="date"/>
308                     <field name='user_id'/>
309                     <field name="order_line_ids"/>
310                     <field name="state" />
311                     <field name="total" sum="Total"/>
312                 </tree>
313             </field>
314         </record>
315        
316         <record model="ir.ui.view" id="orders_form_view">
317             <field name="name">Lunch Order</field>
318             <field name="model">lunch.order</field>
319             <field name="arch" type="xml">
320                 <form string='Orders Form' version='7.0' class="oe_lunch">
321                     <header>
322                         <field name='state' widget='statusbar' statusbar_visible='new,confirmed'/>
323                     </header>
324                     <sheet>
325                         <group>
326                             <group>
327                                 <field name='user_id'
328                                 context="{'default_groups_ref': ['base.group_user', 'lunch.group_lunch_user']}"/>
329                             </group>
330                             <group> 
331                                 <field name='date'/>
332                             </group>
333                         </group>
334                         <field name='alerts' attrs="{'invisible': ['|',('state','!=','new'),('alerts','=',False)]}" class="oe_inline oe_lunch_alert"/> 
335                         <div name="preferences">
336                         </div>
337                         <separator string='Select your order'/>
338                         <field name='order_line_ids' nolabel='1' on_change='onchange_price(order_line_ids)'>
339                             <tree string='List' editable='bottom'>
340                                 <field name='product_id' on_change='onchange_price(product_id)'/>
341                                 <field name='note' />
342                                 <field name='price' on_change='onchange_price(product_id)'/>
343                                 <field name='supplier' invisible="1"/>
344                                 <field name="state" invisible="1"/>
345                             </tree>
346                         </field> 
347                         <group class='oe_subtotal_footer oe_right'>
348                             <field name='total'/> 
349                         </group>
350                         <br/><br/>
351                     </sheet>
352                 </form>
353             </field>
354         </record>
355
356         <!--View for Products-->
357         <record model="ir.ui.view" id="products_tree_view">
358             <field name="name">Products Tree</field>
359             <field name="model">lunch.product</field>
360             <field name="arch" type="xml">
361                 <tree string="Products Tree">
362                     <field name="name"/>
363                     <field name="category_id"/>
364                     <field name="supplier"/>
365                     <field name="description"/>
366                     <field name="price"/>
367                 </tree>
368             </field>
369         </record>
370
371         <record model="ir.ui.view" id="products_form_view">
372             <field name="name">Products Form</field>
373             <field name="model">lunch.product</field>
374             <field name="arch" type="xml">
375                 <form string="Products Form" version="7.0">
376                     <header>
377                     </header>
378                     <sheet>
379                         <group>
380                             <field name='name'/>
381                             <field name='category_id'/>
382                             <field name='supplier'/>
383                             <field name='price'/>
384                         </group>
385                         <label for='description'/>
386                         <field name='description'/>
387                     </sheet>
388                 </form>
389             </field>
390         </record>
391
392         <!--view for cashmove-->
393         <record model="ir.ui.view" id="casmove_tree_view">
394             <field name="name">cashmove tree</field>
395             <field name="model">lunch.cashmove</field>
396             <field name="arch" type="xml">
397                 <tree string="cashmove tree">
398                     <field name="date"/>
399                     <field name="user_id"/>
400                     <field name="description"/>
401                     <field name="amount" sum="Total"/>
402                 </tree>
403             </field>
404         </record>
405
406         <record model="ir.ui.view" id="casmove_form_view">
407             <field name="name">cashmove form</field>
408             <field name="model">lunch.cashmove</field>
409             <field name="arch" type="xml">
410                 <form string="cashmove form" version="7.0">
411                     <sheet>
412                         <group>
413                             <field name="user_id"
414                                 context="{'default_groups_ref': ['base.group_user', 'lunch.group_lunch_user']}"/>
415                             <field name="date"/>
416                             <field name="amount"/>
417                         </group>
418                         <label for='description'/>
419                         <field name="description"/>
420                     </sheet>
421                 </form>
422             </field>
423         </record>
424
425         <!--view for alerts-->
426         <record model="ir.ui.view" id="alert_tree_view">
427             <field name="name">alert tree</field>
428             <field name="model">lunch.alert</field>
429             <field name="arch" type="xml">
430                 <tree string="alert tree">
431                     <field name="message"/>
432                     <field name="alter_type"/>
433                     <field name='active_from' widget='float_time'/>
434                     <field name='active_to' widget='float_time'/>
435                 </tree>
436             </field>
437         </record>
438
439         <record model="ir.ui.view" id="alert_form_view">
440             <field name="name">alert form</field>
441             <field name="model">lunch.alert</field>
442             <field name="arch" type="xml">
443                 <form string="alert tree" version="7.0">
444                     <sheet>
445                         <group string="Schedule Date">
446                             <group>
447                                 <field name="alter_type"/>
448                                 <field name="specific_day" attrs="{'invisible': [('alter_type','!=','specific')], 'required':[('alter_type','=','specific')]}"/>
449                             </group>
450                         </group>
451                         <group attrs="{'invisible': [('alter_type','!=','week')]}">
452                             <group>
453                                 <field name="monday"/>
454                                 <field name="tuesday"/>
455                                 <field name="wednesday"/>
456                                 <field name="thursday"/>
457                             </group>
458                             <group>
459                                 <field name="friday"/>
460                                 <field name="saturday"/>
461                                 <field name="sunday"/>
462                             </group>
463                         </group>
464                         <group string="Schedule Hour">
465                             <field name='active_from' widget='float_time'/>
466                             <field name='active_to' widget='float_time'/>
467                         </group>
468                         <group string='Message'>
469                             <field name='message' nolabel='1' placeholder="Write the message you want to display during the defined period..."/>
470                         </group>
471
472                 </sheet>
473                 </form>
474             </field>
475         </record>
476
477     </data>
478 </openerp>