diff options
| author | husen daudi <hda@hda> | 2009-04-13 18:13:13 +0530 |
|---|---|---|
| committer | husen daudi <hda@hda> | 2009-04-13 18:13:13 +0530 |
| commit | ea2efc15067b3b5f6448a5bce7baae8880c7bfbb (patch) | |
| tree | 921b362d733c0e601792aa59955a81cd70722f3a /addons/warning | |
| parent | 7767525f1edc8c5e7dd32678ffce9ed2d19310a7 (diff) | |
| parent | 4b180641bdc3356ec778a98bc10d936042a8fc12 (diff) | |
Ported all bugs from trunk to stable
bzr revid: hda@hda-20090413124313-x9gdobzpxf1lkfxl
Diffstat (limited to 'addons/warning')
| -rw-r--r-- | addons/warning/warning.py | 138 | ||||
| -rw-r--r-- | addons/warning/warning_view.xml | 48 |
2 files changed, 122 insertions, 64 deletions
diff --git a/addons/warning/warning.py b/addons/warning/warning.py index d75bfb0275e..c5ee7106851 100644 --- a/addons/warning/warning.py +++ b/addons/warning/warning.py @@ -23,18 +23,33 @@ import time from osv import fields,osv +WARNING_MESSAGE = [ + ('no-message','No Message'), + ('warning','Warning'), + ('block','Blocking Message') + ] + +WARNING_HELP = 'Selecting the "Warning" option will notify user with the message, Selecting "Blocking Message" will throw an exception with the message and block the flow. The Message has to be written in the next field.' + class res_partner(osv.osv): _inherit = 'res.partner' _columns = { - 'sale_warn' : fields.boolean('Sale Order'), + 'sale_warn' : fields.selection(WARNING_MESSAGE, 'Sale Order', help=WARNING_HELP), 'sale_warn_msg' : fields.text('Message for Sale Order'), - 'purchase_warn' : fields.boolean('Purchase Order'), + 'purchase_warn' : fields.selection(WARNING_MESSAGE, 'Purchase Order', help=WARNING_HELP), 'purchase_warn_msg' : fields.text('Message for Purchase Order'), - 'picking_warn' : fields.boolean('Stock Picking'), + 'picking_warn' : fields.selection(WARNING_MESSAGE, 'Stock Picking', help=WARNING_HELP), 'picking_warn_msg' : fields.text('Message for Stock Picking'), - 'invoice_warn' : fields.boolean('Invoice'), + 'invoice_warn' : fields.selection(WARNING_MESSAGE, 'Invoice', help=WARNING_HELP), 'invoice_warn_msg' : fields.text('Message for Invoice'), } + _defaults = { + 'sale_warn' : lambda *a: 'no-message', + 'purchase_warn' : lambda *a: 'no-message', + 'picking_warn' : lambda *a: 'no-message', + 'invoice_warn' : lambda *a: 'no-message', + } + res_partner() @@ -44,19 +59,24 @@ class sale_order(osv.osv): if not part: return {'value':{'partner_invoice_id': False, 'partner_shipping_id':False, 'partner_order_id':False, 'payment_term' : False}} warning = {} - title=False - message=False + title = False + message = False partner = self.pool.get('res.partner').browse(cr, uid, part) - if partner.sale_warn: - warning={ - 'title': "Message", - 'message': partner.sale_warn_msg - } - + if partner.sale_warn != 'no-message': + if partner.sale_warn == 'block': + raise osv.except_osv(_('Alert for ' + partner.name +' !'), partner.sale_warn_msg) + + warning = { + 'title': "Warning for " + partner.name, + 'message': partner.sale_warn_msg + } + result = super(sale_order, self).onchange_partner_id(cr, uid, ids, part)['value'] + if result.get('warning',False): - warning['title']=title and title+' & '+result['warning']['title'] or result['warning']['title'] - warning['message']=message and message +' '+result['warning']['message'] or result['warning']['message'] + warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title'] + warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message'] + return {'value': result, 'warning':warning} sale_order() @@ -68,11 +88,14 @@ class purchase_order(osv.osv): return {'value':{'partner_address_id': False}} warning = {} partner = self.pool.get('res.partner').browse(cr, uid, part) - if partner.purchase_warn: - warning={ - 'title': "Message", - 'message': partner.purchase_warn_msg - } + if partner.purchase_warn != 'no-message': + if partner.purchase_warn == 'block': + raise osv.except_osv(_('Alert for ' + partner.name +' !'), partner.purchase_warn_msg) + + warning = { + 'title': "Warning for " + partner.name, + 'message': partner.purchase_warn_msg + } result = super(purchase_order, self).onchange_partner_id(cr, uid, ids, part)['value'] return {'value': result, 'warning':warning} @@ -83,6 +106,7 @@ class account_invoice(osv.osv): _inherit = 'account.invoice' def onchange_partner_id(self, cr, uid, ids, type, partner_id, date_invoice=False, payment_term=False, partner_bank_id=False): + if not partner_id: return {'value': { 'address_contact_id': False , @@ -93,11 +117,13 @@ class account_invoice(osv.osv): } warning = {} partner = self.pool.get('res.partner').browse(cr, uid, partner_id) - if partner.invoice_warn: - warning={ - 'title': "Message", - 'message': partner.invoice_warn_msg - } + if partner.invoice_warn != 'no-message': + if partner.invoice_warn == 'block': + raise osv.except_osv(_('Alert for ' + partner.name +' !'), partner.invoice_warn_msg) + warning = { + 'title': "Warning for " + partner.name, + 'message': partner.invoice_warn_msg + } result = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id, date_invoice=False, payment_term=False, partner_bank_id=False)['value'] return {'value': result, 'warning':warning} @@ -112,9 +138,11 @@ class stock_picking(osv.osv): return {} partner = self.pool.get('res.partner.address').browse(cr, uid, [partner_id])[0].partner_id warning = {} - if partner.picking_warn: - warning={ - 'title': "Message", + if partner.picking_warn != 'no-message': + if partner.picking_warn == 'block': + raise osv.except_osv(_('Alert for ' + partner.name +' !'), partner.picking_warn_msg) + warning = { + 'title': "Warning for " + partner.name, 'message': partner.picking_warn_msg } result = super(stock_picking, self).onchange_partner_in(cr, uid, context, partner_id) @@ -125,11 +153,17 @@ stock_picking() class product_product(osv.osv): _inherit = 'product.product' _columns = { - 'sale_line_warn' : fields.boolean('Sale Order Line'), + 'sale_line_warn' : fields.selection(WARNING_MESSAGE,'Sale Order Line', help=WARNING_HELP), 'sale_line_warn_msg' : fields.text('Message for Sale Order Line'), - 'purchase_line_warn' : fields.boolean('Purchase Order Line'), + 'purchase_line_warn' : fields.selection(WARNING_MESSAGE,'Purchase Order Line', help=WARNING_HELP), 'purchase_line_warn_msg' : fields.text('Message for Purchase Order Line'), } + + _defaults = { + 'sale_line_warn' : lambda *a: 'no-message', + 'purchase_line_warn' : lambda *a: 'no-message', + } + product_product() class sale_order_line(osv.osv): @@ -145,20 +179,28 @@ class sale_order_line(osv.osv): 'product_uos': []}} product_obj = self.pool.get('product.product') product_info = product_obj.browse(cr, uid, product) - title=False - message=False - if product_info.sale_line_warn: - title= "Message", - message= product_info.sale_line_warn_msg + title = False + message = False + + if product_info.sale_line_warn != 'no-message': + if product_info.sale_line_warn == 'block': + raise osv.except_osv(_('Alert for ' + product_info.name +' !'), product_info.sale_line_warn_msg) + title = "Warning for " + product_info.name + message = product_info.sale_line_warn_msg + warning['title'] = title + warning['message'] = message + result = super(sale_order_line, self).product_id_change( cr, uid, ids, pricelist, product, qty, uom, qty_uos, uos, name, partner_id, lang, update_tax, date_order, packaging, fiscal_position, flag) if title and message: warning['title']=title[0] warning['message']=message + if result.get('warning',False): - warning['title']= title and title[0]+' & '+result['warning']['title'] or result['warning']['title'] - warning['message']=message and message +'\n\n'+result['warning']['message'] or result['warning']['message'] + warning['title'] = title and title[0]+' & '+result['warning']['title'] or result['warning']['title'] + warning['message'] = message and message +'\n\n'+result['warning']['message'] or result['warning']['message'] + return {'value': result['value'], 'warning':warning} sale_order_line() @@ -172,20 +214,24 @@ class purchase_order_line(osv.osv): return {'value': {'price_unit': 0.0, 'name':'','notes':'', 'product_uom' : False}, 'domain':{'product_uom':[]}} product_obj = self.pool.get('product.product') product_info = product_obj.browse(cr, uid, product) - title=False - message=False - if product_info.purchase_line_warn: - title = "Message" - message = product_info.purchase_line_warn_msg + title = False + message = False + + if product_info.purchase_line_warn != 'no-message': + if product_info.purchase_line_warn == 'block': + raise osv.except_osv(_('Alert for ' + product_info.name +' !'), product_info.purchase_line_warn_msg) + title = "Warning for " + product_info.name + message = product_info.purchase_line_warn_msg + warning['title'] = title + warning['message'] = message result = super(purchase_order_line, self).product_id_change(cr, uid, ids, pricelist, product, qty, uom, partner_id, date_order, fiscal_position) - if title and message: - warning['title']=title[0] - warning['message']=message + if result.get('warning',False): - warning['title']= title and title[0]+' & '+result['warning']['title'] or result['warning']['title'] - warning['message']=message and message +'\n\n'+result['warning']['message'] or result['warning']['message'] + warning['title'] = title and title[0]+' & '+result['warning']['title'] or result['warning']['title'] + warning['message'] = message and message +'\n\n'+result['warning']['message'] or result['warning']['message'] + return {'value': result['value'], 'warning':warning} purchase_order_line() diff --git a/addons/warning/warning_view.xml b/addons/warning/warning_view.xml index 3f9f7f24ec2..929685016e0 100644 --- a/addons/warning/warning_view.xml +++ b/addons/warning/warning_view.xml @@ -10,18 +10,26 @@ <field name="arch" type="xml"> <notebook position="inside"> <page string="Warnings"> - <separator string="Warning on the sale order" colspan="4"/> - <field name="sale_warn"/> - <field name="sale_warn_msg" colspan="4" nolabel="1"/> - <separator string="Warning on the purchase order" colspan="4"/> - <field name="purchase_warn"/> - <field name="purchase_warn_msg" colspan="4" nolabel="1"/> - <separator string="Warning on the picking" colspan="4"/> - <field name="picking_warn"/> - <field name="picking_warn_msg" colspan="4" nolabel="1"/> - <separator string="Warning on the invoice" colspan="4"/> - <field name="invoice_warn"/> - <field name="invoice_warn_msg" colspan="4" nolabel="1"/> + <separator string="Warning on the Sale Order" colspan="4"/> + <group colspan="1" col="1"> + <field name="sale_warn" /> + </group> + <field name="sale_warn_msg" colspan="3" nolabel="1" attrs="{'required':[('sale_warn','!=','no-message')]}"/> + <separator string="Warning on the Purchase Order" colspan="4"/> + <group colspan="1" col="1"> + <field name="purchase_warn" /> + </group> + <field name="purchase_warn_msg" colspan="3" nolabel="1" attrs="{'required':[('purchase_warn','!=','no-message')]}"/> + <separator string="Warning on the Picking" colspan="4"/> + <group colspan="1" col="1"> + <field name="picking_warn" /> + </group> + <field name="picking_warn_msg" colspan="3" nolabel="1" attrs="{'required':[('picking_warn','!=','no-message')]}"/> + <separator string="Warning on the Invoice" colspan="4"/> + <group colspan="1" col="1"> + <field name="invoice_warn" /> + </group> + <field name="invoice_warn_msg" colspan="3" nolabel="1" attrs="{'required':[('invoice_warn','!=','no-message')]}"/> </page> </notebook> </field> @@ -35,12 +43,16 @@ <field name="arch" type="xml"> <notebook position="inside"> <page string="Warnings"> - <separator string="Warning when selling this product" colspan="4"/> - <field name="sale_line_warn"/> - <field name="sale_line_warn_msg" colspan="4" nolabel="1"/> - <separator string="Warning when purchasing this product" colspan="4"/> - <field name="purchase_line_warn"/> - <field name="purchase_line_warn_msg" colspan="4" nolabel="1"/> + <separator string="Warning when Selling this Product" colspan="4"/> + <group colspan="1" col="1"> + <field name="sale_line_warn"/> + </group> + <field name="sale_line_warn_msg" colspan="3" nolabel="1" attrs="{'required':[('sale_line_warn','!=','no-message')]}"/> + <separator string="Warning when Purchasing this Product" colspan="4" /> + <group colspan="1" col="1"> + <field name="purchase_line_warn"/> + </group> + <field name="purchase_line_warn_msg" colspan="3" nolabel="1" attrs="{'required':[('purchase_line_warn','!=','no-message')]}"/> </page> </notebook> </field> |
