Daily updates from Odoo
Tuesday, September 24, 2024
32 changes · master
New functionality added to Odoo
This change appears to add a new approval hierarchy view in Odoo Studio, helping users better visualize and manage approval flows. It matters because business teams can more easily understand who approves what and how approval chains are structured.
Enhancements to existing features
Online delivery orders can now include additional charges, making totals more accurate for customers and restaurants. The update also adds automatic order acceptance and fixes tax calculations when multiple delivery providers are installed.
Original PR description
Before this commit: === - Delivery orders did not support charges. After this commit: === - Delivery orders now support charges. Additional Improvements: === - Automatic accept of delivery orders has been added. Fix: === - Resolved tax issue when multiple modules (e.g., pos_urban_piper_zomato, pos_urban_piper_ubereats) are installed, ensuring correct tax calculation per provider.
The lock date wizard has been adjusted so exception settings are visually and textually separated from the hard lock date. This reduces confusion for accounting users and makes the labels easier to translate consistently.
Original PR description
- Putting the exception section after the hard lock date field gave the impression the exception was also applicable to the hard lock date, while it isn't. We also add a little indent to it, so that it can be better distinguished from the other settings - Rephrase the exception section a little bit and put more words into the label of selection fields to simplify translation.
Businesses can now start a return before the original stock transfer is validated and add extra products to that return. When the transfer is tied to a sales order, those added products are recorded as negative quantities, helping teams manage reusable packaging such as crates or containers in food and beverage operations.
Original PR description
Possibility to make a return from a picking before the validation. If the picking is linked to a sales order, adding new product in the return will add them into the sales order with a negative quantity. This will be mainly used in food and beverage business to handle reusable packaging. task: 4191982
Spreadsheet pivot tables now show day-level date headers in a clearer format, such as 01 Jan 2021 instead of locale-dependent numeric dates. This makes reports easier to read and compare across users and regions.
Original PR description
Improve the format of headers with the day granularity in the pivot, from the locale's date format (e.g. `1/1/2021`) to `dd mmm yyyy` (e.g. `01 Jan 2021`). Task: [3613511](https://www.odoo.com/web#id=3613511&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Inventory and manufacturing dashboards have been updated and reordered so teams can find the most relevant operational information faster. Standard inventory users can now access the Warehouse daily operations dashboard, improving day-to-day visibility without extra permissions.
Original PR description
[[IMP] spreadsheet_dashboard_mrp_account: Update Manufacturing dashboard](https://github.com/odoo/enterprise/commit/3486ab395fbfa69c9f05d3c6219319567a616372) & [[IMP] spreadsheet_dashboard/*: Re-order stock dashboards](https://github.com/odoo/enterprise/commit/ce0e3d9732b41fb7fb90353ced92a7b84e562e09)
Businesses can now publish and accept bookings for anytime and custom appointment types, making these options work like other appointment categories. The update also improves invitation and website snippet availability, adjusts related screens, and simplifies publishing behavior for a smoother setup experience.
Original PR description
-This PR allows 'anytime' and 'custom' appointments to publish and book like other appointments. -Remove default filters and domain. -Some UI changes -Remove unnecessary computation for the 'is_published' field. Task-3919395
Users can now display trend lines on Odoo spreadsheet bar and line charts, making it easier to spot patterns in business data. The option applies consistently across all data series in a chart, providing clearer visual analysis without complex per-series setup.
Original PR description
## Task Description This task adds the possibility to display trending lines for odoo bar/line charts. As we are not able to customize each data series (like in o-spreadsheet), we have here a global options to allows the trending line for each data series with the same parameters. ## Related Tasks/PR - Task: 3997500 - https://github.com/odoo/odoo/pull/175366 - https://github.com/odoo/o-spreadsheet/pull/4747
Aged Receivable and Aged Payable reports now hide the currency and account columns by default, reducing visual clutter. Users can still enable these details when needed, making routine review easier while preserving access to supporting information.
Original PR description
To simplify the Aged Receivable/Payable reports, we hide the currency and account columns by default. No Task - FP
This update adds missing web path definitions across Helpdesk, Field Service, Planning, Forecasting, and related sales planning screens. It makes navigation links more consistent and shareable, helping users land on the right views when moving between apps or opening saved URLs.
Original PR description
_*=industry_fsm, industry_fsm_sale, industry_fsm _report, planing, project_forecast ,project_timesheet_forecast, sale_planning after this commit: added path for that so many missing actions Consider the following example with multiple actions: - the default kanban view for project - the project update of the project with id "2" These actions would generate the following path segments respectively: - /project (the default action for project, no res_id or active_id) - 2/project-update (the project update for project 2: no res_id, active_id=2) This would generate the following url: /odoo/project/2/project-update For instance, in both the project and field service modules, the same action is called for activity types. For accessing activity types in the project module the path is straightforward: odoo/project-activity-types However, to access activity types in the field service module, use the following path: odoo/field-service/project-activity-types task-3816177
Spreadsheet dashboard filters can now limit which related records users may choose, such as restricting a product filter to only relevant products or categories. This helps keep dashboards easier to use and reduces the chance of selecting values that do not make sense for a given report.
Helpdesk ticket descriptions now expand to use more available space on the form, making longer details easier to read and edit. A related Knowledge app loading issue was also adjusted so knowledge article search remains available on customized forms.
Original PR description
Before this commit, the description field displayed in the form view of `helpdesk.ticket` just has a standard height instead of directly taking the most available spaces as it is the case in the form view of `project.task` model. This commit uses the form view with html expander for the form view of `helpdesk.ticket` model to have the same behavior then the html field displayed in the form view. That is, compute the height of the description field to take the highest height possible. task-3258533
Mexican electronic invoice (CFDI) information is now visible in list views for all accounting documents, including vendor bills, not just customer invoices. Payment records also show the fiscal folio, making it easier for finance teams to identify and reconcile CFDI-related transactions.
Original PR description
Allow viewing CFDI information in the list view for all account moves, not only outgoing invoices. Also, display the fiscal folio as part of the CFDI information in payments.
Kanban card footers now use a slightly smaller default text size across many Odoo apps. This creates a more consistent, compact layout and removes the need for repeated view-specific styling.
Original PR description
Before this commit, the default font size for kanban footers was 1rem. A lot of kanban views overruled it by using classname `fs-6`. This commit changes the default font-size to .875rem (which is `fs-6`) which allows to remove the classname from a lot of archs.
Belgian payroll now lets HR mark when a sick leave is a relapse of a previous illness where legal conditions apply. This helps ensure long-term sickness handling and payroll calculations better align with Belgian requirements.
Original PR description
Added a field to mark a sick leave as a relapse(or not) of a previous sick leave when certain conditions are met to align with Belgian law. task-3877927
Subscription customers will no longer receive two separate emails when an invoice is created after a successful payment. The change keeps the plan-specific email as the main communication, reducing customer confusion and unnecessary notifications.
Original PR description
Before this commit, two mails were sent when invoices are created: 1) the mail template saved on the plan 2) the "Payment Success and invoice" template sent when the payment.transaction goes into the 'done' state.
Resolved issues and error corrections
Uploading vendor bills with OCR now correctly completes the automatic posting step after the bill details are refreshed. This prevents bills from being incorrectly treated as manually changed, reducing follow-up work and keeping invoice processing smoother.
Original PR description
When uploading a bill and using the OCR, autoposting of the bill is broken. This is because when clicking the "Refresh" button, the OCR updates the values of the bill therefore `is_manually_modified` is set to `True`. Adding the context key `is_manually_modified` to the `_check_ocr_status` fixes this. Also, after filling all fields with the OCR, we now automatically post the bill using the helper method `_autopost_bill` of `account.move`. task-id: none Community PR: https://github.com/odoo/odoo/pull/180184
Approval rules now better distinguish directly assigned approvers from people added through delegation, preventing delegated approvals from unintentionally replacing or expiring the original approver list. Notifications and tracking around approval groups, approver changes, and kanban delegation are also clearer, helping teams manage approval responsibilities with more confidence.
The financial budget menu item is no longer limited to debug mode, making it available through the normal interface as intended. This fixes an unnecessary access restriction that could prevent business users from finding budgeting options.
Original PR description
The aim of this commit is removing the debug mode on the financial budget menu item. It was introduced by this commit [[1]], and finally we don't want that. no task id [1]: https://github.com/odoo/enterprise/commit/d96b46bc9d17e279c5d4094270c61e610e09ef36
The room booking page has been corrected so it once again fills the available vertical space. This improves the user experience by preventing the page from appearing visually constrained or incorrectly sized.
Original PR description
Purpose: -------- Currently, the room frontend view no longer occupies the full vertical space of the page. This issue was introduced by [1]. To fix this issue, the wrapper element (`div#wrapwrap`) is removed from the room frontend view. This simplifies the DOM structure and allows the main container to take the full available space. [1]: https://github.com/odoo/odoo/pull/98429 Task-4207291
Point of Sale sessions in Belgium now always load the special products needed for enabled features such as tips or discounts, even when a database has more than 20,000 products. This prevents missing functionality during session startup for large product catalogs.
Original PR description
Steps to reproduce : -------------------------- - Install point_of_sale - Enable some special functionalities (ex. tip, discount etc) - Open session with lots of products. (More than loading limit 20,000) Issue : --------- Sometimes the special products required to smoothly run all functionalities enabled are not loaded. Cause : ---------- We have set a limit of 20,000 and if the special product is not in those products it won't be loaded. Fix : ----- Now we ensured that all special products must be loaded without the interference of the products loading limit and no need to apply domain on those 20,000 products so removed _get_available_product_domain() function. Related PR: https://github.com/odoo/odoo/pull/175796 task: 4072726
Field Service mobile task views now better preserve navigation context, so users can move between tasks and return from signed reports without losing the correct menus or simplified layout. The update also keeps the project field hidden when only one Field Service project exists and clarifies the phone field on mobile.
Original PR description
## [FIX] industry_fsm: hide project in form view if only 1 fsm project exists Before this commit, the project in the form view is no longer hidden in mobile in My Tasks of Field Services due to some…
## [FIX] industry_fsm: hide project in form view if only 1 fsm project exists
Before this commit, the project in the form view is no longer hidden in
mobile in My Tasks of Field Services due to some changes in the form
view of tasks.
This commit updates the form view to make sure to project field is
correctly hidden in mobile when there is only one fsm project.
This commit also adds a placeholder to partner_phone to make sure the
user knows which field it is in mobile view since its label is not
displayed in mobile view.
## [IMP] industry_fsm{_report}: make sure to keep the right context for pager
Before this commit, when the user is in mobile and go to field service
app and click on a task in the kanban view, he cannot use the pager in
the form view, because a new action is called and the action does not
have the active_ids, that is the records displayed in the kanban view.
This commit makes sure the action called to open a simplified form view
in mobile get the active_ids to be able to use the pager.
## [FIX] industry_fsm: make sure to go to backend with the right action
Before this commit, when the user goes to fsm task, start a timer and
stop it and then sign report. The user will go to the portal view, if he
clicks on the button to go back to the backend view, he first no longer
have tags, SO, project, ... fields hidden if he was in mobile view.
Second, he has no longer the different menus available in the mobile dashboard
or the menu bar in desktop.
This commit makes sure to load the main action to correctly get the
different menu in FSM when the user goes back to the backend view.
task-4189791When creating a field service task, users now receive a warning if the assigned person is unavailable during the selected dates. This helps planners avoid assigning work to people who are on leave, matching the behavior already available in the planning app.
Original PR description
Steps to reproduce: 1- Field service app > planning by user 2- Open form to create a new task 3- Choose a user and dates where the user is off => No warning displayed like in planning app Source: On creation, self.user_ids = res.users(<NewId origin=1>,). Accessing self.user_ids.employee_id returns empty record Solution: Accessing self.user_ids._origin.employee_id task-3965161
A tax report could fail because one value was handled in the wrong format during calculation. The fix ensures the value is converted correctly so the report can complete as expected.
Original PR description
We were trying to divide a float by a string. We make sure that the string `net_value` is converted to a float.
Code cleanup and technical improvements
This update removes redundant internal data access from Sign kanban views because the same information is already available through the standard context. It helps simplify the way Sign cards are rendered without changing the user experience.
Original PR description
Keys of the user_context are available in the context, so having the user_context available in kanban archs is redundant. There was only 2 usecases, both in sign. This commit removes them such that we can simplify the rendering context of kanban cards by removing the user_context from it. Part of task~3992107
Miscellaneous changes
To reproduce the issue: 1. Create a horizontal group, grouping on "Company" field with a domain matching everything 2. Assign that horizontal group to the Balance Sheet 3. With all the companies active in the selector, open the Balance Sheet 4. Enable the horizontal group ; this should display the column groups accordingly 5. Select a line with non-null values in more than one company; click on the amount displayed in one company's column in order to audit it =====> The tree view that
Original PR description
To reproduce the issue: 1. Create a horizontal group, grouping on "Company" field with a domain matching everything 2. Assign that horizontal group to the Balance Sheet 3. With all the companies active in the selector, open the Balance Sheet 4. Enable the horizontal group ; this should display the column groups accordingly 5. Select a line with non-null values in more than one company; click on the amount displayed in one company's column in order to audit it =====> The tree view that opens also displays lines from other companies; not only the one corresponding to the group we're auditing. It's wrong. This is due to the fact the 'forced_domain' key of the options is added to the result of _get_options_domain() only in _query_get(). The audit does not call _query_get(), and hence never uses the forced domain. We fix it by now simply doing everything in _get_options_domain() directly. Forward-Port-Of: odoo/enterprise#70502
### Steps to reproduce: - In the settings enable: Rental Transfers - Create a storable non-rentable product tracked by Serial Number - Register 1 Serial Number in stock say SN001 - Create a rental order for 1 unit of your non-rentble product - Add a lot on your rental order line ### > Traceback: `leaving_move_line.move_id.sale_line_id.return_date <= line.reservation_begin TypeError: '<=' not supported between instances of 'datetime.datetime' and 'bool'` ### Cause of the Issue: S
Original PR description
### Steps to reproduce: - In the settings enable: Rental Transfers - Create a storable non-rentable product tracked by Serial Number - Register 1 Serial Number in stock say SN001 - Create a rental…
### Steps to reproduce: - In the settings enable: Rental Transfers - Create a storable non-rentable product tracked by Serial Number - Register 1 Serial Number in stock say SN001 - Create a rental order for 1 unit of your non-rentble product - Add a lot on your rental order line ### > Traceback: `leaving_move_line.move_id.sale_line_id.return_date <= line.reservation_begin TypeError: '<=' not supported between instances of 'datetime.datetime' and 'bool'` ### Cause of the Issue: Since Commit d014bb68d852fa4dac1d994351dc82dcdff7b545 the availability of rentable produtcs tracked by serial number is computed. However, the `_compute_available_reserved_lots` assumes that the rental order lines have a `reservation_begin` to work properly since it compares these with other 'datetime.datetime'. However, these fields are only sets and hence not `False` for rental lines that is for lines with a rentable product in the rental app: https://github.com/odoo/enterprise/blob/c89e3114f1820750b641ea12676944e8db7888d8/sale_renting/models/sale_order_line.py#L25-L30 https://github.com/odoo/enterprise/blob/c89e3114f1820750b641ea12676944e8db7888d8/sale_renting/models/sale_order_line.py#L53-L56 opw-3839116 Forward-Port-Of: odoo/enterprise#70315
With an MX company setup Create a branch Change the fiscal regime of the branch to Arrendamiento (606). With the branch create an invoice and generate the CFDI Issues: - Regimen Fiscal in CFDI is set to the one of the parent company while it should be the one of the branch - When a PAC certificate is registered in the branch, company name in CFDI will be the branch name while it should always be the root company name opw-4097669 Forward-Port-Of: odoo/enterprise#69411
Original PR description
With an MX company setup Create a branch Change the fiscal regime of the branch to Arrendamiento (606). With the branch create an invoice and generate the CFDI Issues: - Regimen Fiscal in CFDI is set to the one of the parent company while it should be the one of the branch - When a PAC certificate is registered in the branch, company name in CFDI will be the branch name while it should always be the root company name opw-4097669 Forward-Port-Of: odoo/enterprise#69411
Before this commit, validating an order in PoS while offline would trigger a "send failed" alert for the preparation display each time an order was validated. This was redundant if the offline message had already been shown once. opw-4198324 Forward-Port-Of: odoo/enterprise#70494
Original PR description
Before this commit, validating an order in PoS while offline would trigger a "send failed" alert for the preparation display each time an order was validated. This was redundant if the offline message had already been shown once. opw-4198324 Forward-Port-Of: odoo/enterprise#70494
Steps to reproduce: - Start timesheets tour - When reaching step "Click on the cell to set the number of hours you spent on this project.", and clicking on the cell, tour stay at the same step. Source: - When hovering the cell, a new html element came to superpose above the trigger. so the click is done on the new element and not the trigger. Fix: - Add alt_trigger with the new Element. task-4141027 Forward-Port-Of: odoo/enterprise#69836
Original PR description
Steps to reproduce: - Start timesheets tour - When reaching step "Click on the cell to set the number of hours you spent on this project.", and clicking on the cell, tour stay at the same step. Source: - When hovering the cell, a new html element came to superpose above the trigger. so the click is done on the new element and not the trigger. Fix: - Add alt_trigger with the new Element. task-4141027 Forward-Port-Of: odoo/enterprise#69836
Before this commit ================== Some contracts in SendCloud do not have rates. When trying to generate a label, an error occurs because of the missing rate, preventing the label from being created. After this commit ================= This commit ensures no error is returned when a rate can't be fetched from SendCloud. Label creation can proceed without issues. Community PR: https://github.com/odoo/odoo/pull/173791 TaskId: 4012182 Forward-Port-Of: odoo/enterprise#66976
Original PR description
Before this commit ================== Some contracts in SendCloud do not have rates. When trying to generate a label, an error occurs because of the missing rate, preventing the label from being created. After this commit ================= This commit ensures no error is returned when a rate can't be fetched from SendCloud. Label creation can proceed without issues. Community PR: https://github.com/odoo/odoo/pull/173791 TaskId: 4012182 Forward-Port-Of: odoo/enterprise#66976
**Steps to reproduce:** - Install l10n_mx_edi - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Create an invoice with an invoice date from one month ago - Confirm the invoice - Generate CFDI via "Send & Print" button - A validation error should be raised **Issue:** No document is available in CFDI tab to check the error or retry. **Cause:** A fix had been made to commit the document in case of success, but it had removed the commit in case of failure. https://github.co
Original PR description
**Steps to reproduce:** - Install l10n_mx_edi - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Create an invoice with an invoice date from one month ago - Confirm the invoice - Generate CFDI via "Send & Print" button - A validation error should be raised **Issue:** No document is available in CFDI tab to check the error or retry. **Cause:** A fix had been made to commit the document in case of success, but it had removed the commit in case of failure. https://github.com/odoo/enterprise/commit/fed4ea40793e5d835f3bf7c0267526bd32075baf opw-4203720 Forward-Port-Of: odoo/enterprise#70484