Commit Graph
152817 Commits
Author SHA1 Message Date
Akim Juillerat 2aa5d2a666 account: Fix journal dashboard graph query order
As the query results are set in a list of dicts relying on the
position of the dicts inside the list, the SQL query must ensure
the results returned by postgres are ordered properly so that it
will match the order in which the dicts are defined inside the list.

closes odoo/odoo#81978

X-original-commit: bac93bf56ff67a89f9381137b0c67642a302e6bb
Signed-off-by: Laurent Smet <las@odoo.com>
2022-01-06 08:34:57 +00:00
Habib (ayh) 1906dbfe4e [IMP] stock: include UOM object in aggregated product quantities
with l10n_mx_edi_stock being introduced in enterprise - we require the unit of measure object in the aggregated lines so that it can be used on the delivery report.

odoo/enterprise#21591
Task-2585661

closes odoo/odoo#82224

X-original-commit: 4d074686c1eb716020b950ea86650ecf2bda08aa
Related: odoo/enterprise#23244
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Ayob Habib (ayh) <ayh@odoo.com>
2022-01-06 07:42:54 +00:00
Josse Colpaert f810f2d120 [FIX] l10n_sa_invoice: amounts in the QR code should be in Saudi Riyal
closes odoo/odoo#82304

X-original-commit: 3b50fb042617246d3ba2db378f6d08ffb42afdb3
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Josse Colpaert <jco@odoo.com>
2022-01-05 23:05:43 +00:00
Achraf (abz) 39e11b34d3 [FIX] wesbite_sale: Prevent traceback on website/shop without headers
When you disable the headers through the website editor and try to add
a product to the wishlist, a traceback occurs because there is an animation
that uses the dom element of the wishlist that doesn't exist.
We can avoid the animation in the case where the wish is not defined

reproducible in 14.0 with the wishlist (must be activated in settings)
and in 15.0 with the cart and the wishlist

opw-2722163

closes odoo/odoo#82294

X-original-commit: 2a9768f6a09751af82ccabee3d565f622ea418f3
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2022-01-05 18:02:42 +00:00
Xavier BOL (xbo) c023a4f065 [FIX] sale_project: display the SO related of the project
Before this commit, when the project has no SO set in its model and it
has a task with a SO set. When the user clicks on the Sales Order stat
button shown in project form or the project update. He sees a form view
of `sale.order` to create a new record because the action does not give
the id of the Sales Order related. Indeed, we give the id of the SO set
on the project if we found only one SO related to the project.

This commit fixes the issue by given the id of the SO related to allow
the user to see the SO related to the project.

Steps to reproduce:
==================
1) Create a project A with allow_billable set to `True`.
2) Create a Quotation for a customer C with a SOL containing service
product and confirm it to create a SO.
3) Create a task in the project A and set the customer C to this task
and set the SOL of the SO created in the step 2.
4) Go to the project update of the project A
5) Click on the 'x Sales Orders' stat button.

Expected Behaviour:
==================
The user should see the SO related to the project, that is the one
selected in the related task.

Actual Behaviour:
================
The user sees an empty form view of `sale.order` to create a SO because
no SO is found.

Part of task-2710808

Closes #81940

closes odoo/odoo#82284

X-original-commit: de702d921a321a8b783af020538ceaf4ef3af10f
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-05 17:12:05 +00:00
Xavier BOL (xbo) 2acd0903a1 [FIX] sale_{project,timesheet}: hide SO stat button in project update
Before this commit, when the project has a SO related, the 'Sales Order'
stat button is shown in right side panel in project update even if the
allow_billable=False in this project. If `allow_billable=False` then the
project should be non billable and thus this stat button should not be
visible.

This commit hides the stat button when the project is
non billable.

Steps to reproduce:
==================
1) Install sale_timesheet module
2) Create a billable Project
3) Edit the project to set a SOL (Set a customer and a SOL) and save.
4) Edit the project and set `allow_billable` to `False`.
5) Go to the kanban view of the Project Update.

Expected Behaviour:
==================
The 'x Sales Orders' stat button should not be visible.

Actual Behaviour:
================
The 'x Sales Orders' stat button is visible.

Part of task-2710808

Closes #81940

X-original-commit: bc0226583a48f9eefc79c3e2a8e7069d6181f8ea
Part-of: odoo/odoo#82284
2022-01-05 17:12:05 +00:00
Alvaro Fuentes 17bb0af7a8 [FIX] mail: check res_id!=0 when checking access rules
Although 0 is a valid value (integer), this has been (ab)used to signal
that a mail activity is not linked to any other record via res_id.

The issue is that when we have `0` as res_id value we get an error here
https://github.com/odoo/odoo/blob/158c0ae425b3be446d81c3a6f4387b2d9426d10e/addons/mail/models/mail_activity.py#L377
more specifically on
https://github.com/odoo/odoo/blob/158c0ae425b3be446d81c3a6f4387b2d9426d10e/odoo/models.py#L3603
with `AttributeError: 'int' object has no attribute 'origin'`

To avoid the issue, here we discard id `0` when checking the linked
records access rules.

On #81292 (targeting master, >15.1 at the moment of writing) a
constraint will be added to avoid `0` on `res_id`.

closes odoo/odoo#82281

X-original-commit: f96cec284a0714ae8eaa264d7adee503a96618d7
Signed-off-by: Christophe Simonis <chs@odoo.com>
2022-01-05 16:21:59 +00:00
Kevin Baptiste 7bde79a367 [IMP] hr: add populate script
Add a populate script to automatically create lots of
employees/jobs/tags/work locations/departments.

closes odoo/odoo#82259

Taskid: 2728608
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-01-05 16:21:55 +00:00
Thanh Dodeur 55ab14e933 [FIX] mail: ensures that the audio track has the right enabled state
This commit fixes a case where the track could be left enabled when
transitioning from voice activation to push-to-talk (the track would
still properly be disabled on the next release of the push-to-talk key).

part of task-2720026

closes odoo/odoo#82273

X-original-commit: 96804f4eba76ce3c016ae34a9829f88ab8c7e0f3
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-01-05 15:30:45 +00:00
Didier (did) 1ec153ecbf [IMP] mail: improve the notifications on mail_channel/add_member
Before this PR, the mail_channel/add_member function use multiple _sendone. We
can compile the notifications inside a single sendmany.

Task-2726415

closes odoo/odoo#82198

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-01-05 14:36:03 +00:00
Odoo's Mergebot b79146de14 [MERGE] rating,project: use rating average instead of last rating in project
Before this changes, we only use the last value to determine the customer satisfaction of a task. The problem is if the customer was happy during all the process of a task and at the end of the task, he is unhappy. The customer satisfaction for this task will be bad because the last rating made for it is negative.
Moreover, the customer satisfaction shown in `project.project` model computes the percentage of Happy ratings divided by the total of ratings in its tasks. For instance, if we have a project A with 3 tasks T1, T2 and T3 and we have a rating for each task as follow:
- R1 for T1 has 3/5 as rating value.
- R2 for T2 has 5/5 as rating value.
- R3 for T3 has 1/5 as rating value.

So the percentage of Happy Rating will be equal to 33% but globally, we could see the customers were globally okay for this project because the rating average is equal to 3/5. Indeed only one customer was happy but all the others have not given 1/5 as rating score. So the project could globally be acceptable for the customers.

The goal of this changes is to only use the rating average instead of using the last rating value (for the tasks) or the percentage of happy rating for the projects. With the rating average we could have a global idea of the customer satisfaction for a task or an entire project.

task-2671848

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

closes odoo/odoo#81027

Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-05 15:35:58 +01:00
Robin Heinz e34e8c36d7 [FIX] pos_restaurant: avoid double order in backend.
This fix removed the duplicates of an empty order when using the floor management. Before, when syncing order without order lines, it was creating an empty order in the backend.
When reloading the table, it was creating a new empty order, ignoring the previous one. That problem lead to empty unpaid draft order.

closes odoo/odoo#57952

Task-id: 2308862
Signed-off-by: Masereel Pierre <pim@odoo.com>
2022-01-05 13:44:55 +00:00
Xavier BOL (xbo) b08dea5aad [IMP] rating,project: display rating text based on the average rating
This commit adds a rating text field called `rating_avg_text` to display
a text based on the value of `rating_avg` field in `rating.mixin` model.
Here is the text displayed based on the value of `rating_avg`:

1. 'Satisfied' if the `rating_avg >= 3.66`
2. 'Okay' if the `2.33 <= rating_avg < 3.66`
3. 'Dissatisfied' if the `1 <= rating_avg < 2.33`
4. 'No Rating' if the `rating_avg < 1`
2022-01-05 13:58:01 +01:00
Xavier BOL (xbo) 1ae732c21f [IMP] project: use the rating average instead of customer satisfaction
Before this commit, we use the `rating_percentage_satisfaction` field to display
the customer satisfaction of the project. The problem is this field is
not really a rating average. This field returns the percentage of
satisfied ratings over the total number of ratings.

This commit changes the using of `rating_percentage_satisfaction` field
by the `rating_avg` to only use the rating average to really know if
globally the customers are happy of a project or not.

task-2671848

Closes #81027
2022-01-05 13:58:01 +01:00
Xavier BOL (xbo) 89f4370043 [IMP] rating,project: add average ratings field in parent rating mixin
Before this commit, we don't have any filters to the models using the
parent.rating.mixin to know if the customers are globally satisfied or
not to the projects for instance.

This commit adds the `rating_avg` field to compute the average of all
ratings linked to the parent model (in our example, `project.project`
model). This field is also used in the project search view to add 3
filters.

1. satisfied: projects with an average customer satisfaction between 66%
and 100%.
2. okay: projects with an average customer satisfaction between 33% and
65%.
3. dissatisfied: projects with an average customer satisfaction between
0% and 32%.

Another filter is added to find all projects without any ratings linked,
called `No Rating`.

task-2671848

Closes #81027
2022-01-05 13:58:01 +01:00
Xavier BOL (xbo) 790cc8698a [IMP] rating,project: use the average of rating value for satisfaction
Beforer this commit, we display a emoji to show if the customer is
satisfied, okay or not for the task via the last rating value. The
problem is we use only the value for the last rating for each task.

This commit uses all ratings for each by using the average of rating
value for each task to know if all the customers that done a rating are
satisfied or not.
Moreover, we add 4 filters in the project.task model using the average
of rating values.

1. Satisfied => rating_avg >= 3.66
2. Okay => 2.33 >= rating_avg < 3.66
3. Dissatisfied => rating_avg < 2.33
4. No rating => show the tasks without any ratings.

task-2671848

Closes #81027
2022-01-05 13:58:01 +01:00
anhe-odoo 9255d3d7d9 [FIX] purchase: corrects the order date on validated RFQ/PO pdf report
Expected behaviour

The order date on the Purchase Order report (printable pdf) should be the
confirmation date if available and the order deadline else.

Observed Behaviour

The order date on the PO pdf is the order deadline of the RFQ, no matter
if the oder has been confirmed or not.

Reproducibility

This issue can be reproduced following these steps:
1. Create a new RFQ
2. Set an order deadline different from the current day
3. Confirm the RFQ
4. Download the printable PDF (as pdf) and check the Order date

Related ticket
- opw-2696794

closes odoo/odoo#82267

X-original-commit: 91d0354
Signed-off-by: Arnold Moyaux <arm@odoo.com>
2022-01-05 12:50:20 +00:00
Sébastien Theys 671e5b885e [IMP] mail, *: add view model for notification list items
* = im_livechat, sms, snailmail

Part of task-2728107

closes odoo/odoo#82239

X-original-commit: fadb57564209e1b9c4ee6ee993b117b288ac614d
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-01-05 12:50:16 +00:00
Josse Colpaert 76efa26896 [FIX] account_edi: also lock account_move for sending
Fix in cc67b5ac95 was done in v14
originally and would lock both the edi document and the
account move instead of just the edi document
(and the move while cancelling)

However in the fw-port in 5319b71b66,
some kind of mix happened.

We have some tickets in v15 however where the
invoice is sent to the government, but it was not changed in Odoo because
of the concurrent access on the account_move, so we need to lock the
account_move as well.

opw-2714559, opw-2663502

closes odoo/odoo#82254

X-original-commit: 8d896b19007a788d88f2ffb45385f0d10cb476b5
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Josse Colpaert <jco@odoo.com>
2022-01-05 11:36:06 +00:00
roen-odoo 7965efe75f [FIX] stock: Owner filter crash
Current behavior:
Filter "Owner is not set" on Package in inventory app was causing a traceback

Steps to reproduce:
- Go in inventory app
- Go in package
- Apply a filter "Owner is not set"
- You get a traceback

opw-2714726

closes odoo/odoo#82237

X-original-commit: e4b350907f01253a96ddc763d6fdbdd307874e23
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Engels Robin (roen) <roen@odoo.com>
2022-01-05 10:42:41 +00:00
Merlin (megu) 3b98b8d89e [FIX] hr_holidays: translate field names of form dialogs
'New Time Off' and 'Allocation Request' dialogs were not translated to the user's language

Steps to reproduce:
1. Install the Time Off app
2. Go to General Settings, add a language and switch to it
3. Open the Time Off app and click on the button 'New Time Off' (which is now translated to the language you chose)
4. The field names of the dialog that opens are not translated

Solution:
Add the user's language to the context of the dialogs

OPW-2715396

closes odoo/odoo#82246

X-original-commit: bb4c568fe6cc32e7a0a26960276999113b858144
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
2022-01-05 09:52:22 +00:00
Barad Mahendra 7474f57219 [IMP] hr_timesheet: remove the unused code from hr_timesheet
Currently the timer does not exist in hr_timesheet so project.task.create.timesheet
wizard is useless in hr_timesheet and not used anywhere in hr_timesheet.

so in this commit removed project.task.create.timesheet wizard
from hr_timesheet.

task-2710154

closes odoo/odoo#81197

Related: odoo/enterprise#22819
Related: odoo/upgrade#3101
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-05 09:52:13 +00:00
Noe Antoine a8b5a53e60 [REF][ADD] hr: split appointment module according to hr dependancy
When setting users on the appointment type as staff, we want to consider
their resource_calendar_id (work schedules) only if they correspond to the
current company and are linked to employees, not the ones linked to the users
directly. In order to display those work hours correctly, we use a new related
field on the employee_id in res_users model as it will return the employee of
the user in the current company, if any.

Therefore, we add the new field employee_resource_calendar_id directly in
hr module (in res.users model) to reduce diff and centralize the fields as
close as possible to the employee_id definition.

--- Links ---
Task-2499566

closes odoo/odoo#82234

Related: odoo/enterprise#17934
Related: odoo/upgrade#2578
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2022-01-05 09:52:07 +00:00
William Braeckman 2b78d430b8 [IMP] hr: add a new field to query members of department
Adds a new non stored field to make it easier to query all employees
from the active user's department and it's children department(s).
The result is guaranteed to always contain the active user's employee.

task-2700231

closes odoo/odoo#81472

Related: odoo/enterprise#22724
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-05 08:57:44 +00:00
wan a77dee7b98 [FIX] core: typo in field type check
closes odoo/odoo#82238

X-original-commit: 5164739b835445fa11b2efc53e2ff839a4bad10a
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2022-01-04 20:16:47 +00:00
Touati Djamel (otd) 2a41d64b9b [FIX] stock: add address info in the delivery slip and picking operation report
Steps to reproduce the bug:
- Install inventory and sales
- Create a SO > Confirm
- Click on the delivery > print > delivery slip or picking operation

Problem:
Only the name and phone number are in the report

opw-2697221

closes odoo/odoo#82235

X-original-commit: 35e6abce0e662cae6a55293f31620114ad5ecd8a
Signed-off-by: Arnold Moyaux <arm@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
2022-01-04 17:53:19 +00:00
roen-odoo 8f118f23bf [FIX] sale_management: Access error mail confirmation
Current behavior:
You had a traceback when trying to pay with Stripe and a specific modified Quotation template

Steps to reproduce:
1. Set stripe as the payment acquier (with default test values )
2. Modify the Quotation Template "4 person Desk"
- Uncheck "Online signature"
- Put "Confirmation Mail" as "Sales Order: Confirmation Email"
3. Create a SO
4. Set it's quotation template as "4 person Desk"
5. Action > Generate Payment link
6. Use the link as the public user (in incognito for instance)
7. Pay with Stripe
=> Traceback

opw-2721526

closes odoo/odoo#82227

X-original-commit: f0bf3a55dde5f2863e40efe341edae6990c8ed35
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Engels Robin (roen) <roen@odoo.com>
2022-01-04 17:03:14 +00:00
Vincent Larcin 0f0ff26375 [IMP] project,{hr,sale}_timesheet: reorder and rename demo tasks
This commit reorder and renames the tasks in demo data by project.
This is done in order to make it easier to parse, modify or add data in those files.

Closes #80102
Task 2669762

Related: odoo/enterprise#22399
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-04 17:03:11 +00:00
Vincent Larcin 6ec64c6307 [IMP] project: add and rework demo data
This commit adds plenty of new demo data showcasing some features that weren't before, and also reworks existing demo data to make is more consistent.

Closes #80102
Task 2669762
2022-01-04 17:03:10 +00:00
Vincent Larcin 522cd83f69 [IMP] {hr,sale}_timesheet: reorder and rename demo timesheet lines
This commit reorders the timesheet lines in demo data to sort them first by project, then chronologically.
It also renames them according to the task they are linked to.
This is done in order to make it easier to parse, modify or add data in those files.

Closes #80102
Task 2669762
2022-01-04 17:03:10 +00:00
Romain Derie 5387a51ca6 [FIX] website: fix race condition on snippet drag and drop tour
A mega-tour was introduced with [1] to test every single snippet.
This tour, despite being very useful as it tests the core behavior of the
website builder, is creating a lot of race conditions.

This commit should prevent one of those race condition:
When the step was removing the snippet, it was then clicking on the "Blocks"
tab to get ready to drag and drop the next snippet.
The issue was that in some cases, it would click on the "Blocks" tab before the
snippet removal process was fully done.

Basically, when the race condition happened, it was the same as doing:
```
$('we-button.oe_snippet_remove:first').click();
$('.o_we_add_snippet_btn').click();
```
which, when done in the browser console, will result in the same visual than
the screenshots on the failing runbot builds.

[1]: https://github.com/odoo/odoo/commit/460d5ecb926c13a79ba363f8f86442433d91bf6f

task-2726529

closes odoo/odoo#82214

X-original-commit: 49c7bd39826b428430c08c5faedca51dde9e2359
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2022-01-04 16:17:40 +00:00
Romain Derie 5a51f493c6 [FIX] website: remove snippet duplicates in drag and drop test
A mega-tour was introduced with [1] to test every single snippet.
This tour, despite being very useful as it tests the core behavior of the
website builder, is creating a lot of race conditions.

This commit won't fix anything but will actually reduce the tour length,
hopefully also reducing the amount of race condition while those are fixed.
Indeed, some snippets were tested multiple times, as a snippet might include
another snippet in its DOM, the xpath query would return multiple times the
same snippet.

Duplicates: s_card (5), s_banner (2), s_donation_button (2),
s_dynamic_snippet_products (2), s_newsletter_subscribe_form (3),
s_searchbar_input (2), s_text_block (3), s_hr (2).

[1]: https://github.com/odoo/odoo/commit/460d5ecb926c13a79ba363f8f86442433d91bf6f

task-2726529

X-original-commit: 6f6ace0f0b09f6ad8b497f89e331e43a18e00471
Part-of: odoo/odoo#82214
2022-01-04 16:17:40 +00:00
Thanh Dodeur 28b946989d [REF] mail: rename isMuted into isSelfMuted
This commit renames the isMuted variable into isSelfMuted to reflect the
user action of self muting, as opposed to the state of being mute,
which will be distinct in an upcoming commit.

part of task-2720026

closes odoo/odoo#82199

Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-01-04 12:57:39 +00:00
Sahil patel 3923314720 [FIX] website: add the necessary field in the kanban view
Before this commit,
The 'icon' field is referenced in the link below
https://github.com/odoo/odoo/blob/d8315df6fd733c1331911583f86803bad1718d2d/addons/website/views/website_views.xml#L444
But it has not been defined on the kanban view
(Actually it has been removed from the view by this commit: https://github.com/odoo/odoo/commit/69b24e4de17878ea5bc5f3509f0c9aa7c06be20a)
And because of this, below error is thrown:
TypeError: Cannot read properties of undefined (reading 'value')
while clicking the 'Pick a theme' button in Website settings.

After this commit,
This issue has been resolved.

closes odoo/odoo#81578

closes odoo/odoo#82204

X-original-commit: 5c67cac537082698e0cf6d1d82167c96402f6cf3
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2022-01-04 12:06:52 +00:00
Aurélien Warnon 0e3463a6cb [FIX] survey: fix shortcut usage
Currently, we allow the user to press CTRL+Enter to force the submission of his
answer for that question when the focus is within a textarea.

However, we do not want to submit the question if CTRL+Arrow-right is pressed
(since you may use CTRL+arrows to navigate within your text).
In the same fashion, we don't want to select "option C" if you use CTRL+C to
copy some text in the textarea.

This commit fixes these use cases by only allowing the shortcut handling when
the focus is within a textarea when the pressed key is 'Enter' (code 13).

Task-2716078

closes odoo/odoo#82203

X-original-commit: 69de8e29053119195266379facb8231ba4f51944
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2022-01-04 12:06:49 +00:00
Victor Feyens 009237b463 [IMP] sale_*: avoid fetching unnecessary data
Do not fetch products attributes specifications if there is no 
custom/no_variant attributes specified on the SOline.

Also update query counters according to recent performance changes 
(batched followers insertion and other things)

closes odoo/odoo#81585

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-01-04 12:06:39 +00:00
Jairo LlopisandBenoit Socias 620b022250 [IMP] product: involve product template in last update computation
Since [1] whenever the image of a `product.template` is updated, the
write date of all its related `product.product` is updated.  This was
done to force a change of the unique parameter on image fields, which is
based on the last update field.

After this commit the `product.product`'s last update is instead
computed by also taking the `product.template`'s last update into
account.  This avoids the need for updating the write date when the
image is changed, but on the other hand it also forces product images to
be reloaded whenever any other field of the `product.template` is
changed.

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

Related to https://github.com/odoo/odoo/pull/76309

task-2477438

closes odoo/odoo#78356

Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Co-authored-by: Benoit Socias <bso@odoo.com>
2022-01-04 11:16:43 +00:00
Didier (did) 2292979b98 [FIX] mail: notify guest when joining the channel
Before this PR, the guest that just connect wouldn't receive the longpolling
message before the current one expire.

task-2664831

closes odoo/odoo#82170

X-original-commit: 0006123dba46d32d062a581e9a16f433f3ce05f3
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2022-01-04 10:26:21 +00:00
Romain Derie adcf0c277a [FIX] test_website: add test for 308 redirect and qs
With a 308 redirection from `/url` to `/new_url`:
Links like `/url?a=a` should be rewritten to `/new_url?a=a` and not
`/new_url?a=a&a=a`.

closes odoo/odoo#82099

X-original-commit: bae72fd70c4d3682bff9e148cac1408ca5603b76
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2022-01-04 10:26:16 +00:00
Nicolas Lempereur 4e24115a31 [FIX] http_routing: redirect no double query_string
Reproduction:

- have 308 redirection from /shop to /boutique and refresh routes
- go in incognito on /boutique?order=name+asc (don't go on
  /boutique first, or restart odoo to clear ORM cache)
- select a sorting option eg. price

=> we are redirected to /boutique?order=name+asc?order=list_price+asc
and this error is shown:

Invalid "order" specified (is_published desc, name asc?order=list_price
 asc, id desc).

This is happening because url_rewrite is keeping current query string
(see ir.http()._slug_matching) and caching it. So if the first call
caches:

  url_rewrite('/boutique') => /boutique?order=name+asc

all other url_rewrite('/boutique') calls will give you
/boutique?order=name+asc even if the query string has changed.

In addition to that, url_for may append query_string to url_rewrite
return value, so you may get a double query_string such as:

?order=name+asc?order=list_price+asc

which causes the error.

In this fix, we restore the removal of query string that was removed in
3beb4545c4.

opw-2702036

X-original-commit: 5dcf6e91fed769f4ab22ac63d3e5078cdd352e86
Part-of: odoo/odoo#82099
2022-01-04 10:26:16 +00:00
Julien Mougenot 65d70acdbf [FIX] base,bus: Notify bundle change on version change
Before this commit: a notification asking to reload the current window
appeared as soon as the server detected a change in one of the assets
bundles, even on first load.

To fix this problem and make the feature more meaningful, it has been
decided to only notify the client when the server version (not the
bundle version) is outdated (i.e. on database upgrades, when the changes
in the code are actually relevant).

closes odoo/odoo#82032

X-original-commit: a3b5a9d715be6a93c7f2859074b916f3249f97c3
Signed-off-by: Antony Lesuisse <al@odoo.com>
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2022-01-04 10:26:10 +00:00
Joren Van Onder 66f976f776 [FIX] payment_authorize: don't error on long company names
A company name >50 chars leads to:

Authorize.Net: Received data with status code "3" and error code "The
'AnetApi/xml/v1/schema/AnetApiSchema.xsd:company' element is invalid -
The value XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX is
invalid according to its datatype 'String' - The actual length is
greater than the MaxLength value."

This limits the company name to the specified 50 chars [1][2]. Cutting
off the company name should be fine for the same reasons as outlined in
64b86f36264c2e655681c7b6bed69e89891107bf.

[1] https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-credit-card
[2] https://api.authorize.net/xml/v1/schema/AnetApiSchema.xsd

opw-2725246

closes odoo/odoo#82171

X-original-commit: 412e50290524ed0edc0317b141a296a883b173d3
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-01-04 09:37:45 +00:00
Philippe Wauthy 5a05d7a89a [FIX] hr_holidays: fix test_leave_whole_company_07 test
test_leave_whole_company_07 test was failing due ot the hr_leave_date_check2
constraint.
This constraint check that date_from <= date_to for a leave.

date_from and date_to were not assigned any value before and had a default value
of fields.Datetime.now. Depending on which date_from or date_to is created first,
a few second difference can exist and this violates the hr_leave_date_check2 constraint

task-2726143

closes odoo/odoo#82192

X-original-commit: c51553405b727e0187c0cf27b0ef9e0cb6023056
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-01-04 08:47:11 +00:00
William Braeckman a3a32c66fd [IMP] project: improve on x2many tracking
While investigating an issue with the x2many tracking, we found a
better way that to track those field while also fixing the issue.

Fixes an issue with `default_*` context keys that are used in the
project app upon writing on tasks.

TaskId-2725014

closes odoo/odoo#82189

X-original-commit: a281a18fc84a09177f7b5e8aab98b8dc34dcc3b8
Signed-off-by: Xavier <xbo@odoo.com>
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-04 08:47:07 +00:00
Dharmraj Jhala 5df1bf140b [IMP] website_event_{sale, track}: make the installation more robust
In the event app, we have few email templates ('event.type') defined
in the data file so that when app is installed, user can have some basic
information readily available.

When needed, this data records are updated in few dependent modules
to provide more meaning to them. However, if these data records are
deleted, and someone tries to install it's dependent modules, it will
throw traceback because `<record>` tag won't be able to find the
linked record.

This commit makes the installation process more robust for such
modules by using write method with help of `<function>` tag, so
that if the record is available, it will be updated otherwise
no traceback will be thrown.

TaskID-2584092

closes odoo/odoo#80826

Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
2022-01-04 08:47:00 +00:00
Priyanka Kakadiya cefd6ade29 [FIX] web: click on time should work in kanban view
Before this commit:
kanban click on time value does not open the form view.

After this commit:
kanban click on time value will open the form view.

Task-2655411

closes odoo/odoo#82191

X-original-commit: 33b5e71aecc43b373ab7c863e1a1fe7a7dc8f7cb
Related: odoo/enterprise#23232
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-04 07:59:38 +00:00
Philippe Wauthy dc0db19fc8 [FIX] hr_holidays: allocation not found in test_limited_type_days_left
In test_limited_type_days_left, a time off was created with:
- 'date_from': (datetime.today() - relativedelta(days=2)),
- 'date_to': datetime.today(),

The test fails beginning of January as the allocation created at the
beginning of the test is valid between Jan 1 and Dec 31

task-2726171

closes odoo/odoo#82179

X-original-commit: df71862e59943b83584c36b08acd9700998716e1
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-01-04 07:59:29 +00:00
Philippe Wauthy 79a8561f97 [FIX] hr_holidays: fix test_01_leave_request_flow_limited
In test_01_leave_request_flow_limited, a time off was created with:

- 'date_from': (datetime.today() + relativedelta(days=2)),
- 'date_to': datetime.today() + relativedelta(days=3),
The test fails during the end of December because no allocation is found.
The time is now frozen in the test

task-2726308

closes odoo/odoo#82178

X-original-commit: 1d6e736832b56a4c2bf1b9e335ed2bd8f929507a
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2022-01-04 07:59:26 +00:00
Laurent Stukkens (LTU) 277024e357 [FIX] project: prevent blank space at bottom right of project kanban
Prior to this commit:

    - When no user_id were set on the project, a with blank space was shown at
      the bottom right of the kanban card.

After this commit:

    - When no user_id is set on the project, the kanban status is move at the
      bottom right of the kanban card.

task-2703632

closes odoo/odoo#82190

Closes: #80691
X-original-commit: 5bfea889d46ff66d4f2edd56449203943d7d040c
Signed-off-by: Xavier <xbo@odoo.com>
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-01-03 22:55:17 +00:00
Didier (did) 09b3e8cfa1 [FIX] mail: temporary id should be negative
Before this commit temporary id could match an existing attachment id and
replace that attachment by the new uploaded one.
Even if this is very unlikly, using a negative id avoid it completly.

closes odoo/odoo#82185

X-original-commit: c18705d1ced6a9b1d6bb8c33049a1248ae83cf18
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2022-01-03 20:21:51 +00:00