diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index e07cada8e2e..036a2c975ea 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -55,7 +55,7 @@ class AccountMove(models.Model): total_amount += amount for partial_line in (line.matched_debit_ids + line.matched_credit_ids): total_reconciled += partial_line.amount - if total_amount == 0.0: + if float_is_zero(total_amount, precision_rounding=move.currency_id.rounding): move.matched_percentage = 1.0 else: move.matched_percentage = total_reconciled / total_amount diff --git a/addons/account_tax_cash_basis/tax_cash_basis.py b/addons/account_tax_cash_basis/tax_cash_basis.py index b68e348c59e..242356f4967 100644 --- a/addons/account_tax_cash_basis/tax_cash_basis.py +++ b/addons/account_tax_cash_basis/tax_cash_basis.py @@ -53,7 +53,7 @@ class AccountPartialReconcileCashBasis(models.Model): #create reporting issues. Not sure of the behavior to implement in that case, though. # amount to write is the current cash_basis amount minus the one before the reconciliation matched_percentage = value_before_reconciliation[move.id] - amount = (line.credit_cash_basis - line.debit_cash_basis) - (line.credit - line.debit) * matched_percentage + amount = line.currency_id.round((line.credit_cash_basis - line.debit_cash_basis) - (line.credit - line.debit) * matched_percentage) if not self._check_tax_exigible(line): if line.tax_line_id and line.tax_line_id.use_cash_basis: # group by line account @@ -73,15 +73,15 @@ class AccountPartialReconcileCashBasis(models.Model): for tax in line.tax_ids: line_to_create.append((0, 0, { 'name': '/', - 'debit': line.debit_cash_basis - line.debit * matched_percentage, - 'credit': line.credit_cash_basis - line.credit * matched_percentage, + 'debit': line.currency_id.round(line.debit_cash_basis - line.debit * matched_percentage), + 'credit': line.currency_id.round(line.credit_cash_basis - line.credit * matched_percentage), 'account_id': line.account_id.id, 'tax_ids': [(6, 0, [tax.id])], })) line_to_create.append((0, 0, { 'name': '/', - 'credit': line.debit_cash_basis - line.debit * matched_percentage, - 'debit': line.credit_cash_basis - line.credit * matched_percentage, + 'credit': line.currency_id.round(line.debit_cash_basis - line.debit * matched_percentage), + 'debit': line.currency_id.round(line.credit_cash_basis - line.credit * matched_percentage), 'account_id': line.account_id.id, })) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index c2d28136620..bb83a59e37f 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -485,7 +485,9 @@ class PurchaseOrder(models.Model): @api.multi def action_set_date_planned(self): for order in self: - order.order_line.update({'date_planned': order.date_planned}) + #DO NOT FORWARD PORT + for line in order.order_line: + line.update({'date_planned': order.date_planned}) class PurchaseOrderLine(models.Model): diff --git a/addons/web/static/src/js/views/pivot_view.js b/addons/web/static/src/js/views/pivot_view.js index be63f02248d..a938163e7ff 100644 --- a/addons/web/static/src/js/views/pivot_view.js +++ b/addons/web/static/src/js/views/pivot_view.js @@ -275,9 +275,10 @@ var PivotView = View.extend({ col_domain = this.headers[col_id].domain, context = _.omit(_.clone(this.context), 'group_by'); - var views = _.filter(this.options.action.views, function (view) { - return view[1] === 'form' || view[1] === 'list'; - }); + var views = [ + _find_view_info.call(this, "list"), + _find_view_info.call(this, "form"), + ]; return this.do_action({ type: 'ir.actions.act_window', @@ -290,6 +291,12 @@ var PivotView = View.extend({ context: context, domain: this.domain.concat(row_domain, col_domain), }); + + function _find_view_info(view_type) { + return _.find(this.options.action.views, function (view) { + return view[1] === view_type; + }) || [false, view_type]; + } }, on_measure_row_click: function (event) { var $target = $(event.target), diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 39ab098b96c..dc0123eecfa 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -564,12 +564,12 @@ class website(osv.osv): def search_pages(self, cr, uid, ids, needle=None, limit=None, context=None): name = re.sub(r"^/p(a(g(e(/(w(e(b(s(i(t(e(\.)?)?)?)?)?)?)?)?)?)?)?)?", "", needle or "") + name = slugify(name, max_length=50) res = [] for page in self.enumerate_pages(cr, uid, ids, query_string=name, context=context): - if needle in page['loc']: - res.append(page) - if len(res) == limit: - break + res.append(page) + if len(res) == limit: + break return res def image_url(self, cr, uid, record, field, size=None, context=None):