Daily updates from Odoo
Navigate
Branch
Tuesday, August 27, 2024
69 changes
14 changes
Resolved issues and error corrections
When a customer is removed from a Point of Sale order, the system now correctly returns to the default price list. This prevents incorrect pricing after switching from a customer-specific setup back to a walk-in sale.
Original PR description
Before this commit, deselecting a contact in the POS would not revert to using the default pricelist for price computation. This issue was due to incorrect pricelist assignment when a contact was removed. opw-4068014 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update brings the spreadsheet component to a newer maintenance version with several bug fixes. It improves everyday spreadsheet use by addressing issues with column and row sizing, format painting after cutting cells, find and replace responsiveness, and editing tables with invalid ranges.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/4157fb8d8 [REL] 17.2.22 Task: 0 https://github.com/odoo/o-spreadsheet/commit/e60f7f062 [FIX] github: typo in PR…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/4157fb8d8 [REL] 17.2.22 Task: 0 https://github.com/odoo/o-spreadsheet/commit/e60f7f062 [FIX] github: typo in PR template https://github.com/odoo/o-spreadsheet/commit/dd458a944 [FIX] header_size: JS sparse array problem Task: 4074438 https://github.com/odoo/o-spreadsheet/commit/17b4a2303 [FIX] clipboard: paint format after cut Task: 4077449 https://github.com/odoo/o-spreadsheet/commit/e94eb2d57 [FIX] find & replace: remove debounce from store Task: 4102172 https://github.com/odoo/o-spreadsheet/commit/ea883472f [FIX] table: fix bug when edit table with invalid range Task: 4102425 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>
Miscellaneous changes
Issue ----- When setting a "Counted Quantity" of 0 in the inventory adjustment, the difference would incorrectly stay as 0. Steps ----- 1. Inventory > Operations > Physical Inventory. 2. Set the "Counted Quantity" of a line where it is not set to 0. -> The difference stays at 0. Cause ----- The widget was previously relying on an onchange being triggered even if the actual value wasn't changed in input fields. This beahviour was modified by https://github.com/odoo/odoo/commit/dc
Original PR description
Issue ----- When setting a "Counted Quantity" of 0 in the inventory adjustment, the difference would incorrectly stay as 0. Steps ----- 1. Inventory > Operations > Physical Inventory. 2. Set the "Counted Quantity" of a line where it is not set to 0. -> The difference stays at 0. Cause ----- The widget was previously relying on an onchange being triggered even if the actual value wasn't changed in input fields. This beahviour was modified by https://github.com/odoo/odoo/commit/dcba2a87b7ab15b357d57c410868f19e829a8db0. https://github.com/odoo/odoo/blob/69de944b95a9790548b239f3bf05ba48eda2efef/addons/web/static/src/views/fields/input_field_hook.js#L74 Since then, changing the value from 0.00 to 0 won't trigger the onchange and the difference won't be computed. Change ----- Update the record on blur, in the same way it is already done on keydown. opw-4064858 opw-4063994 Forward-Port-Of: odoo/odoo#175680
Problem: The tax group name is not translated to Arabic. Purpose: Display the Arabic translation of the tax group name as well to stay consistent with the report. Steps to Reproduce: 1. Install l10n_sa 2. Switch to SA company 3. Add Arabic as a language 4. Add an Arabic translation for a tax group name 5. Change a contact's language to Arabic 6. Create an invoice with the Arabic contact and a tax from the same tax group 7. Preview or Print and observe that the tax group name is n
Original PR description
Problem: The tax group name is not translated to Arabic. Purpose: Display the Arabic translation of the tax group name as well to stay consistent with the report. Steps to Reproduce: 1. Install l10n_sa 2. Switch to SA company 3. Add Arabic as a language 4. Add an Arabic translation for a tax group name 5. Change a contact's language to Arabic 6. Create an invoice with the Arabic contact and a tax from the same tax group 7. Preview or Print and observe that the tax group name is not translated to Arabic opw-4094196 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177307
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#177854
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 Forward-Port-Of: odoo/odoo#177854
Steps to reproduce: ------------------- - Have xlrd >= 2.0 and openpyxl 3.1.2 - Using the base_import module, import an XLSX file with empty cells - You will notice that all empty cells are read as "None" - Click on test, will give this error : "Column debit contains incorrect values (value: None)" Cause: ----- Since (#169245) openpyxl is used instead of xlrd for parsing xlsx files, the empty cells are parsed as None, not as empty string (as it was in xlrd). then this None is cast to t
Original PR description
Steps to reproduce: ------------------- - Have xlrd >= 2.0 and openpyxl 3.1.2 - Using the base_import module, import an XLSX file with empty cells - You will notice that all empty cells are read as "None" - Click on test, will give this error : "Column debit contains incorrect values (value: None)" Cause: ----- Since (#169245) openpyxl is used instead of xlrd for parsing xlsx files, the empty cells are parsed as None, not as empty string (as it was in xlrd). then this None is cast to the string "None", causing issues. Fix: ----- An additional check added to check if the cell is empty (value is None) and set it as empty string. opw-4132402 Forward-Port-Of: odoo/odoo#177770
Currently, when various timestamps in Odoo are processed through the `DeserializeDate` function, the offset is being doubled by mistake. The Odoo timestamps are passed as strings which have already been converted to UTC. If a user inputs a `DateTime` on a pricelist for instance, that time will be converted to its UTC equivalent before being converted to a string. The issue arises when we try to parse that string in the frontend during a PoS session. Odoo will correctly parse the timestamp, howev
Original PR description
Currently, when various timestamps in Odoo are processed through the `DeserializeDate` function, the offset is being doubled by mistake. The Odoo timestamps are passed as strings which have already…
Currently, when various timestamps in Odoo are processed through the `DeserializeDate` function, the offset is being doubled by mistake. The Odoo timestamps are passed as strings which have already been converted to UTC. If a user inputs a `DateTime` on a pricelist for instance, that time will be converted to its UTC equivalent before being converted to a string. The issue arises when we try to parse that string in the frontend during a PoS session. Odoo will correctly parse the timestamp, however through the `DeserializeDate` function it calls the `FromSQL` function with the parameter `zone: 'default'` which makes Odoo process this timestamp as being in the `SystemZone` (which is used by default in Luxon) instead of correctly recognizing that it is already in UTC. Thus, it will offset it again, which causes the functionality to fail This commit allows the timezone in `DeserializeDate` to be passed as a parameter, so in these cases we can pass the correct timezone and avoid this issue. Task-ID: 4106252 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177180 Forward-Port-Of: odoo/odoo#176866
It was possible to upload a file and decode it by attaching it to a message in the chatter (factur-x, ulb...), but not by attaching it directly to the invoice. This commit allows for the same behaviour in both ways. task-3997526 Forward-Port-Of: odoo/odoo#171393
Original PR description
It was possible to upload a file and decode it by attaching it to a message in the chatter (factur-x, ulb...), but not by attaching it directly to the invoice. This commit allows for the same behaviour in both ways. task-3997526 Forward-Port-Of: odoo/odoo#171393
Currently there might be a line break after the phone marker in the contact widget. It depends on the document layout and the length of the phone number. After this commit the line break does not happen anymore. (In commit cbcda0b222b17312b9e42e23801a330f0030033f line breaks inside phone numbers were removed.) To reproduce: 1. Ensure Purchase app is installed 2. Settings -> Configure Document Layout - layout: boxed - font: Oswald - paper format: A4 3. Edit some partner t
Original PR description
Currently there might be a line break after the phone marker in the contact widget. It depends on the document layout and the length of the phone number. After this commit the line break does not happen anymore. (In commit cbcda0b222b17312b9e42e23801a330f0030033f line breaks inside phone numbers were removed.) To reproduce: 1. Ensure Purchase app is installed 2. Settings -> Configure Document Layout - layout: boxed - font: Oswald - paper format: A4 3. Edit some partner to have a long phone number (E.g. via Purchase -> Orders (menu) -> Vendors) e.g. use: (870)-931-0505 12 12 12 12 4. Create a request for quotation / purchase order and select the partner from 3 as Vendor 5. Confirm the purchase order 6. Print the purchase order 7. There is a line break after the phone marker in the vendor address opw-3783870 opw-3970768 PR the mentioned commit belongs to: https://github.com/odoo/odoo/pull/166336 Forward-Port-Of: odoo/odoo#175693
#### Partner feedbacks - Add small box notification in settings when NAV 3.0 authentication succeeds. - Add warning if the user un-checks the 'NAV 3.0' checkbox in the Send & Print. - Amend module manifest to clarify that we are electronically reporting paper invoices. - Report the *date of payment*, not date of issue of advance invoices as `advancePaymentDate` when issuing the final invoice. In addition, advanceExchangeRate should be the HUF exchange rate used for the payment. - Add a wa
Original PR description
#### Partner feedbacks - Add small box notification in settings when NAV 3.0 authentication succeeds. - Add warning if the user un-checks the 'NAV 3.0' checkbox in the Send & Print. - Amend module…
#### Partner feedbacks - Add small box notification in settings when NAV 3.0 authentication succeeds. - Add warning if the user un-checks the 'NAV 3.0' checkbox in the Send & Print. - Amend module manifest to clarify that we are electronically reporting paper invoices. - Report the *date of payment*, not date of issue of advance invoices as `advancePaymentDate` when issuing the final invoice. In addition, advanceExchangeRate should be the HUF exchange rate used for the payment. - Add a warning if not all advance invoices are paid when issuing the final invoice. - Add more checks in tests that the invoice checks pass when opening the Send & Print wizard. - Make the 'HU Tax Reason' field invisible if the tax has VAT type. #### Bugfixes - connection testing should be done on res.config.settings `create()`, not on `set_values()` because the related fields are written during the create, which is called in a prior transaction to the set_values. This ensures that if the connection cannot be established, the UserError causes the rollback of the transaction before the values are written to res_company. - the parse_error_response method wasn't correctly parsing error results leading to empty error messages Many thanks to: - Eiler Attila (online-erp.hu) - Geza Nagy (oregional.hu) taskid: 3985127 Forward-Port-Of: odoo/odoo#177788 Forward-Port-Of: odoo/odoo#168932
Use the delivery date to fill the `FechaOperacion` and fall back to the invoice date if no delivery date is set. Steps: - Make an invoice with delivery_date != invoice_date != today - Send invoice to gouvernment - Download the xml generated - The field `FechaOperacion` is the invoice date instead of the delivery date opw-4072748 Forward-Port-Of: odoo/odoo#174677
Original PR description
Use the delivery date to fill the `FechaOperacion` and fall back to the invoice date if no delivery date is set. Steps: - Make an invoice with delivery_date != invoice_date != today - Send invoice to gouvernment - Download the xml generated - The field `FechaOperacion` is the invoice date instead of the delivery date opw-4072748 Forward-Port-Of: odoo/odoo#174677
**Current behavior:** In the purchase report pivot view, grouping by order does not display the order reference on the row's label. **Expected behavior:** Rows corresponding to a purchase order should be labeled with the order reference (name). **Steps to reproduce:** 1. In the Purchase app, go to Reporting -> Purchase 2. Switch to the pivot view 3. Expand the row to Add Custom Group -> Order 4. See that the reference does not get displayed **Cause of the issue:** When we s
Original PR description
**Current behavior:** In the purchase report pivot view, grouping by order does not display the order reference on the row's label. **Expected behavior:** Rows corresponding to a purchase order should be labeled with the order reference (name). **Steps to reproduce:** 1. In the Purchase app, go to Reporting -> Purchase 2. Switch to the pivot view 3. Expand the row to Add Custom Group -> Order 4. See that the reference does not get displayed **Cause of the issue:** When we select group by for the `order` option, the rows are aggregated via `count_distinct`, so the label for the pivot becomes '1' (as they are grouped by id which is unique). **Fix:** Make the order_id field in the view `type=row` instead of `type=measure` so that they do not get aggregated. opw-4075321 Forward-Port-Of: odoo/odoo#177761 Forward-Port-Of: odoo/odoo#176915
UBL rule DK-R-005 limits the options available for the payment means. Currently, we have a hard-coded value of 30 for every invoice, because it is not possible to deduce the right payment means code at the moment. In OIOUBL we hard-code this field to `unknown` as it has the same UBL rule. With this commit we can use a different value for DK partners. In the future we could try to populate it dynamically. See also: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-peppol/DK-R-005/ opw-
Original PR description
UBL rule DK-R-005 limits the options available for the payment means. Currently, we have a hard-coded value of 30 for every invoice, because it is not possible to deduce the right payment means code at the moment. In OIOUBL we hard-code this field to `unknown` as it has the same UBL rule. With this commit we can use a different value for DK partners. In the future we could try to populate it dynamically. See also: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-peppol/DK-R-005/ opw-4080715 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177430
When editing a message, the mentions of the original message were lost. The reason is that the channel mentions were not stored with the message in the database. The fix is to parse the body directly before editing and get mentionedChannels from it. follow-up of task-4104895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176472
Original PR description
When editing a message, the mentions of the original message were lost. The reason is that the channel mentions were not stored with the message in the database. The fix is to parse the body directly before editing and get mentionedChannels from it. follow-up of task-4104895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176472
40 changes
New functionality added to Odoo
Recruiters can now start referral campaigns directly from recruitment and invite employees by email or SMS. Campaigns can target all employees or specific groups such as departments, job positions, or selected individuals, helping promote referral opportunities for specific roles.
Original PR description
New flow: --------- This PR adds a new flow to launch a referral campaign from hr_recruitment. It allows to send emails/sms to employees to invite them to participate to a referral campaign. The campaign can be configured to be open to all employees or only to employees of a specific department, job position or just selected ones. The purpose of this new flow is to give more light to the hr_referral module and to allow to launch campaigns for specific jobs. task-3607159
Enhancements to existing features
Odoo now creates IoT Box connection links using standard web address parameters instead of pipe separators. This makes the links more compatible with common tools and reduces the risk of connection issues caused by unusual URL formatting.
Original PR description
URL generated by Odoo to connect an IoT Box used pipes to separate important data. We now use regular search params: `?param1=value1¶m2=value2`. Community PR: [https://github.com/odoo/odoo/pull/178033](https://github.com/odoo/odoo/pull/178033) Task: 4116429
Field Service now shows all workflow stages, including empty ones, when a company has only one Field Service project. This makes planning and tracking work more consistent with the regular Project app, while hiding unnecessary project selection details in that simpler setup.
Original PR description
Before this commit, the pipeline stages displayed in Field service in the kanban/list and the other views were only stages containing at least one task. After this commit, all stages are shown (even empty ones) if there is only one 'field service' type of project created. If more, we fallback on the current behavior (i.e. only showing stages containing tasks). Moreover, we now hide the project_id field in the views if, again, there is only one FSM project. The rationale behind this commit is that we want to mimic the behavior we have when displaying the tasks of a specific project from the Project module. task-3781207
Project updates now show the percentage of budget still remaining, making it easier to compare actual spending against allocated budgets. This gives teams a clearer view of budget consumption alongside profitability information.
Original PR description
In the project updates, we can see the margin for the profitability but not for budgets. It means we can have a clear view of the costs and revenues ratio in % but not for budgets. After this commit, we will be able to see what has been spent compared to what was allocated in % (in the "Remaining" column) for budgets. task-3865199
Automatically generated accounting labels have been reworded to make them easier to understand in daily finance workflows. This improves clarity for open balances, recurring transfer demo data, and asset depreciation, disposal, and sale entries, reducing confusion when reviewing accounting records and reports.
Original PR description
Some of the generated labels were confusing. The following changes were therefor implemented: - Open balance: "Open Balance: REF" -> "Open Balance of PRICE" - Auto transf. (demo): "Monthly IFRS rent [...]" -> "IFRS rent [...]" - Asset depreciation: "ASSET_NAME" -> "ASSET_NAME: Depreciation" - Asset disposal: "ASSET_NAME" -> "ASSET_NAME: Disposal" - Asset sale: "ASSET_NAME" -> "ASSET_NAME: Sale" task-3943455 **Community PR:** odoo/odoo#166534
Manufacturing planners can now switch the Master Production Schedule view between daily, weekly, monthly, and yearly periods directly from the main screen. Each period type keeps its own column count, making planning views more practical without changing the default company setting.
Original PR description
This PR adds a date switcher like the one in calendar. It allows to switch between daily/weekly/monthly/yearly display on the MPS main view without needing to go to the settings every time. To do that, it changes `manufacturing_period_to_display` from 1 field to 4 fields for year/month/week/day. It does not change the value of `manufacturing_period`, which is the default setting used when opening the MPS view. It also ensures that the number of columns to display must always be positive. task 4115732
Moroccan company invoices now include the ICE business identification number when available, helping businesses meet local invoicing requirements. The change also simplifies partner records by using the standard company registry field for ICE data and corrects a small visibility issue in the partner form.
Original PR description
[IMP] l10n_ma_reports: Add ice number to invoicing Get rid of the l10n_ma_ice and depend on company_registry as both should be the same And Add the ICE number to the invoice report. it's now part of the company_details of the invoice report if and only if it's a moroccan company Adding migration script to replace 'l10n_ma_ice' in 'res.partner' with 'company_registry' Reason: The ICE (Identifiant Commun de l'Entreprise) is an identification number assigned to businesses and legal entities for various administrative and legal purposes in Morocco. If the partner has one, it must be indicated on the invoice. --> Important Note: Fix a small bug in the 'l10n_ma_customs_vat' invisible condition of l10n_ma_reports partner view Task-3877546 odoo-pr#https://github.com/odoo/odoo/pull/166531 upgrade-pr#https://github.com/odoo/upgrade/pull/6069
Accounting-related kanban cards have been updated to use newer standard layouts and styling. This makes the views easier to maintain and keeps the user interface aligned with current Odoo conventions, with minimal visible change for end users.
Original PR description
\* = [account_asset, account_batch_payment, account_budget, account_consolidation aacount_intrastat] In this commit we have simplified the kanban arch for the account_accountant and related modules. The goal is to simplify them, make them easier to read, and use bootstrap utility classnames. - Previously, we used `kanban-box`, but now we are using `kanban-card` instead. - Deprecated `oe_kanban_global_click` and `oe_kanban_global_click_edit`. - More use of `<field/>` tags - Removed the `oe_kanban_colorpicker` class and replaced it with the `kanban_color_picker` widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - `kanban_image` from rendering context, is deprecated so we use `<field name="..." widget="image"/>` instead Community pr: https://github.com/odoo/odoo/pull/177227 Task-3992107
Payment reminder emails can now include a Pay now button for overdue invoices when online invoice payment is enabled and a payment method is available. This makes it easier for customers to settle outstanding invoices directly from the reminder, helping encourage faster payment.
Original PR description
A "Pay now" button for overdue invoices was added to the "Payment Reminder" email template. The button is only visible if "invoice online payment" was activated in the settings, and if there is some available payment method. Before this commit, the follow-up report was used to remind customers they have unpaid invoices, but they still had to pay invoices manually which is not very friendly and does not push them to pay all of them. task-3386024
Resolved issues and error corrections
A reporting error was fixed so the Colombian VAT withholding certificate can open correctly. The report now handles missing subheader information safely, preventing users from seeing a crash instead of the accounting report.
Original PR description
**Steps to reproduce:** - Install l10n_co_reports - Switch to a Colombian company (e.g. CO Company) - Go to "Accounting / Reporting / Colombian Statements / Certificado de Retención en IVA" **Issue:** A traceback is triggered: "UncaughtPromiseError > OwlError Caused by: TypeError: Cannot read properties of undefined (reading 'colspan') ..." **Cause:** When generating the subheaders from the columns, the case (where the column is not part of a group key and its "comparison_mode" attribute is not set) is not handled. Therefore subheader has "Undefined" as value, which generates an error when trying to access its "colspan" property in the template. **Solution:** When generating the subheaders, always return the object with the default values when the column is not part of a group key.
The accounting reconciliation filters now use the correct criteria for reconcilable accounts. This helps users find genuinely unreconciled entries or entries with remaining balances more accurately, reducing confusion during account review.
Original PR description
In this commit: https://github.com/odoo/enterprise/pull/67611/commits/cc0b0b9f2c60d837567062b3f7f0f6905d90b5f9 we added new filters but the original spec was wrong, this commit will change those filters. - For the two filters, the accounts must be reconciliable - To distinguish the two filters: Unreconciled >> Will match move line with no matching number or partial entries With Residual >> Will match move like that have a residual != 0 task: 4141159 Community Pr: https://github.com/odoo/odoo/pull/178023
This fix updates spreadsheet document tests so they match recent changes in how pivot identifiers and titles are displayed. It helps keep automated quality checks reliable without changing day-to-day user behavior.
This fix stops restaurant orders from being transferred when an appointment booking is being created. It helps avoid accidental changes to table orders and keeps the booking flow reliable for staff.
Original PR description
Related: https://github.com/odoo/odoo/pull/177039
This change moves a stock-related intercompany sales and purchasing test into the module that owns stock behavior. It helps keep automated checks aligned with the correct business area, reducing maintenance risk without changing user-facing functionality.
This fix updates Documents Spreadsheet behavior to work correctly with the latest pivot table title display. It helps keep spreadsheet pivot menus and side panels reliable after the underlying title component changed.
Features or functions removed from Odoo
The remaining onboarding banners have been removed from Consolidation, Sign, and E-commerce reporting screens. This simplifies the user interface and supports retiring the older banner system across Odoo.
Original PR description
*account_consolidation, sign, website_sale_dashboard This PR removes the last 4 usecases of onboarding banners (banner_route attribute in views). It will allow us to completely drop the support of onboarding banners (see https://github.com/odoo/odoo/pull/177244) Task~4126004
Code cleanup and technical improvements
This update adjusts the Planning app to stay aligned with a recent underlying platform change in how formatted field values are handled. It is an internal compatibility update with no expected change to day-to-day user workflows.
Original PR description
Related to odoo/odoo#177747, where the `getFormattedValue` util now automatically extracts formatter options from the field node (in the arch). As a consequence, the API of the util slightly changed, and a call in planning had to be adapted.
Miscellaneous changes
Problem: When the user enable approval rules for confirming purchase orders, the approval message was not being translated to the user's preferred languages. Purpose: Since multiple users can be notified for the approval, it was discussed that translating the message to be in the language of the first user should help with the limitation. It will solve the bug in the case only one user needs to be notified. Steps to reproduce on Runbot: 1. Install Studio and purchase 2. create a purchase
Original PR description
Problem: When the user enable approval rules for confirming purchase orders, the approval message was not being translated to the user's preferred languages. Purpose: Since multiple users can be notified for the approval, it was discussed that translating the message to be in the language of the first user should help with the limitation. It will solve the bug in the case only one user needs to be notified. Steps to reproduce on Runbot: 1. Install Studio and purchase 2. create a purchase order without confirming it 3. Go into Studio and edit the "confirm order' button on the PO 4. Add 2 approval rules - notify User A with notification order 1 - notify User B whose language is not English with notification order 2 5. Confirm the PO and observe the message is sent in English opw-3932725 Forward-Port-Of: odoo/enterprise#64060
This PR replaces https://github.com/odoo/enterprise/pull/55511 Forward-Port-Of: odoo/enterprise#67574 Forward-Port-Of: odoo/enterprise#56146
Original PR description
This PR replaces https://github.com/odoo/enterprise/pull/55511 Forward-Port-Of: odoo/enterprise#67574 Forward-Port-Of: odoo/enterprise#56146
## Issue: When validating a stock picking, in a Mondial relay delivery, if the partner created for it has no parent_id, the code will raise an error. ## Steps to reproduce: - Create a sendcloud delivery method (mondial relay) - go to website and order a product, go to checkout - pick sendcloud delivery method - select a relay location - go to odoo backend, go the sale order created by the website - click the SO deliveries smart button - change the quantity to the same as demand - cli
Original PR description
## Issue: When validating a stock picking, in a Mondial relay delivery, if the partner created for it has no parent_id, the code will raise an error. ## Steps to reproduce: - Create a sendcloud delivery method (mondial relay) - go to website and order a product, go to checkout - pick sendcloud delivery method - select a relay location - go to odoo backend, go the sale order created by the website - click the SO deliveries smart button - change the quantity to the same as demand - click on the delivery address - remove the partner's parent_id - add an email and phone number to the partner and save - go back to the picking page and click validate - a traceback will appear ## Solution: - in the `_prepare_parcel_common_data` method, raise a user error if the SO has `access_point_data` and the partner has no parent_id. OPW-4042529 Forward-Port-Of: odoo/enterprise#68625 Forward-Port-Of: odoo/enterprise#67074
Community PR: https://github.com/odoo/odoo/pull/175988 A user without any accounting access right set get an error when creating an invoice from a sale order. The user should be able to see the draft invoice when clicking on the 'Create Invoice' from a sale order, as it is the case without the l10n_cl_edi module. ### Steps to reproduce: - Install the 'l10n_cl_edi' module - As admin go to Settings > Manage Users, click on a User and, in Access Rights, change Accounting > Invoicing to noth
Original PR description
Community PR: https://github.com/odoo/odoo/pull/175988 A user without any accounting access right set get an error when creating an invoice from a sale order. The user should be able to see the draft…
Community PR: https://github.com/odoo/odoo/pull/175988 A user without any accounting access right set get an error when creating an invoice from a sale order. The user should be able to see the draft invoice when clicking on the 'Create Invoice' from a sale order, as it is the case without the l10n_cl_edi module. ### Steps to reproduce: - Install the 'l10n_cl_edi' module - As admin go to Settings > Manage Users, click on a User and, in Access Rights, change Accounting > Invoicing to nothing - (Make sure the User Type is Internal User) - Switch to this user - Go to Sales and create a new Quotation, confirm - Click on the 'Create Invoice' button - An access error appears because of 'l10n_cl.account.invoice.reference' ### Cause: The records of `l10n_cl.account.invoice.reference` are only readable by Accounting groups. ### Solution: Make the records of `l10n_cl.account.invoice.reference` accessible to all internal users. This will raise another access error for `l10n_latam.document.type`, so we also need to make them accessible (in community). ### Note: I noticed the access right of `l10n_cl.account.invoice.reference` were giving rights to `account.group_account_invoice` twice where I think the second time was supposed to be `account.group_account_manager`. I don't know if this is wanted but it doesn't make sense to have two lines for the same model and user group. I decided to only change `group_account_invoice` to `group_account_manager` so this PR is removing the write, create, unlink rights of `account.group_account_invoice`. opw-4078302 Forward-Port-Of: odoo/enterprise#68087
Problem: The SEPA configuration fields sepa_orgid_id and sepa_orgid_issr are reset when exporting and importing a partner (company) associated with a company. Steps to Reproduce: 1. Configure a "SEPA Credit Transfer (SCT)" for a company. 2. Export the partner related to the company. 3. Re-import the partner. 4. Check the SEPA configuration of the company; it is reset. Solution: To fix this, we need to prevent the SEPA configuration from being reset when it is already set. opw-3981
Original PR description
Problem: The SEPA configuration fields sepa_orgid_id and sepa_orgid_issr are reset when exporting and importing a partner (company) associated with a company. Steps to Reproduce: 1. Configure a "SEPA Credit Transfer (SCT)" for a company. 2. Export the partner related to the company. 3. Re-import the partner. 4. Check the SEPA configuration of the company; it is reset. Solution: To fix this, we need to prevent the SEPA configuration from being reset when it is already set. opw-3981278 Forward-Port-Of: odoo/enterprise#67424
__Current behavior before commit:__ When you check out your cart with a product not in the stock anymore you have an error message. There is no product name in this message so if you have multiple products in your cart you don't know which one to remove. __Description of the fix:__ Add the product name in the error message, so it's easy to identify which product to remove of the cart. The warning method is linked to sale.order.line so we can access to the product directly. __Steps to re
Original PR description
__Current behavior before commit:__ When you check out your cart with a product not in the stock anymore you have an error message. There is no product name in this message so if you have multiple products in your cart you don't know which one to remove. __Description of the fix:__ Add the product name in the error message, so it's easy to identify which product to remove of the cart. The warning method is linked to sale.order.line so we can access to the product directly. __Steps to reproduce the issue:__ - add products to your cart - remove one or many products of the stock - try to validate your payment __linked to Odoo PR:__ https://github.com/odoo/odoo/pull/174615 opw-4016059 (upgrade issues) Forward-Port-Of: odoo/enterprise#68557 Forward-Port-Of: odoo/enterprise#67423
Forward-Port-Of: odoo/enterprise#68915
Original PR description
Forward-Port-Of: odoo/enterprise#68915
Before this PR: When we included the ability to create "Facturas de compra" (code 46, needed mainly for the purchase of digital services to foreign vendors), we get schema errors sending these type of invoices to the SII (l10n_cl_reference_doc_type_selection == 46). The use of the tag Exportaciones for document type '46' is not correct. This tag should be used only for foreign customers on Export documents. This case is only for the following codes: '110', '111', '112'. An "Activity descr
Original PR description
Before this PR: When we included the ability to create "Facturas de compra" (code 46, needed mainly for the purchase of digital services to foreign vendors), we get schema errors sending these type…
Before this PR: When we included the ability to create "Facturas de compra" (code 46, needed mainly for the purchase of digital services to foreign vendors), we get schema errors sending these type of invoices to the SII (l10n_cl_reference_doc_type_selection == 46). The use of the tag Exportaciones for document type '46' is not correct. This tag should be used only for foreign customers on Export documents. This case is only for the following codes: '110', '111', '112'. An "Activity description" is mandatory, as it's not an export document. The country customs code must be included in the Nacionalidad tag as well, as the vendor is foreign. Reference: Law Nº21420, and resolution Nº46 (May 13th, 2022) https://www.bcn.cl/leychile/navegar?idNorma=1172303 https://www.sii.cl/normativa_legislacion/resoluciones/2022/reso46.pdf After this PR: These issues are fixed. Community PR: https://github.com/odoo/odoo/pull/166793 Forward-Port-Of: odoo/enterprise#63311 Forward-Port-Of: odoo/enterprise#63244
`partners` and `guests` are not handled in the client side anymore. They should be replaced by `personas`. Forward-Port-Of: odoo/enterprise#68839
Original PR description
`partners` and `guests` are not handled in the client side anymore. They should be replaced by `personas`. Forward-Port-Of: odoo/enterprise#68839
Part of a UI task. Changed CONTINUE/PAUSE to CONTINUE/START Regenerated the PDF file task-id: 3646156 community: https://github.com/odoo/odoo/pull/171616 Forward-Port-Of: odoo/enterprise#68726 Forward-Port-Of: odoo/enterprise#65904
Original PR description
Part of a UI task. Changed CONTINUE/PAUSE to CONTINUE/START Regenerated the PDF file task-id: 3646156 community: https://github.com/odoo/odoo/pull/171616 Forward-Port-Of: odoo/enterprise#68726 Forward-Port-Of: odoo/enterprise#65904
The version of the csv is now 7.0. Adapt the headers to it, they must now all be present. The values don't seem to have changed, at least the ones required that we provide. task-4131986 Forward-Port-Of: odoo/enterprise#68853 Forward-Port-Of: odoo/enterprise#68796
Original PR description
The version of the csv is now 7.0. Adapt the headers to it, they must now all be present. The values don't seem to have changed, at least the ones required that we provide. task-4131986 Forward-Port-Of: odoo/enterprise#68853 Forward-Port-Of: odoo/enterprise#68796
Forward-Port-Of: odoo/enterprise#68821 Forward-Port-Of: odoo/enterprise#68704
Original PR description
Forward-Port-Of: odoo/enterprise#68821 Forward-Port-Of: odoo/enterprise#68704
Some improvements in EDI to support factoring operations. The tag "plazo" and "unidadTiempo" are mandatory in order to a company can be a factor . (Sell off all of its outstanding invoices at one time, rather than having to wait on collecting payments from customers) - Rename tag "RespuestaAutorizacion" to "autorizacion" - Add tag "plazo" and "unidadTiempo" in Sales Invoices and Debit Note (not only for Purchase liquidation) - Modify unit tests Forward-Port-Of: odoo/enterprise#68520 Forward
Original PR description
Some improvements in EDI to support factoring operations. The tag "plazo" and "unidadTiempo" are mandatory in order to a company can be a factor . (Sell off all of its outstanding invoices at one time, rather than having to wait on collecting payments from customers) - Rename tag "RespuestaAutorizacion" to "autorizacion" - Add tag "plazo" and "unidadTiempo" in Sales Invoices and Debit Note (not only for Purchase liquidation) - Modify unit tests Forward-Port-Of: odoo/enterprise#68520 Forward-Port-Of: odoo/enterprise#67572
Duplicating a sheet would not add the sheet ID to the cellThreads map in the cell threads plugin. This would cause issues when adding rows or columns because the sheetId can't be referenced and an error is thrown. Added a case in handle in order to add the new sheet id from duplicating to the cellThreads map. opw-4100746 Forward-Port-Of: odoo/enterprise#68406
Original PR description
Duplicating a sheet would not add the sheet ID to the cellThreads map in the cell threads plugin. This would cause issues when adding rows or columns because the sheetId can't be referenced and an error is thrown. Added a case in handle in order to add the new sheet id from duplicating to the cellThreads map. opw-4100746 Forward-Port-Of: odoo/enterprise#68406
### Steps to Reproduce: - Create a field service task > switch the worksheet template to false > add products and timesheets > sign report > error because there is no worksheet template set. ### After this PR: - Allow signing the report when there is no worksheet template, it will be possible to sign and send the report as long as there is content to populate the report with ( products and timesheets). task-3974170 Forward-Port-Of: odoo/enterprise#68787 Forward-Port-Of: odoo/enterprise#
Original PR description
### Steps to Reproduce: - Create a field service task > switch the worksheet template to false > add products and timesheets > sign report > error because there is no worksheet template set. ### After this PR: - Allow signing the report when there is no worksheet template, it will be possible to sign and send the report as long as there is content to populate the report with ( products and timesheets). task-3974170 Forward-Port-Of: odoo/enterprise#68787 Forward-Port-Of: odoo/enterprise#65367
The tour `test_sections_tour` fails undeterministically. It fails after opening the the variant, then opening another section of it. The issue is that we try to open the second section just before the preloading of this section happens. The opening of it enters `loadReportOptions`, has no loadingCallNumber as it is the first opening. We then stop at the call to `get_options`. Then, the preloading can happen (which is why it's undeterministic). We enter the `if` in `preLoadClosedSection
Original PR description
The tour `test_sections_tour` fails undeterministically. It fails after opening the the variant, then opening another section of it. The issue is that we try to open the second section just before the preloading of this section happens. The opening of it enters `loadReportOptions`, has no loadingCallNumber as it is the first opening. We then stop at the call to `get_options`. Then, the preloading can happen (which is why it's undeterministic). We enter the `if` in `preLoadClosedSections`, as the options are not yet of the second section. We then increment loadingCallNumber, which means it's not in sync with the call that was made to the python. If the options call comes back now, we don't remake a call with the new loadingCallNumber. runbot-75429 runbot-74795 Forward-Port-Of: odoo/enterprise#68539
Purpose ======= Fix the "open record" action for the activities kanban in the marketing campaign form. The record can be opened when clicking anywhere on the kanban article, it should only be opened when clicking on the title of the acitvity. Specification ============= Following this commit https://github.com/odoo/odoo/commit/d52fc5ae69a9ca55df22f416a26c1ea5f5484ac9 the kanban arch parser has been updated changing the condition to open the record from this 'this.allowGlobalClick' to
Original PR description
Purpose ======= Fix the "open record" action for the activities kanban in the marketing campaign form. The record can be opened when clicking anywhere on the kanban article, it should only be opened…
Purpose ======= Fix the "open record" action for the activities kanban in the marketing campaign form. The record can be opened when clicking anywhere on the kanban article, it should only be opened when clicking on the title of the acitvity. Specification ============= Following this commit https://github.com/odoo/odoo/commit/d52fc5ae69a9ca55df22f416a26c1ea5f5484ac9 the kanban arch parser has been updated changing the condition to open the record from this 'this.allowGlobalClick' to this 'this.props.archInfo.canOpenRecords'. It was previously only opening the record when the user clicked on the element with the 'oe_kanban_action' class (i.e. the activity title) but is now opening the record no matter where the click is on the kanban article. Fixing the issue by adding the new 'can_open' attribute on the kanban and setting it to false bringing back the old behavior. Also adding the 'user-select-none' class on the 'Add child activity' button so that the cursor isn't changed to the selector one when hovering the text. Task-4089001 Forward-Port-Of: odoo/enterprise#67806
Before the commit the [appointment single module build](https://runbot.odoo.com/runbot/build/66250461) is breaking due to query_count being more than 9 (11) The increase was introduced in b3487219c070cdc03c933d92bc0d362ad733e11f in `_unavailable_intervals_batch`. It wasn't detected because the are less queries in the standard build all modules installed) because of a warmer ormcache. (get_lang) This commit proposes to warmup the test in all case to avoid the extra queries when appointment
Original PR description
Before the commit the [appointment single module build](https://runbot.odoo.com/runbot/build/66250461) is breaking due to query_count being more than 9 (11) The increase was introduced in b3487219c070cdc03c933d92bc0d362ad733e11f in `_unavailable_intervals_batch`. It wasn't detected because the are less queries in the standard build all modules installed) because of a warmer ormcache. (get_lang) This commit proposes to warmup the test in all case to avoid the extra queries when appointment is installed alone, hopefully avoiding to miss the increased query count next time. Forward-Port-Of: odoo/enterprise#67769
Accessing a linked repair record through Helpdesk can lead to a blocking bug where the user is unable to generate a quote through the repair record. ### Description of the issue : 1) When generating a `repair.order` record through a Helpdesk ticket or accessing an existing linked repair order through the smart button, the context key for `default_team_id` will be inherited. In this case referencing the id of the current `helpdesk.team` record. 2) When trying to generate a quote through
Original PR description
Accessing a linked repair record through Helpdesk can lead to a blocking bug where the user is unable to generate a quote through the repair record. ### Description of the issue : 1) When generating…
Accessing a linked repair record through Helpdesk can lead to a blocking bug where the user is unable to generate a quote through the repair record. ### Description of the issue : 1) When generating a `repair.order` record through a Helpdesk ticket or accessing an existing linked repair order through the smart button, the context key for `default_team_id` will be inherited. In this case referencing the id of the current `helpdesk.team` record. 2) When trying to generate a quote through the repair order, an edge case can happen where a ValidationError is triggered at sale order creation. ``` The operation cannot be completed: another model requires the record being deleted. If possible, archive it instead. Model: Sales Order (sale.order) Constraint: sale_order_team_id_fkey ``` This is due to the fact that the `sales.order` also uses a `default_team_id` context key to designate the default sales team. If by happen stance, the referenced `id` values does not match an existing `crm.team` record, you will hit the above foreign key constraint blocking the user from generating the quote. ### Proposed fix : Functionally it makes no sense to pass the `default_team_id` context value from helpdesk to sales order, as both implicitly reference different models and functional entities. Since the `_prepare_repairs_default_value` was already introduced in https://github.com/odoo/enterprise/commit/edd88ebdcc60b7c4d261bfb8755e910356684a3f to handle the context value preparation when using the repair smart button, the simplest solution is to set the `default_team_id` context key to `False`, thus not passing it later on to the sales order (i.e. the quote will not have a default sales team, but the user can still manually define one) ### How to reproduce: 1) Set up a DB with sales, helpdesk and repairs installed 2) If using demo data, just create a handful of new helpdesk teams (`helpdesk.team`). The important part is that you have at least one record with an id that will not be present in the `crm.team` table 3) For the helpdesk team matching the above criteria, activate the Repairs option (`use_product_repairs`) in the team configuration 4) Create a helpdesk ticket for that helpdesk team, create a repair order using the action button, then try using the Create Quotation action button (`action_create_sale_order`) → Validation Error is triggered OPW-4123410 Forward-Port-Of: odoo/enterprise#68822
**Steps to reproduce:** - Install Accounting and l10n_co - Switch to a Colombian company (e.g. CO Company) - Create a bill with a line having an IVA tax and a withholding tax: * IVA Compra 19% * RteIVA 15% sobre el 19% IVA - Post the bill - Create another bill with a line having only an IVA tax - Post the bill - Go to "Accounting / Reporting / Colombian Statements / Certificado de Retención en IVA" **Issue:** "Monto del Pago Sujeto Retención" column is incorrect. It takes into a
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_co - Switch to a Colombian company (e.g. CO Company) - Create a bill with a line having an IVA tax and a withholding tax: * IVA Compra 19% *…
**Steps to reproduce:** - Install Accounting and l10n_co - Switch to a Colombian company (e.g. CO Company) - Create a bill with a line having an IVA tax and a withholding tax: * IVA Compra 19% * RteIVA 15% sobre el 19% IVA - Post the bill - Create another bill with a line having only an IVA tax - Post the bill - Go to "Accounting / Reporting / Colombian Statements / Certificado de Retención en IVA" **Issue:** "Monto del Pago Sujeto Retención" column is incorrect. It takes into account the tax amount from the IVA tax of both bills. As there is no withholding tax on the second bill, it should be excluded from the report. **Cause:** The report is checking the tax lines where the account is "2408%%" to compute the amount of this column. So every tax lines with from an IVA tax will be taken into account, even if there is no wihholding tax. **Solution:** Computing the correct amount by checking the account and the presence of a withholding tax is pretty complex. It would require to rely on the invoice lines instead of the tax lines to recompute the tax amounts because the amount of a specific tax is aggregated into a unique tax line (even if there are several invoice lines with different taxes combination) and there is no information about the tax repartition in the tax line. Recomputing all from the invoice lines would bad for the performance. As the withholding taxes are always 15% over VAT in Colombian localization, we can simply apply this formula to retrieve the amount subjected to withholding: [Monto del Pago Sujeto Retención = Retenido Consignado / 15%] opw-3989661 Forward-Port-Of: odoo/enterprise#68803 Forward-Port-Of: odoo/enterprise#68016
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal position. - Navigate to a field service project and add an employee with a tax-included rate in the employee mapping. - Create a new field service task for the customer with the assigned fiscal position and add one hour for the employee in the mapping. - Add the product with 19% tax included to
Original PR description
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal…
### Steps to reproduce: - Create a fiscal position that converts 19% tax-inclusive into 19% tax-exclusive. - Create a product with 19% tax inclusive. - Create a contact and assign the above fiscal position. - Navigate to a field service project and add an employee with a tax-included rate in the employee mapping. - Create a new field service task for the customer with the assigned fiscal position and add one hour for the employee in the mapping. - Add the product with 19% tax included to the task. - Mark the task as done. #### Current Behavior: - The product unit price is calculated excluding tax. - The service unit price remains calculated as tax-included. #### Expected Behavior: Both product and service unit prices should be calculated consistently as tax-excluded when the tax is set to 19% exclusive. ### Cause of the issue: When creating a new sale order line if the unit price is not specified "product_id_change" is called which set the correct unit price after applying the fpos by calling `_update_taxes` on the line: https://github.com/odoo/odoo/blob/a09e0c651ea54faa3b41e6012b6d62f143519f07/addons/sale/models/sale_order_line.py#L617-L628 But in our case we are setting the `unit_price` to the employee rate here: https://github.com/odoo/enterprise/blob/e23e01337faeec652d400618cf14aaf3d6d47ef2/industry_fsm_sale/models/project_task.py#L408-L412 and the taxes are not taken into account. ### Fix: The unit price of the employee rate should be updated to reflect the changed taxes from fpos. However, since `_update_taxes` relies on the unit price of the product rather than on the one given to the line: https://github.com/odoo/odoo/blob/a09e0c651ea54faa3b41e6012b6d62f143519f07/addons/sale/models/sale_order_line.py#L685 we can not call the `_update_taxes` directly to update the sol. opw-3853196 Co-authored-by: waha <waha@odoo.com> Forward-Port-Of: odoo/enterprise#68661 Forward-Port-Of: odoo/enterprise#67730
In 8f74d9d the french translation for the accounting financial reports where forgotten. This add the missing translated terms opw-4124296 Forward-Port-Of: odoo/enterprise#68781
Original PR description
In 8f74d9d the french translation for the accounting financial reports where forgotten. This add the missing translated terms opw-4124296 Forward-Port-Of: odoo/enterprise#68781
Browse mehtod of orm only returns a recordset for the ids provided but it never checks if those ids exist, which with recompute of analytic_json field can lead to this error: 'odoo.exceptions.MissingError: Record does not exist or has been deleted.' Forward-Port-Of: odoo/enterprise#68660
Original PR description
Browse mehtod of orm only returns a recordset for the ids provided but it never checks if those ids exist, which with recompute of analytic_json field can lead to this error: 'odoo.exceptions.MissingError: Record does not exist or has been deleted.' Forward-Port-Of: odoo/enterprise#68660
15 changes
New functionality added to Odoo
Odoo now includes a new E-invoicing application for Jordan to help businesses comply with mandatory electronic invoicing requirements that took effect at the end of May 2024. This new module enables companies operating in Jordan to automatically generate and manage compliant electronic invoices in the required format.
Original PR description
This commit adds the E-invoicing app for Jordan. The E-invoicing is mandatory for businesses in Jordan as the end of May 2024. task-3895493
Enhancements to existing features
Connected devices in the IoT Box form are now editable instead of read-only. This improvement allows users to modify device settings directly from the IoT Box view without having to navigate to a separate Device page and search for the device in a list, saving time and improving workflow efficiency.
Original PR description
From the IoT Box form view, we display the connected devices: they were readonly. Now, they are editable, avoiding us from going to the "Device" page, then look for the device in the list.
The German tax report export format has been updated to support version 7.0 of the CSV standard. All required headers have been adjusted to comply with the new format requirements, ensuring compatibility with updated tax reporting systems. The underlying data values remain unchanged.
Original PR description
The version of the csv is now 7.0. Adapt the headers to it, they must now all be present. The values don't seem to have changed, at least the ones required that we provide. task-4131986 Forward-Port-Of: odoo/enterprise#68853 Forward-Port-Of: odoo/enterprise#68796
This update removes an unnecessary cursor indicator that was appearing when hovering over selection fields in the sidebar and report editor areas. The cursor was creating a visually awkward effect, and this change provides a cleaner, more polished user experience when working with these interface elements.
Original PR description
This commit ensures that the caret is not displayed on hover in `RecordSelector` , `MultiRecordSelector` components when they are present in sidebars and report editors. Displaying the caret in sidebar RecordSelectors creates an awkward and visually unappealing effect. This issue arises because, in sidebars, the entire input area is a RecordAutocomplete with padding and margin. Task-3777903
When a bank connection fails, users will now see a clear banner message explaining the issue instead of being silently asked to reconnect. This improvement helps users understand why their bank account needs to be re-added and provides better transparency when connection problems occur.
Original PR description
[IMP] account_online_synchronization: Show banner when fail connecting to existing account Issue: Sometimes the connection with the bank breaks for some reasons either the user remove the connection from the bank dashboard etc. And when the user press on 'fetch_transaction' in odoo, We will ask him to add the bank again without showing him anything to indicate the reason. Solution: Adding a banner in the widget to report that we are facing an issue connecting to the bank-account and show it whenever the user face a problem connecting to existing account through the '_handle_odoofin_redirect_exception' which handle open the iframe whenever we face an issue connecting to an existing bank account Task-3355270 odoofin PR: https://github.com/odoo/odoofin/pull/263
Resolved issues and error corrections
This update removes an unnecessary error notification that was appearing when users clicked the "Pair" button to connect IoT devices. Previously, users would see a "No new IoT Box found" message even when the pairing process was working correctly. This fix improves the user experience by eliminating this confusing notification.
Original PR description
Once we clicked the "Pair" button, a notification showing "No new IoT Box found." was displayed. We want to avoid that.
This fix prevents SEPA payment configuration settings from being accidentally cleared when a company's partner information is exported and re-imported. Users who have configured SEPA Credit Transfer payments will no longer lose their settings during routine data import/export operations, ensuring their payment setup remains intact.
Original PR description
Problem: The SEPA configuration fields sepa_orgid_id and sepa_orgid_issr are reset when exporting and importing a partner (company) associated with a company. Steps to Reproduce: 1. Configure a "SEPA Credit Transfer (SCT)" for a company. 2. Export the partner related to the company. 3. Re-import the partner. 4. Check the SEPA configuration of the company; it is reset. Solution: To fix this, we need to prevent the SEPA configuration from being reset when it is already set. opw-3981278 Forward-Port-Of: odoo/enterprise#67424
This fix resolves an issue in the barcode scanning app where units from the same lot could not be packed into different packages. Previously, when registering multiple units of the same lot, the system would incorrectly consolidate them into a single package instead of allowing them to be split across multiple packages. This update ensures that fully packed items are not considered when assigning new lot registrations, enabling proper multi-package packing workflows.
Original PR description
### Steps to reproduce: - Enable packages in the inventory settings - Create a storable product tracked by Lot and put 4 units in stock: - 2 Units for "LOT001" - 2 Units for "LOT002" - Create and…
### Steps to reproduce: - Enable packages in the inventory settings - Create a storable product tracked by Lot and put 4 units in stock: - 2 Units for "LOT001" - 2 Units for "LOT002" - Create and confirm a sale order for 2 units - Go to the barcode app > Operations > Delivery orders > your Delivery Order - Register "LOT002" manually > One unit will be added to your delivery moves. - Put in pack > You can unroll the move to see that one move line was created for 1 unit with a package and 1 unit is still missing. - Register a second unit of "LOT002" manually to put in an other pack > The line is updated to 2 units instead of 1 so that the additional unit can not be packed in an other pack ### Expected behavior: You should be able to pack units of the same lot in different packages. ### Cause of the issue: To determine which line is going to be updated by our lot registration the `_findLine` method is called. This method look for each line in pageLines and when it finds a candidate move line it continues to find a better candidate. However, fully packed moves should not be considered as valid candidates. opw-4068334 Forward-Port-Of: odoo/enterprise#68535
This fix resolves an issue where users would see a blank preview when toggling the FileViewer to display a spreadsheet document. The problem occurred because spreadsheets were not being properly excluded from the preview toggle functionality. The fix ensures that only documents with actual previews are shown when users navigate between files, preventing the blank preview experience.
Original PR description
**[FIX] documents: skip spreadsheets while toggling preview in FileViewer** Issue: - preview any document that can be previewed. - toggle the preview to make the FileViewer preview a spreadsheet. -…
**[FIX] documents: skip spreadsheets while toggling preview in FileViewer** Issue: - preview any document that can be previewed. - toggle the preview to make the FileViewer preview a spreadsheet. - as the spreadsheet lacks a preview, a blank preview is seen when the FileViewer lands on the spreadsheet. Reason: - while preparing the `documentsRecords` there is actually a filter present to filter out only previewable records. please refer --- https://github.com/odoo/enterprise/blob/17.0/documents/static/src/views/hooks.js#L311 - but for some reason the function `[isRecordPreviewable]` is not passed as a parameter from neither the `DocumentsKanbanController` nor the `DocumentsListController` and as a result, rendered the `.filter()` useless. Fix: - We migrate the `isRecordPreviewable()` method to the `DocumentsSpreadsheetControllerMixin` so that it overrides the newly created `isRecordPreviewable()` method in the `DocumentsKanbanController`, which is then accessed by the `.filter()` mentioned above. Task-4029257
This fix removes portal users from appearing in the assignee search dropdown when assigning tasks in the Project module. Portal users cannot be assigned to tasks, so filtering them out provides a cleaner and more accurate user experience when selecting task assignees.
Original PR description
This commit fixes the group_expand in porject_entreprise when searching for a assignees (thus on the res.users model). The problem was that the portal users were also displayed, which makes no sense as they cannot be assigned to tasks. taskid:3703637
This fix corrects how inventory locations are assigned when manually adding items to subcontracted transfers using barcode scanning. Previously, the system would use the default picking location instead of the more specific subcontract location, causing inventory records to show incorrect source locations. Now the system correctly uses the precise location defined for subcontract moves, ensuring accurate inventory tracking.
Original PR description
**Current behavior:** When adding an unplanned move line to a transfer in barcode, if the line is added to an existing move which is a subcontract transfer, it will not take the subcontract location…
**Current behavior:** When adding an unplanned move line to a transfer in barcode, if the line is added to an existing move which is a subcontract transfer, it will not take the subcontract location as its source location value. Rather, it will use whatever value is defined on the picking. **Expected behavior:** Use the more precise location defined on the move rather than the picking. **Steps to reproduce:** 1. Create a product with a subcontract BOM 2. Create a receipt for that product from the subcontractor 3. Open the transfer in Barcode and manually add another line for the same product -> validate 4. In the receipt form, look at the move lines (detailed operations) and group by location to see the discrepancy **Cause of the issue:** When creating a move line here, it does not initially get a `move_id` value. Later when the move is written to the line, we would not generally want to override whatever value is on the line already because it (normally) is more precise/was purposely changed later than what value is on the move. **Fix:** In the case of lines which are created and then linked to a subcontract move, take the `location_id` of the move rather than whatever value is on the MoveLine. opw-4007423
This update fixes the formatting of debit/credit indicators in German tax reports exported to CSV format. The letters in column B of DateV exports are now properly displayed in uppercase, ensuring compliance with German accounting standards and improving compatibility with accounting software that processes these files.
Original PR description
The s/h in column B of the export of the csv for DateV should be in uppercase. task-4131986 Forward-Port-Of: odoo/enterprise#68844 Forward-Port-Of: odoo/enterprise#68795
This update fixes two issues in the Studio form editor: it now allows users to properly remove empty label containers without breaking field alignment, and it improves how the system tracks form changes to prevent unnecessary duplicate operations. Users can now cleanly remove fields and their labels without leaving orphaned empty spaces that misalign remaining fields.
Fixed an issue where documents uploaded from an employee's profile were not being linked to that employee's record. Now when you upload a file through an employee's Documents section, it automatically associates the document with that employee, making it easier to track and organize employee-related files.
Original PR description
…g from it How to reproduce: - Install documents_hr - Open Employee -> "Abigail Peterson" -> stats button Documents - Upload a file The document is not linked to the employee record "Abigail Peterson". With this fix, it is and you can see it in the inspector of that document: "Employee Abigail Peterson" Task-4122377 Forward-Port-Of: odoo/enterprise#68541
This update fixes a technical issue in the room module where presence notifications were not being properly synchronized, causing test failures. The fix ensures that presence updates are only sent to users who need them, improving system reliability and test stability without affecting end-user functionality.
Original PR description
In the community counterpart of this PR, a debounce is added to the addition of bus channels in order to batch them as much as possible. The room module uses the `waitForSubscribe` bus helper but never awaits it which trigger errors in other tests. This PR fixes this issue. backport of https://github.com/odoo/enterprise/pull/68099 community: https://github.com/odoo/odoo/pull/176580