Daily updates from Odoo
Monday, June 8, 2026
146 changes
11 changes
Enhancements to existing features
This update improves the DEP7 export process by switching from PDF to JSON files. This change ensures compliance with BMF (RKSV) requirements and provides machine-readable data for official tools, streamlining reporting and data exchange.
Original PR description
In this commit: ------------------- - Updated the DEP7 export to generate a zip with JSON files instead of PDF, in compliance with BMF (RKSV) requirements. - The export now produces a valid JSON document containing the machine-readable data expected by the official BMF tools. - The filename format has also been adjusted to follow common conventions (e.g. `Name_Duration_DEP_KassenID.json`). Task: 6071034 Forward-Port-Of: odoo/enterprise#112276
Resolved issues and error corrections
This update fixes a potential error in the payment authorization process. It prevents issues that could arise when entering excessively long addresses during credit card payments via Authorize.net, ensuring data compatibility with the payment gateway's requirements. This improves the reliability of payment processing.
Original PR description
Steps to reproduce: - install payment_authorize module; - complete a credit card payment using Authorize.net with more than 60 characters on any other field than first name, last name or company; - confirm the payment. Issue: An error message appears. Cause: The Authorize.net API define the max length of information. It is possible that some information exceeds the maximum length. (https://apitest.authorize.net/xml/v1/schema/AnetApiSchema.xsd) Solution: Truncate information if the number of character is too large. opw-6141441 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262154
This update resolves a problem where the size of country flags on the Visitors reporting page was changing unexpectedly, particularly after installing the livechat app. The fix also ensures that flags set through Studio remain visible and responsive to size adjustments, preventing them from disappearing.
Original PR description
The website.visitor.view.kanban view uses the o_country_flag class which is not defined anywhere besides livechat_channel_info_list.scss. This causes unintended behavior where the flag size for the kanban view on ' Website > Reporting > Visitors ' changes when installing the livechat app. Additionally, the image_url_field.js file does not address cases when height/width are not set. This results in the flags (or any other image using 'widget="image_url"' disappearing (being set to a 'width: 0px') whenever their Size is set via Studio. This change makes it so that the flags don't disappear when altered in Studio (but does not make them actually respond to size changes) Related tickets: opw-5962151, opw-5995004 Forward-Port-Of: odoo/odoo#251618
This update resolves an issue where enabling the 'Sales Credit Limit' setting caused an access error when creating new users. The problem stemmed from a default value being incorrectly applied to a restricted field due to inheritance within the system. This fix ensures the system functions correctly with the new setting enabled.
Original PR description
# How to reproduce - Install the Accounting module - In the settings, enable "Sales Credit Limit" - Remove the Accounting access rights of the current user - Try to create a new user # The issue An…
# How to reproduce - Install the Accounting module - In the settings, enable "Sales Credit Limit" - Remove the Accounting access rights of the current user - Try to create a new user # The issue An access error is raised on the field `credit_limit` # Cause Enabling the "Sales Credit Limit" setting will create an `ir.default` for the `credit_limit` field. This field is restricted to a specific group : https://github.com/odoo/odoo/blob/e3b0ca11d99b2ef819cdad68b169112cd73668b6/addons/account/models/partner.py#L515-L518 When creating a record, we check field permissions before adding default values, so the creation of the user is fine. However, since `res.users` inherits from `res.partners`, a new partner will also be created, but this time with the default values in `vals_list`, which will trigger an access right error. # Proposed solution Back port of this commit : https://github.com/odoo/odoo/pull/267193 Access right checks when creating a record were introduced in 18.3 by : https://github.com/odoo/odoo/commit/15132342960df76fcefd3284a9eff2d4d3273150 opw-6240494 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268303 Forward-Port-Of: odoo/odoo#268039
This update resolves a technical error that could occur when calculating rental availability for products with start and return dates. Specifically, it prevents a traceback when dates are incompatible, ensuring accurate availability information is displayed to customers on product pages. This improves the overall rental booking experience.
Original PR description
Preventing traceback on incompatible dates between the cart and the product page. How to reproduce: 1. Add to cart a product with periodicity Hours/Days with a start date = return date (e.g.: Projector). 2. Go to the product page of a product configured with Pickup > Return (e.g.: Premium Bike, Luxury Room) 3. Traceback, as we try to get the availabilities on a negative period. start date > end date, as both dates are equals and the time is set from the Pickup and Return fields. Forward-Port-Of: odoo/enterprise#119480
This update fixes a missing translation for the 'Count LoC' report within Odoo's technical menu. Adding this translation ensures consistent and accurate reporting across all supported languages, improving the user experience for international customers.
Original PR description
Before this commit, the technical menu for the 'Count LoC' report was never translated. This commit adds it to the translated terms.
This update resolves an issue preventing Odoo from correctly validating Turkish VAT invoices when using GİB placeholder VAT numbers. Turkish regulations permit these placeholders for specific invoice types, and this change ensures Odoo accepts them while maintaining existing VAT validation rules and test environment exceptions. This improves compliance for Nilvera users in Turkey.
Original PR description
- Turkish regulations allow the usage of special placeholder identifiers for invoices issued to non-taxpayer end consumers and overseas customers, where providing a real TCKN/VKN is not mandatory. - Although Odoo already referenced these identifiers in the VAT format help message (`11111111111` for TCKN and `2222222222` for VKN), they were still rejected by the Turkish VAT validation logic because they do not pass the standard `stdnum` checks. - This commit extends the Turkish VAT validation to explicitly allow these GİB-approved placeholder identifiers while preserving the existing standard VAT validation behavior and Nilvera test environment exceptions. taskID-6237629
This update resolves an issue where Spanish users were incorrectly interpreting durations entered with decimal separators (e.g., "0,5"). The code was adjusted to properly handle the order of replacing decimal and thousand separators, ensuring durations are now recognized accurately in Spanish. This improves the usability of the Timesheet feature for Spanish-speaking users.
Original PR description
Issue: ---------------------------------------- In Spanish, inputting "0,5" as a duration is recognized as 5 hours instead of 30 minutes. Steps to reproduce: ----------------------------------------…
Issue:
----------------------------------------
In Spanish, inputting "0,5" as a duration is recognized as 5 hours instead of 30 minutes.
Steps to reproduce:
----------------------------------------
- Install Project and Timesheet
- Switch the user language to Spanish
- Open a task, in the "Timesheet" page, create a new line
- Input "0,5" as duration
Cause:
----------------------------------------
In the parser, the value is transformed according to the language decimal point and thousands separator:
```js
value = value
.replaceAll(localization.decimalPoint, ".")
.replaceAll(localization.thousandsSep, "");
```
In Spanish `decimalPoint` is "," and `thousandsSep` is ".". So the first `replaceAll()` changes "0,5" into "0.5", then the second one deletes the point.
Solution:
----------------------------------------
We need to invert the two `replaceAll()`.
As the `thousandsSep` is just removed, this will not create a new issue in another language.
opw-6263523
Forward-Port-Of: odoo/odoo#268461This update corrects a previous issue that limited product options when creating sale orders on mobile devices. It now allows users to add products with `sale_ok=False` and non-rental products to rental orders, expanding flexibility. This change resolves a regression introduced in a prior update.
Original PR description
This commit reverts 6e8a2d9c2d80044f6ee33c96871accf0aa83f4eb which introduce regression by ignoring product domain from `_domain_product_id`. Due to this issue, you can add products with `sale_ok=False` in SOL using a phone. Also you could add non-rental product in rental orders. opw-6218312 Forward-Port-Of: odoo/odoo#268331
This update resolves an issue where the activity rate for Swiss payroll calculations was incorrectly tied to individual employees instead of the Odoo Enterprise version. This change ensures accurate reporting and compliance with Swiss tax regulations by basing the rate on the correct Odoo version.
Original PR description
…ployee Forward-Port-Of: odoo/enterprise#119658
This update corrects tax calculations and closing logic for split payments in Italy (l10n_it). Specifically, it removes redundant tax data and ensures accurate tax reporting within the split payment process, leading to more reliable financial records.
Original PR description
with this commit:- - Removing unnecessary 'SP Pos.' taxes. - Adopted correct tax data for 'SP' taxes so that it works correctly in Split Payment case. - By these changes, tax closing entries will become hermetic. task-6116304 Forward-Port-Of: odoo/odoo#268747 Forward-Port-Of: odoo/odoo#264336
8 changes
Resolved issues and error corrections
This update enhances the way Odoo handles errors when connecting to serial devices like scales. Instead of generating excessive error logs, the system now logs warnings with detailed information, reducing unnecessary alerts and improving system performance. This change prevents overwhelming monitoring tools and ensures a smoother user experience.
Original PR description
Instead of logging an exception or an error on probe failure for serial devices, we now log a warning with stack info. This avoids spamming sentry with error logs that only are probe attempts. e.g. if the device plugged is a scale, we will probe for belgian + swedish blackbox first, causing two errors three times (as we retry 3x). see odoo/enterprise#119683
This update adjusts the certification checksum to align with recent changes to the scale driver. The goal is to maintain the integrity and accuracy of our certification process, ensuring continued compliance. This change was necessary due to a streamlining of exception handling within the scale driver.
Original PR description
As we updated the scale driver to reduce the amount of exception caught, we need to update the certification checksum. see odoo/odoo#268796
This update corrects how Italian taxes are calculated and processed during split payments. Specifically, unnecessary tax codes have been removed and the correct tax data is now used, ensuring accurate tax closing entries. This improves the reliability of Italian accounting within the Odoo system.
Original PR description
with this commit:- - Removing unnecessary 'SP Pos.' taxes. - Adopted correct tax data for 'SP' taxes so that it works correctly in Split Payment case. - By these changes, tax closing entries will become hermetic. task-6116304 Forward-Port-Of: odoo/odoo#264336
This update resolves a bug where the size of country flags on the Visitors reporting page would unexpectedly change after installing the Livechat app. Additionally, the system was incorrectly removing image sizes set in Studio, now flags correctly respond to size adjustments. This ensures consistent and accurate flag display.
Original PR description
The website.visitor.view.kanban view uses the o_country_flag class which is not defined anywhere besides livechat_channel_info_list.scss. This causes unintended behavior where the flag size for the kanban view on ' Website > Reporting > Visitors ' changes when installing the livechat app. Additionally, the image_url_field.js file does not address cases when height/width are not set. This results in the flags (or any other image using 'widget="image_url"' disappearing (being set to a 'width: 0px') whenever their Size is set via Studio. This change makes it so that the flags don't disappear when altered in Studio (but does not make them actually respond to size changes) Related tickets: opw-5962151, opw-5995004 Forward-Port-Of: odoo/odoo#251618
This update resolves an issue where the timesheet assistant wouldn't function correctly if a rule was created without a template. The fix ensures that all rules now require a template, preventing errors and improving the accuracy of timesheet display names. This enhancement ensures the timesheet assistant operates reliably.
Original PR description
## [FIX] timesheet_grid: make template field required in AW rule Before this commit, the template field in AW rule was not required and if one rule without any template is set, timesheet assistant will not be able to work correctly to build the display name for the key events found. This commit makes sure the template field is required. ## [FIX] timesheet_grid: ignore rules without template defined Before this commit, when the user creates a rule without any template set, the timesheet assistant will no longer work because it assumes the template is required. This commit adds a condition in the domain when we fetch all AW rules, to ignore the ones without template set. Forward-Port-Of: odoo/enterprise#119411
This update corrects a previous issue that limited product options when creating sale orders on mobile devices. It now allows users to add products with `sale_ok=False` and non-rental products to rental orders, expanding flexibility. This change resolves a reported regression.
Original PR description
This commit reverts 6e8a2d9c2d80044f6ee33c96871accf0aa83f4eb which introduce regression by ignoring product domain from `_domain_product_id`. Due to this issue, you can add products with `sale_ok=False` in SOL using a phone. Also you could add non-rental product in rental orders. opw-6218312 Forward-Port-Of: odoo/odoo#268331
This update resolves a technical error that prevented PDFs from being attached to invoices when using the Nilvera e-invoice system. The fix ensures that the system correctly handles the raw PDF data returned by the Nilvera client, aligning with how invoices are processed. This ensures invoices with PDF attachments are correctly generated.
Original PR description
This commit resolves an error encountered when running on Python 3.14, which enforces stricter base64 validation. When adding a PDF to the invoice, the PDF is fetched using the Nilvera client. This client performs an HTTP request and returns a raw binary response, not a base64 representation. However, the Attachment interface handles raw binary data via the 'raw' field, whereas the 'datas' field strictly expects base64-encoded values. runbot-938173 Forward-Port-Of: odoo/odoo#266718
This update fixes a potential issue where state deductions exceeding employee gross income could result in incorrect, negative taxable income calculations on payslips. The change ensures that taxable income defaults to zero in these scenarios, preventing misinterpretations and ensuring accurate payroll reporting. This improves the reliability of US payroll data.
Original PR description
This commit simply defaults the computed taxable income amount to 0 in case the state deductions are greater than their gross income. Otherwise our payslips would imply that these employees are owed money by the state opw-5137280 Forward-Port-Of: odoo/enterprise#104093 Forward-Port-Of: odoo/enterprise#98114
4 changes
Resolved issues and error corrections
This update resolves a bug where the size of country flags on the Visitors reporting page was unexpectedly changing, particularly after installing the livechat app. The fix also ensures that flags correctly respond to size adjustments made through the Studio customization tool, preventing them from disappearing.
Original PR description
The website.visitor.view.kanban view uses the o_country_flag class which is not defined anywhere besides livechat_channel_info_list.scss. This causes unintended behavior where the flag size for the kanban view on ' Website > Reporting > Visitors ' changes when installing the livechat app. Additionally, the image_url_field.js file does not address cases when height/width are not set. This results in the flags (or any other image using 'widget="image_url"' disappearing (being set to a 'width: 0px') whenever their Size is set via Studio. This change makes it so that the flags don't disappear when altered in Studio (but does not make them actually respond to size changes) Related tickets: opw-5962151, opw-5995004 Forward-Port-Of: odoo/odoo#251618
This update corrects a previous error in the Swiss payroll module (l10n_ch_hr_payroll) that incorrectly calculated activity rates based on individual employees. Now, the calculation is based on the Odoo version, ensuring accurate reporting and compliance for Swiss payroll requirements. This change improves the reliability of payroll data.
Original PR description
…ployee Forward-Port-Of: odoo/enterprise#119658
This update corrects a previous issue that limited product options when creating sale orders on mobile devices. It now allows users to add products with `sale_ok=False` and non-rental products to rental orders, expanding flexibility. This change resolves a reported regression.
Original PR description
This commit reverts 6e8a2d9c2d80044f6ee33c96871accf0aa83f4eb which introduce regression by ignoring product domain from `_domain_product_id`. Due to this issue, you can add products with `sale_ok=False` in SOL using a phone. Also you could add non-rental product in rental orders. opw-6218312 Forward-Port-Of: odoo/odoo#268331
This update fixes a reporting issue by now logging a specific message when new business partners are created through Google or Microsoft Calendar synchronization. Previously, all new partners received a generic message. This change provides clearer tracking of partners originating from calendar integrations, aiding in troubleshooting and reporting.
Original PR description
Before we were logging the new created partners default message. Now we log custom message indicating that this partner was created from Calendar sync. task-6177363 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#264392
2 changes
Resolved issues and error corrections
This update corrects a previous issue in the Swiss payroll module (l10n_ch_hr_payroll) that incorrectly calculated activity rates based on individual employees. Now, the calculation is based on the Odoo version, ensuring consistent and accurate reporting for Swiss payroll accounting. This change improves the reliability of payroll data.
Original PR description
…ployee
This update addresses a change in how Chrome 148 displays Sundays when using the th_TH locale. The fix adjusts the test to accommodate the browser's Intl API output, ensuring consistent and accurate date formatting for Thai users. This maintains correct date presentation without requiring any new functionality.
Original PR description
Chrome 148 changed the display format for Sundays in the th_TH locale. This commit modifies the test to expect either the full or abbreviated day name, depending on what the browser Intl API actually returns.
2 changes
Resolved issues and error corrections
This update fixes an issue where certain configuration settings, specifically a 'bin_path' option, weren't being saved to the system's configuration files when using the '--save' command. This change ensures that any custom settings defined in a configuration file are consistently preserved across saves, maintaining the desired system setup. This improves the reliability of the system's configuration.
Original PR description
Have a configuration file with a "bin_path" entry. Use that config file and --save it. The "bin_path" entry is removed from the new config file, it should had been persisted. The problem is common to all "undocumented options", options that did not exist in `config.py` before ConfigCleaner(7) and that were not created upon --save. We can argue about creating or not those options upon --save with the default config, but what's sure is that when the option be set in the config file, then it must be persisted across saves. Task-6106771 Reference-to: 80007415d621 ([REF] core: ConfigCleaner(7) remove deprecated options) Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258377
This update resolves an issue where the commission report displayed empty groups when linked to inactive commission plans. By excluding these plans from the report, the report now accurately shows populated groups, providing a cleaner and more reliable view of commission achievements. This ensures accurate reporting for sales teams.
Original PR description
Steps to reproduce: 1. create a commission plan 2. invoice an SO with the linked salesperson to the plan to progress towards the target 3. Archive the commission plan 4. Go to Sales > Commissions > Commissions 5. Remove all filters The `sale.commission.report` includes empty groups for `sale.commission.achievement.report` that are linked to inactive commission plans By excluding said plans from the initial join, the report would display populated groups only without the clutter. opw-6177132 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#117615
7 changes
New functionality added to Odoo
This update adds visually engaging, themed banners to the Odoo Enterprise dashboard warning list. These banners change monthly to provide a more user-friendly and informative experience for employees. The change improves the overall look and feel of the dashboard.
Original PR description
This commit adds a playful thematic banner for each month in the dashboard warning list. task-6074778 <img width="1216" height="931" alt="Screenshot 2026-04-24 at 17 52 38" src="https://github.com/user-attachments/assets/1203cd33-b400-4e40-8cca-941bcce7341c" />
This update introduces two new demo branches – a Belgian office and a restaurant – within the Odoo Enterprise Belgian payroll module. It includes sample employee data (Bernice Jensen, Ramona Franklin, Eduardo Kelly, Max Durand) to demonstrate payroll processing for different business types. This enhances the demo's realism and usability for testing and training.
Original PR description
Add two branches to the Belgian demo company with their employees: - My Belgian Office (JC 200, cat. 010): Bernice Jensen, Ramona Franklin - My Belgian Restaurant (JC 302, cat. 017): Eduardo Kelly, Max Durand task-6197243
Enhancements to existing features
This update enhances the user experience when creating new folders within the Documents module. Now, users can directly enter a custom folder name instead of accepting the default 'New Folder' name, making the process more intuitive and flexible. This change improves usability and streamlines folder creation.
Original PR description
**Specifications:** When clicking the '+' icon to create a new folder, open a dialog box, that allow the user to enter a folder name instead of using the default name: 'New Folder'. Task-6147707
This update improves the My Planning feature by automatically assigning the current user to a shift when a resource is selected during creation. This simplifies the scheduling process for users, aligning with their typical workflow of self-scheduling. It reduces manual effort and ensures users are immediately associated with the shifts they create.
Original PR description
When creating a shift from My Planning, users are usually scheduling their own work. So it makes sense that they should be automatically assigned to the shift when their resource is selected. task-6178388
Resolved issues and error corrections
This update enhances the accuracy of vendor credit note reporting within the Odoo Enterprise system. Specifically, the system now prioritizes using the 'bill reference' when generating reports for vendor credit notes, ensuring more reliable data. This change maintains the previous fallback behavior for compatibility.
Original PR description
With this commit, we update the report to prioritise the bill reference for vendor credit notes while keeping the previous fallback behaviour task-6235022
This update fixes a problem where payruns were incorrectly marked as cancelled after removing individual payslips. The change ensures payruns remain valid even after edits, preventing disruptions in payroll processing. This improves the reliability of payrun management.
Original PR description
Fixes the following bugs in payruns: BUG 1: - create a payrun, leave it in draft - create a single payslip, add it to the previously created payrun. The payslip employee will appear in the payrun employee list - for the previously created payslip, remove it from the payrun - go back to payruns kanban view, the payrun will results as cancelled even if there still were other employee entries in it (the one defined at start) BUG 2: - create a payrun, leave it in draft - create a single payslip, add it to the previously created payrun. The payslip employee will appear in the payrun employee list - go on the payrun and clicking on the button "Off-Cycle" for the separately-created payslip This adds other employees not originally on the payrun task: 6237460
Features or functions removed from Odoo
This update removes outdated VAT and WHT tax return types from the Odoo Enterprise Pakistan localization. This change aligns the system with current Sales Tax Act requirements, streamlining reporting processes and ensuring compliance. The update was coordinated with related community and upgrade PRs.
Original PR description
As part of the broader restructuring of the Pakistan localization's tax engine to align with the Sales Tax Act, 1990, the percentage-based VAT and WHT tax return types have been removed. Related Community PR: https://github.com/odoo/odoo/pull/264703 Related Upgrade PR: https://github.com/odoo/upgrade/pull/10241 task-6044680
2 changes
Resolved issues and error corrections
This update prevents managers from clearing the assigned manager on card expenses when an expense is approved. The change makes card expenses more reliable by ensuring manager assignments persist, simplifying expense tracking and reducing manual intervention.
Original PR description
**Issue** If a manager was manually set on a card expense after it was created, it would be cleared when the expense was approved. **Change** Make the field readonly for card expenses, the idea is that the manager shouldn't need to approve card expenses since they are able to control them via the card itself. opw-6045587
This update addresses a warning during the Odoo migration process related to account identifiers. The previous attempt to fix this issue was ineffective and has been reverted. This change ensures that account identifiers are correctly available during migration, preventing errors and maintaining data integrity.
Original PR description
This reverts commit 2d4baefedfa4bce570a37195abf5c830517b2435. The commit failed to solve the issue it was trying to solve. In 19.0, accounts a4121 and a4521 were added in the belgian chart template of the community module and are being directly used in the partner template and reco model of the enterprise module. The issue is that during the migration, the xmlids of the freshly created accounts are not available for use that soon and the migration raises warnings for impossible to resolve xmlids. The first fix, the reverted commit, did not successfully solve the error as it targeted the accounts creation instead of the resolving of the xmlids and is now a commit that serves no purpose and complexifies the code with useless logic. See runbot-[233845](https://runbot.odoo.com/odoo/error/233845)
4 changes
Resolved issues and error corrections
This update fixes a visual issue in the portal where the Follow/Unfollow button appeared misaligned due to excessive padding. The problem was caused by a duplicated padding style being hardcoded in the portal chatter UI. Removing this duplication resolves the alignment issue and ensures a consistent user experience.
Original PR description
**Steps to reproduce:** 1. Log in as a portal user. 2. Open a shared project and then open any task within it. 3. Observe the vertical spacing above the Follow/Unfollow button and the chatter component. **Issue:** The chatter UI has incorrect vertical spacing, causing elements like the Follow/Unfollow button to sit too far down and appear misaligned. **Cause:** The pt-2 padding class was hardcoded in two separate locations: 1. The compileChatter wrapper in project_sharing_form_compiler.js. 2. The portal.Chatter XML template. When combined this caused a double-padding effect forcing excessive space. **Fix:** Removed the hardcoded pt-2 class from both the JavaScript compiler wrapper and the core XML template. This eliminates the double-padding conflict. This resolves the alignment issue in Project Sharing and does not affect the layout or functionality of other portal components. task-4203362
This update removes a specific message from invoice footers for B2C customers. Previously, invoices not sent via PEPPOL displayed an irrelevant message. This change ensures a cleaner and more professional experience for our B2C clients by tailoring the invoice presentation to their needs.
Original PR description
Currently, if the invoice was not sent through PEPPOL, it is indicated in the mail footer. However, this message is not appropriate for B2C customers. To avoid this, we remove this footer for customers with empty or '/' VAT (B2C). task-6167439 Forward-Port-Of: odoo/odoo#262412
This update prevents Odoo from generating empty ICS calendar files when users attempt to add open shifts to their calendars. Previously, an empty file was created when a matching time slot wasn't found, which caused confusion. Now, the ‘Add to Calendar’ button is hidden and ICS files are only generated when a valid shift is linked to an employee.
Original PR description
**Step:** - install planning - create a resource - create an open shift for a future date - in Gantt view: - publish shift and select the created resource - click “Publish & Send” - check the email and click “Add to Calendar” **Issue:** Currently, clicking “Add to Calendar” generates an empty ics file. **Reason:** During ics file generation, the planning token to find a slot using the planning date and employee. but, no matching slot is found, so the process returns an empty slot, resulting in an empty ics file. **Fix:** Generate the `planning_url_ics` only when a slot is linked with an employee. Otherwise, hide the “Add to Calendar” button and do not generate the ics file.
This update resolves an issue where the French VAT report generation incorrectly included " False" in XML files when the street address was short and 'street 2' was not used. This prevented the reports from processing correctly. The change ensures accurate XML output for French VAT reports, improving report generation reliability.
Original PR description
When the street field is shorter than 30 char and street 2 is false, we end up with " False" in the xml, which will return an error in aspone. no task id
6 changes
Resolved issues and error corrections
This update removes a specific message from invoices when they aren't sent via PEPPOL, which was inappropriate for Business-to-Consumer (B2C) customers. By removing this footer for invoices with empty or '/' VAT numbers, we ensure a cleaner and more professional experience for our B2C clients.
Original PR description
Currently, if the invoice was not sent through PEPPOL, it is indicated in the mail footer. However, this message is not appropriate for B2C customers. To avoid this, we remove this footer for customers with empty or '/' VAT (B2C). task-6167439
This update simplifies invoice sending by no longer automatically selecting the 'By Peppol' method for customers in Greece, Italy, Poland, Puerto Rico, and Romania. Previously, this setting was incorrectly applied to these countries, causing unnecessary complexity for users. Now, the 'By Peppol' method will only be used for customers in designated default countries.
Original PR description
Current behavior before PR: - If the customer has a valid Peppol endpoint, the 'By Peppol' invoice sending method is selected by default. - For countries like 'GR,' 'IT,' 'PL,' 'PO,' and 'RO,' peppol is not mandatory or not used for sending invoice. It brings noise and it bothers the users. Desired behavior after PR is merged: - The 'By Peppol' invoice sending method is set to true by default only for customers from PEPPOL_DEFAULT_COUNTRIES. Changes Implemented: - Moved the countries 'GR', 'IT, 'PL', 'PO', and 'RO' from PEPPOL_DEFAULT_COUNTRIES to PEPPOL_LIST. - Added condition to set 'By Peppol' invoice sending method to true when customer is from PEPPOL_DEFAULT_COUNTRIES. task-6072935
This update fixes a warning related to how Odoo generates PDFs using the PyPDF library. The change ensures the PDF generation process is compatible with newer versions of PyPDF, preventing potential errors and maintaining stable PDF output. This improves the reliability of our PDF reports.
Original PR description
In recent versions of PyPDF, modifying a `PageObject` directly from a `PdfFileReader` instance triggers a `PageObject.replace_contents` deprecation warning. As identified in the pypdf library's architecture updates (specifically PR #3638 [^1] and PR #3669 [^2]), a reader's page is intended to be read-only. Mutating it directly (e.g., using `mergePage` or `compressContentStreams`) before attaching it to a writer can break internal object references and cause `NullObject` errors. This commit resolves the warning by inverting the order of operations to ensure we only mutate writable objects. The fix implements the following flow: 1. Add the unmodified source page directly to the `PdfFileWriter`. 2. Retrieve the newly created, writable output page. 3. Apply `mergePage` and `compressContentStreams` exclusively to the writer's copy of the page. [^1]: https://github.com/py-pdf/pypdf/pull/3638 [^2]: https://github.com/py-pdf/pypdf/pull/3669
This update fixes a bug that caused duplicate vendor bills to be created when importing XML bills with identical filenames. The issue stemmed from incorrect attachment linking during the initial document creation process. This ensures accurate bill generation and avoids redundant records.
Original PR description
Fixup of https://github.com/odoo-dev/odoo/commit/3fc85b6ed7936956abbaf8e8364bb2b288cbe289 Issue 1 - Import XML bill into documents app - Create vendor bill from the document Issue: Only the main attachment would be found in the created bill opw-6267888 Issue 2 - From the accounting app import XML bill containing two identically named documents Issue: Two bills were created opw-6231265
This update fixes an issue where users without HR access rights were seeing a placeholder image instead of their avatar in the timesheet kanban view. The fix ensures all users can see their avatar, improving the user experience and visual consistency within the HR timesheet module.
Original PR description
Steps to reproduce: ------ - Install the hr_timesheet module - Create a user without HR access rights - Create a timesheet - Log in with the above user - Open the kanban view Issue: ------- Instead of showing the employee's avatar, a placeholder image is displayed. Reason: --- The user does not have access to the hr.employee model. Fix: -------- In this commit, if the user does not have access to hr.employee, we fetch the image from the hr.employee.public model. task: 4461272
This update resolves an issue preventing users from sending Peppol invoices in demo mode. The change allows the system to assume any document type is acceptable during demo, bypassing the usual partner acceptance checks. This ensures seamless testing and demonstration of the Peppol integration.
Original PR description
1. Activate Peppol Demo; 2. Enable "Self-Billing" on the purchase journal; 3. Create a bill and send it via Peppol; 4. Error message: "The partner has indicated it does not accept this document type, so you cannot send this invoice via Peppol". In _peppol_lookup_participant we always return None if we are in demo mode. For the _can_receive_self_billing, we will assume that in demo mode, the partner can accept any document type. opw-6250067 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