Daily updates from Odoo
Navigate
Branch
Thursday, May 16, 2024
81 changes
2 changes
Resolved issues and error corrections
Fixes a web navigation issue where clicking links that point to a section on the same page could unexpectedly reload the app and send users back to the home menu. These links now behave as expected, improving reliability when navigating within pages.
Original PR description
When we changed client-side routing to be path based, we broke the behavior that allowed anchor-only links to scroll to the element with the corresponding id. It would instead cause the webclient to…
When we changed client-side routing to be path based, we broke the behavior that allowed anchor-only links to scroll to the element with the corresponding id. It would instead cause the webclient to attempt to load the state and end up on the home menu. This is caused by the fact that clicking on anchor links fires a popstate event, but that popstate event has no associated state. To fix this, we need to be able to differenciate a popstate event from an anchor click from other popstate events. Initially we considered simply setting a local variable when the user clicks on an anchor link, and checking that variable in the popstate handler, but this is both prone to race conditions and also causes issues when a link is clicked but preventDefault is called on the click event, preventing the popstate from occuring. As such, we decided instead to use the fact that the state on the popstate event from anchor clicks is null. The state is only null in two cases: when you click on such a link, or when you use the back button to go back to the first entry in history where the webclient was loaded. In the second case, this was purely incidental: we actually parsed the state from the URL and when the action mounted, it wouldn't touch the state because the new url was the same as the old one. In order to differenciate from the anchor link click, we now replace the state when the urls are identical. This will incidentally save us from parsing the url again if the user navigates back to this history entry, as the corresponding state will have been saved. Enterprise: https://github.com/odoo/enterprise/pull/60741
Miscellaneous changes
This commit presents UI improvements: Renamed the back button to "Change Table." Increased idle table closure time from 1 minute to 3 minutes. Implemented a restriction preventing users from transferring orders to tables already in use. Displayed the attributes of an order line in the order widget. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149465 Forward-Port-Of: odoo/odoo#147677
Original PR description
This commit presents UI improvements: Renamed the back button to "Change Table." Increased idle table closure time from 1 minute to 3 minutes. Implemented a restriction preventing users from transferring orders to tables already in use. Displayed the attributes of an order line in the order widget. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149465 Forward-Port-Of: odoo/odoo#147677
29 changes
Enhancements to existing features
Accounting entries created from uploaded documents now show a smart button that opens the related document. This makes it easier for finance users to verify the original file without searching in Documents, while the button only appears when an uploaded document exists.
Original PR description
**Spec:** Implementing the smart (stat) button for documents sent to Accounting, which leads back to the document. **After this PR:** The stat button will be added in accounting which will lead back to the document. (This button will only be seen if the document is uploaded) Task-3856956
The spreadsheet app has been updated to a newer version, bringing improvements to pivot tables, lists, and global filter handling. Users should see smoother spreadsheet interactions, including better keyboard navigation for pivot dimensions and updated side panels that support the latest spreadsheet experience.
The Appointment app now supports checking whether calendar integrations are synchronized, helping the calendar controls work correctly. The appointment calendar header was also adjusted so sharing availability and synchronization buttons fit together better.
Original PR description
This commit adds the route for checking the synchronization status of calendar integration modules in order to fix the current QUnit tests. related: odoo/odoo#150186 task-3570379
When an approval request is created, the person who owns the related record is automatically added as a follower. This helps ensure the owner stays informed and receives notifications about the approval process without manual setup.
Original PR description
When an approval request is created, the owner of the record is added as a follower of the approval request. This way, the owner will receive notifications about the approval request. task-3672542
Resolved issues and error corrections
This update fixes visual issues introduced by the customer portal redesign, especially around sidebar spacing, buttons, badges, and layout consistency. It improves the portal experience across appointments, documents, helpdesk, subscriptions, and signing by making pages look cleaner and more predictable for customers.
Original PR description
This PR has two main objectives : ## Sidebar layout During the portal redesign, we decided to make the sidebar width adapts to its content. While this approach helped us to avoid layout issues, it…
This PR has two main objectives : ## Sidebar layout During the portal redesign, we decided to make the sidebar width adapts to its content. While this approach helped us to avoid layout issues, it was sometimes too much content dependant, meaning that when more when two buttons were displayed side by side it would look okay, while having only a single button would place the sidebar at the extreme opposite side of the invoice, making it floating into the layout. This PR reverts this approach by applying a fixed width to the sidebar, and uses some padding utilities to prevent cluttered layouts. **Note:** This PR only includes important fixes that either: (1) make the user experience not as good as it should be ; (2) are needed to ensure that new features/changes that are being made to the Customer Portal this year provide a good visual result. Other PR's will follow to refine the design of the customer portal introduced in Odoo 17. ## Bugs, inconsistencies or forgotten views of the customer portal UI When the portal redesign happened, an overlay of design was applied to the templates, but the templates themselves were not really revamped and/or cleaned. This created a lot of unused utility classes, useless HTML tags, etc. - task-3703251 - follow up of task-3046004
The Bank Reconciliation message link to the General Ledger now carries over the user's selected settings, such as the reporting date. This helps users compare balances using the intended context and avoids confusion from mismatched report views.
Original PR description
When clicking on the "General Ledger" part of the "The current balance in the General Ledger didn't match the balance of your last bank statement, leading to an unexplained difference of [...]" message in Bank Reconciliation, settings such as the date weren't properly transferred. task-3928454
The Request Signature action now appears only on records that support chatter-based tracking. This prevents users from seeing the option in unsuitable places where signature requests could not be properly followed up.
Original PR description
Before this commit: The action of "Request Signature" was shown in weird records accross Odoo. The idea was to allow adding it in records like tasks, documents, but it is being shown in records that do not have the chatter available to track the signature requests. This commit aims to fix the issue by adding a new condition for displaying that action, that is: check if `message_ids` is present on the view fields. since `message_ids` should be available only in chatter. Task: 3861299
This update fixes an internal Planning test setup so it no longer depends on optional demo data. It helps keep automated checks reliable across different database configurations without changing the user-facing Planning experience.
Original PR description
Before this commit, the #55625 altered the planning_tests_tours to change Aaron into Mitchell Admin for the resource assigned to the shift created inside that tour. The problem is `Mitchell Admin` is a demo data and so, the tour will create a new resource when we have no demo data inside our DB. If the changes made by this PR in that tour are reverted then another error is raised due to a timezone mismatch. This commit reverts the changes made by #55625 inside planning_tests_tours and change the timezone of `Aaron` resource created inside the python test.
The EC Sales list now keeps the date and other report settings when opened from the Belgian tax report reminder. This helps users submit reports for the correct period and reduces the risk of filing with mismatched information.
Original PR description
When accessing EC listing through the "Do not forget to submit the EC Sales list report" warning, the tax report's options used not to be passed onto EC listing. This also fixes some Python stylistic warnings. task-3891799
The spreadsheet edition now uses the current search icon reference after an older find-and-replace icon name was removed. This prevents the global filters area from pointing to an outdated icon and helps keep the interface displaying correctly.
Original PR description
Since https://github.com/odoo/odoo/commit/554fe45c5f9c4103a126c080d030adce2e6dc871, FIND_AND_REPLACE does not exist anymore and has been replaced by SEARCH.
A planning test was updated to choose the intended button more reliably. This prevents test interference from the tour recorder and helps keep planning quality checks stable.
Original PR description
Before this commit, the selector for a button was not enough precise and with the tour recorder showing everywhere, the selector was selecting the recorder button instead of the right button. After this commit, the selector is more precise and should only select the right button. task-id: 3927002
Features or functions removed from Odoo
An outdated internal method was removed from the HR contract document integration because its responsibility had already been moved elsewhere. This keeps the module cleaner and reduces maintenance risk without changing day-to-day user workflows.
Original PR description
remove the _unlink_except_contract_signature_tag method from the hr.contract model. The method was moved in this commit: https://github.com/odoo/enterprise/commit/c4b1be7a4af975f0f90490dd31647e3f4cd144da (task-id 3928257) And the method was introduce in this commit: https://github.com/odoo/enterprise/commit/03775ae721c139839dfaf12358e87e02041d3359 (task-id 3695553) task-3928257
Miscellaneous changes
When taking a new car, the write on the controller did not update the employer cost properly in case the applicant or employee took extra holidays, to fix this we write the _get_benefit_values_wishlist_car_total_depreciated_cost with it's intended use Forward-Port-Of: odoo/enterprise#62538
Original PR description
When taking a new car, the write on the controller did not update the employer cost properly in case the applicant or employee took extra holidays, to fix this we write the _get_benefit_values_wishlist_car_total_depreciated_cost with it's intended use Forward-Port-Of: odoo/enterprise#62538
Previously the router did not touch the history state when mounting the webclient if the urls were identical, but now it will instead replace the state. Some asserts have been adapted to reflect this behavior. Community: https://github.com/odoo/odoo/pull/160525 Forward-Port-Of: odoo/enterprise#60741
Original PR description
Previously the router did not touch the history state when mounting the webclient if the urls were identical, but now it will instead replace the state. Some asserts have been adapted to reflect this behavior. Community: https://github.com/odoo/odoo/pull/160525 Forward-Port-Of: odoo/enterprise#60741
The definition on the dashboard was wrong since its creation but the error was only highlighted since https://github.com/odoo/odoo/pull/154370. Task-3911582 Forward-Port-Of: odoo/enterprise#62365
Original PR description
The definition on the dashboard was wrong since its creation but the error was only highlighted since https://github.com/odoo/odoo/pull/154370. Task-3911582 Forward-Port-Of: odoo/enterprise#62365
Order changes are sent to the preparation display before printing the receipt. This slows down the workflow as users have to wait for other requests to finish before the receipt is printed when a preparation display is connected. opw-3756416 Forward-Port-Of: odoo/enterprise#62008 Forward-Port-Of: odoo/enterprise#60441
Original PR description
Order changes are sent to the preparation display before printing the receipt. This slows down the workflow as users have to wait for other requests to finish before the receipt is printed when a preparation display is connected. opw-3756416 Forward-Port-Of: odoo/enterprise#62008 Forward-Port-Of: odoo/enterprise#60441
The record `documents_hr_contract.documents_hr_documents_contracts` has `forcecreate=1` and there is a chain of dependency of these 3 records: 1. `documents_hr_contract.documents_hr_documents_contracts` [--> 2.](https://github.com/odoo/enterprise/blob/17.0/documents_hr_contract/data/documents_tag_data.xml#L12) 2. `documents_hr.documents_hr_documents` [--> 3.](https://github.com/odoo/enterprise/blob/17.0/documents_hr/data/documents_facet_data.xml#L7) 3. `docum
Original PR description
The record `documents_hr_contract.documents_hr_documents_contracts` has `forcecreate=1` and there is a chain of dependency of these 3 records: 1.…
The record `documents_hr_contract.documents_hr_documents_contracts` has `forcecreate=1` and there is a chain of dependency of these 3 records:
1. `documents_hr_contract.documents_hr_documents_contracts` [--> 2.](https://github.com/odoo/enterprise/blob/17.0/documents_hr_contract/data/documents_tag_data.xml#L12)
2. `documents_hr.documents_hr_documents` [--> 3.](https://github.com/odoo/enterprise/blob/17.0/documents_hr/data/documents_facet_data.xml#L7)
3. `documents_hr.documents_hr_folder`
But for the latter 2 records **forcecreate=0**. All of these records are set `noupdate=1`. That is why during upgrade the latter 2 records will be skipped from creation if they are missing in db, but it will try to create the 1st one because of that forcecrete=1. This will cause dependency issue if the db is missing the other 2 records.
For solving the issue we set `forcecreate=1` to the latter 2 records.
**Steps to reproduce:**
1. Install modules documents_hr, documents_hr_contract in version `16.0`
2. Delete the document facet `documents_hr.documents_hr_documents`
3. Delete the document folder `documents_hr.documents_hr_folder`
4. Try to upgrade to `17.0`
You will see similar traceback to this:
```
Traceback (most recent call last):
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/tools/convert.py", line 693, in convert_xml_import
obj.parse(doc.getroot())
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 613, in parse
self._tag_root(de)
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 556, in _tag_root
f(rec)
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 569, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /home/odoo/src/enterprise/17.0/documents_hr_contract/data/documents_tag_data.xml:10, somewhere inside
<record id="document_tag_signature_request" model="documents.tag" forcecreate="1">
<field name="name">Signature Request</field>
<field name="facet_id" ref="documents_hr.documents_hr_documents"/>
<field name="sequence">15</field>
</record>
```
Forward-Port-Of: odoo/enterprise#62464…oiced Before this commit, salespersons could churn a contract that has not been invoiced. It would impact the churn statistics. If the invoice has never been created, a cancelation is more correct. taskid 3925539 Forward-Port-Of: odoo/enterprise#62382
Original PR description
…oiced Before this commit, salespersons could churn a contract that has not been invoiced. It would impact the churn statistics. If the invoice has never been created, a cancelation is more correct. taskid 3925539 Forward-Port-Of: odoo/enterprise#62382
data_merge company dependent fields were always written on res.partner and not their correct model. Forward-Port-Of: odoo/enterprise#61929
Original PR description
data_merge company dependent fields were always written on res.partner and not their correct model. Forward-Port-Of: odoo/enterprise#61929
1. VMT_1 tag should report the currency rate instead of the invoice untaxed amount 2. CDE_2 tag should be limited to a max of 30 characters Related: https://github.com/odoo/odoo/pull/148953 and https://github.com/odoo/enterprise/pull/54086 task-3925896 Forward-Port-Of: odoo/enterprise#62512
Original PR description
1. VMT_1 tag should report the currency rate instead of the invoice untaxed amount 2. CDE_2 tag should be limited to a max of 30 characters Related: https://github.com/odoo/odoo/pull/148953 and https://github.com/odoo/enterprise/pull/54086 task-3925896 Forward-Port-Of: odoo/enterprise#62512
Fix for regressions introduced by https://github.com/odoo/enterprise/pull/58690 Forward-Port-Of: odoo/enterprise#61973 Forward-Port-Of: odoo/enterprise#61025
Original PR description
Fix for regressions introduced by https://github.com/odoo/enterprise/pull/58690 Forward-Port-Of: odoo/enterprise#61973 Forward-Port-Of: odoo/enterprise#61025
Since commit 911886b20ac632a34ab1cfa2c2e22d60d16173ac, any analytic plan that is mandatory for miscellaneous entries is also required for all lines in the bank reconciliation. However, we currently do not allow setting analytic accounts on liquidity lines (the field is not displayed). opw-3905713 Forward-Port-Of: odoo/enterprise#62182
Original PR description
Since commit 911886b20ac632a34ab1cfa2c2e22d60d16173ac, any analytic plan that is mandatory for miscellaneous entries is also required for all lines in the bank reconciliation. However, we currently do not allow setting analytic accounts on liquidity lines (the field is not displayed). opw-3905713 Forward-Port-Of: odoo/enterprise#62182
The ondelete was not in the right model. task-3928257 Forward-Port-Of: odoo/enterprise#62466
Original PR description
The ondelete was not in the right model. task-3928257 Forward-Port-Of: odoo/enterprise#62466
Steps to reproduce: - Create a QC of type operation - Set it on reciepts Bug: you are able to validate reciepts without passing the QC Fix: use the same logic as in "check_quality" opw-3839794 Forward-Port-Of: odoo/enterprise#62498 Forward-Port-Of: odoo/enterprise#62259
Original PR description
Steps to reproduce: - Create a QC of type operation - Set it on reciepts Bug: you are able to validate reciepts without passing the QC Fix: use the same logic as in "check_quality" opw-3839794 Forward-Port-Of: odoo/enterprise#62498 Forward-Port-Of: odoo/enterprise#62259
When zooming in on the gantt view, the gantt header slots could be badly displayed with an observed decalage with the grid cells. We fix that problem by making the gantt header be a grid and putting grid coordinates to some of its children. opw-3850750 Forward-Port-Of: odoo/enterprise#62079 Forward-Port-Of: odoo/enterprise#61849
Original PR description
When zooming in on the gantt view, the gantt header slots could be badly displayed with an observed decalage with the grid cells. We fix that problem by making the gantt header be a grid and putting grid coordinates to some of its children. opw-3850750 Forward-Port-Of: odoo/enterprise#62079 Forward-Port-Of: odoo/enterprise#61849
[REM] account: remove validation on bills ref Remove validation on bills ref and allow users to have multiple bills with same ref Reason: improve user experience with the system as it's a pain for them in a real life senario Task-3869240 odoo-pr: https://github.com/odoo/odoo/pull/161995 Forward-Port-Of: odoo/enterprise#62486 Forward-Port-Of: odoo/enterprise#62395
Original PR description
[REM] account: remove validation on bills ref Remove validation on bills ref and allow users to have multiple bills with same ref Reason: improve user experience with the system as it's a pain for them in a real life senario Task-3869240 odoo-pr: https://github.com/odoo/odoo/pull/161995 Forward-Port-Of: odoo/enterprise#62486 Forward-Port-Of: odoo/enterprise#62395
Invoking `_get_spreadsheet_snapshot` with `bin_size=True` in the context crashes if the spreadsheet has been snaphotted. That's because we are trying to json parse the human readable size version of the field '10.5 ko', which is obviously not a valid json. Since a055dfeb84abc, the computed field `current_revision_uuid` is in the view (which always has `bin_size=True`). And the compute method calls `_get_spreadsheet_snapshot` Task: 3899662 Forward-Port-Of: odoo/enterprise#62176
Original PR description
Invoking `_get_spreadsheet_snapshot` with `bin_size=True` in the context crashes if the spreadsheet has been snaphotted. That's because we are trying to json parse the human readable size version of the field '10.5 ko', which is obviously not a valid json. Since a055dfeb84abc, the computed field `current_revision_uuid` is in the view (which always has `bin_size=True`). And the compute method calls `_get_spreadsheet_snapshot` Task: 3899662 Forward-Port-Of: odoo/enterprise#62176
When producing all the products of a MO, the quality check error is raised before the serial number autocomplete wizard is shown. This should be the opposite. task-id: 3821092 Forward-Port-Of: odoo/enterprise#59382
Original PR description
When producing all the products of a MO, the quality check error is raised before the serial number autocomplete wizard is shown. This should be the opposite. task-id: 3821092 Forward-Port-Of: odoo/enterprise#59382
Sometimes companies might not have a vat number. In this case they are often prevented from exporting a report. They've been using a workaround by enterping '-' or '/' but that prevents from easily setting proper default values elsewhere, for example in l10n_lu_reports. mentioned in opw-3802589 Forward-Port-Of: odoo/enterprise#62410 Forward-Port-Of: odoo/enterprise#62391
Original PR description
Sometimes companies might not have a vat number. In this case they are often prevented from exporting a report. They've been using a workaround by enterping '-' or '/' but that prevents from easily setting proper default values elsewhere, for example in l10n_lu_reports. mentioned in opw-3802589 Forward-Port-Of: odoo/enterprise#62410 Forward-Port-Of: odoo/enterprise#62391
50 changes
New functionality added to Odoo
Odoo now includes a complete localization package for Bangladesh, enabling businesses operating in Bangladesh to use the platform with locally-configured accounting features. This package includes pre-configured accounts, journals, taxes, tax groups, tax reports, and tax grids tailored to Bangladesh's regulatory requirements, allowing companies to set up their financial systems more quickly and accurately.
Original PR description
l10n_bd: Add bangaldesh localization pack Accounts Journals Taxes Default tax in settings Tax Groups Fiscal Positions: Not required Tax report Tax grids Reason: Include a new localization pack in odoo Task-3693258 Task-3842115 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A new module has been added that allows users in India to generate e-waybills directly from stock transfers without needing to create accounting entries. This streamlines the shipping documentation process by integrating e-waybill functionality into the warehouse management system, making it faster and simpler for logistics teams to comply with Indian tax requirements.
Original PR description
Add new module with functionality of `l10n_in_edi_ewaybill` on `stock` This module enables user to create ewaybill from stock picking without creating an account move task-3376530 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now supports Zimbabwe's new ZiG currency, which was introduced on April 9th to address the country's high inflation. The system maintains the previous ZWL currency record while adding the new ZiG currency, ensuring businesses can accurately process transactions in Zimbabwe with the updated currency.
Original PR description
Since 9th April, there is a new currency in Zimbabwe, ZiG, created to tackle high inflation. The commit Adds the new ZiG currency, keeping the old ZWL currency record. task-3899063 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164137
Enhancements to existing features
This update prevents sales teams from marking subscription contracts as "churned" if they have never been invoiced. Instead, uninvoiced contracts will be properly canceled rather than counted as churned. This ensures churn statistics accurately reflect only contracts that were active and invoiced, improving the reliability of business metrics.
Original PR description
…oiced Before this commit, salespersons could churn a contract that has not been invoiced. It would impact the churn statistics. If the invoice has never been created, a cancelation is more correct. taskid 3925539
Bank Indonesia has been added as a new currency rate provider option in Odoo. This enhancement allows businesses operating in Indonesia to access real-time exchange rates directly from Bank Indonesia, better aligning the system with local market needs and regulatory requirements.
Original PR description
Add Bank Indonesia as a provider or currency rate in order to align with the local market needs. Task id # 3217982 Forward-Port-Of: odoo/enterprise#62167 Forward-Port-Of: odoo/enterprise#61008
Avalara tax calculation fields are now automatically hidden for countries outside the United States and Canada, where the service is not applicable. This improves the user experience by reducing clutter and confusion for international users who don't need these fields.
Original PR description
Avalara fields should not be shown to countries that are neither US or Canada. This commit handles this. task-3477234
This update improves the module import functionality in Odoo's base system. The changes enhance how modules are imported and managed, making the system more reliable and efficient for administrators who need to install or update modules.
This update makes the "Flexible Pricelist" setting visible and available during Kiosk configuration. Previously, this important pricing option was hidden from users setting up self-order kiosks, limiting their ability to customize pricing strategies for their kiosk sales.
Original PR description
Before this commit: =========================== The "Flexible Pricelist" setting is hidden during Kiosk configuration. After this commit: =========================== The "Flexible Pricelist" setting is visible during Kiosk configuration. task-3693379
This update significantly speeds up the product variant creation process when dealing with many product options and exclusion rules. By optimizing how the system checks which product combinations are valid, operations that previously took over 15 minutes now complete in just 12 seconds, dramatically improving user experience when managing complex products with many variants.
Original PR description
When there are a relatively high number of exclusions + a lot of combinations for a given product_template, `create_variant_ids` can become slow. The main bottlneck is the call to…
When there are a relatively high number of exclusions + a lot of combinations for a given product_template, `create_variant_ids` can become slow. The main bottlneck is the call to `_is_combination_possible_by_config`. More specifically, calling `attribute_lines.product_template_value_ids` and `self._get_own_attribute_exclusions` for each combination is pretty slow. To speed that up, this commit introduces a new method, `_filter_combinations_impossible_by_config`. This method accepts a sequence of combinations and yield those that are valid w.r.t. the exclusions. Because values that only depends on self are computed once before looping through the combinations, this lead to a significant speedup. This method is a generator to avoid MemoryErrors, be able to raise a UserError after "creating" 1000 variants and be consistent with choices made in `_create_variant_ids`. https://github.com/odoo/odoo/blob/0042b9d3eece219d4e89fe9c6ecb9971a1f3bf12/addons/product/models/product_template.py#L710 #### speedup Customer saas-16.4 database with 378 templates, 3832 products, 44 product.attributes, 186 product.attribute.values, 79 product.template.attribute.lines, 484 product.template.attribute.values, 374 product.template.attribute.exclusions. No dynamic attributes. Timing to write on product.template, adding a new attribute value on a ProductTemplate Form increasing the number of combinations. | Combinations | Before PR | After PR | |:------------:|:----------------:|:--------:| | 4 | 219ms | 218ms | | 55 | 785ms | 440ms | | 216 | 1.36s | 592ms | | 1 944 | 28s | 809ms | | 33 048 | 5min30s | 3.78s | | 231 336 | +15min (timeout) | 12s | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162239
The livechat application now loads significantly faster by removing unnecessary database checks. The initial loading time has been reduced from 1.88 seconds to 0.25 seconds on large databases, improving the user experience when opening the livechat interface. This optimization is especially beneficial for companies with large message databases.
Original PR description
## Description Since b2eaf32ba92e537c7eefba6489533613be1b8c91, channels that have no message aren't created anymore, so the assertion that if we have a livechat existing it has at least 1 message…
## Description
Since b2eaf32ba92e537c7eefba6489533613be1b8c91, channels that have no message aren't created anymore, so the assertion that if we have a livechat existing it has at least 1 message holds true. Therefor the leaf `('has_message', '=', True)` in many of the livechat related domains is not necessary. In a large database with millions of records on `mail_message`, loading the index on `res_id+model_id` from disk, even for an `Index Only Scan` can be really slow.
## Benchmark
Example for runtime on a staging database, with over 256M mail_messages, 600k discuss_channels, warm cache. Cold cache is around 10x slower in both cases. The bottleneck for loading the default Livechat view: `_compute_nbr_channel`
| | Before | After |
|---------|----------|----------|
| Timings | 1.88 sec | 0.25 sec |
## Reference
opw-3896457
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#165554
Forward-Port-Of: odoo/odoo#164752The spreadsheet feature has been updated to the latest version with performance improvements. These updates optimize how the spreadsheet processes and handles data, making it faster and more efficient for users working with spreadsheets in Odoo.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/1f9074998 [REL] 17.0.22 Task: 0 https://github.com/odoo/o-spreadsheet/commit/0752f9c15 [PERF] tokenizer: avoid useless array map Task: 3920705 https://github.com/odoo/o-spreadsheet/commit/dceb0c47a [PERF] tokenizer: avoid regexp match Task: 3922347
This update automatically activates Tax Deducted at Source (TDS) and Tax Collected at Source (TCS) taxes in the Indian localization module. These are important tax mechanisms in India, and enabling them by default ensures businesses have immediate access to these required tax features without manual configuration.
Original PR description
This commit sets TDS (Tax Deducted at Source) and TCS (Tax Collected at Source) taxes to be active by default. task-3745995
The issue reporting templates on GitHub have been enhanced to provide a better user experience for reporting bugs and issues. This includes improved template structure and the addition of redirect links to help users navigate more efficiently when submitting issues to the Odoo project.
When an IoT box encounters a Python version incompatibility with Odoo, users previously saw a blank 502 error page. This improvement adds a custom error page that displays helpful information to users when this issue occurs, making it easier to diagnose and resolve the problem.
Original PR description
[IMP] point_of_sale: adding a custom page on iot box's nginx server to catch 502 errors Current behavior: When the IoT box's python version is not compatible with the Odoo's one, Odoo server crash and let nginx generate a 502 error with no information for the user After this commit: When the error is triggered, a custom page will be shown to the user `502.html` is the page who will be displayed to the user `default` is the config of nginx, which is responsible to link the html page with error triggered opw-3853501 Forward-Port-Of: odoo/odoo#163137
Resolved issues and error corrections
This fix corrects a bug in the data merge feature where company-dependent fields were being incorrectly written to the partner model instead of their proper destination models. This ensures that merged data is stored in the right place, improving data integrity and preventing potential data loss or misplacement during merge operations.
Original PR description
data_merge company dependent fields were always written on res.partner and not their correct model.
This update corrects a configuration error in the Subscriptions app where the payment token field had an incorrect setting that caused errors when editing. The fix ensures users can properly manage payment tokens through the Subscriptions interface without encountering technical errors.
Original PR description
Before this commit:
The sale_subscription_order_form XML view had a key-value pair of {'no_create': 'True'} on the field for a payment_token. The proper value should be True without quotation marks, otherwise a invalid prop error is thrown when you attempt to edit the payment_token field via studio in the Subscriptions app.
opw-3891923This fix allows users to assign analytic accounts to liquidity lines during bank reconciliation. Previously, when analytic accounts were mandatory for miscellaneous entries, the system required them for all reconciliation lines but didn't provide a way to set them on liquidity lines. This update makes the analytic account field visible and editable on these lines, resolving the conflict.
Original PR description
Since commit 911886b20ac632a34ab1cfa2c2e22d60d16173ac, any analytic plan that is mandatory for miscellaneous entries is also required for all lines in the bank reconciliation. However, we currently do not allow setting analytic accounts on liquidity lines (the field is not displayed). opw-3905713
Fixed an issue where preparation displays configured to show orders from all Point of Sale locations were not automatically refreshing when new orders arrived. Users previously had to manually refresh the display to see new orders. This fix ensures that preparation displays set to accept orders from all PoS locations now automatically update like those linked to specific locations.
Original PR description
## Analysis Since this commit https://github.com/odoo/enterprise/commit/16ba33cd77413948308dd09326021a14f52f51f6, a domain is used to filter which preparation displays should be refreshed when an order arrives. The current domain only filters the preparation displays that are linked to one or more PoS (`pos_config_ids`). If no specific PoS are linked to the preparation display, the domain will filter out the preparation display and the user will have to **manually refresh** the preparation display to see a new order. ## Solution The domain should also check if a preparation display is linked to all PoS. ## References opw-3756416
This fix corrects how bicycle kilometers are calculated in the Belgian 281.10 payroll report. Previously, only one-way distances were being counted; now the system correctly includes round-trip distances. This ensures accurate mileage reporting for employee bicycle commute benefits.
Original PR description
Kilometers are only computed using the aller-simple distance instead of aller retour
This update fixes a technical issue that occurred when users tried to delete a document from the history list after restoring it. The problem was caused by multiple simultaneous operations being triggered by rapid clicks, which could cause the system to crash. The fix ensures that the restore button only processes one action at a time, preventing errors and providing a smoother user experience.
Original PR description
Steps to Reproduce: 1. Select a doc. 2. Replace it with another doc. 3. You can see the history of the inspector. 4. From the history tab, double-click on the restore button. 5. Delete the previewed doc from the history list. 6. Throws a Traceback. Issue: triggers asynchronous operation on "_onHistoryItemRestore", when clicked, rapid consecutive clicks could result in multiple asynchronous operations being initiated simultaneously, leading to race conditions or unexpected behavior. Fix: No traceback will occur, registered only once on a button. Task:3843157 Forward-Port-Of: odoo/enterprise#62368 Forward-Port-Of: odoo/enterprise#60227
WEBP format images were displaying with distorted previews in the document inspector. This fix adds proper CSS-based image resizing for WEBP images to match the handling of other image formats, ensuring all image types display correctly without breaking the layout alignment.
Original PR description
Before this commit: - Select an image (WEBP format) along with other images. - The preview in the inspector is distorted. Reason: - When introducing the support for WEBP images in the following PR -- https://github.com/odoo/odoo/pull/85494, the upload of documents was not taken into account. - The current image processing ensures that the supported image formats are resized at the backend before being sent to the frontend. Fix: - The exact values of the `max-width` and `max-height` draw their inspiration from the following image resizing values in the `documents_inspector.xml` ref- https://github.com/odoo/enterprise/blob/saas-16.4/documents/static/src/views/inspector/documents_inspector.xml#L39 After this commit: - The WEBP image, along with the other image formats can now be previewed without breaking any alignment in the Inspector. Task-3749547 Forward-Port-Of: odoo/enterprise#59339
This update removes unsupported field types (one-to-many, many-to-many, and binary fields) from the sorting dropdown menu in the Studio view editor for map and list views. Previously, users could incorrectly select these field types for sorting, which is not a supported operation. This fix ensures the sorting options only show compatible field types, improving the user experience and preventing configuration errors.
Original PR description
Before this commit, users were able to see one2many, many2many, and binary fields in the sortby dropdown menu in the map and list views of the studio. Steps to reproduce: - Project > Tasks > All Tasks. - Click on toggle studio and navigate to View tab in the sidebar. - In the sortby dropdown menu, all fields, including x2many and binary, were visible. Observed behavior: Users were able to select one2many, many2many, and binary fields for sorting via the studio sidebar in the map and list views. Expected behavior: One should not be able to sort by one2many, many2many, and binary fields in the map and list views via the studio. After this commit, users will not be able to see one2many, many2many, and binary fields in the sortby dropdown menu in the map and list views of the studio. Task-3790886 Forward-Port-Of: odoo/enterprise#59733
Fixed an issue where creating a new planning event from the calendar or gantt views would not preserve the time slot you selected. When users clicked to create an event at a specific time (like 5:30 AM to 7 PM), the form would incorrectly adjust the dates to match company work hours instead. This fix ensures the form displays exactly what you selected, improving the user experience when scheduling.
Original PR description
### Steps to reproduce the issue: 1. Go to _Planning > My Planning_ and switch to the Weekly Calendar view 2. Plan a new Event from 5.30 AM to 7 PM in the Calendar 3. When the creation Form opens,…
### Steps to reproduce the issue: 1. Go to _Planning > My Planning_ and switch to the Weekly Calendar view 2. Plan a new Event from 5.30 AM to 7 PM in the Calendar 3. When the creation Form opens, the Date does not reflect the slot you were creating - Also happens in Gantt view: 1. Make sure the company's schedule starts or ends between two hours (e.g.: 8.15 am) 2. Click on the '+' button of the corresponding cell in the Daily Gantt view 3. The Date will be cut to the start or end of the schedule. ### Explanation: Before opening `planning.planning_view_form`, the client calls for `onchange` which will then call for `default_get` that will align `start_datetime` and `end_datetime` with the work hours of `res.company.resource_calendar_id` in every situation where no resource is specified. https://github.com/odoo/enterprise/blob/ff4e39a09399f46790c0ad45bc9f9af4e4cd44d1/planning/models/planning.py#L625-L635 ### Suggested fix: `start_datetime` and `end_datetime` should not change only in Weekly and Daily Calendar views and in Daily Gantt View. The key should not remain in the Context of the Action to avoid unintended behaviours, adding it in the Context of the Event instead. opw-3829635 Forward-Port-Of: odoo/enterprise#62417 Forward-Port-Of: odoo/enterprise#61152
This update removes unnecessary supplier data from Peru's electronic delivery guide documents to comply with the latest government validation rules. The removed data was not required for the transport types Odoo supports, so eliminating it reduces file complexity and prevents potential validation errors.
Original PR description
The SellerSupplierParty data was initially included for transport reason '13', but recent validations show it is only necessary for transport reasons '02' and '07', which we do not support. Removed these fields to prevent data redundancy and potential errors. Before: - Included SellerSupplierParty data for transport reason '13'. After: - Removed SellerSupplierParty data from DespatchAdvice template. This change ensures compliance with the latest validation rules and reduces unnecessary XML data. Legal Reference:  https://cpe.sunat.gob.pe/sites/default/files/inline-files/ValidacionesGREv20221020_publicacion.xlsx Latam Task: https://latam-localizations.odoo.com/web#id=1203&menu_id=142&cids=1&action=188&model=project.task&view_type=form
Companies can now export financial reports even if they don't have a VAT number assigned. Previously, users had to enter workaround values like '-' or '/' to bypass validation, which prevented proper default settings. This fix removes that restriction and improves the reporting experience for companies without VAT numbers.
Original PR description
Sometimes companies might not have a vat number. In this case they are often prevented from exporting a report. They've been using a workaround by enterping '-' or '/' but that prevents from easily setting proper default values elsewhere, for example in l10n_lu_reports. mentioned in opw-3802589 Forward-Port-Of: odoo/enterprise#62410 Forward-Port-Of: odoo/enterprise#62391
This pull request addresses a specific issue (OPW 3891923) in the Odoo 17.0 enterprise version. The fix resolves a bug that was impacting system functionality. This update ensures improved stability and reliability for users.
Fixed an issue where the selected date period from the Tax Report was not being applied when accessing the EC Sales List report through the warning notification. Users will now see the correct reporting period when navigating from the Tax Report to the EC Sales List, ensuring accurate compliance reporting for intra-community sales.
Original PR description
When accessing EC listing through the "Do not forget to submit the EC Sales list report" warning, the tax report's options used not to be passed onto EC listing. Steps to reproduce original issue: - Install `l10n_be_reports` - Create an invoice for a customer with 'Intra-Community' as a 'Fiscal Position' - Confirm it - Go to: Accounting > Reporting > Statement Reports > Tax Report - Select a period that'd include the invoice - Click on the "Do not forget to submit the EC Sales list report" warning - The period selected will be the wrong one task-3891799
This update fixes two technical issues in Colombian electronic invoice XML generation. The VMT_1 tag now correctly reports the currency exchange rate instead of the invoice amount, and the CDE_2 tag is limited to 30 characters maximum. These corrections ensure invoices comply with Colombian tax authority requirements for electronic invoice submission.
Original PR description
1. VMT_1 tag should report the currency rate instead of the invoice untaxed amount 2. CDE_2 tag should be limited to a max of 30 characters Related: https://github.com/odoo/odoo/pull/148953 and https://github.com/odoo/enterprise/pull/54086 task-3925896 Forward-Port-Of: odoo/enterprise#62512
This update fixes an issue where tab titles in the bank reconciliation feature were not being translated into different languages. The fix reorganizes how these titles are defined in the code so they can now be properly translated and displayed in users' preferred languages across the accounting modules.
Original PR description
* account_accountant_batch_payment, sale_account_accountant Currently the tab titles of the bank reconciliation widget are not translatable. This is due to the fact that attributes of OWL components (including `t-set-slot` elements) are not considered translatable. The solution is to extract these translatable terms in a variable outside of the `t-set-slot`'s parent component so it would become translatable and available inside the right slots. The issue was already partially fixed in [1] in 17.0. [1]: https://github.com/odoo/enterprise/commit/161163928bc4a18700be1b69b5276cb3b8490e45 opw-3881861 Forward-Port-Of: odoo/enterprise#62643
This update fixes a technical error that prevented users from editing the payment token field in the Subscriptions app. The issue was caused by an incorrect configuration value that has now been corrected, allowing users to properly manage payment tokens through the app's customization interface.
Original PR description
Before this commit:
The sale_subscription_order_form XML view had a key-value pair of {'no_create': 'True'} on the field for a payment_token. The proper value should be True without quotation marks, otherwise a invalid prop error is thrown when you attempt to edit the payment_token field via studio in the Subscriptions app.
opw-3891923This fix resolves an error that occurred when editing the payment token field in the Subscriptions app through Studio. The issue was caused by an incorrect configuration value that used quoted text instead of a proper boolean. This correction allows users to edit payment token settings without encountering errors.
Original PR description
Before this commit:
The sale_subscription_order_form XML view had a key-value pair of {'no_create': 'True'} on the field for a payment_token. The proper value should be True without quotation marks, otherwise a invalid prop error is thrown when you attempt to edit the payment_token field via studio in the Subscriptions app.
opw-3891923This update improves how shipping costs are handled for Starshipit deliveries. Previously, the system would process shipping calculations immediately, but Starshipit sometimes returns cost information later. The fix separates the processing logic to ensure only shipments with confirmed shipping costs are processed, preventing incomplete or incorrect cost calculations.
Original PR description
Explanation: send_to_shipper will process the carrier shipping calculation immediately. However for Starshipit, sometimes it will return the shipping cost later. Therefore we need to separate the function to make sure only the data with the carrier shipping cost result will be processed task-3887386 ref odoo/enterprise#61286
A syntax error in the CRM team views configuration file has been corrected by removing an extra closing curly brace. This fix prevents potential errors when the CRM module loads and ensures the context field is properly formatted.
Original PR description
I found in the CRM view crm_team_views.xml on line 82 an extra closing curly brace in the value of the context. Each opening tag/brace must have only one closing tag/brace. In our case it was a curly brace which must be removed to avoid syntax errors. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes critical issues in Hungarian electronic invoice processing that were causing system crashes and blocking email delivery. The changes prevent crashes when invoice names aren't set, allow demo mode usage without credentials, enable proper email delivery for invoices in certain states, and ensure modification invoices use the correct submission method to allow future corrections.
Original PR description
1. Avoid crashing if move.name is not set
In the tests
- `:TestAccountMoveInInvoiceOnchanges.test_fiduciary_mode_date_suggestion`
- `:TestSequenceMixin.test_sequence_empty_editable_with_quick_edit_mode`
the compute method `_compute_l10n_hu_edi_attachment_filename` was called before the invoice name was set.
Because of this, calling move.name.replace('/', '_') was raising an AttributeError.
2. Allow user to not put credentials when they are using demo mode.
3. sent (waiting for response) and confirmed_warning states should not raise a UserError and should not block an e-mail from being sent to the customer.
4. always send modification invoices using 'MODIFY' (never 'STORNO') since 'STORNO' prevents further modifications from being issued to the invoice, but in Odoo we can't predict whether the user will want to issue further corrections to an invoice in the future.
Fixes runbot errors 64755 and 64756.This fix resolves an issue where selecting multiple resupply warehouses in the warehouse form was not being saved correctly. When users selected warehouse A as a resupply source and then added warehouse B, the system was not properly tracking both selections, causing a mismatch between what was shown in the form and the actual active resupply routes. The fix updates how the warehouse system processes these selections to match the updated behavior of the form widget.
Original PR description
Steps to reproduce: - Create 3 warehouses A, B and C - Open the form of warehouse C - Select warehouse A as resupply warehouse and save. - Select warehouse B as resupply warehouse as well and save. Issue: The active resupply routes don't match the one selected in the warehouse form. Following #140644, the default behavior of the `many2many_checkboxes` widget changed. Instead of returning a SET command with all the currently linked models, it now returns a list of LINK/UNLINK commands containing the changes. The warehouse `write()` was still processing them as a SET command, leading to inconsistencies between the active routes and the form. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix resolves a bug in spreadsheet accounting functions where date values were being incorrectly converted to strings, causing a mismatch between the cell's declared type and actual value. This prevented users from selecting cells with accounting formulas without encountering errors. The fix ensures cell data types remain consistent throughout calculations.
Original PR description
Steps to reproduce:
- create a new spreadsheet
- type in cell A1 "01/2024"
- in A2, type =ODOO.BALANCE("1", A1)
- select A1 => boom
Since 4939846774 `dateRange` is mutated in place.
But `dateRange` is actually the evaluated cell object. It has originally the `type: "number"` and a corresponding value whose type is a number.
But those accounting functions replaces the value with a string. From that point, there's a mismatch between `cell.type` and `cell.value`. The type says it's a number but it's actually not.
When selecting the cell and the bottom bar statistics are recomputed, because it expects numbers, not strings.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThe word "Cash" was not being translated in the Point of Sale Sales Details report, causing it to appear in English regardless of the user's language setting. This fix adds proper translation support so the payment method displays correctly in all supported languages.
Original PR description
Problem: The word "Cash" is not translated and appears in the sales details Steps to reproduce: - Install "Point of Sale" app - Open a POS session and make some sales WHITHOUT paying in Cash - Close the session and change the language - Go to "Reporting" > "Sales Details" and print the report - In the section "Payments" you should see a row with "Cash" payments Cause: The word is not added to the translations opw-3684937 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164173
Emails sent from the chatter message composer were not displaying formatting correctly when received. This fix ensures that styling and formatting (like links) are properly converted and preserved when sending messages through the chatter interface. Users will now see their formatted emails display correctly in recipients' inboxes.
Original PR description
Commit that introduced the issue: [1] Issue: ====== The email sent from chatter message isn't correctly formatted. Steps to reproduce the issue: ============================= - Go to chatter of any…
Commit that introduced the issue: [1] Issue: ====== The email sent from chatter message isn't correctly formatted. Steps to reproduce the issue: ============================= - Go to chatter of any form view - Open the mail compose modal - Add a primary link the in the email body - Send it - The email isn't formatted in the received email. Origin of the issue: ==================== The flow goes as follow, we first change the field and then when clicking send, we first update the value of the editor by `onWysiwygBlur` , then before the send is done, the field is saved which will trigger the event `NEED_LOCAL_CHANGES` which will call commitChanges, but since we already updated the value and we don't have urgent, nothing will happend and the function `toInline` will never be called. Solution: ========= To not break the old commit behavior and make it reset with disard, we add another flag `shouldInline` so we can force `commitChanges` and calculating inline style when saving. [1]: https://github.com/odoo/odoo/commit/35731674561efa391852fd7e42a19c732c29886f opw-3885368 Forward-Port-Of: odoo/odoo#165269 Forward-Port-Of: odoo/odoo#163323
This fix corrects how the email attachment interface displays action buttons. Previously, the download button was being hidden when it should have been visible. The fix ensures that when users can delete attachments, the interface properly shows both the download and delete buttons together instead of hiding the download option.
Original PR description
Since showDelete is not the same that checking that an attachement isDeletable, we need to add the class that diplays multiple buttons if we show the delete button, otherwise the Download button will be hidden. So we now use the correct value to decide if display multiple button. 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 fixes a bug in the accounting module's certificate handling where a required subject attribute was missing. The fix ensures that certificate data is properly loaded and available for Ecuador EDI (Electronic Data Interchange) operations, preventing errors when processing electronic invoices.
Original PR description
Problem --------- In l10n_ec_edi_certificate.py, we attempt to get the subject attribute which does not exist in the namespace. Solution --------- Add the attribute to the namespace returned. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix corrects an issue where payment terms were incorrectly displayed on refunded invoices in the preview page. When an invoice is fully refunded and marked as "reversed," the due date should no longer appear in the preview, as it's no longer relevant. This ensures customers see accurate information when viewing refunded invoices.
Original PR description
Payment term on reversed invoices should not be displayed in the preview page. Steps: - Create and confirm an invoice - Open the preview - The invoice due date is displayed on the top left of the page just above the "Download" and "Print" buttons - Go back to the invoice and make a full refund - The payment state of the invoice is "reversed" - Go back to the invoice preview -> The invoice due date is still displayed, it should not be opw-3894596 Forward-Port-Of: odoo/odoo#164897
This update fixes an issue where Spanish invoices with discounts were being rejected by the Spanish government's validation platform. The system was missing a required "DiscountReason" field in the XML format, causing validation errors. We've added a default value for this field to ensure invoices comply with Spanish government requirements.
Original PR description
Steps to repoduce: - Create an invoice - Add a discount - Post it - Send and print (to get the xml) - Upload the xml on https://face.gob.es/en/facturas/validar-visualizar-facturas Issue: You will get…
Steps to repoduce: - Create an invoice - Add a discount - Post it - Send and print (to get the xml) - Upload the xml on https://face.gob.es/en/facturas/validar-visualizar-facturas Issue: You will get an error from the platform "Línea 111: Element 'DiscountRate': This element is not expected. Expected is ( DiscountReason )." Cause: The default is an empty string and will not be generated. Investigation indicates a delay in ticket arrivals (code from 2023). Presumably, the Spanish Gobierno may have restricted its XML validation. Solution: Add a default value (the same for Charges just in case) We don't add a `t-if` since the value is always empty and the requirements of the Spanish governement only requires a string [0-2500 characters] `3.1.5.2.1.1. DiscountReason Reason why the discount or rebate is made. Y[1..1] TextMax2500Type string positions: 0-2500` sources: - https://www.facturae.gob.es/formato/Versiones%20anteriores/B)%20Versi%C3%B3n%203.0/Esquema_ingles_V3_0.pdf - https://www.facturae.gob.es/formato/Paginas/version-3-2.aspx - https://www.facturae.gob.es/formato/Documents/EnglishFacturae3_0.pdf opw-3911313 Forward-Port-Of: odoo/odoo#165258
This update fixes an issue where sample Vimeo videos were not displaying correctly in the web editor due to privacy settings. New working video samples have been added so users can properly preview what Vimeo videos will look like when selected as an option.
Original PR description
task-3927949 closes #165322 ------------------ This PR fixes an issue about the sample videos for Vimeo not being displayed anymore due to their private parameter. This PR introduces new samples that will be displayed correctly, allowing the user to really see what he can expect by selecting this option. | 15.0 | 15.0-fix-vimeo-sample-videos-chgo | |--------|--------| |  |  | Forward-Port-Of: odoo/odoo#165417
Fixed an issue where mail groups with "Selected Group of Users" privacy setting were incorrectly rejecting emails from authorized users who weren't members of the group. Now the system properly verifies that senders belong to the specified access group, allowing legitimate emails to be received and posted to the mail group.
Original PR description
### [[FIX] mail_group: allow selected group of users while not members](https://github.com/odoo/odoo/pull/157590/commits/a25190e30ad732ab5057e85fcd4f34e3bcf3530b) This commit addresses the behavior…
### [[FIX] mail_group: allow selected group of users while not members](https://github.com/odoo/odoo/pull/157590/commits/a25190e30ad732ab5057e85fcd4f34e3bcf3530b) This commit addresses the behavior of mail groups set to privacy mode "Selected group of users". Prior to this fix, incoming emails were being checked against the list of members within the mail group, even when the privacy setting allowed for a specified user group, not solely members. Consequently, legitimate emails from authorized users were being rejected due to the sender not being a member of the mail group. With this commit, the sender's membership in the access group is verified. ### [Reproduce] - Install -i website_mail_group - Set the alias to "odoo.com" in General Settings - Create or Modify Mail Group named "My Company News", with the following settings: - Email Alias: newsletter@odoo.com - Privacy: "Selected Group of Users" - Select internal user group, add there a user with email pian@odoo.com - Send or Inject the email from the eml file below - BUG: email not present in the mail group Email eml file: ```eml From: "pian@odoo.com" <pian@odoo.com> Subject: members only To: "newsletter@odoo.com" <newsletter@odoo.com> Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8"><p= >Content for Internal Users</p> ``` opw-3725128 Forward-Port-Of: odoo/odoo#164744 Forward-Port-Of: odoo/odoo#157590
This update adds the url_unquote function to the system's URL handling utilities for version 17.0 and later. The function was not previously available in the compatibility layer, which could cause issues when the system needs to decode URL-encoded text. This fix ensures the function is properly available across all supported versions.
Original PR description
url_unquote was not used before 17.0 and not available in the noble monkeypatch, adding it for 17.0 -> master See https://runbot.odoo.com/runbot/build/62587153
This fix resolves an issue where the "Amounts to Settle" field was not displaying correctly for purchase invoices. The problem occurred because the system was not properly handling negative residual amounts in purchase transactions. Users will now see accurate settlement amounts for all invoice types.
Original PR description
**Description of the issue/feature this PR addresses:** Before this commit Amounts to Settle is not show. When it is a purchase amount_residual is lower than zero. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A typo in the message template has been corrected where the messageSearch property was missing its proper reference. This fix ensures the Message component correctly recognizes and uses the messageSearch functionality, improving the reliability of message search features in the mail module.
Original PR description
This commit fixes a typo in message template. `messageSearch` is a prop of Message component.
Code cleanup and technical improvements
This update moves the Document State component from the Mexico localization module to the core accounting module, making it available for use across other features. A placeholder component remains in the Mexico module to maintain compatibility with existing customizations. This improves code organization and reduces duplication across the system.
Original PR description
Moving the DocumentState component from l10n_mx_edi to account. As `l10n_mx_edi_document_state` is still referenced in various views and we cannot change them in stable, we keep an empty shell in l10n_mx_edi inheriting the new generic component in account. In master, we remove `l10n_mx_edi_document_state`. task-3141517,3595436 see https://github.com/odoo/odoo/pull/165549
The document_state component has been moved from localization-specific modules to the core Account module. This change allows multiple localization modules (Colombia, Mexico, Romania, and others) to reuse the same component instead of maintaining duplicate code, improving consistency and reducing maintenance overhead.
Original PR description
This allows using the component from l10n_co_edi, l10n_mx_edi, l10n_ro_edi and other localizations. task-3141517,3595436 see https://github.com/odoo/enterprise/pull/62514
Documentation and clarification updates
A contributor has signed the Odoo Contributor License Agreement (CLA), which is a legal requirement for all code contributions. This allows their contributions to be accepted and merged into the Odoo project. No functional changes to the product are included in this update.
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