diff --git a/addons/mrp/__terp__.py b/addons/mrp/__terp__.py index 10fadb00bc6..a69e8ce4025 100644 --- a/addons/mrp/__terp__.py +++ b/addons/mrp/__terp__.py @@ -67,6 +67,7 @@ 'wizard/orderpoint_procurement_view.xml', 'wizard/mrp_price_view.xml', 'wizard/mrp_workcenter_load_view.xml', +# 'wizard/mrp_track_prod_view.xml', 'mrp_view.xml', 'wizard/schedulers_all_view.xml', 'mrp_wizard.xml', diff --git a/addons/mrp/wizard/__init__.py b/addons/mrp/wizard/__init__.py index 012677a9ca0..045d7f1bd71 100644 --- a/addons/mrp/wizard/__init__.py +++ b/addons/mrp/wizard/__init__.py @@ -25,7 +25,7 @@ import mrp_procurement import schedulers_all import mrp_price import mrp_workcenter_load -import wizard_track_prod +#import mrp_track_prod import change_production_qty import make_procurement_product diff --git a/addons/mrp/wizard/mrp_procurement.py b/addons/mrp/wizard/mrp_procurement.py index 77728c05517..1c3f3dd5c8a 100644 --- a/addons/mrp/wizard/mrp_procurement.py +++ b/addons/mrp/wizard/mrp_procurement.py @@ -35,6 +35,13 @@ class procurement_compute(osv.osv_memory): return {} def procure_calculation(self, cr, uid, ids, context): + """ + @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 + """ threaded_calculation = threading.Thread(target=self._procure_calculation_procure, args=(cr, uid, ids, context)) threaded_calculation.start() return {} diff --git a/addons/mrp/wizard/mrp_track_prod.py b/addons/mrp/wizard/mrp_track_prod.py new file mode 100644 index 00000000000..52e5508317a --- /dev/null +++ b/addons/mrp/wizard/mrp_track_prod.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import osv, fields + +class mrp_track_move(osv.osv_memory): + _name = 'mrp.production.track' + _description = 'Production Track' + + def view_init(self, cr, uid, fields_list, context=None): + """ + Creates view dynamically and adding fields at runtime. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param context: A standard dictionary + @return: New arch of view with new columns. + """ + res = super(mrp_track_move, self).view_init(cr, uid, fields_list, context=context) + record_id = context and context.get('active_id', False) or False + if record_id: + prod_obj = self.pool.get('mrp.production') + try: + prod = prod_obj.browse(cr, uid, record_id) + for m in [line for line in prod.move_created_ids]: + if 'track%s'%(m.id) not in self._columns: + self._columns['track%s'%(m.id)] = fields.boolean(string=m.product_id.name) + except: + return res + return res + + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + """ + Changes the view dynamically + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param context: A standard dictionary + @return: New arch of view. + """ + res = super(mrp_track_move, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False) + record_id = context and context.get('active_id', False) or False + if record_id: + prod_obj = self.pool.get('mrp.production') + prod = prod_obj.browse(cr, uid, record_id) + try: + if prod.state != 'done': + res['arch'] = '''
+