Follow-up of MILK web client redesign.
Before this commit, the avatar and im status in invitation popover
in discuss app were not showing properly: avatar not rounded,
and im status mispositionned in top-right corner.
This commit fixes the issue by absolutely positioning im status
like all other uses of IM status on top of user avatar.
closesodoo/odoo#122459
X-original-commit: 6061d4e718a8e15a1448c236414e8326ba5e13c5
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
After the merge of the milk design at odoo, the calendar_appointments_hour_tour
started failing due to a change in the button that returns to the calendar
view. This commit fixes the tour by adapting the trigger selector to the new
design.
runbot-build-error-21004
closesodoo/odoo#122458
X-original-commit: e0e8833944ca351bd8712f81950de5513a34a0f8
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
Signed-off-by: Leonardo Pavan Rocha <lpr@odoo.com>
Since we've created unescapeHTML to replace the _.unescape function. The
issue is that _.unescape was using the hex code ''," for the
character " ' ". And the new function uses the decimal code ''', but
as there are some old domains for dashboard have ben stored escaped with
''', we are now unable to unescape them.
closesodoo/odoo#122457
X-original-commit: 1516b52cc7266e4cb2afed2941d93f2f9bc21bb9
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Signed-off-by: Masereel Pierre <pim@odoo.com>
Upon changing/removing/adding the analytic account on a manufacturing order, only the analytic lines due to the raw material moves are updated, but not the ones for workcenter costs.
To reproduce:
- Create an MO with a workorder on a workcenter which has an operating cost set
- Complete time on this workorder to generate the [WC] AALs on this MO
- Change the analytic account on the MO (or delete it)
Bug: The [WC] AALs never get correctly updated.
This fix builds on https://github.com/odoo/odoo/pull/79614 to correct this behaviour and also take into account changes for the workcenter cost AALs when the analytic_account of a manufacturing order is changed.
Community PR: https://github.com/odoo/odoo/pull/117308closesodoo/odoo#122396
Task: 3252742
X-original-commit: 35e3af77051d1dfdf54600b607acfb593aa49e34
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
Signed-off-by: Claeys Pieter (clpi) <clpi@odoo.com>
This commit adapts the style of the close button on the mass mailing "mobile
preview" to ensure that it's visible in both regular mode and dark mode.
Task-3326846
closesodoo/odoo#122394
X-original-commit: 440c0f04c7fe59953bfb2924a668f76316c6215e
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Delete the autoplay for all iframes in the iframefallback.
The autoplay was causing issue where the sound of the previous video
was played on the background. Now we delete the autoplay for all iframe
directly.
This happened in media_iframe_video, youtube player and vimeo videos.
We can do this for all iframe source url directly as it impacts other
modules like website_slides or website_event_track_live.
task-3012952
closesodoo/odoo#122392
X-original-commit: 6be8af36726d750065972e122e8f4a0aa0f56a17
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Signed-off-by: Hennecart Jérémy (jeh) <jeh@odoo.com>
This commit adds proxy urls for prod and test peppol servers that are missing at the moment.
Additional small fixes:
- `default_peppol_move_state` when receiving a new document should match the state on the iap server
- not committing when running tests
closesodoo/odoo#122385
X-original-commit: ec895c56c36794f76b5b778833cee655a7c9bfec
Signed-off-by: Laurent Smet <las@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
Steps to reproduce:
Without being logged in,
complete the purchase flow on the ecommerce,
taking care to have a different billing
and shipping address.
If you change the delivery address,
you will get an access error.
Cause:
In some cases, we do not have access to
the `name` field of the `partner` record.
Solution:
Add `sudo` to be able to read the fields.
opw-3276877
closesodoo/odoo#122329
X-original-commit: 1d6ae6bbc765de5673fab5830a81510a1d8857ae
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Lefebvre Thomas (thle) <thle@odoo.com>
Following 78ae3da902 names were added to improve the view inheritance.
But some names were duplicates. This commit will ensure every name is unique to facilitate
inheritance.
closesodoo/odoo#122270
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
Following the suppression of the use of useListener in this PR
https://github.com/odoo/odoo/pull/112219. A function adaptation has
been forgotten.
A correction was made so that now the argument in the declaration of
the said function is not decomposed.
closesodoo/odoo#122184
X-original-commit: 6f20131bb97fe174b19da45e8ceb982995261eff
Signed-off-by: Guilliams Adrien (adgu) <adgu@odoo.com>
Signed-off-by: Monnom David (moda) <moda@odoo.com>
`tocompute` in the `Transaction` contains store field on records to
be recomputed. No-store compute fields are directly invalidated from
the cache when a dependency changes (see `BaseModel.modified`).
In fact, `_recompute_field` was actually doing too much for nothing.
Also, it may invalidate caches of compute no-store fields for no reason
(e.g., if they are searchable). Remove the part for field compute
no-store field. And prevent `_recompute_field` callers from calling it
with no-store fields.
closesodoo/odoo#122147
X-original-commit: ba9ccb07fb12558667db97b866df492fd0f5ba4d
Signed-off-by: Raphael Collet <rco@odoo.com>
Signed-off-by: Rémy Voet <ryv@odoo.com>
In specific situation, unlink can lead to raise a `RecursionError`:
- The model `A` has a many2one `b_id` field toward a model `B`.
This field is set with `ondelete='cascade'`.
- The model `A` has one **store** related field **no-sudo** named
`a_related` (`related='b_id.b_other_field`).
- With `ir.rule` on model `A` with a domain containing `a_related`
You have one record B `b_1` with 20 records A linked to it
(`a_1, ..., a_20`). When you try to unlink `b_1`:
Stack:
File "...", line 543, in ...
b_1.unlink()
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 3594, in unlink
self.env.flush_all()
=> At this point, `a_1, ..., a_20` have already been deleted from the
database because of the 'cascade' deletion. But the ORM doesn't have
any information about this, and `a_related` (for `a_1, ..., a_20`) are
flagged to be recomputed (because it depends on `b_id.b_other_field`)
File "/home/odoo/Documents/dev/odoo/odoo/api.py", line 732, in flush_all
self._recompute_all()
File "/home/odoo/Documents/dev/odoo/odoo/api.py", line 728, in _recompute_all
self[field.model_name]._recompute_field(field)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 6165, in _recompute_field
field.recompute(records)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 1348, in recompute
self.compute_value(record)
=> `self.compute_value(recs)` raised a `MissingError` before recalling
`compute_value` with only the first `record` (but others are still in
the prefetch)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 1368, in compute_value
records._compute_field_value(self)
=> `a_related` of `record` is removed from to_compute, but only the
first record, not the rest of the records present in the prefetch set.
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 4194, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 100, in determine
return needle(records, *args)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 689, in _compute_related
values = [first(value[name]) for value in values]
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 689, in <listcomp>
values = [first(value[name]) for value in values]
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 5860, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 2772, in __get__
return super().__get__(records, owner)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 1186, in __get__
recs._fetch_field(self)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 3162, in _fetch_field
self._read(fnames)
=> `_read` tries to read the first record + others from the prefetch set
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 3215, in _read
self.with_context(active_test=False)._flush_search([], order='id')
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 4607, in _flush_search
self.env[model_name].flush_model(field_names)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 5560, in flush_model
self._recompute_model(fnames)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 6134, in _recompute_model
self._recompute_field(field)
=> This is where the recursion starts, record compute will move forward
one by one. But sadly, the stack grows very fast, and with only a few
(already deleted) records to recompute, the issue will be generated.
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 6165, in _recompute_field
field.recompute(records)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 1348, in recompute
self.compute_value(record)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 1368, in compute_value
records._compute_field_value(self)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 4194, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 100, in determine
return needle(records, *args)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 689, in _compute_related
values = [first(value[name]) for value in values]
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 689, in <listcomp>
values = [first(value[name]) for value in values]
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 5860, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 2772, in __get__
return super().__get__(records, owner)
File "/home/odoo/Documents/dev/odoo/odoo/fields.py", line 1186, in __get__
recs._fetch_field(self)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 3162, in _fetch_field
self._read(fnames)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 3215, in _read
self.with_context(active_test=False)._flush_search([], order='id')
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 4607, in _flush_search
self.env[model_name].flush_model(field_names)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 5560, in flush_model
self._recompute_model(fnames)
File "/home/odoo/Documents/dev/odoo/odoo/models.py", line 6134, in _recompute_model
self._recompute_field(field)
How to fix it:
Move the logic of the MissingError of `_recompute_field` inside the
`recompute` directly.
X-original-commit: c2aac02ac4f8c5cc4a9324134535393bd97338ce
Part-of: odoo/odoo#122147
This reverts commit 9e71094582ec4c9b719431e77538da8f91ffa9e3.
Why?
- It is useless in 16.0, the bug it claims to fix should not exist. In the
commit explanation the sentence 'this calls `_read`, which flushes the
field we're trying to read' is wrong, since
https://github.com/odoo/odoo/pull/66938 (merged in 15.5). (It is still true
for fields that are in an ir.rule, but it sounds very unlikely to have
a recursive field in ir.rule that causes trigger the problem)
- It creates worst errors (infinite loop for recursive field computation on
missing record - Next commit).
- Also, it looks like a dangerous fix that can hide or trigger new
issues.
X-original-commit: 4a46c1049a4cdc15f0e211d228fb976ba7a0173d
Part-of: odoo/odoo#122147
Purpose:
Improve the lead and opportunity list displayed on the partner portal.
Specification:
-> Add the Email and Phone field to the list of the lead and the opportunity.
-> Change the name label of the lead's list with Lead.
-> Change the name label of Opportunity's list with Opportunity.
Task-3300626
closesodoo/odoo#121342
Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
The PoS needed improvments for the mobile use.
This commit is changing the display of some screen and popups
like the NumberPopup. It also changes the logic of the
order count badge on the table. It now displays the number
of orderline (and their quantity) to send to the printers
or preparation display if there is at least one.
closesodoo/odoo#121286
Related: odoo/enterprise#41013
Signed-off-by: Monnom David (moda) <moda@odoo.com>
When creating a scrap order on a product which has at least one kit BoM, an option is added to create a scrap order for this kit.
The user can select from the kit BoMs of this product and the scrap order will add stock moves for all the components of the selected kit instead of for the product itself.
Task: 2479234 (nr 9)
Community PR: https://github.com/odoo/odoo/pull/114315
Enterprise PR: https://github.com/odoo/enterprise/pull/37764
Part-of: odoo/odoo#114315
Allows to close an MO even when all consumed components are 0.
To avoid cancelling the MO immediately when it is confirmed without any
raw moves, a change was also implemented in stock_move to skip the
check to remove the linked MO in case `skip_mo_check` is set in the
context.
Task: 2479234 (nr 7)
Community PR: https://github.com/odoo/odoo/pull/114315
Enterprise PR: https://github.com/odoo/enterprise/pull/37764
Part-of: odoo/odoo#114315
before this commit, if user need to bypass the validation
added for the length in custom module, the entire function
has be rewritten in the custom module.
scenario:
* add the phone_mobile_search field to the name search of res.partner model
* then open sale order form, and in the customer field enter any letter or digits, this user
error will be raised
after this commit, users just need to change the class
attribute: _phone_search_min_length in the
inherited module.
closesodoo/odoo#122411
X-original-commit: b89f948ef4789ec8dc400ef8c8e40778d5bbe406
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
To reproduce
============
- add video to a course
- remove user from course if user is enrolled
- open video in full screen mode and play it
- move nearly to the last part of the video so that is detected as completed
- an error will occure
Problem
=======
- when the video is detected to be completed we want to mark the slide as completed
- as the user is not a member, we can't retreive the current slide which is the source
of this issue
Solution
========
as the use is not a member, marking the slide as **Completed** dosen't make any sense,
so checking if the user is member, should solve the problem.
opw-3295662
closesodoo/odoo#122393
X-original-commit: 885d8a18d06d3d3181a345a3fda2a420824f9896
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Commit [1] converted the tour system to owl. In the legacy version,
it was possible to override a function to execute custom code when
a step was consummed. This was lost in the refactoring. This commit
introduces a bus on the tour service, and an event is triggered on
that bus each time a step is consummed.
[1] odoo/odoo@3a798039d6closesodoo/odoo#122386
X-original-commit: 08331095d56eb5b0a4128f1776d6f6d3a4697dc0
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
The visibility of the "Print" DDT button wasn't taking into
consideration the dropshipping case.
closesodoo/odoo#122328
X-original-commit: 8a45ae0842a6ac08b321e44113896581d9af42bd
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Grazioso Andrea (agr) <agr@odoo.com>
Have an IT company configured
Activate Dropship
Create a Product P with dropship enabled and vendor configured
Create a quotation to an IT customer, add P to a line, confirm.
Purchase will be created automatically, confirm it.
Go to dropship picking, confirm, print
The DDT report does not show up correctly:
- Warehouse address is the company address
- Customer address is the vendor address
opw-3128812
X-original-commit: b8fe190bdfbe9901426344acf26e18c0ca52794c
Part-of: odoo/odoo#122328
The buttons for the QR Code Menu setting are quite unappealing. This PR changes their style.
Closes 3338270
closesodoo/odoo#122301
Signed-off-by: Monnom David (moda) <moda@odoo.com>
The analytic_distribution component used an extension of the AutoComplete component for 2 reasons.
1. to get access to the focus event
2. to stop propogation of the autocomplete input click (which prevented the analytic popup from functioning well)
The need for the focus event was removed, and it doesn't make sense to maintain an extension to simply stop event propogation. For this reason, the extension was removed, and the `.stop` is added directly to the AutoComplete
Part of task-3180055
closesodoo/odoo#122424
X-original-commit: ebee32b8aa994bfd3fd375f6deb10676356a5d4a
Signed-off-by: William André (wan) <wan@odoo.com>
Signed-off-by: Ayob Habib (ayh) <ayh@odoo.com>
Allow users to find analytic accounts in the analytic widget if there are more than 7 results for their search criteria, by providing a Search More option.
Additional Enhancements include:
- remove the 'Add a Line' button. replace with an empty tag (no analytic account, remainder of distribution)
- remove the custom AutoComplete. this was used to set the active group on autoComplete focus, and to prevent propogation of click events.
- no longer keep track of the active group (editing plan). Instead pass the group (plan id) to the relevant functions.
- rename variables, for example request > searchTerm
- keep the header of the popup in place (no scroll when there are many tags)
- test the widget in list view (with the search more feature)
- add a new analytic account list view, as users should not multi-edit in the search more dialog
Current behavior before PR:
Users were forced to type the entire analytic account name if they had many analytic accounts with similar names.
forward port of 36391b9aea82091bf7b689658e07149860b01a61
Desired behavior after PR is merged:
A "Search More" option is added to the Autocomplete options when there are more than 6 analytic accounts found. The Search More option provides a SelectCreate Dialog where users are able to find the required analytic account easily. Users are able to select multiple accounts by checking the items in the list.
Task-3180055
Forward port of bef8e00d78f439936534cef8b2fd8313f03f3b1c
X-original-commit: 9f12669bcc1f23198d12a97b31feb6cb82894e11
Part-of: odoo/odoo#122424
Steps to reproduce :
- Create a product with a default `kg` uom
- Create a MO to produce 100 `g` of this product
- Open the MO Overview
- The first line indicates we try to produce 0.1 `g`.
For a `mrp.production`, `product_qty` is the quantity using the record's
linked uom, while `product_uom_qty` is the quantity using the product's
default uom.
closesodoo/odoo#122417
X-original-commit: 825d69636453d45f689983d1948850f35a696534
Signed-off-by: Tiffany Chang <tic@odoo.com>
Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
The selection function get_selection_class for the field classname has
obviously been thought to be overridable by subclasses in order to add
new selection classes if need be.
However, before this commit the method was passed directly to the
Selection constructor, which used the callable object directly. If it
was overridden by a subclass, the Selection object would still use the
same non-overridden callable instance.
With this commit, we give the name of the method instead of the
callable, which makes that the method is resolved after all overrides,
and therefore the resulting selection will be the overridden one.
closesodoo/odoo#122416
X-original-commit: 91bea59678c92dbb06151dbf757398f588aeefdb
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Paul Morelle (pmo) <pmo@odoo.com>
If applied, this commit will solve the min-max issues for efaktur.
- invalid literal for int() with base 10: when we enter all characters
string in the min or max it will raise an error like this.
- Error is also raised when the min or max is blank and try to save the
record.
So, I have update the value as 0 if the min value or max value not
generated.
see - https://tinyurl.com/2lx9j2kr
Sentry - 3936020226
closesodoo/odoo#122340
X-original-commit: 78ecfd66f1d6e043cefa4f88faa49505e4418f06
Signed-off-by: William André (wan) <wan@odoo.com>
Steps to reproduce:
- Install `Events` module
- Create a new event and set it to `Autoconfirmation`
- Create a new attendee and confirm it
Issue:
Mail that confirm registration is not sent to attendee.
Cause:
When computing the `schedule_date`, it take the value of the
`registration_id.create_date` WITH the microseconds.
When creating a new attendee, at some point we run the mail schdelure
that compare if the `schedule_date <= now`.
`schedule_date` and `now` have same value except for the microseconds
(set on `schedule_date` but not on `now`).
Therefore `schedule_date > now` and the mail is not sent.
Solution:
Remove microseconds from the schedule_date.
opw-3079389
closesodoo/odoo#122188
X-original-commit: f2adca45dcec5a11daa92d07bae00615210ea0de
Signed-off-by: Nasreddin Boulif (bon) <bon@odoo.com>
AttributeError: "res.partner" object has no attribute '_run_vat_test' log error
is generated, and nothing is imported when users upload invoice file that have a
VAT field. This is because the "_run_vat_test" attribute is defined in the
"base_vat" module and is not installed due to countries not having VAT.
This commit add the 'base_vat' in depends to prevent above error.
sentry-4074943505
closesodoo/odoo#121747
Signed-off-by: William André (wan) <wan@odoo.com>
If applied, this commit will solve the issue of missing product issue while
installing the following modules: loyalty_delivery, pos_loyalty, sale_loyalty,
website_sale_loyalty
Steps to produce:
- Install loyalty module.
- Go to 'Products' or 'Product Variants'.
- Delete the product 'Gift Card'.
- Now install the 'sale_loyalty' module.
This commit will raise an userError while deleting the loyalty products.
sentry - 4112536971
closesodoo/odoo#121484
X-original-commit: 3488d292b514bbf4190f19bd8271b3e68b3eb055
Signed-off-by: Parth Solanki (paso) <paso@odoo.com>
With this commit:
========================
- Added a new field `forecasted_qty` in replenishment to display the
forecasted qty based on a selected warehouse in the wizard
- Changed the `route_ids`(m2m) field to `route_id`(m2o) so that
we can apply a specific route for the
replenishment instead of the product's default routes
- Reduced the width of all the fields
- Remove the time from the scheduled date and make the unit field not editable.
- Can see vendor information with info icon field when buy is selected
- Hide the Dropship route from the Route
TaskId : 2579425
closesodoo/odoo#96948
Related: odoo/upgrade#3796
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Steps to reproduce:
1. Create a bill from document,
2. Fill in PO in auto complete, confirm, check the bills list.
3. The source document is not populated in the list.
What is the current behavior that you observe?
The source document is in the log, but does not show up in the dashboard.
What would be your expected behavior in this case?
The PO should show up in the source document in the list
OPW-3284992
closesodoo/odoo#122280
X-original-commit: e3289decaf95034f0ebba307350d3913a604eb8d
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
This commit resolves 2 bugs.
The first one is that, in a PoS without pos_restaurant installed,
if we delete the last order of the list, we get a traceback.
This is resolved by adding an empty order if there is no order left
in the order list.
task-id: task-id: 3291831
The second bug is that, with pos_restaurant installed,
when going to a retail PoS, if we createan order with some products,
then create a new order from the TicketScreen, add some products,
go the the TicketScreen and delete the current order
and then click back, we have in the ProductScreen the order
that is supposed to be deleted.
This order doesn't show up in the ticket screen anymore.
This comes from the fact that the _selectNextOrder function is
not correctly implemented, leading to the next order not being
chosen because we do not have a table (we are in classic PoS).
This fix resolves this problem by changing the _selectNextOrder
function and the newly added addOrderIfEmpty function in models.js.
closesodoo/odoo#122269
Task-id: 3291821
X-original-commit: cd956daf21695bef4753301fe29a6ece1e97d32a
Signed-off-by: Monnom David (moda) <moda@odoo.com>
Signed-off-by: Guilliams Adrien (adgu) <adgu@odoo.com>
Since [1], the notifications of type `simple_notification` are
handled by a service in the bus module.
Before [2] those notifications were handled by the messaging handler
which was only loaded in the backend.
This commit restores the previous behavior as the simple notification
service starts the bus service which result in the websocket worker being
loaded why it should be done lazily (i.e. only when the livechat is used).
[1]: https://github.com/odoo/odoo/pull/119243
[2]: https://github.com/odoo/odoo/pull/110188closesodoo/odoo#122266
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
In Send and Print wizard (`account_move_send`):
1. Choose a company, eligible for ubl
2. Create two invoices for different partners: one that can receive ubl and one that cannot
3. Select both invoices in the list view and try to send them
A traceback occurs because one of the partners has `ubl_cii_format` and the other one doesn't. So we try to get `code_to_label[False]` and it breaks.
The ubl xml file will be generated only for the valid invoice anyway, so this fix should not cause any side effects.
closesodoo/odoo#122253
X-original-commit: 67ffc0f7762f685ad68d9c873800140918b38ca1
Signed-off-by: Laurent Smet <las@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
Markup usage has been enforced in the mail module since [1].
Since the `chatbot_restart` method doesn't make use of it,
the content is escaped and the whole html structure is
printed to the DOM.
This PR fixes this issue.
[1] https://github.com/odoo/odoo/pull/111850closesodoo/odoo#122251
X-original-commit: 4909bdfbb0354310f3e6d21e1ecc7177b74b34bc
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Use case: Create an import file for a picking with stock.move.line
directly in it and add some reserved quantity on the stock.move.line.
The import of stock.move.line is not possible directly via a
stock.move.line menu but it still possible on a picking or
mrp.production import. However the create does not expect that and never
reserve the quants. So it result with quant <-> sml inconcistencies in
the data and the error can not reserve more than you have in stock.
opw-3277938
closesodoo/odoo#122156
X-original-commit: 3e78316a51f2cb8d347af1b87abcdcb775107115
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
To reproduce
============
create many Expenses records, go to expenses in List View
scrolling not working
Problem
=======
some style classes are not applied on the correct element, which leads to this behavior
Solution
========
apply the classes on the correct element
opw-3300041
closesodoo/odoo#122133
X-original-commit: b7bc19e30afaf1e6374620b7a3bfbdf26c63e765
Signed-off-by: Laurent Smet <las@odoo.com>
The HeaderButton component is used once and is mostly presentational,
this commit inlines it into the navbar.
closesodoo/odoo#122035
Related: odoo/enterprise#41336
Signed-off-by: Monnom David (moda) <moda@odoo.com>