Daily updates from Odoo
Thursday, June 5, 2025
9 changes
1 change
Resolved issues and error corrections
Posting the closing entry for the Italian monthly VAT report no longer triggers an error during XML export. This ensures Italian companies can complete their periodic VAT reporting workflow without interruption.
Original PR description
Description of the issue this commit addresses: Since the new Tax Returns features in saas-18.3, a method that was used by the method that was generating the xml export of the italian periodic vat report was replaced by one of a different name. The one used by the xml export system has not been modified and therefore tries to call a method that doesn't exist leading to a traceback. --- Steps to reproduce: 1. Install l10n_it_xml_export. 2. Using an Italian company, go to the montly vat report. 3. Create the closing entry and post it. 4. A traceback shows up. --- Desired behavior after this commit is merged: No traceback shows up during the xml export of the italian periodic vat report closing entry posting process. --- task-4825706
1 change
Enhancements to existing features
This update removes direct user creation options from user reference fields across multiple Odoo apps. It prevents employees from triggering broken user records and avoids database errors when assigning or selecting users in everyday workflows.
Original PR description
```
* = {account_followup, appointment, approvals, documents, frontdesk, helpdesk,
hr_contract_salary, hr_payroll, hr_referral, knowledge, l10n_ch_hr_payroll_elm_transmission,
marketing_automation, mrp_pim, quality, quality_control, room/views, sale_renting,
sale_subscription, social, spreadsheet_dashboard_sale_subscription, whatsapp}
```
**Current behavior:**
When a field referencing the `res.users` model is included in an XML view, users are offered a "Create" and "Create and Edit" options. If "Create" is selected, it attempts to create the user without required fields like `login`, resulting in a database integrity error due to the NOT NULL constraint on `res_users.login`.
**Improved behavior:**
This commit disables the direct "Create" option for fields referencing `res.users`, preventing invalid record creation.
Sentry - 6263547789
Related Community PR: https://github.com/odoo/odoo/pull/2082277 changes
Resolved issues and error corrections
Quotations sent through scheduled emails are now correctly marked as sent once the email is delivered. This keeps sales teams' order statuses accurate and avoids confusion or unnecessary follow-up after scheduled customer communications.
Original PR description
Versions -------- - 18.0 Fixed in 18.1+ via 752fdb2d2718 Steps ----- 1. Create a quotation; 2. click "Send by Email"; 3. schedule the message to get sent at a later time; 4. wait for the message to send, or click "Send Now" in the chatter; 5. refresh the page. Issue ----- Quotation state did not get set to `sent`. Cause ----- Before this commit, marking the quotation as `sent` happened via a context value. This worked for earlier versions, but with the introduction of scheduled messaging, the context is no longer available when the scheduled message gets sent. Solution -------- Add the `mark_so_as_sent` context value to the `notification_parameters` field of `mail.scheduled.message`, and check for this value in the `_post_message` method that gets called when sending the message. If present, re-introduce the context value in the call to `super`. opw-4794010
Pasted formatted text in the HTML editor now blends correctly with existing matching formatting instead of creating duplicate nested styles. This prevents visual issues such as overly bold text and helps keep edited content clean and consistent.
Original PR description
### Description of the issue/feature this PR addresses: - When pasting formatted content (like `<strong>` or `<font>`) into a region that already had same formatting, it caused nested identical tags, leading to exaggerated styling (e.g., "double bold"). ```html <!-- User pastes <strong>text</strong> inside <strong> --> <p><strong>text []</strong></p> <!-- Resulting HTML --> <p><strong>text <strong>text</strong>[]</strong></p> ``` ### Desired behavior after PR is merged: - Prevents unwanted style amplification by unwrapping nested identical formatting tags. ```html <!-- Resulting HTML --> <p><strong>text text[]</strong></p> ``` task-4715409 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Calendar sync with Google Calendar will no longer send invitation or update emails for events that have already ended. This reduces unnecessary notifications and prevents users from receiving confusing messages about old meetings.
Original PR description
### Description of the issue/feature this PR addresses: Prevent sending unnecessary invitation or update emails for events that have already ended by introducing a method to check if an event is over. ### Current behavior before PR: Event updates/ new syncs with google_calendar might trigger email notifications, even for past events, causing useless invitations/ updated invitations to users. ### Desired behavior after PR is merged: Email notifications are only sent for active or future events. Creation-from-sync / Updates to past events that have already ended are no longer triggering emails. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr task-4684432
Sales orders now show the correct stock availability status when products are delivered through internal warehouse steps. This prevents orders with enough reserved stock from being incorrectly marked as unavailable, helping sales teams trust the forecast indicator.
Original PR description
*: sale_stock Issue: ====================== The forecast availability(icon) on the sales order incorrectly appears red even when enough stock is available for products in multi-step deliveries. Steps…
*: sale_stock Issue: ====================== The forecast availability(icon) on the sales order incorrectly appears red even when enough stock is available for products in multi-step deliveries. Steps to Reproduce: ====================== 1. install sale_management & stock module. 2. Activate multi-step delivery in the warehouse. 3. Sell a product that has sufficient stock. 4. Ensure that enough quantities are reserved on the created picking. 5. Check the forecast availability(icon) on the sale order. Issue: ====================== The 'is_consuming' method is not considered for internal transfer moves during forecast availability computation. This leads to incorrectly flagging the forecast icon as red on the Sales Order, even when sufficient stock is available and reserved. With this commit: ====================== This fix ensures that the forecast icon correctly reflects stock availability by considering internal transfers in a multi-step delivery. the icon currently appears green on the Sales Order when there is enough stock to fulfill the demand. task - [4555666](https://www.odoo.com/odoo/project/966/tasks/4555666)
Budgets can now be created without tying them to a specific company, making them usable across multiple companies. Access rules were adjusted so users can still see company-specific budgets they are allowed to access, as well as shared budgets with no company set.
Original PR description
Previously, the `company_id` field on `budget.analytic` was mandatory. - Removed the `required=True` constraint on the `company_id` field in the `budget.analytic` model. - Updated the record rules `budget_comp_rule` and `budget_lines_comp_rule` to allow access to records where `company_id` is either in the user's companies or unset (`False`). task-4677599
Fixes an issue that prevented Belgian Intrastat Services reports from being exported as XML. Businesses can now generate the required services declaration file without encountering an error during export.
Original PR description
Context: The Belgian localisation has two Intrastat report handlers: - Goods: `l10n_be_intrastat.models.account_intrastat_report` - Services: `l10n_be_intrastat_services.models.account_intrastat_services_report` `account_intrastat_report.be_intrastat_export_to_xml()` is the single export entry-point for both. It always calls an internal helper named `_be_intrastat_get_xml_file_content(options, results, company)` and then serialises the returned string. Why it failed: 1. Signature drift The services override expected a fourth positional argument (`date`), so the shared entry-point raised a `TypeError`. 2. Wrong template prefix The helper tried to render `l10n_be_intrastat.intrastat_services_report_export_xml`, but the template is stored under `l10n_be_intrastat_services`, leading to a `ValueError`. This commit drop the unused `date` parameter and compute the period from options the same way we do in the other function. opw-4834279
The Customer Statement button now appears when a customer has an outstanding ledger balance, even if they do not have an invoice. This restores the expected behavior from the previous version and helps accounting users access statements for all customers with balances.
Original PR description
**Issue** In version 18.0, the Customer Statement smart button only appears if the customer has an invoice, unlike in 17.0 where it also appeared if the customer simply had a balance in their ledger…
**Issue** In version 18.0, the Customer Statement smart button only appears if the customer has an invoice, unlike in 17.0 where it also appeared if the customer simply had a balance in their ledger **Steps to Reproduce** 1. Install the Accounting module 2. Go to Accounting > Accounting > Journal Entries 3. Create a new Journal Entry 4. Set one line to account 121000 (Accounts Receivable), assign partner "Administrator", and debit $100 5. Set the other line to account 101401 (Bank), and credit $100 6. Post the journal entry 7. Navigate to Accounting > Customers > Customers 8. Open the "Administrator" customer record 9. Notice that the Customer Statement smart button is not displayed **Root Cause** The visibility of the smart button is incorrectly tied to the presence of posted invoices (account.move), instead of the existence of any outstanding balance on the customer account **Fix** Adjust the visibility logic to show the Customer Statement button if the customer has any ledger balance, even without invoices. This restores the behavior present in 17.0 Opw-4787174