Friday, June 28, 2024
33 changes · saas-17.1
Miscellaneous changes
Problem: When a user creates an automated action to update a float type field to a value, the value does not get converted into a float, and a TypeError occurs. Purpose: Typecast the str value into a float, so no traceback error occurs. Steps to Reproduce on Runbot: 1. Install base_automation, CRM 2. Create an automated action: - Model: Lead/Opportunity - Trigger: On update - Trigger fields: Stage(crm.lead) - Action to do: Update the record - Data to write: {probability(crm.lead), v
Original PR description
Problem: When a user creates an automated action to update a float type field to a value, the value does not get converted into a float, and a TypeError occurs.
Purpose: Typecast the str value into a float, so no traceback error occurs.
Steps to Reproduce on Runbot:
1. Install base_automation, CRM
2. Create an automated action:
- Model: Lead/Opportunity
- Trigger: On update
- Trigger fields: Stage(crm.lead)
- Action to do: Update the record
- Data to write: {probability(crm.lead), value,20}
3. change the stage of a crm opportunity
4. Traceback error occurs TypeError: '>=' not supported between instances of 'str' and 'int'
opw-3962939
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#171203
Forward-Port-Of: odoo/odoo#167918Before this commit it was possible to remove employees with ongoing contracts. This commit adds a check to prevent this case. task: 3930155 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170289 Forward-Port-Of: odoo/odoo#166338
Original PR description
Before this commit it was possible to remove employees with ongoing contracts. This commit adds a check to prevent this case. task: 3930155 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170289 Forward-Port-Of: odoo/odoo#166338
For a (too) long time now, the Odoo Windows installer is build by using virtual machines. Maintaining those VM is very painfull. Also the result was unpredictable due to the erratic behavior of MS Windows. With this commit, the build package system now uses a Docker container like the other builds, greatly simplifying the whole process. Forward-Port-Of: odoo/odoo#171123 Forward-Port-Of: odoo/odoo#169519
Original PR description
For a (too) long time now, the Odoo Windows installer is build by using virtual machines. Maintaining those VM is very painfull. Also the result was unpredictable due to the erratic behavior of MS Windows. With this commit, the build package system now uses a Docker container like the other builds, greatly simplifying the whole process. Forward-Port-Of: odoo/odoo#171123 Forward-Port-Of: odoo/odoo#169519
This reverts commit 2ce96dce7894231b3bfa7203887ad6954820114a. The fix was wrong and introduced other issues. Forward-Port-Of: odoo/odoo#171253 Forward-Port-Of: odoo/odoo#170688
Original PR description
This reverts commit 2ce96dce7894231b3bfa7203887ad6954820114a. The fix was wrong and introduced other issues. Forward-Port-Of: odoo/odoo#171253 Forward-Port-Of: odoo/odoo#170688
…ice is not in the db 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#170616
Original PR description
…ice is not in the db 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#170616
Steps to reproduce: - Install "Subscriptions" - Go to "Configuration" -> "Alerts" - Create a new alert: - Add a name for the alert - Action: Create next activty - Trigger On: Modification - Activtiy: To Do - Add a summary - Add a note - Due Date In: 1 - Due Date type: Put it blank Issues: When triggered the action will result in a traceback due to `activity_date_deadline_range_type`. https://github.com/odoo/odoo/blob/9a62d0c82cdc47718181aed36cad763499b4a51d/addo
Original PR description
Steps to reproduce: - Install "Subscriptions" - Go to "Configuration" -> "Alerts" - Create a new alert: - Add a name for the alert - Action: Create next activty - Trigger On: Modification - Activtiy: To Do - Add a summary - Add a note - Due Date In: 1 - Due Date type: Put it blank Issues: When triggered the action will result in a traceback due to `activity_date_deadline_range_type`. https://github.com/odoo/odoo/blob/9a62d0c82cdc47718181aed36cad763499b4a51d/addons/mail/models/ir_actions_server.py#L123-L124 [Linked PR](https://github.com/odoo/enterprise/pull/63816) opw-3946293 Forward-Port-Of: odoo/odoo#170930 Forward-Port-Of: odoo/odoo#168043
Related to https://github.com/odoo/enterprise/pull/51266 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169012
Original PR description
Related to https://github.com/odoo/enterprise/pull/51266 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169012
Added the basic community localization package of Tanzania Added COA, taxes, tax group, tax report, and fiscal positions task-3783153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156503
Original PR description
Added the basic community localization package of Tanzania Added COA, taxes, tax group, tax report, and fiscal positions task-3783153 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156503
In commit [1], the "Themes Options" have been reorganized to make them easier to find. With this relayout, the buttons style options have also been modified in order to have a third choice "Flat", in addition to "Fill" and "Outline". However, the way it was done causes some issues. Indeed, it wrongly sets the `btn-(primary|secondary)-(outline|flat)` CSS variables to `'True'` instead of the `true` boolean, and to `null` instead of `false`, which is not correct. This happens because `cust
Original PR description
In commit [1], the "Themes Options" have been reorganized to make them easier to find. With this relayout, the buttons style options have also been modified in order to have a third choice "Flat", in…
In commit [1], the "Themes Options" have been reorganized to make them easier to find. With this relayout, the buttons style options have also been modified in order to have a third choice "Flat", in addition to "Fill" and "Outline". However, the way it was done causes some issues. Indeed, it wrongly sets the `btn-(primary|secondary)-(outline|flat)` CSS variables to `'True'` instead of the `true` boolean, and to `null` instead of `false`, which is not correct. This happens because `customizeButtonStyle` now sends boolean values to the `_makeSCSSCusto` function, instead of strings representing these booleans. This results in the backend RPC call setting the variables to the Python boolean `True`, or to `null` in the falsy case because of the `"null"` default value. While it does not seem to break anything in general, there are issues when using themes that redefine these variables (e.g. "Avantgarde", "Enark", "Cobalt",...). Indeed, it is impossible to set the buttons corresponding style to "Fill". This happens because choosing "Fill" is supposed to set both variables to `false`, but because of the boolean values being sent to `_makeSCSSCusto`, the value that is in fact set is `"null"`. This therefore makes them fallback to the value defined in the theme, forcing them to `true` and preventing the "Fill" style from being applied. This commit fixes these issues by properly giving string values to `_makeSCSSCusto`. For already existing databases, all the variables that have been set to `'True'` will have their value replaced by `true`, thanks to the `o-map-omit` SCSS function. Note that the `'False'` case is also added, in order to be consistent. [1]: https://github.com/odoo/odoo/commit/388e4bb2bfcaebdd4ff30277fb49a034592d7086 opw-3957157 Forward-Port-Of: odoo/odoo#170015
**Steps to reproduce the bug:** - Parent company: CompanyA with a purchase tax of “15%” - Create a branch from Company - select only the brunch as current company - Create a storable product P1: - Add vendor: Azure Interior, price: $10 per unit - Create a recording rule: - Trigger: Manual - Route: Buy - Minimum quantity: 10 - save - Click on order **Problem**: A purchase order is created with Azure Interior as the vendor and 10 units
Original PR description
**Steps to reproduce the bug:**
- Parent company: CompanyA with a purchase tax of “15%”
- Create a branch from Company
- select only the brunch as current company
- Create a storable product P1:
- Add vendor: Azure Interior, price: $10 per unit
- Create a recording rule:
- Trigger: Manual
- Route: Buy
- Minimum quantity: 10
- save
- Click on order
**Problem**:
A purchase order is created with Azure Interior as the vendor and 10 units of P1, but the tax is not set. This happens because when the PO line values are prepared, the tax is retrieved from the supplier tax, but it is filtered by the current company, So only the branch taxes. However, it should also check in the parent company.
opw-3937178
Forward-Port-Of: odoo/odoo#169854
Forward-Port-Of: odoo/odoo#169635Steps to reproduce: ------------------- - Install `Sign` and `Website` (for test purpose) - Go to the website and enable the web editor - Click on Theme tab, and set Button -> Primary Style to `Flat` - Go to Sign module and copy the Share link of a document - Open it in an incognito window Issue: ------ Error: `The target selector was not found` Cause: ------ Trying to extend `.btn.flat` selector while it is not declared in the dependencies of the `sign.assets_public_sign`
Original PR description
Steps to reproduce: ------------------- - Install `Sign` and `Website` (for test purpose) - Go to the website and enable the web editor - Click on Theme tab, and set Button -> Primary Style to `Flat` - Go to Sign module and copy the Share link of a document - Open it in an incognito window Issue: ------ Error: `The target selector was not found` Cause: ------ Trying to extend `.btn.flat` selector while it is not declared in the dependencies of the `sign.assets_public_sign` assets. Solution: --------- Set the `extend` to `optional`. opw-3989063 Forward-Port-Of: odoo/odoo#170261
Issue: ====== Image and icons changes and dropped snippets are not autosaved, changes are lost when you switch tab. Steps to reproduce the issue: ============================= For Image and icon: - Go to email marketing - Choose a template with an image - Update the image and click on another tab directly (A/B tests for example) - Go back to mail body tab, the changes are not saved For dropped snippets: - Go to email marketing - Choose any template - Click on another tab (A/
Original PR description
Issue: ====== Image and icons changes and dropped snippets are not autosaved, changes are lost when you switch tab. Steps to reproduce the issue: ============================= For Image and icon: -…
Issue: ====== Image and icons changes and dropped snippets are not autosaved, changes are lost when you switch tab. Steps to reproduce the issue: ============================= For Image and icon: - Go to email marketing - Choose a template with an image - Update the image and click on another tab directly (A/B tests for example) - Go back to mail body tab, the changes are not saved For dropped snippets: - Go to email marketing - Choose any template - Click on another tab (A/B tests for example) - Go back to meil body tab - Add snippet click directly on another tab - Go back to mail body tab , the changes are not saved Origin of the issue: ==================== For Image and Icon: When we open the image media dialog, `_onWysiwygBlur` is called which means we lost the focus from the editable view. Old updates are saved because we call `commitChanges` but the updates after the change of the image are not since we lost the focus of the wysiwyg. Switching to another tab will not trigger `blur` event again so we loose the changes. (same flow for icon change). For dropped snippets: The first switch of tabs will trigger the blur event and will commit changes. When we switch again to the mail body tab, the focus isn't on the editable, we drop the snippet , still no focus on the editable so no `blur` event is called and we loose the changes again. We call `commitChanges` on `onWillUnmount` but we don't pass the paremeters from `mass_mailing_html_field` to its parent class so we loose the `urgent` flag which is responsible to save the data before destroying the component. Passing just the args in `commitChanges` will produce another issue about `Component is destroyed`. To have a minimal change in stable we just refocus on the wysiwyg on the mentioned 2 cases so the updates will be applied when blurring the `wysiwyg` Solution: ========= Put the focus again in the editor's window. Forward-Port-Of: odoo/odoo#167753
Open tax "IVA 0% Entregas Intracomunitarias exentas" Set Tax Scope to False Create an invoice to an EU partner Add an invoice line (select the mentioned tax) Confirm Send for Validation Traceback: odoo.addons.base.models.ir_qweb.QWebException: Error while render the template KeyError: 'DesgloseTipoOperacion' Template: l10n_es_edi_tbai.template_invoice_factura Path: /t/TipoDesglose/DesgloseTipoOperacion/PrestacionServicios Node: <PrestacionServicios t-if="invoice_info.get(\'Prestacio
Original PR description
Open tax "IVA 0% Entregas Intracomunitarias exentas" Set Tax Scope to False Create an invoice to an EU partner Add an invoice line (select the mentioned tax) Confirm Send for Validation Traceback: odoo.addons.base.models.ir_qweb.QWebException: Error while render the template KeyError: 'DesgloseTipoOperacion' Template: l10n_es_edi_tbai.template_invoice_factura Path: /t/TipoDesglose/DesgloseTipoOperacion/PrestacionServicios Node: <PrestacionServicios t-if="invoice_info.get(\'PrestacionServicios\')"/> This occurs because tax info was not fetched properly When invoicing to a foreign partner the tax scope needs to be properly configured opw-3877924 Forward-Port-Of: odoo/odoo#171018
When you access the journal items list view with a `search_default_account_id` and try to modify the account on a line that has an analytic distribution, a validation error occurs. ### Steps to Reproduce 1. Install `account_accountant`. 2. Create an invoice with a line that has an analytic account and an account A. 3. Open the trial balance and access the journal items of account A using the three-dots menu. 4. Select the line from the invoice you created. 5. Attempt to change its acco
Original PR description
When you access the journal items list view with a `search_default_account_id` and try to modify the account on a line that has an analytic distribution, a validation error occurs. ### Steps to…
When you access the journal items list view with a `search_default_account_id` and try to modify the account on a line that has an analytic distribution, a validation error occurs. ### Steps to Reproduce 1. Install `account_accountant`. 2. Create an invoice with a line that has an analytic account and an account A. 3. Open the trial balance and access the journal items of account A using the three-dots menu. 4. Select the line from the invoice you created. 5. Attempt to change its account. You will encounter the following validation error: ``` The operation cannot be completed: another model requires the record being deleted. If possible, archive it instead. Model: Analytic Line (account.analytic.line) Constraint: account_analytic_line_account_id_fkey ``` ### Cause When accessing the journal items from the Trial Balance report, the `search_default_account_id` context key is automatically applied to filter the accounts you selected. However, using `search_default_` with a relational field also creates a `default_` context key for that field. Here, `default_account_id` is added to the context. When changing the account on a move line that has analytic accounts, the system deletes the existing related analytic items and creates new ones. Analytic items have an `account_id` field. Due to the `default_account_id` context key intended for the journal items, the same key is erroneously applied to the newly created analytic item, leading to a validation error because of a foreign key constraint. ### Fix I was thinking about cleaning the context but after discussing with JOL, we decided to only get rid of the problematic default key. opw-3958980 Forward-Port-Of: odoo/odoo#168329
Steps to reproduce: - Install Accounting and l10n_es_edi_tbai - Switch to a Spanish company (e.g. ES Company) - In Accounting settings, select "Hacienda Foral de Bizkaia" as "Tax Agency for TBAI" - Create a vendor bill: * Vendor: [a Spanish vendor] * Invoice Lines: (These amounts are important) -------------------------------- Quantity | Price | Taxes -------------------------------- 2 | 2896.74 | 21% G 4 | 121.52 | 21% G - Confirm
Original PR description
Steps to reproduce:
- Install Accounting and l10n_es_edi_tbai
- Switch to a Spanish company (e.g. ES Company)
- In Accounting settings, select "Hacienda Foral de Bizkaia" as "Tax Agency for TBAI"
- Create a vendor bill:
* Vendor: [a Spanish vendor]
* Invoice Lines: (These amounts are important)
--------------------------------
Quantity | Price | Taxes
--------------------------------
2 | 2896.74 | 21% G
4 | 121.52 | 21% G
- Confirm the bill
- Sent bill to TicketBAI
Issue:
The generated xml will be rejected because "BaseImponible" value has more than 2 decimals.
Cause:
A floating point issue during the computation of "BaseImponible" with these specific values.
opw-3987704
Forward-Port-Of: odoo/odoo#170724Steps to reproduce the bug: - Create a storable product “P1” with BoM - Operation: OP1, OP2 - OP2 blocked by OP1 - Navigate to Mrp > Configuration > Operations - Select OP1 and select another BoM - Return to the BoM of “P1” Problem: The OP2 is still linked to OP1, And a traceback when attempting to duplicate the BoM. Solution: Remove the link between OP2 and OP1 opw-3948817 Forward-Port-Of: odoo/odoo#170285 Forward-Port-Of: odoo/odoo#169417
Original PR description
Steps to reproduce the bug: - Create a storable product “P1” with BoM - Operation: OP1, OP2 - OP2 blocked by OP1 - Navigate to Mrp > Configuration > Operations - Select OP1 and select another BoM - Return to the BoM of “P1” Problem: The OP2 is still linked to OP1, And a traceback when attempting to duplicate the BoM. Solution: Remove the link between OP2 and OP1 opw-3948817 Forward-Port-Of: odoo/odoo#170285 Forward-Port-Of: odoo/odoo#169417
Typing in select2 being in modals does not work from v16 as select2 and bootstrap modals are in conflict when it comes to the focus of elements. HACK ==== Disable bootstrap modal's focustrap in order to let the user type in the select2 on the modal's attachment. (Solution taken from odoo/enterprise#35733) Task-3527175 Forward-Port-Of: odoo/odoo#154039
Original PR description
Typing in select2 being in modals does not work from v16 as select2 and bootstrap modals are in conflict when it comes to the focus of elements. HACK ==== Disable bootstrap modal's focustrap in order to let the user type in the select2 on the modal's attachment. (Solution taken from odoo/enterprise#35733) Task-3527175 Forward-Port-Of: odoo/odoo#154039
According to the documentation, the user receives their registration code through SMS, so phone number label is misleading. Steps to reproduce: 1.Install account_peppol > install an peppol egilible accounting l10n (i.e l10n_be) 2.In settings > technical > system parameter > set account_peppol.edi.mode to test 2.in settings search for peppol 3.notice how the phone number is requested in the registration form 4.click on validate registration 5.notice how the validation button displays
Original PR description
According to the documentation, the user receives their registration code through SMS, so phone number label is misleading.
Steps to reproduce:
1.Install account_peppol > install an peppol egilible accounting l10n (i.e l10n_be)
2.In settings > technical > system parameter > set account_peppol.edi.mode to test
2.in settings search for peppol
3.notice how the phone number is requested in the registration form
4.click on validate registration
5.notice how the validation button displays "verify phone number" while the verification code is sent by sms
Solution:
refactor labels, buttons, helps and errors message to indicate mobile number. The actual field account_peppol_phone_number is not renamed as per stable version changes condition.
opw-3977664
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#170178
Forward-Port-Of: odoo/odoo#169607This PR aims to fix an issue with the Facebook snippet not being dynamically responsive for mobile views. Steps to reproduce 1. Drop inner content facebook (dynamic content) anywhere 2. Go to mobile view 3. Try to scroll horizontally. As you can see, facebook iframe is overflowing Before v16, the mechanism for mobile view was different. The switch between mobile and desktop views caused snippets/pages to be re-render because a new dialog for mobile was opened every time. Starting fro
Original PR description
This PR aims to fix an issue with the Facebook snippet not being dynamically responsive for mobile views. Steps to reproduce 1. Drop inner content facebook (dynamic content) anywhere 2. Go to mobile…
This PR aims to fix an issue with the Facebook snippet not being dynamically responsive for mobile views. Steps to reproduce 1. Drop inner content facebook (dynamic content) anywhere 2. Go to mobile view 3. Try to scroll horizontally. As you can see, facebook iframe is overflowing Before v16, the mechanism for mobile view was different. The switch between mobile and desktop views caused snippets/pages to be re-render because a new dialog for mobile was opened every time. Starting from version 16, we have removed the dialog and introduced a mobile frame. As a result, the rendering now occurs only when the start function is called. Consequently, the params width does not change when we switch to mobile view.  After this PR, the snippet will be re-render every time the window resizes, ensuring that the width adjustment is responsive. This enhancement also allows parameters to be provided at the time of rendering.  Task-2736174 Forward-Port-Of: odoo/odoo#170292 Forward-Port-Of: odoo/odoo#163739
Steps to reproduce: - Install "Subscriptions" - Go to "Configuration" -> "Alerts" - Create a new alert: - Add a name for the alert - Action: Create next activty - Trigger On: Modification - Activtiy: To Do - Add a summary - Add a note - Due Date In: 1 - Due Date type: Put it blank Issues: When triggered the action will result in a traceback due to `activity_date_deadline_range_type`. https://github.com/odoo/odoo/blob/9a62d0c82cdc47718181aed36cad763499b4a51d/addo
Original PR description
Steps to reproduce: - Install "Subscriptions" - Go to "Configuration" -> "Alerts" - Create a new alert: - Add a name for the alert - Action: Create next activty - Trigger On: Modification - Activtiy: To Do - Add a summary - Add a note - Due Date In: 1 - Due Date type: Put it blank Issues: When triggered the action will result in a traceback due to `activity_date_deadline_range_type`. https://github.com/odoo/odoo/blob/9a62d0c82cdc47718181aed36cad763499b4a51d/addons/mail/models/ir_actions_server.py#L123-L124 [Linked PR](https://github.com/odoo/odoo/pull/168043) opw-3946293 Forward-Port-Of: odoo/enterprise#65565 Forward-Port-Of: odoo/enterprise#63816
Impacted versions: - 17.0 Steps to reproduce: 1. Install l10n_mx_edi module. 2. Go to Company ESCUELA KEMPER URGATE. 3. Go to Settings / Automatic Currency Rates. 4. Run manually the currency rates. 5. Go to Accounting / Customers / Invoices. 6. Create a new invoice with the next values: - Customer: "INMOBILIARIA CVA" - Currency: USD - Product: Any but set the UNSPSC Category (any) 7. Confirm the invoice. 8. Click send and print. 9. Check CFDI and click on Clic
Original PR description
Impacted versions: - 17.0 Steps to reproduce: 1. Install l10n_mx_edi module. 2. Go to Company ESCUELA KEMPER URGATE. 3. Go to Settings / Automatic Currency Rates. 4. Run manually the currency rates.…
Impacted versions:
- 17.0
Steps to reproduce:
1. Install l10n_mx_edi module.
2. Go to Company ESCUELA KEMPER URGATE.
3. Go to Settings / Automatic Currency Rates.
4. Run manually the currency rates.
5. Go to Accounting / Customers / Invoices.
6. Create a new invoice with the next values:
- Customer: "INMOBILIARIA CVA"
- Currency: USD - Product: Any but set the UNSPSC Category (any)
7. Confirm the invoice.
8. Click send and print.
9. Check CFDI and click on Click send and print.
10. Open the generated xml
Current behavior:
- TipoCambio have many variations depending of product and currency value:
Example: June 17th: have:
| Product | Quantity | TipoCambio |
|---------------------------|----------|------------|
| [FURN_0006] Monitor Stand | 1 | 18.538484 |
| [FURN_0004] Letter Tray | 1 | 18.538558 |
| [E-COM09] Large Desk | 1 | 18.538498 |
Expected behavior:
- TipoCambio (inside XML) should have the exchange value of the currency (invoiced). Example: June 17th should have 18.5385 (USD)
Inspired in: [l10n_mx_extended](https://github.com/odoo/enterprise/blame/f030d17e07ae7b10fe95e054eb27ba35101cfc96/l10n_mx_edi_extended/models/account_move.py#L178)
Forward-Port-Of: odoo/enterprise#64838Currently, an error occurs while editing the customer form view when the '281.50' contact tag is not available Step to produce: - Install the 'l10n_be_reports' module. - Go to the list view of 'Contact Tags' and delete the '281.50' record. - Open the customer form view and try to edit it. Stack Trace : ``` KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7fb69b00be20>, 'l10n_be_reports.res_partner_tag_281_50') File "odoo/tools/cache.py", line 103, in lookup
Original PR description
Currently, an error occurs while editing the customer form view when the '281.50' contact tag is not available Step to produce: - Install the 'l10n_be_reports' module. - Go to the list view of…
Currently, an error occurs while editing the customer form view when the '281.50' contact tag is not available
Step to produce:
- Install the 'l10n_be_reports' module.
- Go to the list view of 'Contact Tags' and delete the '281.50' record.
- Open the customer form view and try to edit it.
Stack Trace :
```
KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7fb69b00be20>, 'l10n_be_reports.res_partner_tag_281_50')
File "odoo/tools/cache.py", line 103, in lookup
r = d[key]
File "<decorator-gen-5>", line 2, in __getitem__
File "odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "odoo/tools/lru.py", line 34, in __getitem__
a = self.d[obj]
ValueError: External ID not found in the system: l10n_be_reports.res_partner_tag_281_50
File "odoo/http.py", line 2250, in __call__
response = request._serve_nodb()
File "odoo/http.py", line 1759, in _serve_nodb
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2055, in dispatch
result = endpoint(**self.request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/custom/default/saas_worker/controllers/main.py", line 2305, in smtp
proxy.message_process(None, message)
File "addons/mail/models/mail_thread.py", line 1369, in message_process
routes = self.message_route(message, msg_dict, model, thread_id, custom_values)
File "home/odoo/src/custom/trial/saas_trial/models/mail.py", line 369, in message_route
return super(MailThread, self).message_route(message, message_dict, model=model, thread_id=thread_id,
File "addons/mail/models/mail_thread.py", line 1093, in message_route
self._routing_handle_bounce(message, message_dict)
File "addons/mail/models/mail_thread.py", line 754, in _routing_handle_bounce
rec_bounce_w_email._message_receive_bounce(bounced_email, bounced_partner)
File "addons/mail/models/mail_thread_blacklist.py", line 104, in _message_receive_bounce
record.message_bounce = record.message_bounce + 1
File "odoo/fields.py", line 1376, in __set__
records.write({self.name: write_value})
File "home/odoo/src/enterprise/saas-17.2/l10n_be_reports/models/res_partner.py", line 26, in write
tag_281_50 = self.env.ref('l10n_be_reports.res_partner_tag_281_50')
File "odoo/api.py", line 584, in ref
res_model, res_id = self['ir.model.data']._xmlid_to_res_model_res_id(
File "odoo/addons/base/models/ir_model.py", line 2185, in _xmlid_to_res_model_res_id
return self._xmlid_lookup(xmlid)
File "<decorator-gen-43>", line 2, in _xmlid_lookup
File "odoo/tools/cache.py", line 110, in lookup
value = d[key] = self.method(*args, **kwargs)
File "odoo/addons/base/models/ir_model.py", line 2178, in _xmlid_lookup
raise ValueError('External ID not found in the system: %s' % xmlid)
```
An error occurs when the system tries to retrieve an external ID of the contact
tag '281.50'at [1], but it is not available.
link [1]: https://github.com/odoo/enterprise/blob/77c76fecda9b63e2fc17431a4cd3623650f93724/l10n_be_reports/models/res_partner.py#L26
To handle this issue, add 'raise_if_not_found=False' if the contact tag '281.50' is
not available.
sentry-5499490971
Forward-Port-Of: odoo/enterprise#64878Added the balance sheet and profit loss statements to Tanzania localization package. task-3783153 Forward-Port-Of: odoo/enterprise#58148
Original PR description
Added the balance sheet and profit loss statements to Tanzania localization package. task-3783153 Forward-Port-Of: odoo/enterprise#58148
Forward-Port-Of: odoo/enterprise#65639 Forward-Port-Of: odoo/enterprise#65585
Original PR description
Forward-Port-Of: odoo/enterprise#65639 Forward-Port-Of: odoo/enterprise#65585
An error occurs when the system tries to access single values from multiple records at [1]. Traceback On Sentry: ``` ValueError: too many values to unpack (expected 1) File "odoo/models.py", line 5851, in ensure_one _id, = self._ids ValueError: Expected singleton: iot.device(1, 2, 3, 4, 5, 6, 7, 8) File "odoo/http.py", line 2248, in __call__ response = request._serve_db() File "odoo/http.py", line 1823, in _serve_db return self._transactioning(_serve_ir_http, read
Original PR description
An error occurs when the system tries to access single values from multiple records at [1]. Traceback On Sentry: ``` ValueError: too many values to unpack (expected 1) File "odoo/models.py", line…
An error occurs when the system tries to access single values from multiple records at [1].
Traceback On Sentry:
```
ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5851, in ensure_one
_id, = self._ids
ValueError: Expected singleton: iot.device(1, 2, 3, 4, 5, 6, 7, 8)
File "odoo/http.py", line 2248, in __call__
response = request._serve_db()
File "odoo/http.py", line 1823, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1843, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1821, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1828, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2053, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/web/models/models.py", line 76, in web_save
return self.with_context(bin_size=True).web_read(specification)
File "addons/web/models/models.py", line 164, in web_read
for vals in co_records.web_read(field_spec['fields'])
File "addons/web/models/models.py", line 87, in web_read
values_list: list[dict] = self.read(fields_to_read, load=None)
File "odoo/models.py", line 3610, in read
return self._read_format(fnames=fields, load=load)
File "odoo/models.py", line 3821, in _read_format
vals[name] = convert(record[name], record, use_display_name)
File "odoo/models.py", line 6608, in __getitem__
return self._fields[key].__get__(self, self.env.registry[self._name])
File "odoo/fields.py", line 1261, in __get__
self.compute_value(recs)
File "odoo/fields.py", line 1443, in compute_value
records._compute_field_value(self)
File "odoo/models.py", line 4934, in _compute_field_value
fields.determine(field.compute, self)
File "odoo/fields.py", line 100, in determine
return needle(*args)
File "home/odoo/src/enterprise/saas-17.2/quality_iot/models/iot.py", line 16, in _compute_qcp_test_type
self.qcp_test_type = types.get(self.type, '')
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5854, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
To handle this issue, Implement an iteration to iterate records.
sentry-5540606405
Forward-Port-Of: odoo/enterprise#65604The data from the moves in foreign currency are wrongly exported in sales tax report Steps: - Install l10n_th_reports and select th company - Make an invoice in foreign currency - Go to tax report and click on Sales Tax Report button -> In the xlsx file: `Total Amount` and `Vat Amount` are displayed in move currency with the company currency sign while the `Total Excluding VAT Amount` is displayed in company currency With this commit, we display all the values in company cur
Original PR description
The data from the moves in foreign currency are wrongly exported in sales tax report Steps: - Install l10n_th_reports and select th company - Make an invoice in foreign currency - Go to tax report and click on Sales Tax Report button -> In the xlsx file: `Total Amount` and `Vat Amount` are displayed in move currency with the company currency sign while the `Total Excluding VAT Amount` is displayed in company currency With this commit, we display all the values in company currency. Note: The fix in 16.0 requires that we convert the value from `tax['tax_group_amount']` while in 17.0 we should use the new `tax['tax_group_amount_company_currency']` opw-3959408 Forward-Port-Of: odoo/enterprise#65300
Steps: - import a winbooks with data 1: DOCORDER != VAT and journal not in ('asset_receivable', 'liability_payable') 2: without "AMOUNTEUR" Actual result: - 1 KeyError traceback for "display_type" - 2 TypeError: unsupported operand type(s) for *: 'NoneType' and 'int' Expected result - No KeyError, default value is "product" (cf compute) https://github.com/odoo/odoo/blob/9389095d160a03117f815dacebf591d842c81d1d/addons/account/models/account_move_line.py#L433 - AMOUNTEUR is 0 f
Original PR description
Steps:
- import a winbooks with data
1: DOCORDER != VAT and journal not in ('asset_receivable', 'liability_payable')
2: without "AMOUNTEUR"
Actual result:
- 1 KeyError traceback for "display_type"
- 2 TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
Expected result
- No KeyError, default value is "product" (cf compute)
https://github.com/odoo/odoo/blob/9389095d160a03117f815dacebf591d842c81d1d/addons/account/models/account_move_line.py#L433
- AMOUNTEUR is 0 for calculation if not there
Caused by:
1 https://github.com/odoo/enterprise/commit/b9d4ce816fb926b6c0e7a71cd572c8a1c4134155 2 https://github.com/odoo/enterprise/commit/198ecca82cf61b14f42686e8b051568bda034ce9
opw-3996117
Forward-Port-Of: odoo/enterprise#65159Steps to reproduce: - Create a preparation display - Create orders to appear in it - Create a new preparation display Behavior: - Past orders before the creation of the preparation display still appear. Intended behaviour: - New preparation display needs to be empty. Reference: opw-4008808 Forward-Port-Of: odoo/enterprise#65368
Original PR description
Steps to reproduce: - Create a preparation display - Create orders to appear in it - Create a new preparation display Behavior: - Past orders before the creation of the preparation display still appear. Intended behaviour: - New preparation display needs to be empty. Reference: opw-4008808 Forward-Port-Of: odoo/enterprise#65368
Currently, if there is a connection error while retrieving the CDR, we clear the ticket number. This will cause the user to send a duplicate delivery guide if he clicks on 'Retry', which is not what we want. Instead, we should keep the ticket number in all error cases except explicit rejection from SUNAT, so that a retry will try to retrieve the CDR again using the existing ticket number. [link to API docs](https://cpe.sunat.gob.pe/sites/default/files/inline-files/ServicioREST_GRE-SEECont_
Original PR description
Currently, if there is a connection error while retrieving the CDR, we clear the ticket number. This will cause the user to send a duplicate delivery guide if he clicks on 'Retry', which is not what we want. Instead, we should keep the ticket number in all error cases except explicit rejection from SUNAT, so that a retry will try to retrieve the CDR again using the existing ticket number. [link to API docs](https://cpe.sunat.gob.pe/sites/default/files/inline-files/ServicioREST_GRE-SEECont_v1.2_0.xlsx) opw-3757843 Forward-Port-Of: odoo/enterprise#65580 Forward-Port-Of: odoo/enterprise#65352
[FIX] appointments: precision issue in appointment durations Representing duration given in HH:MM as fractions of an hour (i.e. as float) causes precision issues. Added comparia [Reproduce] - Install website_appointment - Open an appointment, modify "Appointment Duration" to 1:50 - Open preview for the appointment, try scheduling a slot - BUG: 404 opw-3914117 Forward-Port-Of: odoo/enterprise#65424 Forward-Port-Of: odoo/enterprise#63335
Original PR description
[FIX] appointments: precision issue in appointment durations Representing duration given in HH:MM as fractions of an hour (i.e. as float) causes precision issues. Added comparia [Reproduce] - Install website_appointment - Open an appointment, modify "Appointment Duration" to 1:50 - Open preview for the appointment, try scheduling a slot - BUG: 404 opw-3914117 Forward-Port-Of: odoo/enterprise#65424 Forward-Port-Of: odoo/enterprise#63335
ForecastedDetails template inheritance wrong declaration of name (sale_subscription_stock) Steps to Reproduce customer want to add an additional column to the ForecastedDetails template. customer able to do it to basic template But not for prepared inheritances in sale_subscription_stock. The problem is that system can’t resolve symbol e.g t-inherit="sale_subscription_stock.ForecastedDetails” because somebody declatest in code ```py <t name="sale_subscription_stock.ForecastedDet
Original PR description
ForecastedDetails template inheritance wrong declaration of name (sale_subscription_stock) Steps to Reproduce customer want to add an additional column to the ForecastedDetails template. customer able to do it to basic template But not for prepared inheritances in sale_subscription_stock. The problem is that system can’t resolve symbol e.g t-inherit="sale_subscription_stock.ForecastedDetails” because somebody declatest in code ```py <t name="sale_subscription_stock.ForecastedDetails" t-inherit="stock.ForecastedDetails" t-inherit-mode="extension"> instead <t t-name="sale_subscription_stock.ForecastedDetails" t-inherit="stock.ForecastedDetails" t-inherit-mode="extension"> ``` here is a issue link :- https://github.com/odoo/odoo/issues/167741 Forward-Port-Of: odoo/enterprise#64885
**Steps to reproduce:** - Install account_reports - Go to "Accounting / Accounting / Journals / Journal Entries" - Create a new entry: * Accounting Date: [a date from last month] * Journal Items: [2 lines using accounts that are not of type "asset_cash" or "liability_credit_card"] - Post the entry - Create a journal: * Type: Miscellaneous * Default Account: [one of the accounts used for the created entry] - Go to "Accounting / Reporting / Statement Reports / Cash Flow Statement
Original PR description
**Steps to reproduce:** - Install account_reports - Go to "Accounting / Accounting / Journals / Journal Entries" - Create a new entry: * Accounting Date: [a date from last month] * Journal Items: [2…
**Steps to reproduce:** - Install account_reports - Go to "Accounting / Accounting / Journals / Journal Entries" - Create a new entry: * Accounting Date: [a date from last month] * Journal Items: [2 lines using accounts that are not of type "asset_cash" or "liability_credit_card"] - Post the entry - Create a journal: * Type: Miscellaneous * Default Account: [one of the accounts used for the created entry] - Go to "Accounting / Reporting / Statement Reports / Cash Flow Statement" **Issue:** The default account from the newly created misc journal appears in the report even if it is not a bank-type (or cash-type) account. **Cause:** Previously, only account moves from a bank or a cash journal were taken into account in the report. The default account of these journals is forced to "asset_cash" type. However, a fix has been made to allow some account moves from miscellaneous journals, which can have any type of account as default account. **Solution:** Only allow default accounts having "asset_cash" or "liability_credit_card" as type. opw-3867312 Forward-Port-Of: odoo/enterprise#63989
Steps to reproduce: 1. Preview a document. 2. Replace it with another document. 3. Preview the document again. 4. Notice the document preview is not updated. After replacing a document and previewing it, it will show the previous images. Technical Reason: When a document is updated, the preview URL stays the same, so the browser shows the old version from its cache. To fix this, we add a unique ID to the URL, which changes with each update. This ensures the browser loads the latest
Original PR description
Steps to reproduce: 1. Preview a document. 2. Replace it with another document. 3. Preview the document again. 4. Notice the document preview is not updated. After replacing a document and previewing it, it will show the previous images. Technical Reason: When a document is updated, the preview URL stays the same, so the browser shows the old version from its cache. To fix this, we add a unique ID to the URL, which changes with each update. This ensures the browser loads the latest version. After this commit: Able to preview correct documents while replacing. Task-3484390 Forward-Port-Of: odoo/enterprise#65183 Forward-Port-Of: odoo/enterprise#51926