Commit Graph
148875 Commits
Author SHA1 Message Date
Florian Damhaut c1014d9cd6 [FIX] calendar: notification detail correct redirection
Step to reproduce:
- Create an event in calendar with reminder
- (Move the event to trigger the reminder)
- Click on 'Details'

Current Behaviour:
- Open a new event

Behaviour after PR:
- Open the event linked to the notification

opw-2761492

closes odoo/odoo#85089

X-original-commit: e1787f5a107f452f5c50e4e931cdd7afcea04e48
Signed-off-by: Arnaud Joset <arj@odoo.com>
Signed-off-by: Damhaut Florian (flda) <flda@odoo.com>
2022-03-07 08:47:40 +00:00
root e663077c11 [IMP] account: create hook to override searchbar sortings/filters
With this commit we can now call a hook when we want to modify the code for this route.
Before this commit the only way to modify/extend this would be by taking over a big part of the code.

closes odoo/odoo#84907

Signed-off-by: Laurent Smet <las@odoo.com>
2022-03-07 07:56:01 +00:00
Pierre Masereel 7655963ef9 [FIX] point_of_sale: payment by terminal when settle due
When we want to settle the amount due by a customer, we can choose a
payment method through a Popup. When the payement method choosed in the
popup is linked to a terminal the payment line is added, but don't have
a correct status, so we cannot send the request to the terminal.

To correctly add the payment and related status, we are moving some
logic that was set in the payment screen into the method that create the
payment line on the order.

closes odoo/odoo#85873

X-original-commit: 325772042c3d55034842e5710ab398237531e494
Signed-off-by: Masereel Pierre <pim@odoo.com>
2022-03-06 10:57:11 +00:00
Ruben Gomes 0df8a0d955 [FIX] mobile: calculation of invoice lines and journal items on update
Problem :
* updating an invoice line on mobile would result in an incorrect untaxed amount, tax amount and total amount on the invoice and an incorrect entries in the journal items
* subtotal of invoice line was not showing in mobile view

Solution :
* the problem was that debit and credit fields were missing from the view so onchange were not trigger

closes odoo/odoo#85877

Task: task-2766245
X-original-commit: c1b9c96dddaa02209bae042481781dd175a678dc
Signed-off-by: Ruben Gomes <rugo@odoo.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-05 09:46:37 +00:00
Thibault Delavallée 8772e71b04 [FIX] mail: fix trailing comma
Die, you commies ! You wouldn't bear our mighty OdooTrailingComma force !

closes odoo/odoo#85864

X-original-commit: 1be8592c160d69c630efcd312a7603cf1d8c1359
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-03-04 21:12:42 +00:00
Thibault Delavallée 927ec3a999 [FIX] mail: fix MailMail failure type naming when sending
Followup of odoo/odoo@c178a7829f where a failure type renaming was badly
propagated. This commit fixes failure type naming allowing to correctly
distinguish a missing email from an invalid email.

Task-2684479 (Mail: Better send error storage and display)

X-original-commit: 1a08b3f4b3aa849549783348c51c393a1f84a409
Part-of: odoo/odoo#85864
2022-03-04 21:12:41 +00:00
Alexandre Kühn 2c550e22c5 [IMP] mail: turn "Rtc/disconnectAudioMonitor" into field
Task-2734101

closes odoo/odoo#85025

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-04 20:18:57 +00:00
Didier (did) 15a8e5176b [FIX] mail: send is_main with the attachments
task-2783076

closes odoo/odoo#85869

X-original-commit: c35b18bb2ab4198f015c3681ed600e0e7cf66657
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-04 19:04:46 +00:00
Alexandre Kühn cc789f82d5 [IMP] mail: move rtc recover timeout in its own method
Task-2734101

closes odoo/odoo#85127

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-04 19:04:42 +00:00
stefanorigano (SRI) 6f4f3699bf [ADD] web: bs5 utility-classes, add positions
closes odoo/odoo#85804

Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-03-04 17:30:25 +00:00
Miquel Raïch 2ba37637b5 [IMP] mail: revert of "set an integer widget on many2one_reference field"
Revert of https://github.com/odoo/odoo/commit/d3f6c3b579f39b313401c63d97b95ce690501591

Cleanup. The JS has already been adapted to many2one_reference fields.

closes odoo/odoo#85843

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-04 15:57:57 +00:00
Thibault Delavallée a740bdd7f8 [IMP] mail: remove unnecessary indexes on composer model
Those indexes probably come from previous implementation of composer model
when it was inheriting from mail.message. It was also inheriting from the
custom search / read manual ACLs implementation doing some SQL directly to
check access. Those indexes should not be necessary anymore as anyway this
is a transient model.

Prepares Task-2088884 (MailComposer: Onchange to editable computed stored)

closes odoo/odoo#85841

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-03-04 15:00:58 +00:00
Thibault Delavallée 81e782250a [IMP] base: remove postmaster-odoo default bounce
Coming from odoo/odoo@a4597fe34f . This code is not necessary anymore since we better
handle From, SMTP-From, as well as allowing mail server filtering. We can
now use standard aliases and servers instead of relying on hardcoded value
"postmaster-odoo".

Task-2784996

closes odoo/odoo#85837

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-03-04 15:00:54 +00:00
Odoo's Mergebot c9aa2eb982 [MERGE][IMP] web: pager scss revamp
This PR simplifies the SCSS of the Pager component.

After the revamp of the pager, the Legacy Pager was broken because it
used the same SCSS file. This commit adds some BS classes on the Legacy
Pager to keep consistency between both versions while waiting for the
removal of the legacy one.

task-2733437

closes odoo/odoo#82866

Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-03-04 16:00:49 +01:00
Brieuc-brd 070455953b [IMP] web: keep consistency with legacy pager
After the revamp of the pager, the Legacy Pager was broken because it
used the same SCSS file. This commit adds some BS classes on the Legacy
Pager to keep consistency between both versions while waiting for the
removal of the legacy one.

task-2733437

Part-of: odoo/odoo#82866
2022-03-04 15:00:47 +00:00
Brieuc-brd 623d67d254 [IMP] web: pager scss revamp
This commit simplifies the SCSS of the Pager component.

task-2733437

Part-of: odoo/odoo#82866
2022-03-04 15:00:47 +00:00
Brieuc-brd 5097bbd595 [ADD] web: bs5 utility-classes, add gaps
Define "Bootstrap v5 ready" utility-class to handle gaps.
This class definition can be safely removed after migrating to v5.

task-2733437

Part-of: odoo/odoo#82866
2022-03-04 15:00:47 +00:00
tsm-odoo a6bb70c91a [MOV] mail, test_mail: move tracking value tests
task-2767820

This move is done to prepare the use of server side model definitions during tests.
Indeed, a model having all type of tracked fields will be needed to ease tracking
value testing. This model will be added to the test_mail module so the tracking
value tests need to be there as well.

closes odoo/odoo#85819

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-04 14:08:10 +00:00
Dossogne Bertrand 2bde9ebcc3 [IMP] hr_leave: improve leave ux
Small changes in the layout of the hr_leave form view,
mainly for the manager's view point

Task : #2734842 [Time Off] ux changes

closes odoo/odoo#82976

Related: odoo/enterprise#23896
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-03-04 14:07:50 +00:00
JF Aubert 723b642713 [FIX] mrp: fix _split_productions overloading
add missing _set_consumed_qty parameter in _split_productions overloading
fix typo in cancel_remaining_qty parameter

closes odoo/odoo#85824

Task: 2783912
X-original-commit: 1071e74d58c14c3a32c4d19669b0dd8426b14f1a
Related: odoo/enterprise#24995
Signed-off-by: Arnold Moyaux <arm@odoo.com>
2022-03-04 13:12:56 +00:00
Josse Colpaert 83859de33c [FIX] account_edi: We should delete the last info/warning/error msg when success to not have something weird still in the view
closes odoo/odoo#85818

X-original-commit: dab20ed277e32179244ae00df0b8d1c7c19011c6
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-04 13:12:51 +00:00
william-andre 3f6c210745 [FIX] stock: clean clean duplicated key
One key has two different types. Fix one and
let the other one as is to use it in the report

clean commit a038607bfdbe764fd436a94ce8149720fdca87ff

closes odoo/odoo#85813

X-original-commit: 4ca4dbc6707f26d69a4116b1ad90c1d9082119a1
Signed-off-by: Arnold Moyaux <arm@odoo.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-04 13:12:48 +00:00
Audric Onockx (auon) 0910f071a7 [FIX] product : apply only active price rules
Steps :
Install Sale / E-commerce.
Create product P (price = 100).
Create price list L.
Create price rule R (product = P, price = 50).
Go to product P > Price Rules > archive R.
Create a quotation. / Website > click 'Go to website' > Shop.
Select price list L.
Create a SOL with product P. / Search for product P.

Issue :
Price is 50.

Cause :
Archived price rules are included in the 'search' of
_compute_price_rule_get_items().

Fix :
Exclude them.

opw-2752184

closes odoo/odoo#85811

X-original-commit: d5e8308492ac8955ad76fd8d9f3781266dee76f6
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-03-04 13:12:43 +00:00
sofiagvaladze 3840959acf [FIX] hr_expense,sale_expense: make expense_line_ids editable
Related PR - odoo/odoo#84978

task - 2768700

closes odoo/odoo#85619

Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-03-04 12:16:35 +00:00
Thibault Francois e1983aa413 [FIX] base{_import_module}: cloc should not count generated code
* Studio generate computed field "count" when the user add a button
in the button box. Since those lines are written by studio with drag and drop
it should not be counted for the maintenance subscription.

We can detect them because field created by the user in studio start with x_studio
and fields created outside studio does not have studio_customization
xml_id

* Add test to make no standard module introduce customization in the
database during the install the will be counted by cloc

see https://github.com/odoo/enterprise/pull/22664

closes odoo/odoo#85763

X-original-commit: 47ae24081fe5c0c86ce8507229dfb550ec585633
Signed-off-by: Christophe Simonis <chs@odoo.com>
Signed-off-by: Thibault Francois <tfr@odoo.com>
2022-03-04 11:16:52 +00:00
Géry Debongnie 816e6ce374 [REM] web: remove es6 promise polyfill
Since Odoo now accepts ES2019 code anyway, I think that this polyfill
can safely be removed, to reduce assets size.

closes odoo/odoo#85800

Signed-off-by: Samuel Degueldre <sad@odoo.com>
2022-03-04 10:08:45 +00:00
Adrien Widart 62f329d72f [FIX] pos_six: use same web socket
When a user cancels a six payment method, he won't be able to select
another six payment method

To reproduce the issue:
(Use demo data. Install l10n_be so your company is in EUR)
1. Create two Payment Methods PM01, PM02 that use the same payment
terminal (a Six one)
2. Add the methods to the POS
3. Start a POS session
4. Select a product and go to payment page
5. Select PM01, send it then remove the line
6. Select PM02, send

Error: Nothing happens (the terminal doesn't receive the instructions).
After several seconds, an error message is displayed "Transaction was
not processed correctly: apiConnectionLostTerminal"

When starting the POS, because there are two payments methods, both are
instanced, each one with its own instance of `PaymentSix`. However, in
the above case, both payment methods use the same terminal. Therefore,
when sending the transaction with the second method (step 6), the API
creates a second WebSocket (for the second instance of `PaymentSix`)
between the POS and the terminal while such a `WebSocket` already exists
(first instance of `PaymentSix`)

OPW-2679181

closes odoo/odoo#85791

X-original-commit: 2912e0d116ceece51bb1274633cbd22e09735232
Signed-off-by: Masereel Pierre <pim@odoo.com>
Signed-off-by: Adrien Widart <awt@odoo.com>
2022-03-04 10:08:42 +00:00
Géry Debongnie ff7dc5ae8a [IMP] web: update owl to last version
closes odoo/odoo#85773

Changelog: https://github.com/odoo/owl/releases/tag/v2.0.0-beta.2
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-03-03 17:13:45 +00:00
Goffin Simon c25b9e0353 [FIX] account: Default terms and conditions not translated
As in 13.0, the default terms and conditions must be translated in the lang of the partner

PS: In the first computation, narration will be equal to the narration in the lang of the user.
So it was not changed when setting a partner.

The narration must be computed in the lang of the partner.

Writing on payment_ref triggers function _synchronize_to_moves and a write on partner_id was made.

In the write function, function modified was called

https://github.com/odoo/odoo/blob/15.0/odoo/models.py#L3850

And it lead to add the field narration in self.all.tocompute

https://github.com/odoo/odoo/blob/15.0/odoo/api.py#L758

Meaning that the next time it read the field narration, the function _compute_narration was called.
So it reset narration to False

opw:2726012

closes odoo/odoo#85775

X-original-commit: 6d9745e63fec20a7e967f00a428db9109c992bcf
Signed-off-by: Simon Goffin <sig@odoo.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-03 16:18:07 +00:00
Aaron Bohy 36bd5b1699 [IMP] web: allow to access wowl services in legacy
This commit introduces the "useWowlService" hook. This hook allows
Owl components that use the legacy env (not the one of the
webclient for instance, typically called the "wowl" env) to access
services from the wowl env. Its API is the same as the classical
"useService" hook.

closes odoo/odoo#85769

Signed-off-by: Géry Debongnie <ged@odoo.com>
2022-03-03 16:18:03 +00:00
Martin Trigaux 91366e5256 [FIX] base: do not overwrite the overwrite value
The signature of the _load_module_terms was changed at ac63556e23 to
pass explicit parameters instead of values hidden in the context

The previous code used working on a copy of the context when modifing
the 'overwrite' key. This was no longer the case after ac63556e23.

In case multiple languages are updated at the same time (as when a
module is updated), the 'overwrite' value is set to True after the
first loop.

To reproduce:
1. Create empty db with language English and without demo data
2. Activate languages fr_FR, fr_BE and fr_CH
3. Install module "note"
4. Now change in the fr.po the msgstr for this msgid:
   "By sticky note Category" -> "Par catégorie de note collante FR"
   and in the fr_BE.po the msgstr for this msgid:
   "By sticky note Category" -> "Par catégorie de note collante BE"
5. Now update the module note without overwriting translations
   (--i18n-overwrite option not set)
Observed behaviour:
The translations are overriden

opw-2760359

closes odoo/odoo#85768

X-original-commit: 37b98d413debabcd966718b2834d34f349e3cfbc
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2022-03-03 16:17:59 +00:00
Nicolas (vin) 0e601b8b0a [FIX] account_edi_facturx: fix upload with inactive currency
Retroactive fix for an issue in 15.0+
In 15.0+, importing an invoice with an inactive currency will raise
a traceback. Before this it was handled by not setting the correct
currency on the invoice if not active.

With this change, we'll raise an error instead of creating an invoice
with the wrong currency.

closes odoo/odoo#85678

X-original-commit: 14c61c2563efeed1ca14294da32e2eb6d1855c5b
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-03 16:17:46 +00:00
Juan Jose Scarafia cf03174af6 [FIX] l10n_latam_invoice_document: refund doc type
Prior to this change, if the user use a full refund option and choose a document type different than default one, the default document type was use regardless of the choosen one.

This was broken on this commit https://github.com/odoo/odoo/commit/dfd01b8c5c7e1177f37bf199790a0732a61eed78#diff-1369ca152be95632086495cfcfbd54a0d18d893c2389670ff1d516f1596f3e0d

We also fix the journal that is being used to get the available document types, it's not common to change the journal but it could be changed.

closes odoo/odoo#82670

Signed-off-by: Josse Colpaert <jco@odoo.com>
2022-03-03 16:17:42 +00:00
Odoo's Mergebot 68b9c22de9 [REF] *: odoo_ui_icons
- enterprise: https://github.com/odoo/enterprise/pull/24914

Following new policies in terms of product design-language, this commit
will partially revert 546477d reducing the number of `oi` icons.

It will also improve rendering when icons are rendered at our default
font-size (13px), avoiding blur effects when icons use thin lines.

Since fontAwesome will coexists with `oi` longer than expected, the
commit will also review size utility-classes in order to get consistent
result when used in conjunction with fa's ones (notably `fa-lg`).

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

closes odoo/odoo#85651

Related: odoo/enterprise#24914
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-03-03 15:19:45 +01:00
stefanorigano (SRI) 66f86332fe [REF] website: adapt to new icons
This commit will adapt website's topmenu icons in order to be a
consistent with the backend.

It also solves a minor layout issue for '.o_menu_brand' that was
rendered incorrectly in enterprise.

Part-of: odoo/odoo#85651
2022-03-03 14:19:44 +00:00
stefanorigano (SRI) 28f910f5be [REF] *: odoo_ui_icons
Following new policies in terms of product design-language, this commit
will partially revert 546477d reducing the number of `oi` icons.

It will also improve rendering when icons are rendered at our default
font-size (13px), avoiding blur effects when icons use thin lines.

Since fontAwesome will coexists with `oi` longer than expected, the
commit will also review size utility-classes in order to get consistent
result when used in conjunction with fa's ones (notably `fa-lg`).

Part-of: odoo/odoo#85651
2022-03-03 14:19:44 +00:00
Nicolas (vin) 745ad763a5 [FIX] account: invoice accounting date.
The accounting date and the related warnings were in some cases not
being set properly. This change aims to improve that by displaying
warnings in the view and updating the date on post instead of raising
user errors.
This will mostly affect sell documents.

Task id #2778958

closes odoo/odoo#85744

X-original-commit: 51ddb870d346ff61a6ae36c8c3b545eaca9736cb
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-03 12:58:01 +00:00
tsm-odoo cf96f69880 [IMP] mail: enable tracking values in mock server
task-2767820

closes odoo/odoo#85201

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-03-03 12:57:54 +00:00
Nicolas (vin) 81f94e1d65 [IMP] account: improve discount fields in move view
As of now, the discount field is either only shown in
debug mode or if the sale module is installed and a
setting is set in sale.
This field should be shown in the view, and not depend
on a setting from another app.
This is especially true as it could be filled by the ocr
or when uploading from an edi, and it would be inconsistent
if the user couldn't display it.

Task id #2758965

closes odoo/odoo#85737

X-original-commit: eb1a77753debdb034ad00ce10d908f4b9ee264ad
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Nicolas Viseur <vin@odoo.com>
2022-03-03 11:04:37 +00:00
Abdelouahab (abla) 30cbf88f3f [FIX] l10n_fr_pos_cert : error while deleting a journal created by POS
whith France localization, deleting a journal created by POS
leads to two errors.

first one is just a typing error.

second one is an infinite loop caused by calling super().unlink()
from methods marked with the api.ondelete

opw-2750852

closes odoo/odoo#85719

X-original-commit: 4961dd251211776a9661f27acda3c3e4dfedc50a
Signed-off-by: Simon Goffin <sig@odoo.com>
Signed-off-by: abla001 <abla@odoo.com>
2022-03-03 11:04:30 +00:00
Josse Colpaert 22e01f22e0 [FIX] l10n_it_edi: we need for precision in the price unit in case e.g. of tax included
According to the spec, the PrezzoUnitario should be the unit price
without the taxes.  If we use taxes included, this can be problematic.
That is because there is another rule that says that the PrezzoUnitario
* Quantita - Sconto should be within 0.01 precision of the PrezzoTotale.

So, with taxes included and a price unit only rounded to 2 decimals, you
easily go out of that limit.

The solution is to increase the precision on the price_unit (6 decimals
should not cause side effects and precise enough for most cases)
and to do the calculation differently by calculating it again from the
price_subtotal on the invoice line.

Task id: 2764978

closes odoo/odoo#85718

X-original-commit: 82f2794a2aee8492cbd36d8ab4d8a62c9665789d
Signed-off-by: Laurent Smet <las@odoo.com>
Signed-off-by: Josse Colpaert <jco@odoo.com>
2022-03-03 11:04:26 +00:00
Andrius Laukavičius 04573a934b [FIX] base: update user groups faster
When users have same groups, implied_ids can be done in batches,
reducing write operations considerably.

Testing done:

800 users groups_id (all have same groups_id in the end) updated using
old code: took ~10s to complete.

With this improvement, it takes ~1.5s

closes odoo/odoo#85712

X-original-commit: 81994ea628cb492fef4e62c496d4ea1ab55d9a7e
Signed-off-by: Raphael Collet <rco@odoo.com>
2022-03-03 11:04:21 +00:00
Stefan RijnhartandRaphael Collet 4627e83d4b [FIX] base: updating 'base' should update all modules
If an installed module is only present in the dependency graph through a new,
uninstalled dependency, it was not be selected for upgrade when updating the
`base` module (c.q. `--update all`)

closes odoo/odoo#85704

X-original-commit: 6c80e7cfeafaaa4fb7c0d93cbe94c66068fc3170
Signed-off-by: Raphael Collet <rco@odoo.com>
Co-authored-by: Raphael Collet <rco@odoo.com>
2022-03-03 11:04:16 +00:00
Rémy Voet (ryv) 13bddabbe0 [FIX] product: fix performance bottleneck of populate
Since 4911a26d2c, `_check_barcode_uniqueness`
flush the default `_order` of `product.product` models (via many2one in the `_order`
of `product.packaging`). It creates a bottleneck (take > 10 minutes ) when we populate
(medium size) the `product.template` during `set_barcode_variant`.

Force the order to be trivial and simplify the domain with a 'in' instead of
multiple OR.

closes odoo/odoo#85687

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2022-03-03 11:04:13 +00:00
Andrea Grazioso (agr-odoo) 08cc113be1 [IMP] purchase,sale,l10n_in_[sale|purchase]: remove l10n_in_company_country_code field
1. Create a PO from Indian vendor [DEMO], confirm it, receive the products.
2. Go to Accounting app, manually create the vendor bill:
  - select the Vendor [DEMO]
  - in auto-complete field select the one created at 1.

Traceback will raise because the field l10n_in_company_country_code
was removed from account.move in
17610e8ca9

opw-2745052

closes odoo/odoo#85501

X-original-commit: ffbfdde4b5b4cd791e866341a31cdf5e8aeb27e3
Signed-off-by: William André (wan) <wan@odoo.com>
2022-03-03 11:04:03 +00:00
Umesh Gupta 76ccea7a2f [IMP] website_crm_partner_assign: improve lead kanban card view
Currently, if we have both customer and assigned partner names,
they are displayed in a single line separated by an arrow icon.
However, if we have long customer name, arrow icon and assigned
partner name are not visible on card.

This commit improves the display of names by making a few changes
    - breaking the line before the arrow icon
    - displaying both customer and assigned partner name with text overflow
    - adding a tooltip on customer and partner names
    - improving tooltip on the arrow icon

taskID-2763930

closes odoo/odoo#85264

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-03-03 11:03:59 +00:00
Rémy Voet (ryv) e1785e820a [IMP] base: add prefetching group feature
The field prefetching mechanism was poorly customizable.  Before this,
we could only tell if a field was prefetched with other fields or not at
all.  We have no way to inform the framework, like: "When I need data of
that field, prefetch these other fields, which are likely be used in the
same transaction".

From now on, the `prefetch` attribute is used as a grouping key for
prefetching fields.  When a field is fetched, all the fields with the
same value for `prefetch` are taken for prefetching.

For example, consider a small set of fields that are rarely used, except
for one flow A using them.  You want to prefetch those fields only in
the flow A, and you want to fetch them in a single query.  With the new
feature, simply set `prefetch=A` for some string `A` on those fields,
and they will be grouped for prefetching.

closes odoo/odoo#85220

Signed-off-by: Rémy Voet <ryv@odoo.com>
2022-03-03 11:03:55 +00:00
Rémy Voet (ryv) d2b68d186e [FIX] website: remove force prefetch for translate fields
Issue
-----
When website is installed, the rendering of template uses a side effect
of the ORM cache (cache shared between sudoed env vs non-sudoed env) and
the fields prefetching feature to work correctly.

The `self.visibility` in (`_handle_visibility`, website/ir_ui_view.py)
is done in sudo mode, then it will fetch all prefetchable fields and put
them in the cache (that will be read in non-sudo mode in the render of
the template).  Another example of issue related to this:
https://github.com/odoo/odoo/pull/83341.

Because of this, the fields of mixin `website.seo.metadata` were forced
to be prefetchable (the default for translate is to be not prefetchable
since https://github.com/odoo/odoo/pull/82896), which causes a useless
LEFT JOIN on "ir_translation" in most of business flow.

Fix
---
Remove the `prefetch=True` on mixin fields, and add a extra read to fill
the cache in case of website rendering.  It also allows to read these
fields at the same time.

Part-of: odoo/odoo#85220
2022-03-03 11:03:55 +00:00
Rémy Voet (ryv) ce1dc0c404 [IMP] base: make recompute faster
When we read data of one record, the method `recompute` (`_fetch_field`
-> `_read` -> `flush` -> `recompute`) can take more than 40 % of the
time of the `_read`, due to a huge number of recordset creation (from
`records_to_compute` and `records & recs`).  Avoid that waste of time by
postponing the test on records.

For example, on a database with modules crm, mrp, purchase, website,
sale_management, reading the prefetchable fields of the current company
took 1.45 ms ± 60.3 µs, and now takes 1.17 ms ± 110 µs (more than 20%
speedup).

closes odoo/odoo#83818

Related: odoo/enterprise#24645
Signed-off-by: Raphael Collet <rco@odoo.com>
Part-of: odoo/odoo#85220
2022-03-03 11:03:54 +00:00
xlu-odoo 2629348090 [REF] web: notifications revamp
Notifications have now a new look and SCSS has been cleaned up
accordingly. This commit is part of v16 overall restyle (task-2704984).

task#2719037

closes odoo/odoo#82524

Related: odoo/enterprise#23580
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-03-03 11:03:45 +00:00