Commit Graph
170802 Commits
Author SHA1 Message Date
William Henrotin f06da8b3c1 [FIX] stock: update quant with quantity
In case a quant for a product tracked by lot/sn exists but without any
lot/sn set and have some quantity, `_action_done()` should update it
instead of a quant with the correct lot but without any quantity

closes odoo/odoo#162683

X-original-commit: 534220ee90da3e213ea99ec5da7ce6cc9eff4203
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2024-04-22 10:12:55 +00:00
Guillaume-gdi 9d37080b6a [FIX] website: fix blog top banner latest post option
Before this commit an error appeared if a block had been set at the top
of the /blog page and the user wished to re-enable the
'Top banner - Name / Latest Post' option. This commit resolves the issue
by giving higher priority to the activated view.

Steps to reproduce the fixed bug:
- Go on /blog page
- Disable the customize option "Top banner - Name / Latest Post"
- Enter in edit mode
- Add a snippet to the top (in the oe_structure)
- Save the page
- Enable the customize option "Top banner - Name / Latest Post"

=> An error happens.

task-2774944

closes odoo/odoo#162620

X-original-commit: 5880aac0c79330e5ef62c475102d53765895cec4
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Signed-off-by: Guillaume Dieleman (gdi) <gdi@odoo.com>
2024-04-22 10:12:54 +00:00
Djamel Touati daaa255f04 [FIX] stock: use precision_rounding instead of digits with float_is_zero
Steps to reproduce the bug:
- Create a storable product “P1”
    - UoM: gram

- Create an internal picking with 0.01g of P1
- Validate the picking
- Create a return and try to validate it

Problem:
A UserError is triggered: “Please specify at least one non-zero quantity.”

When creating a return, we check if the quantity is not zero using the
“float_is_zero” function, but we mistakenly use rounding as
precision_digits.

opw-3862142"

closes odoo/odoo#162389

Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
2024-04-22 10:12:52 +00:00
Mélanie d58db0d8d5 [FIX] hr_holidays : fix form design in several view
With this commit, on several form view (gantt, calendar and form view)
the status bar does not overlap and the text is no longer truncated.

closes odoo/odoo#161359

Task: 3849814
Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2024-04-22 10:12:51 +00:00
arpr-odoo 6aa9439674 [FIX] web: fix trace back on set location button
Steps to reproduce:
- install `hr_homeworking`
- open calendar and click on "Set Location"
- it will give trace back (same thing can be check by installing `appointment` too)

Cause:
if condition in `onDateClick` method is missing one edge case where
`info.jsEvent` can be undefined.

Fix:
handled missing edge case in `onDateClick` method.

task-3790418

closes odoo/odoo#156861

Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2024-04-22 10:12:50 +00:00
Antoine GuenetandDavid Monjoie 53cf4b4f89 [FIX] web_editor: apply padding to plain text template for Apple Mail
Most e-mail clients apply some padding around their e-mails, like
mass_mailing does in its editor. So for the plain text email template,
we mostly don't want to transfer that padding, but for Apple Mail we do
want some padding lest the e-mail be crammed in a corner. The editor's
padding was lost in conversion because the padding was applied to a
table with `border-collapse: collapse` so it was not applied (see
[mdn]).

Since we can't change that property (or layouts will be broken), our
remaining option is to wrap the layout table's contents in a `div` and
apply the padding to it instead. Since we only want this for Apple Mail,
we apply it in a nested media query, which Apple Mail is currently the
only client to support. This is the only known way to target Apple Mail
specifically but since e-mail clients tend to be remarkably slow at
adopting new technologies, this should be safe for a while.

[mdn]: https://developer.mozilla.org/en-US/docs/Web/CSS/border-collapse

task-3062027

closes odoo/odoo#162629

X-original-commit: bc84a40ff49cc82f1c6dd43ffddbffea6e211af0
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Co-authored-by: David Monjoie <dmo@odoo.com>
2024-04-22 08:27:12 +00:00
Louis (loti) d769909120 [FIX] website_sale: fix conditional display of strikethrough price
Previously, if a product had `price < list_price` and `price < compare_list_price`, but
`website_sale.group_product_price_comparison` unset, no strikethrough price was shown.
However, in that case, we should show `list_price` as the strikethrough price.

Previously, in the search dropdown, `compare_list_price` was only shown as the strikethrough
price if `price < list_price` (which is unrelated). This change make it consistent with the
product page.

opw-3845926

closes odoo/odoo#162611

X-original-commit: b4620c123b753caf2b77472a8d6c42d767471c53
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Louis Tinel (loti) <loti@odoo.com>
2024-04-22 08:27:11 +00:00
Maxime de Neuville 1733122915 [FIX] resource: update default calendar timezone on first admin login (follow-up)
Steps to reproduce:
-------------------
1. Install the resource module without demo data (or install any module which depends on it, again without demo data).
2. Login with the administrator user for the first time.
3. The default resource calendar (e.g. "Standard 40 hours/week") timezone will be set to 'UTC' by default
while it should be set to the timezone of the administrator.

Fix:
-------------------
When there is no demo data, no resource_calendar_id is linked to the admin.
In this case, we need to retrieve the record of the default working calendar and
set its timezone to the one of the admin user on the first login.

This is a follow-up of this fix: https://github.com/odoo/odoo/pull/84258

task-3793313

closes odoo/odoo#162531

X-original-commit: b280a9b2c77a1a74a0154154cb4c1cf36e5111af
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2024-04-22 08:27:10 +00:00
yosa-odoo f0172ad4b3 [FIX] l10n_it_stock_ddt: discount in ddt reports
Issue:
Discounts are not displayed in DDT

Steps to reproduce:
- create a quotation with a sale line having a discount
- smart button delivery > set qty > validate
- Print

opw-3745866

closes odoo/odoo#162287

X-original-commit: 957443d8a0f416997de9c99354c9d3ae2fb3dfbf
Signed-off-by: Josse Colpaert <jco@odoo.com>
Signed-off-by: Yolann Sabaux (yosa) <yosa@odoo.com>
2024-04-22 08:27:09 +00:00
vava-odoo 91be775b6f [FIX] base: no client action of tag 'apps'
Since 17.0, the tag `apps` of ir.action.client was removed with the
legacy code of javascript. This commit removes the only usage in
`res.config.installer` (not used in standard) to avoid a traceback at
install.

Fixes #160293

closes odoo/odoo#162228

Signed-off-by: Vallaeys Valentin (vava) <vava@odoo.com>
2024-04-22 08:27:08 +00:00
mizosoft 588bf6b2bb [FIX] account: use proforma preview for non-printed invoices
Issue
-----

If an invoice is created, but not yet "Send & Print", the portal preview shows a normal invoice,
but when "Download"ed from the portal preview, a proforma invoice is downloaded. The download
behavior is intended since the client shouldn't be able to get a "final" invoice themselves,
before the accountant generates one with "Send & Print". However, the HTML preview should also
show a proforma invoice to be consistent with this, so the user downloads what they see.

Steps
-----

 - Create a new invoice: Accounting -> Customers -> Invoices -> New -> ...
 - Go to portal by clicking on "Preview".
 - You'll see a normal invoice. Now click "Download".
 - A proforma invoice is downloaded.

Cause
-----

The HTML-rendered invoice in the portal preview isn't configured to be proforma.

opw-3848049

closes odoo/odoo#161726

Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2024-04-22 08:27:07 +00:00
JordiMForgeFlow c35df66c8f [FIX] purchase_stock: use correct picking when updating purchase qty
Before the fix, the picking used to create the new stock moves resulting
from changes in the purchased quantity is simply taking the first
available picking of the Purchase. This causes problems when you handle
Purchase Orders with multiple open pickings, as the correct picking to
use when the quantity is updated is not always taken.

After the fix we give priority to evaluate open pickings already related
to the line we are updating. We fallback to the same behaviour as before
is none is available.

closes odoo/odoo#161721

X-original-commit: b3335566a878fd2df29ff02023033acd3cabef70
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
2024-04-22 08:27:06 +00:00
Chrysanthe (chgo) dbc760b68c [FIX] website_forum: fix spacing issues
This commit aims to fix an issue on forum posts, about comments being
placed directly next to each other without having a gap between them,
making it harder to visually recognize items at first glance.

To handle this issue, we simply add a `d-flex gap-x` utility classes
to ensure these elements receive some spacing between them.

closes odoo/odoo#155364

Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2024-04-22 08:27:05 +00:00
Denis Ledoux 8e5dc5352c [FIX] tools: provide our own zeep Client
The API of zeep changes according to the version of zeep.

We want to limit the number of used methods and attributes
of the zeep client by our developers.
Hence, we provide our own zeep Client limited to the
attribute and method we really need.

In addition, a timeout for GET/POST requests
should be applied by default when creating a new Client,
which is not the case by default.
We override that behavior to always provide a default timeout,
and an easier API for developers wanting to change
the default timeout.
Before it was needed to import `Transport` from `zeep`,
instanciate that `Transport`, with a timeout and optionally
a session, and then pass that transport instance to the creation
of the Client.
We provide a way to directly pass these timeout parameters
through the Client constructor.

In addition, we serialize the returned values of Zeep service operation
calls, to make sure we return simple types in methods of models
e.g. bools, integers, string, ...
2024-03-29 15:35:03 +00:00
mega 67dc32b61f [FIX] l10n_id_efaktur: prevent error when download e-Faktur without tax number
Currently, the error arises when downloading e-Faktur without a 'Tax Number'.

Steps to reproduce:

- Install a 'l10n_id_efaktur' module (with demo data).
- Navigate to Invoicing -> Customers -> Invoices and open any invoice with
an empty 'Tax Number' field.
- Click on the action button to download e-Faktur.

Error:   'bool' object is not subscriptable while evaluating
'action = records.download_efaktur()'

When downloading e-Faktur, There's an issue at [1], Where
the system tries to access elements of 'l10n_id_tax_number', but
'Tax Number' is empty, So 'l10n_id_tax_number' is considered as a 'False'.

[1]: https://github.com/odoo/odoo/blob/9c4194ad3387c55d39ec7bbef1c6414893098c6e/addons/l10n_id_efaktur/models/account_move.py#L168-L170

This commit fixes the above issue by adding a condition to ensure that
the system only accesses an 'l10n_id_tax_number' if it is available.

sentry-5001664034

closes odoo/odoo#162749

X-original-commit: 24e65c2fe904e9a2a4e5004dc0e7ada220d1dacc
Signed-off-by: William André (wan) <wan@odoo.com>
2024-04-21 18:14:37 +00:00
Lucas Lefèvre (lul) 7351f4241c [FIX] documents_spreadsheet: fix See record menu if not loaded
Steps to reproduce:

- wrap a pivot function inside a IFERROR e.g. =IFERROR(PIVOT("1", "probability"), 42)
- reload the spreadsheet
- before the pivot is loaded (throttle the network in the dev tools): right click the cell
- click on "See records" menu item
=> boom

closes odoo/odoo#162759

Task: 3847477
X-original-commit: aeadd065e869a5cd6b971d6d458ba9d8e1edcc1c
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
2024-04-21 09:42:54 +00:00
Odoo Translation Bot 459412b860 [I18N] Update translation terms from Transifex 2024-04-21 00:08:43 +02:00
66832f0ba0 [ADD] tools: patch C types, e.g. str.format
Monkey-patching C types is not straightforward.
It relies on changing the attributes or methods in memory
at the right address with the exact right size.
This requires the greatest caution.
A simple mistake can mess up the memory used by the Python interpreter,
and for instance lead to `SegmentationFault` exceptions
or unforeseen behaviors.

However, being able to patch C type is a very powerful tool.

With great power comes great responsibility.

`patch_c_type` is implemented with the greateast caution.
The Python C-API documentation has been thoroughly followed
and understood.
In addition, this patch has been battle tested in real
conditions.

In the end, this allows to patch unwanted behaviors
from types implemented in C.

Co-authored-by: Denis Ledoux <dle@odoo.com>
Co-authored-by: Christophe Simonis <chs@odoo.com>
Co-authored-by: Mathieu Walravens <wama@odoo.com>
2024-03-26 16:51:36 +00:00
Paolo Gatti (pgi) 515ea2afb5 [FIX] account: Delay of account.tax.repartition_line_ids must clear
When we delay the creation of `repartition_line_ids`, the `account.tax`
gets created with default `base` and `tax` repartition lines,
which we must get rid of when we update the tax with the delayed
repartition lines.

related PR: #148370
task-3607459

closes odoo/odoo#157918

Signed-off-by: William André (wan) <wan@odoo.com>
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) 5f612922c1 [IMP] l10n_it_edi_withholding: Fix use_in_tax_closing values
Withholding taxes should not be used for tax closing.
This was impossible to implement before because of the bugs addressed
in the other commits of this PR.

related PR: #148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) 9829ccb997 [IMP] account: Bring naming back to sanity
`self.env.ref` -> kept of course
`deref`        -> `deref_values` as it derefers for all passed values.
`defer`        -> `delay`
`ref`          -> kept, there's no choice, it's used in too many places

Also changed some variable names in the final loop for clarity
`data`         -> `model_data`
`created_vals` -> `created_records`
`create_vals`  -> `all_records_vals`

related PR: #148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) 3875c42595 [IMP] account: account_fiscal_template must support update
For `account.fiscal.position`'s submodels, REFs are not dereferenced,
they refer to virtual xmlids that only exist during import
(after account.tax.template was removed)

It should also look for: f"account.{company_id}_{template_xmlid}"

related PR: #148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) 730acc1f98 [IMP] account: Added chart_template loading tests
Added chart_template loading tests for:

- evaluation of submodel fields
- import from commands in the integer form, i.e. (0, 0, {values})

related PR: #148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) 0504701219 [FIX] account: Templates submodels values not evaluated
Files in the CSV templates that had submodels didn't get their values
evaluated.

Example:
`account.tax-xx.csv -> repartition_line_ids/use_in_tax_closing` was not
evaluated by `account/models/chart_template.py`'s `_parse_csv` function,
resulting in taxes having a "False" value still resulting as True.

This already affects `l10n_eg`.
In the process, code has been a little de-obfuscated.

*(This came out while testing the task linked below. Even if they're not
in the scope of the task itself, we noticed that withholding taxes have
`use_in_tax_closing` to `True` and putting them to False in the CSV had
no effect)*

related PR: #148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) 524cf0abc6 [FIX] account: Defer recursive check
This bug is generally hidden in normal localizations because the
`get_account_account` function reads `account.account-xx.csv` soon
enough to create all the needed accounts.

In `l10n_ng` there is no `account.account-ng.csv`, as it relies on the
generic_coa. The chart_template's `get_account_tax` function reads
`account.tax-ng.csv` before `get_ng_account_account` is called.

The `defer` function should check the account_tax fields and postpone
them until the creates are done, but it only checks the "first level"
and doesn't check all the way down to
`account_tax.repartition_line_ids.account_id`

By making `defer` recursive we are able to properly postpone
the creation of taxes after the accounts are made.

related PR: odoo/odoo#148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Paolo Gatti (pgi) ac7e0795be [IMP] account: Compute the template function only once
When making a registry of all available chart templates from exisiting modules,
the templating function is executed 5 times per Chart template instead of once.
It may not be all this relevant, but the fix is very basic.

related PR: odoo/odoo#148370
task-3607459

Part-of: odoo/odoo#157918
2024-04-20 17:39:55 +00:00
Brice bib Bartoletti 88f6d5dac9 [FIX] account_peppol: installation crash
The aim of this commit is to allow user to install `account_peppol`
without facing a traceback.

Context:
The commit cffd0e9dd91376dd7fe4613f4fd94e659daaeef0 introduced a check
based on a field introduced in the view by another module it depends on.

The problem is that ticking the peppol checkbox install the `account_peppol`
module but doesn't trigger an update of the `account_edi_ubl_cii`
module.

Before the commit:
Impossible to installing `account_peppol`.

After the commit:
Installing `account_peppol` will update the view
`account_edi_ubl_cii.account_move_send_form` if the field added by
commit cffd0e9dd91376dd7fe4613f4fd94e659daaeef0 can't be found.

opw-3874304

closes odoo/odoo#162677

X-original-commit: 465491d017ecf1c6efb26d3252471f17f4e9d856
Signed-off-by: Laurent Smet (las) <las@odoo.com>
Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2024-04-20 01:36:05 +00:00
Anh Thao Pham (pta) d1827082bd [FIX] l10n_din5008: fix German translation for "Source"
Steps to reproduce:
- Install Contacts, Sales, Accounting and l10n_din5008
- Configure DIN5008 as document layout in the settings
- Install German language
- Create a contact with German as language (e.g. German Contact)
- Create a SO with German Contact as customer
- Create an invoice from the SO
- Add a Customer Reference ("Other Info" tab) on the invoice
- Confirm and print the invoice

Issue:
On the printed invoice, both "Source" (i.e. the SO) and "Reference"
(i.e. Customer Reference) labels are translated with the same German
term: "Referenz".

Solution:
Translation team suggested to use "Verweis" to translate "Source"
in German.

opw-3821069

closes odoo/odoo#162622

X-original-commit: 970e2d1c35b843f83f103124eaf0ecce97bda363
Signed-off-by: Wala Gauthier (gawa) <gawa@odoo.com>
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
2024-04-20 01:36:02 +00:00
Nicolas Martinelli dd25aa46e6 [FIX] digest: do not write on default digest if not necessary
When a portal user is created (e.g. through the `auth_signup` module),
an unnecessary write is done on the `write_date` of the default digest.
This `write` is unnecessary since a portal user is never subscribed to
the default digest.

In case of a high signup frequency, it can cause concurrent transaction
errors.

We avoid writing if no internal user is being created.

closes odoo/odoo#162563

X-original-commit: bbc427e837b08187f351febfde4339262e660944
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2024-04-19 23:49:54 +00:00
Maximilien (malb) 2d323aa80e [FIX] l10n_din5008: size of the footer
General scaling of the footer font is too big. Normal Sized company names cannot
be displayed. In Fact, the Iban numbers etc. are cut off at the bottom.
This commit will reduce the size of the footer.

task-3192117

closes odoo/odoo#162557

Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2024-04-19 23:49:53 +00:00
Maximilien (malb) 28fdcaabda [IMP] l10n_din5008: address display
Before this commit, we always had the address of the partner even if the address
were the same.
Now, depending on the address in the customer field or delivery address, we can
decide to display the invoicing address or shipping address or both.

Task: 3817563
Part-of: odoo/odoo#162557
2024-04-19 23:49:53 +00:00
mizosoft 9c4c4b65ba [FIX] account: constrict activities summaries within containing card
Issue
-----

The activities summaries displayed by the misc. operations  view in the accounting
app take up the entire screen and span across the card if the activity summary
is too long.

Steps
-----

 - Open the Accounting App.
 - Create a new entry from 'Miscellaneous Operations'.
 - Add an activity with a long summary.
 - Go back the dashboard. The summary will try to span the entire width.

Cause
-----

The activities are displayed with a field tag in the kanban view. The field tag
refers to the activities js component as a widget. Due the use of a widget attribute,
the template generates a div with class: "o_field_widget". This class is defined
to have a css "display" attribe with a default value of "inline-block". Using "inline-block"
causes the activity row to take up the whole width.

opw-3839992

closes odoo/odoo#162543

X-original-commit: dec1f870de9f7004a2935f61c79b83dada7a57a5
Signed-off-by: Habib Ayob (ayh) <ayh@odoo.com>
Signed-off-by: Moataz Hussein (mohu) <mohu@odoo.com>
2024-04-19 23:49:52 +00:00
Mathieu Walravens d42b06aea1 [PERF] uom: Improve reference check for large UoM categories
This commit improves the performance of the reference check for large
categories of Units of Measure (UoM).
After this commit, the number of UoMs in the category is counted using
the read_group method instead, resulting in faster performance.

Benchmark:
| Nbr of UoM | Before | After |
| ---------: | -----: | ----: |
|          0 |    0ms |   0ms |
|          1 |    1ms |   1ms |
|         30 |    6ms |   3ms |
|        200 |    7ms |   2ms |
|      18000 |  900ms |  15ms |

opw-3775689

closes odoo/odoo#162540

X-original-commit: 9f47341de352d08a8e325d14f25af8221bb392cb
Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Signed-off-by: Walravens Mathieu (wama) <wama@odoo.com>
2024-04-19 23:49:51 +00:00
tsm-odoo 09295d229d [FIX] im_livechat: fix operator assignation
Before this PR, trying to get an available operator could result in an
error.

When a live chat is created, an operator is selected based on various
criteria such as language, country, number of ongoing chats and
availability for calls. This selection process involves the
`_get_less_active_operator` method, which receives the status of all
operators and a list of operators to choose from.

Prior to this fix, an operator not included in the list of operators
to choose from could still be selected, resulting in errors when
trying to locate them in the operator list.

This PR resolves the issue by ensuring that operators are only
selected from the provided list.

opw-3874872

closes odoo/odoo#162357

Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
2024-04-19 23:49:50 +00:00
mano-odoo 5887847105 [FIX] website_blog: navigation filters dropdown on mobile
The blogs filters in mobile is breaking the layout. This commit applies
a dropdown or an offcanvas instead which is displayed next to searchbar.

In this 17.0 fix, the dropdown becomes an 
offcanvas if we have a sufficient amount of blogs which allows better
navigation on mobile and makes it consistent with other website modules.

Additionally it adapts the spacing to make it even between the
navigation component.

The `t-set="_classes"` is not removed in case of potential xpath in
production. Same goes for the `container` class on the div at line 9, 
being overridden by it's t-attf-class counterpart.

task-3315921

closes odoo/odoo#157757

X-original-commit: 19f34c5e0973903b47cf6a5c65cc8888986abaa8
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2024-04-19 23:49:48 +00:00
roen-odoo 043ced9a21 [FIX] point_of_sale: assign lot names when creating unexisting lot
Current behavior:
When entering a lot name that doesn't exist in the PoS, the lot is being
created. But the lot is not being assigned to the stock move line.

Steps to reproduce:
- Create a product with tracking by lot
- Open PoS and make an order for this product
- Enter a lot name that doesn't exist
- Validate the order
- Close the session
- Go to the order picking in the inventory app
- The lot is not assigned to the stock move line

opw-3710125

closes odoo/odoo#160533

Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
2024-04-19 19:14:01 +00:00
AH-Yussef 08104386e1 [FIX] web_editor: upload CORS images by URL
- Install E-commerce app
- Go to Website > Shop, and open a product
- Click on edit on the upper right corner.
- Double click the product image to change it. A popup is shown.
- In the popup, click on Add URL and place this URL [1]
- Click Save. The image disappears!

- The issue was introduced here [2]
- As URL now starts with `/web/image/` which will be later used here [3]
- The condition to enter this line is `url_object.path.startswith('/web/image')`
- `item[field]` is used which equals to `attachment[datas]`
- But actually `datas` is empty as the image upload fails because of CORS
- `add_url` is called [4] saving attachment without `datas` but with type URL

- The commit solves the issue by fetching the remote data from the server
if the url is a remote redirection, which still happens when the image
data cannot be fetched by the client browser at upload time.

[1]: https://lowendbox.com/wp-content/uploads/2022/09/odoo_logo_1200.png
[2]: https://github.com/odoo/odoo/commit/943944dd249c15de870d6800d89e48d54a422e5a#diff-0897c80484208197b0aff67f2b06509e864c3976de1589e3cebad2788eef008fR49
[3]: https://github.com/odoo/odoo/blob/f72968561acec164697a7a9ee0965ec304854dd5/addons/web_editor/models/ir_qweb_fields.py#L473
[4]: https://github.com/odoo/odoo/blob/f72968561acec164697a7a9ee0965ec304854dd5/addons/web_editor/controllers/main.py#L268

opw-3746245

closes odoo/odoo#160085

Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
2024-04-19 19:14:00 +00:00
Mathieu Walravens 7386def0e5 [FIX] stock,iot: incorrect docids in ZPL label layout wizard
Steps to reproduce:
1. Go to IoT > Devices
2. Select a device and add the report "Lot/Serial Number (ZPL)"
3. Create a product tracked by lots
4. Purchase 5 units of this product
5. Validate the reception (with a lot)
6. Print labels > Lot/SN Labels
    - Quantity to print: One per unit
    - Format: ZPL Labels

Before this commit:
When printing labels for multiple lots of the same product, the wizard
was incorrectly generating the docids as a `list[list[int]]`. It works
correctly as the ids are joined thanks to JavaScript magic. However,
when sending the report to an IoT device, the ids are sent as-is in
the context, which raises and error when calling `browse()`.

After this commit:
The docids are now generated as a flat list of integers, which is
correct and works as expected.

opw-3850631

closes odoo/odoo#162063

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
Signed-off-by: Walravens Mathieu (wama) <wama@odoo.com>
2024-04-19 16:58:44 +00:00
Jitendra Prajapat 33f7006737 [FIX] point_of_sale: printer icon visibility
In this commit:
===============
printer icon will visible based on printer configuration

task - 3869678

closes odoo/odoo#162056

Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
2024-04-19 16:58:43 +00:00
Ali Alfie (alal) 1ed71ba1fa [FIX] hr_expense: correct bank account in payment register wizard
To reproduce:
* Add a bank account to Employee, and a bank account to your company.
* Set the company on the employee's contact to yours.
* Create an expense to be reimbursed to the employee, submit it and try
to "Register Payment".

Current behaviour: the recipient bank account in the wizard is set to
the company's.
Expected behaviour: the bank account in the wizard should be set to the
employee's bank account.

This commit solves this.

task-3837305

closes odoo/odoo#160749

Signed-off-by: William André (wan) <wan@odoo.com>
2024-04-19 16:58:41 +00:00
Christihan Laurel [Vauxoo] a586ece3b0 [FIX] sale: remove duplicated message left after portal redesign
After the portal redesign, messages for no quotations or sale orders
were moved before the portal_table template, which is called when there
are entries of quotations or sale orders. However, the previous version
of the message for sale orders was left after the template call.

This commit removes the previous version of the message to avoid having
duplicated messages.

closes odoo/odoo#162546

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-04-19 14:40:13 +00:00
Paolo Gatti (pgi) 534e499425 [FIX] l10n_it_edi_withholding: Markup escaping
Every string we use in error strings has to be escaped for compliance.

closes odoo/odoo#162463

Signed-off-by: John Laterre (jol) <jol@odoo.com>
2024-04-19 14:40:11 +00:00
Habib (ayh) df691b4161 [FIX] l10n_ec: withholding tax labels
Fix errors in some of the spanish invoice_labels for withholding taxes.

Thanks to @AlmustafaNET odoo/odoo/#147867

closes odoo/odoo#162447

Signed-off-by: Brice Bartoletti (bib) <bib@odoo.com>
2024-04-19 14:40:10 +00:00
roen-odoo d3fab4016e [FIX] point_of_sale: add session name to payment name in report
Current behavior:
When generating a sale report for multiple pos sessions, the payment
name is not clear which session it belongs to.

Steps to reproduce:
- Open PoS and make some sales
- Close the session, and do the first step again.
- Go in reporting and generate the report for a period that includes
  the two sessions.
- In the payments table you will see the payment name, but you won't
  know which session it belongs to.

opw-3684937

closes odoo/odoo#162440

X-original-commit: 77c95c2588c3af02e6f96cd03c289671c775c0e8
Signed-off-by: Joseph Caburnay (jcb) <jcb@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
2024-04-19 14:40:09 +00:00
Pedram (pebr) 6b48e2e3bf [FIX] point_of_sale: prevent PoS failure due to invalid cached orders
Prior to this commit, the presence of an invalid order in the browser
cache could prevent the PoS from loading. This issue typically arises
after a database upgrade, where changes in fields can render unpaid
orders in the cache unloadable. This commit resolves this issue by
discarding any problematic unpaid orders that can no longer be loaded.

opw-3874858

closes odoo/odoo#162408

Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
2024-04-19 14:40:08 +00:00
roen-odoo 38c3e48618 [FIX] pos_self_order: remove unused color that triggers access error
Current behavior:
If you create a user that only have access to a branch of a company.
If this user try to access the QR Menu of any PoS he will get an access
error.

Steps to reproduce:
- Create a branch B for company A
- Change access of user U to only have access to branch B
- Login with user U, and try to open any PoS QR Menu
- You get an access error

opw-3745256

closes odoo/odoo#162222

Signed-off-by: Vlad Stroia (vlst) <vlst@odoo.com>
2024-04-19 14:40:07 +00:00
Lina (liew) db8bfda869 [FIX] website_sale: add support to intermediate tag in xpath
While updating the checkout page an element was changed from div to t
To handle the intermediate value used by users who installed this version
a new selector was added to the xpath to account for both cases

Previous commit that was trying to fix the same issue 12e5296c1d

closes odoo/odoo#162064

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-04-19 14:40:06 +00:00
Tiffany Chang (tic) fbcfa5b725 [I18N] crm: correct Romanian translation
Some parts of the translation were missing and Romanian isn't available
as a language in Transifex for this version. Therefore we add it in now.
English grammar mistakes of original string are left untouched.

closes odoo/odoo#162469

X-original-commit: f19e872698d17b93da3c2e1a3eafb20a4d098660
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-04-19 11:09:29 +00:00
Seif (segn) e0abb7e7fb [FIX] account: Fix error message for registering payment invoice and bill at the same time
When registering payment for customer invoices and vendor bills at the same time, a misleading error message appears"You can't register payments for journal eithers being both inbound and outbound".

Replacing it with a clear message "You can't register payments for both inbound and outbound moves at the same time."

Task id: 3638740

closes odoo/odoo#162464

X-original-commit: a18cb2ebb133c2e4b72ddd5d8cda23d2b71006dd
Signed-off-by: de Wouters de Bouchout Jean-Benoît (jbw) <jbw@odoo.com>
Signed-off-by: Seif Gneedy (segn) <segn@odoo.com>
2024-04-19 11:09:29 +00:00
Hubert Van De Walle f7e6523bd7 [FIX] stock: prevent opening SM when picking is dirty
Steps to reproduce
==================

- Create two new storable products tracked by USN
- Create a new RFQ with one of the created product
- Confirm the order
- Open the receipt
- Add a new line with the other product
- Click on the open move button in the new line
- Add a new SN
- Save & close

=> Cannot read properties of undefined (reading 'resId')

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

When calling openRecord, if the record is dirty, it is saved before
proceeding.

After saving, we call super.openRecord with the old record.
Since that record is no longer linked to the root record (the
stock.picking), when we try to save it, it won't match an existing id.

Solution
========

If the record is new, we don't save as there would be no way of knowing
which of the returned line would come from this one.

If we are opening an existing record, we find the new datapoint by
matching it's ID.

opw-3777615

closes odoo/odoo#162425

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
2024-04-19 11:09:27 +00:00