diff --git a/addons/stock/__terp__.py b/addons/stock/__terp__.py
index 07cfeccf0b5..1248794fe50 100644
--- a/addons/stock/__terp__.py
+++ b/addons/stock/__terp__.py
@@ -50,6 +50,8 @@ Thanks to the double entry management, the inventory controlling is powerful and
"wizard/stock_location_product_view.xml",
"wizard/stock_inventory_line_split_view.xml",
"wizard/stock_change_standard_price_view.xml",
+ "wizard/stock_inventory_merge_view.xml",
+ "wizard/stock_traceability_view.xml",
"stock_workflow.xml",
"stock_incoterms.xml",
"stock_wizard.xml",
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index ec07a2f9845..c32eddfbf4d 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -338,31 +338,31 @@
-
+ string="Upstream traceability"/-->
-
+ string="Downstream traceability"/-->
-
+ string="Upstream traceability"/-->
-
+ string="Downstream traceability"/-->
-
+
stock.location.form
diff --git a/addons/stock/wizard/__init__.py b/addons/stock/wizard/__init__.py
index 2d085edcef5..9088e95ca1d 100644
--- a/addons/stock/wizard/__init__.py
+++ b/addons/stock/wizard/__init__.py
@@ -29,13 +29,11 @@ import wizard_return
import wizard_split_lot_line
import wizard_ups
import inventory_merge
-
import stock_inventory_set_stock_zero
import stock_fill_inventory
import stock_inventory_line_split
import stock_invoice_onshipping
import stock_location_product
-
import stock_change_standard_price
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_traceability.py b/addons/stock/wizard/stock_traceability.py
index 58cc26a3224..120fa658b1c 100644
--- a/addons/stock/wizard/stock_traceability.py
+++ b/addons/stock/wizard/stock_traceability.py
@@ -23,63 +23,91 @@ import wizard
import netsvc
import time
import pooler
-
from osv import osv
-def action_traceability(type='move_history_ids', field='tracking_id'):
- def open_tab(self, cr, uid, data, context):
- obj = pooler.get_pool(cr.dbname).get('stock.move')
- ids = obj.search(cr, uid, [(field, 'in', data['ids'])])
- cr.execute('select id from ir_ui_view where model=%s and field_parent=%s and type=%s', ('stock.move', type, 'tree'))
+class action_traceability(osv.osv_memory):
+ """
+ This class defines a function action_traceability for wizard
+
+ """
+ _name = "action.traceability"
+ _description = "Action traceability "
+
+ def action_traceability(self, cr, uid, ids, context={}):
+ """
+ It traces the information of a product
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return: A dictionary of values
+
+ """
+ type1 = context['type'] or 'move_history_ids'
+ field = context['field'] or 'tracking_id'
+ obj = self.pool.get('stock.move')
+ ids = obj.search(cr, uid, [(field, 'in',context['active_ids'])])
+ cr.execute('select id from ir_ui_view where model=%s and field_parent=%s and type=%s', ('stock.move', type1, 'tree'))
view_id = cr.fetchone()[0]
value = {
'domain': "[('id','in',["+','.join(map(str, ids))+"])]",
- 'name': ((type=='move_history_ids') and 'Upstream Traceability') or 'Downstream Traceability',
+ 'name': ((type1=='move_history_ids') and 'Upstream Traceability') or 'Downstream Traceability',
'view_type': 'tree',
'res_model': 'stock.move',
- 'field_parent': type,
+ 'field_parent': type1,
'view_id': (view_id,'View'),
'type': 'ir.actions.act_window'
- }
+ }
return value
- return open_tab
+
+action_traceability()
-class wiz_journal(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'action', 'action': action_traceability('move_history_ids2'), 'state':'end'}
- }
- }
-wiz_journal('stock.traceability.downstream')
+class stock_traceability_downstream(osv.osv_memory):
+ """
+ This class is defined for Stock traceability downstream wizard
-class wiz_journal2(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'action', 'action': action_traceability(), 'state':'end'}
- }
- }
-wiz_journal2('stock.traceability.upstream')
+ """
+ _name = "stock.traceability.downstream"
+ _inherit = "action.traceability"
+ _description = "Stock traceability downstream"
+
+stock_traceability_downstream()
-class wiz_journal3(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'action', 'action': action_traceability(field='prodlot_id'), 'state':'end'}
- }
- }
-wiz_journal3('stock.traceability.lot.upstream')
+class stock_traceability_upstream(osv.osv_memory):
+ """
+ This class is defined for Stock traceability upstream wizard
-class wiz_journal4(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type': 'action', 'action': action_traceability('move_history_ids2', 'prodlot_id'), 'state':'end'}
- }
- }
-wiz_journal4('stock.traceability.lot.downstream')
+ """
+ _name = "stock.traceability.upstream"
+ _inherit = "action.traceability"
+ _description = "Stock traceability upstream"
+
+stock_traceability_upstream()
+class stock_traceability_lot_upstream(osv.osv_memory):
+ """
+ This class is defined for Stock traceability lot upstream wizard
+
+ """
+ _name = "stock.traceability.lot.upstream"
+ _inherit = "action.traceability"
+ _description = "Stock traceability lot upstream"
+
+stock_traceability_lot_upstream()
+
+class stock_traceability_lot_downstream(osv.osv_memory):
+ """
+ This class is defined for Stock traceability lot downstream wizard
+
+ """
+ _name = "stock.traceability.lot.downstream"
+ _inherit = "action.traceability"
+ _description = "Stock traceability lot downstream"
+
+stock_traceability_lot_downstream()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/stock_traceability_view.xml b/addons/stock/wizard/stock_traceability_view.xml
new file mode 100644
index 00000000000..4a1f6b11b25
--- /dev/null
+++ b/addons/stock/wizard/stock_traceability_view.xml
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+ Stock traceability downstream
+ stock.traceability.downstream
+ form
+
+
+
+
+
+
+
+
+
+
+ Stock traceability upstream
+ stock.traceability.upstream
+ form
+
+
+
+
+
+
+
+
+
+
+ Stock traceability lot upstream
+ stock.traceability.lot.upstream
+ form
+
+
+
+
+
+
+
+
+
+
+ Stock traceability lot downstream
+ stock.traceability.lot.downstream
+ form
+
+
+
+
+
+
+
+
+
+