Thursday, August 8, 2024
30 changes · saas-17.4
Resolved issues and error corrections
This fix prevents an error when users create a new view from the view list using the New button. It ensures the system handles newly created, unsaved view records correctly, allowing the creation flow to continue without interruption.
Original PR description
Description of the issue/feature this PR addresses: An error is thrown when trying to create a new view by clicking the "New" button on the ir.ui.view list view. This is due to the NewId value not registering as an ID on the record, which subsequently causes the query generated by the _get_inheriting_views method to be invalid as it will attempt to execute a query with a where clause like this: "WHERE id IN ()" For a new view, this method will always return an empty list, so this PR aims to handle this specific case by checking if the records id is an instance of models.NewId, and if so simply setting the value to be an empty list instead of executing the query. Current behavior before PR: Error thrown on creation of new ir.ui.view record from the list view Desired behavior after PR is merged: No Error Task-ID: 4102663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The message status tooltip now shows "Sent" when a message has been delivered but not yet seen by anyone. This prevents confusing placeholder text from appearing in chat and gives users a clearer status indication.
Original PR description
Before this commit, the tooltip shown upon hovering the single tick on a sent message showed "undefined". Steps to reproduce: - Send message on a chat with user demo as admin - Log in as user demo - As the admin user hover the single tick on the message This happens because the switch case is not covering the case of the message being fetched but not seen by anybody. This commit fixes the issue by adding a case for such instance, showing "Sent" as the tooltip. Before:  After: 
Fixed an issue where creating a delivery address or contact from a company record could incorrectly mark the new contact as a company. This prevents confusion in contact lists and keeps company/contact categorization accurate.
Original PR description
Steps to reproduce: - Contact > Any company > Contacts and Adresses tab - Create a new delivery adress - Save The delivery adress will be displayed as a company (building icon). In 17.2 and before, is_company used to be passed in the value list upon record creation, this is not the case anymore. Because the defaults are pulled from the parent company, this turns any contact created from a company's form into a company which does not make sense. This fix restores one of the view's invisible fields, but several others were deleted to be inherited from the parent company. (see this commit 855560ed2e21c445c110a948669e336305f29c4c). opw-4072057 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an error that appeared when users tried to create a new record from the selection field on the link tracking page. The change restores a smoother workflow by ensuring the creation action calls the system correctly.
Original PR description
Purpose ======= Fix the traceback appearing when trying to create a new record using the select2 on the tracking page "/r". Specification ============= The "find_or_create_record" method takes 3 arguments but 4 were given. The first given argument (an empty array) isn't needed to call the method. related commit: 68dc5be8279bc8e9cb4614bb774637ddd78aba83 Task-4100264 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an error that appeared in debug mode when using the Go To button in the Restaurant Point of Sale navigation bar. It ensures the number entry popup handles validation correctly, reducing interruptions for staff and testers using restaurant floor navigation.
Original PR description
Steps to reproduce: 1. Open a restaurant pos config with debug mode 2. Click on the `Go To` button in the navbar 3. Observe the error about the prop with the wrong value --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix updates the India payroll demo data to use the current official Kolkata time zone name. It prevents build or setup failures on newer Ubuntu environments where the older Calcutta time zone name is no longer available.
Original PR description
Asia/Calcutta was removed in ubuntu Noble in favor of Asia/Kolkata This is only visible in the pure noble build and not in the standard build. The assumption is that since requirements are installed as root, the tz is added when installing the pip package. Since we will soon install requirements as odoo on runbot in the docker image, this should will start to break in standard builds too.
Code cleanup and technical improvements
This change updates Belgian payroll test scripts by removing an outdated waiting mechanism. It helps keep automated checks cleaner and more reliable without changing how users work with payroll features.
Miscellaneous changes
After this commit, the option to hide the YouTube logo is removed from the video options because the parameter is no longer supported since August 15, 2023, in the YouTube API. For more information, see: https://developers.google.com/youtube/player_parameters#modestbranding opw-4078086 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175932 Forward-Port-Of: odoo/odoo#175691
Original PR description
After this commit, the option to hide the YouTube logo is removed from the video options because the parameter is no longer supported since August 15, 2023, in the YouTube API. For more information, see: https://developers.google.com/youtube/player_parameters#modestbranding opw-4078086 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175932 Forward-Port-Of: odoo/odoo#175691
Steps to reproduce: - Have a user have no inventory rights and User rights for sales - As that user, create a sale order that sells a storable product, which has at least one picking related to it in progress - Click on the forecast icon then on 'View Forecast' Issue: An access error will be triggered, as the user doesn't have the rights to consult `stock.valuation.layer` records. These records being useless for the forecast report itself, we can restrict instead what fields are read f
Original PR description
Steps to reproduce: - Have a user have no inventory rights and User rights for sales - As that user, create a sale order that sells a storable product, which has at least one picking related to it in progress - Click on the forecast icon then on 'View Forecast' Issue: An access error will be triggered, as the user doesn't have the rights to consult `stock.valuation.layer` records. These records being useless for the forecast report itself, we can restrict instead what fields are read for the moves, to only fetch actually required fields. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175655
Before this commit, it was possible to delete an accrual plan while it was referenced by an allocation. This commit introduces an error message if the user tries to delete an accrual plan in those conditions. task-4023187 Also updates the `hr_holidays.pot` file Forward-Port-Of: odoo/odoo#175893 Forward-Port-Of: odoo/odoo#171403
Original PR description
Before this commit, it was possible to delete an accrual plan while it was referenced by an allocation. This commit introduces an error message if the user tries to delete an accrual plan in those conditions. task-4023187 Also updates the `hr_holidays.pot` file Forward-Port-Of: odoo/odoo#175893 Forward-Port-Of: odoo/odoo#171403
Revert of: https://github.com/odoo/odoo/commit/be911c2c587f7e191d141ae37602ddc590a8737a **Steps to reproduce the bug:** - Go to accounting settings: - Enable “Automatic Accounting” option - Set the “Production Account” to False - Go to the product category “All”: - Costing Method: AVCO - Create a storable product P1: - product category: All - BoM: - Component: C1 - Type: subcontracting - subcontractor: Azure interior - C1: cost = $1
Original PR description
Revert of: https://github.com/odoo/odoo/commit/be911c2c587f7e191d141ae37602ddc590a8737a **Steps to reproduce the bug:** - Go to accounting settings: - Enable “Automatic Accounting” option - Set the…
Revert of: https://github.com/odoo/odoo/commit/be911c2c587f7e191d141ae37602ddc590a8737a
**Steps to reproduce the bug:**
- Go to accounting settings:
- Enable “Automatic Accounting” option
- Set the “Production Account” to False
- Go to the product category “All”:
- Costing Method: AVCO
- Create a storable product P1:
- product category: All
- BoM:
- Component: C1
- Type: subcontracting
- subcontractor: Azure interior
- C1: cost = $1
- Create a purchase order:
- vendor: Azure interior
- product: P1
- Confirm the PO
- try to receive the picking
**Problem**:
An userError is raised:
“Cannot find a stock input account for the product “P1”. You must define one on the product category, or on the location, before processing this operation.”
This commit make the production account optional and fallback with input/output accounts
Opw-3990006
Forward-Port-Of: odoo/odoo#175895
Forward-Port-Of: odoo/odoo#169839Steps to reproduce the bug: - Create a storable product “P1” with BoM - Component: 1 unit of C1 tracked by Serial Number - Update the quantity of P1 with “SN1” - Create a MO to produce one unit of P1: - Confirm it - Select “SN1” for C1 - Validate the MO - Create a repair order to remove C1 from P1 and confirm, start, and complete the repair: - Destination location: WH/Stock - Serial Number: “SN1” - Perform the same steps to add C1 (SN1) into P1 again. -
Original PR description
Steps to reproduce the bug: - Create a storable product “P1” with BoM - Component: 1 unit of C1 tracked by Serial Number - Update the quantity of P1 with “SN1” - Create a MO to produce one unit of…
Steps to reproduce the bug:
- Create a storable product “P1” with BoM
- Component: 1 unit of C1 tracked by Serial Number
- Update the quantity of P1 with “SN1”
- Create a MO to produce one unit of P1:
- Confirm it
- Select “SN1” for C1
- Validate the MO
- Create a repair order to remove C1 from P1 and confirm, start, and complete the repair:
- Destination location: WH/Stock
- Serial Number: “SN1”
- Perform the same steps to add C1 (SN1) into P1 again.
- Remove C1 (SN1) a second time.
* After these steps, C1 with SN1 is available in stock.
- Create a new MO to produce one unit of P1:
- Confirm and select “SN1” for C1
- Try to validate it
Problem:
When checking the availability on the MO, SN1 is correctly
reserved. However, when marking the second MO as done, a User Error is
displayed: "The serial number SN1 used for component C1
has already been consumed."
opw-4029309
Forward-Port-Of: odoo/odoo#175600
Forward-Port-Of: odoo/odoo#173191When refreshing the PoS when logged in with a cashier would disconnect the cashier. Steps to reproduce: ------------------- * Install pos_hr * Log in as any cashier * Refresh the page > Observation: You are not logged in anymore Why the fix: ------------ We save the current cashier_id in the session storage. This way when we refresh the page we can get it back. We use the session storage instead of local storage because it's specific to one tab. opw-4005556 --- I confirm I ha
Original PR description
When refreshing the PoS when logged in with a cashier would disconnect the cashier. Steps to reproduce: ------------------- * Install pos_hr * Log in as any cashier * Refresh the page > Observation: You are not logged in anymore Why the fix: ------------ We save the current cashier_id in the session storage. This way when we refresh the page we can get it back. We use the session storage instead of local storage because it's specific to one tab. opw-4005556 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175748 Forward-Port-Of: odoo/odoo#174322
Since version 17.0, there is an issue with the Text Cover snippet where the scroll button becomes deformed and takes up the entire height of the snippet when the scroll down button is toggled and the snippet is set to 100% height. The problem occurs because the `.s_text_cover` CSS rule `.s_text_cover > *` applies `min-height: inherit;` to all direct children, including the scroll button. To resolve this, the CSS rule has been updated to exclude the scroll button from inheriting the minimum
Original PR description
Since version 17.0, there is an issue with the Text Cover snippet where the scroll button becomes deformed and takes up the entire height of the snippet when the scroll down button is toggled and the snippet is set to 100% height. The problem occurs because the `.s_text_cover` CSS rule `.s_text_cover > *` applies `min-height: inherit;` to all direct children, including the scroll button. To resolve this, the CSS rule has been updated to exclude the scroll button from inheriting the minimum height by adding a `:not(.o_scroll_button)` selector. task-4091232 Forward-Port-Of: odoo/odoo#175660
Sync between Transifex and Github has been broken lately. Some fixes need to be deployed asap. This commit manually syncs pt-BR translations. See also: - odoo/odoo#175298 - odoo/odoo#176035 Enterprise: https://github.com/odoo/enterprise/pull/68141
Original PR description
Sync between Transifex and Github has been broken lately. Some fixes need to be deployed asap. This commit manually syncs pt-BR translations. See also: - odoo/odoo#175298 - odoo/odoo#176035 Enterprise: https://github.com/odoo/enterprise/pull/68141
An error occurs when adding a printer with accents in its name. When trying to print, no error is shown to the user, only an error log in the console. The issue is due to the get_identifier() function in the Printer class, which uses a regex that does not allow accents. Steps to reproduce: 1. Add a printer with an accent in its name in Cups. 2. Synchronize the IoT box to Odoo. 3. Enable some reports printing on the IoT box for the new device. 4. Try to print a report with the new print
Original PR description
An error occurs when adding a printer with accents in its name. When trying to print, no error is shown to the user, only an error log in the console. The issue is due to the get_identifier() function in the Printer class, which uses a regex that does not allow accents. Steps to reproduce: 1. Add a printer with an accent in its name in Cups. 2. Synchronize the IoT box to Odoo. 3. Enable some reports printing on the IoT box for the new device. 4. Try to print a report with the new printer. 5. Then: 1. No error is displayed for the end user. 2. An error is logged in the console. Solution: Use a different regex approach by disallowing certain characters instead of allowing only specific ones. opw-4070003 Forward-Port-Of: odoo/odoo#175974
location_menu_ids field domain was set to match a menu_type that doesn't exist. [reproduce orginal bug] - install website_event - open some event in debug mode - Edit -> select "Website Submenu" -> Save - Edit -> select "Website Submenu" -> deselect "Website Submenu" -> Save - Open Event's page, BUG: location menu duplicated opw-4049804 PS. enums :+1: string collections :-1: Forward-Port-Of: odoo/odoo#175052 Forward-Port-Of: odoo/odoo#174891
Original PR description
location_menu_ids field domain was set to match a menu_type that doesn't exist. [reproduce orginal bug] - install website_event - open some event in debug mode - Edit -> select "Website Submenu" -> Save - Edit -> select "Website Submenu" -> deselect "Website Submenu" -> Save - Open Event's page, BUG: location menu duplicated opw-4049804 PS. enums :+1: string collections :-1: Forward-Port-Of: odoo/odoo#175052 Forward-Port-Of: odoo/odoo#174891
With an IT company setup Create a BILL in foreign currency with tax Go to List view Activate field VAT (l10n_it_edi_amount_vat_signed) Issue: VAT amount is in company currency (symbol in foreign), it should be in foreign currency opw-4034566 Forward-Port-Of: odoo/odoo#172220
Original PR description
With an IT company setup Create a BILL in foreign currency with tax Go to List view Activate field VAT (l10n_it_edi_amount_vat_signed) Issue: VAT amount is in company currency (symbol in foreign), it should be in foreign currency opw-4034566 Forward-Port-Of: odoo/odoo#172220
In some cases, this test can fail if the logs are not exactly in the expected order. See some examples here: https://runbot.odoo.com/runbot/build/66341605 https://runbot.odoo.com/runbot/build/66320898 https://runbot.odoo.com/runbot/build/66320884 After this commit, the order of the logs does not matter for the test. Also, in case the test does fail, the logs are visible in the traceback (instead of being suppressed by the log catcher) --- I confirm I have signed the CLA and read t
Original PR description
In some cases, this test can fail if the logs are not exactly in the expected order. See some examples here: https://runbot.odoo.com/runbot/build/66341605 https://runbot.odoo.com/runbot/build/66320898 https://runbot.odoo.com/runbot/build/66320884 After this commit, the order of the logs does not matter for the test. Also, in case the test does fail, the logs are visible in the traceback (instead of being suppressed by the log catcher) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175344
Chilean customers are not required to provide a Zip Code, as this information is not commonly used in the country. task-4048931 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175736 Forward-Port-Of: odoo/odoo#172954
Original PR description
Chilean customers are not required to provide a Zip Code, as this information is not commonly used in the country. task-4048931 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175736 Forward-Port-Of: odoo/odoo#172954
With an ES company setup Create an invoice having line with taxes: 21% and 15% WHI Send&Print Download the facturae xml Validate the xml on the face website [1] Issue: validation will fail with error """ Línea xyz: Element 'TaxesWithheld': This element is not expected. Expected is one of ( LineItemPeriod, TransactionDate, AdditionalLineItemInformation, SpecialTaxableEvent, ArticleCode, Extensions ). """ This occurs because, according to official specs [2] in element InvoiceLine (3.
Original PR description
With an ES company setup Create an invoice having line with taxes: 21% and 15% WHI Send&Print Download the facturae xml Validate the xml on the face website [1] Issue: validation will fail with error """ Línea xyz: Element 'TaxesWithheld': This element is not expected. Expected is one of ( LineItemPeriod, TransactionDate, AdditionalLineItemInformation, SpecialTaxableEvent, ArticleCode, Extensions ). """ This occurs because, according to official specs [2] in element InvoiceLine (3.1.6.1) TaxesWithheld (3.1.6.1.21) should precede 'TaxesOutput' (3.1.6.1.22) [1] https://face.gob.es/es/facturas/validar-visualizar-facturas [2] https://www.facturae.gob.es/formato/Versiones/Esquema_castellano_v3_2_x_06_06_2017_unificado.pdf opw-3981213 Forward-Port-Of: odoo/odoo#172496
Currently, If 'MerchantTrns' is not available due to failed transactions, The System only sends a notification but does not return it. therefore errors occur from here [1] due to the unavailable of 'MerchantTrns'. link [1]: https://github.com/odoo/odoo/blob/ede5da1f72088ac1f78c9bc5206ccd666dce8c3d/addons/pos_viva_wallet/models/pos_payment_method.py#L118 To resolve this issue, return a send notification if 'MerchantTrns' is not available in 'data_webhook'. Related PR: https://github.com
Original PR description
Currently, If 'MerchantTrns' is not available due to failed transactions, The System only sends a notification but does not return it. therefore errors occur from here [1] due to the unavailable of 'MerchantTrns'. link [1]: https://github.com/odoo/odoo/blob/ede5da1f72088ac1f78c9bc5206ccd666dce8c3d/addons/pos_viva_wallet/models/pos_payment_method.py#L118 To resolve this issue, return a send notification if 'MerchantTrns' is not available in 'data_webhook'. Related PR: https://github.com/odoo/odoo/pull/171764 Sentry - 5466498742 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174801
Using the name field in the domain for a discount product would cause the search to break because name was not being loaded into the Javascript through this function _loader_params_product_product. Changed the types of errors that are thrown instead being shown a notification popup in order to avoid the clunky Javascript error in the case of a typeerror from not having the field loaded. opw-4027900 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Using the name field in the domain for a discount product would cause the search to break because name was not being loaded into the Javascript through this function _loader_params_product_product. Changed the types of errors that are thrown instead being shown a notification popup in order to avoid the clunky Javascript error in the case of a typeerror from not having the field loaded. opw-4027900 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172372
Steps to reproduce the bug: - Set up the sendcloud shipping method - Create two a storable product “P1” and “P2” - Create a sale order: - 1 unit of P1 and P2 - add a shipping method: sendcloud - Confirm the SO > result: a delivery is created - Update the qty to 0 units of P2 - Go to the delivery and try to validate it Problem: A traceback is triggered: ``` File "/home/odoo/src/enterprise/delivery_sendcloud/models/sendcloud_service.py", line 535, in _get_products_values
Original PR description
Steps to reproduce the bug:
- Set up the sendcloud shipping method
- Create two a storable product “P1” and “P2”
- Create a sale order:
- 1 unit of P1 and P2
- add a shipping method: sendcloud
- Confirm the SO > result: a delivery is created
- Update the qty to 0 units of P2
- Go to the delivery and try to validate it
Problem:
A traceback is triggered:
```
File "/home/odoo/src/enterprise/delivery_sendcloud/models/sendcloud_service.py", line 535, in _get_products_values
'avg_value': float(val['tot_value'])/float(val['tot_qty'])
ZeroDivisionError: float division by zero
```
opw-4074859
Forward-Port-Of: odoo/enterprise#67814
Forward-Port-Of: odoo/enterprise#67527PERIODS_PER_YEAR is using "yearly" but hr_contract uses "anually" and since this model uses the hr_contract, we need to keep the same dictionary keys. In customer database the installation of the module is failing because cannot find key "anually". The issue would also happen if you just set a yearly wage opw-4083058 Forward-Port-Of: odoo/enterprise#68036
Original PR description
PERIODS_PER_YEAR is using "yearly" but hr_contract uses "anually" and since this model uses the hr_contract, we need to keep the same dictionary keys. In customer database the installation of the module is failing because cannot find key "anually". The issue would also happen if you just set a yearly wage opw-4083058 Forward-Port-Of: odoo/enterprise#68036
Overrides the generic xlsx export button on the intrastat report for Denmark. When pressing the button, it now generates the official documents that can then be uploaded on the official website "Statistics Denmark" for intrastat reporting. Depending on the filter 'intrastat type', the following use cases are possible: Intratat type filter | Document generated ----------------------------------------------- arrivals | official xlsx for arrivals dispatches |
Original PR description
Overrides the generic xlsx export button on the intrastat report for Denmark. When pressing the button, it now generates the official documents that can then be uploaded on the official website "Statistics Denmark" for intrastat reporting. Depending on the filter 'intrastat type', the following use cases are possible: Intratat type filter | Document generated ----------------------------------------------- arrivals | official xlsx for arrivals dispatches | official xlsx for dispatches none or both | zip file containing both xlsx The xlsx files that are generated follow the official format, which can be found at this address in the file examples 'Intrastat eksport/import Excel Line' https://www.dst.dk/en/Indberet/hjaelp-til-indberetning/om-idep-web/intrastat task-3976189 Forward-Port-Of: odoo/enterprise#67622 Forward-Port-Of: odoo/enterprise#65412
Sync between Transifex and Github has been broken lately. Some fixes need to be deployed asap. This commit manually sync pt-BR translations. See also - odoo/odoo#175298 - odoo/odoo#176035 Community: https://github.com/odoo/odoo/pull/176134
Original PR description
Sync between Transifex and Github has been broken lately. Some fixes need to be deployed asap. This commit manually sync pt-BR translations. See also - odoo/odoo#175298 - odoo/odoo#176035 Community: https://github.com/odoo/odoo/pull/176134
The Issue: Before this commit, the test always assumed the existence of the 'Deco Addict' partner. However, in the 'no demo' test, we run tests without demo data, so this partner does not exist. The Fix: Create the demo Partner runbot-58765 Forward-Port-Of: odoo/enterprise#67811
Original PR description
The Issue: Before this commit, the test always assumed the existence of the 'Deco Addict' partner. However, in the 'no demo' test, we run tests without demo data, so this partner does not exist. The Fix: Create the demo Partner runbot-58765 Forward-Port-Of: odoo/enterprise#67811
Before this commit: When the user chooses a pickup point, the res.partner of the sale order is replaced with data from the pickup point, while the previously set customer's data is set as the partner's parent. And Sendcloud relies on a service_point_id field in its API rather than a raw address. Which causes double printing of the service point address on the label. Moreover, Sendcloud explicitly requires the customer's (and not the pickup point) address in its API. After this commit:
Original PR description
Before this commit: When the user chooses a pickup point, the res.partner of the sale order is replaced with data from the pickup point, while the previously set customer's data is set as the partner's parent. And Sendcloud relies on a service_point_id field in its API rather than a raw address. Which causes double printing of the service point address on the label. Moreover, Sendcloud explicitly requires the customer's (and not the pickup point) address in its API. After this commit: Both the service_point_id and the customer's delivery address are sent to Sendcloud. Both addresses are printed on the label correctly. opw-3977565 Forward-Port-Of: odoo/enterprise#65354
The default _generate_payslip method is using structure type instead of structure. Therefore it generates wrong payslip under BE structure. Forward-Port-Of: odoo/enterprise#67770
Original PR description
The default _generate_payslip method is using structure type instead of structure. Therefore it generates wrong payslip under BE structure. Forward-Port-Of: odoo/enterprise#67770