Commit Graph
169255 Commits
Author SHA1 Message Date
Yannick Tivisse 02e0bcb10f [FIX] hr_recruitment: Improve application_count field computation time
From 120 seconds to 0.5 seconds for 10000 applicants on odoo.com

closes odoo/odoo#151303

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2024-02-01 14:30:02 +00:00
Yannick Tivisse f209536348 [FIX] hr_recruitment: Improve job kanban view loading time
Purpose
=======

From 800ms to 6ms to execute _compute_new_application_count on odoo.com

Part-of: odoo/odoo#151303
2024-02-01 14:30:02 +00:00
Yannick Tivisse b1acba35a2 [FIX] hr_contract: Fix undeterministic test crash
closes odoo/odoo#144266

X-original-commit: 517f2ad627fcaa7382271c7792b4dc3523dbe399
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2024-02-01 14:30:00 +00:00
Walid 3c87077d12 [FIX] account: Cash rounding
Steps to reproduce:
- Enable Automated Valuation.
- Set the cost of Acoustic Bloc Screens to 287.33.
- Set the Product Category on the product to have AVCO automated valuation.
- Enable Cash Rounding.
- Create a Cash Rounding (see tests).
- Make an invoice selling one Acoustic Bloc Screen and remove the tax.
- Set the Cash Rounding on the invoice under "Other Info".
- Confirm the invoice.

Bug:
when summing the ammount of all the lines the result is slightly off
(float accuracy) this will create an unnecessary cash rounding to
compensate

Fix:
round the sum to the currency precision before checking for the cash rounding

opw-3681307

closes odoo/odoo#152112

X-original-commit: 4a6ec1a667ee3d2fba00d277b4c7e8a730a45ecd
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
2024-02-01 12:56:27 +00:00
Rémy Voet (ryv) ccb1f922b2 [FIX] mrp: recursion issue after 88 work orders
Current behaviour:
When planning more than 88 work orders,
there is a recursion error.

Steps to reproduce:
1. Go to Manufacturing
2. Operations > Manufacturing Orders
3. Create a manufacturing order
4. Add 90 work orders
5. Click on Confirm
6. Click on Plan
7. Recursion error

Cause of the issue:
Maximum depth of the Python interpreter stack
The recursion limit being set at 1000
by default (with getrecursionlimit)

Fix:
Upped the limit to ~320 work orders

opw-3651494

closes odoo/odoo#152198

X-original-commit: 25081646ef0b679356ad46f62fe737fb44269baf
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Co-authored-by: Rémy Voet <ryv@odoo.com>
2024-02-01 11:20:10 +00:00
Mahdi Cheikh Rouhou (macr) 4838909bce [FIX] web_editor: discard changes html field
Issue:
======
Discard changes of form having html field doesn't remove the changes
applied in the html field.

Steps to reproduce the issue:
=============================
- Open any mail template
- Add modification on the template
- Click on discard changes

Origin of the issue:
====================
The function `this.props.update` is responsible of updating `_changes`
and updating the record which is called for usual input_field using
`useInputField` hook, but since this html field isn't of the same format
we didn't use it and it's only called in `commitChanges`

Solution:
=========
We update the value of in `_onWysiwygBlur` in case we are `inlineStyle`
so we don't commit but we save the changes for the discard to work
properly.

task-3453497

closes odoo/odoo#151993

X-original-commit: 1624da6f42561792be816836c6d88bc986c3538a
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
Signed-off-by: Mahdi Cheikh Rouhou (macr) <macr@odoo.com>
2024-02-01 11:20:08 +00:00
Claire Bretton (clbr) 84739b67c3 [FIX] account: fix send and print notification test
Forgot to update the test so that it tests both warning and success
notifications.

closes odoo/odoo#152186

Signed-off-by: Laurent Smet (las) <las@odoo.com>
2024-02-01 09:49:59 +00:00
bram1000andBenoit Socias 4e110638f0 [FIX] website: HTML-escape submitted form fields
When fields are submitted through the website form, their values are
used as they are. Because of this it is possible to include HTML in the
sent email while this is not desired.

To avoid this, this commit HTML-encodes the values received for custom
fields and html fields.

Steps to reproduce (with default_field):
- Go to the "Contact us" page with form untouched (it should send mail)
- Fill in the form
- In the name put John <b>Smith</b>
- Submit the form
- You will see that Smith will be in bold in the received mail

Steps to reproduce (no default_field):
- Install website_recruitment
- Go to the "Contact us" page
- Enter edit mode
- Change the form type to apply for a job (and select a job to apply in
  the right panel option, like "Consultant")
- In debug mode in the backend, go to ir.model fields
- Find "Applicant (hr.applicant) record and edit it
- Remove the website_form_default_field_id in the "Website Forms" tab of
  the form view of this record
- Back to the "contactus page", add a new custom field to the form
- Now, out of edit mode, add "<b>Something</b>" in the custom field and
  submit the form
- Find the job application in the backend in the recruitment module, it
  should be inside the "Consultant" job.
- You will see the "Something" in bold in the chatter

Note: In Odoo 16.2, commit [1] is already doing something similar for
      one of the 2 places fixed here.

[1]: https://github.com/odoo/odoo/commit/3e7acff8d9302c3332fe3011f75374170484c61d

task-3650953

closes odoo/odoo#152170

X-original-commit: c2e934f421a8afee4ce537b1e03871a1bcef99d1
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Bram Van Gaal (brvg) <brvg@odoo.com>
Co-authored-by: bram1000 <brvg@odoo.com>
Co-authored-by: Benoit Socias <bso@odoo.com>
2024-02-01 09:49:59 +00:00
Andrea Grazioso (agr-odoo) 7ef704830f [FIX] account: error on analytic distribution change
Install Studio
Activate form view of journal items and disable readonly flag on Analytic distribution field.
Create a journal entry adding analytic distribution to a line and post.
Now open the journal item in form view and try to change the analytic distribution

Action will be blocked by error
This is caused by the onchange in _inverse_analytic_distribution. As the
method take care of unlinking and creating new lines no more actions are
required by the orm

opw-3690346

closes odoo/odoo#152143

X-original-commit: 89ef4ae17a507007855ce21e166bec82fc25bd93
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Andrea Grazioso (agr) <agr@odoo.com>
2024-02-01 09:49:58 +00:00
Lopes Marc (loma) 01d7998507 [FIX] website_slides: align slide navigation btns vertically
HOW TO REPRODUCE
================
Don't sign in and go to front-end > Courses > Trees, Wood and Gardens >
Main Trees Categories. '< Prev' and 'Next >' are not centered vertically.

HOW TO FIX
==========
Slides navigation buttons are <a> HTML elements. Add them bootstrap
class 'my-auto' to handle their height properly.

task-3633452

closes odoo/odoo#152130

X-original-commit: 4fb0631526153272c7fe203b35980fd7b18f6125
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2024-02-01 09:49:57 +00:00
visp-odoo 91fe7a664a [FIX] web_editor: convert p into span in li
Before this commit:

if you have <p> within <li>,sometimes removing the <p> will result in the loss
of all classes.

After this commit:

Replace p inside li with span while preserving classes.

task-3546209

opw-3602047

closes odoo/odoo#152104

X-original-commit: e396a1097463d014a1aba553022451365b31f5f3
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
2024-02-01 09:49:56 +00:00
John Kirkwood (kij) 4dec76afc5 [FIX] mail: correct HEAD tag typo
closes odoo/odoo#152077

X-original-commit: 81ede4b9114b1eca847dad3d975c243d64215d3e
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2024-02-01 09:49:55 +00:00
roen-odoo de020a5ae8 [FIX] pos_online_payment: Add missing phone number to kwargs
Current behavior:
When you try to pay with razorpay, you got an error saying the phone
number was missing.

Steps to reproduce:
- Setup RazorPay
- Set a phone number on admin
- Go to the POS
- Add a product to the cart
- Click on the payment button
- Select razorpay
- Scan the QRCode with your phone (make sure you'r connected on the
  admin account)
- Try to finalize the payment

opw-3669600

closes odoo/odoo#152040

Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
2024-02-01 09:49:54 +00:00
Deependra Solanki d824587776 [FIX] web_editor: should select only selected node in destroyLinkTools
Before this commit:

`destroyLinkTools` function sets the selection to entire link. However, in
case where a website snippet had a structure like
```html
<a>
    <div>
        <i class=fa-xxx>​</i>
        <div>
            <h4>Text</h4>
            <font>Text</font>
        </div>
    </div>
</a>
```
selecting the complete link caused problem. The toolbar couldn't be
updated correctly, also one could not change the a tag of a single element
within the link.

After this commit:

`destroyLinkTools` selects the `anchorNode` and the `focusnode` of the
selection instead of entire link.

task-3245819

closes odoo/odoo#151752

X-original-commit: e88ffecc4bdb0480fc1d47af14558f28f72a665d
Signed-off-by: Antoine Guenet (age) <age@odoo.com>
2024-02-01 09:49:54 +00:00
Deependra Solanki 51e4ac9e09 [FIX] web_editor: properly restore cursor in setTag
Commit [1] introduces an approach to preserve the cursor in `setTag` when new
node is inserted. It used `setStart` at `firstLeaf` of `startContainer` and used
offset of the `startContainer` similarly for `endContainer` which is incorrect
and would throw traceback regarding no child at that offset.
This commit fix it by getting the correct startContainer and endContainer when
new node is created.

[1]: d04e32c

task-3245819

X-original-commit: d9095d277e4dbfa318ff6ddd2692dbb3c71e4775
Part-of: odoo/odoo#151752
2024-02-01 09:49:54 +00:00
Robin Lejeune (role) 38506df2a1 [FIX] web_editor: fix CTA button upgrade
After upgrading (specifically following this [upgrade PR]), when editing
an element, the editor may be tricked into considering that the page
isn't correct even though it is. It causes the "discard" dialog to open.

Steps to reproduce after the [upgrade PR]:
- Remove the CTA in 16.0 with the bin icon (on the button itself, or
from the edit panel, next to the "Block" section).
- Upgrade to 17.0.
- The button is back. Edit the header and click to hide it.
=> a dialog opens "Are you sure you want to discard your changes?".
- Click either "yes" or "cancel".
=> either way, nothing is discarded nor cancelled.

[upgrade PR]: https://github.com/odoo/upgrade/pull/5500

Related to opw-3644220

closes odoo/odoo#151291

Signed-off-by: Guillaume Dieleman (gdi) <gdi@odoo.com>
2024-02-01 09:49:52 +00:00
asno-odoo 321cffafb7 [FIX] account: update repartition lines correctly
When repartition_lines are added to an already existing account_tax
record, on upgrade, the new repartition lines are inserted with just
tags, which results in the insertion of null value in document_type
column.
To reproduce:
1. Modify l10n_fr/__manifest__.py version to 2.0
2. Create an empty DB
3. Start ./odoo-bin -c ../.myodoorc -i l10n_fr with demo data
4. Stop the database (can dump it for convenience)
5. Start ./odoo-bin -c ../.myodoorc -u l10n_fr
6. Add a couple of repartition lines (invoice + refund) to an existing tax to odoo/addons/l10n_fr/data/template/account.tax-fr.csv
7. Modify l10n_fr/__manifest__.py version to 2.1
8. Start ./odoo-bin -c ../.myodoorc -u l10n_fr

closes odoo/odoo#149733

X-original-commit: 8dfdc6f9abe490f46d3df92bf056e334e1a02750
Signed-off-by: Aslam Noman (asno) <asno@odoo.com>
2024-02-01 09:49:51 +00:00
Raphael Collet b00d135599 [FIX] core: optimization of Cache.set() to avoid multiple record.id
The expression record.id relies on a Python descriptor that has some
overhead, which is small but not negligible when used in a low-level
method of the ORM.  We simply factor out this expression in order to
evaluate it once for the method.

closes odoo/odoo#149624

Signed-off-by: Raphael Collet <rco@odoo.com>
2024-02-01 09:49:50 +00:00
Rémy Voet (ryv) 65a2c2ebc8 [FIX] core: new record shouldn't force fetching inverse x2many fields
In e0297bdac4, the creation of a new
record always patches the inverse fields of relational fields in order
to make the cache of those inverse fields consistent.

For instance, when creating a new record like

    user = model.new({'group_ids': [Command.link(group.id)]})

The inverse of field 'group_ids' on the new record having 'group' as
origin is patched so that its value includes record.  A side effect of
this mechanism is that it fetches group.user_ids in order to patch the
value of new_group.user_ids, where 'new_group' is the new record having
'group' as origin.

The side effect described above is problematic when that inverse field
has huge cardinality, like hundreds of thousands of records, and this
performance overhead is unacceptable when the inverse field is actually
not used at all.

We address this performance issue by patching the value of x2many fields
only when they are used.  If the value of the field is not in cache yet,
the patch is applied once a value is put in cache.  If the field is not
used, the patch is simply never applied.

Part-of: odoo/odoo#149624
2024-02-01 09:49:50 +00:00
Mélanie af1c406db0 [IMP] hr_leave : check if a list is empty before creation's call
To prevent no-wanted behaviour on empty list during creation, we will check it before the call creation

closes odoo/odoo#144394

Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2024-02-01 09:49:49 +00:00
Mélanie d0363dd475 [FIX] hr_holidays : fix duplicate allocation for batch allocation
STEP TO REPRODUCE :
	1. create a time off type with alloation_validation_type == 'no'
	2. create a batch allocation (with company, department, employee tag or employee mode but with some employees)
	3. records will be duplicated
Expected behaviour : no duplication

task : 3615657

Part-of: odoo/odoo#144394
2024-02-01 09:49:49 +00:00
Luis González c183585c80 [FIX] web: add missing ARIA attributes to command palette
Since searches in the home screen are now handled by the command palette,
some ARIA attributes are required for assistive technologies to know
what is the currently-selected result. That because the actual focus is
always on the search box, while the actually-selected result is
highlighted by toggling classes, which makes not possible anymore to
know what is the selected result for e.g. screen reader users.

For more info, see original implementation on enterprise's home menu on
[1]. This commit is just re-applying such changes here.

[1] odoo/enterprise#14511

closes odoo/odoo#152147

X-original-commit: 9764e6f7fe39a10f3b04e1764110d8c274d0431a
Related: odoo/enterprise#55562
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
2024-02-01 08:24:13 +00:00
Eteil Djoumatchoua(etdj) etdj@odoo.com 1cc0a9faf2 [FIX] account: send multiple records of the same model to the same recipient
Steps:
- Go to Invoicing, list view.
- Select two records with the same partner.
- Send receipt by mail.

Issue:
Just one mail is sent.

Reason:
``mailing_document_based`` parameter which is used to enable sending multiple records to the same recipient
is not passed in the context.

opw-3552562

closes odoo/odoo#151273

X-original-commit: b806ef9fbdbb149ab0df1b63902236982ca88233
Signed-off-by: Habib Ayob (ayh) <ayh@odoo.com>
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2024-02-01 08:24:11 +00:00
Sven Fuehr 544857ba26 [FIX] account: no "Draft" title on invoices that were posted before
Consider an invoice that was reset to draft.
When its is edited to be '/' (and the record is saved) an additional "Draft" title appears.
It should not appear.

After this commit the "Draft" title will not be shown on invoices
that were posted before.

task-3680398

closes odoo/odoo#152110

X-original-commit: d0876de81dc66cb6483598deb33bf6c81212ec89
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Sven Führ (svfu) <svfu@odoo.com>
2024-02-01 07:07:00 +00:00
Anh Thao Pham (pta) 96560c4db6 [FIX] website_sale: fix prices on Products snippet on branch website
Steps to reproduce:
- Create a branch for a company (e.g. Branch X)
- Go to "Website / Configuration / Websites"
- Create or configure a website on Branch X (e.g. Website X)
- Go to "Website / Configuration / Settings"
- Select Website X
- Set "Display Product Prices" to "Tax Included"
- Create a product for a price of $100 and a tax from parent company (e.g. 15%)
- Go Website X
- Edit Home page and add Products snippet

Issue:
On the Products snippet, the price of the product should be "Tax Included" ($115),
but it is not. The displayed price is $100.

Cause:
When computing the prices, taxes from parent companies are not taken into account.

This fix is a complement to https://github.com/odoo/odoo/pull/151223

opw-3660156

closes odoo/odoo#152105

X-original-commit: ba6cb4f16fdbfa121e52f3c17c70e9783e8c2ea5
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
2024-02-01 07:06:59 +00:00
vava-odoo 873a13ef62 [FIX] base_import_module: fix missing field name in non-debug mode
Before this commit, the website of the industry module ends with
`/False`. This is because the website of the module requires the name
of the module. It is therefore added in the _get_modules_from_apps
method.

closes odoo/odoo#152078

Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
2024-02-01 07:06:57 +00:00
Shaan Thakkar (THSH) ba3980e132 [FIX] web: resolve traceback when switching to mobile view
Steps to reproduce:
===================
1. Configuration > Projects
2. Open any project
3. Setting tab
4. Document field
5. Create and edit a new workspace.
6. Inspect mobile view
7. Save it or discard it -> traceback occurs

Technical Reason
================
The dialog values are prepared based on the desktop view, which results in the
scrollToOrigin function is not being prepared when the condition is not met.
Consequently, when the view is switched to mobile and inside the onWillDestroy,
the scrollToOrigin is called but it is not prepared so traceback occurs.

After this commit
=================
Now the function will be prepared even if we are not in the mobile view and
traceback will not occur.

Task-3573747

closes odoo/odoo#152074

X-original-commit: bc0a313f56347ea74eea1e5106cef8d86357c9ef
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-02-01 07:06:56 +00:00
Robin Lejeune (role) 1e94c7f0cd [FIX] google_recaptcha: update recaptcha score
The reCaptcha score was set by default on 0.5. According to [Google's
documentation], that score isn't valid by default. It should be one of
0.1, 0.3, 0.7, 0.9. To use other values you must first go through a
security review from reCaptcha.

[Google's documentation]: https://cloud.google.com/recaptcha-enterprise/docs/interpret-assessment-website#before_you_begin

task-3585213

closes odoo/odoo#152073

X-original-commit: 6f18069c71fc09fc624df03243bccedf0dbf96e5
Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
Signed-off-by: Robin Lejeune (role) <role@odoo.com>
2024-02-01 07:06:56 +00:00
Rodolpho Lima 457686ceae [FIX] mass_mailing: duplicate call to saveModifiedImages
The 'saveModifiedImages' function is already called by the parent class'
(HtmlField) 'commitChanges', in which the replacement of the images' src
attribute and the removal of the 'o_modified_image_to_save' class are
done with the editor's observer deactivated.

Before this commit, calling this function before the call to
super.commitChanges resulted in converting the images within a history
step that was later reverted by the 'historyRevertCurrentStep()' call at
the end of the '_pendingCommitChanges' function.

Morover, the '$content' property is undefined.

closes odoo/odoo#152065

X-original-commit: 622ca94b958444ae2279f13871c6a05942fdaf0e
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
Signed-off-by: Rodolpho Cammarosano de Lima (rcdl) <rcdl@odoo.com>
2024-02-01 07:06:55 +00:00
Rodolpho Lima 69dc6d845a [FIX] mass_mailing: multiple attachments for same image
Before this commit, base64-encoded images were converted to attachments
only for the body_html field, leaving the body_arch's content unchanged.
As a result, every time a record was updated, the body_html content,
which is generated from the body_arch's content, would have the same
base64-encoded images, which were converted again to new attachments.

Moreover:
- the created attachments were not linked to the mailing record (no
  res_model and res_id).
- the attachment name contained "cropped_image", even for images that
  were not a result of cropping.
- when the image conversion happened for a record in creation, the
  resulting attachment name was "cropped_image_mailing_False_0" (or any
  other number, the relevant part is "False", where the record's id was
  expected).
- the body_arch could take an excessively large amount of space in the
  database table, due to its base64-encoded images (see [1]).

This commit makes sure the body_arch has its images converted to
attachments as well, and also makes sure such attachments are reused
when replacing the image sources in the body_html, instead of creating
new ones.

Besides, the "cropped_image_mailing" in the attachment's name was
replaced by the more generic "image_mailing".

Lastly, when a record is being created, the conversion to
attachments now happens after the call to super().create, so that the
record's id is known when creating attachments.

task-3479586

[1]: https://github.com/odoo/odoo/pull/128452

X-original-commit: 9c5a56d2be9c1a480d526755327c79e2daa90a35
Part-of: odoo/odoo#152065
2024-02-01 07:06:55 +00:00
Martin Quinteros 3e41ca178e [IMP] payment_mercado_pago: add two states in mapping constant
Although the lack of these statuses does not block the flow of a
transaction, they create confusing records for the user.

 - Authorized: it is returned by Mercadopago when it authorizes
payments by bundle. It should behave as a pending payment as it's not
yet captured and could still be canceled by timeout.
 - Cancelled: It is returned by Mercadopago when a payment is not made
within the expected timeframe. This prevents odoo from leaving payment
transactions in draft that cannot be cancelled by the customer.

closes odoo/odoo#152064

X-original-commit: 44790e7f115610548b140c0d53f97bb11f973224
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
2024-02-01 07:06:54 +00:00
Pedram (pebr) 179d91a0cb [FIX] pos_mrp: handle multiple order lines with kits
This commit fixes a ValueError that occurred when an order contained
two or more order lines with kits. The error was caused by the
'self.qty' expression, which failed when 'self' was a recordset.
The code has been updated to correctly handle multiple order lines
with kits.

opw-3708950

closes odoo/odoo#152053

X-original-commit: 668933002e2912f8df531b065f81777b2b491514
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Pedram Bi Ria (pebr) <pebr@odoo.com>
2024-02-01 07:06:53 +00:00
Carlos Dauden 8b1cbeb71a [IMP] stock: Avoid unneeded write in _enable_show_reserved method
As long as the framework is not able to avoid rewriting values that are already set, we must add checks to avoid triggering multiple processes linked to that value assignment.

Example:
https://github.com/odoo/odoo/blob/66c11acdbedf8d1bcae6deb8ec54c5da5a3ae16d/addons/stock/models/product_strategy.py#L111
https://github.com/odoo/odoo/blob/11d81b2145e95c50481101a63d3ad1d244279af4/addons/stock/models/stock_move.py#L302-L341
https://github.com/odoo/odoo/blob/daea3d4e10b8fc2c4840fff30474a1203eff55c2/addons/sale_stock/models/sale_order.py#L402-L418

It may be unusual for a field to compute stored depending on a non-stored, but the reality is this.

closes odoo/odoo#152026

X-original-commit: 123212a5f5598d91f31869c49ac8d28aba1f698a
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2024-02-01 07:06:52 +00:00
Lucas Lefèvre (lul) 7e6a02ac0f [FIX] spreadsheet: keep leading zeros of char fields
When a char field contains a value which represents a number (e.g. "00036"),
the value is inserted as a number in the formula instead of a string.
Because of this, the function value is not found.

actual:	​	=ODOO.PIVOT.HEADER(1,"x_studio_barcode",00003456799)
expected: 	​=ODOO.PIVOT.HEADER(1,"x_studio_barcode","00003456799")

closes odoo/odoo#152018

Opw: 3623662
Task: 3631998
X-original-commit: 9fedd9a5c3daacb71862864ede466d25420749bb
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
2024-02-01 07:06:51 +00:00
Abderraouf Ghrissi (abgh) 537a96d1aa [FIX] project: task date_deadline not copied
Steps to reproduce:
- create a project and a task inside
- set date_deadline on the task
- copy the project
=> the copied task has date_deadline = False

Source:
- date_deadline copy property wasn't changed to True when the field
was merged with planned_date_end in 17.0

Fix:
- copy was removed as its default value is True

closes odoo/odoo#152006

X-original-commit: https://github.com/odoo/odoo/commit/56073896a69d9f68ce7e7938d9dec7ef094e19b3
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2024-02-01 07:06:50 +00:00
vlst-odoo cb0efa815d [IMP] point_of_sale: allow hiding images
In this commit we add the ability to toggle between showing and not
showing product and category images in the pos ui.

Because this change is done in stable, we store the user's selection in
`ir.config.parameter`.

In the forward port, this will be removed and the settings will be
stored in `pos.config`

Task 3704416

closes odoo/odoo#151823

Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
2024-02-01 07:06:48 +00:00
Aurelien MARIE (auma) 42a72f6a20 [PERF] mrp_subcontracting: Speed up confirmation of PO
Current behavior:
Confirming a Purchase Order with more than 50 lines takes
too much time to be processed. In the case of the client
they had PO with more than 200 lines which makes it
impossible for them to confirm them.

Step to reproduce:
- Install mrp and mrp_subcontracting
- Create PO with more than 50 order lines or more
- Try to confirm it
- Take a long time or timeout

Benchmark (made in 16):
| No. of PO lines | Before  | After  |
|-----------------|:-------:|:------:|
| 9               |  1s30   |  1s30  |
| 91              |  1min   |   16s  |
| 273             |  4min   |   50s  |
| 405             | 4min30s | 1min6s |

Fix:
Batch more actions and records to reduce the number of
queries generated by the ORM.

opw-3625892

closes odoo/odoo#149830

X-original-commit: 7d9d7917948df966ada2055dcfead0cabaaf0651
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
2024-02-01 07:06:47 +00:00
Arthur Jochems (ajoc) 31f4e932c5 [FIX] stock(_account): don't count unpicked moves for analytics
As a result of the Quantitypocalypse (7dda6bb), move lines are being
created for MO components before they're actually consumed. This in turn
automatically creates analytics lines, debiting accounts for these
unconsumed parts. This commit globally prevents any move line that is
not yet picked (i.e. consumed/reserved) from being included in an
analytic entry.

Additionally, an edge case where setting a move's qty to 0 did not
trigger adjustments of dependent models was fixed.

Part-of: odoo#146114

Task-3621105

closes odoo/odoo#146114

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2024-02-01 07:06:46 +00:00
Arthur Jochems (ajoc) 43f296177e [IMP] {mrp,stock}_account: cross analytics support
A recent feature in accounting (odoo#139225) introduces cross analytics,
which allows submitting multiple accounts per line (one account per
plan). This is not done, as would be assumed, by changing the
`account_id` field from a Many2One to a Many2Many, but by adding fields
to `account.analytic.line` every time a new root analytic plan is
created.

This approach has certain advantages, but a particular disadvantage is
that it becomes harder to update existing lines. For MRP, updating
rather unlink-recreating lines is important for employee time tracking,
where the analytic line will be updated every time the time worked is
updated, and the employee's wage can change between updates. In this
edge case, the accumulated cost must remain calculated at the old wage,
and newer costs must accumulate at the new, actual wage.

Concurrent closing line edge case
================================
An analytic distribution assigns divides an expense into smaller
expenses for analytic accounting. Typically, every fractional expense is
credited to a different analytic account, and they total to 100% of the
original expense. With multiple analytic plans, dividing that expense
can happen different ways. For example, one analytic plan may track
expenses per department, while another keeps track of expenses per
region. This means that an analytic distribution may contain accounts
belonging to different plans, with every plan dividing the original
expense in different ways across its own accounts. For cross accounting,
fractional expenses can be assigned simultaneously (i.e. on one line) to
multiple accounts (up to one per analytic plan). In our example, this
would mean that this fraction was spent by a specific department in a
specific region.

For an analytic distribution to be accurate, we must ensure that for
every plan, the sum of all accounts come out to the total percentage
(usually 100%) that was distributed in the first place. Because
multiplying large numbers with small percentages can introduce rounding
errors, we need to correct for any discrepancies. With one account per
line, this is easy; when a line closes out one of the plans in an
analytic distribution, we assign the exact outstanding amount for that
plan to that line, ensuring that the sum across all accounts adds up to
the exact total percentage of the expense that was divided in the first
place. Since every plan closes out on a different line, we can apply
this correction every time and the amounts are always correct across the
entire analytic distribution.

The problem with cross analytics, and thus multiple accounts per line,
is that a line can now sometimes close out two different plans, with
slightly different outstanding amounts. This means we can no longer
guarantee that every plan in an analytic distribution sums out to the
original expense. Luckily, only certain analytic distributions are
vulnerable to this edge case: they must distribute across multiple
plans, and must have at least one line where not all participating plans
are credited. There exists no trivial way to fix this. The current
implementation follows the approach of the accounting module, which
takes no special precautions against this edge case.

Part-of: odoo#146114

Task-3621105

Part-of: odoo/odoo#146114
2024-02-01 07:06:46 +00:00
Antoine Boonen 4f2982f403 [REV] account: Fix test in account taxes
Revert of commit da251b757d

Problem
---------
In said commit, tests were failing due to
1. the new restrictions on tax
2. default creation of repartition lines.

However, updating the way chart_template._get_chart_template_data is
patched in those tests was not the way to go. Because of that, some
fixes due to migration error to 17.0 failed - PR #149733.

closes odoo/odoo#151189

Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2024-01-31 20:40:42 +00:00
Arnold Moyaux c5175077ff [FIX] mrp: don't block base on start date but on BoM order
The `test_conflict_and_replan` was not properly setup and doesn't
show the real issue when plan workorders in wrong order and use the
replan action.

.workorder_ids return base on the _order of `mrp.workorder` that is the
'leave_id, date_start, id'. However in our case, when the dependency are
not active, we want to do them in the order define on the BoM. So we
sort them before by operation sequence before defining the
`blocked_by_workorder_ids`

closes odoo/odoo#143850

Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
2024-01-31 20:40:41 +00:00
Hoang Tien Dung 17a3306d8b [FIX] mrp: The start date of a manufacturing order is never set.
Issues
------
All manufacturing orders are not having a start date

This commit
-----------
- Fix not updating start date on manufacturing orders.

X-original-commit: 2e5da1130f4a7056f746a4cce6ba75bf699dbe62
Part-of: odoo/odoo#143850
2024-01-31 20:40:41 +00:00
Jairo Llopisandxmo-odoo 18b4902a19 [FIX] base: allow browsing form view of missing module
Before this patch, if you once had one module available and, later, remove it, you'd be getting an exception when browsing its form view and trying to get its icon image.

Now it gets the base module icon image, just like it should.

@moduon MT-1524

closes odoo/odoo#151870

X-original-commit: 4543f45e0066814d5722acfcac3c8bc8d09b8cb1
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Co-authored-by: xmo-odoo <xmo@odoo.com>
2024-01-31 18:59:10 +00:00
Anh Thao Pham (pta) 5047377ff6 [FIX] l10n_fr: fix "Domestique - France" fiscal position
Issue:
This PR (https://github.com/odoo/odoo/pull/145412) wrongly removes
"vat_required" option from "Domestique - France" fiscal postion.

Solution:
Set "vat_required" option back.

opw-3617761

closes odoo/odoo#151844

X-original-commit: 44e53832f28be4bbc170ae0441e48636d2f437fb
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
2024-01-31 18:59:08 +00:00
Xavier ALT 308c5b38e2 [FIX] sale_purchase: cancel order wizard warn about PO when there's none
To reproduce on runbot:

- edit the access rights of internal user 'lauriepoiret' and grant she
  the group "Sales / User: own document only" (and ensure she does not
  have the group  "Purchase / User")

- as 'lauriepoiret', create a sale order for a product without
  'service subcontracting' (ex. Bacon Burger) and confirm it

- click on "Cancel" button

In the wizard and warning is shown:

```
There are active purchase orders linked to this sale order that are
not cancelled automatically!
```

As the user is not a member of `Purchase / User`, he has no right
to read the `display_purchase_orders_alert` field which prevent
the invisible attrs to be correctly evaluated, showing the warning
in all cases even when there is no purchase order linked

This commit restrict the PO warning to the same `Purchase / User`
group to ensure that warning information is coherent

closes odoo/odoo#151968

X-original-commit: 6086d6fcc87128a72bad055a9a749c5329c6e901
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2024-01-31 17:13:58 +00:00
Eteil Djoumatchoua(etdj) etdj@odoo.com a3befcc5a9 [FIX] mail: set body on mail.message on event registration confirmation
Steps:
- Go to any event with tickets and using the ticket confirmation
template, sending 'after new confirmation'.
- Confirm a new attendee.
- An email is sent but the chatter only shows the attachment and the
subject, with no body.

Issue:
Chatter should show full content of the email.

Reason:
Above 16.2+ the 'body' is not implicitely set when genrating the
template in ``mail_template.send_mail()``. As discussed with RETH, when
requesting the 'body_html' for a template, setting the 'body' solves the
problem.

opw-3562438

closes odoo/odoo#151930

X-original-commit: 0a3d4b10a7c81d05d9bf6864b0b9a2f48f09b2a0
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2024-01-31 17:13:57 +00:00
Demesmaeker 844b512077 [FIX] website_sale: hide header from user that shouldn't see an alert
closes odoo/odoo#151912

X-original-commit: 1999beb5cc364927fd8ae6a5c15509a62c5af257
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
2024-01-31 17:13:56 +00:00
Deependra Solanki b4a7e5333f [FIX] web_editor: fix rollback on pasting using ctrl+shift+v
Before this commit:

When pasting using CTRL+SHIFT+V, if the textFragment includes linebreak(\n),
each textFragment is divided, and each seperated fragment is inserted using
`insert` command, followed by `oEnter` command. However, when `oEnter` is
UNBREAKABLE, the inserted text is ROLLBACKED.

After this commit:

We now check whether the anchorNode's closestBlock is UNBREAKABLE. If so use
`oShiftEnter` command; otherwise, use `oEnter` command which avoids ROLLBACK.

task-3563785

closes odoo/odoo#151911

X-original-commit: f1e35ca82cf72ffb21c586d9bf1714bb388fe257
Signed-off-by: Geelen Sébastien (sge) <sge@odoo.com>
2024-01-31 17:13:55 +00:00
Leonardo Pavan Rocha 8ae764a97b [FIX] calendar: fixes traceback when end is not set
In calendar if you delete the end_date, switch to all_day event and set both
start_date and stop_date and try to create the event, it will raise an error
because `end` is not set. This is due to 'end' being a required field and the
end_date not setting the end value. This commit adds an onchange to properly
set the start and stop values from the start_date and stop_date.

task-3682608

closes odoo/odoo#151910

X-original-commit: ff431fc02df59b731ea2a8a7051c1e1d42581637
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
2024-01-31 17:13:54 +00:00
Bruno Zanotti ba2012826f [IMP] stock: allow to filter orderpoint locations
This commit allow to inherit the method _get_orderpoint_locations to
filter in which location compute orderpoints imrpoving performance and
usability

closes odoo/odoo#151909

X-original-commit: 2f245b40e8cecf87cb3334a80b24a54cd6e99d12
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2024-01-31 17:13:53 +00:00