[MERGE] forward port of branch saas-3 up to 0f5b6cf
This commit is contained in:
commit
f722254018
|
@ -1029,7 +1029,7 @@ class purchase_order_line(osv.osv):
|
||||||
|
|
||||||
def unlink(self, cr, uid, ids, context=None):
|
def unlink(self, cr, uid, ids, context=None):
|
||||||
for line in self.browse(cr, uid, ids, context=context):
|
for line in self.browse(cr, uid, ids, context=context):
|
||||||
if line.state not in ['draft', 'cancel']:
|
if line.order_id.state in ['approved', 'done'] and line.state not in ['draft', 'cancel']:
|
||||||
raise osv.except_osv(_('Invalid Action!'), _('Cannot delete a purchase order line which is in state \'%s\'.') %(line.state,))
|
raise osv.except_osv(_('Invalid Action!'), _('Cannot delete a purchase order line which is in state \'%s\'.') %(line.state,))
|
||||||
procurement_obj = self.pool.get('procurement.order')
|
procurement_obj = self.pool.get('procurement.order')
|
||||||
procurement_ids_to_except = procurement_obj.search(cr, uid, [('purchase_line_id', 'in', ids)], context=context)
|
procurement_ids_to_except = procurement_obj.search(cr, uid, [('purchase_line_id', 'in', ids)], context=context)
|
||||||
|
|
|
@ -35,6 +35,7 @@ from openerp.addons.base.ir.ir_qweb import AssetsBundle, QWebTemplateNotFound
|
||||||
from openerp.modules import get_module_resource
|
from openerp.modules import get_module_resource
|
||||||
from openerp.tools import topological_sort
|
from openerp.tools import topological_sort
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
|
from openerp.tools import ustr
|
||||||
from openerp import http
|
from openerp import http
|
||||||
|
|
||||||
from openerp.http import request, serialize_exception as _serialize_exception
|
from openerp.http import request, serialize_exception as _serialize_exception
|
||||||
|
@ -443,14 +444,14 @@ def xml2json_from_elementtree(el, preserve_whitespaces=False):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def content_disposition(filename):
|
def content_disposition(filename):
|
||||||
filename = filename.encode('utf8')
|
filename = ustr(filename)
|
||||||
escaped = urllib2.quote(filename)
|
escaped = urllib2.quote(filename.encode('utf8'))
|
||||||
browser = request.httprequest.user_agent.browser
|
browser = request.httprequest.user_agent.browser
|
||||||
version = int((request.httprequest.user_agent.version or '0').split('.')[0])
|
version = int((request.httprequest.user_agent.version or '0').split('.')[0])
|
||||||
if browser == 'msie' and version < 9:
|
if browser == 'msie' and version < 9:
|
||||||
return "attachment; filename=%s" % escaped
|
return "attachment; filename=%s" % escaped
|
||||||
elif browser == 'safari':
|
elif browser == 'safari':
|
||||||
return "attachment; filename=\"%s\"" % filename
|
return u"attachment; filename=%s" % filename
|
||||||
else:
|
else:
|
||||||
return "attachment; filename*=UTF-8''%s" % escaped
|
return "attachment; filename*=UTF-8''%s" % escaped
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue