Daily updates from Odoo
Navigate
Branch
Thursday, September 1, 2022
33 changes
New functionality added to Odoo
Knowledge users can now insert automatic lists of child articles directly into an article, making related content easier to navigate. These lists show either direct child articles or the full article hierarchy, include clickable links, and can be refreshed when the structure changes.
Original PR description
This commit introduces commands to add your children articles' structure into your article body field through the editor. It is composed of 2 different editor commands: - /articles_structure that will only list direct children of this article - /articles_index that will list ALL children of this article The rendered layout is a simple ol/li list that gives a hierarchical view of the children articles, with clickable names that send the user to the corresponding article. It can be refreshed using a 'Update' button in our special "Knowledge Toolbar" implementation. The blocks created by those commands are currently NOT editable since that would cause issues with the way we build links. Indeed, they are themselves non-editable because they cannot be manually "reproduced" using native editor commands (such as /link or /article). Further improvements may come later to allow end-users to edit these blocks. Task-2818474
Enhancements to existing features
Knowledge users can now create private copies of restricted articles without running into access issues, while administrators can duplicate full article structures from list views. The update also adds trash handling, clearer archived-article warnings, and fixes sharing/member removal errors to reduce disruption when managing content.
Original PR description
Purpose * Allow users to create their own copies of restricted articles; * Allow admins to duplicate articles and their structure (children, members, ...); Specifications Rename "duplicate" action in…
Purpose * Allow users to create their own copies of restricted articles; * Allow admins to duplicate articles and their structure (children, members, ...); Specifications Rename "duplicate" action in the kebab menu to "Create a copy". This action creates a copy of an article in the user's Private section. It does not copy the child articles, members,... Only the name, body, cover and icon. Add a "duplicate" action in the additional actions of the list view for admin users only. Since an admin could select multiple articles in the list view, one skips the duplication of articles that are going to be duplicated during the duplication of one of their parent, so that one does not duplicate several times the same article with one click on the "duplicate" action. LINKS Task-2893614 (Knowledge: dodge access errors) Task-2919746 (Knowledge: improve copy / duplicate) Task-2850521 (Knowledge: trash management) Task-2968657 (Knowledge: fix error when removing members) Task-2968511 (Knowledge: remove unreachable links from share panel)
This change adjusts an internal performance test for the enterprise Discuss module so it matches the current expected database activity. It helps keep automated checks accurate and reliable without changing the user-facing product experience.
Original PR description
task-2664853 https://github.com/odoo/odoo/pull/98923
This update streamlines sales-related rental and subscription processes by avoiding unnecessary background recalculations and aligning with recent core sales changes. It also improves reliability when invoicing multiple subscription orders at once, reducing the chance of errors during batch operations.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/98068
Retailers can now generate customer invoices from point-of-sale tickets even after the POS session has been closed. This supports country-specific requirements such as Mexico, including customer self-service invoice requests via QR code and collection of required invoicing details.
Original PR description
Some countries, such as mexico, require a seller to be able to generate an invoices from a ticket from a sale done in a shop, even after a few days. This change aims to allow this, by allowing to create an invoice at a later date after the POS has been closed. This is done by partially reversing the POS closing entry, and then generating an invoice the same way it would be done at the POS closing. In order to make the experience more consistent for the user, we will move the user form from website_sale in account and share its logic for both website_sale and point_of_sale. Task id #2946604 Enterprise part of odoo/odoo#97675
Payment term handling for Mexican electronic invoicing has been aligned with recent changes in the main Odoo platform. This helps keep localization behavior consistent and reduces the risk of mismatches in related invoice tests and workflows.
Original PR description
[IMP] l10n_mx_edi: update the payment terms Update the payment terms after they have been changed by https://github.com/odoo/odoo/pull/91490
Electronic invoicing tax calculation logic has been centralized so it can be reused beyond its previous limited scope. This should improve consistency across localized invoicing flows in Colombia, Mexico, and Peru while reducing duplicated logic.
Original PR description
…able on any models The current taxes computation method defined in account_edi has been moved to account on account.tax to be usable on any models. community-https://github.com/odoo/odoo/pull/99401
This update aligns several Enterprise apps with improved date and time handling introduced in the core Odoo platform. It helps keep date displays and spreadsheet-related calculations consistent across modules, reducing the chance of formatting issues for users.
Original PR description
This is the enterprise counterpart of the following community pull request: odoo/odoo#98980 It only consist in adaptations due to the changes in the community repo.
The signature request wizard has been reorganized so the main screen focuses on signers and the request message. Less frequently used settings are now grouped under an options tab, making the signing flow easier to understand and faster to use.
Original PR description
Several options have been added in the Sign flow which made the wizard kind of clogged up. This commit slightly cleans the view by moving several fields to an 'options' tab, so that users can directly concentrate on the data that matters the most: who will sign, and the message attached to the signature request. Task-2964300
Appointment scheduling now offers an “anytime” option so users can share broader availability more easily, while still respecting work hours when HR scheduling is installed. Website appointment creation now uses the full standard form for better customization, with added reporting views and smoother publishing and redirection after setup.
Original PR description
Purpose ======= Give users a better experience when using the appointment, website_appointment and appointment_hr modules. Specifications =========== Changing the "work hours" appointment type to an "anytime" appointment type making it easy for the user to share a link which includes all of his available time (only during work hours if appointment_hr installed). Changing the website_appointment simplified add form by the standard form. This brings the user a better customization when creating an appointment type. Adding a pivot view to the appointment to give the user an overview. Auto-publish and redirect on the appointment when it's created from the website. Other modifications are mainly wording and views improvements. See attachment file in parent task for the complete list. Task-2900764 UPG PR: https://github.com/odoo/upgrade/pull/3705
This update makes the internal setup of Discuss channels more explicit when assigning access groups. It helps ensure messaging channel creation remains reliable and supports performance coverage in enterprise tests.
Original PR description
follow up https://github.com/odoo/odoo/pull/94510/commits/64d01d43a0f69c29cb9ad900c7aaa6ae00d8b4e4 task-2893661
This update makes several Helpdesk screens and workflows clearer for users, including ticket status indicators, search layout, onboarding messaging, and lead creation notes. It also simplifies how closed tickets are identified and improves refund defaults to avoid selecting already fully refunded invoices.
Original PR description
Purpose of the commit is to do the generic UI improvements for the helpdesk. task-2869771
The online store can now automatically email customers who leave items in their cart, helping recover missed sales. This update also covers rental products with stock checks, so reminders stay aligned with product availability.
Original PR description
see https://github.com/odoo/odoo/pull/98100
The VoIP calling screens were visually refreshed and made more consistent with the broader Odoo interface. This improves the user experience while supporting the wider version 16 styling cleanup.
Original PR description
This commit simplifies the component's SCSS improving bootstrap's integration. Design was improved for consistency. Part of the overall v16 SCSS optimization/restyle task-2943593
Resolved issues and error corrections
The Belgian Intrastat XML export button has been corrected so users can export reports without encountering an access error. This restores the expected export workflow for Belgian reporting and avoids manual workarounds.
Original PR description
Currently, using the xml export button on the Belgian results in an access error because the function it is attempting to call is a private method. The fix removes the underscore from the begining of the method and updates the name of the function in the place where it is called.
A bug in the Documents search panel was fixed after an internal service change caused an error in some searches. This helps users browse and filter documents without encountering an unexpected crash.
Original PR description
The API of the orm_service got changed during the development of the documents B2B, unfortunately it made one of the function cause a traceback. This was uncaught since the call is mocked during the tests and does not do the exact same error checking as the python server.
This fixes the load order for a Studio list view adjustment so it is applied at the right time. It helps prevent inconsistent behavior in list views when Studio customizations are active.
The Accounting Dashboard upload buttons now work again after being disabled during a recent interface migration. This lets users upload bank statements and related accounting files directly from the dashboard as expected.
Original PR description
OWL disables view buttons that are missing attributes. These buttons used legacy javascript, and were omitted from the accounting owl migration. Activate those buttons.
This fixes an issue where an unexpected track button could appear instead of the event stage in the event planning view. The change ensures the correct field is targeted so event organizers see the intended stage information in the right place.
Original PR description
Currently, the strange track button appears instead of the stage in the event. This is because the "website_event_track model" had only one track_count field before commit1, but after commit1, the "mass_mailing_event_track" model added a "track_count" field before the stage of the event view. As a result, the "website_event_track_gantt" model event view will not find the correct position if it tries to replace the fields with track_count. This commit solves the above problem by targeting the track_count field inside the "sheet" of the parent view. commit1 - https://github.com/odoo/odoo/commit/0501bbd62e517f6c215d9e7e36d61747c7f5816b task-2964291
Features or functions removed from Odoo
The Timesheet app download area no longer generates QR codes for the App Store and Google Play. Users can still access the mobile app through the direct download link, simplifying the page and removing unnecessary custom code.
Original PR description
This commit removes all custom codes to create a QRCode to get the link of the Timesheet Awesome App, the link is sufficient to download the mobile app.
In the recent merge cfbadd5 of account_intrastat_expiry into account intrastat, the i18n translation terms were not removed. This branch deletes the file so that the account_intrastat_expiry can be removed.
Original PR description
In the recent merge cfbadd5 of account_intrastat_expiry into account intrastat, the i18n translation terms were not removed. This branch deletes the file so that the account_intrastat_expiry can be removed.
Code cleanup and technical improvements
Odoo Studio now uses the standard lazy-loading approach to load its interface instead of a custom workaround. This is an internal cleanup that should make the Studio code easier to maintain without changing the user experience.
Original PR description
This commit replaces the ugly hack of the studio action loader (an action that loads a bundle that replaces the action in the action registry) with the a lazy loading component that's designed to lazy-load bundles.
Spreadsheet global filter data is now updated through the standard migration process instead of during import. This keeps imports cleaner and helps ensure older spreadsheet data is handled consistently when systems are upgraded.
Original PR description
With this commit, the process to migrate data of global filters is located in the migration process instead of the import process. Task-id 2969578
This update simplifies how appointment-related search behavior is configured behind the scenes. It should make future maintenance easier without changing how users book or manage appointments.
Original PR description
**Purpose** Extend a data structure instead of overriding a method. See details in community PR. Task-2957361 See odoo/odoo#98423
The manufacturing product lifecycle management screens have been updated as part of a broader interface modernization. This keeps existing actions, such as update quantity and notification buttons, aligned with the newer Odoo web framework for better long-term maintainability.
Original PR description
Part of mrp_plm conversion to OWL : - Updates `plm_toaster_button` widget. - Updates `plm_upd_qty` field widget. Task-2885757
The IoT-related delivery, quality, and device screens were updated to Odoo's newer interface framework, improving maintainability and consistency. Device communication was also reorganized to use a newer controller while keeping older compatibility where still needed, reducing future upgrade risk without changing core business workflows.
Original PR description
- Convert delivery_iot_notification_service to the new service API.
- Convert the following fields to wowl:
- field_many2one_iot_scale
- iot_device_value_display
- iot_download_logs
- box_kanban_view
- box_list_view
- iot_device_form
- iot_measure
- iot_picture
- Introduce DeviceController that uses the iot_longpolling service,
not the wrapped version.
- It supposed to replace DeviceProxy but some code is still
dependent to DeviceProxy so it was not removed.
- Future TODO: Remove DeviceProxy when legacy env is replaced in pos.Miscellaneous changes
Side effect of recent commit [1]. An asset can have original_move_line_ids linked to several moves. This was not handled properly in the mentioned commit as a singleton error was raised. We should adapt it by mapping is_negative_asset to 'debit' in case any of the moves is of type 'in_refund' instead. [1]:https://github.com/odoo/enterprise/commit/99f84c4991e0bdd4f4a8073fedf715304c456496 opw-2966795 Forward-Port-Of: odoo/enterprise#30945 Forward-Port-Of: odoo/enterprise#30847
Original PR description
Side effect of recent commit [1]. An asset can have original_move_line_ids linked to several moves. This was not handled properly in the mentioned commit as a singleton error was raised. We should adapt it by mapping is_negative_asset to 'debit' in case any of the moves is of type 'in_refund' instead. [1]:https://github.com/odoo/enterprise/commit/99f84c4991e0bdd4f4a8073fedf715304c456496 opw-2966795 Forward-Port-Of: odoo/enterprise#30945 Forward-Port-Of: odoo/enterprise#30847
… account Currently, if a YouTube account is not linked with a channel, trying to add YouTube social account throws a traceback. This PR improves the behavior and displays 'SocialValidationException' explaining user what went wrong. taskID-2857845 Forward-Port-Of: odoo/enterprise#28837
Original PR description
… account Currently, if a YouTube account is not linked with a channel, trying to add YouTube social account throws a traceback. This PR improves the behavior and displays 'SocialValidationException' explaining user what went wrong. taskID-2857845 Forward-Port-Of: odoo/enterprise#28837
The Depreciation Schedule Report was not well displayed in case of negative asset. Let's assume a normal asset for 5 months, linear method, 500$ value and date today - 2 months (04-16-22), confirm and validate. -> 5 depreciation moves, the 2 first moves being posted. The Report looks like this | 01/01/2022 | + | - | 12/32/2022 | 01/01/2022 | + | - | 12/31/2022 | | |------------|----------|--------|------------|------------|----------|--------|------
Original PR description
The Depreciation Schedule Report was not well displayed in case of negative asset. Let's assume a normal asset for 5 months, linear method, 500$ value and date today - 2 months (04-16-22), confirm…
The Depreciation Schedule Report was not well displayed in case of negative asset. Let's assume a normal asset for 5 months, linear method, 500$ value and date today - 2 months (04-16-22), confirm and validate. -> 5 depreciation moves, the 2 first moves being posted. The Report looks like this | 01/01/2022 | + | - | 12/32/2022 | 01/01/2022 | + | - | 12/31/2022 | | |------------|----------|--------|------------|------------|----------|--------|------------|------------| | $ 0.00 | $ 500.00 | $ 0.00 | $ 500.00 | $ 0.00 | $ 200.00 | $ 0.00 | $ 200.00 | $ 300.00 | Now, let's assume a negative asset in the same conditions (method, duration, acquisition date), confirm and validate. Go to the Report -> the line for negative asset is displayed the same way as the positive one, it should be displayed this way | 01/01/2022 | + | - | 12/32/2022 | 01/01/2022 | + | - | 12/31/2022 | | |------------|---------|----------|------------|------------|--------|----------|------------|-----------| | $ 0.00 | $ 0.00 | $ 500.00 | $ -500.00 | $ 0.00 | $ 0.00 | $ 200.00 | $ -200.00 | $ -300.00 | The display when asset is closed is wrong too. With this commit, we check if the asset comes from a refund, if so, we recompute columns in the right way. opw-2848330 Forward-Port-Of: odoo/enterprise#30938 Forward-Port-Of: odoo/enterprise#28476
When refreshing availabilities with new information, the loading spinner was not removed. Forward-Port-Of: odoo/enterprise#30937 Forward-Port-Of: odoo/enterprise#30927
Original PR description
When refreshing availabilities with new information, the loading spinner was not removed. Forward-Port-Of: odoo/enterprise#30937 Forward-Port-Of: odoo/enterprise#30927
Before this commit: Trying to generate a SAF-T report from the General Ledger (Norway) produces a traceback when there are account_move_lines in another currency than the company main currency. After this commit: Lines of the SAF-T report with a different currency than the company main currency are correctly generated. OPW-2959672 Forward-Port-Of: odoo/enterprise#30873
Original PR description
Before this commit: Trying to generate a SAF-T report from the General Ledger (Norway) produces a traceback when there are account_move_lines in another currency than the company main currency. After this commit: Lines of the SAF-T report with a different currency than the company main currency are correctly generated. OPW-2959672 Forward-Port-Of: odoo/enterprise#30873
Side effect of recent commit [1]. An asset can have original_move_line_ids linked to several moves. This was not handled properly in the mentioned commit as a singleton error was raised. We should adapt it by mapping field to 'debit' in case any of the moves is of type 'in_refund' instead. [1]:https://github.com/odoo/enterprise/commit/10c7711412d2a0b7eedc3eea512ed1424ed031eb opw-2965038 opw-2965718 opw-2965722 opw-2965446 opw-2965498 opw-2965701 Forward-Port-Of: odoo/enterprise
Original PR description
Side effect of recent commit [1]. An asset can have original_move_line_ids linked to several moves. This was not handled properly in the mentioned commit as a singleton error was raised. We should adapt it by mapping field to 'debit' in case any of the moves is of type 'in_refund' instead. [1]:https://github.com/odoo/enterprise/commit/10c7711412d2a0b7eedc3eea512ed1424ed031eb opw-2965038 opw-2965718 opw-2965722 opw-2965446 opw-2965498 opw-2965701 Forward-Port-Of: odoo/enterprise#30934 Forward-Port-Of: odoo/enterprise#30845
Bug: ProjectTaskRecurrence._get_next_recurring_dates() has a param start_date, which is the return value of Task._get_recurrence_start_date(). If the recurrence is in months, start_date is compared with repeat_until, which is a date. As Task.planned_date_begin is a datetime, it crashes. Fix: Return planned_date_begin.date() Forward-Port-Of: odoo/enterprise#30899
Original PR description
Bug: ProjectTaskRecurrence._get_next_recurring_dates() has a param start_date, which is the return value of Task._get_recurrence_start_date(). If the recurrence is in months, start_date is compared with repeat_until, which is a date. As Task.planned_date_begin is a datetime, it crashes. Fix: Return planned_date_begin.date() Forward-Port-Of: odoo/enterprise#30899