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