Friday, April 19, 2024
32 changes · master
Enhancements to existing features
Accounting move PDFs now include deferred start and end dates when applicable. This makes documents clearer for users reviewing deferred revenue or expense timing and reduces the need to look up dates elsewhere.
Original PR description
Before this commit the start date and end date were not present in the pdf of moves. task-3817563
Employee skills in demo data are now generated and improved on a more regular timeline. This makes sample HR data feel more realistic and consistent for demonstrations and testing.
Original PR description
To improve demo data quality and consistency : skills are generated randomly and have a 1/3 chance of being improved every 3 months. task : 3682538
Resolved issues and error corrections
The preparation display is now shown in the main menu when the restaurant point-of-sale module is installed. This makes the kitchen display easier for restaurant staff to find and access during daily operations.
Original PR description
In this commit: =============== The `pos_preparation_display` (preparation display) will be visible in the main menu if the `pos_restaurant` module is installed." task-3725031
Code cleanup and technical improvements
The VoIP module was reorganized and cleaned up to align with newer coding practices used elsewhere in Odoo. This should make future VoIP improvements easier and safer to deliver, with little expected change for end users.
Original PR description
Pursue the refactoring of the VoIP module: - Remove unnecessary newlines in xml attributes - Rename widget css classes as follows: o_widget_WidgetName_templatePart Part of task 2376357
Miscellaneous changes
Forward-Port-Of: odoo/enterprise#61138 Forward-Port-Of: odoo/enterprise#60420
Original PR description
Forward-Port-Of: odoo/enterprise#61138 Forward-Port-Of: odoo/enterprise#60420
The Mail app now tells the web interface which chat types support seen-status tracking. This avoids unnecessary work for chats where the feature does not apply, providing a small performance improvement without changing user workflows.
Original PR description
This info was only available to python/server code. This is now provided to JS/client code, so that it can avoid computing fields related to seen feature on threads that do not support this feature. This very slightly helps performance. https://github.com/odoo/odoo/pull/162445
This fixes an issue where cancelling an appointment too close to the allowed cancellation deadline could fail instead of showing the expected result. The appointment flow now keeps the needed customer information during cancellation, improving reliability for website bookings.
Original PR description
Fix following up : https://github.com/odoo/enterprise/pull/17141
When users open Studio from a form with multiple tabs, the same tab now stays open instead of switching back to the first one. This makes editing smoother by preserving the user's context and avoiding extra navigation.
Original PR description
currently, When enabling studio on a form view, it reset the notebook page and activate the first page instead of the currently activated page. this commit fixes the issue by adding autofocus on the activated node and therefore enabling studio on a form view, it will display the currently activated page instead of the first page. TaskID-2416755
Creating a custom stat button in Studio no longer fails because of invalid generated field names. This restores the expected ability for users to add stat buttons without encountering a naming error.
Original PR description
currently, when try to create state button, it raise error 'Custom field names cannot contain double underscores' this is happening because, we give explicitly '__' while creating field_name in commit- 3ee34f4b869998d8a6f5f29b1792bc70add9da00 and before we did not check for '__' in field_name so error does not raise. we start to check for '__' after Task-2060257. after this commit, replace '__' with '_' so now The stat button is created. Task - 2475554
The VoIP module’s internal files have been reorganized into clearer widget-based sections, and older code structure has been updated to modern module standards. This does not introduce a new user-facing feature, but it should make future improvements and maintenance easier and more reliable.
Original PR description
Start refactoring the VoIP module by reorganizing files: - Move files from /js/ and /xml/ to newly created /widgets/ subdirectories - Split systray_voip_menu.xml from dialing_panel.xml - Replace old odoo modules with ES modules Part of task 2376357
Package is wrongly set on product line in barcode scan Steps: - Have a product P tracked by lot - Set 2 stock quant in 2 locations: 1st in loc1 with lot L and package P 2nd in loc2 with lot1 and no package - Create a picking (Customer delivery) for P with source loc2 - With barcode make the delivery, scan the lot number -> The pack P is set on the product line, even if the package P is in loc1 We pass the location id through the context in order to adapt the domain in `pref
Original PR description
Package is wrongly set on product line in barcode scan Steps: - Have a product P tracked by lot - Set 2 stock quant in 2 locations: 1st in loc1 with lot L and package P 2nd in loc2 with lot1 and no package - Create a picking (Customer delivery) for P with source loc2 - With barcode make the delivery, scan the lot number -> The pack P is set on the product line, even if the package P is in loc1 We pass the location id through the context in order to adapt the domain in `prefilled_owner_package_stock_barcode()`, doing that we ensure we also cover the case where we have 2 stock quant with one with no package and the other with package. opw-3746608 Forward-Port-Of: odoo/enterprise#61110 Forward-Port-Of: odoo/enterprise#59342
Steps to reproduce: - Install Contacts, Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to company form and configure its address (*) - Create a US customer (e.g. Foreign Customer) (*) - In Accounting settings: * activate "Customer Addresses" * use Mexican Bank for automatic currency rates (*) - Configure a product for external trade (e.g. Office Chair) (*) - Create an invoice: (*) * Customer: Foreign Customer * Delivery Addr
Original PR description
Steps to reproduce: - Install Contacts, Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to company form and configure its address (*) - Create a US…
Steps to reproduce: - Install Contacts, Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to company form and configure its address (*) - Create a US customer (e.g. Foreign Customer) (*) - In Accounting settings: * activate "Customer Addresses" * use Mexican Bank for automatic currency rates (*) - Configure a product for external trade (e.g. Office Chair) (*) - Create an invoice: (*) * Customer: Foreign Customer * Delivery Address: [different than customer] (e.g. Deco Addict) * Journal in: USD * Usage: Without fiscal effects * Product: Office Chair * Incoterm: EX WORKS * External Trade: Definitive - Confirm the invoice - Try to generate CFDI via "Send & Print" button (it will probably fail) (*) https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade Issue: Check the generated CFDI in CFDI tab. The data for element `<cce20:Destinatario><cce20:Domicilio /></cce20:Destinatario>` are incorrect. "Calle", "NumeroExterior", "NumeroInterior", "Pais" and "CodigoPostal" are coming from the current company instead of the delivery address. opw-3715960 Forward-Port-Of: odoo/enterprise#61088 Forward-Port-Of: odoo/enterprise#60829
- Ensure that only managers can see the "Add a Leave" button to prevent crashes caused by unauthorized user groups attempting to access it. - Replace the "Share Availability" and dropdown button with "Share Appointment Link" which will work the same as the dropdown was working but will not contain the "Select Dates" and "Any time" options for user groups without permission to access the "appointment.type" record. - "Share Appointment Link" button will only appear if we have some custom lin
Original PR description
- Ensure that only managers can see the "Add a Leave" button to prevent crashes caused by unauthorized user groups attempting to access it. - Replace the "Share Availability" and dropdown button with "Share Appointment Link" which will work the same as the dropdown was working but will not contain the "Select Dates" and "Any time" options for user groups without permission to access the "appointment.type" record. - "Share Appointment Link" button will only appear if we have some custom link means current user is assigned in some appointment. - Now the buttons creating the custom appointment and the any-time appointment are hidden for the user who lacks access so we can clean some sudo from the controller as "group_appointment_user" already have rights to create the appointment types. Task-3697864 Forward-Port-Of: odoo/enterprise#61054 Forward-Port-Of: odoo/enterprise#61009
# Introduction: `JSON.stringify` was used to serialize the properties for the `/article` command instead of the classical `encodeDataBehaviorProps` which also uses `encodeURIComponent` above the `JSON.stringify`, to avoid having some special characters as an attribute value. # The issue: `html_field.js:getEditingValue` is recovering the current value in the DOM using `innerHTML` which converts some characters from tag attributes to HTML entities, i.e.: `"` for `"`. `mail.py
Original PR description
# Introduction: `JSON.stringify` was used to serialize the properties for the `/article` command instead of the classical `encodeDataBehaviorProps` which also uses `encodeURIComponent` above the…
# Introduction: `JSON.stringify` was used to serialize the properties for the `/article` command instead of the classical `encodeDataBehaviorProps` which also uses `encodeURIComponent` above the `JSON.stringify`, to avoid having some special characters as an attribute value. # The issue: `html_field.js:getEditingValue` is recovering the current value in the DOM using `innerHTML` which converts some characters from tag attributes to HTML entities, i.e.: `"` for `"`. `mail.py:html_normalize` is using `lxml.html.tostring` is receiving such a string with HTML entities, and is returning a string without HTML entities. The database value (without HTML entities) is later given to the `html_field` as a prop and is used as a comparison reference (`updateValue`) with the current value in edition (that is still being converted to have HTML entities). Since both values are different, the field is considered as dirty and in need of being saved, which will trigger a write, even though the normalized value is the same. # Fix: Using `encodeDataBehaviorProps` to serialize props as the Behavior anchor attribute (like for any other Behavior) will prevent the use of characters that are being converted to HTML entities. In order to update existing `/article` blocks, the behavior will overwrite its `data-behavior-props` attribute when it is mounted in edit mode. task-3853291 Forward-Port-Of: odoo/enterprise#60985 Forward-Port-Of: odoo/enterprise#60177
# FIX] knowledge: remove useless popover This commit fixes an issue where the popover would open inside the comments panel when replying to a comment with a small enough window, even though in this situation it's not useful at all. Now when the panel is open and we have a small window, the popover will not open when replying to a comment. # [FIX] knowledge: show panel's comments in small windows This commit fixes an issue with the comments panel when using it with a small window.
Original PR description
# FIX] knowledge: remove useless popover This commit fixes an issue where the popover would open inside the comments panel when replying to a comment with a small enough window, even though in this…
# FIX] knowledge: remove useless popover This commit fixes an issue where the popover would open inside the comments panel when replying to a comment with a small enough window, even though in this situation it's not useful at all. Now when the panel is open and we have a small window, the popover will not open when replying to a comment. # [FIX] knowledge: show panel's comments in small windows This commit fixes an issue with the comments panel when using it with a small window. Before, when you opened the panel when in a small enough window, the comments aren't properly displayed meaning that you only have empty boxes inside the panel. This was caused by a styling issue inside of the template that applied a wrong style to the comment boxes inside panel, which is not necessary inside it. Now, we modified the inline style in the template so that it is not applied inside the panel, showing back those comments in all circumstances. task-3786282 Forward-Port-Of: odoo/enterprise#58045
Previously, it was easy to bypass the maximum_amount field on payment.provider by going to a subscription and clicking "Set Payment Method". The subscription would then be charged with the token, regardless of the maximum_amount set on the payment.provider. This filters out ineligible acquirers through _get_compatible_providers() so it's not possible to use them for new payment methods. The existing override wasn't working because sale_order_id was a string and sale.order('1').exists() alway
Original PR description
Previously, it was easy to bypass the maximum_amount field on payment.provider by going to a subscription and clicking "Set Payment Method". The subscription would then be charged with the token,…
Previously, it was easy to bypass the maximum_amount field on payment.provider by going to a subscription and clicking "Set Payment Method". The subscription would then be charged with the token, regardless of the maximum_amount set on the payment.provider.
This filters out ineligible acquirers through
_get_compatible_providers() so it's not possible to use them for new payment methods. The existing override wasn't working because sale_order_id was a string and sale.order('1').exists() always returns False. Casting sale_order_id to a string was added in a small /my/payment_method route override.
Filtering out already existing payment methods is harder because the sale order isn't available in _get_available_tokens(). Instead we raise a UserError when a user assigns an ineligible payment method. This is handled well in the frontend.
This focuses only on customer-facing flows. The maximum_amount field isn't checked either on e.g. account.payment but that's only accessible to internal users. Other customer-facing flows aren't affected because typically _get_available_tokens() is called with eligible payment providers as its first parameter.
Attempted alternative approaches:
- odoo/odoo#161021, odoo/enterprise#60294
- odoo/enterprise#60382
opw-3858340
Forward-Port-Of: odoo/enterprise#60482Currently, on large databases (several million move lines), the XAF export can cause a `MemoryError`. The way to bypass this limitation is threefold: 1. Reduce memory usage during query results post processing. - First by removing the unnecessary `res_list`, and directly writing each batch in former `vals_dict`. - Second by updating former `vals_dict` instead of creating an additional (and useless) `values` dictionary. 2. Instead of rendering the entire file at once, the process is now di
Original PR description
Currently, on large databases (several million move lines), the XAF export can cause a `MemoryError`. The way to bypass this limitation is threefold: 1. Reduce memory usage during query results post processing. - First by removing the unnecessary `res_list`, and directly writing each batch in former `vals_dict`. - Second by updating former `vals_dict` instead of creating an additional (and useless) `values` dictionary. 2. Instead of rendering the entire file at once, the process is now divided in two steps: - Render the header first using Qweb (as before). - Generate the journals, moves and move lines manually. 3. Use a generator and stream the content of the file to the user, which will prevent having the entire dataset/file in memory. task-3816030 opw-3332771 Forward-Port-Of: odoo/enterprise#60867 Forward-Port-Of: odoo/enterprise#58612
**Steps to reproduce:** 1) Open any view of any module. 2) Click on insert a link in the article from Favorites. 3) Now publish the article from the share panel. 4) Copy that link and open it from the portal user. 5) Click on the embedded link(if only read access), double click on it(if write access). **Solution:** Notify the portal user with a toaster notification that only internal members can open that view. **Task**-3082042 Forward-Port-Of: odoo/enterprise#60892 Forward-Port-Of:
Original PR description
**Steps to reproduce:** 1) Open any view of any module. 2) Click on insert a link in the article from Favorites. 3) Now publish the article from the share panel. 4) Copy that link and open it from the portal user. 5) Click on the embedded link(if only read access), double click on it(if write access). **Solution:** Notify the portal user with a toaster notification that only internal members can open that view. **Task**-3082042 Forward-Port-Of: odoo/enterprise#60892 Forward-Port-Of: odoo/enterprise#57347
[FIX] account_reports: skip the 'draft entries' warning for tax closings properly for all tax report Some specific code was added by https://github.com/odoo/enterprise/commit/649960d66eaf0c1cdf0c81b86a6226d77d244b98 in order to ignore the tax closing entries in the warning stating there are draft entries in the period, if on the tax report. However, this was badly forward-ported, and only worked for the generic tax report. With this fix, every tax report will benefit from it, as originally in
Original PR description
[FIX] account_reports: skip the 'draft entries' warning for tax closings properly for all tax report Some specific code was added by https://github.com/odoo/enterprise/commit/649960d66eaf0c1cdf0c81b86a6226d77d244b98 in order to ignore the tax closing entries in the warning stating there are draft entries in the period, if on the tax report. However, this was badly forward-ported, and only worked for the generic tax report. With this fix, every tax report will benefit from it, as originally intended. [FIX] account_reports: re-enable the warning about inactive tags in period for tax reports This warning was dropped by mistake when introducing the new warning mechanism for accounting reports. Forward-Port-Of: odoo/enterprise#60774
*: hr_referral, knowledge, marketing_automation, social, social_demo, social_twitter, website_event_twitter_wall, website_twitter_wall This commit involves adjustments to a few images and SVG files to incorporate the new X (previously called Twitter) logo, and also adjustments to all instances of Twitter references within text (titles, descriptions, messages, demo datas, labels..) to align with the new branding. related to: https://github.com/odoo/odoo/pull/148126 task-3463530 Forwar
Original PR description
*: hr_referral, knowledge, marketing_automation, social, social_demo, social_twitter, website_event_twitter_wall, website_twitter_wall This commit involves adjustments to a few images and SVG files to incorporate the new X (previously called Twitter) logo, and also adjustments to all instances of Twitter references within text (titles, descriptions, messages, demo datas, labels..) to align with the new branding. related to: https://github.com/odoo/odoo/pull/148126 task-3463530 Forward-Port-Of: odoo/enterprise#59322 Forward-Port-Of: odoo/enterprise#53644
Steps to reproduce: - Install helpdesk - Add an alias domain to send ticket - Send a mail to add a ticket, with the mail of the demo user Error: No mail is sent to the user confirming the reception of the ticket. This is due to condition here https://github.com/odoo/enterprise/blob/1502f8b3e519d41f4a58e2acc846f315f6f5eeda/helpdesk/models/helpdesk_ticket.py#L789-L790 This was done to prevent mail being sent if we created the ticket through the frontend. Desired behaviour as checked with
Original PR description
Steps to reproduce: - Install helpdesk - Add an alias domain to send ticket - Send a mail to add a ticket, with the mail of the demo user Error: No mail is sent to the user confirming the reception of the ticket. This is due to condition here https://github.com/odoo/enterprise/blob/1502f8b3e519d41f4a58e2acc846f315f6f5eeda/helpdesk/models/helpdesk_ticket.py#L789-L790 This was done to prevent mail being sent if we created the ticket through the frontend. Desired behaviour as checked with PO is to keep this behaviour in frontend but to send a mail back if we submitted ticket through mail. By looking at the context we can the origin of the ticket (frontend or mail) and send a mail if it came from an email. Context key we used is set here https://github.com/odoo/enterprise/blob/1502f8b3e519d41f4a58e2acc846f315f6f5eeda/helpdesk/models/helpdesk_ticket.py#L742 opw-3786152 Forward-Port-Of: odoo/enterprise#59776
The readonly flag on `res_partner`.`search` was not respected because of `CREATE TEMP TABLE followup_data_cache`. It was used to create a transactional cache. Instead of putting this cache on the database side, put it on the Python side. On the Python side, the memory spike should be the same (we've retrieved all the data at some point), but the memory won't be free until the end of the transaction/cursor. If the memory problem still occurs, we can easily reduce the memory usage by 3 by
Original PR description
The readonly flag on `res_partner`.`search` was not respected because of `CREATE TEMP TABLE followup_data_cache`. It was used to create a transactional cache. Instead of putting this cache on the database side, put it on the Python side. On the Python side, the memory spike should be the same (we've retrieved all the data at some point), but the memory won't be free until the end of the transaction/cursor. If the memory problem still occurs, we can easily reduce the memory usage by 3 by avoiding the use of dict and dictfetchall usages. https://github.com/odoo/odoo/pull/162390 Forward-Port-Of: odoo/enterprise#61076 Forward-Port-Of: odoo/enterprise#60951
Currently, receipts are not accounted for in the model 347 report (issue 1). The same happens for invoices for which a payment has been registered (issue 2). ### Setup * install `l10n_es_reports` * switch to a Spanish company ### Steps to reproduce issue 1 * with a new partner, create and confirm a customer receipt for more than €3005.06 (threshold for appearing in the report) * open the model 347 tax report We would expect the new partner to be listed in the report, but they ar
Original PR description
Currently, receipts are not accounted for in the model 347 report (issue 1). The same happens for invoices for which a payment has been registered (issue 2). ### Setup * install `l10n_es_reports` *…
Currently, receipts are not accounted for in the model 347 report (issue 1). The same happens for invoices for which a payment has been registered (issue 2). ### Setup * install `l10n_es_reports` * switch to a Spanish company ### Steps to reproduce issue 1 * with a new partner, create and confirm a customer receipt for more than €3005.06 (threshold for appearing in the report) * open the model 347 tax report We would expect the new partner to be listed in the report, but they aren't. ### Steps to reproduce issue 2 * with a new partner, create and confirm an invoice for more than €3005.06 * if you open the model 347 report, you will see the new partner listed there * go back to that invoice and register a payment for it. * open the model 347 report again We expect the new partner to still be listed, but they are not. ### Cause issue 1: receipts are missing in the corresponding domains. issue 2: all account moves are used to calculate the threshold. This means that, for example, invoices and payments can cancel each other out in the calculation. opw-3816370 Forward-Port-Of: odoo/enterprise#60432 Forward-Port-Of: odoo/enterprise#59343
This commit fixes the note handling in the UBL tags for the l10n_pe_edi module by ensuring notes contain only alphanumeric characters and spaces, conforming to UBL specifications. This change: - Removes all non-alphanumeric characters except spaces. - Ensures notes are truncated to a maximum of 200 characters. Legal Reference: https://cpe.sunat.gob.pe/sites/default/files/inline-files/AjustesValidacionesCPEv20240205_.xlsx  Forward-Port-Of: odoo/enterprise#60888
New car on the contract, which is now a simple technical field has currently an effect on the employer cost, leading to an employer cost increase after signing with a wishlist car. We fix that by neutralizing the field. Forward-Port-Of: odoo/enterprise#60947
Original PR description
New car on the contract, which is now a simple technical field has currently an effect on the employer cost, leading to an employer cost increase after signing with a wishlist car. We fix that by neutralizing the field. Forward-Port-Of: odoo/enterprise#60947
Version: ----------- saas-16.3 Steps to produce: ------------------------- 1. Open Sales or any other app. 2. Schedule an activity for Request Signature 3. Once the activity is scheduled, click on the Request Signature field 4. In the New signature Request pop-up click on cancel button ->Traceback occurs Issue: -------- A traceback occurs when we click on Request Signature after creating any Request Signature activity and click on cancel button. Cause: --------- The error occ
Original PR description
Version: ----------- saas-16.3 Steps to produce: ------------------------- 1. Open Sales or any other app. 2. Schedule an activity for Request Signature 3. Once the activity is scheduled, click on…
Version: ----------- saas-16.3 Steps to produce: ------------------------- 1. Open Sales or any other app. 2. Schedule an activity for Request Signature 3. Once the activity is scheduled, click on the Request Signature field 4. In the New signature Request pop-up click on cancel button ->Traceback occurs Issue: -------- A traceback occurs when we click on Request Signature after creating any Request Signature activity and click on cancel button. Cause: --------- The error occurs because when the cancel button is clicked, the onUpdate component is triggered to load and update the ID. However, a special parameter is passed incorrectly, leading to an error. Fix: ----- The issue can be resolved by changing the props from onUpdate to reloadParentView, the component correctly reload the parent view upon cancelation, This prevents the traceback error by ensuring that the activity is updated appropriately. task-3768008 Forward-Port-Of: odoo/enterprise#60243 Forward-Port-Of: odoo/enterprise#58729
This PR adds the same description for Worldline as we already do for Ingenico to clearly state that our Worldline intergration is only available in Benelux. task-3866802 Forward-Port-Of: odoo/enterprise#60676 Forward-Port-Of: odoo/enterprise#60649
Original PR description
This PR adds the same description for Worldline as we already do for Ingenico to clearly state that our Worldline intergration is only available in Benelux. task-3866802 Forward-Port-Of: odoo/enterprise#60676 Forward-Port-Of: odoo/enterprise#60649
Currently, when trying to settle due accounts though the PoS session, the due balance doesn't change on the customer form. Steps to reproduce: ------------------- * Install **Point of Sale** and **Accounting** * Go to the **Point of Sale** App * Open a shop session * Navigate to a customer with a due ammount and select **Details** * Select **Settle due accounts** * Select any payment method * Validate * Close session * Under **Orders** select **Customers** * Select the customer for
Original PR description
Currently, when trying to settle due accounts though the PoS session, the due balance doesn't change on the customer form. Steps to reproduce: ------------------- * Install **Point of Sale** and…
Currently, when trying to settle due accounts though the PoS session, the due balance doesn't change on the customer form.
Steps to reproduce:
-------------------
* Install **Point of Sale** and **Accounting**
* Go to the **Point of Sale** App
* Open a shop session
* Navigate to a customer with a due ammount and select **Details**
* Select **Settle due accounts**
* Select any payment method
* Validate
* Close session
* Under **Orders** select **Customers**
* Select the customer for which you just settled the due accounts
> Observation: The due amount hasn't changed.
Why the fix:
------------
The following commit introduced a new relational system to be able to access data within the PoS frontend in the same way as it is done within the ORM in python: https://github.com/odoo/enterprise/commit/bb06fdead097bdec1582e3cdecb99fa63c2ff799
This commit modified the definition of `paylaterPaymentMethod`. Before the commit, it was defined as: https://github.com/odoo/enterprise/blob/4a5bb11bd59dd76f2df957225bf25d38ad5beb0c/pos_settle_due/static/src/overrides/components/payment_screen/payment_screen.js#L23-L26 and would return `{id: 3, name: 'Customer Account', is_cash_count: false, use_payment_terminal: false, split_transactions: true, …}`
Now it is defined as
https://github.com/odoo/enterprise/blob/daf09109a209f87e4f2fbb3275f55095e48d8b4d/pos_settle_due/static/src/overrides/components/payment_screen/payment_screen.js#L23-L26 and returns `undefined`.
We also notice a change in the value of `this.pos.config.payment_method_ids`. Where it previously returned
```js
Proxy(Array) {0: 1, 1: 2, 2: 3}
[[Handler]]: Object
[[Target]]: Array(3)
0: 1
1: 2
2: 3
length: 3
[[Prototype]]: Array(0)
[[IsRevoked]]: false
```
It now returns
```js
Proxy(Array) {0: Base, 1: Base, 2: Base}
[[Handler]]: Object
[[Target]]: Array(3)
0: Base {models: {…}, records: Proxy(Object), model: {…}, _raw: {…}, id: 1, …}
1: Base {models: {…}, records: Proxy(Object), model: {…}, _raw: {…}, id: 2, …}
2: Base {models: {…}, records: Proxy(Object), model: {…}, _raw: {…}, id: 3, …}
length: 3
[[Prototype]]: Array(0)
[[IsRevoked]]: false
```
Thus we need to use `.some()` to retreive the id.
opw-3802560
Forward-Port-Of: odoo/enterprise#60655
Forward-Port-Of: odoo/enterprise#59626Currently, the xsd validation tries to fetch a part of the xsd from internet. There is no need for it, we should just have it (as the others). It causes issues when running the tests if you can't make the request. (reproducible if you have no internet). Linked to runbot error 30521 Forward-Port-Of: odoo/enterprise#60964
Original PR description
Currently, the xsd validation tries to fetch a part of the xsd from internet. There is no need for it, we should just have it (as the others). It causes issues when running the tests if you can't make the request. (reproducible if you have no internet). Linked to runbot error 30521 Forward-Port-Of: odoo/enterprise#60964
The post-init hook of this module runs `ChartTemplate._load_data` and that might reference the xmlid of a general journal from the company. If that xmlid is missing, it will fail with the error: ``` KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7f9ff24b1240>, 'account.1_general') ``` Steps to reproduce on a fresh 17.0 database: - Install a localization module, eg `l10n_be`. - This will create the necessary xmlids. Delete the `X_general` xmlids from the dabase. - I
Original PR description
The post-init hook of this module runs `ChartTemplate._load_data` and that might reference the xmlid of a general journal from the company. If that xmlid is missing, it will fail with the error:
```
KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x7f9ff24b1240>, 'account.1_general')
```
Steps to reproduce on a fresh 17.0 database:
- Install a localization module, eg `l10n_be`.
- This will create the necessary xmlids. Delete the `X_general` xmlids from the dabase.
- Install `account_accountant`. Installation will fail with the aforementioned error.
This also happens during upgrades:
- On a fresh 16.0 database, install module `l10n_uk`.
- The `X_general` xmlids are not created as they don't exist in this version.
- Upgrade to 17.0
- `l10n_uk` doesn't load data from its template, so the xmlids still don't exist.
- Module `account_accountant` is automatically installed, triggering the error.
Forward-Port-Of: odoo/enterprise#59512**Steps to reproduce:** - Install Contacts, Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to company form and configure its address (*) - Create a US customer (e.g. Foreign Customer) (*) - In Accounting settings: * activate "Customer Addresses" * use Mexican Bank for automatic currency rates (*) - Configure a product for external trade (e.g. Office Chair) (*) - Create an invoice: (*) * Customer: Foreign Customer * Delivery
Original PR description
**Steps to reproduce:** - Install Contacts, Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to company form and configure its address (*) - Create…
**Steps to reproduce:** - Install Contacts, Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to company form and configure its address (*) - Create a US customer (e.g. Foreign Customer) (*) - In Accounting settings: * activate "Customer Addresses" * use Mexican Bank for automatic currency rates (*) - Configure a product for external trade (e.g. Office Chair) (*) - Create an invoice: (*) * Customer: Foreign Customer * Delivery Address: [different than customer] (e.g. Deco Addict) * Product: Office Chair * Incoterm: EX WORKS * External Trade: Definitive - Confirm the invoice - Generate CFDI via "Send & Print" button (*) https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade **Issue:** A traceback is raised because an inexisting method (i.e. `_get_customer_cfdi_values`) is called. **Cause:** The missing method has been renamed from "_l10n_mx_edi_get_customer_cfdi_values" to "_get_customer_cfdi_values" during a refactoring, but the original method has been deleted without implementing the new one. **Solution:** "_l10n_mx_edi_get_customer_cfdi_values" method was used to generate the data for the delivery address without altering the existing CFDI values. These data were used to populate the external trade data of the CFDI. "_add_customer_cfdi_values" method is similar to removed "_l10n_mx_edi_get_customer_cfdi_values" method, except that it also updates "receptor" in the CFDI. It is used with a copy of the cfdi values to compute the values for the delivery address. opw-3849153 Forward-Port-Of: odoo/enterprise#60758
1>To activate the complete form view, allowing additional details beyond the fields in the 'calendar_event_view_form_gantt_booking' view to be included without requiring users to open a new tab and search for the event separately, which is highly inefficient. 2>The logged user was being set as an organizer by default even though a particular attendee's slot had been clicked on the gantt view. so the attendee will be set as an organizer by default when clicking on the slot. A test case has
Original PR description
1>To activate the complete form view, allowing additional details beyond the fields in the 'calendar_event_view_form_gantt_booking' view to be included without requiring users to open a new tab and search for the event separately, which is highly inefficient. 2>The logged user was being set as an organizer by default even though a particular attendee's slot had been clicked on the gantt view. so the attendee will be set as an organizer by default when clicking on the slot. A test case has been added to ensure the above functionality for the gantt view does not break. Task-3679307 Forward-Port-Of: odoo/enterprise#60967 Forward-Port-Of: odoo/enterprise#56123