Monday, October 16, 2023
17 changes · master
Enhancements to existing features
The live chat code has been reorganized into clearer bundles so each context only loads what it needs. This should reduce duplication, make maintenance easier, and support more reliable live chat behavior across Odoo pages and external support pages.
Original PR description
This commit improves the live chat bundles: - `core` - `common`: hold files that are common to every feature - `web` - `embed`: hold files for the embed live chat and is splitted in 4 sub-bundles: - `common` - `frontend`: should only be added in the Odoo frontend. - `external`: should only be added outside of Odoo environment (e.g. support page). - `cors`: should only be added when the live chat is requested from a different origin. This will make live chat folder structure closer than the one used in mail and avoid code duplication. task-3537697
Customers using kiosk or mobile ordering now see a clearer confirmation page with their tracking number, paid amount, and table when applicable. Restaurant staff also return to the correct floor plan when going back from a table, and floor buttons now show order numbers, reducing confusion during service.
Original PR description
*: pos_self_order,pos_online_payment_self_order,pos_restaurant Commit 1: Before, when ordering on the kiosk/mobile, no confirmation page was displayed, only a notification. Now, a confirmation page…
*: pos_self_order,pos_online_payment_self_order,pos_restaurant Commit 1: Before, when ordering on the kiosk/mobile, no confirmation page was displayed, only a notification. Now, a confirmation page displays the tracking number, the amount paid and, if present, the customer's table.. --- Commit 2: The problem is that a mandatory field from the sale module has been added to the ProductAttributeCustomValue template, but in point of sale we also use this model without necessarily filling this field. Previously, the sale module was the only module to use the ProductAttributeCustomValue model (product.attribute.custom.value). In the override, a field set to mandatory has been added "sale_order_line_id", a relationship between the sale.order.line model and product.attribute.custom.value. We now remove the mandatory parameter from this field so that we can create new data without getting an error indicating that a mandatory field is missing. This has no impact on the operation of the Sale module as this field will be populated anyway, since the only way to create a record of this type is via a sale_order_line or a pos_order_line. --- Previously, when a table was selected on a floor plan other than the first, clicking on back brought you to the first floor plan, not the one of the previously selected table. Now, when you click on the back button, you return to the floor plan corresponding to the previous table. Also, the order number is now displayed on the floor screen button. 
German invoices now include a delivery date in the invoice header and on printed invoice documents. This helps businesses meet German legal invoicing requirements more consistently.
Original PR description
Delivery dates on invoices are a legal requirement on germany. It needs to be displayed on the header of the form view and will be displayed on the printed invoices. Task-id: 3383318
The status bar now automatically adjusts how stages are shown based on available space, while keeping the current stage visible. This makes workflow progress easier to read and use across different screen sizes without switching between separate display modes.
Original PR description
Before this commit, the status bar field could be displayed in 2 ways: - in small screens: as a dropdown - in larger screens: as an inline list of buttons This commit centralizes both of these approaches into a dynamic display that fits the available space: - the current stage is always displayed; - previous stages are displayed behind or contained in a dropdown if not enough space; - next stages are displayed behind or contained in a dropdown if not enough space. Task [3336856](https://www.odoo.com/web#id=3336856&cids=1&menu_id=4720&action=333&active_id=133&model=project.task&view_type=form) Enterprise: https://github.com/odoo/enterprise/pull/48706 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
HR users can now access and manage employee skills more easily, with skills installed by default in HR and clearer actions for viewing skill history. The update also adds demo data and smoother skill entry flows, helping teams showcase and use skills information more effectively.
Original PR description
UX changes to improve the visibility of skills related features in hr applications: - install skills by default with HR - custom button for skills history - new skills demo data task 3334909
Users can now start installing the Odoo web app directly from a notification in the messaging area. This makes app installation easier to discover, with tailored guidance for Apple devices where the standard install prompt is unavailable.
Original PR description
The NotificationItem component has been modified to support a new slot allowing to display some content at the right of the notification item. It is used in this commit to display an additional 'Install button', inviting the user to click on the notification. Note that the entire notification is still clickable, it is only a visual indicator. Once the notification is clicked, the installation process is triggered: - In case the system supports the native installation prompt, we now display it, and the user is free to install the PWA from there. - On Apple devices, a custom popup^is displayed to the user, explaining the steps to install the website as an application, since iOS and macOS don't support a native prompt, and won't be using one anytime soon, since it's a design decision from their side. task-3275275
Leads created from website event registrations now keep the visitor's language and visitor link when generated by lead rules. This helps teams follow up with event prospects in the right language and with better visitor context.
Original PR description
POC for setting current language on website_visitor --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now manually check Peppol invoice statuses and fetch incoming Peppol bills directly from the accounting dashboard. This reduces reliance on twice-daily automated checks and gives businesses more timely visibility into electronic invoicing activity.
Original PR description
Problem --------- User want to verify (when he want) if he has bills on Peppol and the status of his customer invoices. Currently, the only option is wait for a cron that runs twice a day. Objective…
Problem --------- User want to verify (when he want) if he has bills on Peppol and the status of his customer invoices. Currently, the only option is wait for a cron that runs twice a day. Objective --------- - Add a button in the Kanban card of the customer invoices that updates the status of invoice send by Peppol. - Add a button in the Kanban card of the incoming journal that fetches received bills on the Peppol network. Solution --------- This commits does several things in order to achieve the objective: - Seperate the peppol cron functions into business action and cron function - Add an interface on the journals so that they can call the peppol business functions - Add an inverse function that resets the journal `is_peppol_journal` to False and sets that field to True on the relevant journal. - Add a related field that checks whether the company has peppol active - Add the buttons on the Kandan Dashboard view that call the relevant business function thanks to the interface. It filters the edi users on the target companies so that only the target companies are updated when a button is pressed and not all companies. task-3531222 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The status bar now automatically adjusts how stages are shown based on available screen space, keeping the current stage visible while grouping other stages when needed. This makes navigation clearer and more consistent across different screen sizes, with related Studio tests updated to reflect the behavior.
Original PR description
Before this commit, the status bar field could be displayed in 2 ways: - in small screens: as a dropdown - in larger screens: as an inline list of buttons This commit centralizes both of these approaches into a dynamic display that fits the available space: - the current stage is always displayed; - previous stages are displayed behind or contained in a dropdown if not enough space; - next stages are displayed behind or contained in a dropdown if not enough space. Task 3336856 Community: https://github.com/odoo/odoo/pull/124267
Employee skills are now easier to view and add during appraisals, with the appraisal skill entry experience aligned with regular employee skill management. This helps HR teams capture skill information more consistently and with fewer workflow differences.
Original PR description
Correct xpath after change in community. add form view so that the add behavior is the same as on employee skills. see odoo/odoo#122509 task 3334909
Helpdesk teams can now present and manage linked eLearning courses more clearly. Course pages show which helpdesk teams use them, and website search results include richer course details like ratings and duration to help customers find relevant learning content faster.
Original PR description
This PR aims to improve the e-learning integration in helpdesk, by bringing the following changes: - Improve the description of the feature in the helpdesk team settings. - Add a stat button on courses for helpdesk teams that use them. - Add more information to the course search results in the web search. Task-3475461
Resolved issues and error corrections
Users can now move personal tasks between stages by dragging and dropping them in My Tasks. This fixes an error that prevented the stage change from being saved, improving day-to-day task management reliability.
Original PR description
**Steps to reproduce:** --- - Project -> Tasks -> My Tasks - try changing task stage by dragging and dropping task to another stage. **Issue:** --- The expected behavior was to change the stage when changing task stage by dragging and dropping to another stage. but The stage is not being changed. **Cause:** --- The for loop inside function `_preprocessX2manyChanges` was expecting an Array from the `value` but It wasn't getting an Array. The reason was the `_update` function in the project. Where one edge case was missing. and it was producing traceback. **Fix:** --- The condition for handling the edge case is added. It will check whether the `value` is an Array. **PPR Note**-i think this commit effected- https://github.com/odoo/odoo/commit/4bf77b9ef18f49e409af904334f4dfab88db3cf0 task:3519453
Code cleanup and technical improvements
Common tax calculation logic has been moved into shared external tax modules so Avalara and Brazil tax integrations no longer duplicate the same plumbing. This makes future tax service integrations easier to maintain while preserving the existing customer-facing tax calculation triggers for quotes, invoices, and payment flows.
Original PR description
This fixes an issue where reducing a sales or purchase order after a partial delivery or receipt without a backorder could incorrectly create an extra return or delivery for the remaining quantity. Businesses get more accurate inventory flows and avoid unnecessary warehouse operations.
Original PR description
Case: - create an SO for 3 units of product A - validate and open the delivery picking - put 2 in quantity done, validate - do NOT create a backorder - return on the SO, put 2 in ordered quantity field - save Issue: a return picking is create for the 1 unit that was removed from the SO Before, product_uom_qty was changed on stock move at validation to match quantity_done. Now it stays the same so another value has to be used in _get_qty_procurement for 'done' stock moves. This fix ensures that the correct quantity is used depending on the state of the stock move. With that, the float_compare in _action_launch_stock_rule will correctly redirect to continue if necessary. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes cases where Point of Sale demo or onboarding data could not be loaded after deleting the default setup or archiving previously loaded products. Businesses setting up or reconfiguring POS and restaurant POS can now restart onboarding more reliably without manual cleanup.
Original PR description
In this commit 2 issues are fixed. The first issue is when trying to load demo data when the default pos configs are deleted. The second is when trying to reload onboarding data when the products are…
In this commit 2 issues are fixed. The first issue is when trying to load demo data when the default pos configs are deleted. The second is when trying to reload onboarding data when the products are already loaded but archived (task-3539455). steps to reproduce the first issue: - load db without demo data - delete pos created by default - create a new pos config - open and try to load demo data steps to reproduce the second issue: - load db without demo data - open pos and load demo data - archive products - open pos and try to load demo data changes: - main pos config demo data has been separated from onboarding data. - condition has been added in the search count of _pos_has_valid_product method to check for archived products. Enterprise PR: https://github.com/odoo/enterprise/pull/48621 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 fixes a live chat issue that could trigger server errors when a visitor's chat session became outdated after logging in and out. Users should now be able to reload website pages with live chat more reliably, avoiding disruptive errors in that flow.
Original PR description
This PR fixes two issues: - Incorrect write on `channel_member_ids` (trying to link guest instead of channel member) - Incorrect condition in `livechatService.leaveSession` that relies on the live chat to be initialized while it can acutally be called before if the current session is outdated. This could result in server errors in the following scenario: - Open a live chat - Log in - Open a live chat from the website app - Log out
Restaurant preparation display demo data can now be loaded after the default point of sale setup is removed or when previously loaded products were archived. This helps users complete onboarding reliably when setting up or retrying restaurant point of sale configurations.
Original PR description
In this commit 2 issues are fixed. The first issue is when trying to load demo data when the default pos configs are deleted. The second is when trying to reload onboarding data when the products are already loaded but archived. steps to reproduce the first issue: - load db without demo data - delete pos created by default - create a new pos config - open and try to load demo data steps to reproduce the second issue: - load db without demo data - open pos and load demo data - archive products - open pos and try to load demo data changes: - adapt pos_restaurant_preparation_display to the separation of demo data introduced in the community branch. Community PR: https://github.com/odoo/odoo/pull/138035
This commit introduces *external_tax* modules to gather common code in account_avatax* and l10n_br_avatax*. When l10n_br_avatax* was developed some of the code in account_avatax was duplicated.…
This commit introduces *external_tax* modules to gather common code in account_avatax* and l10n_br_avatax*. When l10n_br_avatax* was developed some of the code in account_avatax was duplicated. Concretely this module contains: - triggers that cause a tax computation, apart from manual calculation taxes will be calculated in situations where an end customer is viewing a record (e.g. a quote sent via email) and/or has the opportunity to pay (e.g. /my/quote) - code to set tax amounts on records that support tax calculation (sale.order and account.move at the moment) - filters that help integrations determine on which records tax should be calculated Tax integration modules can now be focused on building and processing requests to external tax calculation services, and don’t need to be concerned with these low-level mechanisms anymore. In order to implement a new service the account.external.tax.mixin can be inherited on models that need tax calculation (typically sale.order and account.move). - _compute_is_tax_computed_externally() should be overridden to return True when appropriate - _get_external_taxes() will be called when appropriate and is the main entry point that should launch the external tax calculation process - _get_line_data_for_external_taxes() should be implemented to return data needed for tax calculation for that particular model - _get_date_for_external_taxes() should be overridden to return the date on which tax calculation should be based Other optional hooks are provided for uncommitting and voiding. Upgrade PR: odoo/upgrade#5151