Daily updates from Odoo
Navigate
Branch
Thursday, March 7, 2024
86 changes
27 changes
New functionality added to Odoo
This update introduces the foundational localization package for Zambia within Odoo. It includes essential settings, accounting charts, tax definitions, fiscal positions, and standard financial reports, enabling businesses operating in Zambia to use Odoo effectively. This expands Odoo's capabilities to meet the specific needs of the Zambian market.
Original PR description
Description of the issue/feature this commit addresses: There is no localization for Zambia. --- Desired behavior after this commit is merged: This commit adds the base package of the Zambian localization including: - Default Settings - Chart of Accounts - Taxes - Fiscal Positions - Reports (BS, P&L, Tax Report) --- Enterprise PR: https://github.com/odoo/enterprise/pull/54707 task-3391861 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150134
Enhancements to existing features
This update streamlines the initial setup for Odoo users in New Zealand. It updates key tax settings, account configurations, and default chart of accounts to better align with New Zealand's tax regulations, making it easier for businesses to get started with Odoo in this region. This improves the out-of-the-box experience and reduces the initial configuration effort.
Original PR description
This tasks aims to improve the out-of-the-box configuration of the NZ localization by updating some tax groups, taxes, accounts and default COA settings. Task ids 3647518 & 3647460 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154541
This update enables users to select key tax document types – ‘80’ and ‘83’ – when creating invoices with the ‘Online Invoice’ AFIP POS System setting enabled. Previously, these document types were unavailable in this scenario. This change ensures compliance with Argentinian tax regulations and improves invoice processing for users operating within the AFIP system.
Original PR description
This pull request replaces https://github.com/odoo/odoo/pull/156598 Description of the issue/feature this PR addresses: It is necessary to be able to select document types "80 INFORME DIARIO DE…
This pull request replaces https://github.com/odoo/odoo/pull/156598 Description of the issue/feature this PR addresses: It is necessary to be able to select document types "80 INFORME DIARIO DE CIERRE (ZETA) - CONTROLADORES FISCALES" and "83 TIQUE" in an invoice if the journal of the invoice has "Online Invoice" set on field "AFIP POS System". Current behavior before PR: User is not able to select document types "80 INFORME DIARIO DE CIERRE (ZETA) - CONTROLADORES FISCALES" and "83 TIQUE" in an invoice if the journal of the invoice has "Online Invoice" set on the field "AFIP POS System". Desired behavior after PR is merged: User is able to select document types "80 INFORME DIARIO DE CIERRE (ZETA) - CONTROLADORES FISCALES" and "83 TIQUE" in an invoice if the journal of the invoice has "Online Invoice" set on the field "AFIP POS System". Task Adhoc side: 34790 Task latam: 1167 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156695
This update streamlines the setup of Odoo's email functionality by migrating existing configuration settings to a new system. This allows users to initially configure basic settings through the base module, then easily install the full mail module and its associated features, like website and server domain setup. It addresses a change in how email configuration is handled within Odoo, ensuring compatibility and a smoother installation process.
Original PR description
When adding alias domain in v17 support of configuration parameter was dropped. We moved from singleton configuration to multi domains using real models. This means most of mail support lies in mail while part of it was in base beforehand. In some cases we want to let people do some basic configuration using base module then install mail which could migrate this ICP based configuration into new models. This is notably the case with odoo.sh where mail is not always automatically installed. With this change existing ICP are now used to bootstrap alias domain table at mail module initialization. Task-3789584 Forward-Port-Of: odoo/odoo#156654
Resolved issues and error corrections
This pull request fixes a minor issue where a character was missing from a translation pattern within the Odoo survey module. As a result, users were not seeing the intended text. This update ensures all survey text is displayed correctly for a better user experience.
Original PR description
A character was left out of the translation pattern, so the text was never displayed correctly to the user. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155331
This update corrects a visual glitch (flicker) that occasionally appeared when hovering over buttons on the course page. This enhancement ensures a smoother and more professional user experience for visitors. The fix was part of a larger effort to improve website stability.
Original PR description
This commit fixes the flicker issue of buttons hovering over content on the course page. Task-3751285 Forward-Port-Of: odoo/odoo#156543 Forward-Port-Of: odoo/odoo#155869
This update ensures that when a manufactured order (MO) is created from a sales order (SO), the analytic account specified on the SO is automatically applied to the MO if no analytic account is defined in the product's manufacturing bill of materials (BOM). This resolves an issue where analytic accounts weren't being correctly transferred, improving financial reporting accuracy.
Original PR description
Steps to reproduce: - Enable MTO - Create a manufactured product (no analytic distribution on the bom) - Create an SO for that product and set an analytic account on it - Confirm the SO Bug: no analytic account on the created MO Fix: inherit MO analytic account from SO if none is set on the BOM opw-3708134 Forward-Port-Of: odoo/odoo#156535 Forward-Port-Of: odoo/odoo#154354
This update fixes an issue where charts on survey results pages would disappear when printing. The fix adds styling to ensure charts are always visible and removes unnecessary code that caused this problem. This ensures consistent and reliable printing of survey results.
Original PR description
Purpose ======= When you go on any survey results page, you notice charts are smaller than they used to be on version 16. But there are still readable. The annoying part is when you click on the `print` btn or press `CTRL + P`, the charts disappear from both the page and the window preview. How to fix ========== - add classes `w-100` and `h-auto` to the canvas elements containing the charts Also, remove after/before-print events in the public widget as they are no longer useful. see https://github.com/odoo/odoo/pull/135683 task-3667969 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152705
This update fixes a display issue in the Amounts to Settle report, replacing a confusing 'Display Name' column with the more useful 'Name' column. It also adds a search option for journal entries, making it easier to find relevant transactions. This improves the clarity and usability of key financial reporting tools.
Original PR description
This commit fixes the amounts to settle view which currently shows a "Display Name" column which makes no sense and is missing a search option for journal entries. --- enterprise: https://github.com/odoo/enterprise/pull/54137 task-3640027 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#148476
This update adds a new test to ensure the screencast feature continues to function correctly. Recent changes impacted the underlying ffmpeg call, and this test provides verification and compatibility testing across different ffmpeg versions used in Odoo's distribution builds.
Original PR description
Screencast are not always enable and a recent change broke the ffmpeg call. This call was already broken in some ffmpeg versions. This test will help to ensure this feature continues to work, and will also test it in different ffmpeg versions during distro builds. Forward-Port-Of: odoo/odoo#155951 Forward-Port-Of: odoo/odoo#151815
This update corrects a minor typo in the Odoo system's channel management process. The change prevents unnecessary requests, optimizing performance and resource usage. This ensures a smoother and more efficient user experience.
Original PR description
There is no bug manifesting because the condition is only here to prevent from making extra RPC calls while one is already in progress.
This update fixes a recurring issue where payments were incorrectly canceled due to lingering inactivity timeouts. By explicitly clearing these timeouts before initiating new payments, we've eliminated this error and ensured smoother payment processing for our customers. This improves the reliability of the point-of-sale system.
Original PR description
Before this commit ================== In certain scenarios, when a new subsequent payment was initiated after the initial payment was completed, an error message appeared stating, **Payment is canceled due to inactivity** Issue ===== Failing to remove the previous inactivity timeout before establishing a new one led to the aforementioned error. With this commit ================ Explicitly clear previous timeouts before setting a new one to prevent potential conflicts and ensure a clean timeout environment. Forward-Port-Of: odoo/odoo#156430
This update resolves an issue where the EMV QR code selection was incorrectly choosing QR codes for unsupported countries, leading to potential currency errors. The fix introduces a fallback error message, ensuring accurate QR code selection and preventing incorrect currency checks.
Original PR description
The account_qr_code_emv module has an issue at the moment where it will only return errors in _get_error_messages_for_qr for the country the qr code is intended for. This makes sense since you want…
The account_qr_code_emv module has an issue at the moment where it will only return errors in
_get_error_messages_for_qr for the country the qr
code is intended for.
This makes sense since you want to check all countries in later versions where we have multiple of them.
But it causes an issue with the standard implementation where if you are using a country that is not supported by an EMV QR, _get_error_messages_for_qr will just return None.
This means that:
- The default QR CODE selection on the invoice that
depends on that may select EMV QR for unrelated
countries.
- If it gets selected, this method will not check
that the currency is correct for said countries.
To fix this issue, we will simply return an error
message in the common module, which will serve as a fallback once all the EMV QR methods have been checked.
Task id # 3758668
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#156840
Forward-Port-Of: odoo/odoo#154957This update resolves an issue where the actionable error widget didn't refresh when underlying data changed. Now, the widget accurately reflects any updates to the account configuration, ensuring users see the correct error messages or no messages at all. This improves the user experience and data accuracy.
Original PR description
The widget for actionable errors does not update when the errors it displays are updated due to, for example, a recomputation of the field. This results in irrelevant errors being displayed in the view, when a particular configuration is correct. The correct errors (or an absence of any errors) will not be displayed until the view is refreshed. This commit adapts the component, such that the record data is accessed directly from the template. This means that the recordObserver, and the method it uses can be removed (as they were redundant) task-id: None Forward-Port-Of: odoo/odoo#155914
This update fixes an issue where the forecast report incorrectly marked stock reservations as 'Reserved from stock' when transfers involved multiple warehouses. Previously, a move could be marked as reserved even if the transfer chain wasn't fully completed across warehouses. Now, the system ensures reservations are linked to the correct transfer, providing accurate stock visibility in multi-warehouse operations.
Original PR description
Commit c05815ae6b8bd will go through a chain a move to set the last one as "reserved from stock" if the first one is reserved even if the cahin is not completed yet. The issue is if the chain is…
Commit c05815ae6b8bd will go through a chain a move to set the last one as "reserved from stock" if the first one is reserved even if the cahin is not completed yet. The issue is if the chain is inter warehouses, a move out in a warehouse can be marked as "reserved" while the stock being reserved is actually the one of another warehouse. ### To reproduce 1. Create 2 warehouses 2. Create a stock rule (pull) and a route between the 2 stock location of those product create a product having the route MTO and the new replenish route create a delivery in the second warehouse. 3. A transfer from the two warehouse should be created and linked to the delivery Open the forecast report for the warehouse that deliver the product -> the delivery is marked as "Reserved from stock" instead of being linked to the replenish transfer. 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 Forward-Port-Of: odoo/odoo#152922 Forward-Port-Of: odoo/odoo#152322
This update resolves a crash in the full composer when using the im_livechat module to mention partners. The issue stemmed from an incorrect assumption about optional parameters within the suggestion service. This fix ensures the system correctly handles optional thread information, preventing the crash and improving stability.
Original PR description
Making a mention in full composer when `im_livechat` is installed was making the following crash:
```
TypeError: Cannot read properties of undefined (reading 'type')
at SuggestionService.fetchSuggestions
```
Steps to reproduce:
- install module `im_livechat`
- open contacts app form view
- open full composer (e.g. Log note => expand icon)
- type @ + a character => throws error above
This happens because `SuggestionService` methods can optionally pass a thread, but livechat overrides wrongfully assume they were always provided.
This commit fixes the issue with optional chaining, taking into account it's optional.
No test because full composer doesn't work in unit tests, tours require adding steps blindly and I've already wasted too much time to no avail.
Forward-Port-Of: odoo/odoo#156773This update addresses a recent issue where restricted editor data was unintentionally shared with public users. This commit includes a new test to confirm that the fix implemented in a previous pull request remains in place, preventing future data leakage. This ensures data security and proper functionality for users.
Original PR description
This commit is a follow-up on [1] which fixed the caching of restricted editor which was accidentally shared with public users. It introduces a test that verifies that this fix is not lost. [1]: https://github.com/odoo/odoo/commit/821888023db462d522c5d6de84fcab80a81c2713 task-3482439 Forward-Port-Of: odoo/odoo#156479
This update corrects a bug where radio button checkboxes on forms were not functioning as expected. The change restores the default behavior of toggling the 'checked' attribute, which was inadvertently altered due to a recent update to the QWeb engine. This ensures all form elements, including radio buttons, work reliably.
Original PR description
Same fix as for checkbox (commit [1]) and select (commit [2]). The radio buttons were forgotten. Check commit [1] for in-depth explanation, but this is basically because since the qweb engine conversion to OWL (done at [3]), it would toggle the internal `checked` value and not the `checked` attribute anymore. [1]: https://github.com/odoo/odoo/commit/b42e9cc686e7d3ccf82cd091a5dc24028fff8a2b [2]: https://github.com/odoo/odoo/commit/dd504811303a2ace661259d05d1e3b88794dc5be [3]: https://github.com/odoo/odoo/pull/130467 opw-3755078 Forward-Port-Of: odoo/odoo#156666
This update fixes a technical issue related to how early payment discounts are applied to customer invoices. Specifically, a misconfiguration was causing incorrect tax tagging, which has now been corrected by restoring the proper calculation method. This ensures accurate tax reporting for early payment discounts.
Original PR description
When configuring the payment term to include the EPD within the payment's journal entry on a customer invoice, the tax_tag_invert field got wrongly set as True. This was hardcoded in the code; computing the field in the regular way gives the proper value. OPW 3754446 Forward-Port-Of: odoo/odoo#156588
This update corrects a problem where special characters (like quotes) weren't printed correctly on ZPL product labels. Because the labels are generated as text, these characters are harmless and now display accurately. This ensures consistent and accurate product labeling for all products.
Original PR description
Current behavior: When printing products ZPL Labels, special characters are not printed correctly. e.g. quotes become ' Steps to reproduce: - Modify a product name with special characters - Print a product label - Select ZPL Labels As the report is only rendered as text, the special characters are not dangerous and can be printed as is. opw-3684870 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156624 Forward-Port-Of: odoo/odoo#152657
This update fixes a warning message that prevented users from submitting expense reports. The system was incorrectly checking all applicability rules without considering the company setting, leading to errors. Now, the system accurately applies company-specific rules for analytic distributions, ensuring reports can be processed correctly.
Original PR description
Have company A and company B With company B: - Create an analytic plan with default applicability 'Mandatory' - Add an applicability: domain 'Expense', applicability 'Mandatory' With company A: - Open the same analytic plan - Set default applicability 'Optional', no assigned applicability - Add an analytc account for the plan - Create an expense, add amount - Create report > Submit to Mananger > Approve Issue: Action will be blocked by Warning message "One or more lines require a 100% analytic distribution." This occurs because the system checks all applicabilities of the plan without taking into account the company opw-3709374 Forward-Port-Of: odoo/odoo#155195
This update resolves a bug that caused survey submissions to fail when users had previously saved their answers as nicknames or email addresses. The change ensures that pre-filled answers are correctly handled, preventing security-related crashes when users attempt to modify saved data. This improves the survey experience for all users.
Original PR description
Purpose ======= Fix the UserError which is raised when the user submits an answer to a question having the "save as nickname" or "save as email" option checked. In testing or non-testing mode.…
Purpose ======= Fix the UserError which is raised when the user submits an answer to a question having the "save as nickname" or "save as email" option checked. In testing or non-testing mode. Specifications ============== When the question is marked as "save as email" or "save as nickname" and when the user isn't public, the partner data is already saved as the question answer (in the form of a user input line). The answer is then pre-filled in the survey. This is an issue because when the survey has the "users can go back" option to False and the user tries to submit the answer, it thinks the user is trying to changed the already saved user input line and it crashes for security reasons. In addition of allowing the answer override if the user can go back, also allow the override if the question is marked as "save as nickname" or "save as email". This issue was introduced in 17.0 when the overwrite_existing optional parameter has been added on the _save_lines method. Before that, the existing user input lines were overwritten no matter what. related https://github.com/odoo/odoo/pull/129329 Task-3756749 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155561
This update resolves an issue where duplicating CTA buttons in the website editor resulted in a permanent, unremovable duplicate. The change prevents this duplication, allowing users to easily add and remove CTA buttons through the standard drag-and-drop interface. This ensures a smoother and more flexible experience for website customization.
Original PR description
Steps to reproduce [17.0]: - Go to website (in "Edit" mode) > Click on the "Contact Us" button. - Duplicate the CTA button ("Button options" > "Duplicate icon"). - There is no way to only remove the…
Steps to reproduce [17.0]:
- Go to website (in "Edit" mode) > Click on the "Contact Us" button.
- Duplicate the CTA button ("Button options" > "Duplicate icon").
- There is no way to only remove the duplicated button, and the "Header" >
"Show/Hide Button" option will disable the whole CTA container.
After the website headers redesign in [1], a new feature was added to
allow users to select the elements they want to display in the header
(social links, call to action...). The CTA section was also marked as
'oe_unremovable' which disabled the option to remove it in the editor.
When a CTA button is duplicted, the clone will also be unremovable which
makes it impossible to remove.
The goal of this commit is to prevent the duplication of CTA buttons.
It's always possible to add buttons by drag & dropping "Button" snippets
which are also removable.
Remark: Also after [1], two header navbars were added in the DOM (for
the desktop view and mobile). Which means that the CTA field is also
duplicated and every change on the CTA buttons in Desktop will be
reflected in the mobile version.
[1]: https://github.com/odoo/odoo/pull/119650
opw-3706902
Forward-Port-Of: odoo/odoo#156164This update resolves an issue where a website tour wasn't functioning correctly when the demo data was not present. The team added necessary data to ensure the tour runs consistently, regardless of whether demo data is installed. This improves the user experience and prevents unexpected tour behavior.
Original PR description
The `course_publisher_standard` tour was missing slide (channel) tags. We are replacing values used in the tour so that the tour runs on the same data whether demo data is installed or not. See runbot build errors 55762 and 55768. Task-3744848 Forward-Port-Of: odoo/odoo#156797 Forward-Port-Of: odoo/odoo#153926
This update streamlines the process of redirecting users to forum questions, making the website more efficient. The change simplifies the handling of URL parameters related to forum questions, reducing complexity and improving performance. This ensures a smoother experience for users navigating to and within the forum.
Original PR description
Don't try to keep extra params and co. Keep it simple... Else we should pop from request.params `forum` and `blog` keys because now they are converted as query param with the slug format: /forum/help-1/question-1?forum=forum.forum(1,)&question=forum.post(1,) Forward-Port-Of: odoo/odoo#156726 Forward-Port-Of: odoo/odoo#156458
This update removes a disruptive reload that occurred when a workcenter was unblocked. This change improves the overall user experience, particularly for applications like the shop floor, by streamlining the process and eliminating unnecessary delays. It’s a simple fix to enhance efficiency.
Original PR description
Unblocking a workcenter incurs a reload which is bad in terms of user experience for other applications like shop floor. And since the reload is no longer needed at any other part, it is removed now. task-3629043 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153036
Documentation and clarification updates
This pull request updates the list of members authorized to contribute to the Odoo Adhoc CLA. This ensures compliance with Odoo's contribution guidelines and allows for continued collaboration on this specific project. The change was made to reflect updated legal agreements.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154766
23 changes
Enhancements to existing features
Odoo now preconfigures sensible default accounts for deferred expenses and deferred revenues across several country-specific accounting localizations. This reduces manual setup for businesses using these localizations and adds basic reporting modules for the United Arab Emirates and Hong Kong to support the same defaults.
Original PR description
*au,de,fr,ke,lu,mx,us
We want to set up sensible default accounts for the deferred expenses and deferred revenues in different localizations.
**[ADD] l10n_{ae,hk}_reports: default deferral accounts**
For the United Arab Emirates and Hong Kong there were no reporting modules yet, so we are adding them here with only the setting of the default accounts for deferred revenues and expenses.
[task-3419066](https://www.odoo.com/web#id=3419066&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form)
Related to https://github.com/odoo/odoo/pull/132696The data merge test coverage was updated to match a change in invoice handling: customer invoices and credit notes are now secured when they are sent rather than when they are posted. This keeps automated checks aligned with the current business process and helps avoid false test failures.
Original PR description
Now the customer invoices and credit notes are hashed upon sending, not upon posting. Tests should be adjusted accordingly. See also: odoo/odoo#152467 Part of: task-3695695
Users can now turn automated reminders for signature requests on or off with a clear option, instead of setting the reminder interval to 0 days. This makes reminder settings easier to understand and helps avoid accidental reminder behavior.
Original PR description
Before this commit, users had to set reminder to 0 days to disable automated reminders, this wasn't intuitive. This commit adds a boolean field to allow users to disable reminders in a convenient way. Task: 3674875
This update improves how the Mexican EDI extension locates its internal files, especially in setups that use linked or customized addon paths. It helps prevent path-related failures without changing day-to-day functionality for users.
Original PR description
Replace outdated realpath usage with odoo tools.file_open. Allows file_open to locate file from addons path rather than looking up through realpath. This will resolve potential issues with realpath not finding the proper path of files in certain situations (like a symlink). Worth noting that file_open uses abspath instead of realpath anyway. opw-3745052
The Avatax geolocation screen now hides coordinate calculation buttons for contact entries that belong to a parent contact and have a specific contact type. This reduces confusion by preventing users from seeing actions that are not relevant in those situations.
Original PR description
This PR makes invisible coordinates computation buttons when having a parent and type in contact. Task-3336288
This update removes obsolete UTF-8 coding comments from Python files across the affected accounting modules. It does not change product behavior, but keeps the codebase cleaner and easier to maintain.
Original PR description
Since the `coding: utf-8` comment at the start of python files is no longer useful, this commit removes them.
Companies can now keep the same lot or serial number linked when products move between related companies. This improves traceability for inter-company deliveries and receipts, and adds more flexibility by letting businesses choose a specific receipt operation type for these flows.
Original PR description
bc55aac26d38e17b7d7a5e3bc98c61b923f833d1: Adapt some views & tests to match the changes done in the community side: odoo/odoo@27b5b53fd2f227ed861e40d990add87ac6ecade8 a9af9066dcfc40ac212ffb9efd42ff9920cc5bcf: Iterates over 2adc70a067ac363f3d0e54719a70e1f9268d399d, now allowing to directly link lots when doing an inter-company transaction, provided the lots themselves have no company set. Also adds the choice of an Operation type for inter-company receipts, which allows different settings than the "default" reception, and different locations as well. See odoo/odoo#146458
Resolved issues and error corrections
Opening a linked resource from the Documents inspector no longer causes an error. This helps users access related records from documents without interruption.
Original PR description
**Steps to reproduce:** - Select a document to open the document inspector.(say Employment Contract.pdf) - Click on the resource link of that document.(located below folder) **Issue:** When a user…
**Steps to reproduce:**
- Select a document to open the document inspector.(say Employment Contract.pdf)
- Click on the resource link of that document.(located below folder)
**Issue:**
When a user tries to open a document resource from the documents inspector, it leads to a traceback.
**Cause:**
The issue has been faced since https://github.com/odoo/odoo/pull/149906/commits/bc4ebf44e224a9e4dec0c924f835af52086ba4b6 as it introduces some code to handle the fields of type "many2one_reference" in 'utils.js', thus changing the returned value in case of res_id.
(i.e. Instead of simply returning the 'value' of resId, it returns an object { resId: value })
As a result, validateProps throws an error due to an invalid type of res_id received.
**Fix:**
This commit tweaks the arguments of the orm call in `onClickResModel` method to ensure that the res_id passed
is of type 'number'.
Task: [3764083](https://www.odoo.com/web#id=3764083&menu_id=4722&cids=2&action=333&active_id=10888&model=project.task&view_type=form)Code cleanup and technical improvements
The pull request updates several automated product tours to use the newer testing selector approach instead of older jQuery-based patterns. This is an internal cleanup that should make tests more consistent and maintainable without changing day-to-day user workflows.
Original PR description
In this commit : - Tour Compiler uses now Hoot selectors instead of jQuery selectors. - jQuery selectors from tours trigger (extra_trigger and others) have been so adapted to be compatible with Hoot selectors. - Most of uses of jQuery in step.run() has been replaced by native or hoot-dom helpers. task~3600484 https://github.com/odoo/odoo/pull/154182
This update reorganizes automated tests across several Odoo apps so shared test helpers are imported and reused more consistently. It does not change business functionality, but it helps keep future testing work cleaner and easier to maintain.
Original PR description
https://github.com/odoo/odoo/pull/156722
Miscellaneous changes
*: account_reports, account_sepa_direct_debit --- This PR contains two commits. The first one fixes wrong domains when auditing the aged reports by adjusting which journal types the aml's that are displayed can have and by adjusting the dates that are used. The second one fixes a missing filter for SEPA Mandates in the Amounts to Settle view when sepa is installed. --- odoo: https://github.com/odoo/odoo/pull/148476 task-3640027 Forward-Port-Of: odoo/enterprise#54137
Original PR description
*: account_reports, account_sepa_direct_debit --- This PR contains two commits. The first one fixes wrong domains when auditing the aged reports by adjusting which journal types the aml's that are displayed can have and by adjusting the dates that are used. The second one fixes a missing filter for SEPA Mandates in the Amounts to Settle view when sepa is installed. --- odoo: https://github.com/odoo/odoo/pull/148476 task-3640027 Forward-Port-Of: odoo/enterprise#54137
Steps: - create a shift recurrency every week and save - go back to the shift, and set another date - select "edit: all shifts" and save Issue: All shifts are set to the same date. Cause: We find all shift of the recurrence and apply them the same values. Fix: Pop those field from the value. Then, depending on the unit of the recurrence, we compute which day of the week/month the new date is. Apply it to all shifts, and if we don't have the 2 dates, recalculate the start based o
Original PR description
Steps: - create a shift recurrency every week and save - go back to the shift, and set another date - select "edit: all shifts" and save Issue: All shifts are set to the same date. Cause: We find all shift of the recurrence and apply them the same values. Fix: Pop those field from the value. Then, depending on the unit of the recurrence, we compute which day of the week/month the new date is. Apply it to all shifts, and if we don't have the 2 dates, recalculate the start based on the new end or inversely. opw-3571081 Forward-Port-Of: odoo/enterprise#57983 Forward-Port-Of: odoo/enterprise#51784
In a picking, when a destination is scanned, if the scanned line is not complete, the line is splitted: the processed qty goes to the scanned destination and the remaining qty still goes to the previous expected destination. That said, if the scanned destination is the move line expected location, the line is not split, which can be annoying in some case. How to reproduce: - Active multi location; - Create a receipt for 4x product A and confirm it; - Open the receipt in the Barcode App; -
Original PR description
In a picking, when a destination is scanned, if the scanned line is not complete, the line is splitted: the processed qty goes to the scanned destination and the remaining qty still goes to the…
In a picking, when a destination is scanned, if the scanned line is not complete, the line is splitted: the processed qty goes to the scanned destination and the remaining qty still goes to the previous expected destination. That said, if the scanned destination is the move line expected location, the line is not split, which can be annoying in some case. How to reproduce: - Active multi location; - Create a receipt for 4x product A and confirm it; - Open the receipt in the Barcode App; - Scan 2x product A and then scan WH-STOCK as the destination -> Nothing happens. If the picker wants to move 2 product A in WH/Stock and 2 product A in Shelf 1, they have no easy way to do it if they scan WH-Stock first. If they scan Shelf 1 first, then the product A line will be splitted and they will get: - 2/2 product A going to WH/Stock/Shelf 1; - 0/2 product A going to WH/Stock. But if they scan WH-Stock first, they will stay with only one line: - 2/4 product A going to WH/Stock. In such case, no other choice than create a new line through the "Add Line" button (form view) and so, the reservation won't be split between the two lines. OPW-3774095 Forward-Port-Of: odoo/enterprise#57892
After some time, Amazon anonymized the buyer information and don't send it anymore in the calls. This shouldn't raise an error due to the missing data, but synchronize the order nonetheless. opw-3761649 Forward-Port-Of: odoo/enterprise#58099 Forward-Port-Of: odoo/enterprise#57999
Original PR description
After some time, Amazon anonymized the buyer information and don't send it anymore in the calls. This shouldn't raise an error due to the missing data, but synchronize the order nonetheless. opw-3761649 Forward-Port-Of: odoo/enterprise#58099 Forward-Port-Of: odoo/enterprise#57999
Bridge module to make invoices coming from amazon simplified, as you don't get the customer's tax id through via amazon. opw-3679325 Forward-Port-Of: odoo/enterprise#57713
Original PR description
Bridge module to make invoices coming from amazon simplified, as you don't get the customer's tax id through via amazon. opw-3679325 Forward-Port-Of: odoo/enterprise#57713
### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * ensure that the partner linked to your Spanish company has a bank account * open the tax report (MOD111, MOD115 or MOD303) * on the top left, click 'BOE' > 'Generate BOE' You should be met with the following error: "Please select an IBAN account". The 'Direct Debit Account' field should not be required. Another issue is that even if your company has some bank accounts defined, none of them will be li
Original PR description
### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * ensure that the partner linked to your Spanish company has a bank account * open the tax report (MOD111, MOD115 or…
### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * ensure that the partner linked to your Spanish company has a bank account * open the tax report (MOD111, MOD115 or MOD303) * on the top left, click 'BOE' > 'Generate BOE' You should be met with the following error: "Please select an IBAN account". The 'Direct Debit Account' field should not be required. Another issue is that even if your company has some bank accounts defined, none of them will be listed in the 'Direct Debit Account' field. ### Cause In `Mod111And115And303CommonBOEWizard`, `partner_bank_id` (Direct Debit Account) depends on `company_id` through `company_partner_id`. However, since `company_id` is not in the view, its associated default value will only be calculated when the wizard is saved. Before that, `company_id` will be empty, which will cause `partner_bank_id` to be empty as well. https://github.com/odoo/enterprise/blob/f512de0bcd32ab65bd3c91ffc7e7955c491d24da/l10n_es_reports/wizard/aeat_boe_export_wizards.py#L40-L42 The reason it works well in 16.4 is because before d2e099597c845e21f12bc0868c36ac5d4cf89b36, the wizard was initiated using `create()`, so the default values were calculated before displaying the wizard. https://github.com/odoo/enterprise/blob/59e9d1f9d705773091f86ccf5c6ba7bac9feaf5d/l10n_es_reports/models/aeat_tax_reports.py#L124-L136 opw-3719150 opw-3756722 Forward-Port-Of: odoo/enterprise#56938
How to reproduce: - Open the app document - Ensure the trash is empty - Select a document from any workspace (not too small so that the displayed size in MB is different from 0) - Move it to the trash - Open the trash - Select the document and click on delete in the inspector - Confirm the permanent deletion The inspector displays 0 documents but the size is different from 0 MB. This fixes the error by reloading the model forcing the re-computation of the size. Technical notes: no t
Original PR description
How to reproduce: - Open the app document - Ensure the trash is empty - Select a document from any workspace (not too small so that the displayed size in MB is different from 0) - Move it to the trash - Open the trash - Select the document and click on delete in the inspector - Confirm the permanent deletion The inspector displays 0 documents but the size is different from 0 MB. This fixes the error by reloading the model forcing the re-computation of the size. Technical notes: no test has been added as the tour that test the deletion uses small documents which prevents to add assertion about the size (as the size is 0 even when a document is present in the trash). Task-3637482 Forward-Port-Of: odoo/enterprise#53808
### Steps to reproduce * install `account_reports` * make sure you have multiple companies * create a new horizontal group with the following values: * Reports: General Ledger * Field: Company, Domain: [] * open the general ledger and apply the horizontal group you just made * attempt to unfold a line You should be met with a traceback: `KeyError: 'currency_id'` ### Cause Some possibly empty values are not accounted for. In this case, we arrive here with `eval_dict[column
Original PR description
### Steps to reproduce * install `account_reports` * make sure you have multiple companies * create a new horizontal group with the following values: * Reports: General Ledger * Field: Company, Domain: [] * open the general ledger and apply the horizontal group you just made * attempt to unfold a line You should be met with a traceback: `KeyError: 'currency_id'` ### Cause Some possibly empty values are not accounted for. In this case, we arrive here with `eval_dict[column['column_group_key']]` being an empty dict, which produces the traceback at line `618`. https://github.com/odoo/enterprise/blob/74000d6d5c8435bcaad93f7baf143abdf8593064/account_reports/models/account_general_ledger.py#L617-L621 Depending on the horizontal group, `init_bal_by_col_group[column['column_group_key']]` can also be `None`, which can cause issue at line `621` opw-3746643 Forward-Port-Of: odoo/enterprise#57220
Description of the issue/feature this commit addresses: There is no localization for Zambia. --- Desired behavior after this commit is merged: This commit adds the base package of the Zambian localization including: - Default Settings - Chart of Accounts - Taxes - Fiscal Positions - Reports (BS, P&L, Tax Report) --- Community PR: https://github.com/odoo/odoo/pull/150134 task-3391861 Forward-Port-Of: odoo/enterprise#54707
Original PR description
Description of the issue/feature this commit addresses: There is no localization for Zambia. --- Desired behavior after this commit is merged: This commit adds the base package of the Zambian localization including: - Default Settings - Chart of Accounts - Taxes - Fiscal Positions - Reports (BS, P&L, Tax Report) --- Community PR: https://github.com/odoo/odoo/pull/150134 task-3391861 Forward-Port-Of: odoo/enterprise#54707
Forward-Port-Of: odoo/enterprise#58132
Original PR description
Forward-Port-Of: odoo/enterprise#58132
Steps to reproduce =================== - Open the documents module. - thumbnail of the some pdfs are not displayed. Technical =================== As we made some changes https://github.com/odoo/enterprise/pull/49111 here related to thumbnail thumbnail_status for the 'application/pdf;base64' type pdfs are set to be false instead of 'client_generated'. After this PR =================== thumbnail for the 'application/pdf;base64' mimetype pdfs will be generated. Task-3753929 Forward
Original PR description
Steps to reproduce =================== - Open the documents module. - thumbnail of the some pdfs are not displayed. Technical =================== As we made some changes https://github.com/odoo/enterprise/pull/49111 here related to thumbnail thumbnail_status for the 'application/pdf;base64' type pdfs are set to be false instead of 'client_generated'. After this PR =================== thumbnail for the 'application/pdf;base64' mimetype pdfs will be generated. Task-3753929 Forward-Port-Of: odoo/enterprise#57682
Community: https://github.com/odoo/odoo/pull/155239 Forward-Port-Of: odoo/enterprise#57381
Original PR description
Community: https://github.com/odoo/odoo/pull/155239 Forward-Port-Of: odoo/enterprise#57381
When the user presses the `Alt` key in the Knowledge editor, there is no hotkey assigned to the button "Generate an Article with AI" located in the wysiwyg helper. This commit addresses the issue by defining a hotkey for that button. For that button, we will use the "G" key to refer to "Generate". task-3777661 Forward-Port-Of: odoo/enterprise#57366
Original PR description
When the user presses the `Alt` key in the Knowledge editor, there is no hotkey assigned to the button "Generate an Article with AI" located in the wysiwyg helper. This commit addresses the issue by defining a hotkey for that button. For that button, we will use the "G" key to refer to "Generate". task-3777661 Forward-Port-Of: odoo/enterprise#57366
36 changes
Enhancements to existing features
This update removes duplicate leave type definitions that were redundantly created in Belgium and Switzerland payroll modules. These duplicates were already properly defined in the Time Off module, so the payroll modules now reference the existing definitions instead. This cleanup reduces data redundancy and simplifies maintenance.
Original PR description
*: test_l10n_be l10n_ch Before this commit, both l10n modules were creating demo leave types almost identical to the demo and data already defined in the `hr_holidays` module. This commit removes those duplicates and refer to the equivalent of the Time Off module.
When a workcenter is unblocked in the manufacturing system, the application no longer triggers an unnecessary page reload. This improves the user experience, especially for shop floor operations and other connected applications that depend on smooth, uninterrupted workflows.
Original PR description
Unblocking a workcenter incurs a reload which is bad in terms of user experience for other applications like shop floor. And since the reload is no longer needed at any other part, it is removed now. task-3629043 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the India localization module by adding comprehensive test cases for invoices and partner details, and reorganizing the code for better maintainability. The GST treatment field now properly updates when invoices are reset to draft status, and tax-related code has been separated into its own file for easier navigation and maintenance.
Original PR description
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
This update enables Odoo to automatically migrate existing email configuration settings when the Mail module is installed. Previously, when upgrading to version 17, email domain configurations had to be manually re-entered. Now, if these settings were configured before installing the Mail module, they will be automatically transferred to the new system, making the installation process smoother and reducing manual setup work.
Original PR description
When adding alias domain in v17 support of configuration parameter was dropped. We moved from singleton configuration to multi domains using real models. This means most of mail support lies in mail while part of it was in base beforehand. In some cases we want to let people do some basic configuration using base module then install mail which could migrate this ICP based configuration into new models. This is notably the case with odoo.sh where mail is not always automatically installed. With this change existing ICP are now used to bootstrap alias domain table at mail module initialization. Task-3789584
This update adds automated tests for the screencast recording feature to ensure it works reliably across different ffmpeg versions. A recent change had broken the ffmpeg integration, and these new tests will help catch similar issues in the future and verify compatibility during software distribution builds.
Original PR description
Screencast are not always enable and a recent change broke the ffmpeg call. This call was already broken in some ffmpeg versions. This test will help to ensure this feature continues to work, and will also test it in different ffmpeg versions during distro builds. Forward-Port-Of: odoo/odoo#155951 Forward-Port-Of: odoo/odoo#151815
This update enables users to select two additional document types (80 and 83) when creating invoices in Argentina with the AFIP Online Invoice system. These document types are now available for selection in the invoice journal, expanding the options for different types of fiscal documents that businesses need to issue.
Original PR description
This pull request replaces https://github.com/odoo/odoo/pull/156598 Description of the issue/feature this PR addresses: It is necessary to be able to select document types "80 INFORME DIARIO DE…
This pull request replaces https://github.com/odoo/odoo/pull/156598 Description of the issue/feature this PR addresses: It is necessary to be able to select document types "80 INFORME DIARIO DE CIERRE (ZETA) - CONTROLADORES FISCALES" and "83 TIQUE" in an invoice if the journal of the invoice has "Online Invoice" set on field "AFIP POS System". Current behavior before PR: User is not able to select document types "80 INFORME DIARIO DE CIERRE (ZETA) - CONTROLADORES FISCALES" and "83 TIQUE" in an invoice if the journal of the invoice has "Online Invoice" set on the field "AFIP POS System". Desired behavior after PR is merged: User is able to select document types "80 INFORME DIARIO DE CIERRE (ZETA) - CONTROLADORES FISCALES" and "83 TIQUE" in an invoice if the journal of the invoice has "Online Invoice" set on the field "AFIP POS System". Task Adhoc side: 34790 Task latam: 1167 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156695
The product search feature in the Point of Sale system has been optimized to handle large databases more efficiently. By reducing how frequently the search function runs while users type, the system now responds faster and uses fewer resources, improving the overall checkout experience.
Original PR description
Before this commit, searching for a product in the product screen was problematic when dealing with large databases. The search function was triggered too frequently, leading to performance issues. With this commit, I have increased the debounce time for the product search. This reduces the frequency of search operations when user is typing. opw-3788796 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
The Block button in the work center interface now correctly shows or hides based on the current blocking state. Previously, the button would always show "Block" even when the work center was already blocked. Now users can properly block a work center or unblock it directly from the shop floor view, improving the user experience and preventing confusion.
Original PR description
`Block` button appears only if the work center state is not blocked, and vice versa task-3629043  
This fix improves the translation process for the HR Referral module by keeping text terms together instead of splitting them into small blocks. Splitting text into fragments makes it harder for translators to understand context and produce accurate translations. This change makes the module easier to translate into different languages.
Original PR description
It makes it very difficult to translate
This update fixes how progress bars are calculated in the HR attendance and contract scheduling views. Previously, the progress calculations didn't properly account for individual employee contracts, which could lead to inaccurate progress tracking. This fix ensures that progress bars now correctly reflect each employee's contract details.
Original PR description
Currently the progressbar computation are not contract-aware, we fix this here task-3777971
This update fixes two issues with multi-line text fields in digital signature documents. Long text entries were overflowing their boundaries, and text alignment settings were not being applied to the final PDF. The fix ensures text displays correctly within its designated area and respects the user's alignment preferences when generating signature documents.
Original PR description
This PR fixes 2 issues with multi-line fields: 1. when inserting long lines in multi-line text field and generating the final pdf, the multi-line did not respect its boundaries at all. This happened because font size wasn't applied properly on the frontend, so there was a difference between fontsize inside the textarea and the fontsize when writing lines on the document which caused the lines to overflow horizontally. 2. Text alignment is not applied when generating the final pdf. Changes: 1. remove the fixed textarea font-size property and allow it to be set dynamically based on the zoom factor 2. apply text alignment on the multiline field Task: 3696347
This fix corrects an issue in the payroll accounting system where SEPA payments were being incorrectly classified as NURG (non-SEPA) payments. The change ensures that SEPA bank transfers for employee salaries are properly identified and processed through the correct payment channel, improving payment accuracy and compliance.
Original PR description
…of SEPA
This fix resolves an issue where changing the date of a recurring shift would incorrectly set all shifts in the recurrence to the same date. The system now properly calculates and applies date changes based on the recurrence pattern (weekly, monthly, etc.), ensuring each shift maintains its correct position in the schedule while reflecting the user's date adjustment.
Original PR description
Steps: - create a shift recurrency every week and save - go back to the shift, and set another date - select "edit: all shifts" and save Issue: All shifts are set to the same date. Cause: We find all shift of the recurrence and apply them the same values. Fix: Pop those field from the value. Then, depending on the unit of the recurrence, we compute which day of the week/month the new date is. Apply it to all shifts, and if we don't have the 2 dates, recalculate the start based on the new end or inversely. opw-3571081 Forward-Port-Of: odoo/enterprise#57817 Forward-Port-Of: odoo/enterprise#51784
Amazon has started anonymizing buyer information in order data, which was causing synchronization errors. This fix allows orders to sync successfully even when buyer details are missing, ensuring your Amazon sales orders continue to be imported into Odoo without interruption.
Original PR description
After some time, Amazon anonymized the buyer information and don't send it anymore in the calls. This shouldn't raise an error due to the missing data, but synchronize the order nonetheless. opw-3761649 Forward-Port-Of: odoo/enterprise#58099 Forward-Port-Of: odoo/enterprise#57999
The Avatax settings page had two duplicate checkboxes for controlling the module. This fix removes the outdated checkbox and keeps only the current one, simplifying the settings interface. This change aligns with Avatax being automatically installed in version 17 and ensures users have a cleaner, less confusing settings experience.
Original PR description
There's duplicate checkboxes in the Avatax settings. One for module_account_avatax and one for setting_account_avatax. This replaces the former with the latter because: - account_avatax is auto-installed in 17 [1] - module_account_avatax was removed in 17.1 [2][3] - you can still uninstall via the apps menu [1] odoo/odoo@70329177713131d3d6ec424137cad3702e9d38ae [2] odoo/odoo#136894 [3] odoo/enterprise#48045 ### Before  ### After 
Fixed a bug in the Partner Ledger report that caused the system to crash when displaying reconciled accounting entries without a partner. The issue occurred when a miscellaneous entry without a partner was reconciled with an invoice from a specific partner. The fix ensures the report correctly handles these indirect linked entries by using unique identifiers, preventing duplicate data conflicts.
Original PR description
The owl key used was the id of the journal item, it is not unique in some cases of indirect linked aml (amls which don't have the partner of the report section but are reconciled with an aml which have this partner). An indirect aml can have multiple partial reconciliations with different amls from the same partner. Also the way odoo shows indirect aml in "Unknown partner" section is to duplicate all info shown except debit/credit/balance from origin aml (so this include aml.id). To support those cases, we now use a markup with the id of partial reconcile to produce unique keys. When the aml is not an indirect aml, this markup is set to 0. Steps to reproduce: 1/ Create an invoice with partner 2/ Create a MISC entry without partner for the same amount 3/ Reconcile both 4/ Go to partner ledger for the right period + unfold all => Traceback opw-3700478 Forward-Port-Of: odoo/enterprise#57105
A variable name error in the POS preparation display module has been corrected. The system was referencing an incorrect field name (pos_categ_id) which has been fixed to use the correct field name (pos_categ_ids). This ensures the POS system properly retrieves product category information for order preparation displays.
Original PR description
Before this commit, the variable name was wrong in the pos_order.py file in the pos_preparation_display module. We use product_id.pos_categ_id Now its fixed by using the correct name product_id.pos_categ_ids
Fixed a bug where clicking the home navigation arrow in the Documents app would cause an error. The issue occurred when users clicked directly on the arrow icon to return to the home view. The fix disables pointer events on the arrow's underlying graphic elements so clicks are properly handled by the button instead.
Original PR description
Issue: - Open the Documents App. - Select any PDF and click splitPDF from the inspector. - Now from the top-left, try to toggle back to home by clicking precisely on the arrow. - We get a traceback.…
Issue: - Open the Documents App. - Select any PDF and click splitPDF from the inspector. - Now from the top-left, try to toggle back to home by clicking precisely on the arrow. - We get a traceback. Reason: - link to the LOC from where the issue arises: https://github.com/odoo/enterprise/blob/705bed9b2c63227c36f42045903f490a5d287f1f/documents/static/src/owl/components/pdf_manager/pdf_manager.js#L1275 - The `ev.target` returns an `<svg>` element (the toggle arrow) when clicked directly on it. - When clicked on the bottom right end of the toggle arrow, it returns the `<rect>/<g>` element. - Since neither the `<svg>/<rect>/<g>` element have a `click()` method, clicking directly on them results in a traceback. Fix: - We use the bootstrap class `pe-none` to disable the pointer-events inside the `<svg>` element. After this commit: - We successfully land on the HOME, when clicking on the arrow. The traceback no longer occurs after this fix. Task-3764120 Forward-Port-Of: odoo/enterprise#57514
This fix corrects how shipping dates are converted when creating delivery orders from Point of Sale transactions. Previously, when customers selected a "Ship Later" date in the POS system, the scheduled delivery date in the warehouse was showing one day earlier than intended. This update ensures the correct date is used when transferring order information to the fulfillment system.
Original PR description
Since `shipping_date` is a field `Date` but `date_planned` is a field `datetime`, before this commit, the `date_planned` in picking was one day less. complementary to https://github.com/odoo/odoo/commit/fe9e230b500af316e6f80af453a4073d9dff24b7 - Enable `Allow Ship Later` into a pos config - Create a new order and set a `Ship Later Date`  - Go to backend and navigate to picking and Scheduled Date is 02/27 instead of 02/28  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
This fix removes an empty button that was appearing while users created calendar events from other records (like leads). The button, which normally allows jumping back to the original record, now only displays after the event is saved, providing a cleaner user experience.
Original PR description
Before this commit when you create an event from a lead, a button appears to jump back to the lead but while you're creating the record, it already appears but empty. This commit hides the button in case the res_model_name is null, which happens while we are creating the event and before hitting save. Task: 3747059
The accounting module's error notification widget was displaying outdated error messages that didn't refresh when the underlying data changed. Users had to manually refresh the page to see the correct status. This fix ensures error messages update automatically whenever the data changes, providing users with accurate, real-time feedback without requiring a page refresh.
Original PR description
The widget for actionable errors does not update when the errors it displays are updated due to, for example, a recomputation of the field. This results in irrelevant errors being displayed in the view, when a particular configuration is correct. The correct errors (or an absence of any errors) will not be displayed until the view is refreshed. This commit adapts the component, such that the record data is accessed directly from the template. This means that the recordObserver, and the method it uses can be removed (as they were redundant) task-id: None
This update corrects how progress bars are calculated in the HR module to properly account for employee contracts. Previously, the progress bar computations didn't consider contract information, which could lead to inaccurate progress tracking. This fix ensures that progress bars now accurately reflect contract-aware data across HR, contract, attendance, and Gantt chart features.
Original PR description
Currently the progressbar computation are not contract-aware, we fix this here task-3777971
This fix prevents users from duplicating Call-to-Action (CTA) buttons in website headers, which was causing problems because duplicated buttons couldn't be removed individually. Users can still add buttons by dragging and dropping button snippets, which remain fully removable and manageable.
Original PR description
Steps to reproduce [17.0]: - Go to website (in "Edit" mode) > Click on the "Contact Us" button. - Duplicate the CTA button ("Button options" > "Duplicate icon"). - There is no way to only remove the…
Steps to reproduce [17.0]:
- Go to website (in "Edit" mode) > Click on the "Contact Us" button.
- Duplicate the CTA button ("Button options" > "Duplicate icon").
- There is no way to only remove the duplicated button, and the "Header" >
"Show/Hide Button" option will disable the whole CTA container.
After the website headers redesign in [1], a new feature was added to
allow users to select the elements they want to display in the header
(social links, call to action...). The CTA section was also marked as
'oe_unremovable' which disabled the option to remove it in the editor.
When a CTA button is duplicted, the clone will also be unremovable which
makes it impossible to remove.
The goal of this commit is to prevent the duplication of CTA buttons.
It's always possible to add buttons by drag & dropping "Button" snippets
which are also removable.
Remark: Also after [1], two header navbars were added in the DOM (for
the desktop view and mobile). Which means that the CTA field is also
duplicated and every change on the CTA buttons in Desktop will be
reflected in the mobile version.
[1]: https://github.com/odoo/odoo/pull/119650
opw-3706902This update fixes an issue where customers received a "Payment is canceled due to inactivity" error when attempting multiple payments in succession. The fix ensures that timeout settings from previous payment attempts are properly cleared before starting a new payment, preventing conflicts and allowing customers to complete their transactions smoothly.
Original PR description
Before this commit ================== In certain scenarios, when a new subsequent payment was initiated after the initial payment was completed, an error message appeared stating, **Payment is canceled due to inactivity** Issue ===== Failing to remove the previous inactivity timeout before establishing a new one led to the aforementioned error. With this commit ================ Explicitly clear previous timeouts before setting a new one to prevent potential conflicts and ensure a clean timeout environment.
Fixed an issue in Spanish Point of Sale where split payments were automatically assigning a default customer instead of prompting the user to select one. Now when using split payment methods, users will be asked to choose a customer, ensuring proper invoice assignment and compliance with Spanish invoicing requirements.
Original PR description
Current behavior: When in a spanish PoS, every order needs to be invoiced. If no customer is specified, there is a default customer selected. But if the payment method is split, the default customer should not be selected. And the user should be asked for a customer. Steps to reproduce: - Install the l10n_es_pos module - Go to PoS and create a new order - Select a product and go to payment - Select split payment (Customer Account) - The default customer is selected, but you should be asked for a customer Note: To fix this we use the same behavior as in the base PoS, where the user is asked for a customer if the payment method is split. If no user is selected after being asked for a customer, the default customer is selected. If a user is selected, the user is sent back to the payment screen, as it's done in the base PoS. opw-3736293 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures that when paid orders are loaded in the Point of Sale system, their tracking numbers remain consistent with what's recorded in the backend. Previously, the system was incorrectly updating the session ID to the current session, causing a mismatch. This resolves the discrepancy so order records are now accurate across the system.
Original PR description
Before this commit, when loading paid orders, the tracking number would differ from the backend. This discrepancy was due to the fact that the `pos_session_id` was being changed to the current session. opw-3788982 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix addresses an issue where EMV QR codes were being incorrectly selected for unsupported countries on invoices. The system now properly validates that a country supports EMV QR codes before using them, preventing invalid QR code generation and ensuring currency validation is performed correctly.
Original PR description
The account_qr_code_emv module has an issue at the moment where it will only return errors in _get_error_messages_for_qr for the country the qr code is intended for. This makes sense since you want…
The account_qr_code_emv module has an issue at the moment where it will only return errors in
_get_error_messages_for_qr for the country the qr
code is intended for.
This makes sense since you want to check all countries in later versions where we have multiple of them.
But it causes an issue with the standard implementation where if you are using a country that is not supported by an EMV QR, _get_error_messages_for_qr will just return None.
This means that:
- The default QR CODE selection on the invoice that
depends on that may select EMV QR for unrelated
countries.
- If it gets selected, this method will not check
that the currency is correct for said countries.
To fix this issue, we will simply return an error
message in the common module, which will serve as a fallback once all the EMV QR methods have been checked.
Task id # 3758668
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#156840
Forward-Port-Of: odoo/odoo#154957This fix corrects an issue where inventory transfers between warehouses were incorrectly marked as "Reserved from stock" in the forecast report, even when they should be linked to replenishment transfers. The problem occurred when a product had both a Make-to-Order route and a replenishment route between warehouses. Now the forecast report accurately reflects the actual warehouse location of reserved inventory.
Original PR description
Commit c05815ae6b8bd will go through a chain a move to set the last one as "reserved from stock" if the first one is reserved even if the cahin is not completed yet. The issue is if the chain is…
Commit c05815ae6b8bd will go through a chain a move to set the last one as "reserved from stock" if the first one is reserved even if the cahin is not completed yet. The issue is if the chain is inter warehouses, a move out in a warehouse can be marked as "reserved" while the stock being reserved is actually the one of another warehouse. ### To reproduce 1. Create 2 warehouses 2. Create a stock rule (pull) and a route between the 2 stock location of those product create a product having the route MTO and the new replenish route create a delivery in the second warehouse. 3. A transfer from the two warehouse should be created and linked to the delivery Open the forecast report for the warehouse that deliver the product -> the delivery is marked as "Reserved from stock" instead of being linked to the replenish transfer. 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 Forward-Port-Of: odoo/odoo#152922 Forward-Port-Of: odoo/odoo#152322
This update fixes an issue with the course publisher test where slide channel tags were missing from test data. The fix ensures that automated tests run consistently whether or not demo data is installed, improving test reliability and preventing build failures.
Original PR description
The `course_publisher_standard` tour was missing slide (channel) tags. We are replacing values used in the tour so that the tour runs on the same data whether demo data is installed or not. See runbot build errors 55762 and 55768. Task-3744848 Forward-Port-Of: odoo/odoo#153926
This update adds a test to verify that restricted editor content is properly cached separately from public user content. This ensures a previous security fix preventing accidental sharing of restricted editor cache with public users remains effective and doesn't regress in future updates.
Original PR description
This commit is a follow-up on [1] which fixed the caching of restricted editor which was accidentally shared with public users. It introduces a test that verifies that this fix is not lost. [1]: https://github.com/odoo/odoo/commit/821888023db462d522c5d6de84fcab80a81c2713 task-3482439 Forward-Port-Of: odoo/odoo#156479
This fix ensures that completed Point of Sale orders are properly counted in product sales totals, even when they haven't been invoiced yet. Previously, when a POS session was closed without invoicing the orders, those sales would not appear in the product's sales count displayed in the Sales dashboard.
Original PR description
Current behavior: Orders from a closed pos that were not invoiced are not taken into account in the sales count (can be seen in the "Sales" smart button) Steps to reproduce: - Create a new product P1 - Sell this product in the PoS without invoicing it - Close the PoS session - Go to the "Sales" smart button of the product P1 - You will see that the sales count is not incremented opw-3726153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156320
This update simplifies how the forum module handles URL redirects for forum questions. Previously, the system tried to preserve extra parameters in URLs, which caused unnecessary complexity. Now it uses a cleaner approach that properly handles the forum and question identifiers as query parameters, making the URLs more straightforward and easier to manage.
Original PR description
Don't try to keep extra params and co. Keep it simple... Else we should pop from request.params `forum` and `blog` keys because now they are converted as query param with the slug format: /forum/help-1/question-1?forum=forum.forum(1,)&question=forum.post(1,) Forward-Port-Of: odoo/odoo#156726 Forward-Port-Of: odoo/odoo#156458
Documentation and clarification updates
A contributor has signed the Odoo Contributor License Agreement (CLA), which is a legal requirement for contributing to the Odoo project. This ensures that all contributors have formally agreed to the terms under which their code contributions are accepted and used by Odoo.
Original PR description
Sign the Odoo CLA
This update adds new members to the Adhoc Contributor License Agreement (CLA) document. The change ensures that all contributors are properly registered and authorized under the company's legal agreement framework, maintaining compliance with Odoo's contribution requirements.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154766
This pull request adds a Contributor License Agreement (CLA) signature for Gaurav Pandey, confirming their legal agreement to contribute to the Odoo project. This is a standard administrative requirement that enables the contributor to submit code changes to the repository.
Original PR description
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
Miscellaneous changes
This pull request updates the Hemesh module and related system configuration files. The changes include modifications to the Hemesh addon and adjustments to the Debian configuration to support the updated module functionality.
Original PR description
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