[PATCH] Upstream patch - 01062023

This commit is contained in:
Parthiv Patel
2023-06-01 08:35:07 +00:00
parent 274f0b34b3
commit 46929a9efb
14 changed files with 72 additions and 17 deletions
+1
View File
@@ -8,3 +8,4 @@ from . import account_payment
from . import ir_actions_report
from . import mail_template
from . import ir_attachment
from . import uom
+38
View File
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
from flectra import models
class UoM(models.Model):
_inherit = 'uom.uom'
def _get_unece_code(self):
""" Returns the UNECE code used for international trading for corresponding to the UoM as per
https://unece.org/fileadmin/DAM/cefact/recommendations/rec20/rec20_rev3_Annex2e.pdf"""
mapping = {
'uom.product_uom_unit': 'C62',
'uom.product_uom_dozen': 'DZN',
'uom.product_uom_kgm': 'KGM',
'uom.product_uom_gram': 'GRM',
'uom.product_uom_day': 'DAY',
'uom.product_uom_hour': 'HUR',
'uom.product_uom_ton': 'TNE',
'uom.product_uom_meter': 'MTR',
'uom.product_uom_km': 'KTM',
'uom.product_uom_cm': 'CMT',
'uom.product_uom_litre': 'LTR',
'uom.product_uom_lb': 'LBR',
'uom.product_uom_oz': 'ONZ',
'uom.product_uom_inch': 'INH',
'uom.product_uom_foot': 'FOT',
'uom.product_uom_mile': 'SMI',
'uom.product_uom_floz': 'OZA',
'uom.product_uom_qt': 'QT',
'uom.product_uom_gal': 'GLL',
'uom.product_uom_cubic_meter': 'MTQ',
'uom.product_uom_cubic_inch': 'INQ',
'uom.product_uom_cubic_foot': 'FTQ',
}
xml_ids = self._get_external_ids().get(self.id, [])
matches = list(set(xml_ids) & set(mapping.keys()))
return matches and mapping[matches[0]] or 'C62'
@@ -2,4 +2,3 @@
from . import account_edi_format
from . import account_tax
from . import uom
@@ -44,8 +44,9 @@ class TestLeadConvertMass(crm_common.TestLeadConvertMassCommon):
with self.assertQueryCount(user_sales_manager=0):
test_leads = self.env['crm.lead'].browse(test_leads.ids)
with self.assertQueryCount(user_sales_manager=639): # crm 638 / com 638 / ent 639
test_leads.handle_salesmen_assignment(user_ids=user_ids, team_id=team_id)
#with self.assertQueryCount(user_sales_manager=639): # crm 638 / com 638 / ent 639
# query count randomly failling in 14.0
test_leads.handle_salesmen_assignment(user_ids=user_ids, team_id=team_id)
self.assertEqual(test_leads.team_id, self.sales_team_convert)
self.assertEqual(test_leads[0::3].user_id, self.user_sales_manager)
@@ -483,8 +483,9 @@ class TestLeaveRequests(TestHrHolidaysCommon):
'holiday_type': 'employee',
'employee_id': employee.id,
'holiday_status_id': leave_type.id,
'date_from': datetime.today() - timedelta(days=1),
'date_to': datetime.today() + timedelta(days=1),
'date_from': fields.Date.today(),
'date_to': fields.Date.today() + timedelta(days=2),
'number_of_days': 2,
})
if leave_validation_type in ('manager', 'both'):
+2 -2
View File
@@ -191,8 +191,8 @@ class StockMoveLine(models.Model):
vals['company_id'] = self.env['stock.move'].browse(vals['move_id']).company_id.id
elif vals.get('picking_id'):
vals['company_id'] = self.env['stock.picking'].browse(vals['picking_id']).company_id.id
if self.env.context.get('import_file') and vals.get('product_uom_qty') != 0:
raise UserError(_("It is not allow to import reserved quantity, you have to use the quantity directly."))
if self.env.context.get('import_file') and vals.get('product_uom_qty'):
raise UserError(_("It is not allowed to import reserved quantity, you have to use the quantity directly."))
mls = super().create(vals_list)
+1 -1
View File
@@ -475,7 +475,7 @@ class ProcurementGroup(models.Model):
""" Find a pull rule for the location_id, fallback on the parent
locations if it could not be found.
"""
result = False
result = self.env['stock.rule']
location = location_id
while (not result) and location:
domain = self._get_rule_domain(location, values)
+1 -1
View File
@@ -53,7 +53,7 @@ WITH
(whs.id IS NULL OR whd.id IS NULL OR whs.id != whd.id) AND
m.product_qty != 0 AND
m.state NOT IN ('draft', 'cancel') AND
(m.state != 'done' or m.date >= ((now() at time zone 'utc')::date - interval '3month'))
(m.state IN ('draft', 'waiting', 'confirmed', 'partially_available', 'assigned') or m.date >= ((now() at time zone 'utc')::date - interval '3month'))
),
all_sm (id, product_id, product_qty, date, state, company_id, whs_id, whd_id, ls_usage, ld_usage) AS (
SELECT sm.id, sm.product_id,
+3 -3
View File
@@ -551,11 +551,11 @@ class Web_Editor(http.Controller):
user_colors.append([tools.html_escape(value), colorMatch.group(1)])
elif key == 'flip':
if value == 'x':
svg = svg.replace('<svg ', '<svg style="transform: scaleX(-1);" ')
svg = svg.replace('<svg ', '<svg style="transform: scaleX(-1);" ', 1)
elif value == 'y':
svg = svg.replace('<svg ', '<svg style="transform: scaleY(-1)" ')
svg = svg.replace('<svg ', '<svg style="transform: scaleY(-1)" ', 1)
elif value == 'xy':
svg = svg.replace('<svg ', '<svg style="transform: scale(-1)" ')
svg = svg.replace('<svg ', '<svg style="transform: scale(-1)" ', 1)
default_palette = {
'1': '#3AADAA',
+1 -1
View File
@@ -404,7 +404,7 @@ class Website(models.Model):
key_copy = string
inc = 0
domain_static = self.get_current_website().website_domain()
while self.env['website.page'].with_context(active_test=False).sudo().search([('key', '=', key_copy)] + domain_static):
while self.env['ir.ui.view'].with_context(active_test=False).sudo().search([('key', '=', key_copy)] + domain_static):
inc += 1
key_copy = string + (inc and "-%s" % inc or "")
return key_copy
@@ -98,7 +98,8 @@ var NewContentMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({
$group.after($add);
}
}).then(function (result) {
var val = result.val;
// Remove any leading slash.
const val = result.val.replace(/^\/*/, "");
var $dialog = result.dialog;
if (!val) {
return;
+13
View File
@@ -1,6 +1,8 @@
# coding: utf-8
from lxml import html
from flectra.addons.website.controllers.main import Website
from flectra.addons.website.tools import MockRequest
from flectra.tests import common, HttpCase, tagged
from flectra.tests.common import HOST
from flectra.tools import config
@@ -278,3 +280,14 @@ class WithContext(HttpCase):
r2 = self.url_open('/Page_1', allow_redirects=False)
self.assertEqual(r2.status_code, 302, "URL exists only in different casing, should redirect to it")
self.assertTrue(r2.headers.get('Location').endswith('/page_1'), "Should redirect /Page_1 to /page_1")
@tagged('-at_install', 'post_install')
class TestNewPage(common.TransactionCase):
def test_new_page_used_key(self):
website = self.env.ref('website.default_website')
controller = Website()
with MockRequest(self.env, website=website):
controller.pagenew(path="snippets")
pages = self.env['website.page'].search([('url', '=', '/snippets')])
self.assertEqual(len(pages), 1, "Exactly one page should be at /snippets.")
self.assertNotEqual(pages.key, "website.snippets", "Page's key cannot be website.snippets.")
@@ -59,10 +59,11 @@
</div>
</div>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_model_required" data-type="char" data-name="Field">
<div class="form-group col-12 s_website_form_field s_website_form_required s_website_form_model_required" data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="opportunity5">
<span class="s_website_form_label_content">Subject</span>
<span class="s_website_form_mark"> *</span>
</label>
<div class="col-sm">
<input id="opportunity5" type="text" class="form-control s_website_form_input" name="name" required="" />
@@ -30,7 +30,7 @@
</div>
</div>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_required" data-type="email" data-name="Field">
<div class="form-group col-12 s_website_form_field s_website_form_required s_website_form_model_required" data-type="email" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="contact3">
<span class="s_website_form_label_content">Email</span>
@@ -51,7 +51,7 @@
</div>
</div>
</div>
<div class="form-group col-12 s_website_form_field s_website_form_required" data-type="char" data-name="Field">
<div class="form-group col-12 s_website_form_field s_website_form_required s_website_form_model_required" data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="contact5">
<span class="s_website_form_label_content">Subject</span>