Skip to content

Conversation

@ainulhamdani
Copy link
Member

Description of the issue/feature this PR addresses:

Current behavior before PR:

Desired behavior after PR is merged:


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

res-odoo and others added 30 commits March 31, 2025 08:45
Step to reproduce:

- Open the Sales application on a small screen such as a mobile phone.
- Remove  "My Quotations" to show all quotations.
- Scroll down to hide the control panel.
- Scroll up to show the control panel
 => Bug The control panel is shown but immediately "hidden" when we stop
    scrolling and the user has to scroll up to the top screen to see it.

task-4466063

closes odoo#203897

Signed-off-by: Pierre Paridans (app) <app@odoo.com>
- adding a field to set the coretax UoM code from UoM form view
- raise error when country is not set on the customer
- use the main customer's address in invoice as address in e-Faktur instead of the main customer's
- fix calculation for tax incde in price configuration
- adding CustomDocMonthYear to the XML by parsing month and year from invoice_date

ticket-4622364

closes odoo#203203

Signed-off-by: Nicolas Viseur (vin) <vin@odoo.com>
- Add a plugin to try and work around pylint's odd interactions with
  `sys.path`. Notably when items are passed to pylint it adds the
  first ancestor without a `__init__.py` to the `sys.path`, which
  cause `import resource` to be resolved to the `resource` odoo addon,
  which then trigger the assertion that models must be in a module
  named `odoo.addons.?`.

  I already don't remember why I needed the rest of the code, but it
  seems to allow pylint to run in both addons-path and PYTHONPATH odoo
  modes so...
- Disable `useless-option-value`.

  This is an internal pylint diag used to warn against `pylint:
  disable` annotations which point to removed diagnostics.

  There are a lot of `bad-whitespace`/`C0326` in the odoo codebase for
  historical reasons, as well as a few `next-method-called`.

  For some reason, `useless-option-value` is not disabled when
  disabling `all`.
- Modernise the pylint invocation to use `subprocess.run` as `Popen`
  is not leveraged in any way.
- Inline pylint parameters, as there is no need for the separate
  pseudo constants which aren't actually constants.

Part-of: odoo#203874
Related: odoo/enterprise#82398
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Part-of: odoo#203874
Related: odoo/enterprise#82398
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Code was apparently backported without removing the reference to
`missing-gettext` which only exists in later versions.

closes odoo#203874

Related: odoo/enterprise#82398
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
This commit addresses translations not being exposed to the frontend.
For surveys, no translatable terms existing in JavaScript are being
translated. This mainly concerns `survey_form.js`. Lack of translations
there easily results in a mix of languages being shown to a user
answering a survey.

Steps to reproduce:

Install survey with demo data. Open and edit the "form feedback" survey.
Change the question "What is your birth date" question. In the "option"
tab, check the inbox "validate input" and set a min and max date.

Start a live session with 1 attendee that uses another language than
english. On the presenter side skip the first few questions to go to the
"what is your birth date" question. On the attendee side, write down
a date outside of the allowed range (don't use the date picket!). A
warning message appears, that warning is not translated.

closes odoo#204077

Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
Versions
--------
- 16.0+

Steps
-----
1. Create a promotion program;
2. add a reward that offers a discount on a specific product;
3. specify a specific product;
4. archive the specified specific product;
5. create a sales order with a random product;
6. apply applicable rewards.

Issue
-----
The reward's specific discount has become applicable to all products.

Cause
-----
After archiving a product, the reward's `discount_product_ids` becomes
empty unless `active_test=False` is added to the context.

With this field empty, and no otherwise specified product domain, the
discount can be applied to any product.

Solution
--------
Prevent archiving products that have an active program applying a
specific discount to them.

opw-4246768

closes odoo#203241

Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
Steps to reproduce:
- Create a copy of the CRM lead dashboard
- Go to the duplicated dashboard, change some global filter
- Go to the CRM lead original dashboard
 => The global filter has the same value as the one in the duplicated dashboard
- Try to change a global filter
 => The data is filtered, but nothing change in the global filter topbar

This was caused by a faulty t-key, which was based on the filter id,
which is not unique across dashboards. This commit changes the
t-key to be based on the dashboard id and the filter id, so that
the filter is unique across dashboards.

closes odoo#204110

Task: 4636672
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
…hout body

This traceback occurs when the user schedules a mail without mail Body in
email marketing.

To reproduce this issue:
1) Install "mass_mail"
2) Create new mailings with 'contact_list_ids' and make sure to give
   the value for preview in the settings page.
3) Don't select any mail Body templates.
4) Schedule the record with the previous day.
5) An Error was encountered in the terminal.

Error:- "TypeError: expected string or bytes-like object"

When the user schedules a mail  corn job runs, in which "action_send_mail"
triggers.
In that method, while composing values "body" is used to get values from
mail.body_html.

https://github.com/odoo/odoo/blob/e37c393d415d686584487f9ad92f062279504cf8/addons/mass_mailing/models/mailing.py#L1043-L1046

Because when the user doesn't select the body template its value will be
false which leads to the above traceback,
as the re.search method.

https://github.com/odoo/odoo/blob/e37c393d415d686584487f9ad92f062279504cf8/odoo/tools/mail.py#L500

This commit will resolve the issue by giving a fallback value of an empty string
when the user doesn't select the body template.

sentry-5389317834

closes odoo#166962

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This update contains the following commits:

[IMP] runtime/utils: export htmlEscape and add tests
[FIX] utils: Correct validation of mount target in shadow DOM/iframe
[IMP] runtime: add markup tag function

closes odoo#203515

Notes: https://github.com/odoo/owl/releases/tag/v2.7.0
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Improve 'answer' post checks by the way. Check references in various
use case of answering, notably to assess current references computation
notably after odoo#197127.

Task-4677717

Part-of: odoo#203739
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
…ages

Improve references computation, notably when message history consists
mainly in note-like messages (tracking with subtypes, ...). After
odoo#197127 threads are split in email readers as references may
be missing when history does not contain much 'public' messages but
internal users were pinged on notes, trackings, ...

Task-4677717

closes odoo#203739

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Description of the issue this commit addresses:

In january 2025, updates were made to some sections of the LU tax report and
chart of accounts. Therefore, the version we use is out of date.

Desired behavior after this commit is merged:

The COA and VAT reports use the new values updated in 2025.

task-4587067

closes odoo#202228

Related: odoo/enterprise#81644
Signed-off-by: William André (wan) <wan@odoo.com>
**Problem**:
When the text is long, the switch for "Autoconvert to Relative Link"
is not visible.

**Solution**:
Adjust CSS to properly display the switch when the text is long.

**Steps to Reproduce**:
1. Change language to **Dutch**.
2. Open the **website editor**.
3. Click on any **link**.
4. Copy your current link and paste it into the link input to trigger
   the "Autoconvert to Relative Link" switch.
   - **Issue**: The switch is not visible.

**opw-4558476**

closes odoo#204244

Signed-off-by: Walid Sahli (wasa) <wasa@odoo.com>
Steps to reproduce:

- Create a time off request R with the mode "By company" or "By department"
- Save R without confirming it
- Go back to the list view
- Remove all the filters

Bug:

R is not displayed

opw:4448582

closes odoo#198789

Signed-off-by: Bertrand Dossogne (bedo) <bedo@odoo.com>
Fixing up commit 6b4c35f
Which introduced non stable changes

sentry-6489805050

closes odoo#204347

Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
The reverted commit was not a fix but a modification of a behavior we did not
want to do in stable.

This reverts commit 1db826b.

closes odoo#204433

Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com>
The domain was syntactically wrong.

closes odoo#204532

Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
Versions
--------
- 16.0+

Steps
-----
1. Have a payment token saved via Flutterwave;
2. use token to pay for an order.

Issue
-----
Error: Provide a valid redirect url

Cause
-----
Flutterwave now mandates authorization for tokenized flows. They provide
an authorization url for this, and expect to receive a redirect url value
to return to afterwards.

Solution
--------
Solution partially based on the Ogone redirect flow added in 0ed92bc

The authorization url is provided in the notification data. Store this
en the `provider_reference` field if the transaction is pending.

When processing the pending transaction, initiate a force redirect flow,
which redirects the user to the authorization url.

opw-4669110

closes odoo#204322

Signed-off-by: Levi Siuzdak <sile@odoo.com>
Purpose
=======
The Indian government updated its UOM code
https://einvoice1.gst.gov.in/Others/MasterCodes (select UQC Codes)

So In this commit, I have updated `l10n_in_code` in UOM  Mili Meter and Square Foot.

closes odoo#204598

Signed-off-by: Josse Colpaert (jco) <jco@odoo.com>
@moduon MT-9743

closes odoo#204487

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
**Problem**:
Commit [f523cb8](odoo@f523cb8)
did not properly handle background images, leading to issues when
retrieving the correct attachment source.

**Solution**:
Use `el.dataset.bgSrc` to get the correct attachment source for
background images.

**Steps to reproduce**:
1. Add a "Banner" block.
2. Update the image.
3. Save.
   - **Issue**: Traceback occurs.

**opw-4686236**

closes odoo#204662

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Reproduce:
1. Make a scored live session survey
2. Add a single choice question with a <0.5 point answer (or
  < 1 with speed reward)
3. Create a live session
4. Join with one participant
5. Play the survey, have the participant answer correctly
  (after half the time for speed reward if that case is tested)
6. Proceed to leaderboard and expect a crash.

This happens because when `max_score` or `max_score_question` are
<= 0.5, divisions by round(<=.5) are divisions by 0.

Using 3 digits for rounding has two advantages:
* It is very unlikely that an answer will have a value below 0.0006
  (not 0 - that case is supported- but rounds to 0).
* It makes the template resilient to differences in precisions used
  for the various numbers (relevant in 17.4 where `answer_score`
  and `scoring_total` can be different by <0.01).

Note that we stick to the minimal diff and do not change the
values shown to not introduce decimal points showing up if
they weren't shown before.

Task-4655784

closes odoo#203988

Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
Steps to reproduce
==================

- In 18, go to a view with an always invisible many2one field
- Enable debug mode
- In the debug menu, click on "Set defaults"

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

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

We only fetch the display name for many2one that are not always
invisible

https://github.com/odoo/odoo/blob/6a1c38a83a1a9108ae4cbfe36bf787bef02de063/addons/web/static/src/model/relational_model/utils.js#L383-L384

In that case, `displayed` will be undefined.

a0732ec didn't check if displayed was
defined. It also checked the length of non-string values. While it
doesn't cause an error, it doesn't make sense.

A comparison of `typeof displayed === "string"` is not enough, because
we also need to handle Markup elements.

opw-4572496

closes odoo#204816

Signed-off-by: Bastien Fafchamps (bafa) <bafa@odoo.com>
The Issue:
Before this commit, if some entries had journal items with a zero amount (or if all journal items were zero), it would result in a division by zero error.

The Fix:
Retrieve the conversion rate only when amount_currency is present and not equal to zero.

opw-4497797

closes odoo#201389

Signed-off-by: John Laterre (jol) <jol@odoo.com>
…ading

Avoid using a set when loading server-wide modules to ensure a deterministic
and consistent module loading order. This change ensures 'base' and 'web'
are always loaded in that specific order, improving predictability.

closes odoo#204967

Signed-off-by: Denis Ledoux (dle) <dle@odoo.com>
When an image is added in a website page by using the `/image` command
of the Powerbox or using the image icon of the side-panel toolbar, it
is not optimized like when the media dialog is used to replace an image.
Also, when an image is replaced, the auto-optimization is not always
included in the last history step - which makes operations like
inserting a new paragraph remove the optimization.

This commit makes sure that the `image_changed` event is:
- triggered after the new image is inside the DOM
- completed before considering we are done
- included in the same history step that applied the media dialog's
  change.

Steps to reproduce:

Scenario 1:
- Drop a three columns snippet
- Put your cursor after "Feature 1"
- Press ENTER
- Use the "/image" Powerbox command to add an image that should be
resized by the auto-optimization

=> Image was the original uploaded image.

Scenario 2:
- Drop a three columns snippet
- Double click on an image
- Upload/select an image that will be resized by the auto-optimization
- Put your cursor after "Feature 1"
- Press ENTER

=> Image's optimization was lost because it happened after the history
step was completed.

task-4129429

closes odoo#177433

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This is used in the event a request is timing out or has
an out of memory issue. This would cause the profile to be
committed to the database before the request gets terminated.

closes odoo#204673

Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Because odoo#203874 needed to manipulate Odoo imports, it had to be able
to import Odoo. Turns out there are setups where the root of the
community repository is on `sys.path` but not in `PYTHONPATH` which
can lead the pylint invocation to be confused and not have `odoo` be
reachable from the `PYTHONPATH`, thus crashing the plugins' loading.

Thus to run pylint we need not the `PYTHONPATH` but the
`sys.path`. Which is not ideal because that'll contain the paths to
the site and standard library of the python running the test, which
might be different than the python running pylint.

To limit the risks of contamination, strip out any path starting with
one of the `sys.$CATEGORY_prefix` entries.

closes odoo#205194

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
MiquelRForgeFlow and others added 30 commits May 30, 2025 13:16
… without picking

When scrapping a tracked product without a lot and without a picking_type_id,
`stock.move.line._action_done` raises a UserError requiring a lot/serial number.

This happens because the method checks for the absence of both
`picking_type_id`, `is_inventory`, and `lot_id`, assuming a lot is always
mandatory outside inventory and picking flows.

However, scrap operations may occur outside these flows and should not
necessarily require a lot, especially when triggered programmatically
(e.g. via API or automation), bypassing the form view validation.

This commit updates the condition in `_action_done()` to check the context
key `is_scrap`, which is already passed in `do_scrap()` via
`move.with_context(is_scrap=True)._action_done()`.

This allows tracked products to be scrapped without a lot in valid scenarios,
without misleadingly assigning a `picking_type_id` to the move.

closes odoo#206900

Signed-off-by: William Henrotin (whe) <whe@odoo.com>
closes odoo#212027

Signed-off-by: Quentin Wolfs (quwo) <quwo@odoo.com>
Co-authored-by: William Henrotin <12071695+Whenrow@users.noreply.github.com>
This commit removes the typo (question marks) in the tax report in South Africa localization.

task-4789823

closes odoo#209673

Signed-off-by: Quentin De Paoli (qdp) <qdp@odoo.com>
This is clearer. It also avoids some noisy messages in runbot.

closes odoo#212037

Related: odoo/enterprise#86591
Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
Issue -->
Evaluating name_get for a large number of products can lead to a
memory error. An example is when grouping by Product on the Sale
Report pivot view.

Fix -->
Disabling the prefetcher cuts down on field_cache usage and prevents
memory error.

opw-4726184

closes odoo#210932

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Steps to reproduce
==================

- Open the JS unit test page
- Enable the "Mid-tier mobile" option in the devtools in order to have a
  4X CPU slowdown
- Run the test "url should not use the record last updated date when the
  field is related"

=> It fails

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

We check that a timestamp generated after a patchDate is at most 100ms
after. When we have a high CPU usage or a slow CPU, it can happen that
the value is more than 100ms after.

Solution
========

The test simply needs to check that the date is either the `2017-02-06`
or the `2017-02-09`.
We can use the luxon function `a.hasSame(b, "days")`

runbot-115469

closes odoo#212515

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
closes odoo#212188

Signed-off-by: TuyenTran <trandinhtuyen2018@gmail.com>
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Setting the opacity to the empty string leads to max opacity but is seen
as "/" in the builder because no options corresponds to this value.
And the "None" option is not that, which is confusing. Setting a known
value for the opacity shows the correct choice for the option

Steps to reproduce:
- In a database with demo data, go to `/event`
- Go to "An unpublished event"
- Open editor
- Bug: "Filter Intensity" shows "/"

Backport of 94cc1cb
task-4367641

closes odoo#212530

Signed-off-by: Soukéina Bojabza (sobo) <sobo@odoo.com>
… archived

Steps to reproduce :

1) Install the Purchase module
2) Create and confirm a Purchase Order with a product and quantity
3) From the Purchase Order, open the product and archive it

Issue:
Before archiving the product, the "Purchased" smart button correctly
displays the total purchased quantity.
However, after archiving the product template, this smart button
displays 0.0, even though purchases exist.
Additionally, clicking the button opens a blank purchase order
line view instead of showing related records.

Cause:-
Archiving a product template sets active=False on the template and its variants.
The computed field purchased_product_qty relies on the variants to
calculate the total. Because the variants are inactive post-archival,
the compute method sees no records, resulting in a displayed value of 0.0.

Similarly, the smart button action uses the active variants in its domain,
so it fails to find any related purchase order lines.

Solution:

The context is now explicitly set with active_test=False when computing
the purchased_product_qty and when generating the domain for the
smart button action.

This ensures that even inactive variants are included in the calculation
and the view logic, preserving the correct purchased quantity and showing
 the relevant purchase lines after archival.

opw-4781578

closes odoo#209955

Signed-off-by: Steve Van Essche <svs@odoo.com>
When we encounter a noupdate record, we should also track its
subrecords as seen. This avoid those subrecords to be deleted if they
weren't already marked as noupdate.

closes odoo#208639

Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
Since [1], `-u sale` will lead to a `write` on the WH of all existing SO, which is of course unexpected

ORM side:
While dealing with `sale` module, we drop the NOT NULL condition of the WH field
https://github.com/odoo/odoo/blob/1c959dee906eba2f881904b06eeccd584f4653c6/odoo/models.py#L2520-L2542
Later, when processing `sale_stock` since there is a difference between the psql column and the orm field (nullable vs required), we call `_init_column`:
https://github.com/odoo/odoo/blob/1c959dee906eba2f881904b06eeccd584f4653c6/odoo/fields.py#L1055-L1060

[1] d794b8d

closes odoo#212887

Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
lines is off-balance

Issue: if only one line is edited/added and it's account is not of type
off-balance, the check will fail to raise the warning

Steps to reproduce the error:
 - Create entry
 - Account move line 1 with account off balance
 - Account move line 2 with account off balance
 - Save move
 - Edit line 2, change the account to an asset type account.
 - Save move.
The system does not give a warning.

closes odoo#211811

Reason: The check/audit did not cover all accounting items
Solution: Re-evaluate all related journal items of the journal entry.
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Scenario:
- add an URL rewrite (308) of a route with only GET method (eg.
  test_website route /get rewritten to /get_new)
- add a link in any website page to the original route (eg. /get)
- open that page as public or user without website editing right

Issue: an error 500 is shown instead of the page

Cause: since the introduction of URL rewritting in
be8fc22 the url_for method only worked
for rewrite of route that had a POST method. In a GET method there was
no try/except to handle a rewrite.

Fix: handle GET method rewrite as it's done for POST method.

Note: the added test without the fix fails with a 500 status code
instead of the 200 expected.

opw-4817473

closes odoo#212969

Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
Before this change the column % VAT in Argentinean Legal PDF translation
to Spanish was not working (Was always showing "% VAT" column title)

With this change will show "% IVA" when printing in Spanish

closes odoo#206869

Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
Because the `location.assign` method also triggers a `beforeunload`
event, the `error_service` doesn't handle errors when downloading a file
with the action target `download` (for example download vCard). See [1]
for more details about the original fix.

task-4457865

[1]: odoo@e96d3aa

closes odoo#212432

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Problem:
When trying to align a separator to the left or right in the
email editor using `ms-auto` or `me-auto`, it remains centered
instead of aligning as intended.

Cause:
A global `margin: auto` rule was applied to all `hr` elements,
overriding the directional margin utilities (`ms-auto`, `me-auto`),
preventing correct alignment.

Solution:
Restrict `margin: auto` to only apply on `hr` elements that do
*not* have `ms-auto` or `me-auto` classes. This preserves default
centering while allowing explicit left or right alignment.

Steps to reproduce:
- Open Email Marketing and add a "Separator" to an email.
- Try to align the separator to the left or right.
→ The separator remains centered instead of aligning properly.

opw-4805194

closes odoo#212496

Signed-off-by: Damien Abeloos (abd) <abd@odoo.com>
Issue:
The BuyerReference field in Xrechnung is only mandatory to be filled with the
appropriate company reference for DE B2G invoices, but not having the company
reference resuts in the field being absent entirely from the document for B2C
and B2B invoices, which results in the document being rejected.
Solution:
If the BuyerReference is not filled, it is set to 'N/A' instead of being left
absent from the document.
Addresses ticket-4715709
task-4756812

closes odoo#212535

Signed-off-by: Antoine Dupuis (andu) <andu@odoo.com>
- Adding new taxes required by DIOT
- Adding relevant tags and accounts
task-4568859

closes odoo#204742

Related: odoo/enterprise#82864
Signed-off-by: Antoine Dupuis (andu) <andu@odoo.com>
When fetching videos from vimeo, if the video is
deleted, an error is shown to the user which also
block test `website_snippet_background_video`.

Steps to reproduce:
1. Install website
2. Start `website_snippet_background_video` tour

Now, with the error handling, an warning will be
simply outputed for the missing video.

closes odoo#210307

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
Due to government regulations, tax base amount is multiplied by factor of 11/12 and tax value of 12% resulting to essentially 11% of tax. We need to display this DPP value both on invoice form view and reports

4485693

closes odoo#202832

Signed-off-by: Habib Ayob (ayh) <ayh@odoo.com>
Problem:
Adding a document when creating a new email template using `/media`
results in duplicated content on save.

Cause:
During HTML processing on save, `flattenBackgroundImages` wraps
elements with inline background images (`style*=background-image`)
in MSO-specific comments: `<!--[if mso]><![endif]-->`.

However, if multiple such elements are nested, they are each wrapped,
resulting in invalid nested comments and broken layout.

Solution:
Since the two conditions are opposites, we remove completely the content
of the nested comment if it has oppisite condition otherwise we just
remove the comment tags since they will be replaced with the upper
comment

Fixed in 17.0 in odoo@fcedeb6

Steps to reproduce:
1. Create a new email template.
2. Add a document using `/media`.
3. Save.
→ The content is duplicated or layout is broken.

opw-4675310

closes odoo#212918

Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
The goal of this commit is to fix the `website_form_editor_tour` tour
that is failing undeterministically. The tour fails because this flow
happens;
- The user types something ("A") as input and clicks somewhere else to
commit its change.
- The DOM is updated with the new value.
- The user types something else ("B") on the same input.
- The options are rebuild with the DOM value.

-> "A" is displayed in the option input and "B" is lost.

This is a know issue and it has been decided to not fix it in stable as
the behavior seems really unlikely to happen with human behavior and the
issue is not critical.

Although it is not optimal, the tour is fixed by adding delays between
steps.

The `timeout` of the tour has also been increased as it failed in the
multi-build due to a `Script timeout exceeded` error.

runbot-64572

closes odoo#213197

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
We have recently introduced several new versions of the delivery
connectors, based on the newer REST APIs introduced by the shipping
companies (USPS, FedEx, UPS, DHL).

However, in the settings we still link with installation checkboxes to
the old modules.

To avoid confusion for the user, we remove these checkboxes and refer
the user to the Apps menu instead for manual installation of the
preferred shipping connector. In the apps menu, we clarify that these
new modules are only compatible with the new REST APIs, and we also hide
the legacy modules by default by making them application: False.

closes odoo#201583

Related: odoo/enterprise#81354
Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
**Reason**
- Users are more likely to use detailed_type for filter than type
because detail_type also contains type plus other categories.
plus
**Solution
- Change filter from type to detailed_type

closes odoo#212183

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
…ew PCSID

When a journal is re-onboarding on ZATCA and a new PCSID is generated, the Invoice Counter Value (ICV) should be reset >
Currently, the system does not reset the ICV when a journal is re-onboarded.

the fix resets the sequence back to 1 on re-onboarding

task-4652483

closes odoo#212187

Signed-off-by: Josse Colpaert (jco) <jco@odoo.com>
Current behaviour:
When displaying a malaysian address on an invoice,
the state code is shown.

Street 12
Cityname KTN 12345
Malaysia

In 17.0 and after, KTN is replaced by MY-03
(and other state codes) per ISO standards
KUL -> MY-14, PHG -> MY-06, etc.
odoo@a8204fc

Expected behaviour:
The state name should be displayed instead.

Street 12
Cityname Kelantan 12345
Malaysia

Steps to reproduce:
1. Go to Contacts
2. Create a new contact
3. Set country as Malaysia, and choose a state
4. Go to Invoice, create one
5. Select new malaysian contact
6. State code in address instead of name

Fix:
Added a custom address_format in res_country_data.xml

opw-4762300

closes odoo#212316

Signed-off-by: John Laterre (jol) <jol@odoo.com>
Problem:
When a video is added to the `website_description` field using the
website editor, it appears visually shifted to the left (by 50%) when
viewed from the Contacts page in the "Website Partner Full Description"
field.

Cause:
The class `o-position-absolute` sets `left: auto` which was evaluated
as `50%`, and`margin-left: -50%` was added to center absolutely
positioned elements. However, this causes issues when rendered
in `html_field` context, where `left: auto` evaluates to `0px`.
As a result, the `-50%` margin shifts the video offscreen.

Solution:
Set both `left` and `right` to `0` in `.o-position-absolute`
to ensure proper centering. Remove `margin-left: -50%` to
prevent misalignment in non-editor contexts.

Steps to reproduce:
- Go to Contacts > "Gemini Furniture".
- Add a video in the "Website Partner Full Description" field.
- Save and open the partner on the website (`partners/gemini-furniture-11`).
- Return to the Contacts page.
→ The video appears shifted 50% to the left.

opw-4752567

closes odoo#212344

Signed-off-by: Walid Sahli (wasa) <wasa@odoo.com>
When grouping by week/days in a pivot, some issues can be seen for dates
which week is between two years (for instance 12/30/2024 is both part of
the last week of 2024 and the first week of 2025). Currently, such a
date is assigned to week 1 of 2024 in a spreadsheet pivot, which is
false and also messes up the group by of the first week of 2024.

Technically, it's an issue with the date formatting "WW/YYYY" because
the two parts are decorellated.
Following the ISO calendar rules, the year of the date is obviously
2024 but the week of 12/30/2024 is 1 only because we consider it part
of 2025. Since both parts of the information are gathered independently,
we end up with this misleading formatted value.

Task-4853825

closes odoo#213302

Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.