Friday, December 22, 2023
65 changes · master
Enhancements to existing features
This update improves the speed and reliability of several behind-the-scenes Odoo operations, including country search and spreadsheet accounting calculations. It also streamlines internal core code and adds stronger developer typing, helping reduce future maintenance risk without changing day-to-day workflows.
Original PR description
### [IMP] base: avoid quadratic behavior in `res_country`.`_name_search` ### [FIX] spreadsheet_account: replace bad usage of `_search` In `spreadsheet_fetch_debit_credit`, instead of using `_search` and manitulate SQL, use `_read_group()`. ### [REF] core: move `get_unaccent_wrapper` directly on the registry The `get_unaccent_wrapper` has to get the registry from a cursor object. This seems quite expensive for no reason. Instead, put the wrapper method directly in the registry, which is easily accessible from records. ### [IMP] core: add useful typing in the ORM https://github.com/odoo/enterprise/pull/52424
This update prevents changes made in related record lists, such as toggling a checkbox, from being saved immediately. Users can review their changes and save the main record when ready, reducing crashes and avoiding unwanted record creation.
Original PR description
The purpose of this commit is to no longer save the record of an x2many when an autosave field is applied to an update. For example, when you place a toggle field boolean in the list view of an x2many, you don't want to save the x2many's record every time you toggle it.
The current behaviour can cause crashes or the creation of unwanted records.
Scenario:
- Go to a form view with an x2many in list mode that contains a boolean field with the 'toggle_boolean_field' widget.
- Click on the boolean field with 'toggle_boolean_field'
Before this commit:
The record in the x2many is saved
After this commit:
The change is just applied client-side. The save button must be clicked
to save the main record.
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-prPayment receipts can now show the appropriate title, such as "Remittance Advice" for supplier payments, in both Australia and New Zealand. This makes payment documents clearer for local business practices and easier to extend for country-specific needs.
Original PR description
In https://github.com/odoo/odoo/pull/139543 we implemented a small change that would allow users in AU to print a payment receipt with a title that was changed to "Remittance Advice" if they are sending it to a Supplier. This is also needed in NZ and the naive way it was done wouldn't work for multiple countries. Thus, we change the way this title is set by introducing a computed field that will allow to set that title based on conditions more freely. Task id 3637189 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves how Colombian electronic invoicing handles IBUA taxes for non-healthy products by adding a dedicated reference tax field instead of relying on the product volume field. It also corrects missing tax groups and makes tax setup data easier for business teams to review and maintain.
Original PR description
In Odoo 15 we introduced IBUA and ICUI taxes for non-healthy products. We used the Volume field (regardless of the UoM) because we had no choice, in stable we can't add fields. In master we're adding the l10n_co_edi_ref_nominal_tax field. Together with the fixed amount of the tax, we can use it to compute back the sugar rate of the product. It has also been added to the product view. Fixed the missing tax groups. The fix will be backported saas-16.4. Chart template did manually insert the groups, but it has to be done through CSV files that are easier to be updated and checked by non-technical people. Previous task: https://www.odoo.com/web#id=3569752&model=project.task$ Task link: https://www.odoo.com/web#id=3614333&&model=project.task task-3614333
Accounting report exports to Excel now size rows and columns based on their content, making them easier to read without manual adjustment. The export font also changes from Arial to Lato, using a bundled open-license font for consistent layout calculations.
Original PR description
Aims to give a better out-of-the-box layout for xlsx exports by computing the columns width and height based on the cell content. Also replace the default font set in this export by Lato instead of Arial. This way, we are using a font under the SIL Open Font License, which is also bundled in Odoo meaning that we can use the bundled ttf for our computation purposes. Task id #3580242
Planning from the Gantt view is now quicker when work is grouped by sales order line. Users can directly plan the relevant sales order line instead of sorting through a dialog with unrelated options.
Original PR description
[IMP] sale_planning: improve ux In this commit: when planning gantt view is grouped by SOL, plan the corresponding SOL directly instead of opening the wizard. task-3058467
Automatic transfers can now be archived when they should no longer be used, while preserving records tied to posted accounting entries. Users can also delete transfers more safely when only draft entries are involved, reducing errors and keeping accounting history intact.
Original PR description
Following PR https://github.com/odoo/enterprise/pull/52577, this commit adds the posibility to archive
automatic transfer which was not present so far.
Objective
---------
a) Allow transfers to be archived.
b) Update to optain the following behavior:
1. If the transfer is linked to some POSTED account moves
-> archive only
2. If the transfer is linked to some DRAFT account moves
-> archive OR
-> delete the DRAFT moves, then delete the transfer
3. Else, the delete and the archive actions should work right away.
Solution
---------
1. Add an active field to allow for the archiving of a transfer.
2. Add the search view to easily display the archived transfers and
update the form view to hide the buttons in archived transfers forms and
display the "Archived" ribbon when necessary.
3. Override the action_archive, so that archived transfers are
automatically disabled.
4. Addition of tests
task-3621529The shop floor display now separates the general view buttons from the workcenter selection buttons. This makes the interface easier to scan and helps operators choose the right workcenter more quickly.
Original PR description
Before this commit, all the workcenter buttons were grouped together at the top of the new shop floor display. This commit improves this by splitting this single panel into one at the top, for the "All" and "My" buttons, and a new panel below, for all the workcenter buttons. Task: 3432610
Users sharing a single document can now open a preview directly from the share portal. This makes it easier to confirm the shared file without downloading it or navigating elsewhere.
Original PR description
Purpose: - When we select a single document and share it, a preview button will be available to preview the document. Task-3370897
Resolved issues and error corrections
This update corrects follow-up errors from a recent internal change to how user information is accessed. It helps prevent failures in Google Calendar, Microsoft Calendar, homeworking calendar popovers, and project to-do forms, keeping those workflows stable for users.
Original PR description
PR [1] replaces the user service by a simple object. As a consequence, it's no longer necessary to call useService and to store the returned user object on `this` in the setup. PR [1] thus removed those assignations. However, we forgot to adapt some places where that user object was used (typically in patches or extensions relying on the definition of `this.user` in the inherited class). [1] https://github.com/odoo/odoo/pull/145362 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
Code cleanup and technical improvements
The confirmation shown when deleting quiz questions in eLearning courses has been modernized using Odoo's newer interface framework. This keeps the experience consistent with the rest of the platform while preserving the same user-facing behavior.
Original PR description
Convert to owl. Task-3582733
Miscellaneous changes
To reproduce: - Create a new plan with an account - Add an analytic item with this account - Go to the view of this account - Gross Margin Button has a value - Click on it => List is empty The reason being that the view should not include account_id, but auto_account_id 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/submi
Original PR description
To reproduce: - Create a new plan with an account - Add an analytic item with this account - Go to the view of this account - Gross Margin Button has a value - Click on it => List is empty The reason being that the view should not include account_id, but auto_account_id 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#147080
This update fixes a Sign module issue caused by a recent internal change to how user information is handled. It prevents errors when loading or using sign templates, helping keep the document signing workflow stable.
Original PR description
PR [1] replaces the user service by a simple object. As a consequence, it's no longer necessary to call useService and to store the returned user object on `this` in the setup. PR [1] thus removed those assignations. However, we forgot to adapt some places where that user object was used (typically in patches or extensions relying on the definition of `this.user` in the inherited class). [1] https://github.com/odoo/enterprise/pull/52372
Timesheet users will now see the expected default filters when searching for projects, tasks, and helpdesk tickets. This makes time entry faster and more consistent by showing the most relevant options automatically.
Original PR description
Before this commit, the default filters on the project, task and tickets models were not added to the view. It is due to the fact that the context was not well passed to the field By passing the correct context, the default filters are applied. taskid:3550077
The email editor’s building block menu has been repositioned outside the editable email area, matching how the website editor already works. This makes the editor interface easier to maintain and prepares it for future modernization without changing the core email design workflow.
Original PR description
WIP but as the title say, goal of this PR is to get the SnippetsMenu outside the iframe in the mass_mailing editor so that it works like it does on the Website app. This is done to ease the conversion of the SnippetsMenu to OWL. In technical details, prior to this commit, the SnippetsMenu was initialised by the Wysiwyg, which is outside the iframe, but then appended to an element which was inside the iframe. After this commit, it will just be 'aside' the iframe, on the same window as the wysiwyg, which should hopefully make the conversion easier as the behaviour will be the same in both app. task-3630716
This update cleans up older internal code patterns used for searching and text matching across several Odoo Enterprise apps. It helps keep the software aligned with current platform standards and reduces the risk of future maintenance issues, without changing day-to-day user workflows.
Original PR description
### [FIX] *: replace bad usage of `_search` ### [REF] *: replace deprecated usage of `get_unaccent_wrapper` See the community PR. https://github.com/odoo/odoo/pull/145568
Description of the issue/feature this commit addresses: On the first of Janurary 2024, Indonesia will use 16 digits VAT numbers in addition to 15 digits ones. This commit makes it possible to use any of these two possibilites when entering the VAT number on an indonesian company. --- Desired behavior after this commit is merged: This commit makes it possible to enter either a 15 or 16 digit VAT Number on an Indonesian company. --- task-3636748 --- I confirm I have signe
Original PR description
Description of the issue/feature this commit addresses: On the first of Janurary 2024, Indonesia will use 16 digits VAT numbers in addition to 15 digits ones. This commit makes it possible to use any of these two possibilites when entering the VAT number on an indonesian company. --- Desired behavior after this commit is merged: This commit makes it possible to enter either a 15 or 16 digit VAT Number on an Indonesian company. --- task-3636748 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147066 Forward-Port-Of: odoo/odoo#146111
Fix a small issue with the trusted account lock system, where we would raise an error when you change the partner or account number on a record at the same time as you untrust it. Before this fix it would be blocked, and you would need to untrust, save, and then redo the change in a second edition for it to work. At the same time, we will allow the process to untrust an account and change values at the same time. Task id #3647635 --- I confirm I have signed the CLA and read the PR g
Original PR description
Fix a small issue with the trusted account lock system, where we would raise an error when you change the partner or account number on a record at the same time as you untrust it. Before this fix it would be blocked, and you would need to untrust, save, and then redo the change in a second edition for it to work. At the same time, we will allow the process to untrust an account and change values at the same time. Task id #3647635 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147089 Forward-Port-Of: odoo/odoo#147055
Before this PR, the "can reconnect after late close event" test was relying on the `nextTick` helper to check which bus events were received when the device switches from online to offline. This test was non deterministic since a tick might not be enough to receive the related events: the bus service communicates with a shared worker through the MessagePort API, the worker uses a Websocket which dispatch events upon connection/reconnection. This commit replaces the use of the `nextTic
Original PR description
Before this PR, the "can reconnect after late close event" test was relying on the `nextTick` helper to check which bus events were received when the device switches from online to offline. This test was non deterministic since a tick might not be enough to receive the related events: the bus service communicates with a shared worker through the MessagePort API, the worker uses a Websocket which dispatch events upon connection/reconnection. This commit replaces the use of the `nextTick` helper by the dedicated `waitForBusEvent` helper which resolves once the event is received. fixed runbot-45695 Forward-Port-Of: odoo/odoo#147068
Since [1], the test that ensures live chat threads are sorted according to their last interrest date is broken. Indeed, the sort was moved from `im_livechat` to `website_livechat`. This is incorrect. This PR moves back the call to the sort function to the `im_livechat` module. [1]: https://github.com/odoo/odoo/pull/143382 fixes runbot-47784 enterprise: https://github.com/odoo/enterprise/pull/53065 Forward-Port-Of: odoo/odoo#146805
Original PR description
Since [1], the test that ensures live chat threads are sorted according to their last interrest date is broken. Indeed, the sort was moved from `im_livechat` to `website_livechat`. This is incorrect. This PR moves back the call to the sort function to the `im_livechat` module. [1]: https://github.com/odoo/odoo/pull/143382 fixes runbot-47784 enterprise: https://github.com/odoo/enterprise/pull/53065 Forward-Port-Of: odoo/odoo#146805
This deals with a bug when an expense re-invoiced with a 'sale_price' expense_policy and 'delivery' invoice_policy Current bad behaviour: - When re-invoicing another expense matching the first one's price_unit and product the quantities aren't updated properly - Furthermore, reversing the original move doesn't impact the sale order - Resetting the expense sheet to draft neither New correct behaviour: - When re-invoicing another expense matching the first one's they aren't groupe
Original PR description
This deals with a bug when an expense re-invoiced with a 'sale_price' expense_policy and 'delivery' invoice_policy Current bad behaviour: - When re-invoicing another expense matching the first one's price_unit and product the quantities aren't updated properly - Furthermore, reversing the original move doesn't impact the sale order - Resetting the expense sheet to draft neither New correct behaviour: - When re-invoicing another expense matching the first one's they aren't grouped together on the same line, allowing to update and reverse the lines independently - Reversing the original move sets its corresponding sale order line quantity and delivered quantity to 0 - Resetting the expense sheet to draft does the same - Resetting the original move does the same - Adds clarity to the sale_stock error message, so it's understandable from the expense view task-3458826 Forward-Port-Of: odoo/odoo#147123 Forward-Port-Of: odoo/odoo#140460
**steps to reproduce:** - install the module auth_totp_mail_enforce - open settings - activate "Two-factor authentification enforcing policy" to "Employees only" (or "All users") and save - try to (re)connect with a user (demo/demo or admin/admin) **before this commit:** - internal server error **after this commit:** - error is passed to the user, allowing him (or the admin) to debug without contacting odoo support opw-3624816 --- I confirm I have signed the CLA and read the
Original PR description
**steps to reproduce:** - install the module auth_totp_mail_enforce - open settings - activate "Two-factor authentification enforcing policy" to "Employees only" (or "All users") and save - try to (re)connect with a user (demo/demo or admin/admin) **before this commit:** - internal server error **after this commit:** - error is passed to the user, allowing him (or the admin) to debug without contacting odoo support opw-3624816 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147090
This PR improves the logo detection part of the website configurator. Summary of changes: - prevent having multiple logos attachment for a website - add a button to remove website logo in the configurator - select logo colors after uploading logo - premit to detect colors of webp logo task-3609329 Forward-Port-Of: odoo/odoo#145047
Original PR description
This PR improves the logo detection part of the website configurator. Summary of changes: - prevent having multiple logos attachment for a website - add a button to remove website logo in the configurator - select logo colors after uploading logo - premit to detect colors of webp logo task-3609329 Forward-Port-Of: odoo/odoo#145047
If customer did not have address,email and telephone fields, "False" would be send to Adyen resulting in these field containing False values, which in some cases was falsely triggering anti-fraud system. task-3159378 Forward-Port-Of: odoo/odoo#146990 Forward-Port-Of: odoo/odoo#139600
Original PR description
If customer did not have address,email and telephone fields, "False" would be send to Adyen resulting in these field containing False values, which in some cases was falsely triggering anti-fraud system. task-3159378 Forward-Port-Of: odoo/odoo#146990 Forward-Port-Of: odoo/odoo#139600
**Before this PR:** Got a traceback instead of an error message on scanning a barcode. **Reason:** Until 16.4 error message send in the object via Eventbus, which removed in https://github.com/odoo/odoo/commit/72dbb75d4de529a35c45273ded472d038a7bb738 so because of that error message will be sent directly(not in object). **After this PR:** User will get an error message if anything wrong happened. **Task**:3524284 Forward-Port-Of: odoo/odoo#138877
Original PR description
**Before this PR:** Got a traceback instead of an error message on scanning a barcode. **Reason:** Until 16.4 error message send in the object via Eventbus, which removed in https://github.com/odoo/odoo/commit/72dbb75d4de529a35c45273ded472d038a7bb738 so because of that error message will be sent directly(not in object). **After this PR:** User will get an error message if anything wrong happened. **Task**:3524284 Forward-Port-Of: odoo/odoo#138877
Current behavior: The pos_self_ordering_mode field was not interpreted as invisible when no PoS existed. Because this is a required field you were not able to do any changes in the settings if you had no PoS. Steps to reproduce: - Archive all PoS - Go to Settings, and change any settings you want - Save the settings - You get an error "Invalid field 'pos_self_ordering_mode'" opw-3649784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward
Original PR description
Current behavior: The pos_self_ordering_mode field was not interpreted as invisible when no PoS existed. Because this is a required field you were not able to do any changes in the settings if you had no PoS. Steps to reproduce: - Archive all PoS - Go to Settings, and change any settings you want - Save the settings - You get an error "Invalid field 'pos_self_ordering_mode'" opw-3649784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147126
Steps to reproduce the bug: - Create two storable product “P1” & “P2” - Create a purchase order: - Add 10 quantity of “P1” & “P2” - Confirm the PO - Go to the delivery: - Set the quantity of “P1” at 2 and “P2” at 0 - validate the delivery and create a backorder - Go to the backorder: - The quantity set for “P1” is 8 and for “P2” is 0 - Try to validate and create a backorder Problem: Nothing happens because the quantity of "P2" is 0, and the "picked" field
Original PR description
Steps to reproduce the bug:
- Create two storable product “P1” & “P2”
- Create a purchase order:
- Add 10 quantity of “P1” & “P2”
- Confirm the PO
- Go to the delivery:
- Set the quantity of “P1” at 2 and “P2” at 0
- validate the delivery and create a backorder
- Go to the backorder:
- The quantity set for “P1” is 8 and for “P2” is 0
- Try to validate and create a backorder
Problem:
Nothing happens because the quantity of "P2" is 0, and the "picked" field is set to True. However, the quantity should be 10, and the "picked" field should be set to False when the backorder is created: https://github.com/odoo/odoo/blob/17.0/addons/stock/models/stock_move.py#L1822-L1828
opw-3629848
Forward-Port-Of: odoo/odoo#147128Current behaviour: --- When setting a form to fullscreen, it doesn't save. Steps to reproduce: --- 1. Go to eLearning 2. Select a course 3. Add Content, type Web Page 4. Select it, Go to website 5. Drag and Drop a form in the middle 6. Click on Fullscreen 7. Try to send the form 8. An error has occurred, the form has not been sent. Cause of the issue: --- Caused by: https://github.com/odoo/odoo/commit/17c6f6f30bf13bd3c303b28d9a314bd76dd8f4dc When using a form normally, websi
Original PR description
Current behaviour: --- When setting a form to fullscreen, it doesn't save. Steps to reproduce: --- 1. Go to eLearning 2. Select a course 3. Add Content, type Web Page 4. Select it, Go to website 5.…
Current behaviour:
---
When setting a form to fullscreen, it doesn't save.
Steps to reproduce:
---
1. Go to eLearning
2. Select a course
3. Add Content, type Web Page
4. Select it, Go to website
5. Drag and Drop a form in the middle
6. Click on Fullscreen
7. Try to send the form
8. An error has occurred, the form has not been sent.
Cause of the issue:
---
Caused by: https://github.com/odoo/odoo/commit/17c6f6f30bf13bd3c303b28d9a314bd76dd8f4dc
When using a form normally, website_form_signature is added by
add_form_signature in the page, because rendered through XML.
When using a fullscreen form, website_form_signature is not added,
because the page is rendered through JS.
Fix:
---
Calling ir.qweb.field.html in the JS route which calls
value_to_html (in website) which calls add_form_signature
Concerning {'template_options': {}}, without it, when we call
_post_processing_att with the argument options.get('template_options'),
because options are empty, it returns None, and in _post_processing_att
when doing options.get('inherit_branding') we get a traceback.
Since in 16.0, options are not used either in value_to_html
nor _post_processing_att, it is no use to fix their modules.
{'template_options': {}} will be removed in 16.0 and up
opw-3611126
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#144857Task latam: 1137 Task Adhoc: 33333 Prevent delete document number if invoice date is assigned (manual documents). Description of the issue/feature this PR addresses: On a draft vendor bill (manual documents) if the document number setted, and then if the user set a date, the document number is automatically cleaned and it`s must not be cleaned. Current behavior before PR: On a draft vendor bill if the document number setted, and then if the user set a date, the document number is autom
Original PR description
Task latam: 1137 Task Adhoc: 33333 Prevent delete document number if invoice date is assigned (manual documents). Description of the issue/feature this PR addresses: On a draft vendor bill (manual documents) if the document number setted, and then if the user set a date, the document number is automatically cleaned and it`s must not be cleaned. Current behavior before PR: On a draft vendor bill if the document number setted, and then if the user set a date, the document number is automatically cleaned. Desired behavior after PR is merged: On a draft vendor bill if the document number setted, and then if the user set a date, the document number is not automatically cleaned. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142522
[FIX] website_event_booth: make images of booth categories accessible by public user Currently, categories' images can only be seen while logged in. This fix will allow public user to have access to images. Description of the issue/feature this PR addresses: add access rights for booth category for public user Current behavior before PR: images of booths' are not loading if not logged in Desired behavior after PR is merged: images of booths' are loading regardless of the user opw-3625
Original PR description
[FIX] website_event_booth: make images of booth categories accessible by public user Currently, categories' images can only be seen while logged in. This fix will allow public user to have access to images. Description of the issue/feature this PR addresses: add access rights for booth category for public user Current behavior before PR: images of booths' are not loading if not logged in Desired behavior after PR is merged: images of booths' are loading regardless of the user opw-3625773 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#146916
In list views with search panel, in case there are no records found, the nocontenthelp is being cut off, because the o_list_renderer doesn't take the full height. This commit sets the height on the div, so there is no cut off happening. Part of: task-3619987 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#144809
Original PR description
In list views with search panel, in case there are no records found, the nocontenthelp is being cut off, because the o_list_renderer doesn't take the full height. This commit sets the height on the div, so there is no cut off happening. Part of: task-3619987 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#144809
Before PR: === Demo data of the Indian localization was divided in different modules. After PR: === Reorganization of demo data in the Indian localization modules. Specifically: - Removed demo data entries. - Added new demo data entries for improved examples. Enterprise PR: https://github.com/odoo/enterprise/pull/52104 task id: 3614544 Forward-Port-Of: odoo/odoo#144951
Original PR description
Before PR: === Demo data of the Indian localization was divided in different modules. After PR: === Reorganization of demo data in the Indian localization modules. Specifically: - Removed demo data entries. - Added new demo data entries for improved examples. Enterprise PR: https://github.com/odoo/enterprise/pull/52104 task id: 3614544 Forward-Port-Of: odoo/odoo#144951
Phone and mobile numbers are not well displayed on contact widget.. This is because of the display flex that split the column in two if there is too much information. We remove the display flex + flex column as all the children of the element are div, which is a block element, therefore they are already arranged one on top of the other. Steps: - Having a contact X with full address informations (address, name, phone) - With purchase module, you see the bug by printing a RFQ for the contact
Original PR description
Phone and mobile numbers are not well displayed on contact widget.. This is because of the display flex that split the column in two if there is too much information. We remove the display flex + flex column as all the children of the element are div, which is a block element, therefore they are already arranged one on top of the other. Steps: - Having a contact X with full address informations (address, name, phone) - With purchase module, you see the bug by printing a RFQ for the contact X opw-3626486 Forward-Port-Of: odoo/odoo#146455
Steps to reproduce: - In Settings/technical/actions/reports: find the invoice report - in advanced: activate "Reload from attachment" - create an invoice with a swiss customer - confirm and print - print the invoice again Issue: There are two pages with the same qr-code opw-3626815 Forward-Port-Of: odoo/odoo#147102
Original PR description
Steps to reproduce: - In Settings/technical/actions/reports: find the invoice report - in advanced: activate "Reload from attachment" - create an invoice with a swiss customer - confirm and print - print the invoice again Issue: There are two pages with the same qr-code opw-3626815 Forward-Port-Of: odoo/odoo#147102
Before this commit: Filter items in the sidebar/panel are sorted DESC. Items without value are put at the end of the sorted list (eg : Open Shifts) After this commit: Filter items are sorted ASC. Label that begins with numeric are also sorted correctly. Items without value are stull put at the end of the sorted list. task~3524031 Forward-Port-Of: odoo/odoo#146127
Original PR description
Before this commit: Filter items in the sidebar/panel are sorted DESC. Items without value are put at the end of the sorted list (eg : Open Shifts) After this commit: Filter items are sorted ASC. Label that begins with numeric are also sorted correctly. Items without value are stull put at the end of the sorted list. task~3524031 Forward-Port-Of: odoo/odoo#146127
Current behavior: When trying to print the changes of an order, nothing was printed. This was happening because we were first saving the changes before sending them to the printer. Because of this when we tried to retrieve the changes to print them, they were already saved and we were not retrieving anything. Steps to reproduce: - Setup a printer to print order changes - Create a new order in PoS restaurant - Add a product to the order - Click on the "Order" button - Nothing is printed
Original PR description
Current behavior: When trying to print the changes of an order, nothing was printed. This was happening because we were first saving the changes before sending them to the printer. Because of this when we tried to retrieve the changes to print them, they were already saved and we were not retrieving anything. Steps to reproduce: - Setup a printer to print order changes - Create a new order in PoS restaurant - Add a product to the order - Click on the "Order" button - Nothing is printed opw-3625397 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#146461
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#146625
Original PR description
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#146625
Before this commit, the layout of the import module form view (in the dialog) was broken. This was due to unnecessary and wrong use of col/colspan attributes. 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#147271
Original PR description
Before this commit, the layout of the import module form view (in the dialog) was broken. This was due to unnecessary and wrong use of col/colspan attributes. 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#147271
Before this commit ================ - Portal users were not able to download the return label via the portal because the Access token is not passed. After this commit ================ - Portal users are able to download return labels via the portal. task-3245766 Forward-Port-Of: odoo/odoo#146935 Forward-Port-Of: odoo/odoo#119296
Original PR description
Before this commit ================ - Portal users were not able to download the return label via the portal because the Access token is not passed. After this commit ================ - Portal users are able to download return labels via the portal. task-3245766 Forward-Port-Of: odoo/odoo#146935 Forward-Port-Of: odoo/odoo#119296
Steps to reproduce: - Install Accounting - Activate a payment provider (e.g. Stripe) - Configure payment provider with "Capture Amount Manually" option activated - Invoice Online Payment in Accounting settings - Create an invoice - Go to invoice portal preview - Pay it via "Pay Now" button - Go back to invoice portal preview => The "Pay Now" button is still there (not expected) - Uninstall "account_payment_invoice_online_payment_patch" module - Go back to invoice portal preview
Original PR description
Steps to reproduce: - Install Accounting - Activate a payment provider (e.g. Stripe) - Configure payment provider with "Capture Amount Manually" option activated - Invoice Online Payment in…
Steps to reproduce:
- Install Accounting
- Activate a payment provider (e.g. Stripe)
- Configure payment provider with "Capture Amount Manually" option activated
- Invoice Online Payment in Accounting settings
- Create an invoice
- Go to invoice portal preview
- Pay it via "Pay Now" button
- Go back to invoice portal preview
=> The "Pay Now" button is still there (not expected)
- Uninstall "account_payment_invoice_online_payment_patch" module
- Go back to invoice portal preview
=> The "Pay Now" button does not appear anymore (expected)
Cause:
"account_payment_invoice_online_payment_patch" module has been created to allow to disable invoice online payment without uninstalling "account_payment" module.
However, it overrides 2 different `t-if` conditions:
1)
```
(invoice.amount_residual or not tx_ids) and
invoice.state == 'posted' and
invoice.payment_state in ('not_paid', 'partial') and
invoice.amount_total
```
2)
```
invoice.state == 'posted' and
invoice.payment_state in ('not_paid', 'partial') and
invoice.amount_total and
invoice.move_type == 'out_invoice' and
(pending_manual_txs or not tx_ids or invoice.amount_paid < invoice.amount_total)
```
with the same condition `invoice._has_to_be_paid()` that corresponds to:
```
(self.amount_residual or not transactions) and
self.state == 'posted' and
self.payment_state in ('not_paid', 'partial') and
self.amount_total and
self.move_type == 'out_invoice'
```
One part of the second `t-if` condition is removed by the override:
`(pending_manual_txs or not tx_ids or invoice.amount_paid < invoice.amount_total)`
The second condition is used and is overridden 2 times.
Solution:
Add `(pending_manual_txs or not tx_ids or invoice.amount_paid < invoice.amount_total)`
in the `_has_to_be_paid` method.
opw-3378400
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#147213
Forward-Port-Of: odoo/odoo#146305Following the event badge redesign in odoo/odoo@1da6cbc4c, we should display on the attendee's badge (report) the attendee's company name (`company_name`) instead of the event's company (`company_id`) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147272
Original PR description
Following the event badge redesign in odoo/odoo@1da6cbc4c, we should display on the attendee's badge (report) the attendee's company name (`company_name`) instead of the event's company (`company_id`) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147272
Steps to reproduce: - Install Contacts and Sales. - Activate debug mode and go to contacts. - Create new contact and get the mobile view inside the contact form. - Go under Sales & Purchases and look for sales team. - Try to change it in mobile. The issue is that we were missing the template view for this specific field when on mobile, specifically we didn't had the proper kanban view set for the field. opw-3323976 Forward-Port-Of: odoo/odoo#147262 Forward-Port-Of: odoo/odoo#139586
Original PR description
Steps to reproduce: - Install Contacts and Sales. - Activate debug mode and go to contacts. - Create new contact and get the mobile view inside the contact form. - Go under Sales & Purchases and look for sales team. - Try to change it in mobile. The issue is that we were missing the template view for this specific field when on mobile, specifically we didn't had the proper kanban view set for the field. opw-3323976 Forward-Port-Of: odoo/odoo#147262 Forward-Port-Of: odoo/odoo#139586
The VAT rate is increasing from 20% to 22% from January 1st, 2024. We need to keep both 20% and 22% taxes until the end of 2025 for the phasing-out period. 20% taxes will be inactive for new customers. See also odoo/enterprise#52921 task-3615036 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147331 Forward-Port-Of: odoo/odoo#145324
Original PR description
The VAT rate is increasing from 20% to 22% from January 1st, 2024. We need to keep both 20% and 22% taxes until the end of 2025 for the phasing-out period. 20% taxes will be inactive for new customers. See also odoo/enterprise#52921 task-3615036 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147331 Forward-Port-Of: odoo/odoo#145324
Each line of the french VAT report should be rounded to the unit. In addition, the tax amounts should be recomputed using the rounded base amounts! The rounding of each line is enabled using the 'integer_rounding' option introduced in https://github.com/odoo/enterprise/commit/1916433a951fb98baf1a54e6b6e0f8a3f59920a4. The recomputation of the tax lines base on the rounded base lines is done using aggregation expression (so the `tax` tags are no longer used in the report). The rounding diff
Original PR description
Each line of the french VAT report should be rounded to the unit. In addition, the tax amounts should be recomputed using the rounded base amounts! The rounding of each line is enabled using the 'integer_rounding' option introduced in https://github.com/odoo/enterprise/commit/1916433a951fb98baf1a54e6b6e0f8a3f59920a4. The recomputation of the tax lines base on the rounded base lines is done using aggregation expression (so the `tax` tags are no longer used in the report). The rounding difference is accounted during the closing entry. task-3607253 Forward-Port-Of: odoo/odoo#145557
Each line of the french VAT report should be rounded to the unit. In addition, the tax amounts should be recomputed using the rounded base amounts! The rounding of each line is enabled using the 'integer_rounding' option introduced in https://github.com/odoo/enterprise/commit/1916433a951fb98baf1a54e6b6e0f8a3f59920a4. The recomputation of the tax lines base on the rounded base lines is done using aggregation expression (so the `tax` tags are no longer used in the report). The rounding diff
Original PR description
Each line of the french VAT report should be rounded to the unit. In addition, the tax amounts should be recomputed using the rounded base amounts! The rounding of each line is enabled using the 'integer_rounding' option introduced in https://github.com/odoo/enterprise/commit/1916433a951fb98baf1a54e6b6e0f8a3f59920a4. The recomputation of the tax lines base on the rounded base lines is done using aggregation expression (so the `tax` tags are no longer used in the report). The rounding difference is accounted during the closing entry. task-3607253 Forward-Port-Of: odoo/enterprise#52409
The VAT rate is increasing from 20% to 22% from January 1st, 2024. The tax report needs to be updated accordingly, with the 20% line becoming line 1.1 and 22% line becoming line 1. We also need to add the version in the XML output. Source: https://ncfailid.emta.ee/s/Gsi2rni6jNHg8nB See also odoo/odoo#145324 task-3615036 Forward-Port-Of: odoo/enterprise#53321 Forward-Port-Of: odoo/enterprise#52921
Original PR description
The VAT rate is increasing from 20% to 22% from January 1st, 2024. The tax report needs to be updated accordingly, with the 20% line becoming line 1.1 and 22% line becoming line 1. We also need to add the version in the XML output. Source: https://ncfailid.emta.ee/s/Gsi2rni6jNHg8nB See also odoo/odoo#145324 task-3615036 Forward-Port-Of: odoo/enterprise#53321 Forward-Port-Of: odoo/enterprise#52921
Steps to reproduce: - Install appointment app - Setup online meetings with minimum scheduling of 48 hours for example Issues: Minimum scheduling hours set are not respected. Solution: Set the local start to be the first possible schedulable date rounded to the next hour. opw-3359002 Forward-Port-Of: odoo/enterprise#52985 Forward-Port-Of: odoo/enterprise#50795
Original PR description
Steps to reproduce: - Install appointment app - Setup online meetings with minimum scheduling of 48 hours for example Issues: Minimum scheduling hours set are not respected. Solution: Set the local start to be the first possible schedulable date rounded to the next hour. opw-3359002 Forward-Port-Of: odoo/enterprise#52985 Forward-Port-Of: odoo/enterprise#50795
Since [1], the `toggleCogMenuSpreadsheet` helper patches the `setTimeout` function. This sometimes leads to infinite recursion when the `multi_tab` service has enough time to initialize: this service make use of `setTimeout` to call the `heartbeat` method repeatedly. Moreover, patching the `setTimeout` method is not a good idea since it makes this method synchronous which totally changes the flow that is tested. This PR fixes this issue by using the `contains` helper instead: this meth
Original PR description
Since [1], the `toggleCogMenuSpreadsheet` helper patches the `setTimeout` function. This sometimes leads to infinite recursion when the `multi_tab` service has enough time to initialize: this service make use of `setTimeout` to call the `heartbeat` method repeatedly. Moreover, patching the `setTimeout` method is not a good idea since it makes this method synchronous which totally changes the flow that is tested. This PR fixes this issue by using the `contains` helper instead: this method will wait for the element to be inserted in the DOM and perform the assertion afterwards. fixes runbot-24889 [1]: https://github.com/odoo/enterprise/pull/41851 Forward-Port-Of: odoo/enterprise#53285 Forward-Port-Of: odoo/enterprise#53212
Remove flex display in order to be consistent with https://github.com/odoo/odoo/pull/146455 opw-3626486 Forward-Port-Of: odoo/enterprise#53201
Original PR description
Remove flex display in order to be consistent with https://github.com/odoo/odoo/pull/146455 opw-3626486 Forward-Port-Of: odoo/enterprise#53201
Before PR: === Demo data of the Indian localization was divided in different modules. After PR: === Reorganization of demo data in the Indian localization module. Specifically: - Removed demo data entries. Community PR: https://github.com/odoo/odoo/pull/144951 task id: 3614544 Forward-Port-Of: odoo/enterprise#52104
Original PR description
Before PR: === Demo data of the Indian localization was divided in different modules. After PR: === Reorganization of demo data in the Indian localization module. Specifically: - Removed demo data entries. Community PR: https://github.com/odoo/odoo/pull/144951 task id: 3614544 Forward-Port-Of: odoo/enterprise#52104
*: web_enterprise When opening Studio, the color scheme is reset to light mode. Before this commit, if the UI was in dark mode before opening Studio, when leaving it the dark mode isn't applied back. This commit fixes it by keeping track separately of the configured color scheme and the effective one in the "color_scheme" service. Steps to reproduce: * Switch to dark mode * Open Studio * Close it => color scheme is still "light" opw-3419363 Forward-Port-Of: odoo/enterprise
Original PR description
*: web_enterprise When opening Studio, the color scheme is reset to light mode. Before this commit, if the UI was in dark mode before opening Studio, when leaving it the dark mode isn't applied back. This commit fixes it by keeping track separately of the configured color scheme and the effective one in the "color_scheme" service. Steps to reproduce: * Switch to dark mode * Open Studio * Close it => color scheme is still "light" opw-3419363 Forward-Port-Of: odoo/enterprise#53155 Forward-Port-Of: odoo/enterprise#44026
Steps to reproduce: ------------------- - in Project settings activate "Timesheets" - in Timesheets select "Approved timesheets only" for invoicing policy - create a project with a task - add two timesheets to this task - validate one of these timesheets - share the project with a portal user - go to the portal view of the project with this user Issue: ------ The hours spent on this task is the sum of all timesheet. But if we click on the task, we see only the validated timesheet.
Original PR description
Steps to reproduce: ------------------- - in Project settings activate "Timesheets" - in Timesheets select "Approved timesheets only" for invoicing policy - create a project with a task - add two timesheets to this task - validate one of these timesheets - share the project with a portal user - go to the portal view of the project with this user Issue: ------ The hours spent on this task is the sum of all timesheet. But if we click on the task, we see only the validated timesheet. Solution: --------- Add an unstored computed field to the task and override the template using `effective_hours`. The `portal_effective_hours` field takes into account the "invoicing policy" parameter and whether the user is portal or not. Note: ----- Partial backport of commit [^1]. [^1]: https://github.com/odoo/enterprise/commit/3c2832bbea94f5189f6f5b828c39f4b9e1f61a21 opw-3525606 Forward-Port-Of: odoo/enterprise#53260 Forward-Port-Of: odoo/enterprise#49635
1. Removes unique user constraint on custom appts. 2. Fix form validation in front end, making all fields validated. Task-3549573 Forward-Port-Of: odoo/enterprise#49867
Original PR description
1. Removes unique user constraint on custom appts. 2. Fix form validation in front end, making all fields validated. Task-3549573 Forward-Port-Of: odoo/enterprise#49867
When the detected currency matches with multiple currency records, e.g. when '$' or 'kr' is detected, it shouldn't select a one of the record at "random". Now, it will only select a currency if there is a single match. Ticket #3620203 Forward-Port-Of: odoo/enterprise#53215
Original PR description
When the detected currency matches with multiple currency records, e.g. when '$' or 'kr' is detected, it shouldn't select a one of the record at "random". Now, it will only select a currency if there is a single match. Ticket #3620203 Forward-Port-Of: odoo/enterprise#53215
Binary fields creates attachments and we don't want chatter business rules to also apply to those binary, so we filter them from the unlink hook. **steps to reproduce:** - add a binary field on approval.request - create a new approval.request, fill that binary field - unlink the record **before this commit:** - odoo.exceptions.MissingError: Record does not exist or has been deleted. (Record: approval.request(11,), User: 1) **after this commit:** - the request can be deleted opw-
Original PR description
Binary fields creates attachments and we don't want chatter business rules to also apply to those binary, so we filter them from the unlink hook. **steps to reproduce:** - add a binary field on approval.request - create a new approval.request, fill that binary field - unlink the record **before this commit:** - odoo.exceptions.MissingError: Record does not exist or has been deleted. (Record: approval.request(11,), User: 1) **after this commit:** - the request can be deleted opw-3558437 Forward-Port-Of: odoo/enterprise#51705
Task: 3596494 Related: odoo/enterprise#51582 odoo/enterprise#52533 Forward-Port-Of: odoo/enterprise#52752
Original PR description
Task: 3596494 Related: odoo/enterprise#51582 odoo/enterprise#52533 Forward-Port-Of: odoo/enterprise#52752
Steps: - go to documents - edit a tag or a facet from kanban search panel => error because we open the documents.folder view instead of documents.tag or documents.facet view This is happening since https://github.com/odoo/enterprise/commit/2254eb07fd42ec88341d9d7ac92f09a379c6fa55 Solution: if the model is not documents.folder, switch to default form view. note: without the fix, the added test fails by using the documents.folder view instead of using the default facet or tag one
Original PR description
Steps: - go to documents - edit a tag or a facet from kanban search panel => error because we open the documents.folder view instead of documents.tag or documents.facet view This is happening since https://github.com/odoo/enterprise/commit/2254eb07fd42ec88341d9d7ac92f09a379c6fa55 Solution: if the model is not documents.folder, switch to default form view. note: without the fix, the added test fails by using the documents.folder view instead of using the default facet or tag one. note: thanks to https://github.com/odoo/enterprise/commit/49cf1bc7b49e697c5c099d1734b4bd7501828d28 in master form_view_ref can be removed completely, but we keep it in 17.0 for non-updated views. opw-[3615726](https://www.odoo.com/web#id=3615726&view_type=form&model=project.task) opw-[3610331](https://www.odoo.com/web#id=3610331&view_type=form&model=project.task) Forward-Port-Of: odoo/enterprise#52087
Problem --------- Since saas-16.4, the banner reminding a user to submit EC Sales Report was showing when not relevant sales had occured. Furthermore, it would hide when some of those sales were made. Objective --------- Have the opposite behavior. Solution --------- Invert the condition that would show or not the banner by remove the 'not'. task-3645189 Forward-Port-Of: odoo/enterprise#53203
Original PR description
Problem --------- Since saas-16.4, the banner reminding a user to submit EC Sales Report was showing when not relevant sales had occured. Furthermore, it would hide when some of those sales were made. Objective --------- Have the opposite behavior. Solution --------- Invert the condition that would show or not the banner by remove the 'not'. task-3645189 Forward-Port-Of: odoo/enterprise#53203
**Steps to Reproduce** 1. Create an article. 2. Insert an embed. 3. Create a default filter from the search menu. 4. Now, create a new article, write the name, and click on 'Edit'. 5. Now, come back to the original article through Breadcrumb. 6. There are multiple filters with the same name. **Technical** The commit that introduces the issue is https://github.com/odoo/enterprise/commit/680171179b06de61ba2bb76aa233598b24427cb6, because before that commit, an imported state was supposed
Original PR description
**Steps to Reproduce** 1. Create an article. 2. Insert an embed. 3. Create a default filter from the search menu. 4. Now, create a new article, write the name, and click on 'Edit'. 5. Now, come back to the original article through Breadcrumb. 6. There are multiple filters with the same name. **Technical** The commit that introduces the issue is https://github.com/odoo/enterprise/commit/680171179b06de61ba2bb76aa233598b24427cb6, because before that commit, an imported state was supposed to come from outside of Knowledge, and therefore not possess the custom favorite filters. After that commit, imported states can now sometimes come from inside Knowledge, but the load override was not adjusted to account for that. **After this commit** Filters will not be visible multiple times in embed. **Task**-3562102 Forward-Port-Of: odoo/enterprise#52866
Currently, only Admins can open a spreadsheet history Task: 3639902 Forward-Port-Of: odoo/enterprise#52759
Original PR description
Currently, only Admins can open a spreadsheet history Task: 3639902 Forward-Port-Of: odoo/enterprise#52759
This commit fixes an issue with the cohort view buttons which are not accessible when there is no data to display. This is annoying because it may happen when one changes the measures of the cohort view to one that won't display any data. The fix here is therefore to remove the data condition that enables to show the renderer so that even if it is blurred by the no content helper, buttons can still be interacted with. This commit also corrects the css selector which disables interactions with th
Original PR description
This commit fixes an issue with the cohort view buttons which are not accessible when there is no data to display. This is annoying because it may happen when one changes the measures of the cohort view to one that won't display any data. The fix here is therefore to remove the data condition that enables to show the renderer so that even if it is blurred by the no content helper, buttons can still be interacted with. This commit also corrects the css selector which disables interactions with the renderer when sample data is present. Steps to reproduce: -go to any cohort view (ex: Helpdesk -> Reporting -> Tickets Analysis) -filter records with a giberish filter task-3626278 Forward-Port-Of: odoo/enterprise#53169
fixes runbot-47784 community: https://github.com/odoo/odoo/pull/146805 Forward-Port-Of: odoo/enterprise#53065
Original PR description
fixes runbot-47784 community: https://github.com/odoo/odoo/pull/146805 Forward-Port-Of: odoo/enterprise#53065
Purpose: -------- When debug mode is activated, opening the properties panel crashes because the "showAddButton" prop is not a boolean as required. This prop is now a boolean. Task-3649459 Forward-Port-Of: odoo/enterprise#53161
Original PR description
Purpose: -------- When debug mode is activated, opening the properties panel crashes because the "showAddButton" prop is not a boolean as required. This prop is now a boolean. Task-3649459 Forward-Port-Of: odoo/enterprise#53161
Before this commit: Whenever timesheets is encoded in days, after validating the timesheets if entries were changed then negative entries were encountered in list view. Following this commit negative entries are been avoided. task-3514426 Forward-Port-Of: odoo/enterprise#48911
Original PR description
Before this commit: Whenever timesheets is encoded in days, after validating the timesheets if entries were changed then negative entries were encountered in list view. Following this commit negative entries are been avoided. task-3514426 Forward-Port-Of: odoo/enterprise#48911
Steps to reproduce: ------------------- - to be in a multi-company context; - go to pivot view in Payroll reporting; - group by "Company". Issue: ------ We see data from other companies that are not selected for the current user. Solution: --------- Add a multi-company rule for the `hr.payroll.report` model. opw-3620942 Forward-Port-Of: odoo/enterprise#53163 Forward-Port-Of: odoo/enterprise#52145
Original PR description
Steps to reproduce: ------------------- - to be in a multi-company context; - go to pivot view in Payroll reporting; - group by "Company". Issue: ------ We see data from other companies that are not selected for the current user. Solution: --------- Add a multi-company rule for the `hr.payroll.report` model. opw-3620942 Forward-Port-Of: odoo/enterprise#53163 Forward-Port-Of: odoo/enterprise#52145