Commit Graph
159319 Commits
Author SHA1 Message Date
Odoo's Mergebot 404a083574 [MERGE][REF] delivery: extract stock logic in separate module
It's currently impossible to set fixed delivery costs in eCommerce without installing Inventory. This is a problem for one-app free instances on our SaaS, which would need to pay for a feature that should be part of the basic eCommerce features bundle.

Delivery is now split from inventory/stock module to allow for a soft free integration into website_sale. This PR makes it possible to define fixed-cost delivery methods in eCommerce without installing Inventory by adding a direct dependency of `website_sale` on `delivery`. The bridge between those two modules is therefore included in the former.

Steps are:
- extract the Inventory logic from the `delivery` module into a new `stock_delivery` module;
- move `website_sale_delivery` into `website_sale`;
- adapt dependencies to `delivery` and `website_sale_delivery`;
- remove bridge module with loyalty directly in `website_sale_loyalty`;
- move `website_sale_delivery_mondialrelay` to `website_sale_mondialrelay`.

task-3074497
task-3203210

See also:
- https://github.com/odoo/enterprise/pull/36609
- https://github.com/odoo/upgrade/pull/4362

closes odoo/odoo#110686

Related: odoo/upgrade#4362
Related: odoo/enterprise#36609
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2023-03-14 12:23:47 +01:00
Valentin Vallaeys (vava) 323bb4f03d [FIX] website_sale(_loyalty): merge main controller methods
Part-of: odoo/odoo#110686
2023-03-14 12:23:46 +01:00
Valentin Vallaeys (vava) d3cddbe89a [FIX] delivery, website_sale: fix UX issues in views
In ecommerce, the form vue of shipping methods should be improved to
easily set up fixed delivery costs. This commit improves the
user-experience and solves bugs on the fields displayed.

task-3203210

Part-of: odoo/odoo#110686
2023-03-14 12:23:45 +01:00
Valentin Vallaeys (vava) 5ce8d955f5 [REF] website_sale_mondialrelay: rename module
Part-of: odoo/odoo#110686
2023-03-14 12:23:45 +01:00
Valentin Vallaeys (vava) f9e1b8bcfc [REF] website_sale_loyalty: remove bridge module with delivery
Part-of: odoo/odoo#110686
2023-03-14 12:23:45 +01:00
Valentin Vallaeys (vava) 8acd58d85c [REF] delivery_*, website_sale_**: dependency to delivery
*: mondialrelay, stock_picking_batch
**: delivery_mondialrelay, loyalty_delivery, picking

Adapt dependency to `website_sale` directly instead of
`website_sale_delivery`.

Part-of: odoo/odoo#110686
2023-03-14 12:23:45 +01:00
Valentin Vallaeys (vava) 74a17c1b26 [REF] website_sale(_delivery): website_sale includes delivery
It's currently impossible to set fixed delivery costs in eCommerce
without installing Inventory. This is a problem for one-app free
instances on our SaaS, which would need to pay for a feature that
should be part of the basic eCommerce features bundle.

This commit makes it possible to define fixed-cost delivery methods in
eCommerce without installing Inventory by adding a direct dependency of
`website_sale` on `delivery`. The bridge between those two modules is
therefore included in the former.

Part-of: odoo/odoo#110686
2023-03-14 12:23:44 +01:00
Valentin Vallaeys (vava) a54c304487 [REF] (stock_)delivery: split delivery from stock
Extract the Inventory logic from the `delivery` module into a new
`stock_delivery` module. This will allow to integrate the basic delivery
features into the website_sale app in a one-app free database.

task-3074497

Part-of: odoo/odoo#110686
2023-03-14 12:23:44 +01:00
det a6988b4d54 [FIX] hr_expense: missing dependency
Before this commit, it was not possible to install hr_expense alone.
This commit enable the installation of standalone hr_expense by adding
missing dependency.

closes odoo/odoo#115140

Signed-off-by: Nicolas Viseur (vin) <vin@odoo.com>
2023-03-14 11:08:19 +01:00
Abdelouahab (abla) 53eaf7d3a0 [FIX] web: break text when overflow
To reproduce
============
- on Time off, create a time off with a big description
- approve this time off
the form breaks

Problem
=======
the style of text overflow is not handled

Solution
========
add `text-break` class to the input part

opw-3118856

closes odoo/odoo#115120

X-original-commit: 10bdfc46f32458f9f8a8fe5f9d298bfc10591aea
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: abla001 <abla@odoo.com>
2023-03-14 11:08:13 +01:00
Stefan-Calin Crainiciuc (stcc) e1639c2c1e [FIX] web: move test
The test added in dea66e1df317ca8782a68ece6c1e5917f6e8f3ec depends on a `mail`
helper, even though it is in the `web` module.

opw-3133731

closes odoo/odoo#115104

X-original-commit: e0ac9c41c6852cc147a9dea236421193161d7abe
Signed-off-by: Georis François (fge) <fge@odoo.com>
Signed-off-by: Stefan-Calin Crainiciuc (stcc) <stcc@odoo.com>
2023-03-14 11:08:10 +01:00
Xavier Morel 18ebbce51b [FIX] core: ability to run tours in Chrome 111
Chrome 111 enabled checking of websocket origin: if the WS connection
sends an Origin head which is not whitelisted with the new
`--remote-allow-origins` switch it is rejected.

Turns out websocket-client (amongst others) *does* send an `Origin`,
which trips the check, and means tours immediately break when trying
to run them as Odoo's test harness is unable to connect to (and
control) the devtools.

Suppress sending `Origin` to fix the issue.

To make the watch mode work, set `--remote-allow-origins`: since we
specifically only bind the devtools to the loopback
address (127.0.0.1) whatever issues this plugs are unlikely to affect
us. We might eventually want to change the behaviour of the watch
feature for UX reasons and remove this in the future though, either by
working through the non-ws remote inspection (`chrome://inspect`) or
by having the `watch` mode run in a normal browser directly instead of
having a browser connect to a headless browser.

Chrome 111 changeset: https://chromiumdash.appspot.com/commit/0154caeefc74530d5cb57ce71608beb1b77bca39

Chrome tracker issue: https://crbug.com/1422444

closes odoo/odoo#115067

X-original-commit: 47a02b3924c3e4d1690e336fdd764383393ee378
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2023-03-14 11:08:07 +01:00
niyasraphy e6a33ca33d [FIX] hr, hr_holidays: traceback field used in domain missing in view
before this commit, enabling the mass editing for the
various tree view using the studio throws exception
saying field used in domain is missing in the view

* install studio, hr, hr_holidays
* open department tree
* enable mass editing for the tree using studio app
* exception will be raised

similarly for the hr.job, hr.plan, hr.work.location and hr.leave tree views.

after this commit, on enabling mass editing on this tree view, exception will not be shown.

closes odoo/odoo#114935

X-original-commit: 70ece4c85c076962b8ebeed2a248d5228c5f8d0a
Signed-off-by: Kevin Baptiste <kba@odoo.com>
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-03-14 11:08:01 +01:00
JF Aubert d4ed9f8a50 [IMP] mrp*: Merge workorder and production scheduled/effective dates
Since starting a workorder and marking it as done replaces the
planned dates with the actual ones,
there is no need to keep dates which will always end up being the same.

task: 3108291

see odoo/enterprise#36102
see odoo/upgrade#4247

closes odoo/odoo#110550

Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
2023-03-14 11:07:56 +01:00
Hansun (hale) d9d47166de [FIX] l10n_din5008: fix document layout
1. Install DIN 5008

2.1. Settings
- [Companies] > [Document Layout] > Configure (..)
- Set [Layout] to DIN 5008 and paper format to one with DIN 5008
- write on [Company Tagline]
- [Download PDF Preview]

2.2. Accounting
- Customer Invoices
- click an invoice and [PREVIEW]

Before: Slogan not added
After: Added

versions: up to master
opw-3145751

closes odoo/odoo#115125

X-original-commit: 9d6876dbcb82b18d30fa8811456d26f67586344d
Signed-off-by: Grazioso Andrea (agr) <agr@odoo.com>
Signed-off-by: Lee, Hansun (hale) <hale@odoo.com>
2023-03-14 09:55:55 +01:00
Prakash Prajapati e5f462de16 [FIX] hr_work_entry_contract: fix the traceback when we edit multiple contract's Working Schedule
Reproduction steps:
 -Install payroll app
- Got to payroll > Contracts > Contracts > List view
- Select multiple record and modify the Working Schedule

- missing return in write

closes odoo/odoo#115105

X-original-commit: fcbff003ccc4cfda48b5b266929ee49f6ace3523
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-03-14 09:55:52 +01:00
Achraf 9154c2192d [FIX] product: Allow users to edit pricelist report
Steps:
- Open studio
- Go to 'Reports' tab
- Select 'Pricelist' report
- Error message

opw-3207593

closes odoo/odoo#115089

X-original-commit: abf3c725b17f16ec5b57ddbcf1639d60194b8bea
Signed-off-by: Achraf <abz@odoo.com>
2023-03-14 08:52:43 +01:00
Arthur Detroux (ard) 36ad52f00c [FIX] website: prevent default on clicks as early as possible
Prior to this commit, the event handlers that prevents the default
behaviors of a click was bound onto the $editable after the wysiwyg
editor had started.

This meant that during a very short period, the element could have the
"editor_enable" class but would not prevent clicks on the document
from triggering a default behavior.

This issue is not as important in versions prior to 16.0, because most
of the clicks on link would trigger navigation within the page,
canceling edit mode. If a traceback had appeared, it would be removed
quickly after, as the page was unloaded.

However, in 16.0, if the iframe leaves its current page, it can crash
the editor which now resides outside the page we are currently
editing.

Furthermore, the test introduced in [1] highlights the problem, as it
clicks on a link directly after checking if "editor_enable" is added to
the body within the iframe. This created a race condition, which means
the test crashed often.

This commit fixes the issue by using the click handler of the
website_preview to prevent the default behavior while in edit mode.

[1]: https://github.com/odoo/odoo/commit/050378dd8599b907ad429d4d1812602b557d0f73

runbot-18660

closes odoo/odoo#115119

X-original-commit: f9e51a8ab1cc469bd3dd4dba21856597d5e0f902
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2023-03-13 23:59:16 +01:00
Maruan Aguerdouh (magm) c7ff7f9bc2 [FIX] hr_timesheet: fix timesheet computation between hours and days
Steps to reproduce:

- Install Project, Timesheets.
- Create a new porject with allocated hours set to 40 hours (5 days).
- Taking into account that our company have a 8-hour/day work schedule
(40 hours/week).
- We go then to the timesheet app and we add a line for the project
created with 8 hours as hours spent.
- Now we got to the timesheet configuration and we change the uom to
days.
- We go back to the timesheet app and we see the result, we can also
try to add just 1 day.

Issue:

The days are not properly computed, only when we are in hours are being
computed properly. But when we change the uom to days, the computation
that we see in the list will still be wrong.

Solution:

We really take into account which uom are we working with so we
compute the time properly depending on the uom.

opw-3138053

closes odoo/odoo#115049

X-original-commit: a31a1b6aff4db0415dc9c44bae33901f4833aba1
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-03-13 19:42:45 +01:00
Walid HANNICHE (waha) 27d4a74724 [FIX] mail: set correct reply_to company
Steps to reproduce:
- select a different company from the main one
- under settings/discuss enable External Email Servers
- set up an alias domain
- create an SO and send it by email
(you can catch the sent email using mailhog)
- reply to that email
(you can use the support-tools[1] and set In-Reply-To: "previous message_id")

Bug:
the reply_to field of incoming message defaults to the first company

Fix:
set the reply_to field to the company asociated to the record
(there's already a fallback to self.env.company  in
"_notify_get_reply_to_formatted_email")

opw-3060214
[1]: https://github.com/odoo/support-tools/tree/master/scripts/mail

closes odoo/odoo#115090

X-original-commit: d86e57404d540762fa51afeabeddd3a0fc45d4d5
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
2023-03-13 18:45:11 +01:00
Victor Feyens 93e5a2bfaa [IMP] website_sale: hide column if feature is not enabled
Like everywhere else, do not show the website fields if the multi-website
feature is not enabled.

task-3213457

closes odoo/odoo#114221

Related: odoo/enterprise#37734
Related: odoo/upgrade#4402
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2023-03-13 17:45:33 +01:00
Victor Feyens bfb6dda897 [IMP] sale,*: factorize order & quotations tree views
task-3213457

Part-of: odoo/odoo#114221
2023-03-13 17:45:33 +01:00
Audric Onockx (auon) 85e9290711 [IMP] *: simplify recurrence
*=hr_timesheet,project,sale_project,sale_timesheet

Currently, the configuration of the recurrence is quite complete
and allows a lot of flexibility, but it is costly
in terms of implementation as it requires a lot of fields.
The goal of this task is thus to simplify this implementation.

In addition, a lot of people are complaining
that tasks are only generated when the recurrence date is reached,
as it doesn't allow to anticipate the planning of field service tasks.
In this task, we are thus going to immediately generate a new task
once the previous one is marked as done.

Concretely, we:
- describe a recurrence in terms of
"once every n day/week/month/year for ever/until a date"
and delete all fields that don't fit into it.

- remove the cron. The new occurrence is created when
marking the last task as done, and copied from the latter.
Deleting the last task deletes the recurrence.
The recurrence fields stay useful, as they form a delta t
that will be added to deadline/planned dates fields to get the new
values.

- use an boolean icon button to activate recurrence,
and place it at the end of deadline field's line.
The recurrence fields appear on the next line.

- delete in the form: the div explaining when the next tasks will be
created and the header to choose how to save the changes in the
recurrence.

task-3084945

closes odoo/odoo#112764

Related: odoo/upgrade#4343
Related: odoo/enterprise#37114
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-03-13 17:45:21 +01:00
Horacio Tellez f1a4aa75f7 [FIX] sale: bad error message when invoicing sales order
When trying to invoice undelivered quantities the error message
was somewhat misleading: it indicates as a possible solution a
Stock app feature even when Stock is not installed.

After this commit the message will be more appropriated.

opw - 3206001

closes odoo/odoo#115033

X-original-commit: a6ae8fae9f0db559880e04caa8446e57f7733c85
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Horacio Tellez Perez (hote) <hote@odoo.com>
2023-03-13 16:37:02 +01:00
Guillaume (gdi) b4ce395099 [FIX] website, website_blog, website_sale: stay on the backend view
Since [the merge of the frontend into the backend] and more precisely
since [this commit], clicks on some elements makes the user switch from
the backend view to the frontend view.

Steps to reproduce (just an example):
- Go to /blog from the backend (/@/blog)
- Click on a tag (eg: adventure)

=> users are redirected to the frontend view, we do not want that. This
commit makes the user stay in the backend. For some scenarios (like the
one above), we create a fake form and submit it. The forms have a target
attribute that specifies where the form response should be displayed.
This commit set back the default value for the target attribute when a
user clicks on a blog tag, a course tag, the pager, ... so that the
response is displayed in the current context (the iframe when the user
is in the backend).

Note that [this commit] introduced the target attribute change to fix
two issues:
1. The opening of the payment gateways in the iframe.
2. The create page from a 404 page in the backend.

After [this other commit] has been merged, to prevent the first issue so
here we just remove the target attribute change except for the case of
the second issue.

[the merge of the frontend into the backend]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b
[this commit]: https://github.com/odoo/odoo/commit/2d44f2792dec0b2f205475a22dbedc97e9c54a64
[this other commit]: https://github.com/odoo/odoo/commit/3a32b9e1efa6277b345dc9239334680651690df7

task-3054970

closes odoo/odoo#114056

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2023-03-13 16:36:50 +01:00
Touati Djamel (otd) 934d9a5caa [FIX] purchase_requisition: create a PO alternative with note & section
Steps to reproduce the bug:
- Create a PO:
    - Add a product
    - Add a note or section
- Go To Alternatives:
    - Click on “Create Alternative”
         - Add another vendor
         - Try to validate

Problem:
An error is triggered: “The operation cannot be completed: Description
(name) is mandatory”

The “display_type” and “name” fields must be copied in the vals to
create a `purchase.order.line`

opw-3164863

closes odoo/odoo#115070

X-original-commit: 66f806399d173f53b61db80b81d06a93421c75a3
Signed-off-by: Tiffany Chang <tic@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
2023-03-13 15:28:01 +01:00
Daniel Kosky (dako) c5d7042815 [IMP] l10n_uk: change tax names
Update the UK tax names in accordance with the "taxonomy"
format (task-id 3052677).

EU Taxes have been changed to better reflect their current use (in
Northern Ireland only), and made inactive by default.

closes odoo/odoo#113363

Task-id: 3196842
Signed-off-by: Nicolas Viseur (vin) <vin@odoo.com>
2023-03-13 15:27:58 +01:00
Daniel Kosky (dako) 1359630525 [FIX] l10n_uk: update UK report line names
This commit adapts the names of the lines of the UK tax report to better
match the names provided in the below government documentation.
https://www.gov.uk/guidance/how-to-fill-in-and-submit-your-vat-return-vat-notice-70012

Part-of: odoo/odoo#113363
2023-03-13 15:27:58 +01:00
FrancoisGe 2e3d5cfa80 [REF] stock: convert client action "stock_report_generic"
This commit is to convert the "stock_report_generic" client action into owl.

closes odoo/odoo#112064

Taskid: 3175084
Related: odoo/upgrade#4309
Signed-off-by: Steve Van Essche <svs@odoo.com>
2023-03-13 15:27:54 +01:00
Fabien Pinckaers a1c447bf84 [IMP] google/microsoft_calendar: remove unnecessary CSS (better look without)
closes odoo/odoo#115061

Signed-off-by: Fabien Pinckaers <fp@odoo.com>
2023-03-13 14:20:24 +01:00
Archana Vaghasiya 6a1b2ff7be [FIX] base_import: handle fallback values of relational fields when import data
Before this commit:
=====================
KeyError 'selection_values' that occur in base_import/_handle_fallback_values()
while importing a data file. If any field(s) is many2one or many2many and we
tried to import the value of that field(s) that is not created in the database.
In that case when we set the 'Prevent Import' option.
It will raise an error like KeyError: 'selection_values'.

After this commit:
=====================
Solved the issue when there is a many2one or many2many field(s) and the import
value of that field(s) which is not available in the database. also, the method
is only for the 'selection' field and 'boolean' field so the code works when
there is a selection field and their selection_values only.

sentry - 3958065223

closes odoo/odoo#115056

X-original-commit: 0ef930cd7598bd15227ff025d2662d4331f8e45b
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-03-13 14:20:21 +01:00
gawa-odoo ae8bf42ca6 [FIX] account: round using line company instead of env
To compute the analytic amounts, we used the user company currency
to know the precision to use to round, for the comparison.
We should instead use the line's currency for the amounts, and the
decimal precision for the distribution.

closes odoo/odoo#114997

X-original-commit: a94517702c47aa9259c0cbea9b4763ab7501176f
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Wala Gauthier (gawa) <gawa@odoo.com>
2023-03-13 14:20:19 +01:00
Laurent Smet 74109d0479 [FIX] account: Fix compute of epd when invoice is draft
When the invoice is a New record and thus, not yet stored inside the database, the totals like amount_untaxed/amount_tax/amount_total are set to 0.0 because line_ids is empty.
About the lines, balance/amount_currency are also set to 0.0.
This means we can not rely to any of these fields in any case when computing the values for a New record.

To reproduce, configure the early payment discount computation to "Always upon invoice", create a new invoice and set the demo terms 30 Net 2/7.
For a customer invoice, the tax amount will not be correct until the save.
For a vendor bill, the tax amount will be erased by the quick edit mode and the correct value will never be set.

closes odoo/odoo#114994

X-original-commit: a34033524f6e1a2f46ce2e14368389ecddc3c840
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Laurent Smet <las@odoo.com>
2023-03-13 14:20:16 +01:00
Victor Piryns (pivi) eb73917c0f [FIX] sale_project: ignore down payments in project profitability
Current behaviour:
Down payments are taking into account in the project profitability in
the section "Other Cost". When invoicing fully an SO, the total sum
in profitability is the sum of the invoiced amount on the SO + the
down payment.

Expected behaviour:
Down payments should not be present in the project profitability, to
avoid incorrect sums.

Steps to reproduce:
- Install Sales, Accounting, Timesheets
- Activate Analytics in the Settings
- Set a Service Product that is invoiced based on fixed price
- Make sure that it generates a Project + Task
- Create a Quotation, confirm the SO with that product
- Create a down payment for 50% of the SO
- Confirm that invoice
- Create another invoice for the SO for the rest of the SO and
  confirm it
- Go to the project's profitability tab for the SO, you can see that
  we have the value of the SO + the amount of the down payment,
  leading to an incorrect sum, in the section Invoiced.

Reason for the problem:
When taking the invoices for the profitability of the project, since
a down payment is another `sale.order.line`, we handle it in the
method `_get_revenues_items_from_invoices`, and there we are taking
into account the down payments.

Fix:
Elaborate the domain used to fetch the invoices in
`_get_revenues_items_from_invoices_domain` to not take those that
are down payments.

Affected versions:
- 16.0
- saas-16.1
- master

opw-3195016

closes odoo/odoo#115050

X-original-commit: ae151ec16a0054420f5c2827a1924c87e5b672ba
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
Signed-off-by: Piryns Victor (pivi) <pivi@odoo.com>
2023-03-13 13:13:53 +01:00
Yannick Tivisse 0658de98a9 [IMP] bus: Garbage collect bus.presence for archived users
closes odoo/odoo#114656

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-03-13 13:13:50 +01:00
Yannick Tivisse e79b1a79bc [IMP] base: Garbage collect ir.cron.triggers
Part-of: odoo/odoo#114656
2023-03-13 13:13:49 +01:00
Yannick Tivisse 1c36ad76e8 [IMP] project: Garbage collect personal note stages for archived users
Part-of: odoo/odoo#114656
2023-03-13 13:13:49 +01:00
Yannick Tivisse a573c985e0 [IMP] note: Garbage collect personal note stages for archived users
Part-of: odoo/odoo#114656
2023-03-13 13:13:49 +01:00
Yannick Tivisse 0f66456d75 [IMP] calendar: Allow partner unlink if linked to calendar.attendee
Part-of: odoo/odoo#114656
2023-03-13 13:13:49 +01:00
Yannick Tivisse 9aa04f18d9 [FIX] base: Make user apikeys ondelete cascade on user_id
This could prevent the user deletion if linked to a record of this
type, like a auth_totp.device which inherits from this model.

Part-of: odoo/odoo#114656
2023-03-13 13:13:48 +01:00
Yannick Tivisse 4518a768eb [IMP] website_forum: Allow user deletion if linked to post vote
Purpose
=======

Currently the on_delete='restrict' implicit constraint prevents
the user deletion in case it's linked to a forum post vote.

Set the on_delete attribute to 'cascade' as the record is not
really a critical data.

Taskid: 3222941
Part-of: odoo/odoo#114656
2023-03-13 13:13:48 +01:00
Yannick Tivisse 1223705bbc [IMP] calendar,hr_work_entry: Allow user deletion if linked to filter
Purpose
=======

Currently the on_delete='restrict' implicit constraint prevents
the user deletion in case it's linked to a personal calendar filter
record.

Set the on_delete attribute to 'cascade' as the record is not
of any usage without the user anyway.

Taskid: 3222941
Part-of: odoo/odoo#114656
2023-03-13 13:13:48 +01:00
Yannick Tivisse 2e51c2b5f4 [IMP] mail: Allow user deletion if linked to mail.activity
Purpose
=======

Currently the on_delete='restrict' implicit constraint prevents
the user deletion in case it's linked to a mail.activity record.

Set the on_delete attribute to 'cascade' as the record is not
of any usage without the user anyway.

Taskid: 3222941
Part-of: odoo/odoo#114656
2023-03-13 13:13:48 +01:00
Yannick Tivisse d8c9c8d10b [FIX] base: Handle portal user deletion separately
Purpose
=======

Improve the portal user deletion by preventing timeouts and
avoiding several rollbacks causes.

Specifications
==============

- Move the portal users deletions from autovacuum to its own cron.
  On big databases such as odoo.com, deleting a res.users takes
  more than 1 minute. Move the whole process into its own scheduled
  tasks.
- Commit the deletion at each user. As said previously the deletion
  can be expensive, so commit what has been done to avoid having to
  delete the same user again in case of rollbacks or timeout.
- Delete the user and the partner separately. If the partner is used
  in a sales order for instance, the unlink is possible for the user
  and not the parner. It allows to unlink the user and keep the
  partner in case it cannot be deleted.
- Re-call the cron into another transaction in case there are too many
  users to delete, instead of waiting next call, that is supposed
  to occur the day after.

Taskid: 3222941
Part-of: odoo/odoo#114656
2023-03-13 13:13:47 +01:00
fdardenne e390cc8e23 [FIX] web: popover service: prevent the crash when undefined target
This commit fixes the same problem as the commit #113284

The previous commits partially fixed the solution, but the target can
still disappear between the moment where the `popover_service` adds the
popover and the moment where the setup of `PopoverController` is called.

The solution of this commit is the last defence against the undefined
target, #113284 will be kept as it prevent some owl computation if the
target is undefined at this state.

closes odoo/odoo#115032

X-original-commit: f6c309e595bf76d8ed8bb8c19228795572a8760c
Signed-off-by: Géry Debongnie <ged@odoo.com>
Signed-off-by: Dardenne Florent (dafl) <dafl@odoo.com>
2023-03-13 12:02:04 +01:00
Martin Maes a9ac6d6235 [FIX] stock: picking filters
The 'To do' picking filter made no sense as it used to check the pickings
that are not assigned or assigned to the user.
The new behavior corrects it by checking if the previously selected pickings
are not in a 'done' or 'cancel' state.

task id : 3087740

closes odoo/odoo#111648

Signed-off-by: Steve Van Essche <svs@odoo.com>
2023-03-13 12:01:52 +01:00
Arnold Moyaux fde450b599 [FIX] stock_account: reconcile kit
Kit were not reconcile because the `_stock_account_anglo_saxon_reconcile_valuation`
method try to match `account.move.line` and `stock.move` base on the
product field. However in kit case, the moves are exploded in mutliple
moves containing the kit's components. Due to that the matching is not
made.

To fix this issue we use the `purchase.order.line` that is share between
the `stock.move` and `account.move.line` to retrieve them.

closes odoo/odoo#114987

X-original-commit: f594c837c8a347abb48015d4e9bb0d5109228539
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2023-03-13 10:53:04 +01:00
Arnold Moyaux e19bbf8c89 [FIX] stock_account: reconcile same product only
-Create 3 products with different costing methods: AVCO, FIFO, Standard
-Create a PO for the 3 items (same quantity and unit price in every line)
-Receive
-Create Vendor Bill
-Check Journal items.

You will notice that the AVCO product is marked as partially matched. Please keep
in mind that this only happens when the 3 costings are used and the unit price
is the same.

It happes because `_get_all_related_aml` returns all the
`account.move.line` for the journal entry and invoice.
But not only for the current product. So if they share the same
price unit then it could reconcile lines for different products.

X-original-commit: 23ccf2c1bde84f03aaaedb206e37a35de701da5e
Part-of: odoo/odoo#114987
2023-03-13 10:53:03 +01:00
Petar Najman 62a08bfa0a [FIX] web: Quoted cookie values are not handled by cookie_utils.js
When we set a cookie value (i.e. 'frontend_lang') on backend which can contain "invalid" character like @ (i.e. Serbian lang code: sr@latin) that cookie value will be double-quoted by werkzeug, so our example cookie will end up like: frontend_lang="sr@latin" instead of what's expected on the front-end: frontend_lang=sr@latin.On the front-end side we need to remove that additional double-quote before returning the actual cookie value.

closes odoo/odoo#114565

X-original-commit: 2631c8a39ccb03f5a0f142e479e3264f8885c5d2
Signed-off-by: Géry Debongnie <ged@odoo.com>
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-03-13 10:53:00 +01:00
Petar Najman fd5a082984 [FIX] base: Invalid flag image url computed for Serbian lang sr@latin
When computing flag_image_url field on res.lang model an invalid url is generated due to the peculiar format for serbian lang code sr@latin which has "@" sign instead of expected "_" sign and thus the unexisting url is computed, so we are forced to populate binary field flag_image instead.

X-original-commit: 85db3773ba475a143a99126c6c24b404bdd39d0b
Part-of: odoo/odoo#114565
2023-03-13 10:53:00 +01:00