From 1607b1ddc7793f81d477e8d8c738bc7ebcfff162 Mon Sep 17 00:00:00 2001 From: "Purnendu Singh (OpenERP)" Date: Tue, 30 Oct 2012 18:17:27 +0530 Subject: [PATCH 001/216] [FIX] product_margin: Fix header translation issue lp bug: https://launchpad.net/bugs/937856 fixed bzr revid: psi@tinyerp.com-20121030124727-tm5vdpld7oiwpjlx --- addons/product_margin/wizard/product_margin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/product_margin/wizard/product_margin.py b/addons/product_margin/wizard/product_margin.py index 61137a5e51e..8063e33707f 100644 --- a/addons/product_margin/wizard/product_margin.py +++ b/addons/product_margin/wizard/product_margin.py @@ -64,7 +64,7 @@ class product_margin(osv.osv_memory): #get the current product.margin object to obtain the values from it product_margin_obj = self.browse(cr, uid, ids, context=context)[0] - context = {'invoice_state' : product_margin_obj.invoice_state} + context.update({'invoice_state' : product_margin_obj.invoice_state}) if product_margin_obj.from_date: context.update({'date_from': product_margin_obj.from_date}) if product_margin_obj.to_date: From f82f13f44d648ea130485ee1bfea0c26f37c0b62 Mon Sep 17 00:00:00 2001 From: "Purnendu Singh (OpenERP)" Date: Tue, 30 Oct 2012 18:28:49 +0530 Subject: [PATCH 002/216] [IMP] product_margin: improve the code bzr revid: psi@tinyerp.com-20121030125849-q1rn3f5ish8gexf5 --- addons/product_margin/wizard/product_margin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/product_margin/wizard/product_margin.py b/addons/product_margin/wizard/product_margin.py index 8063e33707f..cdabc8f9964 100644 --- a/addons/product_margin/wizard/product_margin.py +++ b/addons/product_margin/wizard/product_margin.py @@ -64,11 +64,11 @@ class product_margin(osv.osv_memory): #get the current product.margin object to obtain the values from it product_margin_obj = self.browse(cr, uid, ids, context=context)[0] - context.update({'invoice_state' : product_margin_obj.invoice_state}) + context.update(invoice_state = product_margin_obj.invoice_state) if product_margin_obj.from_date: - context.update({'date_from': product_margin_obj.from_date}) + context.update(date_from = product_margin_obj.from_date) if product_margin_obj.to_date: - context.update({'date_to': product_margin_obj.to_date}) + context.update(date_to = product_margin_obj.to_date) return { 'name': _('Product Margins'), 'context': context, From 790bbfd9e785381c47cc7fa9a6f4ea6c1ff9c0a2 Mon Sep 17 00:00:00 2001 From: Saurang Suthar Date: Mon, 12 Nov 2012 12:07:20 +0530 Subject: [PATCH 003/216] [IMP]hr_holidays:replaced filter Start Date by Description bzr revid: ssu@tinyerp.com-20121112063720-p5964m4smclz9n1d --- addons/hr_holidays/hr_holidays_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index ef300741139..8b49be562fe 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -43,7 +43,7 @@ hr.holidays - + @@ -58,7 +58,7 @@ - + From fff55c47e017459aa1149d73c9958136f20ea031 Mon Sep 17 00:00:00 2001 From: Saurang Suthar Date: Mon, 12 Nov 2012 12:30:47 +0530 Subject: [PATCH 004/216] [IMP]hr_timesheet:chenged sequence of columns in tree view of Timesheet Activities bzr revid: ssu@tinyerp.com-20121112070047-ulir5krh93l4zwlo --- addons/hr_timesheet/hr_timesheet_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml index ebdd05ed59c..20e881cd9da 100644 --- a/addons/hr_timesheet/hr_timesheet_view.xml +++ b/addons/hr_timesheet/hr_timesheet_view.xml @@ -7,13 +7,13 @@ hr.analytic.timesheet + + + - - - From 951844a151aece177d2ff6ceddfa843bbba9d132 Mon Sep 17 00:00:00 2001 From: Saurang Suthar Date: Mon, 12 Nov 2012 14:38:22 +0530 Subject: [PATCH 005/216] [IMP]hr_evaluation:overwrite copy method to avoid duplicating o2m field in Appraisal Form bzr revid: ssu@tinyerp.com-20121112090822-0ernxqxolou10w9o --- addons/hr_evaluation/hr_evaluation.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py index eece0c7497e..ac7d110f8fa 100644 --- a/addons/hr_evaluation/hr_evaluation.py +++ b/addons/hr_evaluation/hr_evaluation.py @@ -265,6 +265,15 @@ class hr_evaluation(osv.osv): self.write(cr, uid, ids,{'state': 'draft'}, context=context) return True + def copy(self, cr, uid, id, default=None, context=None): + if default is None: + default = {} + if context is None: + context = {} + default = default.copy() + default['survey_request_ids'] = [] + return super(hr_evaluation, self).copy(cr, uid, id, default, context=context) + def write(self, cr, uid, ids, vals, context=None): if vals.get('employee_id'): employee_id = self.pool.get('hr.employee').browse(cr, uid, vals.get('employee_id'), context=context) From 9cb1b65cc73c815cb3e1668219e00d789882fd8d Mon Sep 17 00:00:00 2001 From: Saurang Suthar Date: Mon, 12 Nov 2012 17:37:29 +0530 Subject: [PATCH 006/216] [IMP]stock:displayed most recent stock moves on the top in list view of Stock Moves bzr revid: ssu@tinyerp.com-20121112120729-wb57o4mmdug6exlg --- addons/stock/stock.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 606cb9247d5..12b56eb6289 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1606,7 +1606,7 @@ class stock_move(osv.osv): _name = "stock.move" _description = "Stock Move" - _order = 'date_expected desc, id' + _order = 'id desc, picking_id' _log_create = False def action_partial_move(self, cr, uid, ids, context=None): From 50fa72389b9348ec330b6b4a1f5ecf1f226508b1 Mon Sep 17 00:00:00 2001 From: Saurang Suthar Date: Mon, 12 Nov 2012 19:03:21 +0530 Subject: [PATCH 007/216] [IMP]delivery:set kg as UoM with weight field in Internal Moves bzr revid: ssu@tinyerp.com-20121112133321-qkksfl7lg7423d1j --- addons/delivery/delivery_view.xml | 9 +++++++-- addons/delivery/stock.py | 13 +++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml index 9b67d6b01b9..a8a2478f339 100644 --- a/addons/delivery/delivery_view.xml +++ b/addons/delivery/delivery_view.xml @@ -243,8 +243,13 @@ - - + + + + + + + diff --git a/addons/delivery/stock.py b/addons/delivery/stock.py index c3ce236dc2e..a975314d2ab 100644 --- a/addons/delivery/stock.py +++ b/addons/delivery/stock.py @@ -66,6 +66,7 @@ class stock_picking(osv.osv): }), 'carrier_tracking_ref': fields.char('Carrier Tracking Ref', size=32), 'number_of_packages': fields.integer('Number of Packages'), + 'uom_id': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), } def _prepare_shipping_invoice_line(self, cr, uid, picking, invoice, context=None): @@ -133,6 +134,18 @@ class stock_picking(osv.osv): invoice_obj.button_compute(cr, uid, [invoice.id], context=context) return result + def _get_uom(self, cr, uid, context=None): + try: + product = self.pool.get('ir.model.data').get_object(cr, uid, 'product', 'product_uom_kgm') + except ValueError: + # a ValueError is returned if the xml id given is not found in the table ir_model_data + return False + return product.id + + _defaults = { + 'uom_id': _get_uom, + } + stock_picking() class stock_move(osv.osv): From 3f0b7feb2184e06027fe39336c42d366513b9dde Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Fri, 16 Nov 2012 12:20:05 +0530 Subject: [PATCH 008/216] [FIX]: Add date_From group by bzr revid: atp@tinyerp.com-20121116065005-uecsl54sfbilp4o7 --- addons/hr_holidays/hr_holidays_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index c9ebc43dfb7..934985068d3 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -59,6 +59,7 @@ + From 4151a1a438ca307f3f6c919c35ad9be66abad89c Mon Sep 17 00:00:00 2001 From: "Nehal Panchal (OpenERP)" <> Date: Tue, 20 Nov 2012 11:49:35 +0530 Subject: [PATCH 009/216] [FIX]hr_holiday: Fixed the encoding issue of Leave Type which is in different language than English bzr revid: mma@tinyerp.com-20121120061935-e3nrlmoy48cpzcvf --- addons/hr_holidays/report/holidays_summary_report.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py index cadd3a22ce6..b9b05b9b782 100644 --- a/addons/hr_holidays/report/holidays_summary_report.py +++ b/addons/hr_holidays/report/holidays_summary_report.py @@ -200,6 +200,7 @@ class report_custom(report_rml): date_xml.append('') date_xml.append('3.5cm%s,0.4cm\n' % (',0.4cm' * (60))) + date_xml = ''.join(date_xml) st='3.5cm' for m in range(1,len(width_dict)+1): From 33edc83689ee88ac3e44366cacbf81dcf3e417cb Mon Sep 17 00:00:00 2001 From: "Mohammed Shekha(Open ERP)" <> Date: Tue, 20 Nov 2012 12:24:27 +0530 Subject: [PATCH 010/216] [FIX]share: Fixed the issue of translation of share link of share web-addons. bzr revid: mma@tinyerp.com-20121120065427-wa6sh1suitqqzqeb --- addons/share/static/src/js/share.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js index e627b555de3..4bc4c9ab55e 100644 --- a/addons/share/static/src/js/share.js +++ b/addons/share/static/src/js/share.js @@ -1,6 +1,7 @@ openerp.share = function(session) { - + + var _t = session.web._t; var has_action_id = false; function launch_wizard(self, view, user_type, invite) { @@ -57,10 +58,10 @@ openerp.share = function(session) { this._super(this); has_share(function() { self.add_items('other', [ - { label: 'Share', + { label: _t('Share'), callback: self.on_click_share, classname: 'oe_share' }, - { label: 'Embed', + { label: _t('Embed'), callback: self.on_click_share_link, classname: 'oe_share' }, ]); From 93296bddebf1d6bf57feff8320865ab9c368d9ef Mon Sep 17 00:00:00 2001 From: "Hardik Ansodariya (OpenERP)" <> Date: Tue, 20 Nov 2012 16:10:37 +0530 Subject: [PATCH 011/216] [FIX]mrp_repair: Wrong view open when generate invoice from mrp_repair bzr revid: mma@tinyerp.com-20121120104037-1svgniojv8c5ekx8 --- addons/mrp_repair/mrp_repair_view.xml | 2 +- addons/mrp_repair/wizard/make_invoice.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml index d3a55ab32c1..0e28c9dfdb8 100644 --- a/addons/mrp_repair/mrp_repair_view.xml +++ b/addons/mrp_repair/mrp_repair_view.xml @@ -169,7 +169,7 @@ - + diff --git a/addons/mrp_repair/wizard/make_invoice.py b/addons/mrp_repair/wizard/make_invoice.py index 4f0ec8f4b32..b14230fcaf4 100644 --- a/addons/mrp_repair/wizard/make_invoice.py +++ b/addons/mrp_repair/wizard/make_invoice.py @@ -43,6 +43,7 @@ class make_invoice(osv.osv_memory): context = {} inv = self.browse(cr, uid, ids[0], context=context) order_obj = self.pool.get('mrp.repair') + mod_obj = self.pool.get('ir.model.data') newinv = order_obj.action_invoice_create(cr, uid, context['active_ids'], group=inv.group,context=context) @@ -53,6 +54,11 @@ class make_invoice(osv.osv_memory): for repair_id in context['active_ids']: wf_service.trg_validate(uid, 'mrp.repair', repair_id, 'action_invoice_create', cr) + form_res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form') + form_id = form_res and form_res[1] or False + tree_res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_tree') + tree_id = tree_res and tree_res[1] or Fals + return { 'domain': [('id','in', newinv.values())], 'name': 'Invoices', @@ -60,6 +66,7 @@ class make_invoice(osv.osv_memory): 'view_mode': 'tree,form', 'res_model': 'account.invoice', 'view_id': False, + 'views': [(tree_id, 'tree'),(form_id, 'form')], 'context': "{'type':'out_invoice'}", 'type': 'ir.actions.act_window' } From 322427460027a343c9b785a95ceedae01b5b404b Mon Sep 17 00:00:00 2001 From: Dhruti Shastri <> Date: Tue, 20 Nov 2012 18:43:12 +0530 Subject: [PATCH 012/216] [FIX]account_analytic_analysis: account Report for Sales Print False if the value is not specified in respective fields bzr revid: mma@tinyerp.com-20121120131312-oia9o2o07fjh52bv --- .../account_analytic_analysis/cron_account_analytic_account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account_analytic_analysis/cron_account_analytic_account.py b/addons/account_analytic_analysis/cron_account_analytic_account.py index 065fdc5b907..41d5467157a 100644 --- a/addons/account_analytic_analysis/cron_account_analytic_account.py +++ b/addons/account_analytic_analysis/cron_account_analytic_account.py @@ -32,7 +32,7 @@ Here is the list of contracts to renew: % endif - Dates: ${account.date_start} to ${account.date and account.date or '???'} - Contacts: - ${account.partner_id.name}, ${account.partner_id.phone}, ${account.partner_id.email} + ${account.partner_id.name}, ${account.partner_id.phone or ''}, ${account.partner_id.email or ''} % endfor % endfor From a232b8559002ecae2ea10f863a1d02c32bc72ddb Mon Sep 17 00:00:00 2001 From: "pankita shah (Open ERP)" Date: Wed, 21 Nov 2012 12:47:18 +0530 Subject: [PATCH 013/216] [IMP] in height,width,length add cm and imrove stock Journal, and imrove date_done field in incomming_shippment,internal moves and delivery order bzr revid: shp@tinyerp.com-20121121071718-cl9dbck5nd37i9ei --- addons/product/product.py | 14 ++++++++++ addons/product/product_view.xml | 46 +++++++++++++++++++-------------- addons/stock/product.py | 2 +- addons/stock/stock.py | 4 ++- 4 files changed, 44 insertions(+), 22 deletions(-) diff --git a/addons/product/product.py b/addons/product/product.py index 1333c9581a7..1c45ee7f24b 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -784,6 +784,9 @@ class product_packaging(osv.osv): 'height': fields.float('Height', help='The height of the package'), 'width': fields.float('Width', help='The width of the package'), 'length': fields.float('Length', help='The length of the package'), + 'uom_id': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), + 'uom_id1': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), + 'uom_id2': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), } @@ -809,10 +812,21 @@ class product_packaging(osv.osv): res = cr.fetchone() return (res and res[0]) or False + def _get_uom(self, cr, uid, context=None): + try: + product = self.pool.get('ir.model.data').get_object(cr, uid, 'product', 'product_uom_cm') + except ValueError: + # a ValueError is returned if the xml id given is not found in the table ir_model_data + return False + return product.id + _defaults = { 'rows' : lambda *a : 3, 'sequence' : lambda *a : 1, 'ul' : _get_1st_ul, + 'uom_id': _get_uom, + 'uom_id1': _get_uom, + 'uom_id2': _get_uom, } def checksum(ean): diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 7b4197305d4..e92331d77a0 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -547,26 +547,32 @@ product.packaging
- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/addons/stock/product.py b/addons/stock/product.py index 4d955495c28..d535f85bc64 100644 --- a/addons/stock/product.py +++ b/addons/stock/product.py @@ -530,7 +530,7 @@ class product_category(osv.osv): _columns = { 'property_stock_journal': fields.property('account.journal', relation='account.journal', type='many2one', - string='Stock journal', view_load=True, + string='Stock Journal', view_load=True, help="When doing real-time inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed."), 'property_stock_account_input_categ': fields.property('account.account', type='many2one', relation='account.account', diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 03a9ede7221..a3dfcd079ff 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -655,7 +655,7 @@ class stock_picking(osv.osv): 'min_date': fields.function(get_min_max_date, fnct_inv=_set_minimum_date, multi="min_max_date", store=True, type='datetime', string='Scheduled Time', select=1, help="Scheduled time for the shipment to be processed"), 'date': fields.datetime('Time', help="Creation time, usually the time of the order.", select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}), - 'date_done': fields.datetime('Date Done', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}), + 'date_done': fields.datetime('Date of Transfer', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}), 'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date", store=True, type='datetime', string='Max. Expected Date', select=2), 'move_lines': fields.one2many('stock.move', 'picking_id', 'Internal Moves', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}), @@ -3035,6 +3035,7 @@ class stock_picking_in(osv.osv): _columns = { 'backorder_id': fields.many2one('stock.picking.in', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True), + 'date_done': fields.datetime('Date of Reception', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}), 'state': fields.selection( [('draft', 'Draft'), ('auto', 'Waiting Another Operation'), @@ -3080,6 +3081,7 @@ class stock_picking_out(osv.osv): _columns = { 'backorder_id': fields.many2one('stock.picking.out', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True), + 'date_done': fields.datetime('Date of Delivery ', help="Date of Completion", states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}), 'state': fields.selection( [('draft', 'Draft'), ('auto', 'Waiting Another Operation'), From b74c00568d0e3a077b13d779d896def4487475ac Mon Sep 17 00:00:00 2001 From: " Ravi Gohil (OpenERP)" <> Date: Wed, 21 Nov 2012 15:26:09 +0530 Subject: [PATCH 014/216] [FIX]base: When you use Send to the server from OpenOffice with user other than Administrator(uid=1) you will notice a warning message saying Access Error and report will not be seen at destination model bzr revid: mma@tinyerp.com-20121121095609-v9qk2o7pah2a9k56 --- .../plugin/openerp_report_designer.zip | Bin 116295 -> 116306 bytes .../bin/script/SendToServer.py | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/base_report_designer/plugin/openerp_report_designer.zip b/addons/base_report_designer/plugin/openerp_report_designer.zip index 85c9150cb73bf7eed3ff9fe36057527cb6b4edb1..855fef319fb8c906fa471f912ebbd26de9d24951 100644 GIT binary patch delta 7955 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 delta 7906 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 C+&b?7 diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py index 4568620dc8c..86cf24edaa4 100644 --- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py +++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/SendToServer.py @@ -166,7 +166,8 @@ class SendtoServer(unohelper.Base, XJobExecutor): 'model': docinfo.getUserFieldValue(3), 'value': 'ir.actions.report.xml,'+str(id), 'key2': 'client_print_multi', - 'object': True + 'object': True, + 'user_id': uid } res = self.sock.execute(database, uid, self.password, 'ir.values' , 'create',rec ) else : From 28a31cd664ebdfad491544f0e38e34841116d3d8 Mon Sep 17 00:00:00 2001 From: "Nimesh (Open ERP)" Date: Wed, 21 Nov 2012 16:44:46 +0530 Subject: [PATCH 015/216] [FIX] search by date. bzr revid: nco@tinyerp.com-20121121111446-5u8mh0i8e39uncf7 --- addons/hr_holidays/hr_holidays_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 934985068d3..4135f9ee24e 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -43,6 +43,7 @@ hr.holidays + From 991f538fb1797292920ca5272f2cf886a2685449 Mon Sep 17 00:00:00 2001 From: "pankita shah (Open ERP)" Date: Thu, 22 Nov 2012 14:37:31 +0530 Subject: [PATCH 016/216] [IMP] cm,kg with height,length,widthand wigth bzr revid: shp@tinyerp.com-20121122090731-ozrp4wudie5e2row --- addons/delivery/delivery_view.xml | 2 +- addons/delivery/stock.py | 12 ++---------- addons/product/product.py | 21 +++++++-------------- addons/product/product_view.xml | 6 +++--- 4 files changed, 13 insertions(+), 28 deletions(-) diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml index a8a2478f339..006e70a0324 100644 --- a/addons/delivery/delivery_view.xml +++ b/addons/delivery/delivery_view.xml @@ -248,7 +248,7 @@
- +
diff --git a/addons/delivery/stock.py b/addons/delivery/stock.py index a975314d2ab..a84a22654b2 100644 --- a/addons/delivery/stock.py +++ b/addons/delivery/stock.py @@ -66,7 +66,7 @@ class stock_picking(osv.osv): }), 'carrier_tracking_ref': fields.char('Carrier Tracking Ref', size=32), 'number_of_packages': fields.integer('Number of Packages'), - 'uom_id': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), + 'product_uom_weight': fields.many2one('product.uom', 'Unit of Measure', required=True,readonly="1",help="Unit of Measure (Unit of Measure) is the unit of measurement for Duration",), } def _prepare_shipping_invoice_line(self, cr, uid, picking, invoice, context=None): @@ -134,16 +134,8 @@ class stock_picking(osv.osv): invoice_obj.button_compute(cr, uid, [invoice.id], context=context) return result - def _get_uom(self, cr, uid, context=None): - try: - product = self.pool.get('ir.model.data').get_object(cr, uid, 'product', 'product_uom_kgm') - except ValueError: - # a ValueError is returned if the xml id given is not found in the table ir_model_data - return False - return product.id - _defaults = { - 'uom_id': _get_uom, + 'product_uom_weight': lambda self,cr,uid,c: self.pool.get('product.uom').search(cr, uid, [('name', '=', _('kg'))], context=c)[0], } stock_picking() diff --git a/addons/product/product.py b/addons/product/product.py index 1c45ee7f24b..6bee0567480 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -784,9 +784,9 @@ class product_packaging(osv.osv): 'height': fields.float('Height', help='The height of the package'), 'width': fields.float('Width', help='The width of the package'), 'length': fields.float('Length', help='The length of the package'), - 'uom_id': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), - 'uom_id1': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), - 'uom_id2': fields.related('uom_id', 'product_id', type='many2one', relation='product.uom', string='UoM', readonly=True), + 'product_uom_width': fields.many2one('product.uom', 'Unit of Measure',readonly="1", required=True, help="Unit of Measure (Unit of Measure) is the unit of measurement for Duration",), + 'product_uom_length': fields.many2one('product.uom', 'Unit of Measure', readonly="1",required=True, help="Unit of Measure (Unit of Measure) is the unit of measurement for Duration",), + 'product_uom_height': fields.many2one('product.uom', 'Unit of Measure',readonly="1", required=True, help="Unit of Measure (Unit of Measure) is the unit of measurement for Duration",), } @@ -812,21 +812,14 @@ class product_packaging(osv.osv): res = cr.fetchone() return (res and res[0]) or False - def _get_uom(self, cr, uid, context=None): - try: - product = self.pool.get('ir.model.data').get_object(cr, uid, 'product', 'product_uom_cm') - except ValueError: - # a ValueError is returned if the xml id given is not found in the table ir_model_data - return False - return product.id - _defaults = { 'rows' : lambda *a : 3, 'sequence' : lambda *a : 1, 'ul' : _get_1st_ul, - 'uom_id': _get_uom, - 'uom_id1': _get_uom, - 'uom_id2': _get_uom, + 'product_uom_width': lambda self,cr,uid,c: self.pool.get('product.uom').search(cr, uid, [('name', '=', _('cm'))], context=c)[0], + 'product_uom_length': lambda self,cr,uid,c: self.pool.get('product.uom').search(cr, uid, [('name', '=', _('cm'))], context=c)[0], + 'product_uom_height': lambda self,cr,uid,c: self.pool.get('product.uom').search(cr, uid, [('name', '=', _('cm'))], context=c)[0] + } def checksum(ean): diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index e92331d77a0..5f1c55c6bdb 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -564,11 +564,11 @@ - + - + - + From f6e0139229f0821febb12207ec5791545f7d99e5 Mon Sep 17 00:00:00 2001 From: "pankita shah (Open ERP)" Date: Thu, 22 Nov 2012 16:47:25 +0530 Subject: [PATCH 017/216] [IMP] view of product and additiona info tab in internal moves bzr revid: shp@tinyerp.com-20121122111725-nkbap0et70s3m2nm --- addons/delivery/delivery_view.xml | 13 ++++++------- addons/product/product_view.xml | 22 ++++++++++++++++------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml index 006e70a0324..6f124ebfcba 100644 --- a/addons/delivery/delivery_view.xml +++ b/addons/delivery/delivery_view.xml @@ -243,13 +243,12 @@ - - - - - - - + diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 5f1c55c6bdb..df4d72715eb 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -563,12 +563,22 @@ - - - - - - +