Commit Graph
151539 Commits
Author SHA1 Message Date
Antoine Guenet 742ba38e5d [FIX] mass_mailing: center separators by default
Separator widgets were not centered by default which looked weird when
we resized them with the design tab.

task-2821155

X-original-commit: 60190e283e4c75bb6480ba37b8c2ccf4246cf769
Part-of: odoo/odoo#92138
2022-05-24 12:48:19 +02:00
Antoine Guenet 5bf043567e [FIX] mass_mailing: make sure #design-element is prepended to .o_layout
When styling a theme in XML, we don't have access to the top of
`.o_layout`, leading to the design element being located in different
places depending on whether it's been added programmatically or in XML.
This harmonizes it, ensuring it's always at the top of `.o_layout`.

X-original-commit: ab61f1d38b2852ec0b6727122a1cfc2cd81cfc9f
Part-of: odoo/odoo#92138
2022-05-24 12:48:18 +02:00
Antoine Guenet 417fc95b72 [FIX] mass_mailing: prevent overriding font awesome font-family
When changing a font-family style in the design tab, we need to make
sure we don't override the font-family of font awesome icons or it will
break them. This takes font-family out of its selector and applies
it to special selectors that exclude `.fa`.

task-2821155

X-original-commit: d25b38969d1d0f2f791ad33f2591ea4f3b7b5ed8
Part-of: odoo/odoo#92138
2022-05-24 12:48:18 +02:00
Antoine Guenet 3eaba29e2b [FIX] mass_mailing: respect minimal use of 'important' in design tab
Some styles added by the design tab require the use of the 'important'
keyword. Prior to this that keyword was added to all styles of a
selector that contained at least one priority style.

task-2821155

X-original-commit: e41de41c6f1e8d3f34368e191b9debc03c57ab05
Part-of: odoo/odoo#92138
2022-05-24 12:48:18 +02:00
Antoine Guenet 116371805e [FIX] mass_mailing: prevent creating non-sense styles
When adding a font-family style, we need to make sure it trickles down
to all its descendants. This implies adding selectors with a trailing
`*` to the selectors involved. The way it was done was
undiscriminatingly, leading to selectors ending in `* *`, which is
obvious non-sense.

task-2821155

X-original-commit: bb8685cc9829ab0e76d98c4c1196a344d2475759
Part-of: odoo/odoo#92138
2022-05-24 12:48:17 +02:00
Jeremy Kersten 79d7d78b75 [FIX] base: allow to duplicate an External ID
Before this commit, the ir_model_data_module_name_uniq_index constraints avoid
to duplicate an XML ID.

Now on copy, we add a random suffix to allow the end user to update just the
record id (and rename the name).

closes odoo/odoo#92108

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-05-24 12:48:01 +02:00
Jeremy Kersten 87fd20c9b4 [FIX] web: show datetime localized in Metadata view from debug menu
Before this commit, the dialog 'View Metadata' open the date in utc since the
refactoring of Owl. It is not coherent with all others dates shown in form.

Now we show the date in the timezone of the current user.

Part-of: odoo/odoo#92108
2022-05-24 12:48:01 +02:00
Jeremy Kersten df4782164f [IMP] web: allow to create ExternalId from the debug manager
Now, if you don't have ExternalID for the current record when you open the
'View Metadata' submenu from the debug menu, we add a button to create one.

Part-of: odoo/odoo#92108
2022-05-24 12:48:00 +02:00
root fa83960449 [IMP] cli: propose HTTPS website URL by default
As by now pretty much all of the internet runs on HTTPS & it is
recommended everywhere let's do so our in our manifest do.

closes odoo/odoo#91281

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2022-05-24 12:47:53 +02:00
tsm-odoo 038e83e7aa [IMP] mail, *: replace target by document
*: hr, hr_holidays, im_livechat, test_mail.

The target returned by the mail's test utils start method is useless since it's
almost the same thing than querying document. Let's remove it and replace it by
document. This will reduce the diff in the PR introducing the new environment in
the discuss app.

task-2582313

closes odoo/odoo#92077

Related: odoo/enterprise#27670
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-24 11:43:57 +02:00
Josse Colpaert 2217380317 [FIX] l10n_gcc_invoice: right align customer address
closes odoo/odoo#91604

X-original-commit: 9c015379e782a115af72f4bec7962d1669f10937
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
Signed-off-by: Josse Colpaert <jco@odoo.com>
2022-05-24 11:43:50 +02:00
Arnold Moyaux 4f3f485f03 [FIX] mrp_subcontracting: only add transfer in landed costs views
Currently the linked receipt (in case of subcontracting)
is visible in the tree view and search view of every MO.
However we want to limit the feature to landed cost scope
since it's only useful in that case and it adds noise otherwise.

We need a new module since we don't have any bridge between
subcontracting and landed costs

closes odoo/odoo#89399

Signed-off-by: Steve Van Essche <svs@odoo.com>
2022-05-24 11:43:46 +02:00
Yolann Sabaux aed71fc897 [FIX] mass_mailing: allow duplicate in test mode
Steps to reproduce:
- In Marketing Automation - Campaigns
- Select the demo campaign
- Click on "Launch a test"
- Select Brandon
- Send the two mails from the campaign
- Redo all the steps with a new Test but the same contact

Issue:
- The mails won't be sent

Cause:
- Since for this campaign we already sent these mails to Brandon, the mails will be considered as duplicate in:
https://github.com/odoo/odoo/blob/11b7d89114178fa43545fb8e6224cb4ccbcf8ec1/addons/mail/wizard/mail_compose_message.py#L499

Solution:
We want to make sure that:
- when doing a test, since there is only one linked partner to it, we can send as many mails as we launch tests.
-> repeated tests make sense as we want to fine tune campaigns and maybe get feedback from actual customers
- when launching the actual campaign, there are no duplicates (normal flow) but that eventual test-customers receive the final campaign

In order to do that, we have to filter out from the seen_list
https://github.com/odoo/odoo/blob/9b25a4b5a782146e8c0b41eb75ceea7ac3cd3abf/addons/mass_mailing/models/mailing.py#L736
the test-records.

opw-2810298

closes odoo/odoo#92062

X-original-commit: 4cebf53aa89c21ef255f5d5da450fdf98c4c9ac1
Related: odoo/enterprise#27660
Signed-off-by: yosa-odoo <yosa@odoo.com>
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-05-24 10:40:17 +02:00
Pierre Masereel 64f4288cfa [TEST] point_of_sale: test fixed tax included
After a fix made in rev:bd621fd456811e7f3ce646e3ecade5e9e4a826e8

It was not possible to generate an invoice from the POS when you have a
fixed tax included applied on a base amount with tax included.

As it was not detected by a test, we are now creating a test with this
use case.

closes odoo/odoo#92106

X-original-commit: 291b564ffebaf8b8708072c981d1072b8bb33677
Signed-off-by: Masereel Pierre <pim@odoo.com>
2022-05-24 09:41:35 +02:00
Achraf (abz) daec4e6694 [IMP] web: Update Luxon to 2.4.0 version
closes odoo/odoo#92036

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-05-24 09:41:31 +02:00
Leonardo Pavan Rocha 31bf4abcb3 [IMP] hr: improves department kanban view
The recruitment kanban view was redesigned and it looks good, so it was
decided to implement the same design on the department kanban view. This commit
adds the number of employees to the "Employees" button and makes the kanban
cards wider.

task-2849418

closes odoo/odoo#91293

Related: odoo/enterprise#27324
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-05-24 09:41:24 +02:00
Laurent Stukkens (LTU) 5860736ee0 [FIX] hr_timesheet: prevent trace back when opening report
Prior to this commit, when running the `timesheets.analysis.report`, a
traceback was thrown `TypeError: tuple indices must be integers or slices,
not str`.

After this commit, not traceback is thrown.

closes odoo/odoo#92024

Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-05-23 23:31:57 +02:00
Romain Derie 88194dd941 [FIX] website: make s_map work in sanitized fields
Before this commit, the `<iframe/>` element of the `s_map` snippet would
be removed from the field value if the field was sanitized.
The map would then not be displayed, obviously.

The way that `s_map` snippet work is simple:
1. The snippet is defined with a hidden `<iframe/>` element
2. The snippet options are stored as data attributes on the `<section/>`
   element.
3. When those options are changed, the iframe `src` is updated and it is
   shown if needed.

The fix is simple, as we already have all the data attributes available,
we just need to recreate that iframe when the snippet is started without
one. It most likely means it got deleted through the sanitization during
the save.

opw-2844010

closes odoo/odoo#91866

X-original-commit: c2e9bd0e60014b6a42931cf300e0f89f8cf7c225
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-05-23 23:31:53 +02:00
Barad Mahendra 482b539351 [IMP] rating: add oe_structure class and IDs
Purpose of the commit is to make the rating thank you
page as editable on website and to make a page editable
we must have to add the oe_structure class and id which
contains oe_structure string.

task-2772369

closes odoo/odoo#86231

Related: odoo/upgrade#3341
Related: odoo/enterprise#25185
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-05-23 23:31:44 +02:00
Achraf (abz) eb9b28b2f8 [FIX] web: Allow user to display demo data in Vietnamese
Install the CRM app and the Vietnamese locale
Go to the CRM App > Reporting > Activities
Switch to Vietnamese (User icon > Preferences > Language)
The following error will appear :

```
UncaughtPromiseError > TypeError
Uncaught Promise > Cannot read properties of undefined (reading 'length')
TypeError: Cannot read properties of undefined (reading 'length')
    at parseDigits (http://localhost:8069/web/assets/debug/web.assets_backend.js:32038:31) (/web/static/lib/luxon/luxon.js:5117)
    at Object.deser (http://localhost:8069/web/assets/debug/web.assets_backend.js:32084:21) (/web/static/lib/luxon/luxon.js:5163)
    at match (http://localhost:8069/web/assets/debug/web.assets_backend.js:32423:37) (/web/static/lib/luxon/luxon.js:5502)
    at explainFromTokens (http://localhost:8069/web/assets/debug/web.assets_backend.js:32591:20) (/web/static/lib/luxon/luxon.js:5670)
    at parseFromTokens (http://localhost:8069/web/assets/debug/web.assets_backend.js:32614:30) (/web/static/lib/luxon/luxon.js:5693)
    at Function.fromFormat (http://localhost:8069/web/assets/debug/web.assets_backend.js:33592:30) (/web/static/lib/luxon/luxon.js:6671)
    at parseDateTime (http://localhost:8069/web/assets/debug/web.assets_backend.js:5814:32) (/web/static/src/core/l10n/dates.js:282)
    at parseDate (http://localhost:8069/web/assets/debug/web.assets_backend.js:5743:12) (/web/static/src/core/l10n/dates.js:211)
    at http://localhost:8069/web/assets/debug/web.assets_backend.js:20162:28 (/web/static/src/views/helpers/sample_server.js:460)
    at http://localhost:8069/web/assets/debug/web.assets_backend.js:10968:19 (/web/static/src/core/utils/arrays.js:96)
```

This is a issue with luxon
Issue: https://github.com/moment/luxon/issues/1169
Luxon update (2.4.0): https://github.com/moment/luxon/releases/tag/2.4.0
Fix: https://github.com/moment/luxon/pull/1194

PR to update luxon to 2.4.0 in master: https://github.com/odoo/odoo/pull/92036

closes odoo/odoo#92109

X-original-commit: 354433e7ba5b5f81f83368e497a8bed5059c91d5
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Achraf <abz@odoo.com>
2022-05-23 22:25:53 +02:00
William Braeckman 46efe7df1b [IMP] project: allow modification of personal stages
This commit allows project users to create and modify their own personal
stages.
A lot of overrides have been done on the kanban view to handle our
multiple cases.

Project user will now only see the options to create columns/edit stages
when grouping by personal stage.
This is hardcoded and does not follow possible custom access rules
however.

Any stage created while grouping by personal stage will directly be
assigned to the user and will be seen in the 'My Tasks' menu.

A special method has been added to delete a personal stage.
Upon deletion any task assigned to this personal stage will move to a
lower sequence stage if possible otherwise the next in line.

TaskId-2858445

closes odoo/odoo#92103

X-original-commit: 7b3acbc0b0c21ab106b1b34d9f5c8bc1ceb2fe58
Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-05-23 18:36:14 +02:00
Soukéina Bojabza 6574897308 [FIX] web_editor: resolve bug of focused input element in edit mode
In the Firefox browser, when in edit mode, if we click on an input
element, a traceback sometimes appears for no apparent reasons.
The error comes from the fact that when calling the getRangeAt function
on the selection, it sometimes returns a "restricted" range.
Ex: Range { commonAncestorContainer: Restricted, startContainer:
Restricted, startOffset: 0, endContainer: Restricted, endOffset: 0,
collapsed: true }
And so, trying to access a container property (ex: nodetype) will
trigger a "Permission denied to access property "nodetype"" error.

This commit provides a solution to bypass the error. It consists in
redefining the getRangeAt function as the following:

- A range is created by calling the original function that was saved
  beforehand
- We check if the range is restricted (the same way as what was done in
  this issue: https://github.com/tinymce/tinymce/issues/2194)
    - if it is not restricted, the range is simply returned
    - otherwise, a new range is created manually, based on the selection

Steps to reproduce the bug:

- Install website
- Drop a form snippet
- Click on the input fields
-> Sometimes a traceback appears

task-2810365

closes odoo/odoo#92097

X-original-commit: c32f6efa956ae9affbb80f84b66118e343268eff
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-05-23 18:36:07 +02:00
Abdelouahab (abla) 37255ab4b9 [FIX] web : set color to match background
To reproduce
============

- choose boxed layout as document layout in settings
- enable packages in inventory
- set Incoming Shipments of warehouse on 3 steps
- enable detailed operations of *PACK* operation
- create a pack transfer
- in detailed operations tab, set destination pack
- validate the transfer and print the delivery slip

on PDF the line of destination pack is white text on clear gray (unreadable)

Purpose
=======

on that line two style classes are applied and both of them are changing the background color,

`.o_line_section` :
https://github.com/odoo/odoo/blob/9ce6136be700ae426b8910efd2357d16e2f49d7d/addons/web/static/src/scss/layout_boxed.scss#L61-L64
`.page > table:not(.o_main_table) tr td:last-child` :
https://github.com/odoo/odoo/blob/9ce6136be700ae426b8910efd2357d16e2f49d7d/addons/web/static/src/scss/layout_boxed.scss#L73-L75

We are taking the background color from one and the text color from the other one that don't match.

Specification
=============

to solve the issue we set the text color on `.page > table:not(.o_main_table) tr td:last-child` so that when this style class is
applied it has it's own text color, that matches the background, and doesn't take it from an other class.

opw-2841460

closes odoo/odoo#92096

X-original-commit: 4ee580d32f88fa9a13775355c75503678369c421
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
Signed-off-by: abla001 <abla@odoo.com>
2022-05-23 18:36:03 +02:00
Merlin (megu) 7e3f7f0505 [FIX] mrp_subcontracting: fix BoM structure subcontractor costs
BoM Structure & Cost report has different errors:
- The product cost of a subcontractor included in a product doesn't
scale with the quantity of the product (Issue 1)
- The BoM cost of a product composed of a subcontractor doesn't include
the subcontractor price (Issue 2)
- The BoM cost of a component composed of a subcontractor doesn't scale
with the quantity for the subcontractor price (Issue 3)

Steps to reproduce:
1. Install mrp_subcontracting_purchase
2. Create a product 'TEST 1', in the Purchase tab specify 'Azure
Interior' as vendor with price 5$
3. Create a bill of material for the product 'TEST 1' with BoM type
'subcontracting', subcontractor 'Azure Interior' and product 'Bolt' as
component
4. Create another product 'TEST 2', in the Purchase tab specify 'Azure
Interior' as vendor with price 8$
5. Create a bill of material for the product 'TEST 2' with BoM type
'subcontracting', subcontractor 'Azure Interior' and product 'TEST 1'
as component
6. Go to the BoM Structure and Cost of product 'TEST 1'
7. The product BoM Cost doesn't include the subcontractor price (it
should be the sum of its components) (Issue 1)
8. Increase the quantity of the product by 1
9. The subcontractor's product cost doesn't change (it should increase
with the quantity) (Issue 2)
10. Go to the BoM Structure and Cost of product 'TEST 2'
11. Increase the quantity of the product by 1
12. The BoM Cost of component 'TEST 1' only counts the subcontractor
price once (it should be the sum of its components) (Issue 3)

Solution:
Scale the subcontractor product cost with the quantity, update the
BoM cost of a product with the subcontractor price (in `_get_bom`) and
scale the subcontractor price with the quantity (in `_get_price`)

opw-2844482

closes odoo/odoo#92095

X-original-commit: 4f3347c6925e10ec62a85bb01d7cdb65b1e13b15
Signed-off-by: Adrien Widart <awt@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
2022-05-23 17:31:52 +02:00
Didier (did) 0b1846bb46 [IMP] mail: display channel invite group restriction
Before this PR, nothing warned the user that the invitation link was restricted to
a user group.

task-2818094

closes odoo/odoo#88562

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-23 17:31:45 +02:00
Zelong Lin 659c61219f [REF] mail: use tracking models rather than fields
Introducing tracking_value and tracking_value_item models for tracking value.

task-2817111

closes odoo/odoo#88547

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-23 17:31:42 +02:00
tsm-odoo e423618dca [IMP] mail, *: prepare activity menu tests to wowl env
*: calendar, note, test_mail.

This PR prepares the ground for the one introducing the new environment in the discuss app.
Indeed, the start helper won't be able to handle widget anymore. To solve this issues,
we're now adding the activityMenu widget to the systrayMenu.Items array, this will be
mapped by the createWebClient helper to component and added to the new systray item
registry.

task-2582313

closes odoo/odoo#91953

Related: odoo/enterprise#27614
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-05-23 16:27:54 +02:00
Ricardo Gomes Rodrigues (rigr) c13e5907d3 [IMP] account: improve how taxes are displayed
This commit aims at improving the display of taxes at onboarding only.

Many active and inactive taxes are mixed in complicated localizations (e.g. Belgium),
even though most of those inactive taxes are useless for most of the users that are
going through the onboarding.

To achieve this, we should change the default sort on the list view as follows:
1. Active
2. Tax type
3. Tax amount (to group them together by amount, even if the column is hidden by default in the view)

Task id: 2846605

bla

closes odoo/odoo#91486

Signed-off-by: William André (wan) <wan@odoo.com>
2022-05-23 16:27:49 +02:00
tranngocson1996 7de5b03f55 [FIX] hr_expense: fix compare the wrong object
closes odoo/odoo#92068

X-original-commit: c604f729d527925b981e2ae204e33a154208afcb
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-05-23 15:13:02 +02:00
mafo-odoo 2088ead0de [FIX] hr_holidays: right repsonsible for leave approval activity
Steps to reproduce:
- Create a Time off Type for which an allocation can be requested
by the employee and approved by the time off officer

- Set a Time Off approver on the employee

- Create an allocation

Current behavior:
The allocation approval activity is assigned to the employee

Expected behavior:
The allocation approval activity is assigned to the time off officer

Problem
The function _get_responsible_for_approval used the validation types
of v14 instead of the one of v15.

XML modification:
While using the form for the time off types I notice that the logic
was incomplete for the "responsible time off officer" invisible and
required fields. the field can not be invisible if the approved by
time off officer is set and it should be required to avoid errors.

opw-2849972

closes odoo/odoo#92067

X-original-commit: 2e2b89eed31e74cb6123f065c7790726753d585d
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-05-23 15:12:58 +02:00
Kevin Baptiste 2dcae26911 [FIX] hr_recruitment: allow Interviewers to use Activities
The Interviewers couldn't mark Activities as done, as they didn't have
access to the mail.message on the application.

closes odoo/odoo#92063

Taskid: 2857423
X-original-commit: 4a5941eed902927e11605e94b7afcfc227bece9d
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-05-23 15:12:54 +02:00
Christophe Monniez dcb0eef401 [IMP] packaging: add a script to install packages
This is the long awaited small POSIX shell script that installs Debian
packages needed to run Odoo.

At the first time it was intended to be a small Perl script as Perl is
available everywhere. Finally it turned out that a POSIX shell script is
smaller, easier to read and could be run everywhere.

closes odoo/odoo#92038

Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2022-05-23 14:02:45 +02:00
David Monjoie 87563f875c [REF] web_editor: remove unused variable
The `hasSearch` variable on `this` was not used anywhere and, if it was,
its semantic was arguable because it was set true as soon as the search
was fired rather than when the search had returned.

I'm taking this opportunity to use async/await as it's *way* better here.

closes odoo/odoo#92014

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2022-05-23 13:04:52 +02:00
Benjamin Vray 4fb98f767a [FIX] website: fix animation in tabs and accordion blocks
Before this commit, animated elements did not animate in a tab that just
opened. Exact same problem was also happening with the accordion block.

Steps to reproduce the issue (with the tabs block) :

- Create a tabs block.
- Add some content with animation on each tab.
- Save.
- When you refresh, the first animation loads.
- Switch tab to another animation and wait - it won't load.
- Scroll up or down -> animation will show up.

opw-2813435

closes odoo/odoo#91850

X-original-commit: 2c21d5a7b493a3c88962ad9185391b6d6c7fc010
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-05-23 11:59:59 +02:00
Jinjiu Liu 2bcb6fd9d1 [FIX] sale: email template shows free shipping over an amount
Reproduction:
1. Install Sales and eCommerce, check “Delivery Methods” in Settings ->
Sales
2. Go to Sales->Configuration->Shipping Methods, create a Fixed Price
shipping method with “Free if order amount is above” checked, and set
amount 500. Make this delivery method the only published one
3. Go to the webshop, order something with a price above 500, and
checkout
4. At the backend, check the Sales->Quotations, click the order and
check the confirmation message (or click “SEND BY EMAIL ”, choose the
confirmation email)
5. The Shipping Method still shows the fixed price instead of “Free”

Reason: The confirmation email template doesn’t show the delivery price
based on the actual cost of this order

Fix: Add another condition to the “Free” case. If the amount_delivery is
0, we show the price behind the delivery method as “Free”

opw-2834505

Related PR: https://github.com/odoo/odoo/pull/90880
Related commit: bb032d4e9e535b40692578512c4b37ac9cccedff

closes odoo/odoo#91009

Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2022-05-23 11:59:56 +02:00
Antoine Dupuis (andu) 7cb109e7b0 [FIX] account: fix write-after-post in PR 91638
PR 91638 introduced a write() on the partner_id  after the AML state
was set to 'posted'.

This causes a problem for users who have the journal hash activated.

Fix => move the write() before posting the AMLs.

closes odoo/odoo#91997

X-original-commit: cd3bbeb15983b263ba2ffb419d59575b64a41ca2
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Antoine Dupuis (andu) <andu@odoo.com>
2022-05-23 09:57:42 +02:00
Xavier-Do cb9b93b5c4 [FIX] core: ordered to_compute
Set order is not randomized for integers (integer hash is the integers
itself and doesnt use pythonhashseed)
but the output may be ordered or not depending of the values:

In [2]: list(set(range(126,130)))
Out[2]: [128, 129, 126, 127]

In [3]: list(set(range(130,134)))
Out[3]: [130, 131, 132, 133]

This will lead to different results in query count tests depending on
the current value of the sequence.

The proposed solution is to use an Orderedset. We need to keep in
mind that the initialisation/operation on Orderedset may be slower but
this shouldn't represent any significant overhead in this case.

closes odoo/odoo#91962

X-original-commit: da66b8fc008f97680584e266135b7fa7d3dedeca
Signed-off-by: Rémy Voet <ryv@odoo.com>
2022-05-23 08:30:14 +02:00
Xavier MorelandRaphael Collet 6c872f6c19 [FIX] core: _get_external_ids to behave better in onchange context
If `_get_external_ids` is called in an onchange context on a newid
wrapper, the result map uses NewId keys but the assigned data uses
real ids, which leads to a mis-setting, and usually the call blowing
up immediately as `data['res_id']` is not one of the preallocated dict
entries.

Update the code to better handle this possible difference.

closes odoo/odoo#91957

X-original-commit: 5797fd80a63309269f15bcbe4948d4429a53eec2
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Co-authored-by: Raphael Collet <rco@odoo.com>
2022-05-23 08:30:11 +02:00
FrancoisGe ac66c26097 [IMP] web: CP add custom placeholder by namespace
This commit adds the possibility to have a custom placeholder in the
command palette depending on the namespace.

closes odoo/odoo#91947

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-05-23 08:30:04 +02:00
Odoo's Mergebot 07951f15fb [FW][FIX] adapt odoo 15.0 to work with ubuntu jammy
Ubuntu Jammy brings some breaking changes for odoo 15.0. Since 15.0 is still the main branch, this pr aims to ensure compatibility if deployed on ubuntu Jammy.

Main changes:
- python 3.10
- werkzeug 2.0+, including vendoring werkzeug's user agent parser in `odoo/tools/_vendor/useragents.py` (= the one from version 0.16) as it is discontinued after v2.1
- currentThread is now deprecated (use current_thread instead)
- default requirement version (based on deb package version)
- new opcode in python 3.10
- distutils.version.LooseVersion is deprecated

- wkhtmltopd version packaged with ubuntu jammy don't have patched qt but will work without headers and footers. Suggested wkhtmltopdf version 0.12.5 doesn't have a build working with jammy yet because of incompatible libssl dependencies.  A parallel wip may provide a 0.12.5 version compatible with jammy latter (currently used as testing version on runbot). If this solution is chosen, this build may be provided by odoo latter.

As usual, all changes are made with the spirit to keep compatibility with previous version (Focal)

enterprise PR: https://github.com/odoo/enterprise/pull/26831

closes #84097
closes #88980
closes #89533
closes #78020
closes #83309
closes #87463

closes odoo/odoo#91927

Forward-port-of: odoo/odoo#91543
Forward-port-of: odoo/odoo#88803
Related: odoo/enterprise#27601
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2022-05-23 08:29:56 +02:00
Julien Castiaux 8f52bdf9f4 [FIX] test_http: unreliable tests
Part-of: odoo/odoo#91927
2022-05-23 08:29:55 +02:00
Christophe Monniez d2b7a601ba [FIX] test_crm_full: bump query count
This query count test fails deterministically on runbot when built with
Ubuntu Jammy. After some investigations, it appears that this query
count is very indeterministic and will be fixed in #91386.
Until that, the expected count is bumped.

Part-of: odoo/odoo#91927
2022-05-23 08:29:55 +02:00
Christophe Monniez 567721d136 [FIX] populate: force integer for randint
random.randrange needs integer values since python 3.10. As randint uses
randrange, we cast the seconds into integer.

Part-of: odoo/odoo#91927
2022-05-23 08:29:55 +02:00
Xavier-Do 482057043f [FIX] http, web: use Response instead of BaseResponse
Part-of: odoo/odoo#91927
2022-05-23 08:29:54 +02:00
Xavier-Do 1824f32f58 [FIX] http: use vendored user agent parser
Part-of: odoo/odoo#91927
2022-05-23 08:29:54 +02:00
Christophe Monniez e2ff2fd29b [FIX] link_tracker, pos_mercury: use unescape from html
As werkzeug.utils.unescape is deprecated in werkzeug 2.0 and the
markupsafe version of unescape just uses the built-in html.unescape [0],
we can use directly the same built-in method.

[0]  pallets/markupsafe@c35603a903

Part-of: odoo/odoo#91927
2022-05-23 08:29:54 +02:00
Christophe Monniez ba1724732c [FIX] core: ignore invalid escape sequence in 3.10
Since Python 3.10, the invalid escape sequence warning use quotes to
display the invalid sequence. Because of that, the filter does not catch
it anymore.

With this commit, they are caught in all supported versions.

Part-of: odoo/odoo#91927
2022-05-23 08:29:54 +02:00
Christophe Monniez 082a5a1a98 [FIX] report: replace deprecated LooseVersion method
With this commit, the LooseVersion function comes from distutils which
is deprecated [0] in Python 3.10 is replaced by parse_version.

[0]: https://peps.python.org/pep-0632/

Part-of: odoo/odoo#91927
2022-05-23 08:29:54 +02:00
Christophe Monniez 27a7d4822f [FIX] server: replace deprecated daemon getter/setter
Since Python 3.5 the isDaemon and setDaemon methods can be replaced by a
property. As it's now deprecated in Python 3.10, the Time has come.

[0] https://docs.python.org/3.5/library/threading.html#threading.Thread.setDaemon

Part-of: odoo/odoo#91927
2022-05-23 08:29:53 +02:00
Christophe Monniez f629cf5fee [FIX] safe_eval: add new py 3.10 GEN_START opcode
Part-of: odoo/odoo#91927
2022-05-23 08:29:53 +02:00