[MERGE] Sync with trunk, until revision 8927
[odoo/odoo.git] / addons / stock / product_view.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data>
4
5         <record id="product_search_form_view_stock" model="ir.ui.view">
6             <field name="name">product.search.stock.form</field>
7             <field name="model">product.product</field>
8             <field name="inherit_id" ref="product.product_search_form_view"/>
9             <field name="arch" type="xml">
10                 <field name="pricelist_id" position="before">
11                     <field name="location_id" context="{'location': self}"/>
12                     <field name="warehouse_id" context="{'warehouse': self}"/>
13                 </field>
14             </field>
15         </record>
16
17         <record id="view_category_property_form" model="ir.ui.view">
18             <field name="name">product.category.stock.property.form.inherit</field>
19             <field name="model">product.category</field>
20             <field name="inherit_id" ref="account.view_category_property_form"/>
21             <field name="arch" type="xml">
22                 <data>
23                     <group name="account_property" position="after">
24                         <group name="account_stock_property" string="Account Stock Properties" colspan="2">
25                             <field name="property_stock_account_input_categ" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
26                             <field name="property_stock_account_output_categ" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
27                             <field name="property_stock_valuation_account_id" domain="[('type','&lt;&gt;','view'), ('type','&lt;&gt;','consolidation')]"/>
28                             <field name="property_stock_journal"/>
29                         </group>
30                     </group>
31                 </data>
32             </field>
33         </record>
34
35         <record id="view_template_property_form" model="ir.ui.view">
36             <field name="name">product.template.stock.property.form.inherit</field>
37             <field name="model">product.template</field>
38             <field name="inherit_id" ref="product.product_template_form_view"/>
39             <field name="arch" type="xml">
40                 <group name="delay" position="inside">
41                         <field name="sale_delay" attrs="{'readonly':[('sale_ok','=',False)]}"/>
42                 </group>
43                 <group name="delay" position="after">
44                         <group name="store" string="Storage Location">
45                         <field name="loc_rack"/>
46                         <field name="loc_row"/>
47                         <field name="loc_case"/>
48                         </group>
49                 </group>
50                 <page position="after" string="Information">
51                     <page string="Properties">
52                         <group string="Counter-Part Locations Properties" groups="stock.group_locations">
53                             <field name="property_stock_procurement" domain="[('usage','=','procurement')]"/>
54                             <field name="property_stock_production" domain="[('usage','=','production')]"/>
55                             <field name="property_stock_inventory" domain="[('usage','=','inventory')]"/>
56                         </group>
57                         <group string="Accounting Entries">
58                             <field name="property_stock_account_input" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
59                             <field name="property_stock_account_output" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
60                         </group>
61                     </page>
62                 </page>
63                 <field name="product_manager" position="attributes" version="7.0">
64                     <attribute name="context">{'default_groups_ref': ['base.group_user', 'base.group_sale_manager', 'stock.group_stock_manager']}</attribute>
65                 </field>
66             </field>
67         </record>
68
69         <record id="view_normal_procurement_locations_form" model="ir.ui.view">
70             <field name="name">product.normal.procurement.locations.inherit</field>
71             <field name="model">product.product</field>
72             <field name="inherit_id" ref="product.product_normal_form_view"/>
73             <field name="arch" type="xml">
74                 <xpath expr="//div[@name='buttons']" position="inside">
75                    <button string="Inventory" name="%(action_product_location_tree)d" type="action"  attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_locations"/>
76                    <button string="Moves" name= "%(act_product_stock_move_open)d" type="action" attrs="{'invisible':[('type', '=', 'service')]}" groups="stock.group_stock_user"/>
77                 </xpath>
78                 <group name="procurement_uom" position="before">
79                     <group name="delay" string="Delays">
80                         <label for="produce_delay" attrs="{'invisible':[('type','=','service')]}"/>
81                         <div attrs="{'invisible':[('type','=','service')]}">
82                             <field name="produce_delay" class="oe_inline"/> days
83                         </div>
84                         <field name="active"/>
85                     </group>
86                 </group>
87                 <xpath expr="//group[@string='Sale Conditions']" position="inside">
88                     <label for="sale_delay"/>
89                         <div>
90                             <field name="sale_delay" class="oe_inline"/> days
91                         </div>
92                 </xpath>
93                 <group name="status" position="before" version="7.0">
94                     <group string="Stock and Expected Variations" attrs="{'invisible': [('type', '=', 'service')]}" groups="base.group_user">
95                         <label for="qty_available"/>
96                             <div>
97                                 <field name="qty_available" class="oe_inline"/>
98                                 <button name="%(action_view_change_product_quantity)d" string="⇒ Update"
99                                     type="action"
100                                     class="oe_link"/>
101                             </div>
102                         <label for="incoming_qty"/>
103                         <div>
104                             <field name="incoming_qty" class="oe_inline"/>
105                         </div>
106                         <field name="outgoing_qty" class="oe_inline"/>
107                         <field name="virtual_available" class="oe_inline"/>
108                     </group>
109                     <group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
110                         <field name="track_production" groups="stock.group_production_lot"/>
111                         <field name="track_incoming" groups="stock.group_tracking_lot"/>
112                         <field name="track_outgoing" groups="stock.group_tracking_lot"/>
113                     </group>
114                 </group>
115                 <group name="status" position="after" version="7.0">
116                     <group name="store" string="Storage Location" attrs="{'invisible':[('type','=','service')]}">
117                         <field name="loc_rack"/>
118                         <field name="loc_row"/>
119                         <field name="loc_case"/>
120                     </group>
121                 </group>
122                 <group name="Weights" position="after">
123                      <group name="store" groups="stock.group_locations" string="Counter-Part Locations Properties">
124                          <field name="property_stock_procurement" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','procurement')]"/>
125                          <field name="property_stock_production" attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','production')]"/>
126                          <field name="property_stock_inventory"  attrs="{'readonly':[('type','=','service')]}" domain="[('usage','=','inventory')]"/>
127                      </group>
128                 </group>
129                 <field name="product_manager" position="attributes" version="7.0">
130                     <attribute name="context">{'default_groups_ref': ['base.group_user', 'base.group_sale_manager', 'stock.group_stock_manager']}</attribute>
131                 </field>
132             </field>
133         </record>
134
135         <record id="view_product_standard_price_form" model="ir.ui.view">
136             <field name="name">product.product.standard.price.form.inherit</field>
137             <field name="model">product.product</field>
138             <field name="inherit_id" ref="product.product_normal_form_view"/>
139             <field name="arch" type="xml">
140                 <field name="standard_price" position="replace" version="7.0">
141                     <label string="Cost Price" for="standard_price" align="1.0" groups="base.group_user"/>
142                     <div groups="base.group_user">
143                         <field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}" nolabel="1"/>
144                         <button name="%(action_view_change_standard_price)d" string="- update"
145                             type="action" attrs="{'invisible':[('cost_method','&lt;&gt;','average')]}"
146                             class="oe_link" groups="product.group_costing_method"/>
147                     </div>
148                 </field>
149             </field>
150         </record>
151
152         <record id="view_normal_property_acc_form" model="ir.ui.view">
153             <field name="name">product.normal.stock.acc.property.form.inherit</field>
154             <field name="model">product.product</field>
155             <field name="inherit_id" ref="product.product_normal_form_view"/>
156             <field name="priority">26</field>
157             <field name="arch" type="xml">
158                 <xpath expr="//group[@name='properties']" position="before">
159                     <group groups="stock.group_inventory_valuation">
160                         <separator string="Inventory Valuation" colspan="4"/>
161                         <group colspan="2" col="2">
162                             <field name="valuation" attrs="{'readonly':[('type', '=', 'service')]}"/>
163                         </group>
164                         <group colspan="2" col="2">
165                             <field name="property_stock_account_input" attrs="{'invisible':[('valuation', '!=', 'real_time')]}"
166                                 domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
167                             <field name="property_stock_account_output" attrs="{'invisible':[('valuation', '!=', 'real_time')]}"
168                                 domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
169                         </group>
170                     </group>
171                     <newline/>
172                 </xpath>
173             </field>
174         </record>
175
176
177         <record id="action_receive_move" model="ir.actions.act_window">
178             <field name="name">Receptions</field>
179             <field name="res_model">stock.move</field>
180             <field name="type">ir.actions.act_window</field>
181             <field name="view_type">form</field>
182             <field name="view_mode">tree,form</field>
183             <field name="domain">[('picking_id.type','=','in')]</field>
184             <field name="view_id" ref="view_move_tree_reception_picking"/>
185             <field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/>
186             <field name="help" type="html">
187               <p class="oe_view_nocontent_create">
188                 Click to register a reception for this product. 
189               </p><p>
190                 Here you will find the history of all receptions related to
191                 this product, as well as all future receptions you are waiting
192                 from your suppliers.
193               </p>
194             </field>
195         </record>
196
197         <record id="action_deliver_move" model="ir.actions.act_window">
198             <field name="name">Deliveries</field>
199             <field name="res_model">stock.move</field>
200             <field name="type">ir.actions.act_window</field>
201             <field name="view_type">form</field>
202             <field name="view_mode">tree,form</field>
203             <field name="domain">[('picking_id.type','=','out')]</field>
204             <field name="view_id" ref="view_move_tree_reception_picking"/>
205             <field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/>
206             <field name="help" type="html">
207               <p class="oe_view_nocontent_create">
208                 Click to add a delivery order for this product.
209               </p><p>
210                 Here you will find the history of all past deliveries related to
211                 this product, as well as all the products you must deliver to
212                 customers.
213               </p>
214             </field>
215         </record>
216
217         <record model="ir.ui.view" id="product_kanban_stock_view">
218             <field name="name">Product Kanban Stock</field>
219             <field name="model">product.product</field>
220             <field name="inherit_id" ref="product.product_kanban_view"/>
221             <field name="arch" type="xml">
222                 <field name="list_price" position="after">
223                     <field name="reception_count"/>
224                     <field name="delivery_count"/>
225                 </field>
226                 <xpath expr="//div[@name='tags']" position="inside">
227                     <a name="%(action_receive_move)d" type="action" t-if="record.reception_count.raw_value>0">
228                         <t t-esc="record.reception_count.value"/> Receptions
229                     </a>
230                     <a name="%(action_deliver_move)d" type="action" t-if="record.delivery_count.raw_value>0">
231                         <t t-esc="record.delivery_count.value"/> Deliveries
232                     </a>
233                 </xpath>
234                 <ul position="inside">
235                     <li t-if="record.type.raw_value != 'service'">On hand: <field name="qty_available"/> <field name="uom_id"/></li>
236                     <li t-if="record.type.raw_value != 'service'">Forecasted: <field name="virtual_available"/> <field name="uom_id"/></li>
237                 </ul>
238             </field>
239         </record>
240
241     </data>
242 </openerp>