Daily updates from Odoo
Thursday, December 18, 2025
43 changes · master
New functionality added to Odoo
This update automatically links vehicle documents (like license plates) to the corresponding vehicle records in Odoo. This streamlines document management and reduces manual data entry for fleet administrators, improving accuracy and efficiency.
Original PR description
This PR adds the option to automatically link the document containing the license plate number to the vehicle in the `fleet.vehicle` model. AI will search for the license plate in the contents of the document and link it to the vehicle with the matching license plate. task-id: 5049329
Enhancements to existing features
This update enhances the depreciation schedule report by utilizing a new, more efficient engine. Previously, the report generated dynamic lines, which has now been replaced with pre-defined variants, streamlining the report generation process and improving performance.
Original PR description
This PR changes the depreciation schedule report to use custom engine instead of using dynamic lines. The group by custom filter is removed and instead the different grouped reports are variants of the depreciation schedule. task-4900446
This update enhances the performance of reports, particularly those with large datasets, by introducing a 'Load More' mechanism. It addresses previous issues with slow loading times and memory usage when generating detailed reports, now allowing users to load data in batches as needed.
Original PR description
======== CONTEXT ======== When unfolding a line of a report (typically for a groupby), it is possible many lines need to be rendered. When this number grows too big, it can create performance issues…
======== CONTEXT ========
When unfolding a line of a report (typically for a groupby), it is possible many lines need to be rendered. When this number grows too big, it can create performance issues (too much time and memory server-side ; too many lines to render in the browser client-side).
To alleviate those issues, two mechanisms had been implemented in previous versions of Odoo:
=> "Load more" (enabled via the load_more_limit field of account.report)
This feature was used by all report engines (so, it does not work for reports using a _dynamic_lines_generator), to essentially run a SQL LIMIT when computing the report. When the limit was reached, a limited number of sublines was shown, with an additional "load more" line at the end, allowing loading a new batch of them when clicked (possibly with another "load more" line for a next batch).
LIMITS:
- The "load more" line had no amount whatsoever; impossible to know what it contains with expanding it
- Navigation was poor, with the multiple successive "load more" lines
- The need to handle LIMIT and OFFSET in engines required additional complexity
- In case of multi-level groupby ("account_id,id", for example), only the terminal groupby
used the limit. If any intermediate groupby returned too many lines, we still displayed them all
=> Prefix groups (enabled via the prefix_groups_threshold field of account.report
Prefix groups worked on both engines and some reports with dynamic lines (typically the Partner Ledger, for which they were originally implemented). They basically always generated all the lines (without any kind of limit) server-side, before grouping them under unfoldable summary lines, that would do that recursively when unfolded, until the number of lines to show became manageable.
LIMITS:
- All lines were always generated before trimming them, so that means we still used a lot of memory. Also
time-wise, this was not optimal, as many calls to dict's get() function would be run for each line
(we had cases where it took a few seconds, just for that).
- Prefix were generated from line names ; it didn't work well when some records' display name did not
match their name in db (to compute the domain when expanding prefix lines)
- Depending on the content of db and field used in the line names, too many breaking corner cases were possible
======== NEW APPROACH ========
Prefix groups entirely disappear. They were still used by the Partner Ledger and Depreciation Schedule, which have just been rewritten (in different commit merged together with this one) to use custom engines instead, so that they can benefit from the "load more" instead.
"Load more" is now fully rewritten, and works very differently than before. It's essentially a hybrid approach mixing both previous features. Here are the key changes:
1) We don't use LIMIT and OFFSET at all in the engines anymore (both parameters disappear from engine functions). Instead, we generate all results and trim them, but we do that earlier than what prefix groups used to do. Here, we act on the engine's results, before generating the lines.
2) The "load more" line now displays how many sublines it summarizes, and sums the appropriate columns of those lines in order to display a relevant value in the report and improve clarity for the user.
3) "load more" now also works on intermediate levels, when using multi-level groupby. Reports wanting to modify this behavior for certain levels can do that through a custom handler, shadowing _report_expand_unfoldable_line_with_groupby, like the General Ledger and Trial balance do.
======== ADDITIONAL BENEFITS ========
This refactoring also paves the way for future possible improvements, because of the removal of offset and limit parameters from the engines:
- batching of groupby computations in SQL
- support groupby on aggregations
We'll work on those in the future.
task-4346024This update enhances asset reporting within Odoo Enterprise by incorporating data from the Enterprise-specific asset models. This change expands the reporting capabilities, providing a more complete view of asset information for financial analysis and management. The update maintains compatibility with the existing Community version.
Original PR description
Override the Community asset display helper to include logic based on `account.asset_model_ids`. This extends the base behavior while keeping the Community implementation independent from Enterprise-specific fields.
This update clarifies the purpose of the station image within the Frontdesk settings. A tooltip has been added to appear when hovering over the image, providing immediate explanation and enhancing user understanding. This improves the overall user experience for Frontdesk users.
Original PR description
When opening the Station Settings, the image purpose was not clear. A tooltip is now shown on image hover to explain its usage and improve user understanding.
This update enhances the Gantt chart's card closing functionality by moving the close button to a sidebar. This change allows for more intuitive and efficient card closure within the Gantt view, improving user workflow.
Original PR description
In this commit, we move the close button of popover (that was below on the right) to put a side bar on the left. All the sidebar closes the card in gantt view.
This update introduces a new filter in the helpdesk system, allowing users to quickly identify tickets that haven't received a response. This improves efficiency by letting support teams prioritize tickets awaiting replies from customers or internal users. The filter focuses on tickets with the last message from a public or internal customer.
Original PR description
Currently, helpdesk users cannot quickly filter tickets that are still awaiting a response. This commit adds an 'Unanswered' filter to display tickets where: - The last message is from a public user, or from an internal user who is the ticket's customer. Note: ------ I haven’t used the **oldest_unanswered_customer_message_date** field in the filter because a value is set in oldest_unanswered_customer_message_date even when customer is empty. Also, when a helpdesk user is set as the customer on a ticket and posts a message, the oldest_unanswered_customer_message_date does not get updated. task-5138678
This update simplifies the way payslip reporting displays key information. The changes remove redundant data fields and restrict rate percentages to two decimal places, making the reports easier to read and understand for payroll and finance teams. This enhances the overall user experience for reporting on payroll data.
Original PR description
- Removing the fixed amount and percentage measures as they are redundant data as fixed_amount value is used to set the amount and the percentage values is used to set the rate - Restricting the rate percentage to 2 decimals in order to improve readability. Task: 5407645
This update streamlines the stage forms within the Helpdesk and Referral modules by unifying their layouts, reorganizing fields, and adding clear placeholders. This improves usability and clarity for users managing support tickets and recruitment processes.
Original PR description
Improve the stage form views by unifying every views, moving fields, hiding sequence field and adding placeholders. Task-5186979
This update simplifies the process of tracking changes within custom fields in Odoo Studio. Users can now easily enable or disable chatter tracking directly when creating new fields, eliminating the previous manual step. This enhancement improves efficiency and provides better visibility into field updates.
Original PR description
This commit introduces a `Track in chatter` option in Studio’s field properties sidebar. The option allows users to enable or disable chatter tracking when creating new custom fields directly from Studio. The feature is available in form views for most field types, excluding One2many, Binary, and Image fields. previously user have to open field's properties and manually set the value to enable order tracking. task-5173295
This update simplifies the survey process by renaming the 'Analyze Results' button to 'Export'. This change provides a clearer and more intuitive user experience for exporting survey data from the form and front-end views. The change aligns with best practices for user interface clarity.
Original PR description
This commit renames the `Analyze results` button to `Export` in the the survey form view and the survey front end view. Task: [5424198](https://www.odoo.com/web#id=5424198&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update adds a visual indicator ('is typing') to group chats within the discuss sidebar, helping users quickly see if a conversation is still active. It also removes redundant status indicators, streamlining the chat experience. This improves usability and provides clearer information about ongoing group discussions.
Original PR description
This commit adds "is typing" icon on group chats in discuss sidebar and chat bubble. This helps seeing that a group chat is still active after seeing a recent message and jumping to another conversation in the mean time. This commit also removes showing of is typing in IM status of discuss app header and chat window header, as this is redundant with "is typing" close to composer. https://github.com/odoo/odoo/pull/234715 Task-5402098
This update streamlines the ESG app by removing the manual commuting emissions wizard. Now, when the 'Employee Commuting' factor is selected, the quantity is automatically calculated based on chosen dates, simplifying the reporting process. A conflict warning has also been moved to the form view for improved clarity.
Original PR description
In order to reduce the amount of JS customizations in the ESG app, this PR removes the wizard to generate commuting emissions, that was previously accessible from the commuting report. Instead, we now have some special behaviors when creating/editing an emission with the "Employee Commuting" emission factor. When it is selected, the quantity will be automatically computed from the chosen dates, and some fields become non editable, like the unit. The conflicting emissions warning is also moved to the form view. Task-5138598
This update enhances the user experience when managing salary rules by changing how sections are searched. Instead of a pop-up window, clicking 'Search more...' now opens the full list of salary rule sections directly in the current window. This simplifies the process of adding and managing sections within salary rules.
Original PR description
Clicking "Search more..." on the input_section field in salary rules now opens the full hr.salary.rule.section list view in the current window instead of a dialog popup. Additionally, the struct_ids field now uses the many2many_tags widget. Task ID: 5068764
This update adjusts Odoo's document layout design based on recent community contributions. The system now supports new layout options like centered and dual layouts, while removing older, boxed layouts. This change improves the flexibility and visual appearance of reports and documents within Odoo.
Original PR description
*: web_studio, pos_blackbox_be, l10n_co_dian Adapt to the changes in community PR which removes `external_layout_bold`, `external_layout_boxed`, `external_layout_striped` and adds `external_layout_center`, `external_layout_dual`, `external_layout_lines` task-4916379 Requires: https://github.com/odoo/odoo/pull/237109, https://github.com/odoo/upgrade/pull/8916
This update enhances the website's interactive tour feature across several sales and subscription modules. The changes involve adopting new, standardized tour utilities, leading to a more consistent and streamlined user experience for customers navigating the website. This improves usability and guides users more effectively through key features.
This update adds a new test specifically for PFA (Pension Funds Agency) calculations related to maternity leaves within the Belgian HR payroll module. This ensures accurate processing of these payments, aligning with local regulations and improving the reliability of the system for our Belgian clients. The change is considered an important improvement.
Original PR description
Forward-Port-Of: odoo/enterprise#102344
Resolved issues and error corrections
This update ensures that rental product availability in our e-commerce system accurately reflects when employees are on time off. Previously, the system didn't account for employee absences, leading to incorrect availability displays. This fix corrects this issue, providing a more reliable view of available resources for rental bookings.
Original PR description
…navailabilties Before this commit, when an human resource is linked to rental product thanks to his role and take a time off at a certain day. The user inside ECommerce should be able to add that product when the resource is off (since there is no resource available) at the period chosen. However, that check does not take into account the time off taken by the resources linked to that service rental product. This commit makes sure the time off of the resources linked to the product are correctly taken into account to know if the service rental product is available at a specific period. task-5075698 Forward-Port-Of: odoo/enterprise#98165
This update corrects a formatting error in invoices generated when using quotation templates in sales orders. Previously, the name and description were combined on the invoice PDF. Now, a necessary line break is added to ensure correct invoice presentation, improving clarity for customers.
Original PR description
### Issue: In this issue, when a quotation template is used in sale order, the end line is missing between name and description in the invoice pdf. #### Steps to reproduce: 1- Install a db with sale…
### Issue: In this issue, when a quotation template is used in sale order, the end line is missing between name and description in the invoice pdf. #### Steps to reproduce: 1- Install a db with sale and invoicing installed 2- Create a quotation template, and add a description in the line. 3- Create a quotation with the created template. 4- Confirm the order and create an invoice for the sale order. 5- Print the pdf, as seen the name and description are shown in the same line, while if the sale order was created without a template, we would have seen the description from product in the next line. `_get_journal_items_full_name` is used to enforce the product name in the description. However, in cases where product name doesn't exist in the description, e.g. our case here, the name and description will be shown in the same line in the invoice pdf. This can be fixed by adding a new line between the name and the description. opw-5130171 Forward-Port-Of: odoo/enterprise#102208 Forward-Port-Of: odoo/enterprise#100417
This update fixes an issue where the download button appeared prematurely in the eSigner wizard. It now correctly hides the button until a signature is completed, and adjusts text size for better readability when using Aadhaar signatures. This ensures a smoother and more professional user experience for e-document signing.
Original PR description
Version: - 19.0 Issue: - The wizard shows a download button even when using emsigner, but the file should only be downloaded after signing. - When users sign with Aadhaar and download the document, the text appears too small. Fixes: - Hide the download button in the wizard for emsigner requests. - Adjust page coordinates so the font size displays correctly. Impact: - Makes the text clear and readable in documents signed with Aadhaar. - Hides the download button until the user signs. After signing with eSigner, they can download the document with the certificate. task-5075596 Forward-Port-Of: odoo/enterprise#94279
This update fixes a previous issue where users couldn't select product variants when setting recurring prices. Now, users can accurately define recurring prices for each variant of a product, ensuring accurate subscription billing and improved flexibility in managing recurring revenue. This enhancement simplifies subscription management and reduces the risk of pricing errors.
Original PR description
Version: - 19.0 Before: - When creating a product with variants and setting recurring prices, users could not select product variants in the recurring price list. Issue: - The recurring price list appeared read-only for product variants, preventing users from defining variant-specific recurring prices. Cause: - The product variant field was missing from the recurring pricing view. Fix: - Added the product variant field to the recurring prices list view, allowing users to select and manage variants while setting recurring prices. Taskid-5361266 Forward-Port-Of: odoo/enterprise#101779
This update fixes a bug where the Partena export file incorrectly used the active company's code when generating exports for inactive companies. The change ensures the correct Partena code is included in the file, resolving potential reporting discrepancies. Tests have been added to verify this fix.
Original PR description
### Issue: In multicompany, when we generate the Partena export file of the 'not active' company, the partena code of the active company is inputted in the file. ### Steps to reproduce: - Install…
### Issue: In multicompany, when we generate the Partena export file of the 'not active' company, the partena code of the active company is inputted in the file. ### Steps to reproduce: - Install 'l10n_be_hr_payroll_partena' and switch to a Belgian company - Make sure the company has a "Partena Affiliation Number" - Create an employee for this company, with a "Partena code" - Create a contract for this employee, set it a running - Create a new Belgian company with a different "Partena Affiliation Number" - Activate both Belgian companies, but set the second one as active - Payroll > Reporting > Export work entries to Partena - Create a new one, populate it with the employee just created - Click "Generate Export File" ### Cause: When getting the data for the CSV file, we use `self.env.company` which is the active company. So when this company is not the one of the export record, we input the wrong code values. ### Solution: Use `self.company_id` instead of `self.env.company_id`. Also adds the test class with basic tests. opw-5345786 Forward-Port-Of: odoo/enterprise#102062 Forward-Port-Of: odoo/enterprise#101110
This update ensures that rental orders created from leads automatically include the tags associated with the original lead. Previously, rental orders lacked this functionality due to a slight difference in how context information was passed. This change streamlines the rental order process and maintains consistent tag management across sales and rental transactions.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have a lead with tags; 2. convert lead to rental order. Issue ----- The new rental order has no tags. Cause ----- Tags are added to regular sales orders via the `_prepare_opportunity_quotation_context` method, but rental orders use `_get_action_rental_context` instead, which is virtually identical, but adds the `in_rental_app` context value, and doesn't include `default_tag_ids`. Solution -------- Rather than having duplicate code, make `_get_action_rental_context` retrieve the base context from `_prepare_opportunity_quotation_context`, then adding `in_rental_app=True`. opw-4549941 Forward-Port-Of: odoo/enterprise#102220
This update fixes an issue where invoice reports in the KE company setup were not displaying prices with commas. The fix removes a duplicate XPath and correctly formats the total and taxable amounts, ensuring accurate financial reporting. This improves clarity and compliance for KE-related invoices.
Original PR description
Steps to reproduce: 1. install `l10n_ke` 2. Switch to KE Company 3. Create a product with all KRA eTIMS details set on the Accounting page. 4. Create an invoice to KE Company with that product and set unitprice > 10000 5. Confirm the invoice and send it. Now, see the invoice report Issue: 1. xpath for `td_subtotal` was duplicated 2. The total amount and taxable amount were not formatted as prices (no commas). Before: <img width="771" height="397" alt="image" src="https://github.com/user-attachments/assets/492fe911-18d6-4e01-a16d-d7450c17373f" /> After: <img width="766" height="389" alt="image" src="https://github.com/user-attachments/assets/bbe5d4e2-b337-445c-833a-06492a8c827d" /> Solution: Updated the invoice report to: - Remove the duplicated `td_subtotal` xpath. - Properly format the total and taxable amounts with `t-options`. opw-5341578 Forward-Port-Of: odoo/enterprise#101794 Forward-Port-Of: odoo/enterprise#100279
This update fixes a technical issue that could cause website errors during event ticket payments when using rentable tickets. The change improves error handling to prevent these tracebacks from appearing to users, ensuring a smoother payment experience. While the rentable ticket feature itself is being addressed, this fix focuses on stabilizing the payment process.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have `website_event_sale` but not `stock` installed; 2. create an event with a ticket; 3. make the ticket's product rentable; 4. change ticket's product type to Goods; 5. publish the event to website; 6. register for the event via website; 7. go to payment. Issue ----- AttributeError: 'bool' object has no attribute 'tzinfo' Cause ----- Having odd configurations like rentable tickets creates rental orders without rental dates, leading to unhandled errors. Solution -------- While rentable event tickets doesn't make enough sense to make it work, we can still improve the error handling to prevent showing tracebacks to the client. opw-5207045 Forward-Port-Of: odoo/enterprise#101936 Forward-Port-Of: odoo/enterprise#99000
This update resolves a critical bug in the Report Editor that caused crashes due to incorrect data translation. By disabling translation specifically within the report's iframe, the system now reliably saves edited reports without errors. This ensures a stable and accurate report generation experience.
Original PR description
Before this commit, when google translate was active on the current ReportEditor, it produced wrong data to save, and ultimately crashes. After this commit, since we disable the translation on the whole HTML element inside the iframe (that is only for the edited report), there is no error any more opw-5122924 Forward-Port-Of: odoo/enterprise#97019
This update corrects a bug where invoice posting in Chilean tests resulted in incorrect date calculations due to timezone differences. The fix ensures invoices are processed correctly by freezing the test time and setting a fixed invoice date, preventing date rollbacks.
Original PR description
**Issue:** ```python File "/data/build/enterprise/l10n_cl_edi/models/account_move.py", line 744, in _l10n_cl_edi_post_validation raise UserError( odoo.exceptions.UserError: The stamp date and time…
**Issue:**
```python
File "/data/build/enterprise/l10n_cl_edi/models/account_move.py", line 744, in _l10n_cl_edi_post_validation
raise UserError(
odoo.exceptions.UserError: The stamp date and time cannot be prior to the invoice issue date and time. TIP: check in your user preferences if the timezone is "America/Santiago"
```
**Cause:**
Posting an invoice at early local hours (e.g., 2025-12-11 04:00) is converted by the [Chilean timezone (America/Santiago)](https://github.com/odoo/enterprise/blob/ac3f333d97eda5c86a0813490ac6204d4ec5721f/l10n_cl_edi/models/l10n_cl_edi_util.py#L117-L120) to the previous day (e.g., 2025-12-10 19:30).
**Solution:**
- Freeze the test time at a stable CL-safe hour
- Add a fixed `invoice_date` aligned with the frozen timestamp
Reference : [timezone converter](https://dateful.com/time-zone-converter?t=730pm&d=2025-12-10&tz2=Santiago-Chile)
Runbot error: [234755](https://runbot.odoo.com/odoo/runbot.build.error/234755)
Related PR: https://github.com/odoo/enterprise/pull/99518
Forward-Port-Of: odoo/enterprise#102127
Forward-Port-Of: odoo/enterprise#101901This update streamlines the live chat closing process within the AI Website module. The change ensures a cleaner and more reliable way to close live chat sessions, reducing potential disruptions for users. This improves the overall user experience and efficiency of the AI-powered website.
This update fixes a usability issue in the Sign editor where the document dropdown didn't close properly after selection. The changes include improved hover behavior, consistent styling for actions, and a new mechanism to handle dropdown closures within the PDF iframe, ensuring a smoother user experience.
Original PR description
- Fix hover and pointer behavior on update document action - Apply consistent danger styling to delete action - Ensure dropdown closes correctly after interaction (PDF iframe has its own document so outside-click logic did not apply; add a click listener on the iframe document to close open dropdowns. ) task: 5384677
This update corrects a bug in the 'My Work Orders' filter within the manufacturing work order list, ensuring it accurately displays only work orders assigned to the current user. This improves usability and allows users to easily find and manage their assigned tasks.
Original PR description
Before this commit: ------------------------- The 'My Work Orders' filter in the manufacturing work order list view was not functioning as expected. Previously, it did not effectively filter work…
Before this commit: ------------------------- The 'My Work Orders' filter in the manufacturing work order list view was not functioning as expected. Previously, it did not effectively filter work orders to display only those assigned to the current user. Steps to reproduce: ------------------------- 1. Install 'mrp_workorder' module. 2. Go to Operations → Work orders view. 3. Apply Search Filter → My Work Orders . 4. Notice that the 'My Work Order' filter does not displays work orders assigned to the logged-in employee. Cause of the issue: ------------------------- In this filter, a static ID was used to identify the logged-in user. However, user IDs are dynamic and vary from one user to another. As a result, the filter could not work properly. After this commit: ----------------------- It resolves the issue by ensuring the filter now correctly identifies and displays work orders assigned to the logged-in employee, providing the expected 'My Work Orders' view.It helps the users to filter the work-orders directly which are assigned to them. Task Id: 4935833
This update addresses several key issues in the ID payroll calculations, ensuring more accurate net salary and year-end reporting. Specifically, it incorporates reimbursements, corrects JHT and JP calculations, and streamlines data for improved payroll processing. This change enhances the reliability of employee compensation data.
Original PR description
* Move fixed allowance to basic category since it is treated same as basic salary and used together in other rules * Spread the sequences * Update the net salary calculation since curently it did not include reimbursement * Update the view historical lines in employee so it search only paid/validated payslip and also show the JHT and JP * Update the end of year calculation to use accumulated JHT and JP in a year (similar to gross rule) * Add new parameter data for JP for 2025 * Remove outdated worked days rate method and instead use the standard basic salary rule * Update the rounding to down Task: [5182482](https://www.odoo.com/odoo/project.task/5182482)
This update resolves an issue where the tax return calendar view in Odoo Enterprise was confusing users. The fix replaces the calendar view with a more intuitive Kanban view for tax returns, streamlining the process for users to manage their returns. This ensures a clearer and more efficient user experience.
Original PR description
Steps to reproduce: - Go to Accounting/tax return - Set the opening date - Open the Calendar view - Open one tax return -> The view is a default form view provided by the framework Solution: Open instead the kanban view of return checks (which for the user seems like the form view of the return). task-5392552
Previously, users couldn't change the name of the 'Help' menu item in the Helpdesk, encountering an error. This update allows users to rename the menu item, resolving this restriction and providing greater flexibility within the Helpdesk feature. This change improves usability and simplifies management.
Original PR description
**Issue** It was not possible to rename the "Help" menu item, an error appeared with the message: "This URL is reserved for the helpdesk teams with 'website form' feature enabled.", even if the user was not trying to edit the URL. **Change** Allow the user to edit the menu item's name. opw-5375334 Forward-Port-Of: odoo/enterprise#102175 Forward-Port-Of: odoo/enterprise#101323
This update resolves a bug preventing users from adding products to invoices when navigating from an FSM task. The issue stemmed from differing context settings – the sale order provides a specific context, while the task does not. This change ensures consistent domain settings for product searches across different invoice access points.
Original PR description
On a fsm task, using the smart button to go to the invoice, will not give the same domain for the products, if you go from the sale order or directly from the task Steps to reproduce:…
On a fsm task, using the smart button to go to the invoice, will not give the same domain for the products, if you go from the sale order or directly from the task Steps to reproduce: ------------------- * Create a product - Purchase: False - Sale : True * Create a fsm task * Add products * Go to the sale order * Create the invoice (regular invoice) * Go back to the task * Go to the invoice using the invoices smart button * Try to add your product -> issue it's not possible. Observation: --------------- The domain of the search is not the same if we go from the sale order or from the task. This is because the domain depend on the context and the context is not the same : [Domain](https://github.com/odoo/odoo/blob/8258ddf12ed6c0495628f7a480d1e2424e756540/addons/account/views/account_move_views.xml#L1134-L1141) When using the smart button on the SO, some elements will be added to the context, the important one is: default_move_type : "out_invoice": [SO context](https://github.com/odoo/odoo/blob/18.0/addons/sale/models/sale_order.py#L1453) Instead when using it on the task, the context does not have that element: https://github.com/odoo/enterprise/blob/cb79d565031ee0e1bec9db82aa35deb2e1c03576/industry_fsm_sale/models/project_task.py#L325-L327 This will be calculate here in the js files: [evalContext](https://github.com/odoo/odoo/blob/c3367bd7c6900e42394b006ccf48c3b36a1b87e9/addons/web/static/src/views/fields/field.js#L400) opw-5135567 Forward-Port-Of: odoo/enterprise#101938 Forward-Port-Of: odoo/enterprise#98612
This update resolves an issue where archived employees were still appearing in the timesheet section of helpdesk tickets. The fix ensures that only active employees are displayed, improving data accuracy and preventing confusion when managing timesheets.
Original PR description
**Steps to Reproduce:** - Install hekpdesk_timesheet. - Go to settings, enable timesheets - Archive an employee. - In a ticket, try to add a timesheet entry. **Isuue:** Archived employees are also appearing under timesheets tab. **Fix:** Passed a context so that only active employees appear in the selection. task-5078763 Forward-Port-Of: odoo/enterprise#95137
This update fixes an issue where product documents would stop appearing on product pages after a document version was updated. The fix ensures that the product document record is correctly linked to the latest document version, maintaining accurate product information. This improves the consistency of product data.
Original PR description
**Steps to reproduce:** 1. Install `sale_management` and `documents`. 2. Go to settings > check `product` under Files Centralization. 3. Create a product and add a document to it using the smart button. 4. Update the version of that document from the *Manage Versions* action on the document page. **Issue:** - After updating the document version, the linked document no longer appears on the product page. **Cause:** - The product page displays records from the `product.document` model, but its `ir_attachment_id` was not updated when the document’s version changed. **Solution:** - Update the `ir_attachment_id` on the corresponding `product.document` record when the document version is updated. opw-5144041 Forward-Port-Of: odoo/enterprise#99226
This update resolves an error that prevented the creation of draft payslips for employees configured to report BAS-W3 data. The fix corrects a coding issue that was causing a type error, ensuring that draft payslips can now be generated correctly for this employee group. This improves payroll processing reliability.
Original PR description
Currently, an error occurs when generating draft entries for the Australian payslips when the employee is configured to `report in BAS–W3`. **Steps to reproduce:** - Install the…
Currently, an error occurs when generating draft entries for the Australian payslips when the employee is configured to `report in BAS–W3`. **Steps to reproduce:** - Install the `l10n_au_hr_payroll_account` module and switch to `My Australian Company`. - Create an employee with all necessary payroll information and enable `Report in BAS – W3`. - Go to Payroll Settings and complete the `Payroll Onboarding`. - Navigate to Payroll > Payslips > Payslips and open any draft payslip. - Click `Create Draft Entry`. (Refer [1] for steps to produce.) **Error:** `TypeError: 'int' object is not iterable` **Root Cause:** At [2], the code tries to append an `integer`(`w3_tag.id`) to a `list`(`tag_ids`) using `+=`, which causes the `error`. **Fix:** This commit prevents an error when creating a draft entry by wrapping the integer in a list before adding it to `tag_ids`, similar to [3]. [1]: https://drive.google.com/file/d/1XGUUYCpmB3ocwXSWkxgFV7vjyAvRsHS6/view [2]: https://github.com/odoo/enterprise/blob/d9c864a5a55dd45f6fed794a809a5aefe26e7699/l10n_au_hr_payroll_account/models/hr_payslip_line.py#L23 [3]: https://github.com/odoo/enterprise/blob/d9c864a5a55dd45f6fed794a809a5aefe26e7699/l10n_au_hr_payroll_account/models/hr_payslip_line.py#L27 opw-5370293 Forward-Port-Of: odoo/enterprise#101811
This update fixes a previous issue where sales lines flagged as 'out of scope' were incorrectly excluded from tax warnings. The change ensures that all sales lines, including those marked as 'out of scope,' now trigger the necessary tax configuration checks, improving accuracy and compliance. This resolves a potential reporting discrepancy.
Original PR description
Previously, we excluded all lines with the `sale_out_of_scope` section from checks and warnings to improve performance. However, some tax-related warnings also apply to those lines. Due to the global exclusion, warnings for incorrect tax configuration were no longer shown when the line belonged to the `sale_out_of_scope` section. This commit removes the `sale_out_of_scope` condition from the shared (general) domain and instead applies it only to specific warnings where it is actually needed. task-5404258 Forward-Port-Of: odoo/enterprise#101781
This update resolves an issue where ECO applications incorrectly linked product documents to attachments, leading to database errors. The fix ensures that ECOs correctly reference the associated attachments, preventing potential application failures and data inconsistencies. This improves the reliability of ECO implementation.
Original PR description
When applying an ECO, the system incorrectly sets the origin_attachment_id of a product.document to a product.document record itself instead of its related ir.attachment. As a result, if the incorrectly referenced ir.attachment is missing, the ECO will attempt to reference a record that does not exist, leading to a foreign key violation during action_apply. Steps to reproduce: 1.) Create an mrp.eco record 2.) Upload a document, take note of the product.document ID 3.) Unlink the ir.attachment with ID = (document ID + 1) (+1 is to account for the .copy within action_apply) 4.) Run eco.action_apply 5.) Observe SQL Constraint Expected result: The ECO should correctly link the product.document to its related ir.attachment. Actual result: origin_attachment_id may point to an unrelated ir.attachment, causing constraint violations when those attachments do not exist. opw-5050263 Forward-Port-Of: odoo/enterprise#94958
Features or functions removed from Odoo
This update removes a section related to GSTR reporting that is no longer required by Indonesian regulations. The change simplifies the report generation process and aligns with current tax requirements. This ensures Odoo Enterprise remains compliant.
Original PR description
Since the `purchase_b2c_regular` GSTR section is no longer required, this commit updates the related domain logic and removes the corresponding report lines.
Related PR: https://github.com/odoo/odoo/pull/236241
https://github.com/odoo/upgrade/pull/8933
Forward-Port-Of: odoo/enterprise#99777This pull request streamlines the appointment scheduling interface by removing redundant features and improving the user experience. Specifically, unnecessary syncing logic and a confusing alert message related to calendar integration have been removed, simplifying the appointment booking process. The changes focus on a cleaner, more intuitive interface.
Original PR description
*= appointment_microsoft_calendar, appointment_google_calendar, appointment_google_reserve --- #### Commit 1 Removes unused widget `appointment_type_sync_duration`. --- #### Commit 2 This commit…
*= appointment_microsoft_calendar, appointment_google_calendar, appointment_google_reserve --- #### Commit 1 Removes unused widget `appointment_type_sync_duration`. --- #### Commit 2 This commit mainly tweaks some UI/UX elements like changing strings, list view, show some options only in debug mode, etc. --- #### Commit 3 Removes Google & Microsoft Calendar syncing from the Appointment Type form view, as we can already do that from Calendar app. We also remove the alert message when google meet is selected in the `event_location_source` and at least one of the staff users has not its calendar synced. Indeed, the connector buttons are not there anymore to handle the issue, and not much can be done when that user is not the logged one. Therefore, we instead add a comment in the helper of `event_location_source` to indicate that when choosing google_meet, links won't be added if google calendar is not synced. --- COM PR: https://github.com/odoo/odoo/pull/235190 UPG PR: https://github.com/odoo/upgrade/pull/8829 Task-5170642
Code cleanup and technical improvements
This update enhances Odoo's ability to identify file types, improving accuracy and reliability. The changes streamline the process and ensure consistent mimetype detection across various modules, particularly for common file formats. The team focused on improving test coverage and simplifying the underlying logic.
Original PR description
* Merge test_mimetypes from base and test_guess_mimetypes from test_orm into test_mimetypes in test_orm * Improve test coverage of test_mimetypes * Odoo guess mimetype is now identical to magic for almost all supported mimetypes. The only exception is csv which is not worth the work to try to have a precise match, it returns text/plain. * Mimetypes now uses a function for each supported mimetype.
This update streamlines the VoIP system by explicitly defining its configuration settings and moving the user agent information to the core VoIP service. This simplifies the codebase and reduces unnecessary complexity, leading to a more robust and maintainable VoIP experience.