[MERGE] forward port branch saas-16 up to 7e42a21ee2
This commit is contained in:
@@ -211,7 +211,7 @@ class Channel(models.Model):
|
||||
# http://blogs.technet.com/b/exchange/archive/2006/10/06/3395024.aspx
|
||||
headers['X-Auto-Response-Suppress'] = 'OOF'
|
||||
if self.alias_domain and self.alias_name:
|
||||
headers['List-Id'] = '%s.%s' % (self.alias_name, self.alias_domain)
|
||||
headers['List-Id'] = '<%s.%s>' % (self.alias_name, self.alias_domain)
|
||||
headers['List-Post'] = '<mailto:%s@%s>' % (self.alias_name, self.alias_domain)
|
||||
# Avoid users thinking it was a personal message
|
||||
# X-Forge-To: will replace To: after SMTP envelope is determined by ir.mail.server
|
||||
|
||||
@@ -11,7 +11,7 @@ from odoo.exceptions import UserError, AccessError
|
||||
from odoo.osv import expression
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
_image_dataurl = re.compile(r'(data:image/[a-z]+?);base64,([a-z0-9+/]{3,}=*)([\'"])', re.I)
|
||||
_image_dataurl = re.compile(r'(data:image/[a-z]+?);base64,([a-z0-9+/\n]{3,}=*)\n*([\'"])', re.I)
|
||||
|
||||
|
||||
class Message(models.Model):
|
||||
|
||||
@@ -227,10 +227,14 @@ class PosOrder(models.Model):
|
||||
return InvoiceLine.sudo().create(inv_line)
|
||||
|
||||
def _create_account_move_line(self, session=None, move=None):
|
||||
def _flatten_tax_and_children(taxes):
|
||||
def _flatten_tax_and_children(taxes, group_done=None):
|
||||
children = self.env['account.tax']
|
||||
for tax in taxes:
|
||||
children |= _flatten_tax_and_children(tax.children_tax_ids)
|
||||
if group_done is None:
|
||||
group_done = set()
|
||||
for tax in taxes.filtered(lambda t: t.amount_type == 'group'):
|
||||
if tax.id not in group_done:
|
||||
group_done.add(tax.id)
|
||||
children |= _flatten_tax_and_children(tax.children_tax_ids, group_done)
|
||||
return taxes + children
|
||||
|
||||
# Tricky, via the workflow, we only have one id in the ids variable
|
||||
|
||||
@@ -1277,9 +1277,14 @@ var ClientListScreenWidget = ScreenWidget.extend({
|
||||
.then(function(partner_id){
|
||||
self.saved_client_details(partner_id);
|
||||
},function(type,err){
|
||||
var error_body = _t('Your Internet connection is probably down.');
|
||||
if (err.data) {
|
||||
var except = err.data;
|
||||
error_body = except.arguments && except.arguments[0] || except.message || error_body;
|
||||
}
|
||||
self.gui.show_popup('error',{
|
||||
'title': _t('Error: Could not Save Changes'),
|
||||
'body': _t('Your Internet connection is probably down.'),
|
||||
'body': error_body,
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
@@ -365,8 +365,14 @@ class Product(models.Model):
|
||||
|
||||
def write(self, values):
|
||||
res = super(Product, self).write(values)
|
||||
if 'active' in values and not values['active'] and self.mapped('orderpoint_ids').filtered(lambda r: r.active):
|
||||
raise UserError(_('You still have some active reordering rules on this product. Please archive or delete them first.'))
|
||||
if 'active' in values and not values['active']:
|
||||
products = self.mapped('orderpoint_ids').filtered(lambda r: r.active).mapped('product_id')
|
||||
if products:
|
||||
msg = _('You still have some active reordering rules on this product. Please archive or delete them first.')
|
||||
msg += '\n\n'
|
||||
for product in products:
|
||||
msg += '- %s \n' % product.display_name
|
||||
raise UserError(msg)
|
||||
return res
|
||||
|
||||
class ProductTemplate(models.Model):
|
||||
|
||||
@@ -30,13 +30,13 @@ class AccountInvoice(models.Model):
|
||||
company_currency = inv.company_id.currency_id
|
||||
price_unit = i_line._get_anglo_saxon_price_unit()
|
||||
if inv.currency_id != company_currency:
|
||||
currency_id = inv.currency_id.id
|
||||
currency = inv.currency_id
|
||||
amount_currency = i_line._get_price(company_currency, price_unit)
|
||||
else:
|
||||
currency_id = False
|
||||
currency = False
|
||||
amount_currency = False
|
||||
|
||||
return self.env['product.product']._anglo_saxon_sale_move_lines(i_line.name, i_line.product_id, i_line.uom_id, i_line.quantity, price_unit, currency=currency_id, amount_currency=amount_currency, fiscal_position=inv.fiscal_position_id, account_analytic=i_line.account_analytic_id, analytic_tags=i_line.analytic_tag_ids)
|
||||
return self.env['product.product']._anglo_saxon_sale_move_lines(i_line.name, i_line.product_id, i_line.uom_id, i_line.quantity, price_unit, currency=currency, amount_currency=amount_currency, fiscal_position=inv.fiscal_position_id, account_analytic=i_line.account_analytic_id, analytic_tags=i_line.analytic_tag_ids)
|
||||
|
||||
|
||||
class AccountInvoiceLine(models.Model):
|
||||
|
||||
Reference in New Issue
Block a user