To reproduce:
1. Create a Sales Order for a product whose product category is set to
FIFO and automated. Use route "dropship".
2. Confirm the PO created.
3. Deliver the products (DS transfer)
5. Return, for example, 1 unit of product
6. Return the return
This is a continuation of commit f9a1c1d7bb8234eb96c48dddae9930a419bfb696
If the origin of the move is a dropshipped_returned, then the error describe in the mentioned commit will still happen.
opw-3283436
closesodoo/odoo#127403
X-original-commit: b7a91e3682aad7ecc1a4a8a42b2d6368573ba906
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
Signed-off-by: David Fesquet (dafr) <dafr@odoo.com>
Before this commit, the fixed margin between buttons wouldn't leave
enough room for all the buttons to fit in one row in the chat window.
This commit fixes this issue by using the flex space-between instead of
fixed margins.
closesodoo/odoo#127424
X-original-commit: c5a121729d5348ff81ef9bb8f58611c9234ef9f9
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
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.
closesodoo/odoo#127518
X-original-commit: 43227ad2eaaeba3f6e3e6fae8b84728e0c33c59a
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
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
closesodoo/odoo#127497
X-original-commit: 11503de934e272d1df615f1a79acd1b96954bbd3
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Nasreddin Boulif (bon) <bon@odoo.com>
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
closesodoo/odoo#127493
X-original-commit: 6d9d4d1b43544ae98cc8037ba01c81b66ab9f0ee
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
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.
closesodoo/odoo#127490
X-original-commit: d54bae78db25dc62687e3afc64f8699dfbfd5cf8
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: John Laterre (jol) <jol@odoo.com>
- 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
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`.
closesodoo/odoo#127399
Related: odoo/enterprise#43678
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
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
closesodoo/odoo#127467
X-original-commit: c39256ba6df257ee79fb66eab61617f5fec166b9
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Walid Hanniche (waha) <waha@odoo.com>
`isMatched` is always true, so it have little/no purpose and we can
remove this attribute.
closesodoo/odoo#127279
Signed-off-by: Adrien Minne (adrm) <adrm@odoo.com>
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
closesodoo/odoo#127064
X-original-commit: a646baf6901f88434543cb34397c98f1d5c294c4
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
- 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.
closesodoo/odoo#120586
Taskid: 3101400
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
on error unblock dispay and enable pay button to allow
user perform actions
closesodoo/odoo#127441
X-original-commit: 3bcb74438c8e29eb52c2e20c97dabca7a61a1dae
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
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
closesodoo/odoo#126818
X-original-commit: 312cf1870d15145b511e4ebffa82dd44a7fec22c
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
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
closesodoo/odoo#121185
Signed-off-by: Mathieu Duckerts-Antoine (dam) <dam@odoo.com>
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
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
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
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
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
closesodoo/odoo#127371
X-original-commit: 7937dbec9699e7d0f68450c469c9b742446303eb
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
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
closesodoo/odoo#127332
X-original-commit: 252320a6154ba06cc4c7f96787a39baf12329804
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
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
closesodoo/odoo#127325
X-original-commit: 6fd2a939651e7afc06fa9eed2eeeebc34752fc25
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
- 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
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
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
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
- 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
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
This commit adds an "Odoo" functions category in the top bar menu
"Insert > Function".
It allows to easily discover existing functions.
closesodoo/odoo#127372
Signed-off-by: Alexis Lacroix (laa) <laa@odoo.com>
* = 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`.
closesodoo/odoo#125961
Related: odoo/enterprise#43635
Signed-off-by: Didier Debondt (did) <did@odoo.com>
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
closesodoo/odoo#125137
Related: odoo/enterprise#42772
Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
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
closesodoo/odoo#120151
Signed-off-by: Michaël Mattiello (mcm) <mcm@odoo.com>
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
closesodoo/odoo#127349
Signed-off-by: Didier Debondt (did) <did@odoo.com>
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
closesodoo/odoo#127317
X-original-commit: cb46032f8d74505b792b06c90565e7a4741d921c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
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
closesodoo/odoo#127178
X-original-commit: 7fb1c9ff07f5ec05fc313283a497137327d9ce3a
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
Introduces a new group called "Dashboards / Admin within the
spreadsheet_dashboard module, replacing the existing
"Administration / Settings" group for Improved Dashboard Management
taskID = 3373509
closesodoo/odoo#125708
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
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
closesodoo/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>
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.
closesodoo/odoo#127284
X-original-commit: 34abd3dc1d159962a376b248134d0cd4977f3dcb
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
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`).
closesodoo/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>
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.
closesodoo/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>
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.
closesodoo/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>
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.
closesodoo/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>
=== 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
closesodoo/odoo#127333
X-original-commit: 75c58ef8265013b39a7a9ddd55e764b2b6ff138a
Signed-off-by: Pierre Paridans (app) <app@odoo.com>