From 229c057f3bdeacb4c646e217734030fc2f3ef7f4 Mon Sep 17 00:00:00 2001 From: "Jignesh Rathod (OpenERP)" Date: Mon, 2 Dec 2013 11:23:31 +0530 Subject: [PATCH 001/122] [IMP] Add colors in tree view of components.. bzr revid: jir@tinyerp.com-20131202055331-jk00a7cgpu55vnwf --- addons/mrp/mrp_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index 2576235586f..5c2b45cc900 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -680,7 +680,7 @@ - + From baa430d237a51c2fd05aa6d66f2661f44274bd1d Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Mon, 2 Dec 2013 14:12:04 +0530 Subject: [PATCH 002/122] [IMP] improved warning messages bzr revid: bde@tinyerp.com-20131202084204-r0br5ytoc12ysjrl --- addons/delivery/delivery.py | 2 +- addons/hr_timesheet_sheet/hr_timesheet_sheet.py | 4 ++-- addons/purchase/purchase.py | 5 ++--- .../wizard/purchase_requisition_partner.py | 2 +- addons/sale_stock/sale_stock.py | 2 +- addons/stock/stock.py | 2 +- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py index 76750212edd..c388b1dffaa 100644 --- a/addons/delivery/delivery.py +++ b/addons/delivery/delivery.py @@ -217,7 +217,7 @@ class delivery_grid(osv.osv): ok = True break if not ok: - raise osv.except_osv(_('No price available!'), _('No line matched this product or order in the chosen delivery grid.')) + raise osv.except_osv(_("Unable to fetch delivery method!"), _("Selected product in the delivery method doesn't fulfill any of the delivery grid(s) criteria.")) return price diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index 9226787e908..12eae4e6ba2 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -65,7 +65,7 @@ class hr_timesheet_sheet(osv.osv): def create(self, cr, uid, vals, *args, **argv): if 'employee_id' in vals: if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id: - raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must assign it to a user.')) + raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must relate a user to it.')) if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).product_id: raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must link the employee to a product, like \'Consultant\'.')) if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).journal_id: @@ -76,7 +76,7 @@ class hr_timesheet_sheet(osv.osv): if 'employee_id' in vals: new_user_id = self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id.id or False if not new_user_id: - raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must assign it to a user.')) + raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must relate a user to it.')) if not self._sheet_date(cr, uid, ids, forced_user_id=new_user_id): raise osv.except_osv(_('Error!'), _('You cannot have 2 timesheets that overlap!\nYou should use the menu \'My Timesheet\' to avoid this problem.')) if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).product_id: diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 75f6856709b..1befe7c693d 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -476,7 +476,7 @@ class purchase_order(osv.osv): if not acc_id: acc_id = po_line.product_id.categ_id.property_account_expense_categ.id if not acc_id: - raise osv.except_osv(_('Error!'), _('Define expense account for this company: "%s" (id:%d).') % (po_line.product_id.name, po_line.product_id.id,)) + raise osv.except_osv(_('Error!'), _('Define expense account for this product: "%s" (id:%d).') % (po_line.product_id.name, po_line.product_id.id,)) else: acc_id = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context=context).id fpos = po_line.order_id.fiscal_position or False @@ -597,8 +597,7 @@ class purchase_order(osv.osv): for inv in purchase.invoice_ids: if inv and inv.state not in ('cancel','draft'): raise osv.except_osv( - _('Unable to cancel this purchase order.'), - _('You must first cancel all receptions related to this purchase order.')) + _('You must first cancel all invoices related to this purchase order.')) self.pool.get('account.invoice') \ .signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids)) self.write(cr,uid,ids,{'state':'cancel'}) diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py index 0fee8745931..5aeb2c82ab6 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py @@ -38,7 +38,7 @@ class purchase_requisition_partner(osv.osv_memory): record_id = context and context.get('active_id', False) or False tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id, context=context) if not tender.line_ids: - raise osv.except_osv(_('Error!'), _('No Product in Tender.')) + raise osv.except_osv(_('Error!'), _('No Product in Requisition.')) return res def create_order(self, cr, uid, ids, context=None): diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index 341aaef8ca8..6135e439347 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -160,7 +160,7 @@ class sale_order(osv.osv): if s['state'] in ['draft', 'cancel']: unlink_ids.append(s['id']) else: - raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sales order, you must cancel it.\nTo do so, you must first cancel related picking for delivery orders.')) + raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sales order, you must cancel it. \nTo do so, you must first cancel all related delivery order(s).')) return osv.osv.unlink(self, cr, uid, unlink_ids, context=context) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 69d2c6e4791..524a516ba0e 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1195,7 +1195,7 @@ class stock_picking(osv.osv): return True for move in pick.move_lines: if move.state == 'done': - raise osv.except_osv(_('Error!'), _('You cannot cancel the picking as some moves have been done. You should cancel the picking lines.')) + raise osv.except_osv(_('Error!'), _('You cannot cancel the picking as some moves have been done. You should cancel remaining moves of this picking.')) return True def unlink(self, cr, uid, ids, context=None): From c88dbc8b013c47f5559a98f900d2972ba34c4187 Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Tue, 3 Dec 2013 12:04:23 +0530 Subject: [PATCH 003/122] [IMP] improved warning message bzr revid: bde@tinyerp.com-20131203063423-ne1dwsy4q0vp53hj --- addons/purchase/purchase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 1befe7c693d..f3e4af92f3a 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -596,7 +596,7 @@ class purchase_order(osv.osv): .signal_button_cancel(cr, uid, map(attrgetter('id'), purchase.picking_ids)) for inv in purchase.invoice_ids: if inv and inv.state not in ('cancel','draft'): - raise osv.except_osv( + raise osv.except_osv(_('Unable to cancel this purchase order.'), _('You must first cancel all invoices related to this purchase order.')) self.pool.get('account.invoice') \ .signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids)) From 598d42036566f6cf35b7baf00b822dc500b9486e Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Tue, 3 Dec 2013 12:08:06 +0530 Subject: [PATCH 004/122] [IMP] improved the code bzr revid: bde@tinyerp.com-20131203063806-vpu7ofijvaio1m79 --- addons/purchase/purchase.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index f3e4af92f3a..d390bb62fe5 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -596,7 +596,8 @@ class purchase_order(osv.osv): .signal_button_cancel(cr, uid, map(attrgetter('id'), purchase.picking_ids)) for inv in purchase.invoice_ids: if inv and inv.state not in ('cancel','draft'): - raise osv.except_osv(_('Unable to cancel this purchase order.'), + raise osv.except_osv( + _('Unable to cancel this purchase order.'), _('You must first cancel all invoices related to this purchase order.')) self.pool.get('account.invoice') \ .signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids)) From 3abf050afc33a4baa16431e236801b1999546a7f Mon Sep 17 00:00:00 2001 From: "Pooja Zankhariya (OpenERP)" Date: Mon, 9 Dec 2013 14:49:48 +0500 Subject: [PATCH 005/122] [IMP]Improved colors for components bzr revid: pza@tinyerp.com-20131209094948-4zne4efiijzm2ly6 --- addons/mrp/mrp_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index 5c2b45cc900..55973d6f47c 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -680,7 +680,7 @@ - + From 28a33f3a8d66b198262a05b1cb18fad28676cdf6 Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Fri, 24 Jan 2014 18:00:45 +0530 Subject: [PATCH 006/122] [IMP] improved some warning messages bzr revid: bde@tinyerp.com-20140124123045-kgovbmuhkovax068 --- addons/hr_timesheet_sheet/hr_timesheet_sheet.py | 4 ++-- addons/purchase/purchase.py | 2 +- .../wizard/purchase_requisition_partner.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index 12eae4e6ba2..c62bbfb2b57 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -65,7 +65,7 @@ class hr_timesheet_sheet(osv.osv): def create(self, cr, uid, vals, *args, **argv): if 'employee_id' in vals: if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id: - raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must relate a user to it.')) + raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must link an employee to a user.')) if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).product_id: raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must link the employee to a product, like \'Consultant\'.')) if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).journal_id: @@ -76,7 +76,7 @@ class hr_timesheet_sheet(osv.osv): if 'employee_id' in vals: new_user_id = self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).user_id.id or False if not new_user_id: - raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must relate a user to it.')) + raise osv.except_osv(_('Error!'), _('In order to create a timesheet for this employee, you must link an employee to a user.')) if not self._sheet_date(cr, uid, ids, forced_user_id=new_user_id): raise osv.except_osv(_('Error!'), _('You cannot have 2 timesheets that overlap!\nYou should use the menu \'My Timesheet\' to avoid this problem.')) if not self.pool.get('hr.employee').browse(cr, uid, vals['employee_id']).product_id: diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index e570a73a539..09cdcd4e4d5 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -476,7 +476,7 @@ class purchase_order(osv.osv): if not acc_id: acc_id = po_line.product_id.categ_id.property_account_expense_categ.id if not acc_id: - raise osv.except_osv(_('Error!'), _('Define expense account for this product: "%s" (id:%d).') % (po_line.product_id.name, po_line.product_id.id,)) + raise osv.except_osv(_('Error!'), _('Define an expense account for this product: "%s" (id:%d).') % (po_line.product_id.name, po_line.product_id.id,)) else: acc_id = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context=context).id fpos = po_line.order_id.fiscal_position or False diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py index 5aeb2c82ab6..a71b53e5ee9 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py @@ -38,7 +38,7 @@ class purchase_requisition_partner(osv.osv_memory): record_id = context and context.get('active_id', False) or False tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id, context=context) if not tender.line_ids: - raise osv.except_osv(_('Error!'), _('No Product in Requisition.')) + raise osv.except_osv(_('Error!'), _('Define products you want include in the call for bids.')) return res def create_order(self, cr, uid, ids, context=None): From f9226c63a20effce36a229fcde7baca8cce761fa Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Fri, 24 Jan 2014 18:33:27 +0530 Subject: [PATCH 007/122] [IMP] improved message bzr revid: bde@tinyerp.com-20140124130327-l1cvpcy7cpkl32bs --- .../purchase_requisition/wizard/purchase_requisition_partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py index a71b53e5ee9..fb88a21027f 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py @@ -38,7 +38,7 @@ class purchase_requisition_partner(osv.osv_memory): record_id = context and context.get('active_id', False) or False tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id, context=context) if not tender.line_ids: - raise osv.except_osv(_('Error!'), _('Define products you want include in the call for bids.')) + raise osv.except_osv(_('Error!'), _('Define product(s) you want to include in the call for bids.')) return res def create_order(self, cr, uid, ids, context=None): From 1daeaed37646208f5f1f94afe900c6f78edd621d Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Tue, 18 Feb 2014 13:32:11 +0100 Subject: [PATCH 008/122] [FIX] use copy_data rather than doing a write after that the moves are created lp bug: https://launchpad.net/bugs/1281558 fixed bzr revid: guewen.baconnier@camptocamp.com-20140218123211-3l3bvi3at1s91lfi --- addons/stock/stock.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 02fd28611e6..53f43f73083 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -727,10 +727,6 @@ class stock_picking(osv.osv): if 'invoice_state' not in default and picking_obj.invoice_state == 'invoiced': default['invoice_state'] = '2binvoiced' res = super(stock_picking, self).copy(cr, uid, id, default, context) - if res: - picking_obj = self.browse(cr, uid, res, context=context) - for move in picking_obj.move_lines: - move_obj.write(cr, uid, [move.id], {'tracking_id': False, 'prodlot_id': False, 'move_history_ids2': [(6, 0, [])], 'move_history_ids': [(6, 0, [])]}) return res def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False): @@ -1806,12 +1802,17 @@ class stock_move(osv.osv): _('Quantities, Units of Measure, Products and Locations cannot be modified on stock moves that have already been processed (except by the Administrator).')) return super(stock_move, self).write(cr, uid, ids, vals, context=context) - def copy(self, cr, uid, id, default=None, context=None): + def copy_data(self, cr, uid, id, default=None, context=None): if default is None: default = {} default = default.copy() - default.update({'move_history_ids2': [], 'move_history_ids': []}) - return super(stock_move, self).copy(cr, uid, id, default, context=context) + default.update({ + 'tracking_id': False, + 'prodlot_id': False, + 'move_history_ids2': [], + 'move_history_ids': [] + }) + return super(stock_move, self).copy_data(cr, uid, id, default, context=context) def _auto_init(self, cursor, context=None): res = super(stock_move, self)._auto_init(cursor, context=context) From 0ff86218f617f210495832b5145c40009f8fc3f0 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Mon, 24 Feb 2014 10:03:54 +0100 Subject: [PATCH 009/122] Use setdefault to allow a copy with one of this field with a value bzr revid: guewen.baconnier@camptocamp.com-20140224090354-wcsnd4wzs91w553e --- addons/stock/stock.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 53f43f73083..1e6291b739c 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1806,12 +1806,10 @@ class stock_move(osv.osv): if default is None: default = {} default = default.copy() - default.update({ - 'tracking_id': False, - 'prodlot_id': False, - 'move_history_ids2': [], - 'move_history_ids': [] - }) + default.setdefault('tracking_id', False) + default.setdefault('prodlot_id', False) + default.setdefault('move_history_ids', []) + default.setdefault('move_history_ids2', []) return super(stock_move, self).copy_data(cr, uid, id, default, context=context) def _auto_init(self, cursor, context=None): From 89df55eec1eb8e29527885ea03016274bbefc723 Mon Sep 17 00:00:00 2001 From: "Mansi Kariya (OpenERP)" Date: Thu, 13 Mar 2014 12:32:51 +0530 Subject: [PATCH 010/122] [IMP] Done Followuplevel's Configuration. bzr revid: mka@tinyerp.com-20140313070251-e7ugd8devtrls8qa --- addons/account_followup/__openerp__.py | 3 ++- .../account_followup/account_followup_view.xml | 4 +++- addons/account_followup/res_config_view.xml | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 addons/account_followup/res_config_view.xml diff --git a/addons/account_followup/__openerp__.py b/addons/account_followup/__openerp__.py index dbb4ea6583e..24dc1964f80 100644 --- a/addons/account_followup/__openerp__.py +++ b/addons/account_followup/__openerp__.py @@ -29,7 +29,7 @@ Module to automate letters for unpaid invoices, with multi-level recalls. You can define your multiple levels of recall through the menu: --------------------------------------------------------------- - Configuration / Follow-Up Levels + Configuration / Follow-up / Follow-up Levels Once it is defined, you can automatically print recalls every day through simply clicking on the menu: ------------------------------------------------------------------------------------------------------ @@ -55,6 +55,7 @@ Note that if you want to check the follow-up level for a given partner/account e 'account_followup_view.xml', 'account_followup_customers.xml', 'wizard/account_followup_print_view.xml', + 'res_config_view.xml' ], 'demo': ['account_followup_demo.xml'], 'test': [ diff --git a/addons/account_followup/account_followup_view.xml b/addons/account_followup/account_followup_view.xml index e233feb489e..55e8d099cce 100644 --- a/addons/account_followup/account_followup_view.xml +++ b/addons/account_followup/account_followup_view.xml @@ -130,8 +130,10 @@ parent="menu_finance_followup" sequence="0" id="menu_manual_reconcile_followup"/> + + - + diff --git a/addons/account_followup/res_config_view.xml b/addons/account_followup/res_config_view.xml new file mode 100644 index 00000000000..89a848562e5 --- /dev/null +++ b/addons/account_followup/res_config_view.xml @@ -0,0 +1,18 @@ + + + + + + account settings + account.config.settings + + + +