Friday, June 7, 2024
49 changes
Resolved issues and error corrections
This change ensures the website live chat chatbot flow test can run reliably when demo data is not installed. It creates the needed portal user during the test, reducing build failures and improving confidence in release checks.
Original PR description
Before this PR, the `website_livechat_chatbot_flow_tour` was failing in no-demo builds. This test uses the demo portal user, which is not available in these cases. This PR fixes the issue by creating a portal user for this test. fixes runbot-65497
Miscellaneous changes
**Current behavior:** When editing an email template with a link, it will get removed when switching in/out of the codeview editor even if it has some useful value. **Expected behavior:** These links will not be removed. **Steps to reproduce:** *Install sale_stock* 1. Go to email templates, select `Shipping: Send by Email` 2. Select the body content, activate the codeview editor mode 3. Some content has been removed, while codeview editor is open, reset the template and o
Original PR description
**Current behavior:**
When editing an email template with a link, it will get removed
when switching in/out of the codeview editor even if it has some
useful value.
**Expected behavior:**
These links will not be removed.
**Steps to reproduce:**
*Install sale_stock*
1. Go to email templates, select `Shipping: Send by Email`
2. Select the body content, activate the codeview editor mode
3. Some content has been removed, while codeview editor is open,
reset the template and observe the change
4. This results in a delivery order email not having the
tracking link in its body
**Cause of the issue:**
On codeview save, we remove empty links- however some links may
have a t-out value and are still lost.
**Fix:**
Check for a t-attribute in the link node's attributes before
removing it.
opw-3919379
Forward-Port-Of: odoo/odoo#167150This error occurs when a user with ``Billing/Bookkeeper`` rights attempts to delete a payment associated with invoices from different companies. Steps to reproduce: - Install the ``account_accountant`` module - Create a new company (eg: Company A) and switch to it - Open Accounting > Configuration > Settings > Fiscal Localization > Generic Chart Template > Save - Enable all companies > Settings > General Settings > Companies > Inter-Company Transactions > Save > Again search for In
Original PR description
This error occurs when a user with ``Billing/Bookkeeper`` rights attempts to delete a payment associated with invoices from different companies. Steps to reproduce: - Install the…
This error occurs when a user with ``Billing/Bookkeeper`` rights attempts to delete a payment associated with invoices from different companies. Steps to reproduce: - Install the ``account_accountant`` module - Create a new company (eg: Company A) and switch to it - Open Accounting > Configuration > Settings > Fiscal Localization > Generic Chart Template > Save - Enable all companies > Settings > General Settings > Companies > Inter-Company Transactions > Save > Again search for Inter-Company Transactions > Synchronize invoices/bills > Create as: ``Mitchell Admin`` > Save - Accounting > Customers > Invoices > Select the one invoice with ``YourCompany`` as a company and ``Register Payment`` > Journal Entry > Reconciled Items > Select all and unreconciled them and the same for another invoice with ``Company A`` as a company - Go to ``Marc Demo`` in Users > Allowed Companies > add ``Company A`` > Save - Logout and login with ``Marc Demo`` - Accounting > Customers > Payments > Select both and delete it ``Traceback : ValueError : Expected singleton: res.company(2, 4)`` When we try to delete a payment involving different companies, at line [1] in ``self.company_id``, we are getting the IDs of two companies, which causes an error. This commit will fix the above error by adding a for loop that checks each record individually. [1]: https://github.com/odoo/odoo/blob/4fb50c6079dd59f3f82d335dbdf6c65f001c5855/addons/account/models/account_move.py#L2811 sentry-5408865989 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167195
In Spanish (MX) / Español (MX) Language The Translation of ``Valor desconocido '%s' para campo booleano '%%(campo)s'`` is done wrong in ``es_MX.po`` file of the base module. which leads to a traceback Traceback : ``KeyError 'campo'`` In the above-translated term, we mistakenly translated ``field`` to ``campo``. We should not translate ``field`` because it contains dynamic values. sentry-5454184338 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/su
Original PR description
In Spanish (MX) / Español (MX) Language The Translation of ``Valor desconocido '%s' para campo booleano '%%(campo)s'`` is done wrong in ``es_MX.po`` file of the base module. which leads to a traceback Traceback : ``KeyError 'campo'`` In the above-translated term, we mistakenly translated ``field`` to ``campo``. We should not translate ``field`` because it contains dynamic values. sentry-5454184338 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168273
Version: ----------- 16.0 Steps to reproduce: --------------------------- - open the Calendar module - make sure google sync is enabled - when to click on a event, a popup appears - when you press on delete, a confirmation message is shown but the popup is not closed Issue: ---------- The popup is not disappearing which allows the user to click multiple times on the delete option which can cause error when the user confirm the deletion as the user cannot delete a deleted record.
Original PR description
Version: ----------- 16.0 Steps to reproduce: --------------------------- - open the Calendar module - make sure google sync is enabled - when to click on a event, a popup appears - when you press on…
Version: ----------- 16.0 Steps to reproduce: --------------------------- - open the Calendar module - make sure google sync is enabled - when to click on a event, a popup appears - when you press on delete, a confirmation message is shown but the popup is not closed Issue: ---------- The popup is not disappearing which allows the user to click multiple times on the delete option which can cause error when the user confirm the deletion as the user cannot delete a deleted record. Cause: ----------- When google sync is enabled the event becomes achievable so when you delete the event instead of onDeleteEvent() function of CalendarCommonPopover component the onClickArchive() of AttendeeCalendarCommonPopover is called which do not handle the closing of the popup. Solution: ------------- In the onClickArchive() function, call the close function which is passed in the props of the parent component. task-3875211 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162411
backport of #161152 Forward-Port-Of: odoo/odoo#168314 Forward-Port-Of: odoo/odoo#168288
Original PR description
backport of #161152 Forward-Port-Of: odoo/odoo#168314 Forward-Port-Of: odoo/odoo#168288
With tens of millions of messages, it would take 2.5 seconds to return before this commit, and only 10ms after this commit. Other benchmarks: lateral order: https://explain.dalibo.com/plan/f85dfd1h8b16c8h1 lateral max: https://explain.dalibo.com/plan/c55cd13106ce5dde Before PR for reference: https://explain.dalibo.com/plan/29e460261b6g17d7 Forward-Port-Of: odoo/odoo#167446 Forward-Port-Of: odoo/odoo#167207
Original PR description
With tens of millions of messages, it would take 2.5 seconds to return before this commit, and only 10ms after this commit. Other benchmarks: lateral order: https://explain.dalibo.com/plan/f85dfd1h8b16c8h1 lateral max: https://explain.dalibo.com/plan/c55cd13106ce5dde Before PR for reference: https://explain.dalibo.com/plan/29e460261b6g17d7 Forward-Port-Of: odoo/odoo#167446 Forward-Port-Of: odoo/odoo#167207
In "Task-3890068 OPW-3787054" the customer is facing the issue regarding the activity. on clicking on activity they are getting all the records instead of the filtered data. Solution: 1) Added the code to enable "late" or "today" activity filter by default. 2) Added the on-click into the XML to get the activity for the appropriate button. Before PR: Not able to get the filtered record Video: https://drive.google.com/file/d/1s2K-1-n9y2hmRJhrxyZXGgGRoZ1KACSv/view?usp=sharing After PR
Original PR description
In "Task-3890068 OPW-3787054" the customer is facing the issue regarding the activity. on clicking on activity they are getting all the records instead of the filtered data. Solution: 1) Added the code to enable "late" or "today" activity filter by default. 2) Added the on-click into the XML to get the activity for the appropriate button. Before PR: Not able to get the filtered record Video: https://drive.google.com/file/d/1s2K-1-n9y2hmRJhrxyZXGgGRoZ1KACSv/view?usp=sharing After PR: Enable the filter (late, today and future activities) Video: https://drive.google.com/file/d/1a2mRHfZeHqvPcDHyIa6PlKyYw1HiImv7/view?usp=sharing --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167166 Forward-Port-Of: odoo/odoo#162567
Steps to reproduce: ------------- - Install project_sale_expenses and timesheet_grid - Create a new product - Can be Expensed. - Re-Invoice Expenses set to Sales price - Set sales price and cost to 957 - Create a project(service type) - Create a sale order with the service type product and confirm - Go to the expense App - Create a expense: - Choose a category (the product with Expensed). - Customer to Reinvoice: Select the above sale order. - Expense posted and
Original PR description
Steps to reproduce: ------------- - Install project_sale_expenses and timesheet_grid - Create a new product - Can be Expensed. - Re-Invoice Expenses set to Sales price - Set sales price and cost to…
Steps to reproduce:
-------------
- Install project_sale_expenses and timesheet_grid
- Create a new product
- Can be Expensed.
- Re-Invoice Expenses set to Sales price
- Set sales price and cost to 957
- Create a project(service type)
- Create a sale order with the service type product
and confirm
- Go to the expense App
- Create a expense:
- Choose a category (the product with Expensed).
- Customer to Reinvoice: Select the above sale order.
- Expense posted and approved
- Go to project and open project update
- Check the margin percentage to bill.
Issue:
-------------
Sometimes, the margin percentage of the 'to bill' item becomes unexpectedly
incorrect.
Cause:
-------------
In the _get_expenses_profitability_items function of project_sale_expense,
rounding during currency conversion may lead to minor variations
(e.g., 832.17 to 832.1700000000001)for some values, not all. These differences
accumulate when subtracting untaxed amounts from amount_to_bill, resulting
in a residual value (e.g., 1.1368683772161603e-13) instead of zero, causing
unexpected margin percentages.
Solution :
----------------
The _convert method will not round the value since we passed the round=False in the _convert method.
task-3706741
Forward-Port-Of: odoo/odoo#153620Steps to reproduce: ------------------- - create a project - create an invoice with Analytic Distribution for the project - go to the project's updates - in profitability section, click on "Customer Invoices" Issue: ------ A notification appears: ``` It seems the record with ID X cannot be found. It might have been deleted. ``` Cause: ------ The arguments in JSON format are: ``` "["other_invoice_revenues", [["id", "in", [X]]], X]" ``` with X not corresponding to the invoice
Original PR description
Steps to reproduce: ------------------- - create a project - create an invoice with Analytic Distribution for the project - go to the project's updates - in profitability section, click on "Customer Invoices" Issue: ------ A notification appears: ``` It seems the record with ID X cannot be found. It might have been deleted. ``` Cause: ------ The arguments in JSON format are: ``` "["other_invoice_revenues", [["id", "in", [X]]], X]" ``` with X not corresponding to the invoice id. They are determined by the method `_get_action_for_profitability_section`. In which the ids are `invoices_move_lines.ids` (in `_get_revenues_items_from_invoices`). Solution: --------- Find the `account.move` from the `account.move.line`. Note: Introduced with the commit abd40a461c289bfe092784977077ceb1c7ef12f3 opw-3924836 Forward-Port-Of: odoo/odoo#167721
Before this commit, when receiving a chatter notification, clicking on notification opens chat window to the oldest message. This happens because the default scroll top for all chatter threads was 0, taking into account that a chatter thread in form view is in DESC mode (i.e. messages are ordered from top to bottom, from newest to oldest). However, chatter in chat window is displayed in ASC mode like channels (i.e. messages are ordered from top to bottom, from oldest to newest). Scrolltop
Original PR description
Before this commit, when receiving a chatter notification, clicking on notification opens chat window to the oldest message. This happens because the default scroll top for all chatter threads was 0,…
Before this commit, when receiving a chatter notification, clicking on notification opens chat window to the oldest message. This happens because the default scroll top for all chatter threads was 0, taking into account that a chatter thread in form view is in DESC mode (i.e. messages are ordered from top to bottom, from newest to oldest). However, chatter in chat window is displayed in ASC mode like channels (i.e. messages are ordered from top to bottom, from oldest to newest). Scrolltop 0 means newest in chatter form view, but this becomes oldest in chat window with ASC order. This commit fixes the issue by normalizing the storing of thread scroll positions to ASC, so that default value is "bottom" regardless of order to display. in ASC, this is handled like before, but in DESC mode it translates "bottom" to 0. opw-3891999 Before  After  Forward-Port-Of: odoo/odoo#167906 Forward-Port-Of: odoo/odoo#167760
Problem: Product with quantity less than 0.5 can't be refunded Steps to reproduce: - Install "Point of Sale" and "Sales" apps - Go to Sales settings and enable "Units of Measure" - Create a product and set an UoM (eg. kg) - Go to the shop, sell 0.4 units of the product - Refund the last order - You won't be able to refund the product Cause: Compare if the quantity is zero with a "decimal.precision" as precision which is interpreted as a precision of zero. Solution: Use the digi
Original PR description
Problem: Product with quantity less than 0.5 can't be refunded Steps to reproduce: - Install "Point of Sale" and "Sales" apps - Go to Sales settings and enable "Units of Measure" - Create a product and set an UoM (eg. kg) - Go to the shop, sell 0.4 units of the product - Refund the last order - You won't be able to refund the product Cause: Compare if the quantity is zero with a "decimal.precision" as precision which is interpreted as a precision of zero. Solution: Use the digits of "decimal.precision" as precision opw-3945427 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167336
Before this commit, an error occurred in the following scenario: - Open Point of Sale and sell a product with lot tracking - Close/Post the Point of Sale session - Open the product record and disable tracking in the inventory tab - Start a new session, click on Orders and sort for Paid orders opw-3921893 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168078 Forward-Port-Of: odoo/odoo#166915
Original PR description
Before this commit, an error occurred in the following scenario: - Open Point of Sale and sell a product with lot tracking - Close/Post the Point of Sale session - Open the product record and disable tracking in the inventory tab - Start a new session, click on Orders and sort for Paid orders opw-3921893 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168078 Forward-Port-Of: odoo/odoo#166915
Steps to reproduce ================== - Go to CRM - Switch to the graph view - Use the Pie Chart mode - Click on any label => The visibility of the dataset is toggled but the label should be crossed out Solution ======== From the Chart.js v3 migration guide, we can see this > Element.hidden was replaced by chart level status, usable with getDataVisibility(index) / toggleDataVisibility(index) https://www.chartjs.org/docs/latest/migration/v3-migration.html opw-3935183
Original PR description
Steps to reproduce ================== - Go to CRM - Switch to the graph view - Use the Pie Chart mode - Click on any label => The visibility of the dataset is toggled but the label should be crossed out Solution ======== From the Chart.js v3 migration guide, we can see this > Element.hidden was replaced by chart level status, usable with getDataVisibility(index) / toggleDataVisibility(index) https://www.chartjs.org/docs/latest/migration/v3-migration.html opw-3935183 Forward-Port-Of: odoo/odoo#167785
With an ES company setup and TicketBAI service active Create an Invoice Post it but do not send the Invoice to EDI (disable cron if necessary) Create a Credit note for the invoice Send the credit note to EDI service Traceback will raise "ValueError: time data '' does not match format '%d-%m-%Y'" This occurs because we retrieve information of the original invoice directly from the 'post' XMLs submitted to the government but we don't have any opw-3919568 Forward-Port-Of: odoo/odoo
Original PR description
With an ES company setup and TicketBAI service active Create an Invoice Post it but do not send the Invoice to EDI (disable cron if necessary) Create a Credit note for the invoice Send the credit note to EDI service Traceback will raise "ValueError: time data '' does not match format '%d-%m-%Y'" This occurs because we retrieve information of the original invoice directly from the 'post' XMLs submitted to the government but we don't have any opw-3919568 Forward-Port-Of: odoo/odoo#167172
Steps to reproduce: - Install Time Off app - Go to working schedule 'Standard 40 hours/week' - Change the afternoon slots for Monday end time to 18 - Change the afternoon slots for Tuesday end time to 18 Issue: With the current depends, step 4, we will have an issue in the compute. This is due to the fact that `attendance.calendar_id.hours_per_day` depends on its siblings, however the dependencies are not indicating that. https://github.com/odoo/odoo/blob/dd2da708bc4a42bba9670b8742
Original PR description
Steps to reproduce: - Install Time Off app - Go to working schedule 'Standard 40 hours/week' - Change the afternoon slots for Monday end time to 18 - Change the afternoon slots for Tuesday end time to 18 Issue: With the current depends, step 4, we will have an issue in the compute. This is due to the fact that `attendance.calendar_id.hours_per_day` depends on its siblings, however the dependencies are not indicating that. https://github.com/odoo/odoo/blob/dd2da708bc4a42bba9670b874282a2206d8f5ffe/addons/resource/models/resource_calendar_attendance.py#L83 As such we will not trigger `_compute_duration_days` after changing the hours which will cause issues. On a side note no test was made due to a limitation of the test form, which didn't replicate the real behaviour of the web client. opw-3783809 Forward-Port-Of: odoo/odoo#166680
**Steps:** - Go to Sales > Products > Products > Any Product - Click Documents smart button > Create New - Type = URL - Name = Something - URL = Something - Sales Visibility = Inside Quote - Save > Error **Issue:** - For the type 'url' and sales visibility 'Inside quote', the record will never get the correct mimetype of the url document, resulting into the false condition everytime as pdf quote builder specifically checks for mimetype 'pdf'. **Fix:** - If the sale visibility is '
Original PR description
**Steps:** - Go to Sales > Products > Products > Any Product - Click Documents smart button > Create New - Type = URL - Name = Something - URL = Something - Sales Visibility = Inside Quote - Save > Error **Issue:** - For the type 'url' and sales visibility 'Inside quote', the record will never get the correct mimetype of the url document, resulting into the false condition everytime as pdf quote builder specifically checks for mimetype 'pdf'. **Fix:** - If the sale visibility is 'Inside quote', the type should always be File and not URL. If not the case, warning or validation error will be raised. **Affected Version:** 17 ~ master **opw:** 3964066 Forward-Port-Of: odoo/odoo#168310
To compute the lang of a template, we call `_render_lang` but it relies on the `_render_template` method. This means that whenever it's called as is, it will prevent any rendering if the user does not have the group `group_mail_template_editor`, thus making the computation of the lang not possible for the average user using the compose mixin. To avoid this, the call to `_render_template` will be done as super user if the lang of the current record of the composer mixin is the same as the on
Original PR description
To compute the lang of a template, we call `_render_lang` but it relies on the `_render_template` method. This means that whenever it's called as is, it will prevent any rendering if the user does not have the group `group_mail_template_editor`, thus making the computation of the lang not possible for the average user using the compose mixin. To avoid this, the call to `_render_template` will be done as super user if the lang of the current record of the composer mixin is the same as the one of its template, otherwise the flow is unchanged. This therefore use the template as the source of truth and ensure that we don't evaluate something that shouldn't be evaluated. Forward-Port-Of: odoo/odoo#166573
This PR is created in order to sing the odoo CLA and contribute to Odoo. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168303 Forward-Port-Of: odoo/odoo#167808
Original PR description
This PR is created in order to sing the odoo CLA and contribute to Odoo. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168303 Forward-Port-Of: odoo/odoo#167808
Current behavior: When settling and invoicing a sale order in the PoS, the untaxed invoiced amount was not taking the pos order lines into account Steps to reproduce: - Create a sale order - Open a PoS and settle the sale order - Validate it - Go back to the original sale order and check the Untaxed Invoiced Amount. (The field might not be present in the form, you can add it with studio) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit
Original PR description
Current behavior: When settling and invoicing a sale order in the PoS, the untaxed invoiced amount was not taking the pos order lines into account Steps to reproduce: - Create a sale order - Open a PoS and settle the sale order - Validate it - Go back to the original sale order and check the Untaxed Invoiced Amount. (The field might not be present in the form, you can add it with studio) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167919 Forward-Port-Of: odoo/odoo#162634
Current behavior: If a product has some variants you shouldn't be able to change his type to combo Steps to reproduce: - Create a product, and add some variants to it - Try to change his type to "Combo" - You shouldn't be able to do it, as combo product shouldn't have variants opw-3961311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168336 Forward-Port-Of: odoo/odoo#168242
Original PR description
Current behavior: If a product has some variants you shouldn't be able to change his type to combo Steps to reproduce: - Create a product, and add some variants to it - Try to change his type to "Combo" - You shouldn't be able to do it, as combo product shouldn't have variants opw-3961311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168336 Forward-Port-Of: odoo/odoo#168242
Before Odoo 16.0, it is possible to have database column whose value is ``NULL`` but still has translation in the ir_translation table. And translations can be displayed correctly in the UI. How to reproduce before Odoo 16.0: 1. Open the form view of a record with non-required translated field. E.g. product.template.sale_description 2. Create a new record and don't touch the translated field for test 3. Directly click the translation button and fill all translations 4. click save The colu
Original PR description
Before Odoo 16.0, it is possible to have database column whose value is ``NULL`` but still has translation in the ir_translation table. And translations can be displayed correctly in the UI. How to…
Before Odoo 16.0, it is possible to have database column whose value is ``NULL`` but still has translation in the ir_translation table. And translations can be displayed correctly in the UI.
How to reproduce before Odoo 16.0:
1. Open the form view of a record with non-required translated field. E.g. product.template.sale_description
2. Create a new record and don't touch the translated field for test
3. Directly click the translation button and fill all translations
4. click save The column for the record's translated field has ``NULL`` value, and the ir_translation table has new translation records with ``NULL`` in the src column
During upgrade, when the column value is converted to jsonb for the translated field by the ORM, it will still be ``NULL``. And in the upgrade script when update the value with all translations, the result will still be ``NULL``. E.g. ``NULL || '{"fr_FR": "french"}'::jsonb``
``NULL || '{"en_US": "english", "fr_FR": "french"}'::jsonb``
In this commit, for the above corner case, we assume the src was empty string instead of NULL. In the above example, the result would be ``'{"en_US": ""}'::jsonb || '{"fr_FR": "french"}'::jsonb`` ``'{"en_US": ""}'::jsonb || '{"en_US": "english", "fr_FR": "french"}'::jsonb``
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#168038Steps to reproduce: ------------------- - create a regular allocation - save it - refuse it - change the type to accrual and set a plan - save it - take a time off Issue: ------ A traceback occurs. Cause: ------ The commit 7d874be72b0ca95251a47db54d87e34538ec26e3 remove the default value for the `lastcall` field. A value is added to `lastcall` only during create. Therefore during `_process_accrual_plan`, we will have `max(allocation.lastcall, first_level_start_date)`. with `
Original PR description
Steps to reproduce: ------------------- - create a regular allocation - save it - refuse it - change the type to accrual and set a plan - save it - take a time off Issue: ------ A traceback occurs. Cause: ------ The commit 7d874be72b0ca95251a47db54d87e34538ec26e3 remove the default value for the `lastcall` field. A value is added to `lastcall` only during create. Therefore during `_process_accrual_plan`, we will have `max(allocation.lastcall, first_level_start_date)`. with `allocation.lastcall = False`. Solution: --------- Call `_add_lastcalls` during the write to make sure we have a value if the allocation is accrual. opw-3946060 Forward-Port-Of: odoo/odoo#168062 Forward-Port-Of: odoo/odoo#167945
### Steps to reproduce: - In the inventory, create a delivery order for 1 unit of any product - Validate the picking and click on detailed operations - Click on the field of the move named "Pick From", type and create new #### > Traceback error ### Cause of the issue: You should not be able to edit the moves of a done locked picking. However the `quant_id` field is not set to `read_only` in this case: https://github.com/odoo/odoo/blob/c016a5306dd90b90c88e083cc0f0d2ae9c0b649f/addons
Original PR description
### Steps to reproduce: - In the inventory, create a delivery order for 1 unit of any product - Validate the picking and click on detailed operations - Click on the field of the move named "Pick From", type and create new #### > Traceback error ### Cause of the issue: You should not be able to edit the moves of a done locked picking. However the `quant_id` field is not set to `read_only` in this case: https://github.com/odoo/odoo/blob/c016a5306dd90b90c88e083cc0f0d2ae9c0b649f/addons/stock/views/stock_move_views.xml#L263-L267 ### Fix: We add the same `read_only` condition as for the other fields visible on the move. opw-3935214 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166017
- Have `account_peppol` installed - Log in as a user who has read-only accounting rights - Open a customer that is located in Peppol-supported countries and has UBL format, peppol eas and endpoint filled in - An error is displayed saying the user cannot see this partner record `account_edi_proxy_client_ids` is restricted to full accounting rights, so we have to access it with sudo when checking the edi mode for computing the validity of the peppol participant on the network. opw-3950933
Original PR description
- Have `account_peppol` installed - Log in as a user who has read-only accounting rights - Open a customer that is located in Peppol-supported countries and has UBL format, peppol eas and endpoint filled in - An error is displayed saying the user cannot see this partner record `account_edi_proxy_client_ids` is restricted to full accounting rights, so we have to access it with sudo when checking the edi mode for computing the validity of the peppol participant on the network. opw-3950933 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168276