[FIX] warning: make blocking warning actually doing something (opw 607380)
Instead of raising an exception (which only interupt the call of the onchange methods), return a dictionnary to set the forbidden partner or product to an empty value. The call is not blocking in a way it forbid to create a record that uses this partner/product but it make it not possible to select it through the web interface. bzr revid: mat@openerp.com-20140507102550-sms5nbf0u7pdkci9
This commit is contained in:
parent
5f5fd653db
commit
95ba80f174
|
@ -63,14 +63,14 @@ class sale_order(osv.osv):
|
|||
message = False
|
||||
partner = self.pool.get('res.partner').browse(cr, uid, part, context=context)
|
||||
if partner.sale_warn != 'no-message':
|
||||
if partner.sale_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.sale_warn_msg)
|
||||
title = _("Warning for %s") % partner.name
|
||||
message = partner.sale_warn_msg
|
||||
warning = {
|
||||
'title': title,
|
||||
'message': message,
|
||||
}
|
||||
if partner.sale_warn == 'block':
|
||||
return {'value': {'partner_id': False}, 'warning': warning}
|
||||
|
||||
result = super(sale_order, self).onchange_partner_id(cr, uid, ids, part, context=context)
|
||||
|
||||
|
@ -92,14 +92,15 @@ class purchase_order(osv.osv):
|
|||
message = False
|
||||
partner = self.pool.get('res.partner').browse(cr, uid, part)
|
||||
if partner.purchase_warn != 'no-message':
|
||||
if partner.purchase_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.purchase_warn_msg)
|
||||
title = _("Warning for %s") % partner.name
|
||||
message = partner.purchase_warn_msg
|
||||
warning = {
|
||||
'title': title,
|
||||
'message': message
|
||||
}
|
||||
if partner.purchase_warn == 'block':
|
||||
return {'value': {'partner_id': False}, 'warning': warning}
|
||||
|
||||
result = super(purchase_order, self).onchange_partner_id(cr, uid, ids, part)
|
||||
|
||||
if result.get('warning',False):
|
||||
|
@ -126,15 +127,16 @@ class account_invoice(osv.osv):
|
|||
message = False
|
||||
partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
|
||||
if partner.invoice_warn != 'no-message':
|
||||
if partner.invoice_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.invoice_warn_msg)
|
||||
|
||||
title = _("Warning for %s") % partner.name
|
||||
message = partner.invoice_warn_msg
|
||||
warning = {
|
||||
'title': title,
|
||||
'message': message
|
||||
}
|
||||
|
||||
if partner.invoice_warn == 'block':
|
||||
return {'value': {'partner_id': False}, 'warning': warning}
|
||||
|
||||
result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id,
|
||||
date_invoice=date_invoice, payment_term=payment_term,
|
||||
partner_bank_id=partner_bank_id, company_id=company_id)
|
||||
|
@ -158,14 +160,15 @@ class stock_picking(osv.osv):
|
|||
title = False
|
||||
message = False
|
||||
if partner.picking_warn != 'no-message':
|
||||
if partner.picking_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
|
||||
title = _("Warning for %s") % partner.name
|
||||
message = partner.picking_warn_msg
|
||||
warning = {
|
||||
'title': title,
|
||||
'message': message
|
||||
}
|
||||
if partner.picking_warn == 'block':
|
||||
return {'value': {'partner_id': False}, 'warning': warning}
|
||||
|
||||
result = super(stock_picking, self).onchange_partner_in(cr, uid, ids, partner_id, context)
|
||||
if result.get('warning',False):
|
||||
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
|
||||
|
@ -188,14 +191,15 @@ class stock_picking_in(osv.osv):
|
|||
title = False
|
||||
message = False
|
||||
if partner.picking_warn != 'no-message':
|
||||
if partner.picking_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
|
||||
title = _("Warning for %s") % partner.name
|
||||
message = partner.picking_warn_msg
|
||||
warning = {
|
||||
'title': title,
|
||||
'message': message
|
||||
}
|
||||
if partner.picking_warn == 'block':
|
||||
return {'value': {'partner_id': False}, 'warning': warning}
|
||||
|
||||
result = super(stock_picking_in, self).onchange_partner_in(cr, uid, ids, partner_id, context)
|
||||
if result.get('warning',False):
|
||||
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
|
||||
|
@ -214,14 +218,15 @@ class stock_picking_out(osv.osv):
|
|||
title = False
|
||||
message = False
|
||||
if partner.picking_warn != 'no-message':
|
||||
if partner.picking_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (partner.name), partner.picking_warn_msg)
|
||||
title = _("Warning for %s") % partner.name
|
||||
message = partner.picking_warn_msg
|
||||
warning = {
|
||||
'title': title,
|
||||
'message': message
|
||||
}
|
||||
if partner.picking_warn == 'block':
|
||||
return {'value': {'partner_id': False}, 'warning': warning}
|
||||
|
||||
result = super(stock_picking_out, self).onchange_partner_in(cr, uid, ids, partner_id, context)
|
||||
if result.get('warning',False):
|
||||
warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
|
||||
|
@ -262,12 +267,12 @@ class sale_order_line(osv.osv):
|
|||
message = False
|
||||
|
||||
if product_info.sale_line_warn != 'no-message':
|
||||
if product_info.sale_line_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (product_info.name), product_info.sale_line_warn_msg)
|
||||
title = _("Warning for %s") % product_info.name
|
||||
message = product_info.sale_line_warn_msg
|
||||
warning['title'] = title
|
||||
warning['message'] = message
|
||||
if product_info.sale_line_warn == 'block':
|
||||
return {'value': {'product_id': False}, 'warning': warning}
|
||||
|
||||
result = super(sale_order_line, self).product_id_change( cr, uid, ids, pricelist, product, qty,
|
||||
uom, qty_uos, uos, name, partner_id,
|
||||
|
@ -295,12 +300,12 @@ class purchase_order_line(osv.osv):
|
|||
message = False
|
||||
|
||||
if product_info.purchase_line_warn != 'no-message':
|
||||
if product_info.purchase_line_warn == 'block':
|
||||
raise osv.except_osv(_('Alert for %s!') % (product_info.name), product_info.purchase_line_warn_msg)
|
||||
title = _("Warning for %s") % product_info.name
|
||||
message = product_info.purchase_line_warn_msg
|
||||
warning['title'] = title
|
||||
warning['message'] = message
|
||||
if product_info.purchase_line_warn == 'block':
|
||||
return {'value': {'product_id': False}, 'warning': warning}
|
||||
|
||||
result = super(purchase_order_line, self).onchange_product_id(cr, uid, ids, pricelist, product, qty, uom,
|
||||
partner_id, date_order, fiscal_position_id)
|
||||
|
|
Loading…
Reference in New Issue