Friday, December 6, 2024
31 changes · saas-17.4
Enhancements to existing features
HR activity plans now use a consistent summary format whether they are launched from an employee record or another HR context. This makes follow-up activities clearer and reduces confusion for users managing employee-related tasks.
Original PR description
- edit the codition to check if the active model is HR to use the smae plan summary as the buttom rfom the employee from Task: 4237311 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
Resolved issues and error corrections
Employee badge IDs are now limited to standard letters and numbers so they can be printed as barcodes reliably. This prevents accented characters from causing the badge number to appear as plain text instead of a scannable barcode.
Original PR description
**Steps:** - Install the hr module - Open the employee profile ----- **Description of the issue/feature this PR addresses:** In the employee profile, when entering letters with accents (é è à ë ...) in the badge ID, the barcode fails to print correctly, displaying the badge number as plain text instead. ----- **Cause:** The issue is due to barcode scanner limitations. ----- **Fix:** This PR resolves the issue by restricting the badge ID to alphanumeric characters without accents. task-4316576
Miscellaneous changes
Before this fix: As the default log level if set to INFO, having a 400 on mercado pago notification log does not help to further investigate the case After this fix: Unusual situatution logs that were in debug level were increased to WARNING level instead to be by default in logs files opw-4349957 Forward-Port-Of: odoo/odoo#189894
Original PR description
Before this fix: As the default log level if set to INFO, having a 400 on mercado pago notification log does not help to further investigate the case After this fix: Unusual situatution logs that were in debug level were increased to WARNING level instead to be by default in logs files opw-4349957 Forward-Port-Of: odoo/odoo#189894
Fixed a display issue where the currency symbol could overlap or appear inside the amount field during bank reconciliation matching. This makes manual operations easier to read and helps users avoid confusion when reviewing transaction amounts.
Original PR description
CSS problem with currency symbol in the monetary field amount, when being on the reconciliation widget, click on a statement and then try to match an existing entries. When clicking on this line, the currency of the amount in the manual operations page was in the amount. task: 4260301
The document sharing screen no longer shows a link before the share has been saved. This prevents users from copying a link that will not work and guides them to use the save-and-copy action instead.
Original PR description
The issue: In 17.4, the sharing code was refactored by bb435a2 to only create the share record after clicking the save button. However, the user is still able to copy the "non created" url from the url field before clicking save. So if the user copied the url from the url field, and didn't click on save, the url will not be valid as the corresponding record is not yet created. Solution: This PR simply hides the url field, so the only way to copy the url is by clicking on the save button (save & copy url). That aligns with v18. opw-4335725
Steps to reproduce: - open burndown chart of any project - add open/closed task filter Issue: - filters don't return anything in the burndown chart even though project contains open/closed tasks Sol: - add correct domain in open/closed task filter task-4295668 Forward-Port-Of: odoo/odoo#185850
Original PR description
Steps to reproduce: - open burndown chart of any project - add open/closed task filter Issue: - filters don't return anything in the burndown chart even though project contains open/closed tasks Sol: - add correct domain in open/closed task filter task-4295668 Forward-Port-Of: odoo/odoo#185850
current behaviour: when buggy server action is introduced, we don't handle it well, eg: ``` name = record.name if name != record.partner_id: raise UserError("Datatype") ``` here, comparing `name` and `record.partner_id` doesn't make sense, therefore our ORM default behaviour is to return false and rise `AttributeError`, but the problem occurs when pypdf2 attempts to format the warning message, which rises an error which isn't being handled: ``` File "/home/odoo/.local/lib/python3.
Original PR description
current behaviour: when buggy server action is introduced, we don't handle it well, eg: ``` name = record.name if name != record.partner_id: raise UserError("Datatype") ``` here, comparing `name` and…
current behaviour:
when buggy server action is introduced, we don't handle it well, eg:
```
name = record.name
if name != record.partner_id:
raise UserError("Datatype")
```
here, comparing `name` and `record.partner_id` doesn't make sense, therefore our ORM default behaviour is to return false and rise `AttributeError`, but the problem occurs when pypdf2 attempts to format the warning message, which rises an error which isn't being handled:
```
File "/home/odoo/.local/lib/python3.10/site-packages/PyPDF2/pdf.py", line 1069, in _showwarning
file.write(formatWarning(message, category, filename, lineno, line))
File "/home/odoo/.local/lib/python3.10/site-packages/PyPDF2/utils.py", line 69, in formatWarning
file = filename.replace("/", "\\").rsplit("\\", 1)[1] # find the file name
IndexError: list index out of range
```
it is problematic since it is server action.
expected behaviour:
Even when buggy code is introduced, comparision should return False and error should be handled well.
steps to reproduce:
1) Create new database from scratch and create server action with the buggy code above, set model to `sale.orde` and add it to `contextual action`
2) Go to any `sale.order` record and trigger the action. 3) it outputs the error.
4) please note that, if you restart the server, error doesn't happen, because places where override happens doesn't get invoked.
task-4365106
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#189688This commit fixes the wrong use of the contenteditable attribute inside the useSpellcheck implementation. Now, the isContentEditable attribute is used to find the right element. A test has been added too, using the contenteditable='true' attribute. Forward-Port-Of: odoo/odoo#189784 Forward-Port-Of: odoo/odoo#189728
Original PR description
This commit fixes the wrong use of the contenteditable attribute inside the useSpellcheck implementation. Now, the isContentEditable attribute is used to find the right element. A test has been added too, using the contenteditable='true' attribute. Forward-Port-Of: odoo/odoo#189784 Forward-Port-Of: odoo/odoo#189728
Versions -------- - 16.0+ Steps (18.0+) ------------- 1. Have the `account_tax_python` module installed; 2. define a sales tax using "Custom Formula"; 3. define a formula based on `product.standard_price`; 4. have the tax enabled for products in eCommerce; 5. as a Public User, go to the eCommerce page. Issue ----- > 403: Forbidden Cause ----- Commit de302c2 changed the way company dependent fields are handled. Instead of computing them via `_compute_company_dependent`, they
Original PR description
Versions -------- - 16.0+ Steps (18.0+) ------------- 1. Have the `account_tax_python` module installed; 2. define a sales tax using "Custom Formula"; 3. define a formula based on `product.standard_price`; 4. have the tax enabled for products in eCommerce; 5. as a Public User, go to the eCommerce page. Issue ----- > 403: Forbidden Cause ----- Commit de302c2 changed the way company dependent fields are handled. Instead of computing them via `_compute_company_dependent`, they are now stored in the database. Before this this change, any `groups` restriction added to a field wasn't actually checked. After this change, it does get checked, leading to the 403 error. Solution -------- When computing taxes, pass `product` with `sudo` to ensure access to all necessary fields. opw-4354321 Forward-Port-Of: odoo/odoo#189490 Forward-Port-Of: odoo/odoo#189186
For `l10n_cg`, some taxes are unarchived. For `l10n_syscohada`, the type of some accounts is changed from Equity to Current liabilities or Current Asset. A missing account is also added. task-3848455 Forward-Port-Of: odoo/odoo#189491 Forward-Port-Of: odoo/odoo#163380
Original PR description
For `l10n_cg`, some taxes are unarchived. For `l10n_syscohada`, the type of some accounts is changed from Equity to Current liabilities or Current Asset. A missing account is also added. task-3848455 Forward-Port-Of: odoo/odoo#189491 Forward-Port-Of: odoo/odoo#163380
**Steps to reproduce:** - Install Accounting and l10n_de - Switch to a German company - Configure the customer invoice journal to enable "XRechnung UBL (Germany)" - Create a German contact: * with a complete address * with an email address * without a VAT number - Create an invoice for the created contact - Confirm the invoice - Generate the electronic invoice - Validate the generated XML on an online XRechnung ValidationError **Issue:** The XRechnung (UBL Invoice) is not va
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_de - Switch to a German company - Configure the customer invoice journal to enable "XRechnung UBL (Germany)" - Create a German contact: * with a…
**Steps to reproduce:** - Install Accounting and l10n_de - Switch to a German company - Configure the customer invoice journal to enable "XRechnung UBL (Germany)" - Create a German contact: * with a complete address * with an email address * without a VAT number - Create an invoice for the created contact - Confirm the invoice - Generate the electronic invoice - Validate the generated XML on an online XRechnung ValidationError **Issue:** The XRechnung (UBL Invoice) is not valid because the buyer electronic address is missing (cbc:EndpointID). **Cause:** `<cbc:EndpointID>` gets its value from contact's VAT, but the contact has no VAT. **Solution:** Since XRechnung 3.0.1, the email address can be used as electronic address with "EM" as schemeID. So, fallback on email address if contact has no VAT. **Reference:** https://www.e-rechnung-bund.de/standard-xrechnung-3-0-1/ https://blog.seeburger.com/xrechnung-version-3-0-1-comes-into-force-on-february-1-2024/ https://erechnungsvalidator.service-bw.de/ opw-4261026 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189183
Current behaviour: --- When setting mail templates in the communication tab of an event, you initially only see event templates, unless you click on "Search more ..." which allows you to set non-event templates. Expected behaviour: --- Only seeing/and being able to set event templates Steps to reproduce: --- 1. Install event_sale 2. Go to Events, pick an event 3. In the communication tab, remove all templates 4. By clicking on "Search more ..." add a sale template 5. Set as Imm
Original PR description
Current behaviour: --- When setting mail templates in the communication tab of an event, you initially only see event templates, unless you click on "Search more ..." which allows you to set…
Current behaviour: --- When setting mail templates in the communication tab of an event, you initially only see event templates, unless you click on "Search more ..." which allows you to set non-event templates. Expected behaviour: --- Only seeing/and being able to set event templates Steps to reproduce: --- 1. Install event_sale 2. Go to Events, pick an event 3. In the communication tab, remove all templates 4. By clicking on "Search more ..." add a sale template 5. Set as Immediately and After each registration 6. Click on the smart button "Attendees" 7. Create a new attendee with an email then save 8. You may need to create multiple attendees 9. Failed to render inline_template template Cause of the issue: --- When selecting a sale template, the render model is `sale.order` So when passing the registration id to get rendered, it tries to read this id on a `sale.order`, causing an error if a `sale.order` with this id doesn't exist. Caused by: https://github.com/odoo/odoo/commit/6abd149259e9caf815fe1804f1322f623f8fcb50 `_name_search` was overriden, but the "Search more ..." option doesn't used `_name_search` but `web_search_read` Fix: --- Overrode `_search` as well opw-4106237 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180705
Steps to reproduce the bug (only on Safari): - Drag and drop 4-5 "Text" blocks onto the page. - Hide all of them in desktop view by clicking the "Hide on desktop" button for each one. This should create a list of "Invisible Elements" at the bottom of the right panel. - Drag and drop a "Text - Image" block onto the page. - Click the image in the "Text - Image" block. - In the image options, click the "Shape" selector. - Bug: The "Shape" selector is partially hidden behind the "Invisible E
Original PR description
Steps to reproduce the bug (only on Safari): - Drag and drop 4-5 "Text" blocks onto the page. - Hide all of them in desktop view by clicking the "Hide on desktop" button for each one. This should create a list of "Invisible Elements" at the bottom of the right panel. - Drag and drop a "Text - Image" block onto the page. - Click the image in the "Text - Image" block. - In the image options, click the "Shape" selector. - Bug: The "Shape" selector is partially hidden behind the "Invisible Elements" list, and it is not possible to scroll to the bottom of the "shapes" list to access the last shapes. After investigation, we found that the issue comes from the backdrop, which is positioned as sticky behind the shape selector. Since the backdrop isn't needed for the "shape selector" (it covers the entire right panel), we simply disabled it for the "shape selector". opw-4357397 Forward-Port-Of: odoo/odoo#189591
In some business case when the invoice is done before the receipt, the `stock.valuation.layer` currency rate will be taken on the bill rather than the current date. To reproduce the issue: (Need account_accountant) 1. Create a product category PC - Costing method: FIFO - Inventory valuation: Automated 2. Create a product P - Type: Storable - Category: PC 3. On 10/11/2024, confirm a PO with 1 x P at Є10 4. On 11/11/2024, bill it with currency rate of 1.06 at $10.6 4. On 1
Original PR description
In some business case when the invoice is done before the receipt, the `stock.valuation.layer` currency rate will be taken on the bill rather than the current date. To reproduce the issue: (Need account_accountant) 1. Create a product category PC - Costing method: FIFO - Inventory valuation: Automated 2. Create a product P - Type: Storable - Category: PC 3. On 10/11/2024, confirm a PO with 1 x P at Є10 4. On 11/11/2024, bill it with currency rate of 1.06 at $10.6 4. On 12/11/2024, receive P with currency rate of 1.07 at $10.7 Errors: The price SVL is different from the bill Solution: Use currency rate at bill date rather than the current date when invoice before receipt --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189210 Forward-Port-Of: odoo/odoo#187015
Versions -------- - 16.0+ Steps ----- 1. Activate a second language; 2. create a new quotation template; 3. add a note & save change; 4. add a translation for the note & save change; 5. create a new sales order; 6. select the created quotation template; 7. set customer to a partner using the second language. Issue ----- The note is still displayed in English. Cause ----- The translation is saved on the `sale.order.template.line` model, so it has to get fetched from there.
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Activate a second language; 2. create a new quotation template; 3. add a note & save change; 4. add a translation for the note & save change; 5. create a new sales order; 6. select the created quotation template; 7. set customer to a partner using the second language. Issue ----- The note is still displayed in English. Cause ----- The translation is saved on the `sale.order.template.line` model, so it has to get fetched from there. Currently there is no logic in place to do this when changing the customer. Solution -------- Add an `onchange` method which reloads the template if no lines were added or removed. opw-4260006 Forward-Port-Of: odoo/odoo#188038
The issue: Starting with version 17.4, the Odoo banner displaying the invoice name on original bills is only added if the attached PDF uses US Letter paper size and is oriented vertically. How to reproduce the issue: -Upload any invoice with a non-standard format -Print -> Original Bills Explanation: Since saas-17.4, the PyPDF2 library version was upgraded from 1.26.0 to 2.12.1. In version 1.26.0, the canvas dimensions were automatically adjusted when merging with non-standard page siz
Original PR description
The issue: Starting with version 17.4, the Odoo banner displaying the invoice name on original bills is only added if the attached PDF uses US Letter paper size and is oriented vertically. How to reproduce the issue: -Upload any invoice with a non-standard format -Print -> Original Bills Explanation: Since saas-17.4, the PyPDF2 library version was upgraded from 1.26.0 to 2.12.1. In version 1.26.0, the canvas dimensions were automatically adjusted when merging with non-standard page sizes. However, in version 2.12.1, this behavior no longer occurs, resulting in the banner not appearing correctly on non-standard formats. opw-4278031 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186947
Commit 1e0183d506d265c978de61e5316e8d35fcbacb05 made sure that child addresses where the commercial fields (vat, company name, ...) are not displayed are considered valid since those fields will be taken from the commercial partner (parent contact). Nevertheless, the code in the argentinian localization doesn't handle the cases where those values are not provided, which led to a traceback being displayed to the customers, which shouldn't ever happen in the ecommerce checkout: > if afip_res
Original PR description
Commit 1e0183d506d265c978de61e5316e8d35fcbacb05 made sure that child addresses where the commercial fields (vat, company name, ...) are not displayed are considered valid since those fields will be taken from the commercial partner (parent contact). Nevertheless, the code in the argentinian localization doesn't handle the cases where those values are not provided, which led to a traceback being displayed to the customers, which shouldn't ever happen in the ecommerce checkout: > if afip_resp.code not in ['5', '9'] and id_type != cuit_id_type 'bool' object has no attribute 'code' This commit skips the validation in case those fields are not given. Either they are required and the main validation ensures they are provided (and they'll be verified by the override), or they are not provided and shouldn't be, in which case the validation can be skipped here. opw-4373610 Fixes #189227 Forward-Port-Of: odoo/odoo#189312
When `location_id` is None in `_get_rule` the line `while locations[-1].location_id` raises an IndexError. This commit fixes that by returning early with an empty recordset of stock.rule in case location_id is None. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188953
Original PR description
When `location_id` is None in `_get_rule` the line `while locations[-1].location_id` raises an IndexError. This commit fixes that by returning early with an empty recordset of stock.rule in case location_id is None. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188953
Since [1], the `tel://` protocol was adopted instead of `tel:`. However, URIs cannot contain space characters, which can lead to invalid URIs in certain cases. Steps to reproduce: - Open the website editor. - Attempt to edit the phone number in the header. - The URI becomes invalid due to the presence of a space character. This commit resolves the issue by removing space characters from the URI, ensuring it remains valid. [1]: https://github.com/odoo/odoo/commit/6d4a3b3ab5c0f3
Original PR description
Since [1], the `tel://` protocol was adopted instead of `tel:`. However, URIs cannot contain space characters, which can lead to invalid URIs in certain cases.
Steps to reproduce:
- Open the website editor.
- Attempt to edit the phone number in the header.
- The URI becomes invalid due to the presence of a space character.
This commit resolves the issue by removing space characters from the URI, ensuring it remains valid.
[1]:
https://github.com/odoo/odoo/commit/6d4a3b3ab5c0f3361d1d681d05b974e295dcbabe
opw-4354614
Forward-Port-Of: odoo/odoo#188964Steps to reproduce ================== - In 18, install documents,project - Open a project then a task - Switch to a mobile view and refresh the page - The lightning icon is smaller than the cog icon Cause of the issue ================== https://github.com/odoo/odoo/pull/188986 An overflow was applied on the entire oe_stat_button Solution ======== We can move the overflow to the `o_field_statinfo` This is better than before as now the ellipsis is visible. task-4377703
Original PR description
Steps to reproduce ================== - In 18, install documents,project - Open a project then a task - Switch to a mobile view and refresh the page - The lightning icon is smaller than the cog icon Cause of the issue ================== https://github.com/odoo/odoo/pull/188986 An overflow was applied on the entire oe_stat_button Solution ======== We can move the overflow to the `o_field_statinfo` This is better than before as now the ellipsis is visible. task-4377703 Forward-Port-Of: odoo/odoo#189780
With this commit, the useless scroll bar in refuse reason wizard is removed. task-4270277 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#189320 Forward-Port-Of: odoo/odoo#184539
Original PR description
With this commit, the useless scroll bar in refuse reason wizard is removed. task-4270277 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#189320 Forward-Port-Of: odoo/odoo#184539
Versions -------- - 16.0+ Steps ----- 1. Create a rental order; 2. cancel said rental order; 3. go to Schedule; 4. change search to show all rental orders; 5. hover over cancelled rental order. Issue ----- It's still showing its status as 'reserved'. Cause ----- The `report_line_status` field assumes any line that isn't picked up or returned is reserved. Solution -------- If the order's state is `cancel`, display the report line as "Cancelled". opw-4342420 Forward-P
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Create a rental order; 2. cancel said rental order; 3. go to Schedule; 4. change search to show all rental orders; 5. hover over cancelled rental order. Issue ----- It's still showing its status as 'reserved'. Cause ----- The `report_line_status` field assumes any line that isn't picked up or returned is reserved. Solution -------- If the order's state is `cancel`, display the report line as "Cancelled". opw-4342420 Forward-Port-Of: odoo/enterprise#75245 Forward-Port-Of: odoo/enterprise#75066
The Profit&Loss and Balance Sheet have now a "Note" column, that contains a code that will help cross reference the Note Report (currently not implemented in odoo). Also, "Gross" and "Depreciation" columns are added to the Balance Sheet. Community PR: https://github.com/odoo/odoo/pull/163380 task-3848455 Forward-Port-Of: odoo/enterprise#75087 Forward-Port-Of: odoo/enterprise#61473
Original PR description
The Profit&Loss and Balance Sheet have now a "Note" column, that contains a code that will help cross reference the Note Report (currently not implemented in odoo). Also, "Gross" and "Depreciation" columns are added to the Balance Sheet. Community PR: https://github.com/odoo/odoo/pull/163380 task-3848455 Forward-Port-Of: odoo/enterprise#75087 Forward-Port-Of: odoo/enterprise#61473
Steps to reproduce the bug: - Create a storable product “P1.” - Set up a quality point: - Control Per: By operation - Operation: Receipts - Product: P1 - Create a receipt for two units of P1. - Mark the receipt as "To Do." - Click on "Quality Check" → Fail. - Click on action → Scrap: - Scrap 1 unit of P1. - Confirm. Problem: A quality check is created for the scrapped move. This should not happen. opw-4345679 Forward-Port-Of: odoo/enterprise#75160
Original PR description
Steps to reproduce the bug: - Create a storable product “P1.” - Set up a quality point: - Control Per: By operation - Operation: Receipts - Product: P1 - Create a receipt for two units of P1. - Mark the receipt as "To Do." - Click on "Quality Check" → Fail. - Click on action → Scrap: - Scrap 1 unit of P1. - Confirm. Problem: A quality check is created for the scrapped move. This should not happen. opw-4345679 Forward-Port-Of: odoo/enterprise#75160
Current behaviour: --- When setting mail templates in the communication tab of an event, you initially only see event templates, unless you click on "Search more ..." which allows you to set non-event templates. Expected behaviour: --- Only seeing/and being able to set event templates Steps to reproduce: --- 1. Install event_sale 2. Go to Events, pick an event 3. In the communication tab, remove all templates 4. By clicking on "Search more ..." add a sale template 5. Set as Imm
Original PR description
Current behaviour: --- When setting mail templates in the communication tab of an event, you initially only see event templates, unless you click on "Search more ..." which allows you to set…
Current behaviour: --- When setting mail templates in the communication tab of an event, you initially only see event templates, unless you click on "Search more ..." which allows you to set non-event templates. Expected behaviour: --- Only seeing/and being able to set event templates Steps to reproduce: --- 1. Install event_sale 2. Go to Events, pick an event 3. In the communication tab, remove all templates 4. By clicking on "Search more ..." add a sale template 5. Set as Immediately and After each registration 6. Click on the smart button "Attendees" 7. Create a new attendee with an email then save 8. You may need to create multiple attendees 9. Failed to render inline_template template Cause of the issue: --- When selecting a sale template, the render model is `sale.order` So when passing the registration id to get rendered, it tries to read this id on a `sale.order`, causing an error if a `sale.order` with this id doesn't exist. Caused by: https://github.com/odoo/odoo/commit/6abd149259e9caf815fe1804f1322f623f8fcb50 `_name_search` was overriden, but the "Search more ..." option doesn't used `_name_search` but `web_search_read` Fix: --- Overrode `_search` instead opw-4106237 Forward-Port-Of: odoo/enterprise#73947
Versions -------- - 17.0+ Steps ----- 1. Create an appointment type with availability base on resources; 2. have multiple resources to select from; 3. copy share URL; 4. open URL; 5. select a different resource. Issue ----- The resource name in the right column doesn't update to the selected resource. Cause ----- There's no logic in place to update it after selecting a different resource. Solution -------- For user-based appointments, this part isn't shown as long as th
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create an appointment type with availability base on resources; 2. have multiple resources to select from; 3. copy share URL; 4. open URL; 5. select a different resource. Issue ----- The resource name in the right column doesn't update to the selected resource. Cause ----- There's no logic in place to update it after selecting a different resource. Solution -------- For user-based appointments, this part isn't shown as long as there's multiple options available. Expand this logic to also work for resource-based appointments. Also modify it to now show details on date selection step unless there's only one option to select from (instead of unless pictures should be shown). With `website_appointment`, this is also the case when a separate selection screen was shown beforehand. opw-4355438 Forward-Port-Of: odoo/enterprise#75006
In a production setup: - Create an invoice and sign it - Ask for a cancellation rejected by the customer => an invoice_request_cancel document is created - Ask for another cancellation request => another invoice_request_cancel document is created - Trigger the SAT to approve the second cancellation request => The first invoice_request_cancel document is unlink. Forward-Port-Of: odoo/enterprise#74753
Original PR description
In a production setup: - Create an invoice and sign it - Ask for a cancellation rejected by the customer => an invoice_request_cancel document is created - Ask for another cancellation request => another invoice_request_cancel document is created - Trigger the SAT to approve the second cancellation request => The first invoice_request_cancel document is unlink. Forward-Port-Of: odoo/enterprise#74753
useEffect hook on pdf_manager generates file urls from documents ids, before this commit documents comming from activity view didn't have id key set. Reproduce --- - install document - open documents activity view, schedule an activity with a document (that is possible to split) - attempt to split the document -> Traceback opw-4163726 Forward-Port-Of: odoo/enterprise#70531
Original PR description
useEffect hook on pdf_manager generates file urls from documents ids, before this commit documents comming from activity view didn't have id key set. Reproduce --- - install document - open documents activity view, schedule an activity with a document (that is possible to split) - attempt to split the document -> Traceback opw-4163726 Forward-Port-Of: odoo/enterprise#70531
### Description When opening a report with a lot of data to display, getting some values can be very costly. In this case, for the depreciation schedule, we are retrieving the column expression and currency symbol each time if not found in `_build_column_dict`. To avoid retrieving a value that was already fetched, we can pass the currency and the expression directly. This reduces unnecessary `__get__` calls. ### Benchmark (made in 17.0) | N° of assets | Before | After | |------
Original PR description
### Description When opening a report with a lot of data to display, getting some values can be very costly. In this case, for the depreciation schedule, we are retrieving the column expression and currency symbol each time if not found in `_build_column_dict`. To avoid retrieving a value that was already fetched, we can pass the currency and the expression directly. This reduces unnecessary `__get__` calls. ### Benchmark (made in 17.0) | N° of assets | Before | After | |--------------|---------|--------| | 500 | 2 s | 1.55 s | | 7k | 20 s | 19 s | | 17k | 50 s | 41 s | ### Reference opw-4287192 Forward-Port-Of: odoo/enterprise#74997 Forward-Port-Of: odoo/enterprise#74085
Add check if date string is not equal to "000000" before parsing it, in record types that were missing this check. Some banks provide CODA files with the date set to "000000" which caused the `_parse_bank_statement_file` method to raise an exception and fail to parse such files. Using the `statement['date']` as a fallback in such case, as it is already used for `balance_start_date` and `transactionDate` fields. task-4348031 Forward-Port-Of: odoo/enterprise#74640
Original PR description
Add check if date string is not equal to "000000" before parsing it, in record types that were missing this check. Some banks provide CODA files with the date set to "000000" which caused the `_parse_bank_statement_file` method to raise an exception and fail to parse such files. Using the `statement['date']` as a fallback in such case, as it is already used for `balance_start_date` and `transactionDate` fields. task-4348031 Forward-Port-Of: odoo/enterprise#74640
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then upload a file in the app Documents, in the workspace Finance - Select that file and update the partner to Azure Interior - Click on the action "Create Vendor Bill" The partner "Azure Interior" is not set on the created account move while it should. For fixing this adding ``partner_id`` o
Original PR description
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then…
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then upload a file in the app Documents, in the workspace Finance - Select that file and update the partner to Azure Interior - Click on the action "Create Vendor Bill" The partner "Azure Interior" is not set on the created account move while it should. For fixing this adding ``partner_id`` of document if present. Now question may arise why account.move having null partner_id. because it being [set](https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/documents_account/models/documents_workflow_rule.py#L77) after creating [attachment](https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/documents_account/models/documents_workflow_rule.py#L76) and during create attachment ``document.partner_id`` is set to null and issue is raised. opw-4077356 Forward-Port-Of: odoo/enterprise#74875