[MERGE] merged trunk up to revision 9327
[odoo/odoo.git] / addons / product / product_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4         <menuitem id="prod_config_main" name="Products" parent="base.menu_base_config" sequence="70"/>
5
6         <record id="product_search_form_view" model="ir.ui.view">
7             <field name="name">product.search.form</field>
8             <field name="model">product.product</field>
9             <field name="arch" type="xml">
10                 <search string="Product">
11                    <field name="name" string="Product" filter_domain="['|','|',('name','ilike',self),('default_code','ilike',self),('variants','ilike',self)]"/>
12                    <filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
13                    <filter string="Consumable" name="consumable" icon="terp-accessories-archiver" domain="[('type','=','consu')]" help="Consumable products"/>
14                    <separator/>
15                    <filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
16                    <field name="categ_id" operator="child_of"/>
17                    <group expand="0" string="Context...">
18                        <field name="pricelist_id" widget="selection" context="{'pricelist': self}" filter_domain="[]" groups="product.group_sale_pricelist"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
19                        <field name="company_id" groups="base.group_multi_company"/>
20                    </group>
21                    <group  expand='0' string='Group by...'>
22                        <filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}"/>
23                        <filter string='Default Unit of Measure' icon="terp-mrp" domain="[]" context="{'group_by' : 'uom_id'}"/>
24                        <filter string='Type' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'type'}"/>
25                        <filter string='Company' icon="terp-go-home" domain="[]" context="{'group_by' : 'company_id'}" groups="base.group_multi_company"/>
26                        <filter string='Template' name="template_id" domain="[]" context="{'group_by' : 'product_tmpl_id'}" groups="product.group_product_variant"/>
27                    </group>
28                 </search>
29             </field>
30         </record>
31
32         <record id="product_product_tree_view" model="ir.ui.view">
33             <field name="name">product.product.tree</field>
34             <field name="model">product.product</field>
35             <field eval="7" name="priority"/>
36             <field name="arch" type="xml">
37                 <tree string="Products">
38                     <field name="default_code"/>
39                     <field name="name"/>
40                     <field name="variants" groups="product.group_product_variant"/>
41                     <field name="categ_id" invisible="1"/>
42                     <field name="type" invisible="1"/>
43                     <field name="uom_id" string="Unit of Measure" groups="product.group_uom"/>
44                     <field name="lst_price"/>
45                     <field name="price" invisible="not context.get('pricelist',False)"/>
46                     <field name="standard_price" invisible="1"/>
47                     <field name="state"/>
48                     <field name="company_id" groups="base.group_multi_company" invisible="1"/>
49                     <field name="product_tmpl_id" invisible="1"/>
50                 </tree>
51             </field>
52         </record>
53
54         <record id="product_normal_form_view" model="ir.ui.view">
55             <field name="name">product.normal.form</field>
56             <field name="model">product.product</field>
57             <field eval="7" name="priority"/>
58             <field name="arch" type="xml">
59                 <form string="Product" version="7.0">
60                     <sheet>
61                         <field name="is_only_child" invisible="1"/>
62                         <field name="image_medium" widget="image" class="oe_avatar oe_left"
63                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
64                         <div class="oe_title">
65                             <div class="oe_edit_only">
66                                 <label for="name" name='label_name' string="Product Name"
67                                     attrs="{'invisible': [('is_only_child', '=', False)]}"/>
68                                 <label for="name" name='label_name' string="Product Template"
69                                     attrs="{'invisible': [('is_only_child', '=', True)]}"/>
70                             </div>
71                             <h1>
72                                 <field name="name" class="oe_inline"
73                                     attrs="{'required': [('is_only_child', '=', True)],
74                                             'invisible': [('is_only_child', '=', False)]}"/>
75                                 <field name="product_tmpl_id" class="oe_inline" readonly="1" required="0"
76                                     attrs="{'invisible': [('is_only_child', '=', True)]}"/>
77                                 <span groups="product.group_product_variant"
78                                     attrs="{'invisible': [('is_only_child', '=', True), ('variants', '=', False)]}">
79                                     - <field name="variants" placeholder="Variant Name" class="oe_inline"/>
80                                 </span>
81                             </h1>
82                             <span attrs="{'invisible': [('is_only_child', '=', True)]}">
83                                 <p>Generic product settings are managed on
84                                     <button name="open_product_template" type="object" string="the template" class="oe_link"/>
85                                 </p>
86                             </span>
87                             <label for="categ_id" class="oe_edit_only"/>
88                             <h2><field name="categ_id" attrs="{'readonly': [('is_only_child', '=', False)]}"/></h2>
89                             <label for="public_categ_id" class="oe_edit_only"/>
90                             <h3><field name="public_categ_id" attrs="{'readonly': [('is_only_child', '=', False)]}"/></h3>
91                             <div name="options" groups="base.group_user">
92                                 <field name="sale_ok"/>
93                                 <label for="sale_ok"/>
94                             </div>
95                         </div>
96                         <div class="oe_right oe_button_box" name="buttons">
97                         </div>
98                         <notebook>
99                             <page string="Information">
100                                 <group>
101                                     <group>
102                                         <field name="type"
103                                             attrs="{'invisible': [('is_only_child', '=', False)]}"/>
104                                         <field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)" groups="product.group_uom"
105                                             attrs="{'invisible': [('is_only_child', '=', False)]}"/>
106                                         <field name="lst_price" string="Public Sale Price"
107                                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
108                                         <field name="price_extra"
109                                             attrs="{'invisible': [('is_only_child', '=', True)]}"/>
110                                     </group>
111                                     <group>
112                                         <field name="default_code"/>
113                                         <label for="ean13"/>
114                                         <div name="ean">
115                                             <field name="ean13" placeholder="e.g. 5901234123457"/>
116                                         </div>
117                                         <field name="company_id" groups="base.group_multi_company" widget="selection"
118                                             attrs="{'invisible': [('is_only_child', '=', False)]}"/>
119                                         <field name="active" />
120                                     </group>
121                                 </group>
122                                 <field name="description" placeholder="describe the product characteristics..."
123                                     attrs="{'readonly': [('is_only_child', '=', False)]}"/>
124                             </page>
125                             <page string="Procurements" groups="base.group_user">
126                                 <group name="procurement">
127                                     <group name="general">
128                                         <field name="standard_price" attrs="{'readonly': [('is_only_child', '=', False)]}"/>
129                                     </group>
130                                     <group name="procurement_uom" groups="product.group_uom" string="Purchase">
131                                         <field name="uom_po_id"
132                                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
133                                     </group>
134                                 </group>
135                                 <separator string="Description for Suppliers"/>
136                                 <field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
137                             </page>
138                             <page string="Inventory" groups="base.group_user">
139                                 <group name="inventory">
140                                     <group name="status" string="Status">
141                                         <field name="state"
142                                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
143                                         <field name="product_manager"
144                                             attrs="{'readonly': [('is_only_child', '=', False)]}"
145                                             context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_manager']}"/>
146                                     </group>
147                                     <group name="Weights" groups="product.group_stock_packaging" string="Weights">
148                                         <field digits="(14, 3)" name="volume"
149                                             attrs="{'readonly': ['|', ('type','=','service'), ('is_only_child', '=', False)]}"/>
150                                         <field name="weight"
151                                             attrs="{'readonly': ['|', ('type','=','service'), ('is_only_child', '=', False)]}"/>
152                                         <field name="weight_net" 
153                                             attrs="{'readonly': ['|', ('type','=','service'), ('is_only_child', '=', False)]}"/>
154                                     </group>
155                                 </group>
156                             </page>
157                             <page string="Sales" attrs="{'invisible':[('sale_ok','=',False)]}">
158                                 <group name="sale">
159                                     <group string="Sale Conditions">
160                                         <label for="warranty"/>
161                                         <div attrs="{'readonly': [('is_only_child', '=', False)]}">
162                                             <field name="warranty" class="oe_inline"/> months
163                                         </div>
164                                     </group>
165                                     <group groups="product.group_uos" string="Unit of Measure">
166                                         <field name="uos_id"
167                                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
168                                         <field name="uos_coeff"
169                                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
170                                         <field name="mes_type"
171                                             attrs="{'readonly': [('is_only_child', '=', False)]}"/>
172                                     </group>
173                                 </group>
174                                 <separator string="Packages" groups="product.group_stock_packaging"/>
175                                 <field name="packaging" groups="product.group_stock_packaging" attrs="{'readonly': [('is_only_child', '=', False)]}">
176                                     <form string="Packaging" version="7.0">
177                                         <group col="4">
178                                             <field name="ean"/>
179                                             <field name="sequence" invisible="1"/>
180                                             <newline/>
181                                             <field name="qty"/>
182                                             <field name="ul"/>
183                                             <separator colspan="4" string="Palletization"/>
184                                             <field name="ul_qty"/>
185                                             <field name="ul_container" domain="[('type', '=', 'pallet')]" context="{'default_type': 'pallet'}"/>
186                                             <field name="rows"/>
187                                             <field name="weight"/>
188                                         </group>
189                                         <separator colspan="4" string="Description"/>
190                                         <field name="name"/>
191                                     </form>
192                                 </field>
193                                 <separator string="Description for Quotations"/>
194                                 <field name="description_sale" placeholder="note to be displayed on quotations..."
195                                     attrs="{'readonly': [('is_only_child', '=', False)]}"/>
196                             </page>
197                         </notebook>
198                     </sheet>
199                     <div class="oe_chatter">
200                         <field name="message_follower_ids" widget="mail_followers"/>
201                         <field name="message_ids" widget="mail_thread"/>
202                     </div>
203                 </form>
204             </field>
205         </record>
206
207         <!-- Product Kanban View  -->
208
209         <record model="ir.ui.view" id="product.product_kanban_view">
210             <field name="name">Product Kanban</field>
211             <field name="model">product.product</field>
212             <field name="arch" type="xml">
213                 <kanban>
214                     <field name="color"/>
215                     <field name="type"/>
216                     <field name="list_price"/>
217                     <templates>
218                         <t t-name="kanban-box">
219                             <div class="oe_kanban_vignette oe_semantic_html_override">
220                                 <a type="open"><img t-att-src="kanban_image('product.product', 'image_small', record.id.value)" class="oe_kanban_image"/></a>
221                                 <div class="oe_kanban_details">
222                                     <h4>
223                                         <a type="open">
224                                              <t t-if="record.code.raw_value">[<field name="code"/>]</t> <field name="name"/> <t t-if="record.variants.raw_value">(<field name="variants"/>)</t>
225                                         </a>
226                                     </h4>
227                                     <div name="tags"/>
228                                     <ul>
229                                         <li>Price: <field name="lst_price"></field></li>
230                                     </ul>
231                                 </div>
232                             </div>
233                         </t>
234                     </templates>
235                 </kanban>
236             </field>
237         </record>
238
239         <record id="product_normal_action" model="ir.actions.act_window">
240             <field name="name">Products</field>
241             <field name="type">ir.actions.act_window</field>
242             <field name="res_model">product.product</field>
243             <field name="view_type">form</field>
244             <field name="view_mode">tree,form,kanban</field>
245             <field name="view_id" ref="product_product_tree_view"/>
246             <field name="search_view_id" ref="product_search_form_view"/>
247             <field name="help" type="html">
248               <p class="oe_view_nocontent_create">
249                 Click to define a new product.
250               </p><p>
251                 You must define a product for everything you buy or sell,
252                 whether it's a physical product, a consumable or service.
253               </p>
254             </field>
255         </record>
256         <record id="product_normal_action_sell" model="ir.actions.act_window">
257             <field name="name">Products</field>
258             <field name="type">ir.actions.act_window</field>
259             <field name="res_model">product.product</field>
260             <field name="view_mode">kanban,tree,form</field>
261             <field name="view_type">form</field>
262             <field name="context">{"search_default_filter_to_sell":1}</field>
263             <field name="view_id" ref="product_product_tree_view"/>
264             <field name="search_view_id" ref="product_search_form_view"/>
265             <field name="help" type="html">
266               <p class="oe_view_nocontent_create">
267                 Click to define a new product.
268               </p><p>
269                 You must define a product for everything you sell, whether it's
270                 a physical product, a consumable or a service you offer to
271                 customers.
272               </p><p>
273                 The product form contains information to simplify the sale
274                 process: price, notes in the quotation, accounting data,
275                 procurement methods, etc.
276               </p>
277             </field>
278         </record>
279
280         <record id="open_view_product_tree1" model="ir.actions.act_window.view">
281             <field name="sequence" eval="2"/>
282             <field name="view_mode">tree</field>
283             <field name="view_id" ref="product_product_tree_view"/>
284             <field name="act_window_id" ref="product_normal_action_sell"/>
285         </record>
286
287         <record id="open_view_product_form1" model="ir.actions.act_window.view">
288             <field name="sequence" eval="3"/>
289             <field name="view_mode">form</field>
290             <field name="view_id" ref="product_normal_form_view"/>
291             <field name="act_window_id" ref="product_normal_action_sell"/>
292         </record>
293
294         <record id="open_view_product_kanban1" model="ir.actions.act_window.view">
295             <field name="sequence" eval="1"/>
296             <field name="view_mode">kanban</field>
297             <field name="view_id" ref="product_kanban_view"/>
298             <field name="act_window_id" ref="product_normal_action_sell"/>
299         </record>
300
301         <menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
302         <menuitem id="product.menu_products" action="product.product_normal_action_sell" parent="base.menu_product" sequence="1"/>
303
304         <record id="product_normal_action_puchased" model="ir.actions.act_window">
305             <field name="name">Products</field>
306             <field name="type">ir.actions.act_window</field>
307             <field name="res_model">product.product</field>
308             <field name="view_type">form</field>
309             <field name="view_mode">kanban,tree,form</field>
310             <field name="context">{"search_default_filter_to_purchase":1}</field>
311             <field name="view_id" ref="product_kanban_view"/>
312             <field name="search_view_id" ref="product_search_form_view"/>
313             <field name="help" type="html">
314               <p class="oe_view_nocontent_create">
315                 Click to define a new product.
316               </p><p>
317                 You must define a product for everything you purchase, whether
318                 it's a physical product, a consumable or services you buy to
319                 subcontractants.
320               </p><p>
321                 The product form contains detailed information to improve the
322                 purchase process: prices, procurement logistics, accounting data,
323                 available suppliers, etc.
324               </p>
325             </field>
326         </record>
327
328         <record id="product_category_search_view" model="ir.ui.view">
329             <field name="name">product.category.search</field>
330             <field name="model">product.category</field>
331             <field name="arch" type="xml">
332                 <search string="Product Categories">
333                     <field name="name" string="Product Categories"/>
334                     <field name="parent_id"/>
335                 </search>
336             </field>
337         </record>
338         <record id="product_category_form_view" model="ir.ui.view">
339             <field name="name">product.category.form</field>
340             <field name="model">product.category</field>
341             <field name="arch" type="xml">
342                 <form string="Product Categories" version="7.0">
343                     <sheet>
344                         <div class="oe_title">
345                             <label for="name" class="oe_edit_only"/>
346                             <h1>
347                                 <field name="name"/>
348                             </h1>
349                         </div>
350                         <group>
351                             <group name="parent" col="4">
352                                 <field name="parent_id"/>
353                                 <field name="type"/>
354                             </group>
355                         </group>
356                     </sheet>
357                 </form>
358             </field>
359         </record>
360         <record id="product_category_list_view" model="ir.ui.view">
361             <field name="name">product.category.list</field>
362             <field name="model">product.category</field>
363             <field name="priority">1</field>
364             <field name="arch" type="xml">
365                 <tree string="Product Categories">
366                     <field name="complete_name"/>
367                 </tree>
368             </field>
369         </record>
370         <record id="product_category_tree_view" model="ir.ui.view">
371             <field name="name">product.category.tree</field>
372             <field name="model">product.category</field>
373             <field name="field_parent">child_id</field>
374             <field name="arch" type="xml">
375                 <tree toolbar="True" string="Product Categories">
376                     <field name="name"/>
377                 </tree>
378             </field>
379         </record>
380         <record id="product_category_action" model="ir.actions.act_window">
381             <field name="name">Products by Category</field>
382             <field name="type">ir.actions.act_window</field>
383             <field name="res_model">product.category</field>
384             <field name="domain">[('parent_id','=',False)]</field>
385             <field name="view_type">tree</field>
386             <field name="view_id" ref="product_category_tree_view"/>
387             <field name="help" type="html">
388               <p>
389                 Here is a list of all your products classified by category. You
390                 can click a category to get the list of all products linked to
391                 this category or to a child of this category.
392               </p>
393             </field>
394         </record>
395         <menuitem
396             action="product_category_action"
397             id="product.menu_products_category"
398             parent="base.menu_product"
399             sequence="30" groups="base.group_no_one"/>
400         <record id="product_category_action_form" model="ir.actions.act_window">
401             <field name="name">Product Categories</field>
402             <field name="type">ir.actions.act_window</field>
403             <field name="res_model">product.category</field>
404             <field name="view_type">form</field>
405             <field name="search_view_id" ref="product_category_search_view"/>
406             <field name="view_id" ref="product_category_list_view"/>
407         </record>
408         <menuitem action="product_category_action_form"
409             groups="base.group_no_one"
410             id="menu_product_category_action_form"
411             parent="prod_config_main" sequence="2"/>
412
413
414         <record id="product_normal_action_tree" model="ir.actions.act_window">
415             <field name="name">Products</field>
416             <field name="type">ir.actions.act_window</field>
417             <field name="res_model">product.product</field>
418             <field name="view_type">form</field>
419             <field name="view_mode">tree,form,kanban</field>
420             <field name="context">{'categ_id':active_id, 'search_default_categ_id':active_id}</field>
421         </record>
422         <record id="ir_product_category_open" model="ir.values">
423             <field eval="'tree_but_open'" name="key2"/>
424             <field eval="'product.category'" name="model"/>
425             <field name="name">Products by Categories</field>
426             <field eval="'ir.actions.act_window,%d'%product_normal_action_tree" name="value"/>
427         </record>
428
429
430         <!-- Product Public Categories -->
431         <record id="product_public_category_form_view" model="ir.ui.view">
432             <field name="name">product.public.category.form</field>
433             <field name="model">product.public.category</field>
434             <field name="arch" type="xml">
435                 <form string="Pos/Public Categories" version="7.0">
436                     <sheet>
437                         <field name="image_medium" widget='image' class="oe_avatar oe_right"/>
438                         <div class="oe_left">
439                             <group>
440                                 <field name="name"/>
441                                 <field name="parent_id"/>
442                                 <field name="sequence"/>
443                             </group>
444                         </div>
445                     </sheet>
446                 </form>
447             </field>
448         </record>
449         <record id="product_public_category_tree_view" model="ir.ui.view">
450             <field name="name">product.public.category.tree</field>
451             <field name="model">product.public.category</field>
452             <field name="field_parent" eval="False"/>
453             <field name="arch" type="xml">
454                 <tree string="Product Product Categories">
455                     <field name="sequence" invisible="1"/>
456                     <field name="complete_name"/>
457                 </tree>
458             </field>
459         </record>
460         <record id="product_public_category_action" model="ir.actions.act_window">
461             <field name="name">Pos/Public Product Categories</field>
462             <field name="type">ir.actions.act_window</field>
463             <field name="res_model">product.public.category</field>
464             <field name="view_type">form</field>
465             <field name="view_mode">tree,form</field>
466             <field name="view_id" eval="False"/>
467             <field name="help" type="html">
468               <p class="oe_view_nocontent_create">
469                 Click to define a new category.
470               </p><p>
471                 Categories are used to browse your products through the
472                 touchscreen interface.
473               </p><p>
474                 If you put a photo on the category, the layout of the
475                 touchscreen interface will automatically. We suggest not to put
476                 a photo on categories for small (1024x768) screens.
477               </p>
478             </field>
479         </record>
480         <menuitem action="product_public_category_action" id="menu_product_public_category" parent="prod_config_main" sequence="10" />
481         <!-- END -->
482
483         <!-- Unit of Measure -->
484
485         <record id="product_uom_tree_view" model="ir.ui.view">
486             <field name="name">product.uom.tree</field>
487             <field name="model">product.uom</field>
488             <field name="arch" type="xml">
489                 <tree string="Units of Measure">
490                     <field name="name"/>
491                     <field name="category_id"/>
492                 </tree>
493             </field>
494         </record>
495
496         <record id="product_uom_form_view" model="ir.ui.view">
497             <field name="name">product.uom.form</field>
498             <field name="model">product.uom</field>
499             <field name="arch" type="xml">
500                 <form string="Units of Measure" version="7.0">
501                     <group>
502                         <group>
503                             <field name="name"/>
504                             <field name="category_id"/>
505                             <field name="uom_type" on_change="onchange_type(uom_type)"/>
506                             <label for="factor"/>
507                             <div>
508                                 <field name="factor" attrs="{'invisible':[('uom_type','!=','smaller')]}"/>
509                                 <field name="factor_inv" attrs="{'invisible':[('uom_type','!=','bigger')]}"/>
510                                 <p attrs="{'invisible':[('uom_type','!=','smaller')]}" class="oe_grey">
511                                     e.g: 1 * (reference unit) = ratio * (this unit)
512                                 </p>
513                                 <p attrs="{'invisible':[('uom_type','!=','bigger')]}" class="oe_grey">
514                                     e.g: 1 * (this unit) = ratio * (reference unit)
515                                 </p>
516                             </div>
517                         </group>
518                         <group>
519                             <field name="active"/>
520                             <field name="rounding"/>
521                         </group>
522                     </group>
523                 </form>
524             </field>
525         </record>
526         <record id="product_uom_form_action" model="ir.actions.act_window">
527             <field name="name">Units of Measure</field>
528             <field name="type">ir.actions.act_window</field>
529             <field name="res_model">product.uom</field>
530             <field name="view_type">form</field>
531             <field name="view_id" ref="product_uom_tree_view"/>
532             <field name="help" type="html">
533               <p class="oe_view_nocontent_create">
534                 Click to add a new unit of measure.
535               </p><p>
536                 You must define a conversion rate between several Units of
537                 Measure within the same category.
538               </p>
539             </field>
540         </record>
541         <menuitem id="next_id_16" name="Units of Measure" parent="prod_config_main" sequence="30" groups="product.group_uom"/>
542         <menuitem action="product_uom_form_action" id="menu_product_uom_form_action" parent="base.menu_base_config" sequence="30" groups="product.group_uom"/>
543
544         <record id="product_uom_categ_form_view" model="ir.ui.view">
545             <field name="name">product.uom.categ.form</field>
546             <field name="model">product.uom.categ</field>
547             <field name="arch" type="xml">
548                 <form string="Units of Measure categories" version="7.0">
549                     <group>
550                         <field name="name"/>
551                     </group>
552                 </form>
553             </field>
554         </record>
555         <record id="product_uom_categ_form_action" model="ir.actions.act_window">
556             <field name="name">Unit of Measure Categories</field>
557             <field name="type">ir.actions.act_window</field>
558             <field name="res_model">product.uom.categ</field>
559             <field name="view_type">form</field>
560             <field name="view_mode">tree,form</field>
561             <field name="help" type="html">
562               <p class="oe_view_nocontent_create">
563                 Click to add a new unit of measure category.
564               </p><p>
565                 Units of measure belonging to the same category can be
566                 converted between each others. For example, in the category
567                 <i>'Time'</i>, you will have the following units of measure:
568                 Hours, Days.
569               </p>
570             </field>
571         </record>
572         <menuitem action="product_uom_categ_form_action" id="menu_product_uom_categ_form_action" parent="base.menu_base_config" sequence="25" groups="base.group_no_one"/>
573
574         <record id="product_ul_form_view" model="ir.ui.view">
575             <field name="name">product.ul.form.view</field>
576             <field name="model">product.ul</field>
577             <field name="arch" type="xml">
578                 <form string="Logistic Units" version="7.0">
579                     <group>
580                         <field name="name"/>
581                         <field name="type"/>
582                     </group>
583                     <group>
584                         <field name="height"/>
585                         <field name="width"/>
586                         <field name="length"/>
587                         <field name="weight"/>
588                     </group>
589                 </form>
590             </field>
591         </record>
592         <record id="product_ul_tree" model="ir.ui.view">
593             <field name="name">product.ul.tree</field>
594             <field name="model">product.ul</field>
595             <field name="arch" type="xml">
596                 <tree string="Logistic Units">
597                     <field name="name"/>
598                     <field name="type"/>
599                 </tree>
600             </field>
601         </record>
602         <record id="product_ul_form_action" model="ir.actions.act_window">
603             <field name="name">Logistic Units</field>
604             <field name="type">ir.actions.act_window</field>
605             <field name="res_model">product.ul</field>
606             <field name="view_type">form</field>
607             <field name="view_mode">tree,form</field>
608             <field name="help" type="html">
609               <p class="oe_view_nocontent_create">
610                 Click to add a new Logistic Unit
611               </p><p>
612                 The logistic unit defines the container used for the package.  
613                 It has a type (e.g. pallet, box, ...) and you can specify its 
614                 size. 
615               </p>
616             </field>
617         </record>
618         <menuitem
619             action="product_ul_form_action" groups="product.group_stock_packaging" id="menu_product_ul_form_action" parent="prod_config_main" sequence="5"/>
620
621         <record id="product_packaging_tree_view" model="ir.ui.view">
622             <field name="name">product.packaging.tree.view</field>
623             <field name="model">product.packaging</field>
624             <field name="arch" type="xml">
625                 <tree string="Packaging">
626                     <field name="sequence" widget="handle"/>
627                     <field name="ean"/>
628                     <field name="qty"/>
629                     <field name="ul"/>
630                     <field name="ul_container"/>
631                 </tree>
632             </field>
633         </record>
634
635         <record id="product_packaging_form_view" model="ir.ui.view">
636             <field name="name">product.packaging.form.view</field>
637             <field name="model">product.packaging</field>
638             <field name="arch" type="xml">
639                 <form string="Packaging" version="7.0">
640                     <group col="4">
641                         <field name="product_id"/>
642                         <newline/>
643                         <field name="ean"/>
644                         <field name="sequence" invisible="1"/>
645                         <newline/>
646                         <field name="qty"/>
647                         <field name="ul"/>
648                         <separator colspan="4" string="Palletization"/>
649                         <field name="ul_qty"/>
650                         <field name="rows"/>
651                         <field name="ul_container"/>
652                         <field name="weight"/>
653                         <separator colspan="4" string="Other Info"/>
654                         <field colspan="4" name="name"/>
655                     </group>
656                 </form>
657             </field>
658         </record>
659
660         <record id="product_supplierinfo_form_view" model="ir.ui.view">
661             <field name="name">product.supplierinfo.form.view</field>
662             <field name="model">product.supplierinfo</field>
663             <field name="arch" type="xml">
664                 <form string="Supplier Information" version="7.0">
665                     <group col="4">
666                         <field name="name" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}"/>
667                         <field name="sequence"/>
668                         <field name="product_name"/>
669                         <field name="product_code"/>
670                         <field name="min_qty"/>
671                         <field name="product_uom" groups="product.group_uom"/>
672                         <field name="delay"/>
673                         <field name="company_id" groups="base.group_multi_company" widget="selection"/>
674                     </group>
675                     <p groups="product.group_purchase_pricelist" class="oe_grey">The prices below will only be taken into account when your pricelist is set as based on supplier prices.</p>
676                     <field groups="product.group_purchase_pricelist" name="pricelist_ids">
677                         <tree editable="bottom" string="Pricelist">
678                             <field name="min_quantity"/>
679                             <field name="price"/>
680                         </tree>
681                         <form version="7.0">
682                             <group>
683                                 <field name="min_quantity"/>
684                                 <field name="price"/>
685                             </group>
686                         </form>
687                     </field>
688                 </form>
689             </field>
690         </record>
691         <record id="product_supplierinfo_tree_view" model="ir.ui.view">
692             <field name="name">product.supplierinfo.tree.view</field>
693             <field name="model">product.supplierinfo</field>
694             <field name="arch" type="xml">
695                 <tree string="Supplier Information">
696                     <field name="sequence" widget="handle"/>
697                     <field name="name"/>
698                     <field name="delay"/>
699                     <field name="min_qty"/>
700                     <field name="company_id" groups="base.group_multi_company" widget="selection"/>
701                 </tree>
702             </field>
703         </record>
704
705         <!-- Variants -->
706         <record id="product_variant_search_form_view" model="ir.ui.view">
707             <field name="name">product.variant.search.form</field>
708             <field name="model">product.product</field>
709             <field name="arch" type="xml">
710                 <search string="Product Variant">
711                    <field name="product_tmpl_id"/>
712                    <field name="name" string="Product" filter_domain="['|','|',('name','ilike',self),('default_code','ilike',self),('variants','ilike',self)]"/>
713                    <group  expand='0' string='Group by...'>
714                        <filter string='Template' name="template_id" domain="[]" context="{'group_by' : 'product_tmpl_id'}"/>
715                    </group>
716                 </search>
717             </field>
718         </record>
719         <record id="product_variant_form_view" model="ir.ui.view">
720             <field name="name">product.variant.form</field>
721             <field name="model">product.product</field>
722             <field name="arch" type="xml">
723                 <form string="Product Variant" version="7.0">
724                     <group col="4">
725                         <field name="product_tmpl_id"/>
726                         <field name="active"/>
727                         <field name="variants" required="1"/>
728                         <field name="default_code"/>
729                         <field name="price_margin"/>
730                         <field name="price_extra"/>
731                     </group>
732                 </form>
733             </field>
734         </record>
735         <record id="product_variant_tree_view" model="ir.ui.view">
736             <field name="name">product.variant.tree</field>
737             <field name="model">product.product</field>
738             <field name="arch" type="xml">
739                 <tree string="Product Variant">
740                     <field name="product_tmpl_id"/>
741                     <field name="variants"/>
742                     <field name="default_code"/>
743                     <field name="price_margin"/>
744                     <field name="price_extra"/>
745                     <field name="company_id" invisible="1"/>
746                     <field name="type" invisible="1"/>
747                     <field name="uom_id" invisible="1"/>
748                     <field name="categ_id" invisible="1"/>
749                 </tree>
750             </field>
751         </record>
752         <record id="product_variant_action" model="ir.actions.act_window">
753             <field name="name">Product Variants</field>
754             <field name="type">ir.actions.act_window</field>
755             <field name="domain">[('variants','!=', '')]</field>
756             <field name="res_model">product.product</field>
757             <field name="view_type">form</field>
758             <field name="view_mode">tree,form,kanban</field>
759             <field name="view_id" ref="product_variant_tree_view"/>
760             <field name="search_view_id" ref="product_variant_search_form_view"/>
761             <field name="help" type="html">
762               <p class="oe_view_nocontent_create">
763                 Click to define a new variant of product.
764               </p>
765             </field>
766         </record>
767         <record id="tree_view_product_variant" model="ir.actions.act_window.view">
768             <field name="sequence" eval="10"/>
769             <field name="view_mode">tree</field>
770             <field name="view_id" ref="product_variant_tree_view"/>
771             <field name="act_window_id" ref="product_variant_action"/>
772         </record>
773         <record id="form_view_product_variant" model="ir.actions.act_window.view">
774             <field name="sequence" eval="20"/>
775             <field name="view_mode">form</field>
776             <field name="view_id" ref="product_variant_form_view"/>
777             <field name="act_window_id" ref="product_variant_action"/>
778         </record>
779         <menuitem action="product.product_variant_action" id="product.menu_variant_product" parent="prod_config_main" sequence="4" groups="product.group_product_variant"/>
780
781         <!-- templates -->
782
783         <record id="product_template_search_view" model="ir.ui.view">
784             <field name="name">product.template.search</field>
785             <field name="model">product.template</field>
786             <field name="arch" type="xml">
787                 <search string="Product Template">
788                     <field name="name" string="Product"/>
789                     <filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
790                     <filter string="Consumable" name="consumable" icon="terp-accessories-archiver" domain="[('type','=','consu')]" help="Consumable products"/>
791                     <separator/>
792                     <filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
793                     <field name="categ_id"/>
794                     <group  expand='0' string='Group by...'>
795                        <filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}"/>
796                        <filter string='Default Unit of Measure' icon="terp-mrp" domain="[]" context="{'group_by' : 'uom_id'}"/>
797                        <filter string='Type' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'type'}"/>
798                     </group>
799                 </search>
800             </field>
801         </record>
802
803         <record id="product_template_tree_view" model="ir.ui.view">
804             <field name="name">product.template.product.tree</field>
805             <field name="model">product.template</field>
806             <field name="arch" type="xml">
807                 <tree string="Product Template">
808                     <field name="name"/>
809                     <field name="categ_id"/>
810                     <field name="type"/>
811                     <field name="state"/>
812                     <field name="uom_id" invisible="1"/>
813                 </tree>
814             </field>
815         </record>
816
817         <record id="product_template_form_view" model="ir.ui.view">
818             <field name="name">product.template.product.form</field>
819             <field name="model">product.template</field>
820             <field name="arch" type="xml">
821                 <form string="Product Template" version="7.0">
822                     <sheet>
823                         <field name="image_medium" widget="image" class="oe_avatar oe_left"/>
824                         <div class="oe_title">
825                             <div class="oe_edit_only">
826                                 <label for="name" string="Product Name"/>
827                             </div>
828                             <h1>
829                                 <field name="name"/>
830                             </h1>
831                             <label for="categ_id" class="oe_edit_only"/>
832                             <h2><field name="categ_id"/></h2>
833                             <label for="public_categ_id" class="oe_edit_only"/>
834                             <h3><field name="public_categ_id"/></h3>
835                             <div name="options" groups="base.group_user">
836                                 <field name="sale_ok"/>
837                                 <label for="sale_ok"/>
838                             </div>
839                         </div>
840                         <notebook>
841                             <page string="Information">
842                                 <group  colspan="4">
843                                     <group>
844                                         <field name="type"/>
845                                         <field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)" groups="product.group_uom"/>
846                                         <field name="list_price"/>
847                                     </group>
848                                     <group>
849                                         <field name="company_id" groups="base.group_multi_company" widget="selection"/>
850                                     </group>
851                                 </group>
852                                 <group colspan="4" string="Product Variants" groups="product.group_product_variant">
853                                     <field colspan="4" name="product_variant_ids" nolabel="1" >
854                                         <tree string="Product Variants" editable="bottom">
855                                             <field name="variants" required="1"/>
856                                             <field name="price_margin" string="Variant Price Margin"/>
857                                             <field name="price_extra"/>
858                                             <field name="lst_price" string="Sale Price" readonly="1"/>
859                                         </tree>
860                                     </field>
861                                 </group>
862                                 <field name="description" placeholder="describe the product characteristics..."/>
863                             </page>
864                             <page string="Procurements" groups="base.group_user">
865                                 <group name="procurement">
866                                     <group name="general">
867                                         <field name="standard_price" attrs="{'readonly': [('is_only_child', '=', False)]}"/>
868                                     </group>
869                                     <group name="procurement_uom" groups="product.group_uom" string="Purchase">
870                                         <field name="uom_po_id"/>
871                                     </group>
872                                 </group>
873                                 <separator string="Suppliers"/>
874                                 <field name="seller_ids"/>
875                                 <separator string="Description for Suppliers"/>
876                                 <field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
877                             </page>
878                             <page string="Inventory">
879                                 <group name="inventory">
880                                      <group name="status" string="Status">
881                                         <field name="state"/>
882                                         <field name="product_manager"/>
883                                     </group>
884                                     <group name ="weight" string="Weights">
885                                         <field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
886                                         <field digits="(14, 3)" name="weight" attrs="{'readonly':[('type','=','service')]}"/>
887                                         <field digits="(14, 3)" name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
888                                     </group>
889                                 </group>
890                             </page>
891                             <page string="Sales" attrs="{'invisible':[('sale_ok','=',False)]}">   
892                                 <group name="sale">
893                                     <group name="sale_condition" string="Sale Conditions">
894                                         <label for="warranty"/>
895                                         <div>
896                                             <field name="warranty" class="oe_inline" style="vertical-align:baseline"/> months
897                                         </div>
898                                     </group>
899                                     <group groups="product.group_uos" string="Unit of Measure">
900                                         <field name="uos_id"/>
901                                         <field name="uos_coeff"/>
902                                         <field name="mes_type"/>
903                                     </group>
904                                 </group>
905                                 <separator string="Description for Quotations"/>
906                                 <field name="description_sale" placeholder="note to be displayed on quotations..."/>
907                             </page>
908                         </notebook>
909                     </sheet>
910                     <div class="oe_chatter">
911                         <field name="message_follower_ids" widget="mail_followers"/>
912                         <field name="message_ids" widget="mail_thread"/>
913                     </div>
914                 </form>
915             </field>
916         </record>
917
918         <record model="ir.ui.view" id="product_template_kanban_view">
919             <field name="name">Product Template Kanban</field>
920             <field name="model">product.template</field>
921             <field name="arch" type="xml">
922                 <kanban>
923                     <field name="image_small"/>
924                     <field name="list_price"/>
925                     <templates>
926                         <t t-name="kanban-box">
927                             <div class="oe_kanban_vignette oe_semantic_html_override">
928                                 <a type="open"><img t-att-src="kanban_image('product.template', 'image_small', record.id.value)" class="oe_kanban_image"/></a>
929                                 <div class="oe_kanban_details">
930                                     <h4>
931                                         <a type="open">
932                                              <field name="name"/> 
933                                         </a>
934                                     </h4>
935                                     <div name="tags"/>
936                                     <ul>
937                                         <li>Price: <field name="list_price"></field></li>
938                                     </ul>
939                                 </div>
940                             </div>
941                         </t>
942                     </templates>
943                 </kanban>
944             </field>
945         </record>
946
947         <record id="product_template_action" model="ir.actions.act_window">
948             <field name="name">Templates</field>
949             <field name="type">ir.actions.act_window</field>
950             <field name="res_model">product.template</field>
951             <field name="view_mode">kanban,tree,form</field>
952             <field name="view_type">form</field>
953             <field name="view_id" ref="product_template_kanban_view"/>
954         </record>
955
956         <menuitem action="product_template_action"
957             id="menu_product_template_action"
958             parent="base.menu_product" sequence="20" 
959             groups="product.group_product_variant"/>
960
961     </data>
962 </openerp>