Daily updates from Odoo
Friday, November 22, 2024
40 changes
5 changes
Resolved issues and error corrections
This fixes an internal website test so it no longer depends on optional demo data being available. It helps keep automated validation reliable and prevents false build failures, without changing the user-facing website experience.
Original PR description
[Runbot Error 107975](https://runbot.odoo.com/web#id=107975&model=runbot.build.error)
This fixes an issue in the self-ordering point of sale test setup where tax information could be missing when no company country was configured. It helps keep automated checks stable and reduces false failures during development validation.
Original PR description
tax_group_id was not set since company_id was didn't have any country and class wasn't extending from common class. runbot id: 105616
Project users could encounter access errors when creating or updating tasks linked to billable projects if they did not have permission to view the related sales documents. This fix allows the system to retrieve the needed sales information in the background so task creation and updates work smoothly without expanding the user's sales access.
Original PR description
# First fix Steps to reproduce: ------------------- 1. Install Project and Sales apps 2. Log in as admin user (e.g. Mitchell Admin), and create a billable project for a customer A 3. Invite user B…
# First fix Steps to reproduce: ------------------- 1. Install Project and Sales apps 2. Log in as admin user (e.g. Mitchell Admin), and create a billable project for a customer A 3. Invite user B (e.g. Marc Demo) to the project 4. Only give project (user) access rights to the user B, remove all other access rights 5. Create an SO with customer A as partner, add a service product (e.g. Junior Architect), confirm the SO and create a timesheet 6. Log in as user B, create a task in the billable project from the task form, make sure customer A is set as partner 7. Save the task, an access error is raised Fix: ------------------- When creating a new task from the form, _inverse_partner_id() is called, which calls task._get_last_sol_of_customer(). As the user has no Sales access, the search of the SOL in _get_last_sol_of_customer() will raise an Access Error in such case. We add a sudo() before calling _get_last_sol_of_customer() to give the user access to the SOL we are looking for. # Second fix Steps to reproduce: ------------------- 1. Configure a user with the project > user and sales > user: own documents access rights 2. Log in with this user 3. Create a task in a billable project (e.g. for Deco Addict) 4. The compute automatically sets an SOL but the current user doesn't have access to the SOL (make sure that the user does not have access to the SOL that is set) 5. Error when trying to update the value of the SOL Fix: ------------------- We add a sudo() in _get_partner_display() to give the user access to the SO. As the user may not have access to the SO of the SOL that is currently set in the task. task-4207245 version-17.2 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes avatar tag fields show the same background color as other invalid fields. It improves visual consistency in forms and helps users more clearly recognize validation issues.
Original PR description
Before this commit, the invalid `many2many_tags_avatar` input has two layers of transparent background-color so the two colors stack one uppon the other one and so we had a inconsitancy color with others invalid field.
This commit adds the `.o_field_many2many_tags_avatar` so the following CSS rules are also apply like on the `.o_field_many2many_tags`. And so the child input has `background-color: transparent` when the input is invalid.
```css
.o_input {
--o-input-background-color: transparent;
}
```
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update brings the spreadsheet component up to the latest version with fixes for collaboration, lookup formulas, data validation, and formula recalculation. Users should see fewer spreadsheet errors and more reliable behavior, especially when working with read-only sheets or complex formulas.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/139e5a37f [REL] 17.2.27 Task: 0 https://github.com/odoo/o-spreadsheet/commit/807866cd0 [FIX] collaborative: don't…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/139e5a37f [REL] 17.2.27 Task: 0 https://github.com/odoo/o-spreadsheet/commit/807866cd0 [FIX] collaborative: don't snapshot in read-only mode Task: 4344187 https://github.com/odoo/o-spreadsheet/commit/4347a9d46 [FIX] functions: Fix error message of some Lookup functions Task: 4320993 https://github.com/odoo/o-spreadsheet/commit/3961b21fc [FIX] functions: XLOOKUP linear search crashes without lookup values Task: 4320993 https://github.com/odoo/o-spreadsheet/commit/350728d92 [FIX] config: Update task url Task: 0 https://github.com/odoo/o-spreadsheet/commit/fd31d5f58 [FIX] Datavalidation: coreView plugin should not dispatch Task: 4241141 https://github.com/odoo/o-spreadsheet/commit/efdc06bbc [FIX] functions: remove MFILL from source Task: 0 https://github.com/odoo/o-spreadsheet/commit/45b5e0cbf [FIX] evaluation: log when reaching maximum iterations Task: 4252800 https://github.com/odoo/o-spreadsheet/commit/bb85e4430 [FIX] evaluation: Ensure dependency invalidation for array formulas Task: 4252800 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
2 changes
Resolved issues and error corrections
Recruitment report pivot tables now open the correct list of applicants when a user clicks a specific cell. This helps hiring teams review the relevant candidates faster and avoids confusion from seeing unrelated applicants.
Original PR description
The drill down, ie. clicking on a cell, in the recruitment report pivot views was not working as intended. When a cell was clicked it would show all applicants, rather than the relevant applicants to this cell. This PR fixes that, by making sure relevant data is fetched. Task-4247486
Long project names no longer overflow on timesheet Kanban cards. This keeps the timesheet view tidy and easier to read, reducing layout issues for users managing projects.
Original PR description
Before: The project name was overflowing in the Kanban card, causing layout issues. After: The project name now displays correctly within the Kanban card. Fix: Adjusted CSS classes to the Kanban card to properly handle long project names. Task:4198771
20 changes
Resolved issues and error corrections
This update refines the look and spacing of Odoo Discuss messages, replies, reactions, mentions, and messaging menu items in both light and dark themes. The changes make conversations easier to scan and improve visual consistency without changing functionality.
Original PR description
- message bubble more distinct from background with darkened border - messaging menu item have less horizontal spacing in desktop - messaging menu item preview has bigger emojis like messages -…
- message bubble more distinct from background with darkened border - messaging menu item have less horizontal spacing in desktop - messaging menu item preview has bigger emojis like messages - messaging menu dark theme spacing matches white theme (was missing border color) - message reactions have slightly smaller emoji size - discuss sidebar quick search is more aligned with other items - message in reply background matches original message color and has is more distinct from replied message - mention in dark theme is shinier, somewhat same contrast with regular text content than in white theme Before / After (white) <img width="2555" alt="0-before-white" src="https://github.com/user-attachments/assets/a99a0873-ae93-4c8d-a3f3-a1c30f232c29"> <img width="1280" alt="0-after-white" src="https://github.com/user-attachments/assets/c826f29c-ed2c-47fe-bac3-77c967aeb39b"> Before / After (dark) <img width="2558" alt="0-before-dark" src="https://github.com/user-attachments/assets/f523a131-8765-4d57-b167-d8f370ca33b5"> <img width="2556" alt="0-after-dark" src="https://github.com/user-attachments/assets/06cb3cf5-ed2e-4527-bd57-27b54fe89bea">
Updates the spreadsheet component to the latest version with fixes for formula evaluation, copy/paste behavior, browser clipboard support, and collaboration in read-only mode. Users should see fewer crashes, clearer lookup errors, smoother spreadsheet editing, and small visual improvements to charts.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9eb34d905 [REL] 18.0.5 Task: 0 https://github.com/odoo/o-spreadsheet/commit/434c06097 [FIX] composer: overflow on…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9eb34d905 [REL] 18.0.5 Task: 0 https://github.com/odoo/o-spreadsheet/commit/434c06097 [FIX] composer: overflow on composer at end of screen Task: 4315958 https://github.com/odoo/o-spreadsheet/commit/e48b96bd2 [PERF] evaluation: early return errors Task: 4328215 https://github.com/odoo/o-spreadsheet/commit/70fe23b61 [FIX] conditional format: huge revisions on copy/paste cf Task: 4240668 https://github.com/odoo/o-spreadsheet/commit/ace25cfae [FIX] collaborative: don't snapshot in read-only mode Task: 4344187 https://github.com/odoo/o-spreadsheet/commit/23037c368 [FIX] clipboard: Fix clipboard cross-browser coverage Task: 4241877 https://github.com/odoo/o-spreadsheet/commit/65b519005 [FIX] functions: Fix error message of some Lookup functions Task: 4320993 https://github.com/odoo/o-spreadsheet/commit/b90326b0f [FIX] functions: XLOOKUP linear search crashes without lookup values Task: 4320993 https://github.com/odoo/o-spreadsheet/commit/d2e1e7ff9 [FIX] config: Update task url Task: 0 https://github.com/odoo/o-spreadsheet/commit/270308d61 [FIX] PivotDimension: Prevent DnD on dimension action buttons Task: 4095643 https://github.com/odoo/o-spreadsheet/commit/64a4cbc76 [FIX] Datavalidation: coreView plugin should not dispatch Task: 4241141 https://github.com/odoo/o-spreadsheet/commit/dab74e230 [FIX] evaluation: log when reaching maximum iterations Task: 4252800 https://github.com/odoo/o-spreadsheet/commit/07c48aa0d [FIX] evaluation: Ensure dependency invalidation for array formulas Task: 4252800 https://github.com/odoo/o-spreadsheet/commit/079a126ee [IMP] chart: improve bar chart borders Task: 4283212 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Sale order lines for products that initially calculate to a zero price now keep any manually entered price when the quantity or unit of measure changes. This prevents unintended price resets and helps sales teams preserve agreed custom pricing.
Original PR description
Recent commit c584a61697e4f4d196b4a485411135a96b0f6006 introduced a mechanism to avoid recomputing prices manually defined on sale order lines. Nevertheless, it didn't consider zero-priced products. If a product whose price was 0 (after pricelist computation) was set on the line, even if the price was manually changed to another amount, it was still recomputed when quantities or uom where changed. opw-4329474
The mail composer now keeps separate lines in chatter messages independent when applying formatting. This prevents a heading or similar style applied to one selected line from unintentionally changing the entire message.
Original PR description
Steps to reproduce the issue: ============================= - Go to chatter - Write content on 2 lines - Open composer - Select first line and change the heading - Both lines are changed Origin of the issue: ==================== The content of the textarea sent to the server is `abc<br>efg`. In 17.4: We don't sanitize the content so it stays the same and we put that content into the editor. The editor will create the `p` elements to wrap the inline elements at root. In 18.0: We sanitize the content and it will pass by `lxml.html.fromstring` and it will wrap the content in a `p` element. Now we put `<p> abc<br> efg</p>` in the editor which is valid but it's considered all as the same block. Applying block-level commands like list and heading will change the whole content. Solution: ========= Wrap the textarea content inside a div when we open the mail composer. opw-4350430 opw-4346348
This fixes how Odoo checks push notification permissions on iOS, especially for users running Odoo as a progressive web app. It prevents repeated or misleading permission prompts and helps users receive notifications only when their device can actually support them.
Original PR description
Follow-up of [1] and [2] iOS push notifications do not work on Safari: they only work in apps. The notifications are managed by the apps, whether with native mobile app or PWA. With PWA, it should…
Follow-up of [1] and [2] iOS push notifications do not work on Safari: they only work in apps. The notifications are managed by the apps, whether with native mobile app or PWA. With PWA, it should normally rely on `Notification.permission`, but somehow it doesn't work and always has value "default". Its showing has been limited to the PWA, but it keeps showing a persistent notification. Clicking on it the 1st time displays a prompt to either accept or deny the permissions. Afterwards, further clicks on the "odoobot has a request" automatically display "granted" or "denied" based on user initial choice. iOS push permissions seem to necessarily rely on `serviceWorker.getRegistration().pushManager`, which works only on HTTPS, hence why iOS push notifications do not work on HTTP. Also actual push permission state are correct there whereas on Notification.permission they are wrong. This commit fixes the issue by computing the push notification permisssion state correctly on iOS, using `serviceWorker.getRegistration().pushManager`. [1]: https://github.com/odoo/odoo/pull/178057 [2]: https://github.com/odoo/odoo/pull/187038
This fixes errors that prevented portal customers from paying overdue invoices, especially when paying multiple invoices together. It also ensures the correct payment amount is used so payments are not accidentally created for zero value.
Original PR description
Currently, multiple tracebacks are occurring when the portal user tries to pay the overdue amount. **To reproduce this issue:** 1) In accounting create multiple invoices with the customer as a portal…
Currently, multiple tracebacks are occurring when the portal user tries to pay the overdue amount. **To reproduce this issue:** 1) In accounting create multiple invoices with the customer as a portal user 2) Make sure to give the due date as past date while creating the invoices 3) Now login with portal user and try to pay the due amount in the batch **Error:-** ``` PaymentPortal.overdue_invoices_transaction() missing 1 required positional argument: 'payment_reference' ``` This error occurs because we didn't provide the `payment_reference` in `_prepareTransactionRouteParams`. when executing the `overdue_invoices_transaction()` transaction route. We can resolve this issue by providing the required arguments in the ` _prepareTransactionRouteParams() ` by overriding it in the account payment **Note:-** After resolving the above bug, we are encountering two more bugs. **Bug 1:-** When making a batch payment, we are getting an ensure_one() error if the due amount spans multiple invoices. This occurs from the following line: https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/account_payment/models/payment_transaction.py#L172-L173 **Bug 2:-** After resolving Bug 1, when we try to make a payment, the amount appears as 0.0 This is because we are passing the amount value in a dictionary with the key as `payment`. while rendering the `portal_overdue_invoices_page`. https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/account_payment/controllers/portal.py#L63 https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/account_payment/controllers/portal.py#L86-L90 While rendering the `payment.form` template from `portal_overdue_invoices_page`, the amount value is missing in `this.paymentContext`, resulting in the amount being null. https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/payment/static/src/js/payment_form.js#L414-L415 This leads to a successful payment with the amount as 0.0. sentry-5741581459
Users can now upload, create, or edit quote header and footer PDF files without triggering an error. This reduces disruption when configuring sales quote documents and makes PDF handling more tolerant of valid files that were previously rejected.
Original PR description
Currently a `PdfReadError` is arising when user try upload/create/edit the Headers/Footers from the menu. To get this error: - Go to "Headers/Footers" from the "Configuration" menu. - Click "New" or "Upload" to upload the PDF file. - For existing files, re-upload through "File Content(base64)". - The error appears in the console log. Sample File: [EA-20221231-13 (1).pdf](https://github.com/user-attachments/files/17813674/EA-20221231-13.1.pdf) Error: `PdfReadError: PDF starts with 'PK␃␄␔', but '%PDF-' expected` To fix this issue, set the parameter "strict" to "False" to be lenient in checking the file type while uploading/creating. sentry-6064981257
This fixes an inventory accounting issue when changing a product's category, especially for products with negative stock. It helps ensure valuation accounts and costing behavior are applied consistently, reducing the risk of incorrect stock accounting entries.
Original PR description
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
This fix keeps website pages from unexpectedly jumping back to the top when a popup opens while animations are running. It improves the visitor experience by making animated pages and modal popups behave smoothly and reliably.
Original PR description
Since this commit [1], from which the scrolling element is no longer '#wrapwrap' but HTML, the test 'snippet_popup_and_animations' fails. This is because during animations, 'overflow-x: hidden' is added to the scrolling element (HTML). At the time a modal shows, an 'overflow: hidden' style is briefly added to the 'body' element, which causes the page to scroll to the top when a modal shows while an animation is playing on the page. To fix this unwanted behavior, we moved the 'overflow-x: hidden' rule added during animations from the HTML to the body." [1]: https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e task-4185877
Merging accounting accounts now also updates related company default settings, preventing contacts from failing to create after a merge. This avoids broken references to removed accounts when multiple companies or localizations are involved.
Original PR description
**Steps to reproduce:** - Install accountant and contacts - Create a new company - Set a fiscal localization for that company (e.g. Belgium) - Select the 2 companies in the company selector - Go to…
**Steps to reproduce:** - Install accountant and contacts - Create a new company - Set a fiscal localization for that company (e.g. Belgium) - Select the 2 companies in the company selector - Go to "Accounting / Configuration / Accounting / Chart of Accounts" - Add "Receivable" filter - Select: * [121000] Account Receivable (from the main company) * [400000] Customers (from the Belgian company) - Merge the 2 accounts - Select the Belgian company in the company selector as main company - Try to create a contact **Issue:** A traceback is raised due to a missing account record. **Cause:** There is a "User-defined default" with "property_account_receivable_id" and "property_account_payable_id" fields of "res.partner" model that is created automatically for each company. As its value (i.e. account ID) is not updated when the accounts are merged, it is using an account ID that doesn't exist anymore. **Solution:** Check the "User-defined defaults" that are linked to an "account.account" field when merging accounts. opw-4269925 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures Indian invoices and Point of Sale receipts show the correct reverse charge tax percentage in the HSN Summary. Customers now see the expected 18% rate instead of inflated percentages, improving document accuracy and compliance clarity.
Original PR description
Steps to re-produce in Invoicing app: 1. Create an customer invoice with `18% IGST RC` tax 2. Post the invoice 3. Print the PDF In the HSN Summary the expected tax percentage should be 18% but instead it displays 36% Steps to re-produce in Point Of Sale: follow the similar steps as above by creating a sale receipt in POS with `18% IGST RC` tax In the receipt HSN Summary the expected tax percentage should be 18% but instead it displays 72% By this commit we resolve the above mentioned issues --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change adds missing identifiers to French accounting bank data so the records can be reliably loaded during installs, reloads, and upgrades. It prevents upgrade checks from failing and ensures missing bank records can be created when needed.
Original PR description
Records in csv files also need an id column to create a data entry, and to be able to load the file in a mode other than init. The file can be loaded on module installation and all the records would be created without an xmlid, but once the module is reloaded or upgraded the file fails to load. It is a non blocking error for the module but if someone is missing the records then they will not be created. This issue is also blocking the CI on upgrades. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change brings back previously removed website sales stock methods because some existing websites still depended on them. It helps prevent disruptions for online stores after upgrading or running on the stable version.
Original PR description
See #181383, some methods were removed as unused anymore, but existing websites did rely on those apparently. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The HTML editor now waits until a user focuses on it before starting collaboration services. This reduces unnecessary server load and helps improve performance when editor fields are present but not being used.
Original PR description
Issue:
The Editor connect to the collaboration BUS
directly when initialized, resulting in
performances struggle on the server.
Fix:
Restore the previous default behavior to wait for the
focus before initializing the BUS connection.
task-4348299
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fix ensures GST return period forms open with the correct active record context and prevents permission errors when checking e-invoicing settings. It helps users access Indian GST reporting workflows more reliably without unexpected access issues.
Original PR description
Before This Commit: - The `open_gst_return_period_form_view` method manually set context values for `active_id` and `active_model` instead of relying on the active context. - In `action_get_irn_data`, the logic directly accessed the configurations without using `sudo`, resulting in access errors in certain cases. After This Commit: - The `open_gst_return_period_form_view` method now uses the active context instead of manually setting context values. - The `action_get_irn_data` method has been updated to use `sudo` when checking `l10n_edi_production_env`, ensuring proper access rights and preventing permission issues.
The employee appraisal form now keeps the feedback section from covering the chatter area when feedback is unpublished. This makes the form easier to read and avoids confusion during appraisal reviews.
Original PR description
**Steps:** - Install the hr_appraisal module - Open the employee appraisal form view ---- **Description of the issue/feature this PR addresses:** In the appraisal form view, when feedback is unpublished, the feedback section overlaps with the chatter area. ---- **Cause:** This issue arises due to unhandled overflow in cases where feedback is unpublished. ---- **Fix:** This PR resolves the overlap by applying CSS overflow hidden, which hides the overflowing content and prevents overlap with the chatter section. task-4320069
This fixes a problem that prevented Mexican electronic invoice cancellations from working with the PAC SW provider after a recent certificate-related change. Businesses using PAC SW can cancel invoices normally again, reducing disruption in Mexican invoicing workflows.
Original PR description
Since https://github.com/odoo/enterprise/commit/84cc09959d82dbceb4fe673b85464ef3d8630606 the cancellation no longer works with the PAC SW opw-4349251
Recruiters can now refuse an application without encountering a system error. This keeps the recruitment workflow running smoothly when the referrals and salary package modules are installed together.
Original PR description
Backport of https://github.com/odoo/enterprise/pull/70278 task-4345648
Closing a document preview now properly restores the page scrollbar. This prevents users from getting stuck without normal scrolling after viewing a file, improving day-to-day usability in Documents.
Original PR description
Purpose ======= Fix the view scrollbar which isn't restored when the file preview is closed. Specifications ============== When a file is previewed, the view scrollbar is hidden so that scrolling actions don't impact the view behind the file preview. However when the preview is closed, the scrollbar isn't restored. => Calling the documentList onDeleteCallback method to correctly restore the view and the scrollbar when closing the preview. Task-4296803
This fix restores the ability to remove tags in the Documents app without triggering an error. It ensures the tag deletion check uses the right data format, preventing a blocker for teams managing document organization.
Original PR description
**Issue:** Documents tags are impossible to remove. **Expected:** Documents tags removal allowed. **Steps to reproduce:** - Activate and navigate to the documents app; - Click on Configuration > Structure > Tags; - Attempting to delete a tag causes an error message. **Cause:** `external_ids` is a JSON object that can't be used in `search_count`, that method waiting for a list in that situation. **Fix:** Retrieve `external_ids` keys as a list. opw-4293294
13 changes
Resolved issues and error corrections
This update resolves a confusion reported by some clients regarding shift copying after using the 'copy previous week' feature. Previously, if a project linked to a shift had zero allocated hours, the shift wouldn't copy. Now, the system allows the shift to be copied even with zero allocated hours to eliminate this confusion.
Original PR description
Some clients were confused about not knowing why their shifts were not copied after setting a project to them (using the copy previous week feature). The reason was that the project linked to their shifts had allocated hours equal to 0. After this commit, if 0 hours are allocated to the project, we allow to copy the shift anyway to avoid confusion (as some clients are clearly not using this field). task-4074736 version-17.0
This update addresses small technical issues within the FedEx delivery integration module. Specifically, it improves security by replacing a potentially unsafe coding practice and enhances translation support by adding a base translation file. These changes ensure smoother and more reliable operation of the FedEx delivery process.
Original PR description
- Add .pot base translation file. - Replace potentially unsafe `const_eval()` with a `json.loads()`. - Use the built-in methods for setting filename for received files.
This update resolves an issue where the Gantt chart was displaying outdated attendance records due to a miscalculation of date ranges. The fix ensures that records with missing end dates are excluded from the chart's view, preventing inaccurate data and improving chart performance. This update addresses a technical error that could impact the accuracy of attendance reporting.
Original PR description
Steps to reproduce ================== - Install hr_attendance_gantt,web_studio - Go to Attendences - Open studio - Enable "Display total row" in the sidebar - Exit studio - Create a new entry with no end date - Switch to the week view - Go to the previous week => `Cannot read properties of undefined (reading 'pills')` Cause of the issue ================== When records don't have a dateStop value, it is set as now(). The domain included record that start before now and have no stop (so converted to now). If the current window is between the 01 and 07 Nov, and today is 14 Nov, a record starting the 09 Nov that has no end date will be included. When finding the closest date, it will be out of bound (day 8 when we only have 7). Solution ======== Those records shouldn't be included at all as the are outside the current viewable range. opw-4160977
A recent update to the Swiss payroll localization module introduced a change that impacted a key test. This fix adjusts a test to accurately reflect the new module and its functionality, ensuring continued reliability of the Swiss payroll calculations. The change is a minor technical adjustment to improve test coverage.
Original PR description
[link to broken tests](https://runbot.odoo.com/web#id=68972&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) since [this pr](https://github.com/odoo/enterprise/pull/62136), a lot of things changed in swiss payroll localization. One of the changes was introduction of new module, l10n_ch_hr_payroll_elm. This affected one of the assertQueryCount tests checking compute_sheet function, which is also overwriten in said module. Therefore, we need to increase the query count accordingly. Flamegraph of function _get_base_local_dict before above mentioned pr:  Flamegraph of same function after the pr: 
This update resolves an issue where the DIOT tax report was blank for customers using the 'Exento' tax type in Mexico. The fix removes a restriction in the data retrieval process, allowing the report to correctly display partner information for all transactions, regardless of tax type. This ensures accurate reporting for Mexican businesses.
Original PR description
### Steps to reproduce: - Install "l10n_mx" and switch to a Mexican company - Create a vendor bill with this partner using the tax "Exento" - Go to Reports -> Tax report -> DIOT.txt ### Cause: For partners that only have lines with the tax "Exento", no information are retrieved for the report. The columns "Type of third", "type of operation", "VAT", etc. are empty in the Tax report before trying to download the DIOT report. When trying to generate the txt file, the code tries to access the value "third_party_code" in a dictionary but the key is not there so an error is raised. This occurs because the tax "Exento" is "on_invoice" so there are no cash basis entry created. But in the custom query to retrieve the information of the partners it is specified the journal_id must be part of the cash basis journals. So no lines with "on_invoice" taxes were selected. ### Solution: Remove the journal restriction. opw-4312155
This update resolves an issue where commission calculations were failing when some invoices had incomplete start and end dates for subscriptions. The fix ensures that the system only considers valid dates for maximum and minimum calculations, preventing errors and ensuring accurate commission generation.
Original PR description
Following 81dce8461c7, when only some of the invoice lines have subscription start/end date, the commission generation crash when computing the maximum end date or minimal start start: ``` TypeError: '>' not supported between instances of 'bool' and 'datetime.date' ``` This commit ensure we only try to max/min non-falsy values. Forward-Port-Of: odoo/enterprise#74112
This update fixes a potential issue where deleting a parent folder could inadvertently delete associated Project folders due to a database constraint. The change ensures that all related folders are properly handled during deletion, preventing data loss and maintaining data integrity. This improves stability and reliability.
Original PR description
Steps to reproduce ------------------ 1. Change the parent of the "Projects" folder to put it in another folder. 2. Delete that folder. The "Projects" folder will be deleted, despite the constraint preventing it from being deleted. This is because when a relational field is set as `ondelete=cascade`, we don't call the `unlink` on the cascaded records and let the database handle it. Therefore, the constraint is not triggered. With this PR, we check not only the folder being deleted, but also its descendants. Task-4241631 Forward-Port-Of: odoo/enterprise#71468
This update resolves an issue preventing bookkeepers with the 'Bookkeeper' role in the Chilean localization module ('l10n_cl') from generating credit notes. The fix expands access rights to allow 'Billing' users to create the necessary invoice reference records, ensuring proper credit note functionality. This improves usability for Chilean businesses using the Odoo Enterprise system.
Original PR description
### Steps to reproduce: - Install "l10n_cl" and switch to a Chilian company - Give another user the role "Bookkeeper" - Switch to this user - Select an invoice and try to generate a Credit note - This user has not the right to create `l10n_cl.account.invoice.reference` ### Cause: The record `l10n_cl.account.invoice.reference` can only be created by managers (Accountant). ### Solution: Change the access rights to give full access on the record to users with the role "Billing". opw-4291981
This update resolves an issue where users could make advance payments for subscription products with a 'delivered quantity' invoice policy, even if the products hadn't been shipped. Now, advance payments are only allowed for partially delivered products, ensuring accurate payment processing and preventing overpayment.
Original PR description
Issue: In the subscription order user portal, the anticipate payment included products with the invoice policy set to delivered quantity that were not delivered yet. -Enable online payment and demo payment provider in the configuration. -Create a new subscription order in the subscription module. -Add a product with its invoice policy set to ordered quantity. -Add another product with its invoice policy set to delivered quantity. -Confirm the order and click on preview to access the user portal. -Proceed with the payment through the portal. It is now not possible to pay in advance through the user portal for recurring products with an invoice policy set to delivered quantity if they haven't been delivered yet. We still allow advance payments for partially delivered products. opw-3775930
This update fixes an issue where Spanish translations for the l10n_co_reports module were accidentally deleted during a cleanup process. The translations have been restored, synced, and corrected, including a previously inaccurate sentence. This ensures accurate reporting in Spanish.
Original PR description
During the es_XX.po cleaning, the po file for l10n_co_reports was incorrectly not converted to es_419.po and only deleted. We now restore it + correctly rename it to es_419.po As part of this cleaning, the pot file has been re-exported and the po re-synced with it. Missing translations were also added it. A sentence that was obviously incorrect in the original Spanish was also translated to a correct sentence. opw-4336377 PR that deleted the original es_CO.po file: https://github.com/odoo/enterprise/pull/66317
This update resolves a technical issue within Odoo's Studio interface that prevented users from correctly configuring Sales Team settings. Specifically, the Studio was unable to recognize a key filter used in the Sales Team's configuration, leading to an error. This fix ensures Sales Team settings can be accurately adjusted through the Studio.
Original PR description
Steps to reproduce ================== - Install crm,web_studio - Enable leads - Go to CRM > Configuration > Sales Team - Open the first record - Uncheck Pipeline and Leads - Go to CRM > Sales > Teams - Open studio => Undefined graph model for Sales Team: Pre-Sales Cause of the issue ================== The window action uses the following domain `[["use_opportunities", "=", true]]` It is not used from within studio. opw-4285413
This PR addresses a conflict that arises during an upgrade from version 16.0 to 17.0 of the l10n_es_reports module. The changes to report expressions introduced a UNIQUE constraint violation due to new engine types and subformulas. This update resolves the issue, ensuring a smooth upgrade process.
Original PR description
## 1st Issue **[FIX] l10n_es_reports: hanldle new expressions in mod349** In report line, if there is no related expression pointing at it, it is being created by shortcut syntaxes. Before this…
## 1st Issue
**[FIX] l10n_es_reports: hanldle new expressions in mod349**
In report line, if there is no related expression pointing at it,
it is being created by shortcut syntaxes.
Before this PR[^1], there were no expressions pointing at
these report lines:
1. mod_349_supplies
2. mod_349_acquisitions
3. mod_349_triangular
4. mod_349_services_sold
5. mod_349_services_acquired
6. mod_349_supplies_without_taxes
7. mod_349_supplies_without_taxes_legal_representative
8. mod_349_supplies_refunds
9. mod_349_acquisitions_refunds
10. mod_349_triangular_refunds
11. mod_349_services_sold_refunds
12. mod_349_services_acquired_refunds
13. mod_349_supplies_without_taxes_refunds
14. mod_349_supplies_without_taxes_legal_representative_refunds
After that PR, all of the report lines now include expressions with `engine=custom` and `label=balance`. For databases on version >= `16.0` before the PR, these report lines already have expressions without an IMD. However, during an upgrade, the addition of new expressions with an IMD triggers the creation of duplicates, resulting in a UNIQUE constraint violation on `(report_line_id, balance)`.
Steps to reproduce the issue:
1. Install `l10n_es_reports` in version `16.0` before that PR
2. Try to upgrade it to `17.0` after that PR
You will get error similar to this:
```
2024-10-30 13:56:05,428 3470006 WARNING test_l10n_es_report odoo.modules.loading: Transient module states were reset
2024-10-30 13:56:05,430 3470006 ERROR test_l10n_es_report odoo.modules.registry: Failed to load registry
Traceback (most recent call last):
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 556, in _tag_root
f(rec)
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 462, in _tag_record
self._tag_record(child_rec, extra_vals={inverse_name: record.id})
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 462, in _tag_record
self._tag_record(child_rec, extra_vals={inverse_name: record.id})
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 462, in _tag_record
self._tag_record(child_rec, extra_vals={inverse_name: record.id})
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 456, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 5088, in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 4999, in _load_records_create
return self.create(values)
File "<decorator-gen-216>", line 2, in create
File "/home/odoo/src/odoo/17.0/odoo/api.py", line 415, in _model_create_multi
return create(self, arg)
File "/home/odoo/src/odoo/17.0/addons/account/models/account_report.py", line 620, in create
result = super().create(vals_list)
File "<decorator-gen-123>", line 2, in create
File "/home/odoo/src/odoo/17.0/odoo/api.py", line 415, in _model_create_multi
return create(self, arg)
File "/home/odoo/src/upgrade-util/src/util/orm.py", line 244, in wrapper
return f(*args, **kwargs)
File "/home/odoo/src/upgrade/migrations/base/0.0.0/pre-models-match_uniq.py", line 25, in create
return super().create(vals_list)
File "<decorator-gen-12>", line 2, in create
File "/home/odoo/src/odoo/17.0/odoo/api.py", line 415, in _model_create_multi
return create(self, arg)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 4627, in create
records = self._create(data_list)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 4815, in _create
cr.execute(SQL(
File "/home/odoo/src/odoo/17.0/odoo/sql_db.py", line 332, in execute
res = self._obj.execute(query, params)
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "account_report_expression_line_label_uniq"
DETAIL: Key (report_line_id, label)=(480, balance) already exists.
```
## 2nd Issue
**[FIX] l10n_es_reports: fix subformulas' of expressions in mod349**
In this PR[^1], the expressions `mod_349_statistics_invoices_total_amount_balance`
and `mod_349_statistics_refunds_total_amount_balance` was modified so the engine of
both of them changed from `domain` to `aggregation`. Also the subformula from both
of them were removed. But during the upgrade the engines are being modified but
the subformulas kept same.
Expected condition is having NULL on both of the expressions' subformula.
Because of they are not being changed during upgrade, they end up being `sum`
at the end.
When we try to open the `Tax report mod 349` after upgrade, the new engine and old
subformula are conflicting and facing issue here[^2].
Steps to reproduce
1. Install `l10n_es_reports` before the PR above in version `16.0`
2. Upgrade the db to `17.0` by solving the 1st issue of this PR
3. Try to open `Tax report mod 349`
you will see error like this:
```
.....
result = getattr(recs, name)(*args, **kwargs)
File "/home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 4869, in get_report_information
all_column_groups_expression_totals = self._compute_expression_totals_for_each_column_group(self.line_ids.expression_ids, options, warnings=warnings)
File "/home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 2826, in _compute_expression_totals_for_each_column_group
current_group_expression_totals = self._compute_expression_totals_for_single_column_group(
File "/home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 3011, in _compute_expression_totals_for_single_column_group
aggregation_formula_results = self._compute_totals_no_batch_aggregation(column_group_options, aggregation_formulas_dict, column_group_expression_totals, cross_report_expr_totals_by_scope)
File "/home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 3208, in _compute_totals_no_batch_aggregation
expression_result = self._aggregation_apply_bounds(column_group_options, expression.subformula, formula_result)
File "/home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 3266, in _aggregation_apply_bounds
group_values = match.groupdict()
AttributeError: 'NoneType' object has no attribute 'groupdict'
```
[^1]: https://github.com/odoo/enterprise/pull/65074
[^2]: https://github.com/odoo/enterprise/blob/3a7a46ff2404a5c4ca1c0ad676529fc17d9a2234/account_reports/models/account_report.py#L3455-L3461
Forward-Port-Of: odoo/enterprise#73082This update addresses a visual glitch in the timesheet grid view where columns would flicker during scrolling. The fix adjusts the first column's width to a fixed percentage, ensuring a smoother and more stable display of data. This improves the user experience when viewing large amounts of timesheet information.
Original PR description
Steps to reproduce: ------------------------------ - Install the timesheet module. - Open the module - Open all timesheets in grid view - Scroll the page - There is a flicker when scrolling Issue: -------------- When scrolling in grid view, there is a flicker in columns. Cause: ----------- The grid-template-columns property the first column is set to auto, meaning its width is determined by its content. However, as the content dynamically changes, such as during scrolling, the column width adjusts causing flickering.This occurs because the content size affects the column width. Solution : ----------------- The grid-template-columns property sets the width of the first column in the grid layout to 30% of the screen task-3743360