Daily updates from Odoo
Thursday, February 13, 2025
15 changes · 18.0
Enhancements to existing features
Peppol registration now automatically chooses the correct role based on whether the company is already registered with another service provider. This reduces manual setup errors and helps ensure companies are registered in a way that complies with Peppol rules.
Original PR description
If the user is already registered on another SMP, we know we can only register him as a sender. If not, we have to register him as a receiver. A user can't be only a sender on Peppol. task-4394408
When an accounting document is reset to draft, files previously generated for sending or printing are now detached. This lets users edit the document and generate fresh, accurate files afterward, reducing the risk of outdated attachments being reused.
Original PR description
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. Task [link](https://www.odoo.com/odoo/project.task/4498564) task-4498564 Enterprise PR: https://github.com/odoo/enterprise/pull/78429
Bank records are now archived when users try to remove them, helping preserve historical information while keeping inactive banks out of normal views. Users also get clearer controls and filters to manage archived banks from the bank form and list screens.
Original PR description
This commit will do multiple thing: - Override the unlink to archive instead - Addings archived filter - Adding a button in the form view to archive it and reload - Adding the active field to the list view - Change some optional show and hide task-4507042 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When an accounting document is reset to draft, files previously generated for sending or printing are now detached so they do not remain tied to an outdated version. This lets users edit the document and regenerate the correct files afterward, reducing the risk of sending stale attachments.
Original PR description
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Community PR: https://github.com/odoo/odoo/pull/195626
French VAT reporting now generates the required 3519 declaration when a company requests a VAT reimbursement, ensuring the reimbursement filing is sent correctly through AspOne. The update also prevents an error when creating electronic VAT filings for periods with an empty closing entry.
Original PR description
The declaration 3519 is also needed when we ask for a reimbursement. We currently can't group them (as the fields definition don't allow it), so we will keep them separated. It is sent the same way to AspOne. task-4328721
Resolved issues and error corrections
Employees without Time Off administration rights could be blocked from opening their Time Off dashboard when one of their allocations used an accrual plan. This fix ensures the dashboard can check the needed accrual plan details safely, preventing an access rights error for regular employees.
Original PR description
Accrual plans are not readable for regular users, so once a user has an accrual plan set on one of their allocations, they cannot open their time off dashboard. Access rights error gets thrown. The…
Accrual plans are not readable for regular users, so once a user has an accrual plan set on one of their allocations, they cannot open their time off dashboard. Access rights error gets thrown. The bug was supposedly fixed in commit: https://github.com/odoo/odoo/commit/30f7fe62ef2579ed0a0c3ad9dbec5edf2ca60b18 but it did not consider adding the sudo() for the condition based on the carryover_policy. Steps to Reproduce on Runbot: As Mitchell Admin: 1. Install Time Off app 2. Create a time off type (show in dashboard,requires allocation) 3. Create an accrual plan (accrued_gain_time: end, carryover_date: year_start) 4. Create a rule for the accrual plan (Accumulate 0.5 days, month at the 1st of the month, carryover policy is either none or maximum) 5. Create an allocation for Marc Demo,who has no time off rights, for the time off type. Set to accrual allocation and link to the accrual plan.Then, set the start date to the 1st of the month and run until some future date. As Marc Demo: 1. Attempt to click into the Time Off app 2. Observe Access Right error opw-4551392 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Product pages are now accessible to public shoppers when the “Pick up in store” delivery method is enabled. This prevents affected e-commerce visitors from seeing a 403 error and helps keep the shopping experience uninterrupted.
Original PR description
__Current behavior before commit:__ Since [this pr][1], a 403 error appears on the product page if the "Pick up in store" delivery method is set. __Description of the fix:__ Add a missing sudo on the `product_or_template` like it is done 2 lines above. __Steps to reproduce the issue on runbot:__ 1. Configure and publish the delivery method "Pick up in store" 2. Go to a product page in the e-shop as a Public User opw-4574924 [1]: https://github.com/odoo/odoo/pull/195033
Internal users can now mark portal messages as to-do by toggling the star, and the portal correctly reflects that status. This fixes a visible workflow issue for users who manage messages from the portal and adds coverage to prevent regressions.
Original PR description
Before this PR, toggling the star on a message (`Mark as Todo`) didn't work for internal users, even though the feature is available to them in the portal environment. This happens because: - The…
Before this PR, toggling the star on a message (`Mark as Todo`) didn't work for internal users, even though the feature is available to them in the portal environment. This happens because: - The `starred` value is not sent with the message data when fetching the messages in the portal. - Sending over the bus is not available in the portal. This PR fixes the issue by returning the proper data either when fetching the messages or when toggling the star. There is an extra query when calling `portal_message_format` because of `mail_message_res_partner_starred_rel`. Also, there is `sometimes` another extra query when calling `portal_message_format` on multiple messages depending on which partner is already in the cache. This is what happens: Without extra query: - Query on res_partner by `_read_format` for `5 partners` - Computing starred starts (_compute_starred) - Query for mail_message_res_partner_starred_rel - Computing starred ends With extra query: - Computing starred starts (_compute_starred) - Query for mail_message_res_partner_starred_rel - Query on res_partner by `_read_format` for `4 partners` - Computing starred ends - Query on res_partner by `_read_format` for `1 partner` Although it doesn't happen all the time, this PR considers an extra query count for this process to avoid unwanted crashes on related tests. task-4526370
Fixed how taxes are calculated when fixed or points-based discounts are applied to sales orders. This ensures tax amounts reflect the actual reduced product price, helping businesses stay aligned with accounting and tax requirements.
Original PR description
Commit db12319e8b3b662a1498ee9a519fbced457174cc introduced a wrong behaviour for the discounts applied to an order when they are fixed or depending on the number of points. With this commit, the taxes applied would the ones set on the reward product if at least one line in the sale order had these taxes. Disregarding any other taxes applied, or not setting taxes at all. This was done to facilitate the reading of a sale order. Accounting wise, this is wrong. A product is paid less, so less taxes needs to be recorded. It's not optimization, it's regulation. Reverting part of db12319e8b3b662a1498ee9a519fbced457174cc to evaluate how to ease the user life without having them getting on the warpath of their accountant. opw-4486030 TODO in master: take off taxes fields.
This fixes a validation gap that allowed more than one reference unit in the same unit category when editing inactive records before saving. The change protects data consistency and avoids upgrade problems caused by invalid unit relationships.
Original PR description
Steps to reproduce: * Open the form view of any UoM category. * Add a new line in the units list. * Without saving, Uncheck "Active" checkbox. * Before saving, change the type of this unit to reference. * Save the form. Expected behavior: An error should be thrown as it's not allowed to have more than one reference unit for some category. Current behavior: The record is normally saved without any errors. This issue caused an inconsistency when upgarding a database in such state to saas18.1, where each unit points to its reference as a parent. Having multiple references in the same category caused a having a cycle in this link. See: https://github.com/odoo/upgrade/blob/master/migrations/uom/saas~18.1.1.0/pre-migrate.py#L16-L25 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Shared spreadsheet links that include Odoo charts now load correctly instead of showing a blank screen. This ensures recipients can reliably view shared spreadsheets containing graph-based data.
Original PR description
1. Insert a graph view into the spreadsheet. 2. Click the "Share" button to generate a shareable link. 3. Open the link in an incognito window. 4. A blank screen appears, with errors logged in the console. The condition for detecting live data in the spreadsheet was incorrect, causing shared links to break. This PR updates the condition to correctly check for the presence of Odoo charts. Task: 4551470
Subscription billing details now show recurring amounts in the order's currency, so customers and sales teams see the right values. The update also improves how the last invoiced date is identified, preventing incorrect next invoice or deferred date information in customized setups.
Original PR description
Before this commit, the _next_billing_details would not compute the amount in the currency of the order.
This fixes an issue where timesheet changes made from an employee’s grid view could be saved against the wrong person. Updates now respect the context of the page, so hours remain correctly linked after refreshing.
Original PR description
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps…
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hours for the current user 5. Update the grid cell containing a timesheet to reduce the number of hours for instance 6. Update another cell without any timesheets linked and set a hour Current Behavior ---------------- After refreshing the page and going to the same week, the changes made in step 5 and 6 are no longer applied. The reason is because those changes have generated new timesheets for the current user instead of the employee displayed in the form view before doing the step 3. Expected behavior ----------------- The grid view should be unchanged after refreshing the page, the changes made in 5 and 6 should be applied without any issues. opw-4491850
Fixed an issue where warehouse users could not create a new product from a scanned barcode when restricted product scanning was enabled for receipts. This restores the expected barcode lookup flow and prevents unnecessary blocking during receiving operations.
Original PR description
Barcode lookup is not working when activating `restrict_scan_product` Steps: - Go to 'Receipts' operations type - On the barcode tab, activate `restrict_scan_product` - Go to barcode app, receipts operation and scan a new product (eg 510002952387) -> Error: "Not the expected scan - You must scan a product" We should be able to create a new product. With this commit we make an extra check on the guilty condition in the stock_barcode_barcodelookup module opw-4429769
Fixes an issue where closing entry PDFs for past tax return periods could show the current period instead of the selected one. This helps accountants generate accurate tax documentation for historical reporting periods.
Original PR description
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This…
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This [commit](https://github.com/odoo/enterprise/commit/22878ec7e38c2a9fbf871beb239d01a42a17546a) changes `options['date']['filter']` to replace `tax_period` by the period (`'month', 'quarter', 'year'`). This causes `custom_tax_period` to be replaced by `custom_month` for example. Then in `_init_options_date` which computes the date for the report `options['date']['filter']` is checked: - If any of these strings: `'month', 'quarter', 'year'` are in the filter name then it computes the period with today's date - If `tax_period` and `custom` is in the filter name then it keeps the correct date So since this commit, `_init_options_date` always return today's date with `custom_tax_period` as filter. ### Solution: The value `custom_tax_period` wasn't expected by the commit introducing the issue and values like `custom_month` doesn't make sense. So this commit checks if `custom` is in the filter before replacing `tax_period`. opw-4543231