Daily updates from Odoo
Friday, April 5, 2024
69 changes
35 changes
Enhancements to existing features
Error messages for automated web tour checks now combine the tour and step details with the specific failure reason. This makes it easier for teams to identify which tour failed and why, reducing investigation time in test environments.
Original PR description
In this commit, we make the error message more explicit to avoid to get the same error message for differents tours in runbot. e.g.
- Error: Tour ${tour.name} failed at step ${describeStep(step)}.
- Error: Element has been found. The error seems to be in run() To reach that, we just concatenate the two error messages in only one. e.g.
- Error: Tour ${tour.name} failed at step ${describeStep(step)}. Element has been found. The error seems to be in run()Resolved issues and error corrections
Users working in debug mode who switch away from a company can now be redirected cleanly when the current record is no longer accessible. This avoids a confusing access error and keeps behavior consistent with the standard non-debug experience.
Original PR description
… in debug mode Be logged in multiple companies (A and B) with debug mode. Be on a form view of some record which is visible only on company B via ir.rules. With the company switcher, unlog from company B. Before this commit, the user ends up on the multi-record view of that model and received an AccessError. The behaviour is different from the one when the user is not in debug mode. The user should be redirected to the multi-record view but without the AccessError.
This fixes grid scrolling for right-to-left languages, so content displays and moves correctly for users working in those layouts. It improves the experience for international users without changing existing features.
Original PR description
If an element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position (at the start of the scrolled content), and then increasingly negative as you scroll towards the end of the content. **Before this commit** The useVirtualGrid hook did not take that into account. **After this commit** Now it does, making use of the ABS math operator.
Changing the language from My Profile could fail when a new sales order screen was open, interrupting users with an error. This fix makes the profile language change handle unsaved records safely, so users can update their preferences without disrupting their workflow.
Original PR description
An error occurred when attempting to change the language in my profile. Steps to reproduce: - Install the ``sale_management`` and ``hr`` module - Settings / Translations / Languages - Activate any…
An error occurred when attempting to change the language in my profile.
Steps to reproduce:
- Install the ``sale_management`` and ``hr`` module
- Settings / Translations / Languages
- Activate any Language
- Open Sales / Click New / Click the profile icon / click ``My Profile``
- Change the language
Traceback:
``` ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5848, in ensure_one
_id, = self._ids
ValueError: Expected singleton: sale.order('n', 'e', 'w')
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1827, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1825, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 739, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/action.py", line 67, in load_breadcrumbs
display_names.append(request.env[act['res_model']].browse(record_id).display_name)
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5851, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
In line[1] we are getting the record ID as ('n', 'e', 'w') while trying to
change the language.
This commit resolves the mentioned issue by checking the type of record ID
[1] : https://github.com/odoo/odoo/blob/853bd97eda1f4eca5f9f63ef1c5909fddaa98d27/addons/web/controllers/action.py#L67
sentry - 5135218331
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update fixes an issue where default list values in the mail module could be unintentionally shared across multiple records. Each record now gets its own default values, reducing unexpected behavior and improving reliability in messaging-related features.
Original PR description
Before this commit, the default value definition of a Record.attr() was saved once and given to all records of the given model at record creation. This meant that lists were shared between records, which is definitely an undesireable side-effect of the implementation. This commit fixes the issue by instead getting default value from usual lifecyle as a class instance.
Miscellaneous changes
[[BUG][17.0] viin_sales_unlink- Xảy ra lỗi khi xóa SO](https://viindoo.com/web#id=51865&cids=1&menu_id=289&model=viin.helpdesk.ticket&view_type=form) - This PR - - Fix bug when delete SO **Step** - Create SO - Confirm SO, add delivered If the product is a warehouse product - Create Invoice - Delete Invoice - Cancel SO - Delete SO **Output** - Displays the error totals.subtotals order is not iterable **Reason** - When unlink SO, tax value no longer exists, so, return
Original PR description
[[BUG][17.0] viin_sales_unlink- Xảy ra lỗi khi xóa SO](https://viindoo.com/web#id=51865&cids=1&menu_id=289&model=viin.helpdesk.ticket&view_type=form) - This PR - - Fix bug when delete SO **Step** - Create SO - Confirm SO, add delivered If the product is a warehouse product - Create Invoice - Delete Invoice - Cancel SO - Delete SO **Output** - Displays the error totals.subtotals order is not iterable **Reason** - When unlink SO, tax value no longer exists, so, return value of totals is false, and when try loop totals.subtotals_order (undefine value) will be display this error **Solution** - Check the total input value. If there is no value or the return value is false, return it --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159018
…arch view Description of the issue/feature this PR addresses: The closed ("paid") filter in the search view does not consider the reversed state and is technically closed. Current behavior before PR: Currently, when you select the "paid" and "unpaid" filters on the invoices list, it does not provide a complete view of all the universe of invoices as the reversed status is not reflected within its domain. Desired behavior after PR is merged: I propose that the closed ("paid") filter
Original PR description
…arch view
Description of the issue/feature this PR addresses:
The closed ("paid") filter in the search view does not consider the reversed state and is technically closed.
Current behavior before PR:
Currently, when you select the "paid" and "unpaid" filters on the invoices list, it does not provide a complete view of all the universe of invoices as the reversed status is not reflected within its domain.
Desired behavior after PR is merged:
I propose that the closed ("paid") filter takes into account the reversed state. Consequently, upon selecting both "paid" and "unpaid" filters, it should present a complete universe of invoices.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#154204Add a bunch of QOL improvements in the results page design: NB: In order to stay stable-compatible, using "d-none" to hide elements and using the "fs-x" class to resize the texts instead of changing the header tags. - Display the survey results page in half page size to prevent having too much blank space between the tables columns - The filter buttons are now displayed under the survey title - Show the leaderboard bar on the print preview - Changing the eye dropdown icon to a caret for
Original PR description
Add a bunch of QOL improvements in the results page design: NB: In order to stay stable-compatible, using "d-none" to hide elements and using the "fs-x" class to resize the texts instead of changing…
Add a bunch of QOL improvements in the results page design: NB: In order to stay stable-compatible, using "d-none" to hide elements and using the "fs-x" class to resize the texts instead of changing the header tags. - Display the survey results page in half page size to prevent having too much blank space between the tables columns - The filter buttons are now displayed under the survey title - Show the leaderboard bar on the print preview - Changing the eye dropdown icon to a caret for fold/unfold - Align questions to the left to be on the same level as the sections - Add an horizontal scroll to the matrix and simple/multiple choices tables when the screen is not wide enough to display all the data - Reduce vertical spacing between elements to gain space - Reduce simple/multiple choices tables line height - Reduce survey title, section title and KPIs font size - Display the "Correct", "Partial", "Responded" and "Skipped" badges on a single line and set a rounded border around. - Removing the "Result Overview" title - Removing survey description, section description and question description Task-3707687 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152263
Currently, a traceback appears when you attempt to generate a Facturae document for a credit note created manually. ### Steps to reproduce * install `l10n_es_edi_facturae` * create a credit not manually (not from an invoice) * confirm and attempt to generate the Facturae EDI file You should be me with a traceback: `ValueError: not enough values to unpack (expected 1, got 0)` ### Cause To generate the EDI document, the system needs the credit note to have a link to the refunded
Original PR description
Currently, a traceback appears when you attempt to generate a Facturae document for a credit note created manually. ### Steps to reproduce * install `l10n_es_edi_facturae` * create a credit not manually (not from an invoice) * confirm and attempt to generate the Facturae EDI file You should be me with a traceback: `ValueError: not enough values to unpack (expected 1, got 0)` ### Cause To generate the EDI document, the system needs the credit note to have a link to the refunded invoice. However, in this case, there's no invoice since the credit note was created manual. opw-3786219 opw-3772085 opw-3811170 Forward-Port-Of: odoo/odoo#158283
Steps to reproduce: - Open the project in mobile view - go to the kanban view enable task stages - add one new staged with large name you can see name is misaligned Issue: - In mobile view task stage name is misaligned Solution: - Adding class 'o_text_overflow' to not overflow name in kanban view task-3602610 Forward-Port-Of: odoo/odoo#145915
Original PR description
Steps to reproduce: - Open the project in mobile view - go to the kanban view enable task stages - add one new staged with large name you can see name is misaligned Issue: - In mobile view task stage name is misaligned Solution: - Adding class 'o_text_overflow' to not overflow name in kanban view task-3602610 Forward-Port-Of: odoo/odoo#145915
Add a test for exporting the source terms of modules. This will allow automated scripts to fetch latest terms Backport save_test_file with a parameter on date_format to have predictable filenames Forward-Port-Of: odoo/odoo#159846 Forward-Port-Of: odoo/odoo#154624
Original PR description
Add a test for exporting the source terms of modules. This will allow automated scripts to fetch latest terms Backport save_test_file with a parameter on date_format to have predictable filenames Forward-Port-Of: odoo/odoo#159846 Forward-Port-Of: odoo/odoo#154624
Description of the issue/feature this PR addresses: module: hr_recruitment_survey Current behavior before PR: when retaking the survey, the survey input not map with the applicant id, so if you retake 5 time, only the 1st survey has value of applicant_id Desired behavior after PR is merged: all survey retakes have the same applicant id --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159833
Original PR description
Description of the issue/feature this PR addresses: module: hr_recruitment_survey Current behavior before PR: when retaking the survey, the survey input not map with the applicant id, so if you retake 5 time, only the 1st survey has value of applicant_id Desired behavior after PR is merged: all survey retakes have the same applicant id --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159833
At the moment, the partner being used to get the information for the efaktur module is the partner set on the invoice. This is wrong, since if the partner set on the invoice is a child record of a company partner you cannot set most of these fields. To fix this issue, we will update in order to fetch the efaktur related fields from the commercial partner instead. (vat, along with all efaktur specific information used in the process) --- I confirm I have signed the CLA and read the PR g
Original PR description
At the moment, the partner being used to get the information for the efaktur module is the partner set on the invoice. This is wrong, since if the partner set on the invoice is a child record of a company partner you cannot set most of these fields. To fix this issue, we will update in order to fetch the efaktur related fields from the commercial partner instead. (vat, along with all efaktur specific information used in the process) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160192 Forward-Port-Of: odoo/odoo#160108
Currently when a time off using an overtime is written to for any reason, it will compare the duration of the overtime with the number_of_hours_display. However, the duration check will always be triggered since overtime duration is number_of_hours_display * -1 This causes problems if an overtime time off is modified for any reason and the employee does not have enough total_overtime --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of:
Original PR description
Currently when a time off using an overtime is written to for any reason, it will compare the duration of the overtime with the number_of_hours_display. However, the duration check will always be triggered since overtime duration is number_of_hours_display * -1 This causes problems if an overtime time off is modified for any reason and the employee does not have enough total_overtime --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160055
-Before this commit the url is like /blog/1/feed then it will become a redirect 301 url to /blog/travel-1/feed which is not good for SEO. Therefore we change to slug(blog) to ensure no redirect occur 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#160503 Forward-Port-Of: odoo/odoo#160438
Original PR description
-Before this commit the url is like /blog/1/feed then it will become a redirect 301 url to /blog/travel-1/feed which is not good for SEO. Therefore we change to slug(blog) to ensure no redirect occur 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#160503 Forward-Port-Of: odoo/odoo#160438
Before this commit: Using the "Download logs" button from the IoT box form view will fail every time due to an Internal Server Error on the IoT side. ```py File "/home/pi/odoo/odoo/tools/misc.py", line 189, in file_path FileNotFoundError: File not found: /var/log/odoo/odoo-server.log ``` This happened due to changes introduced in: https://github.com/odoo/odoo/pull/99658 The changes enforced to double check that the file path was in an odoo addons (for security reasons). However, it
Original PR description
Before this commit: Using the "Download logs" button from the IoT box form view will fail every time due to an Internal Server Error on the IoT side. ```py File "/home/pi/odoo/odoo/tools/misc.py", line 189, in file_path FileNotFoundError: File not found: /var/log/odoo/odoo-server.log ``` This happened due to changes introduced in: https://github.com/odoo/odoo/pull/99658 The changes enforced to double check that the file path was in an odoo addons (for security reasons). However, it is generally not the case, thus the error After this commit: The log file is downloaded as intended opw-3827121 Forward-Port-Of: odoo/odoo#159186
Current behaviour: --- When you generate a Delivery Slip for a list of kit and non kit products with no backorder, kit and non kit products get mixed. ie: there are kit products in the section "products not associated with a kit" Steps to reproduce: --- 1. Create 4 products (K1,P1,P2,C1,C2) 2. Create a Bills of Materials for K1 3. Set Type as Kit 4. Add C1 and C2 as components 5. Create a sale quotation for K1, P1, P2 6. Set the quantity at 4 for all products 7. On the quotation,
Original PR description
Current behaviour: --- When you generate a Delivery Slip for a list of kit and non kit products with no backorder, kit and non kit products get mixed. ie: there are kit products in the section…
Current behaviour: --- When you generate a Delivery Slip for a list of kit and non kit products with no backorder, kit and non kit products get mixed. ie: there are kit products in the section "products not associated with a kit" Steps to reproduce: --- 1. Create 4 products (K1,P1,P2,C1,C2) 2. Create a Bills of Materials for K1 3. Set Type as Kit 4. Add C1 and C2 as components 5. Create a sale quotation for K1, P1, P2 6. Set the quantity at 4 for all products 7. On the quotation, click on Delivery 8. In Done, put 4 for P1 and 3 for C1,C2,P2 9. Validate and select No Backorder 10. Click on Print, Delivery Slip 11. In the document: 12. P2 is in the kit section (K1) 13. C1,C2 in the "not associated with a kit" section Expected behaviour: --- Only C1 and C2 should be in the K1 section Only P1 and P2 should be in the "Products not associated with a kit" section opw-3568390 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159138 Forward-Port-Of: odoo/odoo#144276
**Steps to reproduce the bug:** - Create a storable product “P1” and "P2": - Weight "P1": 1kg - Weight "P2": 2kg - Create a picking with the product “P1” - Change the product of the move to “P2” Problem: The picking weight is not updated opw-[3754884](https://www.odoo.com/web#id=3754884&view_type=form&model=project.task) Forward-Port-Of: odoo/odoo#159997 Forward-Port-Of: odoo/odoo#159722
Original PR description
**Steps to reproduce the bug:**
- Create a storable product “P1” and "P2":
- Weight "P1": 1kg
- Weight "P2": 2kg
- Create a picking with the product “P1”
- Change the product of the move to “P2”
Problem:
The picking weight is not updated
opw-[3754884](https://www.odoo.com/web#id=3754884&view_type=form&model=project.task)
Forward-Port-Of: odoo/odoo#159997
Forward-Port-Of: odoo/odoo#159722Currently some VAT examples that contain other terms than only the number are always displayed in English. This commit makes sure they can be translated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159724 Forward-Port-Of: odoo/odoo#158629
Original PR description
Currently some VAT examples that contain other terms than only the number are always displayed in English. This commit makes sure they can be translated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159724 Forward-Port-Of: odoo/odoo#158629
- replace order summary by a dropdown like mobile view - remove 'Pay With' title - match 'Choose delivery method' style with 'Choose payment method' - make order summary sticky so that 'Pay now' is always accessible task-3741412 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160415 Forward-Port-Of: odoo/odoo#154035
Original PR description
- replace order summary by a dropdown like mobile view - remove 'Pay With' title - match 'Choose delivery method' style with 'Choose payment method' - make order summary sticky so that 'Pay now' is always accessible task-3741412 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160415 Forward-Port-Of: odoo/odoo#154035
- menu combo will not ask to select an item, if there only one in the category. - self-order do not show last screen with order number, when prices = 0.00. - kiosk: close button too small: we don't notice it on large screens as it's not where we look. before:  after:  - 30 sec to close
Original PR description
- menu combo will not ask to select an item, if there only one in the category. - self-order do not show last screen with order number, when prices = 0.00. - kiosk: close button too small: we don't…
- menu combo will not ask to select an item, if there only one in the category. - self-order do not show last screen with order number, when prices = 0.00. - kiosk: close button too small: we don't notice it on large screens as it's not where we look. before:  after:  - 30 sec to close the "ticket number" screen since 5 minutes is too long. - self: My Orders outline with semi transparent background. before:  after:  - self: order date on closed orders. - fix: when you select a product with a variant but do not choose a variant and click on "discard" it is no longer possible to cancel the order and return to the home page. Task-3801901 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159623
Currently, in Russian, the variable 'field' is translated into Russian as 'поле' which causes an error. Error: `KeyError: 'поле'` This commit fixes this issue by updating the translated variable into the original variable. sentry-5141195219
Original PR description
Currently, in Russian, the variable 'field' is translated into Russian as 'поле' which causes an error. Error: `KeyError: 'поле'` This commit fixes this issue by updating the translated variable into the original variable. sentry-5141195219
Before this commit, when the clickbot detected an error dialog, it stopped the test and throw an error saying that an error dialog was detected. This information is not enough to check why, and how, the error dialog was produced. Now, we also log the content of the error dialog as well as all the information of the last rpc that was in error. closes odoo/odoo#160103 X-original-commit: 4f26b324a30c5120ea60b6b42fef6cd6000d2859 Forward-Port-Of: odoo/odoo#160336 Forward-Port-Of: odoo/odoo#
Original PR description
Before this commit, when the clickbot detected an error dialog, it stopped the test and throw an error saying that an error dialog was detected. This information is not enough to check why, and how, the error dialog was produced. Now, we also log the content of the error dialog as well as all the information of the last rpc that was in error. closes odoo/odoo#160103 X-original-commit: 4f26b324a30c5120ea60b6b42fef6cd6000d2859 Forward-Port-Of: odoo/odoo#160336 Forward-Port-Of: odoo/odoo#160272
**Steps to reproduce:** 1- Create a purchase order and assign a project to its Analytic distribution 2- Go to the assigned project's 'Project Updates' 3- Click on Purchase order smart button **Current behavior before PR:** When trying to view the purchase orders linked to a project you will either get a message saying this ID doesn't exist or you will get an empty list view. This is happening because we are fetching the purchase order line ids and passing those ids to the view not the
Original PR description
**Steps to reproduce:** 1- Create a purchase order and assign a project to its Analytic distribution 2- Go to the assigned project's 'Project Updates' 3- Click on Purchase order smart button **Current behavior before PR:** When trying to view the purchase orders linked to a project you will either get a message saying this ID doesn't exist or you will get an empty list view. This is happening because we are fetching the purchase order line ids and passing those ids to the view not the ids for the purchase order itself https://github.com/odoo/odoo/blob/saas-17.1/addons/project_purchase/models/project_project.py#L31:L33 **Desired behavior after PR is merged:** We are now passing the ids of the purchase order to the view. opw-3794848 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159345
The aim of this commit is to prevent the statistical error detection to interupt automated flow. From now on, the error detection wizard on `action_post` will only be triggered for manually created invoice. Context: Payments made through our website wouldn't be reconcile with their invoice because the flow supposed to post the invoice silently failed due to the `validate.account.move` wizard being returned by `action_post`. Before this commit: To be able to pass the error detection te
Original PR description
The aim of this commit is to prevent the statistical error detection to interupt automated flow. From now on, the error detection wizard on `action_post` will only be triggered for manually created invoice. Context: Payments made through our website wouldn't be reconcile with their invoice because the flow supposed to post the invoice silently failed due to the `validate.account.move` wizard being returned by `action_post`. Before this commit: To be able to pass the error detection test with an automated flow, you needed to setup a context key. That meant setting the context key anywhere an automated action could take place. After this commit: The automated detection error wizard `validate.account.move` will only be brought up through the `action_post` where the key is explicitely set. opw-3830725 Forward-Port-Of: odoo/odoo#160384
- Create a Partner who is a valid Peppol participant - Clear their UBL format - they are still displayed as valid (Bug 1) - Create an invoice for that partner and confirm it. The Peppol state changes to 'ready' - Erase eas or endpoint on that partner and verify - the partner is now not a valid Peppol participant - Reset the invoice to draft, confirm again: the peppol move state is still `ready` (Bug 2) 1. Do not set a participant as valid if a peppol-incompatible edi format has been selec
Original PR description
- Create a Partner who is a valid Peppol participant - Clear their UBL format - they are still displayed as valid (Bug 1) - Create an invoice for that partner and confirm it. The Peppol state changes to 'ready' - Erase eas or endpoint on that partner and verify - the partner is now not a valid Peppol participant - Reset the invoice to draft, confirm again: the peppol move state is still `ready` (Bug 2) 1. Do not set a participant as valid if a peppol-incompatible edi format has been selected 2. Only save Peppol move state if it's processing/done already. Otherwise, let users clear it by resetting to draft. (until we implement giving them control over this field) opw-3784945 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160591 Forward-Port-Of: odoo/odoo#159852
**Current behavior:** Creating an ewallet loyalty program and removing the default value for `trigger_product_ids` without adding another in its place will result in any ewallet created using that program to not have its balance deducted after being used in a sale order. **Expected behavior:** The default product should not be required here, nor should any product, seeing as there is no `required` constraint on this field nor any related ones. **Steps to reproduce:** 1. Create an e
Original PR description
**Current behavior:** Creating an ewallet loyalty program and removing the default value for `trigger_product_ids` without adding another in its place will result in any ewallet created using that…
**Current behavior:**
Creating an ewallet loyalty program and removing the default
value for `trigger_product_ids` without adding another in its
place will result in any ewallet created using that program to
not have its balance deducted after being used in a sale order.
**Expected behavior:**
The default product should not be required here, nor should any
product, seeing as there is no `required` constraint on this
field nor any related ones.
**Steps to reproduce:**
1. Create an ewallet loyalty program and remove the Top-up
ewallet product
2. Create an ewallet, give it some balance, and use it in an
order
3. Check the balance of the wallet to see the erroneous behavior
**Cause of the issue:**
In the _program_check_compute_points() method of `sale.order` in
`sale_loyalty`, the conditional block:
`if not products_per_rule.get(rule):
continue`
will normally prevent rules belonging to ewallet program types
from going further in the method because they have the default
ewallet top-up product in their domain. When the continue is not
reached, they will reach this line:
`amount_paid = sum(max(0, line.price_total) for
line in order_lines if line.product_id in rule_products)`
which will end up offsetting the actual subtraction of a SOLs
`points_cost` from an ewallet `loyalty.card`'s balance.
**Fix:**
Add another check prior to the calculation of order points which
prevents orders with applied ewallet coupons without any top-up
products from reaching the problematic code. If an ewallet
program doesn't have any `trigger_product_ids`, it shouldn't
ever need to perform such calculations.
opw-3756134
Forward-Port-Of: odoo/odoo#157421This is done together with an enterprise commit in order to avoid creating mail alias automatically on journals imported via FEC files, in France. Indeed, such files could contain journals with different codes but same name, each of which would try creating an alias with the same name, raising an error. OPW 3813584 Forward-Port-Of: odoo/odoo#160168 Forward-Port-Of: odoo/odoo#159455
Original PR description
This is done together with an enterprise commit in order to avoid creating mail alias automatically on journals imported via FEC files, in France. Indeed, such files could contain journals with different codes but same name, each of which would try creating an alias with the same name, raising an error. OPW 3813584 Forward-Port-Of: odoo/odoo#160168 Forward-Port-Of: odoo/odoo#159455
[FIX] portal: display avatar when read access right are fulfilled Steps to reproduce the bug: - Enable the comments on a blog. - Add a comment. -> Problem: The avatar of the comment is the default placeholder image. The problem appears since [1]. This commit was created to bypass the read access of an image if a correct `token` was provided in the dataset of the `.o_portal_chatter` element. The problem is that since [1], if the `.o_portal_chatter` element does not have a `token` (o
Original PR description
[FIX] portal: display avatar when read access right are fulfilled Steps to reproduce the bug: - Enable the comments on a blog. - Add a comment. -> Problem: The avatar of the comment is the default…
[FIX] portal: display avatar when read access right are fulfilled Steps to reproduce the bug: - Enable the comments on a blog. - Add a comment. -> Problem: The avatar of the comment is the default placeholder image. The problem appears since [1]. This commit was created to bypass the read access of an image if a correct `token` was provided in the dataset of the `.o_portal_chatter` element. The problem is that since [1], if the `.o_portal_chatter` element does not have a `token` (or a `hash` and a `pid` since [2]) in its dataset, the avatar images are displayed as the default placeholder image by default. The goal of this commit is to correct this behavior; if there is no token provided, the previously used `/web/image` route is used to show the avatar. Thanks to this route, the avatar is displayed if the read access is fulfilled. If it is not the case, the default placeholder image is displayed. [1]: https://github.com/odoo/odoo/commit/d4eb996cd3caea3fbb822437057a6a5a8a722293 [2]: https://github.com/odoo/odoo/commit/7f69708bcce3b3c4b096d89cb0ec354998eac191 opw-3749422 Forward-Port-Of: odoo/odoo#160240 Forward-Port-Of: odoo/odoo#157652
Steps: - Install project app. - Share a project which contains a task and sub-task and project should have allow milestone - Go to task form in project sharing. - Go to milestone field of sub-task page. Issue: - Milestone field has can create and can open options enable and because of that portal user able to create edit or open milestone and which leads to tracebacks Cause: - There was no options added to prevent those attribute from that field for project sharing views. Fix: -
Original PR description
Steps: - Install project app. - Share a project which contains a task and sub-task and project should have allow milestone - Go to task form in project sharing. - Go to milestone field of sub-task page. Issue: - Milestone field has can create and can open options enable and because of that portal user able to create edit or open milestone and which leads to tracebacks Cause: - There was no options added to prevent those attribute from that field for project sharing views. Fix: - Added option to prevent those operation for project sharing view. Note: Add this options in blockby page in FW port. task-3764782 Forward-Port-Of: odoo/odoo#160514 Forward-Port-Of: odoo/odoo#155358
At the moment, duplicating a website is not possible in the sense of duplicating content, pages, etc. It is still available as an action from the form view, and it could make sense to start up a new website with a few common values (social media? etc?)... but many of website fields are technical fields that should not be copied and many are dubious to copy and not even visible in the form view. Really, duplicating a website at the moment is misleading. This commit disables the possibility from t
Original PR description
At the moment, duplicating a website is not possible in the sense of duplicating content, pages, etc. It is still available as an action from the form view, and it could make sense to start up a new website with a few common values (social media? etc?)... but many of website fields are technical fields that should not be copied and many are dubious to copy and not even visible in the form view. Really, duplicating a website at the moment is misleading. This commit disables the possibility from the form view. In the future, we want to focus on the ability to export / import a full website, but that's not for now. opw-3782830 Forward-Port-Of: odoo/odoo#160463
Problem: When the user sets a warning message for a product, the message will always display even if the warning type is no-message. Purpose: The product's warning message should not display if the warning type is no message. Steps to Reproduce on Runbot17: 1.Install Sales 2.Enable Sale Warnings in Setting > Sales 3.Modify the sale warnings for a product 4.Create a quotation 5.Click on the catalog and look for the modified product 6.Observe the warning opw-3806520 Description of
Original PR description
Problem: When the user sets a warning message for a product, the message will always display even if the warning type is no-message. Purpose: The product's warning message should not display if the warning type is no message. Steps to Reproduce on Runbot17: 1.Install Sales 2.Enable Sale Warnings in Setting > Sales 3.Modify the sale warnings for a product 4.Create a quotation 5.Click on the catalog and look for the modified product 6.Observe the warning opw-3806520 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#159795
### Issue When handling a non-200 reponse with a large payload (>65536 bytes), download.js fails to decode the payload properly on Chrome/WebKit. This is because the content is parsed using WebKit's `DOMParser.parseFromString`, which creates several Text nodes if the text would exceed 65536 bytes. Then, only the textContent of the second Text node is passed to `JSON.parse()`, which fails because it is not valid JSON. See [this StackOverflow comment](https://stackoverflow.com/questions/6
Original PR description
### Issue When handling a non-200 reponse with a large payload (>65536 bytes), download.js fails to decode the payload properly on Chrome/WebKit. This is because the content is parsed using WebKit's…
### Issue When handling a non-200 reponse with a large payload (>65536 bytes), download.js fails to decode the payload properly on Chrome/WebKit. This is because the content is parsed using WebKit's `DOMParser.parseFromString`, which creates several Text nodes if the text would exceed 65536 bytes. Then, only the textContent of the second Text node is passed to `JSON.parse()`, which fails because it is not valid JSON. See [this StackOverflow comment](https://stackoverflow.com/questions/67738121/in-what-cases-do-browsers-create-multiple-adjacent-text-nodes/67774415#67774415) and [the WebKit code](https://github.com/WebKit/WebKit/blob/68ae0fde5f959e056fbd6700f1ca7fa652cd1ffa/Source/WebCore/html/parser/HTMLConstructionSite.cpp#L584-L592) ### Steps to reproduce This example works only in 17.1 and master due to the larger files now generated by the Romanian SAF-T export. However, you can reproduce it in any version by raising an InternalServerError with a response content larger than 65536 bytes in any controller called by `download()`. 1. Install l10n_ro_saft on a 17.1 database 2. Switch to 'RO Company' 3. Go to partner 'Azure Interior' and remove the address details (this will make the report generation return an error containing the report content) 4. Go to Accounting -> Reports -> General Ledger 5. Click on the arrow next to 'PDF' and click on 'SAF-T'. taskid: 3790302 Forward-Port-Of: odoo/odoo#160577 Forward-Port-Of: odoo/odoo#156672
- Add new tax groups for VAT at 5%, 13%, and 15% - Add taxes of 5% and 15% - Archive VAT taxes of 5% in sales and 12% - Configure tax group accounts for the new tax groups - Add new foreign account tax position tax template at 15% VAT 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#160020 F
Original PR description
- Add new tax groups for VAT at 5%, 13%, and 15% - Add taxes of 5% and 15% - Archive VAT taxes of 5% in sales and 12% - Configure tax group accounts for the new tax groups - Add new foreign account tax position tax template at 15% VAT 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#160020 Forward-Port-Of: odoo/odoo#159596
In 2024 the SRI changes income withholding taxes. We update minor data and create new taxes for the new percentages Forward-Port-Of: odoo/odoo#157912 Forward-Port-Of: odoo/odoo#156740
Original PR description
In 2024 the SRI changes income withholding taxes. We update minor data and create new taxes for the new percentages Forward-Port-Of: odoo/odoo#157912 Forward-Port-Of: odoo/odoo#156740
1 change
Resolved issues and error corrections
This update fixes an issue where a duplicate error popup appeared when saving website pages. The change ensures that error messages are displayed correctly and consistently, providing a better user experience. This improves the reliability of the website editor.
Original PR description
If an error happens when a website page is being saved, the error message is displayed as a popup on the edited block. Unfortunately, an error dialog is also displayed. This commit prevents that dialog from being displayed when the error is already shown to the user. task-3599890 Forward-Port-Of: odoo/odoo#154050
23 changes
Enhancements to existing features
The Knowledge app's automated tests were updated to match a related change that uses YouTube's privacy-enhanced domain for embedded videos. This helps ensure the app continues to validate video behavior correctly while supporting improved privacy practices.
Original PR description
This commit adjusts the tests in response to a community pull request [1], which revises the YouTube video URL to utilize "youtube-nocookie" for enhanced privacy measures. [1]: https://github.com/odoo/odoo/pull/153411 Requires: - https://github.com/odoo/odoo/pull/153411 task-3724858
The Documents module metadata now uses the standard company author name, Odoo S.A. This is a small administrative cleanup that keeps module information consistent with company naming conventions and has no expected impact on users.
Original PR description
### Specification This PR changes the author of documents module from "Odoo" to "Odoo S.A." ### Technical "Odoo S.A." is by default author, so removing author from the manifest file. Task - 3834770
Adds automated checks for the Documents activity view, including the behavior when archiving documents. This helps prevent regressions and keeps document management workflows stable for users.
Original PR description
Purpose ======= Add unit tests for the documents activity view Test the fix of documents archiving in the activity view PR: https://github.com/odoo/odoo/pull/151741 Task: 3704340 Task-3714544
Miscellaneous changes
…bles In a report (DIN5008 layout for example), have an invalid table -- containing "t" nodes where HTML doesn't expect them, within another invalid table. Before this commit, all the tables were not converted to classic div elements, and other conversions were wrongly applied. After this commit, all tables are converted, leaving other irrelevant nodes untouched. opw-3741137 Forward-Port-Of: odoo/enterprise#60090
Original PR description
…bles In a report (DIN5008 layout for example), have an invalid table -- containing "t" nodes where HTML doesn't expect them, within another invalid table. Before this commit, all the tables were not converted to classic div elements, and other conversions were wrongly applied. After this commit, all tables are converted, leaving other irrelevant nodes untouched. opw-3741137 Forward-Port-Of: odoo/enterprise#60090
Steps to reproduce: ------------------- - in My Timesheet, click on start; - add a project, a task and a description; - click on search icon in the grid (magnifying glass); Issue: ------ The list view never opens. Cause: ------ When the component performs the `onWillStart` hook, we add the timesheet with the current timer and put it into edit mode. This will have the effect of making a new render (destroy the component and create a new one). This will create a new component and re
Original PR description
Steps to reproduce: ------------------- - in My Timesheet, click on start; - add a project, a task and a description; - click on search icon in the grid (magnifying glass); Issue: ------ The list view never opens. Cause: ------ When the component performs the `onWillStart` hook, we add the timesheet with the current timer and put it into edit mode. This will have the effect of making a new render (destroy the component and create a new one). This will create a new component and repeat the process. Solution: --------- Let the component load the timesheet during the `onWillStart` but manage the edit mode during the `onMounted` hook. opw-3788661 Forward-Port-Of: odoo/enterprise#59896
Before this commit, the `helpdesk_ticket_id` field in `account.analytic.line` model was not defined in the list view used in `My Timesheets` menu. This commit updates the list view to correctly display the `helpdesk_ticket_id` field in `My Timesheets` and `All Timesheets`. Forward-Port-Of: odoo/enterprise#59255
Original PR description
Before this commit, the `helpdesk_ticket_id` field in `account.analytic.line` model was not defined in the list view used in `My Timesheets` menu. This commit updates the list view to correctly display the `helpdesk_ticket_id` field in `My Timesheets` and `All Timesheets`. Forward-Port-Of: odoo/enterprise#59255
Added a high z-index to o_invoice_extract_box_layer css class to make the extract box layer on top and clickable again. This was caused by an added z-index to textLayer class in odoo/odoo@5c238950bbf6 Forward-Port-Of: odoo/enterprise#60066
Original PR description
Added a high z-index to o_invoice_extract_box_layer css class to make the extract box layer on top and clickable again. This was caused by an added z-index to textLayer class in odoo/odoo@5c238950bbf6 Forward-Port-Of: odoo/enterprise#60066
Deleting a partner may take a long time because odoo has to check an entire table to find few records or no records at all that reference the partner and set it to null. So we are adding an index btree not null to speed up the deletion of partners. TASK-ID: 3759406 Forward-Port-Of: odoo/enterprise#60047 Forward-Port-Of: odoo/enterprise#59932
Original PR description
Deleting a partner may take a long time because odoo has to check an entire table to find few records or no records at all that reference the partner and set it to null. So we are adding an index btree not null to speed up the deletion of partners. TASK-ID: 3759406 Forward-Port-Of: odoo/enterprise#60047 Forward-Port-Of: odoo/enterprise#59932
Steps to reproduce: ------------------- 1. Assume a user without "Project" access rights (but with "Sale" access rights) 2. Create an SO containing a service product which generates a Project & Task (or Project) on order 3. Confirm the SO 4. An access error should appear: "You are not allowed to modify 'Project' (project.project) records." ------------------- To trigger the same access error but for "Documents" access, repeat the same process but remove the "Documents" access rights of t
Original PR description
Steps to reproduce: ------------------- 1. Assume a user without "Project" access rights (but with "Sale" access rights) 2. Create an SO containing a service product which generates a Project & Task (or Project) on order 3. Confirm the SO 4. An access error should appear: "You are not allowed to modify 'Project' (project.project) records." ------------------- To trigger the same access error but for "Documents" access, repeat the same process but remove the "Documents" access rights of the user. In this case, the service product must have its "Working Template" set. task-3646545 version-16.0 Forward-Port-Of: odoo/enterprise#59794 Forward-Port-Of: odoo/enterprise#58004
If a `studio.approval.rule` refers to a non-existing model (e.g. the model was removed, or renamed, or it's a custom model that is not present during an upgrade), then while attempting to patch the rule's method the registry will [return](https://github.com/odoo/enterprise/blob/961f67d776a8ec1d9293ed599f284807930496d5/web_studio/models/studio_approval.py#L200) a `None` model, which then causes an AttributeError. We add a check for the Model's existence, so that any None models are skipped. Th
Original PR description
If a `studio.approval.rule` refers to a non-existing model (e.g. the model was removed, or renamed, or it's a custom model that is not present during an upgrade), then while attempting to patch the…
If a `studio.approval.rule` refers to a non-existing model (e.g. the model was removed, or renamed, or it's a custom model that is not present during an upgrade), then while attempting to patch the rule's method the registry will [return](https://github.com/odoo/enterprise/blob/961f67d776a8ec1d9293ed599f284807930496d5/web_studio/models/studio_approval.py#L200) a `None` model, which then causes an AttributeError.
We add a check for the Model's existence, so that any None models are skipped. This follows the approach in [base_automation](https://github.com/odoo/odoo/blob/d11ece23e97189f38040254917a3517e21386e47/addons/base_automation/models/base_automation.py#L847-L857), which was the technical inspiration for the [commit](https://github.com/odoo/enterprise/commit/3db107ae481a8da85aa356c729bae5fc246e655b) that implemented the approval rule logic.
Ticket: [3754939](https://www.odoo.com/web#id=3754939&cids=1&menu_id=4720&action=333&active_id=70&model=project.task&view_type=form), [3777251](https://www.odoo.com/web#id=3754939&cids=1&menu_id=4720&action=333&active_id=70&model=project.task&view_type=form)
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/17.0/odoo/service/server.py", line 1302, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "<decorator-gen-16>", line 2, in new
File "/home/odoo/src/odoo/17.0/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/17.0/odoo/modules/registry.py", line 113, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/17.0/odoo/modules/loading.py", line 606, in load_modules
model._register_hook()
File "/home/odoo/src/enterprise/17.0/web_studio/models/studio_approval.py", line 203, in _register_hook
_patch(Model, approval.method, approval_method)
File "/home/odoo/src/enterprise/17.0/web_studio/models/studio_approval.py", line 132, in _patch
ModelClass = model.env.registry[model._name]
AttributeError: 'NoneType' object has no attribute 'env'
```
Forward-Port-Of: odoo/enterprise#59457
Forward-Port-Of: odoo/enterprise#58688An internal transfer must not be signed in the SAT. Odoo does not allow generating a EDI document in that process, but shows all the MX fields to EDI documents. Now, the fields are not in the view for internal transfers. Forward-Port-Of: odoo/enterprise#42569
Original PR description
An internal transfer must not be signed in the SAT. Odoo does not allow generating a EDI document in that process, but shows all the MX fields to EDI documents. Now, the fields are not in the view for internal transfers. Forward-Port-Of: odoo/enterprise#42569
Before this commit, the test changes the project_id inside a ticket with the id of helpdesk team instead of altering the `team_id` field of that ticket. This commit fixes the issue to correctly change the `team_id` field instead of `project_id` since the id given is the one of a helpdesk team. runbot-61010 Forward-Port-Of: odoo/enterprise#59939
Original PR description
Before this commit, the test changes the project_id inside a ticket with the id of helpdesk team instead of altering the `team_id` field of that ticket. This commit fixes the issue to correctly change the `team_id` field instead of `project_id` since the id given is the one of a helpdesk team. runbot-61010 Forward-Port-Of: odoo/enterprise#59939
[This first commit] fixed an issue with the website menu cache. The menu is not cached anymore if there is a record like URL in the it. When `website_helpdesk` module is installed, since `saas-16.3`, the menu contains a record like URL which disable the menu cache and increase the number of queries. The solution is to increase the max number of queries even if a better solution would be to remove the `Help` link from the menu but we can't do that because `appointment_hr` doesn't depend on `websi
Original PR description
[This first commit] fixed an issue with the website menu cache. The menu is not cached anymore if there is a record like URL in the it. When `website_helpdesk` module is installed, since `saas-16.3`, the menu contains a record like URL which disable the menu cache and increase the number of queries. The solution is to increase the max number of queries even if a better solution would be to remove the `Help` link from the menu but we can't do that because `appointment_hr` doesn't depend on `website`. [This first commit]: https://github.com/odoo/odoo/commit/43576cd424b6d0fc7da01142b5e6550e371ad1ff runbot-60956 runbot-59981 Forward-Port-Of: odoo/enterprise#59905 Forward-Port-Of: odoo/enterprise#59618
Versions -------- - 16.0+ Steps ----- 1. Create a subscription SO; 2. confirm, invoice, and upsell; 3. on upsell, add a non-subscription item; 4. create invoice. Issue ----- On the invoice, the non-subscription item gets labeled with a duration, as if it's supposed to be returned afterwards. Cause ----- When preparing invoice lines, the conditional checks whether the line has a subscription item, or the order is an upsell. The latter part was added in c8b79afe1bf2971a7ac7709e
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Create a subscription SO; 2. confirm, invoice, and upsell; 3. on upsell, add a non-subscription item; 4. create invoice. Issue ----- On the invoice, the non-subscription item gets labeled with a duration, as if it's supposed to be returned afterwards. Cause ----- When preparing invoice lines, the conditional checks whether the line has a subscription item, or the order is an upsell. The latter part was added in c8b79afe1bf2971a7ac7709e7165b863969d6a3d to store subscription id, start_date and end_date on upsell invoice lines. Solution -------- Add an additional conditional to format the description, only displaying duration for items that are subscription-based. opw-3687626 Forward-Port-Of: odoo/enterprise#59865 Forward-Port-Of: odoo/enterprise#58303
This commit fixes a race condition in the following test tour: `test_inventory_adjustment_dont_update_location` Runbuild error: 60324 Forward-Port-Of: odoo/enterprise#59900
Original PR description
This commit fixes a race condition in the following test tour: `test_inventory_adjustment_dont_update_location` Runbuild error: 60324 Forward-Port-Of: odoo/enterprise#59900
In the system parameters, switch account_online_synchronization.proxy_mode to sandbox Add a bank with plaid for example and follow the different steps Have a user [DEMO] with Accounting access set to 'Read-only' Log in with [DEMO] Try to access the Accounting App Dashboard Issue: Access Error """ You are not allowed to access 'Bank Connection' (account.online.link) records. This operation is allowed for the following groups: - Accounting/Accountant - Accounting/Boo
Original PR description
In the system parameters, switch account_online_synchronization.proxy_mode to sandbox
Add a bank with plaid for example and follow the different steps
Have a user [DEMO] with Accounting access set to 'Read-only'
Log in with [DEMO]
Try to access the Accounting App Dashboard
Issue:
Access Error
"""
You are not allowed to access 'Bank Connection' (account.online.link) records.
This operation is allowed for the following groups:
- Accounting/Accountant
- Accounting/Bookkeeper
Contact your administrator to request access if necessary.
"""
This occurs because the read access to the account.online.link
and account.online.account records is granted only to users having at
least the account.group_account_user group
But, as those accesses are defined to be read only, it should be
greanted also to account.group_account_readonly users
opw-3821540
Forward-Port-Of: odoo/enterprise#59984### Steps to reproduce issue: 1. Go to _Field Service > All Tasks > To Invoice_ - If no task is shown, remove To Invoice filter 3. Click on the checkbox of a task 4. The button Create Invoice should appear next to the Print and Actions buttons but it does not ### Explanation: The context key used to show the element contains a `search_default` prefix. Keys with this prefix are specifically used to create a search filter and are deleted in the process. https://github.com/odoo/odoo
Original PR description
### Steps to reproduce issue: 1. Go to _Field Service > All Tasks > To Invoice_ - If no task is shown, remove To Invoice filter 3. Click on the checkbox of a task 4. The button Create Invoice should appear next to the Print and Actions buttons but it does not ### Explanation: The context key used to show the element contains a `search_default` prefix. Keys with this prefix are specifically used to create a search filter and are deleted in the process. https://github.com/odoo/odoo/blob/71c81e605b2f06889ad8031f021863638edab268/addons/web/static/src/search/search_model.js#L291-L300 ### Suggested fix: No existing key in the context is specific to the action nor is their value. Adding a new specific context key prevents unintended behaviours. opw-3773005 Forward-Port-Of: odoo/enterprise#59368
Issue: ------ Some tests of `TestSaleReport` introduced with the fix [^1], do not pass if the module `website_sale` is installed. This is due to the fact that the sale order flush does not flush all the fields of the sale order line model that are used in the tests (`price_subtotal` for example). Solution: --------- Use `flush_all` to flush the `sale.order` and `sale.order.line` models. opw-3818584 [^1]: https://github.com/odoo/enterprise/commit/f886e65ce123f06ee8a5a2f149330864bcdb
Original PR description
Issue: ------ Some tests of `TestSaleReport` introduced with the fix [^1], do not pass if the module `website_sale` is installed. This is due to the fact that the sale order flush does not flush all the fields of the sale order line model that are used in the tests (`price_subtotal` for example). Solution: --------- Use `flush_all` to flush the `sale.order` and `sale.order.line` models. opw-3818584 [^1]: https://github.com/odoo/enterprise/commit/f886e65ce123f06ee8a5a2f149330864bcdb3254 Forward-Port-Of: odoo/enterprise#59915
Before this commit, the lowest shipping rate was used as the delivery cost, as in: https://github.com/odoo/enterprise/blob/8c40ba77b23c4ccd24c3785bc1e6cf5b3fbe0e51/delivery_sendcloud/models/sendcloud_service.py#L91 However, the prices received from the Sendcloud are strings, and as a result, this line returned the rate with the lowest lexicographical order. As a result, sometimes the rates with a higher value were chosen. The issue happens when a shipping product costs a single digit amount (
Original PR description
Before this commit, the lowest shipping rate was used as the delivery cost, as in: https://github.com/odoo/enterprise/blob/8c40ba77b23c4ccd24c3785bc1e6cf5b3fbe0e51/delivery_sendcloud/models/sendcloud_service.py#L91 However, the prices received from the Sendcloud are strings, and as a result, this line returned the rate with the lowest lexicographical order. As a result, sometimes the rates with a higher value were chosen. The issue happens when a shipping product costs a single digit amount (e.g. `9.00`) but a second product costs in double digits (e.g. `11.00`). In this case the latter is used which is wrong. This commit, converts the prices to float before comparing them to get the actual best price. opw-3815117 Forward-Port-Of: odoo/enterprise#59536
The background for the sample data has been removed in the following commit, thus it's not visible in the grid, and the opacity of the record exceeds that of the view. Additionally, the 'o-sample-data-disabled' class is not set in the grid view and also is applied in another view like Kanban. We have set the 'o-sample-data-disabled' class in the grid view in this commit Effect commit: This commit resolves the issue with the background display of sample data in the grid view, ensuring that t
Original PR description
The background for the sample data has been removed in the following commit, thus it's not visible in the grid, and the opacity of the record exceeds that of the view. Additionally, the 'o-sample-data-disabled' class is not set in the grid view and also is applied in another view like Kanban. We have set the 'o-sample-data-disabled' class in the grid view in this commit Effect commit: This commit resolves the issue with the background display of sample data in the grid view, ensuring that the background is now visible and properly. this commit is the refactoring of the content helper and sample data behavior- https://github.com/odoo/odoo/commit/05819e8b4a4ebcb68f085353cd299303619cdbf0 task-3764514 Forward-Port-Of: odoo/enterprise#59956
Since https://github.com/odoo/odoo/pull/127353, the web client only asks for the aggregatable field, making the read_group override of 'account.bank.statement.line' becomes ineffective. Remove the check done on fields, and return the latest running_balance by group when 'show_running_balance_latest' is in the context. Forward-Port-Of: odoo/enterprise#59936
Original PR description
Since https://github.com/odoo/odoo/pull/127353, the web client only asks for the aggregatable field, making the read_group override of 'account.bank.statement.line' becomes ineffective. Remove the check done on fields, and return the latest running_balance by group when 'show_running_balance_latest' is in the context. Forward-Port-Of: odoo/enterprise#59936
It happens that the alerts message returns by UPS doesn't contains a descirption. In that case the dictionary has no key and traceback. Only returns alerts with description Forward-Port-Of: odoo/enterprise#59606
Original PR description
It happens that the alerts message returns by UPS doesn't contains a descirption. In that case the dictionary has no key and traceback. Only returns alerts with description Forward-Port-Of: odoo/enterprise#59606
Currently, the article emoji is too small and appears under the topbar of the Knowledge editor on mobile devices. This commit fixes these two issues and simplifies the CSS to ensure that the emoji is correctly placed on all devices. task-3525618 Forward-Port-Of: odoo/enterprise#59541 Forward-Port-Of: odoo/enterprise#54522
Original PR description
Currently, the article emoji is too small and appears under the topbar of the Knowledge editor on mobile devices. This commit fixes these two issues and simplifies the CSS to ensure that the emoji is correctly placed on all devices. task-3525618 Forward-Port-Of: odoo/enterprise#59541 Forward-Port-Of: odoo/enterprise#54522
10 changes
New functionality added to Odoo
This update adds Turkish language translations for the Website Sale Stock module descriptions in Odoo. The module descriptions, which were previously only available in English, are now localized to Turkish, improving the user experience for Turkish-speaking customers who use Odoo's e-commerce features.
Original PR description
Description of the issue/feature this PR addresses: ir.module.module,description:base.module_website_sale_stock tr localization Current behavior before PR: the expressions are written in English Desired behavior after PR is merged: Giving the expressions for the ir.module.module,description:base.module_website_sale_stock model in Turkish --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds Turkish language translations for the Website Sales Stock module descriptions in Odoo. Previously, module descriptions were only available in English. This change enables Turkish-speaking users to see module information in their native language, improving the user experience for Turkish Odoo installations.
Original PR description
Description of the issue/feature this PR addresses: ir.module.module,description:base.module_website_sale_stock tr localization Current behavior before PR: the expressions are written in English Desired behavior after PR is merged: Giving the expressions for the ir.module.module,description:base.module_website_sale_stock model in Turkish --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds Turkish language translations for the Website Sale Stock module description in Odoo. The module descriptions are now available in Turkish, improving the user experience for Turkish-speaking customers who use the platform.
Original PR description
Description of the issue/feature this PR addresses: ir.module.module,description:base.module_website_sale_stock tr localization Current behavior before PR: the expressions are written in English Desired behavior after PR is merged: Giving the expressions for the ir.module.module,description:base.module_website_sale_stock model in Turkish --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This update adds a unique identifier to a dashboard element in the accounting module, enabling more precise automation and testing capabilities. This internal improvement helps the development team better interact with and test the account journal dashboard interface.
Original PR description
This pr will add an id on a div to be able to do a xpath on it. task: 3756179 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When creating a new company with a duplicate Tax ID, the warning message now displays only the company name instead of showing company name, address, and VAT information that appeared broken across multiple lines. The warning text has also been slightly improved for clarity.
Original PR description
When creating a new company from a move, if the tax ID is repeated, a warning is displayed. The warning includes the company name, address and VAT, if those have been added. In this case, address is shown in an extra line, which looks broken. This commit removes additional partner information by updating the context, displaying only the partner name. It also slightly rewords the warning, from "are you sure to create a new one?" to "are you sure you want to create a new one?". To replicate the issue: 1. Create an invoice 2. Click on the empty field next to Customer, type a new name and click "Create and edit..." 3. Add a Tax ID that is already in use (e.g. US12345673) 4. Warning of duplicate Tax ID shows, displaying company name, address and VAT task-3829641 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds Turkish language localization for the Website Sales Stock module description in Odoo. Previously, the module description was displayed in English regardless of the user's language setting. After this change, Turkish-speaking users will see the module description in their native language, improving the user experience for Turkish customers and partners.
Original PR description
Description of the issue/feature this PR addresses: ir.module.module,description:base.module_website_sale_stock turkish localization Current behavior before PR: expressions are shown in English. Desired behavior after PR is merged: It has been ensured that it is in Turkish. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This update removes the ability to duplicate websites from the website form view. The duplication feature was misleading because it couldn't properly copy website content, pages, and other important data—only technical fields that shouldn't be duplicated anyway. The team plans to focus on a proper export/import feature for websites in the future instead.
Original PR description
At the moment, duplicating a website is not possible in the sense of duplicating content, pages, etc. It is still available as an action from the form view, and it could make sense to start up a new website with a few common values (social media? etc?)... but many of website fields are technical fields that should not be copied and many are dubious to copy and not even visible in the form view. Really, duplicating a website at the moment is misleading. This commit disables the possibility from the form view. In the future, we want to focus on the ability to export / import a full website, but that's not for now. opw-3782830 Forward-Port-Of: odoo/odoo#160463
This update fixes a display issue in the Project module where task stage names were misaligned when viewing the kanban board on mobile devices. The fix prevents text overflow by applying proper styling to stage names, ensuring they display correctly regardless of length.
Original PR description
Steps to reproduce: - Open the project in mobile view - go to the kanban view enable task stages - add one new staged with large name you can see name is misaligned Issue: - In mobile view task stage name is misaligned Solution: - Adding class 'o_text_overflow' to not overflow name in kanban view task-3602610 Forward-Port-Of: odoo/odoo#145915
This update makes it easier to configure Viva Wallet payments by automatically copying the webhook to your clipboard with a single click, eliminating the need to manually select and copy the text. This streamlines the payment method setup process for users.
Original PR description
Currently, when you copy the viva wallet webhook to configure it in your account, you have to select it manually. With this commit we add a “CopyClipboardChar” widget which does this automatically. 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
This update corrects an incorrect translation in the Slovak language file. The word for "Lithuania" was mistakenly using a corrupted version of the Latvian translation. This fix ensures users in Slovakia see the proper translation of country names in the system.
Original PR description
Description of the issue/feature this PR addresses: current translation is bastardized (missing one letter) translation of Latvia (sk: Lotyšsko). Current behavior before PR: Desired behavior after PR is merged: Correct translation of Lithuania This goes back to at least 12.0 Not skilled enough to find original commit for this :-( --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr