summaryrefslogtreecommitdiff
path: root/addons/warning
diff options
context:
space:
mode:
authorhusen daudi <hda@hda>2009-04-13 18:13:13 +0530
committerhusen daudi <hda@hda>2009-04-13 18:13:13 +0530
commitea2efc15067b3b5f6448a5bce7baae8880c7bfbb (patch)
tree921b362d733c0e601792aa59955a81cd70722f3a /addons/warning
parent7767525f1edc8c5e7dd32678ffce9ed2d19310a7 (diff)
parent4b180641bdc3356ec778a98bc10d936042a8fc12 (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.py138
-rw-r--r--addons/warning/warning_view.xml48
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>