Commit Graph
162801 Commits
Author SHA1 Message Date
Alexandre Kühn 73db32a17f [FIX] mail: send message on archived chatter
Follow-up of https://github.com/odoo/odoo/pull/120002

Commit above made a a structural change of code that
should not have changed the functional behaviour of
chatter.

In consideration of reducing query count footprint,
it replaced a `browse().exists()` by `search()`, as
`exists()` always perform a query whereas `search()`
may rely on cache and skip a query.

However, `search()` filters archived records, so this
change unintentionally removed the possibility to send
messages on archived chatter. Also the performance of
`search()` and `browse().exists()` are pretty much the
same, so the premise of changing it to `search()` seems
wrong.

This commit reverts this part so that this is the exact
same behaviour as before.

closes odoo/odoo#127518

X-original-commit: 43227ad2eaaeba3f6e3e6fae8b84728e0c33c59a
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-06 00:27:43 +02:00
Nasreddin Boulif (bon) de0a473d55 [FIX] sms: keep sms format when sending mass sms
Steps to reproduce the bug:

  - Install mass_mailing_sms module (for test purpose)
  - Go to Contacts and open list view
  - Select a contact and click on "Actions -> Send SMS Text Message"
  - Write a message on multiple lines and click on "Send Now"
  - Open partner form view

Issue:

  The message is not displayed on multiple lines in the chatter.

Cause:

  The message is converted to plain text while should be converted to
  HTML for logging.

Solution:

  Convert the message to HTML (like it is done when sending not in mass)

opw-3301577

closes odoo/odoo#127497

X-original-commit: 11503de934e272d1df615f1a79acd1b96954bbd3
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Nasreddin Boulif (bon) <bon@odoo.com>
2023-07-05 21:51:48 +02:00
Romain Derie 577cfc9e7f [IMP] website: make the test not rely on .pot
Before this commit, the "click on save" in french step was checking for
the element containing the "Save" french translation term, which is
coming from Transifex.
It sometimes changes, making the tour fail.
It was "Sauver", then "Sauvegarder" and now "Enregistrer".

This was a well known issue as we already made a quick and dirty fix for
that with [1].
It was judged enough as we did not want to spend more time on this fix
as it was expected to not break anytime soon, and we needed a quick fix.

The chance is now taken to adapt the test to not rely anymore on the
.pot file.

We also take the chance to not use an existant translation but a fake
one as it will speed up the test (no need to actually read/parse .po
files are there is none for this lang).

[1]: https://github.com/odoo/odoo/commit/594ac2c9651f27cc1623fcd5b916cb191241651b

runbot-22946
runbot-22945

closes odoo/odoo#127493

X-original-commit: 6d9d4d1b43544ae98cc8037ba01c81b66ab9f0ee
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2023-07-05 18:47:01 +02:00
John Laterre (jol) 2950c449de [FIX] account: remove constraint when printing original bills
This constraint did not exist prior to version 16.0 and was
added here : https://github.com/odoo/odoo/commit/7c4e591d58dd2b882f0c237d52490b2756c94203

But this feature is used by fiduciaries for printing customer
invoices, which is why we are removing it here.

No task, internal feedback.

closes odoo/odoo#127490

X-original-commit: d54bae78db25dc62687e3afc64f8699dfbfd5cf8
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: John Laterre (jol) <jol@odoo.com>
2023-07-05 18:46:58 +02:00
Raphael Collet 910456b397 [FIX] account: onchange2() for account.move
closes odoo/odoo#127400

Related: odoo/enterprise#43681
Signed-off-by: Raphael Collet <rco@odoo.com>
2023-07-05 18:46:50 +02:00
Raphael Collet 92e5c7b160 [FIX] web: make onchange2() use new() with initial values
This enables an override of new() to do what is needed to make onchanges
on account.payment work as expected.

Part-of: odoo/odoo#127400
2023-07-05 18:46:50 +02:00
Raphael Collet f7cbaca473 [FIX] base, account: avoid messing up with implementation of Form
Part-of: odoo/odoo#127400
2023-07-05 18:46:50 +02:00
Raphael Collet b33452cd57 [IMP] tests: simplify implementation of Form
- simplify initialization of form._values (don't fill in with False)
- use UpdateDict for form._values (more consistent with x2many values)
- better/simpler API for getting save/onchange/all values
- don't reparse subview in O2MForm (already done by toplevel Form)
- guarantee that one2many fields always have an edition view
- add assignment on many2many fields
- add __getitem__/__setitem__ to access/assign fields with dynamic name

Part-of: odoo/odoo#127400
2023-07-05 18:46:49 +02:00
Alexandre Kühn e228acb081 [REV] mail: debounce suggestion (and channel selector) searches
This reverts odoo#126869.

Motivation for debounce was to reduce the amount of RPCs, to
not put too much load on server.

However, this makes showing of mention slower than it should,
and the load on server is already adjusted based on duration
of ongoing `fetchSuggestion` RPC: if server can reply with mentions
immediately, then no need to debounce. If the RPC is slow, then
next `fetchSuggestion` waits for current RPC to finish before
making a new fetch.

This PR also fixes this small crash when using mentions:

```
TypeError: Cannot read properties of undefined (reading 'toLowerCase')
    at cleanTerm (format.js:244:1) (/mail/static/src/utils/format.js:244)
```

Steps to reproduce:
- type `@` then `backspace` then `@` then `backspace`, etc.

This happened because suggestion hook internal state had `term` being undefined when there is no term, but `undefined` is invalid for `cleanTerm`. `""` is a better default for no search term, and since this is a string this works with `cleanTerm`.

closes odoo/odoo#127399

Related: odoo/enterprise#43678
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-05 18:46:42 +02:00
Walid a1deba1186 [FIX] mrp: keep reserved tracked products on Backorders
Steps to reproduce:
- Create a subcontracted product with components tracked by lots
- make a PO for 35 the product and send components from multiple lots
- login as subcontractor on the portal
- record uncomplete production and change the default consumed lots

Bug:
split production ignores the done quantities on the initial move
on the Backorders components are considered to be consumed in the
default order

Fix:
Consume components on the initial move as indicated by the user
reserve the remaining components for the Backorders as usual

opw-3186773

closes odoo/odoo#127467

X-original-commit: c39256ba6df257ee79fb66eab61617f5fec166b9
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
2023-07-05 17:34:13 +02:00
Lucas Lefèvre 1a71f8cff7 [REF] spreadsheet: remove useless match attribute
`isMatched` is always true, so it have little/no purpose and we can
remove this attribute.

closes odoo/odoo#127279

Signed-off-by: Adrien Minne (adrm) <adrm@odoo.com>
2023-07-05 17:34:10 +02:00
Lucas Lefèvre dffaf2b78f [REF] spreadsheet: find odoo functions with iterator helper
Part-of: odoo/odoo#127279
2023-07-05 17:34:10 +02:00
Lucas Lefèvre 647c6663f9 [IMP] spreadsheet: update o_spreadsheet to latest version
### Contains the following commits:

https://github.com/odoo/o-spreadsheet/commit/b04cf78c2 [REL] 16.4.0-alpha.7
https://github.com/odoo/o-spreadsheet/commit/37e6ebed5 [IMP] helpers: add ast iteration helper Task: 3360232
https://github.com/odoo/o-spreadsheet/commit/c44431ffa [IMP] TopBarComposer: allow selection in readonly mode Task: 3378521
https://github.com/odoo/o-spreadsheet/commit/44063ddaf [ADD] functions: add TRUE and FALSE boolean functions Task: 3360232
https://github.com/odoo/o-spreadsheet/commit/62a93f842 [REF] tokenizer: decouple tokenizer from functions Task: 3360232
https://github.com/odoo/o-spreadsheet/commit/153a50d23 [IMP] xlsx: import images

Part-of: odoo/odoo#127279
2023-07-05 17:34:09 +02:00
roen-odoo a79dfeda98 [FIX] point_of_sale : use correct account for pos order reversal
Current behavior:
When you try to invoice an order that was made in a different pos
session, a reversed payment is created and then the invoice is created.
But the reversed payment was using a different journal than the one
used to create the order, which is not correct.

Steps to reproduce:
- Open a PoS session
- Make an order and pay it with the customer account
- Close the session
- Open a new session
- Go to the orders list and show the paid orders, you should see the
  order you made in the previous session.
- Click on it and click on the invoice button
- Go to the accounting app and check the entries created for the
  invoice, you should see a reversed payment entry that uses a
  different account than the one used to create the order payment.

opw-3249116

closes odoo/odoo#127064

X-original-commit: a646baf6901f88434543cb34397c98f1d5c294c4
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2023-07-05 17:34:06 +02:00
Odoo's Mergebot 566a93567b [MERGE] base,hr: Remove Private Addresses
- The private addresses have been removed from the "res.partner" model.
- The employees' private address information has been moved to the "hr.employee" model, preserving the old records but emptying the private information fields.
- The applicant's private address information has been moved to the "hr.applicant" model, following the same approach.
- More generally, some efforts have been done to ensure we only create and use the same partner from the application form, to the employee creation and also the user creation.
- The salary configurator offer mechanism has been improved to provide stability (no more arguments in URL), traceability (track changes and responsibles) and reporting.

closes odoo/odoo#120586

Taskid: 3101400
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2023-07-05 17:33:59 +02:00
Valeriya(vchu) 2b4ddc96cd [FIX] payment_adyen: fix form behavior on error
on error unblock dispay and enable pay button to allow
user perform actions

closes odoo/odoo#127441

X-original-commit: 3bcb74438c8e29eb52c2e20c97dabca7a61a1dae
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-07-05 15:58:31 +02:00
Arnold Moyaux 7b54b26683 [FIX] pos_sale: Pick from reserved stock.move.line
Usecase to reproduce:
- Set reservation method to closest location
- Set the POS as real time stock
- Put 1 unit in A and 1 unit in location B
- Create a SO for 1 unit
- Sell it in the POS

Expected behavior:
The unit has been taken from the reservation in location A

Current behavior:
The unit is taken from B

It happens because the SO is unreserved after the new picking
and stock.move.line creation. Since the unit is reserved, he
can't pick it and take a random ones.
The solution here is to unreserve the related stock.move to
free the reserved unit, it will not always be the same than the
SO but it will consider it in the removal strategy. It could
also fix the case where only 1 unit remains in stock and he won't
pick it.

opw-3271217

closes odoo/odoo#126818

X-original-commit: 312cf1870d15145b511e4ebffa82dd44a7fec22c
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2023-07-05 15:58:26 +02:00
Odoo's Mergebot 05750b98fb [REF] web: remove top level await
This PR removes two top level await in test files and reorganizes a bit the tests setup as the module loading sequence has changed. This PR also fixes some bugs spotted during dev. The goal of removing async modules is to simplify the module loader in the future.

task id: 3265979

closes odoo/odoo#121185

Signed-off-by: Mathieu Duckerts-Antoine (dam) <dam@odoo.com>
2023-07-05 15:58:21 +02:00
Michael (mcm) ac153558a6 [FIX] web, mail: indirectly call a patched function
The commit [1] removed two async module and caused a reorganisation
on the module loading.
Since that commit, the patches could be applied in a different order
and be applied after a save of one these patches.

This commit fixes a case where we save the reference of a patched
function that we call it later with missing patches.

[1]: 96687f29496ab4cf16ae2ab1584ef1a6a3fb4a11

Part-of: odoo/odoo#121185
2023-07-05 15:58:20 +02:00
Michael (mcm) 69afcfcc1a [FIX] web: prevent false test fail
The commit [1] removed two async module and caused a reorganisation
on the module loading.
Since that commit, two tests that throw an error failed
because the error message was written in the console
and the server considered this as a test fail.
Now, the error message is not written in the console anymore.

[1]: 96687f29496ab4cf16ae2ab1584ef1a6a3fb4a11

Part-of: odoo/odoo#121185
2023-07-05 15:58:19 +02:00
Michael (mcm) 03ad36676f [FIX] web: reset uniqueId to 0 in tests
The commit [1] removed two async module and caused a reorganisation
on the module loading.
Since that commit, `uniqueId` did not begin with the id 1 in its test
and so the test failed.
Now, the variable containing the last id of `uniqueId` is set on the
function itself. This allows us to reset the id in the test.

[1]: 96687f29496ab4cf16ae2ab1584ef1a6a3fb4a11

Part-of: odoo/odoo#121185
2023-07-05 15:58:19 +02:00
Michael (mcm) 3933dac0c7 [REF] web: remove top level await
This commit removes two top level await in test files and reorganises
a bit the tests setup as the module loading sequence has changed.
The commit also converts the modules that contained
these top level await to esm.

The goal of removing async modules is to simplify the
module loader in the future.

task id: 3265979

Part-of: odoo/odoo#121185
2023-07-05 15:58:19 +02:00
Arthur Detroux (ard) 7b2bbb9c52 [FIX] account, sale: fix dependency on PortalHomeCounters
Prior to this commit, the patches done by `account_portal.js` and
`sale_portal.js` were done without any import.

This means that the widget it modifies (PortalHomeCounters) might not
already be loaded in the registry. This could lead to some issue later.

This commit uses an "import" statement on the module that defines
PortalHomeCounters to ensure that it is present in the registry.

task-3249625

closes odoo/odoo#127371

X-original-commit: 7937dbec9699e7d0f68450c469c9b742446303eb
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2023-07-05 14:34:04 +02:00
Anita (anko) 22179ca948 [FIX] payment_authorize: fix multiple forms bug
Due to default JS limitations, when trying to save payment method on
subscription it was automatically taking first form that it could
find which was payment form and causing an error since payment form
was empty.

task-3339230

closes odoo/odoo#127332

X-original-commit: 252320a6154ba06cc4c7f96787a39baf12329804
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-07-05 14:34:00 +02:00
roen-odoo 46b18d391f [FIX] point_of_sale: fix kit total cost when sold in PoS with fifo/avco
Current behavior:
When selling a kit in PoS, the total cost of the kit is not computed
correctly if the product category was using fifo/avco.

Steps to reproduce:
- Create a product category using fifo
- Create a kit product with 2 products in it (Comp A with a cost of 5
  and Comp B with a cost of 10). Total cost of product is 15.
- Create a PoS order with the kit product, and validate it
- Check the total cost of the product in the pos sale order, it is 0
  but it should be 15.

opw-3189949

closes odoo/odoo#127325

X-original-commit: 6fd2a939651e7afc06fa9eed2eeeebc34752fc25
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2023-07-05 14:33:58 +02:00
Yannick Tivisse 84e8aa90dd [IMP] hr: Prevent non HR people from accessing employees bank accounts
- Billing officers / HR officers have access to all bank accounts
- Internal users only have access to bank accounts that are not linked to an employee
- Portal/Public users have access to nothing.

TaskID: 3101400
2023-07-05 14:21:28 +02:00
Yannick Tivisse 5f93474570 [IMP] web: Allow displaying simple json fields
Purpose
=======

It is currently impossible to display a json field on a form view without
defining a specific widget.

Allow displaying the json field in its simplest form, aka the stringified
content in readonly mode.

TaskID: 3101400
2023-07-05 14:21:28 +02:00
Yannick Tivisse fda7ec5f1f [FIX] mail: Fix truncated template field on mail.composer
TaskID: 3101400
2023-07-05 14:21:28 +02:00
Yannick Tivisse 7bd2327d79 [IMP] hr_recruitment: Remove restrictive and confusing ir.rule
No need to hide the chatter to recruiters, as the salary configurator
has been improved to avoid posting sensitive data on the application
form itself.

TaskID: 3101400
2023-07-05 14:21:28 +02:00
Yannick Tivisse 71b9933411 [IMP] hr_recruitment: Avoid partner duplication
Use the application form partner as work contact when converting him into
and employee.

Use the employee work contact as user partner on user creation.

The goal is to have only 1 partner over the whole recruitment process
flow, instead of three, thus reducing the confusion for end users who
don't really know who to choose.

TaskID: 3101400
2023-07-05 14:21:28 +02:00
Yannick Tivisse b1f7e56f79 [IMP] base: Remove private res.partner type
- Improve performances, as the ir.rule restricting private partners
  visibility is also applied on res.users by inheritance, on each
  prefetch.
- Solve the issue of partners set as followers on records (eg: application
  form) and then made private, making them impossible to contact via the
  chatter.
- Solve the multiple access issues when trying to access the bank
  account, or the private address for non HR people like the accountants
  forcing the usage of sudo in the business code.

TaskID: 3101400
2023-07-05 14:21:28 +02:00
Yannick Tivisse e8c48f824e [IMP] hr: Remove address_home_id field
Improve usability of employee form. It is confusing for end users
to create another record to encode the employee address.

Move all the private information on the hr.employee record itself.

Remove the M2O address_home_id.

TaskID: 3101400
2023-07-05 14:21:28 +02:00
Lucas Lefèvre (lul) 1f704ecdb1 [IMP] spreadsheet: add Odoo function category
This commit adds an "Odoo" functions category in the top bar menu
"Insert > Function".

It allows to easily discover existing functions.

closes odoo/odoo#127372

Signed-off-by: Alexis Lacroix (laa) <laa@odoo.com>
2023-07-05 13:09:48 +02:00
Sébastien Theys ef4196281b [IMP] mail, *: optimize query of channel members
* = im_livechat, test_discuss_full

According to stats from our production database, this query is 10 times
faster than the one generated by the ORM by using a `left join` rather
than `id in`.

closes odoo/odoo#125961

Related: odoo/enterprise#43635
Signed-off-by: Didier Debondt (did) <did@odoo.com>
2023-07-05 11:37:16 +02:00
Sanjay-Sharma 4f6a92e684 [IMP] web_editor: add emoji picker in web editor
Purpose:

This commit adds Emoji_picker functionality to the web_editor,
allowing users to conveniently add emojis to their text and
improving the overall user experience.

Specifications:

Now we can insert emoji in web_editor using `/emoji`.

Task id: 3253958

closes odoo/odoo#125137

Related: odoo/enterprise#42772
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
2023-07-05 11:37:06 +02:00
Sanjay-Sharma 4bc70c585c [MOV] moved emoji_picker from mail to web
Before this commit:

emoji_picker was in mail module

After this commit:

moved emoji_picker to web module

Part-of: odoo/odoo#125137
2023-07-05 11:37:06 +02:00
Julien Carion (juca) da24433f65 [FIX] web: Dialog buttons for form and x2many disabled
This commit fixes an issue with dialog buttons where it is possible
to trigger their action multiple times if the network is slow. This
is solved in form dialogs and x2many dialogs by disabling the buttons
when the user clicks on them.

opw-3291929

closes odoo/odoo#120151

Signed-off-by: Michaël Mattiello (mcm) <mcm@odoo.com>
2023-07-05 11:37:03 +02:00
tsm-odoo d49bceb161 [FIX] im_livechat: fix channel member service patch
This commit fixes several issues with the channel member
service patch:
- patch should be applied to prototype
- super should be provided the params given to the patch

closes odoo/odoo#127349

Signed-off-by: Didier Debondt (did) <did@odoo.com>
2023-07-05 10:13:01 +02:00
Julien Banken dbba7403aa [FIX] web_tour: clear timeout on last step
The timeout mechanism of the tours works as follow: When a step is
executed, the step will clear the timeout set by the previous step and
set a new timeout for itself. If the next step does not clear that
timeout in time, the callback function of the timeout will be executed
and will print an error message in the console indicating that the step
fails.

Currently, the last step we add to clear the tour state and call the
`onTourEnd` callback does not clear the latest timeout set. As a result,
the last step will eventually timeout and the system will log an error
message in the console indicating that the last step fails even if the
tour has previously been reported as successful.

To fix the issue, the last step we add to clear the tour state and
call the `onTourEnd` will now also clear the last timeout. The system
will now no longer print an error message in the console.

Steps to reproduce the error:

Go on the runbot:
1. Enable the developer mode with test assets
2. Click on the bug icon of the odoo navbar to run a test tour
3. Open the console (F12)
4. Run a test tour like `knowledge_index_command_tour` (with automatic steps).
5. Wait for the tour to finish (the test should be successful)
6. Wait 10 seconds after the end of the tour

=> An error message is shown in the console.

TOBE: If the test is reported as successful, there shouldn't be any timeout.

task-3373853

closes odoo/odoo#127317

X-original-commit: cb46032f8d74505b792b06c90565e7a4741d921c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2023-07-05 10:12:58 +02:00
Touati Djamel (otd) 5b1bc2e1da [FIX] mrp: raise validation error only if total cost share exceeds 100
Steps to reproduce the bug:
- Enable the "by-product" option in the mrp settings.
- Create a product A with the following Bill of Materials:
    - Component: 1 unit of Product B.
    - By-product: 2 units of Product C.
- Create a Manufacturing Order to produce one unit of Product A.
- Confirm the MO.
- Set the quantity of Product A to 1.
- Set the quantity of the by-product "C" to 1 instead of 2.
- Attempt to validate the MO.

Problem:
When validating the MO, we check if the sum of the cost share in the
“move_byproduct” does not exceed 100. However, we do not exclude the
cancelled move, leading to incorrect calculations.

opw-3375388

closes odoo/odoo#127178

X-original-commit: 7fb1c9ff07f5ec05fc313283a497137327d9ce3a
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
2023-07-05 10:12:50 +02:00
jash-odoo 0c50cbe18c [IMP] spreadsheet_dashboard: Create a Dashboards / Admin security group
Introduces a new group called "Dashboards / Admin within the
spreadsheet_dashboard module, replacing the existing
"Administration / Settings" group for Improved Dashboard Management

taskID = 3373509

closes odoo/odoo#125708

Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
2023-07-05 10:12:48 +02:00
Hubert Van de Walle (huvw) bc70627cba [FIX] auth_password_policy: allow to start a password with a special char
Steps to reproduce
==================

- Go into sign-in > Don't have an account
- Enter a password starting with a special character (ie: $)

Uncaught Javascript Error > Failed to set the 'value' property on 'HTMLMeterElement': The provided double value is non-finite.

Cause of the issue
==================

`(password.split(/[^\W_]+/).length - 1)` -> 0
`0 / 0` -> NaN
`Math.min(NaN, 1.0)` -> NaN

opw-3397932

closes odoo/odoo#127337

X-original-commit: e377aae101477b414d5391036477280a0c18445c
Signed-off-by: Vranckx Florian (flvr) <flvr@odoo.com>
Signed-off-by: Hubert Van De Walle <huvw@odoo.com>
2023-07-05 09:01:10 +02:00
Thanh Dodeur e8a883ff65 [FIX] mail: prevent crash when deleting a message
Since https://github.com/odoo/odoo/pull/126713, deleting a message
would crash as the `mail/message/update_content` route is called without
passing the `partner_ids` parameter.

This commit fixes the issue by making the parameter optional.

closes odoo/odoo#127284

X-original-commit: 34abd3dc1d159962a376b248134d0cd4977f3dcb
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-07-05 02:47:42 +02:00
Alexandre Kühn 74b9986b30 [FIX] mail: improve horizontal spacing between msg avatar and bubble
Before this commit, horizontal spacing in message between avatar
author and bubble was too big. This makes reading messages slightly
hard, because this small gap gives the impression that the message
and avatar are 2 distinct part of UI.

This commit fixes the issue by reducing the size of message sidebar,
so that avatar and bubble are much closer together.

Also the message avatar was too close to the border of chat windows.
This commit fixes the issue by slightly increasing the horizontal
padding of messages in chat window (`px-1` => `px-2`).

closes odoo/odoo#127341

X-original-commit: 226c6588a89bf21e8c0a47010bffb8c59cbb4e37
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-05 01:31:05 +02:00
Alexandre Kühn a6ae780078 [FIX] mail: show updated activity date on changing its deadline date
Before this commit, when making an activity set at a specific date,
and then changing its deadline, the activity in chatter still displays
the old date instead of new date.

Steps to reproduce:
- schedule an activity in chatter for today
- edit activity and change deadline for tomorrow
=> Activity in chatter shows "Today" instead of "Tomorrow"

This happens because the compute of date delay in activity component
is made locally and relies on a field in activity model, which itself
is a reactive (because the activities are stored in discuss store,
which itself is reactive). This compute is made at setup and on change
of props. However, when the `deadline_date` in activity model changes
then the model is still the same, therefore it doesn't trigger the
`onWillUpdateProps`.

This would work if this part of template was fully relying on
`deadline_date`. It was the case for the icon, so the icon is working
well. But the label was computed locally, so OWL could not detect that
`state.delay` needs to be recomputed.

This commit fixes the issue by replacing `state.delay` to a getter
that reads on `activity.deadline_date`, so that this is reactive
to changes on `deadline_date`.

Also fixing a memory leak of a `setTimeout` that was not cleared on
unmounting `Activity` component.

closes odoo/odoo#127319

X-original-commit: d7e314dde8d7bb20ed83ba821cdad1009c87e4c8
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-05 01:31:02 +02:00
Alexandre Kühn 496b74fe1b [FIX] mail: message res url should redirect to model
Before this commit, when opening the related thread of a
message from inbox with "Open Link in New Tab", it was not
redirecting to the thread.

This happens because the url was wrongly using message id rather
than thread id. As a result, it redirects to either bad model or
a non-existing model.

This commit fixes the issue by correctly using `resId` instead of
`id`, which is the thread id of message. Also renaming `url` field
of message to `resUrl`, to clarify this is the link of thread and
not a specific link to message.

closes odoo/odoo#127342

X-original-commit: 8270138aba7e31f5db7853fbf00be6922347a8c0
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-05 00:19:37 +02:00
Alexandre Kühn 3b694fa179 [FIX] mail: message action list next to message in chatter
Before this commit, message action list in chatter were always
at the very right of chatter. On small messages, the gap can
be quite big, so it's not easy to tell which message is
related to the action clicked.

This commit fixes the issue by putting message action list
in chatter close to message content, similarly to how this is done
in Discuss app.

closes odoo/odoo#127334

X-original-commit: 06aa1a89ac23fb5705e6c588ff2c91193922d4ec
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-05 00:19:34 +02:00
Chrysanthe (chgo) 93c76dba6b [FIX] mrp: fix badge color
=== ISSUE ===

If you navigate to Inventory > Manufacturing > Kanban view, there is a
color contrast issue with some badges. The text inside is black
by default but sometimes the color is dark enough to not
meet WCAG contrasts.

=== AFTER ===

We use the `.text-bg-x` class instead, which handle both `color` and
`background-color` at the same time.

task-3397937
part of task-3326263

closes odoo/odoo#127333

X-original-commit: 75c58ef8265013b39a7a9ddd55e764b2b6ff138a
Signed-off-by: Pierre Paridans (app) <app@odoo.com>
2023-07-04 23:06:39 +02:00
Alexandre Kühn e1b85e79ee [FIX] mail: show tracking value changed messages on different lines
Before this commit, a tracking value message was displayed on a
single line instead of several lines. The parts of the content
of message with tracking values changes were wrapping on multiple
line.

This happens because the content of message had `d-flex`, which
affects notably tracking values that have this DOM shape:
```xml
<div class="o-mail-Message-content d-flex">
    <p>Stage changed</p>
    <ul>
        <li><span/><i/><span/></li>
    </ul>
</div>
```
Because of `d-flex`, `p` and `ul` were next to each other
horizontally, and the `span` in `li` were wrapping to take
responsive layout of `d-flex` into account.

This commit fixes the issue by removing the `d-flex`. This is
undesirable, as the content is HTMl and it should follow the
intended design of the content. `p` and `ul` next to each other,
without specifying custom `display`, should default to 2 `d-block`
next to each other, so they must be on top of each other.

closes odoo/odoo#127320

X-original-commit: c7df8a5fe0c3f785066800e77eef5a46246308dc
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2023-07-04 20:33:51 +02:00
Alexandre Kühn 2ac5ceb7ff [FIX] mail: keyboard navigation in chat window dropdown
Before this commit, dropdowns in chat window (chat window more menu,
message actions more menu) had no keyboard navigation support.

This happens because dropdown item navigation makes use of hotkey
service, and hotkey service intercepts keyboard in bubble phase on
window object. `ChatWindow` component had a `t-on-keydown.stop` on its
root node, which prevented the hotkey service to receive keyboard
navigation for the good working of dropdown keyboard navigation.

This commit removes the `.stop` modifier on this `t-on-keydown` root
node of `ChatWindow` template. `onKeydown` in dropdown inside chat
window have precedence over `onKeydown` on chat window: For example,
when dropdown is open, hotkey "Escape" closes the dropdown menu but
does not close the chat window.

closes odoo/odoo#127318

X-original-commit: 4b36b28bd9e426b115ffefbbc174fe2efa3dfbf3
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2023-07-04 20:33:48 +02:00