From be4d40e5dc5653d567978288046fb8961184f1fe Mon Sep 17 00:00:00 2001 From: Parthiv Patel Date: Tue, 28 Sep 2021 09:36:03 +0000 Subject: [PATCH] [PATCH] Upstream patch - 28092021 --- addons/account/views/account_move_views.xml | 2 +- addons/l10n_in/models/account_invoice.py | 6 ++--- addons/link_tracker/models/link_tracker.py | 6 ++--- .../tests/test_reordering_rule.py | 2 ++ .../tests/test_sale_stock_margin.py | 7 +++--- addons/website/static/src/js/content/menu.js | 6 ++--- .../static/src/js/crm_partner_assign.js | 24 ++++++++++++------- .../website_crm_partner_assign_templates.xml | 8 +++---- addons/website_links/models/link_tracker.py | 8 +++++++ 9 files changed, 43 insertions(+), 26 deletions(-) diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml index 7c027c9ab4..5349a6cedd 100644 --- a/addons/account/views/account_move_views.xml +++ b/addons/account/views/account_move_views.xml @@ -91,7 +91,7 @@ account.move.line.kanban account.move.line - + diff --git a/addons/l10n_in/models/account_invoice.py b/addons/l10n_in/models/account_invoice.py index e967e835b4..2e31598aef 100644 --- a/addons/l10n_in/models/account_invoice.py +++ b/addons/l10n_in/models/account_invoice.py @@ -58,7 +58,7 @@ class AccountMove(models.Model): res = super()._get_tax_grouping_key_from_tax_line(tax_line) if tax_line.move_id.journal_id.company_id.country_id.code == 'IN': res['product_id'] = tax_line.product_id.id - res['product_uom_id'] = tax_line.product_uom_id + res['product_uom_id'] = tax_line.product_uom_id.id return res @api.model @@ -67,7 +67,7 @@ class AccountMove(models.Model): res = super()._get_tax_grouping_key_from_base_line(base_line, tax_vals) if base_line.move_id.journal_id.company_id.country_id.code == 'IN': res['product_id'] = base_line.product_id.id - res['product_uom_id'] = base_line.product_uom_id + res['product_uom_id'] = base_line.product_uom_id.id return res @api.model @@ -77,7 +77,7 @@ class AccountMove(models.Model): tax_key += [ line.product_id.id, - line.product_uom_id, + line.product_uom_id.id, ] return tax_key diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py index d8353c447f..d1ae15deb2 100644 --- a/addons/link_tracker/models/link_tracker.py +++ b/addons/link_tracker/models/link_tracker.py @@ -68,12 +68,12 @@ class LinkTracker(models.Model): @api.depends('code') def _compute_short_url(self): for tracker in self: - base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') - tracker.short_url = urls.url_join(base_url, '/r/%(code)s' % {'code': tracker.code}) + tracker.short_url = urls.url_join(tracker.short_url_host, '%(code)s' % {'code': tracker.code}) def _compute_short_url_host(self): for tracker in self: - tracker.short_url_host = self.env['ir.config_parameter'].sudo().get_param('web.base.url') + '/r/' + base_url = tracker.get_base_url() + tracker.short_url_host = urls.url_join(base_url, '/r/') def _compute_code(self): for tracker in self: diff --git a/addons/purchase_stock/tests/test_reordering_rule.py b/addons/purchase_stock/tests/test_reordering_rule.py index ebb18411d5..1d8e6df421 100644 --- a/addons/purchase_stock/tests/test_reordering_rule.py +++ b/addons/purchase_stock/tests/test_reordering_rule.py @@ -3,6 +3,7 @@ from datetime import datetime as dt from datetime import timedelta as td +from freezegun import freeze_time from flectra import SUPERUSER_ID from flectra.tests import Form @@ -10,6 +11,7 @@ from flectra.tests.common import SavepointCase from flectra.exceptions import UserError +@freeze_time("2021-01-14 09:12:15") class TestReorderingRule(SavepointCase): @classmethod def setUpClass(cls): diff --git a/addons/sale_stock_margin/tests/test_sale_stock_margin.py b/addons/sale_stock_margin/tests/test_sale_stock_margin.py index e520950629..12fc1618bc 100644 --- a/addons/sale_stock_margin/tests/test_sale_stock_margin.py +++ b/addons/sale_stock_margin/tests/test_sale_stock_margin.py @@ -171,12 +171,13 @@ class TestSaleStockMargin(TestStockValuationCommon): company_currency = self.env.company.currency_id other_currency = self.env.ref('base.EUR') if company_currency == self.env.ref('base.USD') else self.env.ref('base.USD') - ResCurrencyRate.create({'currency_id': company_currency.id, 'rate': 1}) - other_currency_rate = ResCurrencyRate.search([('name', '=', fields.Date.today()), ('currency_id', '=', other_currency.id)]) + date = fields.Date.today() + ResCurrencyRate.create({'currency_id': company_currency.id, 'rate': 1, 'name': date}) + other_currency_rate = ResCurrencyRate.search([('name', '=', date), ('currency_id', '=', other_currency.id)]) if other_currency_rate: other_currency_rate.rate = 2 else: - ResCurrencyRate.create({'currency_id': other_currency.id, 'rate': 2}) + ResCurrencyRate.create({'currency_id': other_currency.id, 'rate': 2, 'name': date}) so = self._create_sale_order() so.pricelist_id = self.env['product.pricelist'].create({ diff --git a/addons/website/static/src/js/content/menu.js b/addons/website/static/src/js/content/menu.js index 8f46d7783d..4bd3142719 100644 --- a/addons/website/static/src/js/content/menu.js +++ b/addons/website/static/src/js/content/menu.js @@ -255,7 +255,7 @@ publicWidget.registry.StandardAffixedHeader = BaseAnimatedHeader.extend({ }); publicWidget.registry.FixedHeader = BaseAnimatedHeader.extend({ - selector: 'header.o_header_fixed', + selector: 'header.o_header_fixed:not(.o_header_sidebar)', //-------------------------------------------------------------------------- // Handlers @@ -367,7 +367,7 @@ const BaseDisappearingHeader = publicWidget.registry.FixedHeader.extend({ }); publicWidget.registry.DisappearingHeader = BaseDisappearingHeader.extend({ - selector: 'header.o_header_disappears', + selector: 'header.o_header_disappears:not(.o_header_sidebar)', //-------------------------------------------------------------------------- // Private @@ -390,7 +390,7 @@ publicWidget.registry.DisappearingHeader = BaseDisappearingHeader.extend({ }); publicWidget.registry.FadeOutHeader = BaseDisappearingHeader.extend({ - selector: 'header.o_header_fade_out', + selector: 'header.o_header_fade_out:not(.o_header_sidebar)', //-------------------------------------------------------------------------- // Private diff --git a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js index 2c8cab29ca..a4784c93ce 100644 --- a/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js +++ b/addons/website_crm_partner_assign/static/src/js/crm_partner_assign.js @@ -15,7 +15,7 @@ publicWidget.registry.crmPartnerAssign = publicWidget.Widget.extend({ 'click .new_opp_confirm': '_onNewOppConfirm', 'click .edit_opp_confirm': '_onEditOppConfirm', 'change .edit_opp_form .next_activity': '_onChangeNextActivity', - 'click div.input-group span.fa-calendar': '_onCalendarIconClick', + 'click div.input-group.date[data-target-input="nearest"]': '_onCalendarInputGroupClick', }, //-------------------------------------------------------------------------- @@ -227,9 +227,7 @@ publicWidget.registry.crmPartnerAssign = publicWidget.Widget.extend({ _onEditOppConfirm: function (ev) { ev.preventDefault(); ev.stopPropagation(); - if ($(".edit_opp_form")[0].checkValidity()) { - this._buttonExec($(ev.currentTarget), this._editOpportunity); - } + this._buttonExec($(ev.currentTarget), this._editOpportunity); }, /** * @private @@ -250,8 +248,9 @@ publicWidget.registry.crmPartnerAssign = publicWidget.Widget.extend({ * @private * @param {Event} ev */ - _onCalendarIconClick: function (ev) { - $(ev.currentTarget).closest('div.date').datetimepicker({ + _onCalendarInputGroupClick: function (ev) { + const $calendarInputGroup = $(ev.currentTarget); + const calendarOptions = { format : time.getLangDateFormat(), icons: { time: 'fa fa-clock-o', @@ -259,13 +258,20 @@ publicWidget.registry.crmPartnerAssign = publicWidget.Widget.extend({ up: 'fa fa-chevron-up', down: 'fa fa-chevron-down', }, - }); + }; + // in some screen sizes, the automatic position opens the picker below input, + // but because #next_activity_div is the last element, we always open the + // picker on top the input to prevent extra scroll + if ($calendarInputGroup.is('#next_activity_div')) { + calendarOptions.widgetPositioning = {vertical: 'top'}; + } + $calendarInputGroup.datetimepicker(calendarOptions); }, _parse_date: function (value) { console.log(value); - var date = moment(value, "YYYY-MM-DD", true); - if (date.isValid()) { + var date = moment(value, time.getLangDateFormat(), true); + if (date.isValid() && date.year() >= 1900) { return time.date_to_str(date.toDate()); } else { diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml index 93297d41ae..3d70921c98 100644 --- a/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml +++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml @@ -654,7 +654,7 @@
-
+
-
+
- +
@@ -708,7 +708,7 @@
- +
diff --git a/addons/website_links/models/link_tracker.py b/addons/website_links/models/link_tracker.py index 9ff556b41a..6cf4c55b4a 100644 --- a/addons/website_links/models/link_tracker.py +++ b/addons/website_links/models/link_tracker.py @@ -3,6 +3,9 @@ from flectra import models, _ +from werkzeug import urls + + class LinkTracker(models.Model): _inherit = ['link.tracker'] @@ -13,3 +16,8 @@ class LinkTracker(models.Model): 'url': '%s+' % (self.short_url), 'target': 'new', } + + def _compute_short_url_host(self): + for tracker in self: + base_url = self.env['website'].get_current_website().get_base_url() + tracker.short_url_host = urls.url_join(base_url, '/r/')