Monday, January 6, 2025
43 changes · 18.0
Resolved issues and error corrections
Payroll payment reports no longer reject employees with valid Oman IBAN bank accounts. This prevents an incorrect validation error and lets payroll teams generate payment reports for Oman employees normally.
Original PR description
Steps to reproduce: - Create an employe with an oman bank account number - Create a payslip for this employe - Create a payment report Issue: when trying to create a payment report in the payroll app for an employee with an oman bank account number, when creating the payment report an error :"Invalid IBAN for the following employees: .." will raise. Fix: This issue can be fixed by adding the 'om' in the variable _map_iban_template. This ensure that the mapping will be done correctly and the error will not be raised anymore. opw-4312502 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects a typo in the state name for Somalia, changing it from “Somalia” to “Somali.” It improves the accuracy of country/state reference data shown to users in Odoo.
Original PR description
Typo in state name (Somalia -> Somali). https://en.wikipedia.org/wiki/Somali_Region task-4453644 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The multiple time-off request wizard now only shows time-off types that do not require an allocation, matching behavior from earlier versions. This prevents users from selecting time-off categories that are not valid for bulk requests, reducing mistakes and confusion.
Original PR description
In previous versions, when dealing with multiple time-off requests, only time-off types that do not require allocations were listed for selection. This behavior has been restored by restricting the `holiday_status_id` field to show only non-allocation time-off types in the multi-request wizard. opw-4370090 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where inherited views without XML content could fail validation even though that content is optional. It helps prevent unnecessary errors when saving or processing valid view configurations.
Original PR description
Since the arch is not mandatory and the `_combine` method would [assume it is a data node](https://github.com/odoo/odoo/pull/182766), the `_check_xml` for child views should allow an empty arch in the same way. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures project task tour tests wait until description changes are fully saved before moving on. It helps prevent false test failures caused by automated steps running too quickly, improving confidence in project-related quality checks.
Original PR description
When you chain several uses of changeDescriptionContentAndSave() in a tour, you don't necessarily wait for the editor to be actually saved before continuing. So, it always works for the first use but not for the following ones if the tour engine goes too "fast". So this fix add a step in which we make sure that the form is actually saved before continuing. 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 change temporarily skips an unreliable automated test related to opening the chatter attachment popout across multiple records. It helps keep validation results stable while the underlying race condition is investigated, with no direct change for end users.
Original PR description
Skip because test has race conditions, until we have time to properly fix it. runbot-109795
Portal users will no longer see a trash icon on message attachments when they do not have permission to delete them. This prevents confusion by only showing actions that the current user can actually perform.
Original PR description
Portal users don't have access to delete attachments created by others. In this case, the trash icon shouldn't be displayed. This PR removes this icon from the attachment of a message when the message is not editable by the current user.
This fix makes the Project app's guided tour wait for the newly created subtask before selecting it. It prevents the tour from clicking the wrong item and closing the menu unexpectedly, improving reliability for testing and onboarding flows.
Original PR description
In this commit, we fix the project tour. In the kanban view, we click on the first subtask_list_row but it is not yet (still) the newer subtask. We can therefore click on the first element even though it is not yet created. The DOM re-renders ... and the dropdown menu disappears. By specifying (:contains()) that we want to click on the newer subtask, we wait for it to be created, for it to be rendered and then we click on it. 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 fix makes Ctrl+click work properly on links that have styling applied in the HTML editor. Users can now open the intended link even when clicking on styled text or elements inside it, improving editing convenience and reducing confusion.
Original PR description
Description of the issue this PR addresses: Current behavior before PR: Ctrl+clicking on a styled link is ineffective since the target is the styled element. Desired behavior after PR is merged: Ensure the target is the closest anchor tag. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The tooltip on the cog menu icon has been removed because it could appear over the drop-down menu. This makes the menu easier to use, especially on smaller screens where space is limited.
Original PR description
Before this commit, the tootip was above the drop-down menu. This was particularly annoying for small screens. Task-ID: 4377708 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
Dutch companies can now update the VAT rounding profit and loss accounts in accounting settings. This fixes fields that were incorrectly locked, allowing businesses to align VAT rounding postings with their preferred accounting setup.
Original PR description
Steps to reproduce:
1. Install accounting app
2. Install l10n_nl
3. Select the nl company
4. From settings, under "Default Accounts", the "Dutch VAT Rounding {Profit|Loss} Account" are readonly.
Fix:
Adding `readonly=False` to the `l10n_nl_rounding_difference_loss_account_id` and `l10n_nl_rounding_difference_profit_account_id` fields.
opw-4380635This fixes an unstable automated test in Web Studio by ensuring the test waits for dropdown results before selecting an item. The change helps prevent false test failures, improving confidence in release validation without changing user-facing behavior.
Original PR description
Before this commit, one tour searched in a dropdown and clicked on an item representing a field of a model, without waiting for the dropdown to update. Because tours' behavior change rapidly in an effort to strengthen them, this undeterminism was not detected before. runbot-error-111417 runbot-error-111192
Fixed an error that prevented users from opening the Depreciation Schedule after the journal filter was deactivated. This helps accounting users access asset depreciation reporting reliably, even when optional filters are turned off.
Original PR description
Steps to reproduce: - Activate debug mode - Go to Accounting/Configuration/Accounting Reports/Depreciation Schedule - Deactivate the journals filter - open the depreciation schedule -> Traceback because it can't iterate on None Type object opw-4364589
This update fixes automated test data for Mexico electronic invoicing where some dates were still tied to 2024. It helps keep year-sensitive validation checks running reliably without changing customer-facing functionality.
Original PR description
Some 2024 years were encoded in test files.
Features or functions removed from Odoo
This removes old WhatsApp sample-data generation scripts that are no longer used after an internal tooling change. The change keeps the WhatsApp module cleaner and avoids maintaining obsolete internal files, with no expected impact on day-to-day users.
Original PR description
Following 044da127dc977f124c3d0d105dbe3712113f14fb, the populate tool was refactored and doesn't use specific scripts by modules anymore. It seems the populate scripts for the whatsapp module cd7dfa8828cb6b2fb4aa5c35564210e7f4f876da were introduced around the same time the refactoring of the populate itself.
Code cleanup and technical improvements
This change centralizes how country-specific POS setups ensure essential customer records are available when a session opens. It helps avoid POS disruptions caused by partner loading limits while keeping the behavior easier to maintain across affected localizations.
Original PR description
For some localizations, some partners are required at all times for the POS to work properly. Since we restrict the number of loaded partners, we need to explicitly add those required partners to the set of partners loaded at the opening of the pos session. Previous fixes implemented this logic in pos_onfig. However it seems like it would make more sense to handle this from res.partner directly. This PR proposes such a change, where the required partners are being loaded from a newly dedicated function.
Miscellaneous changes
**Current behavior before PR:** Messages posted by visitors in demo data incorrectly displayed the author name as `Odoobot` instead of `Visitor`. This happened because the messages created for visitors in the demo data do not have the `author_id` field explicitly set to `False`, leading the `_message_compute_author()` method to compute the author incorrectly. **Desired behavior after PR is merged:** Messages posted by visitors in demo data correctly display the author name as Visitor
Original PR description
**Current behavior before PR:** Messages posted by visitors in demo data incorrectly displayed the author name as `Odoobot` instead of `Visitor`. This happened because the messages created for visitors in the demo data do not have the `author_id` field explicitly set to `False`, leading the `_message_compute_author()` method to compute the author incorrectly. **Desired behavior after PR is merged:** Messages posted by visitors in demo data correctly display the author name as Visitor. Task-[4420677](https://www.odoo.com/odoo/project/1519/tasks/4420677) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192003
Cancelled order should be ignored by default in the POS order report. Steps to reproduce: ------------------- * Open PoS create an order and go back to the backedn * Open the PoS again and close the PoS, it will cancel the order > Observation: Open PoS order report, it will include the cancelled order, that can be missleading. Why the fix: ------------ We add a new default filter that apply a domain to exclude the cancelled order from the report. opw-4257734 Forward-Port-Of: odo
Original PR description
Cancelled order should be ignored by default in the POS order report. Steps to reproduce: ------------------- * Open PoS create an order and go back to the backedn * Open the PoS again and close the PoS, it will cancel the order > Observation: Open PoS order report, it will include the cancelled order, that can be missleading. Why the fix: ------------ We add a new default filter that apply a domain to exclude the cancelled order from the report. opw-4257734 Forward-Port-Of: odoo/odoo#192377
Changes to the synchronization system to ensure full synchronization every time a PoS writes to a record. This synchronization will not unlink local records in other PoS. Forward-Port-Of: odoo/odoo#191904
Original PR description
Changes to the synchronization system to ensure full synchronization every time a PoS writes to a record. This synchronization will not unlink local records in other PoS. Forward-Port-Of: odoo/odoo#191904
Refund order in spain require a refund reason. Steps to reproduce: ------------------- * Install l10n_es_pos_tbai module * Open PoS * Make an order and try to refund it > Observation: You get an error message saying that you need to add a refund reason opw-4282586 Forward-Port-Of: odoo/odoo#191503 Forward-Port-Of: odoo/odoo#191205
Original PR description
Refund order in spain require a refund reason. Steps to reproduce: ------------------- * Install l10n_es_pos_tbai module * Open PoS * Make an order and try to refund it > Observation: You get an error message saying that you need to add a refund reason opw-4282586 Forward-Port-Of: odoo/odoo#191503 Forward-Port-Of: odoo/odoo#191205
Draft pos order where considered as paid when counting the invoiced qty of a sale linked to a pos order. Steps to reproduce: ------------------- * Create a sale order with any product * Open PoS and settle the order but do not validate it * Click on "Backend" button so that the order is synchronized * Go back on the sale > Observation: The invoiced quantity is 1 Why the fix: ------------ We should not consider draft pos orders when counting the invoiced qty as they are not yet vali
Original PR description
Draft pos order where considered as paid when counting the invoiced qty of a sale linked to a pos order. Steps to reproduce: ------------------- * Create a sale order with any product * Open PoS and settle the order but do not validate it * Click on "Backend" button so that the order is synchronized * Go back on the sale > Observation: The invoiced quantity is 1 Why the fix: ------------ We should not consider draft pos orders when counting the invoiced qty as they are not yet validated. opw-4201267 Forward-Port-Of: odoo/odoo#192160
Steps to reproduce: - wrap a pivot function inside a IFERROR e.g. =IFERROR(PIVOT("1", "probability"), 42) - reload the spreadsheet - before the pivot is loaded (throttle the network in the dev tools): right click the cell - click on "See records" menu item => boom Task: 3847477 X-original-commit: odoo/enterprise@31401c75baa4252917fe5d808be0abd5fc23a906 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172826 Forwa
Original PR description
Steps to reproduce:
- wrap a pivot function inside a IFERROR e.g. =IFERROR(PIVOT("1", "probability"), 42)
- reload the spreadsheet
- before the pivot is loaded (throttle the network in the dev tools): right click the cell
- click on "See records" menu item => boom
Task: 3847477
X-original-commit: odoo/enterprise@31401c75baa4252917fe5d808be0abd5fc23a906
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#172826
Forward-Port-Of: odoo/odoo#162568Apply sudo to avoid an access error when importing records (e.g. partners). Example use case: - Uninstall `base_install_request` - A user without the Administrator > Settings permission - Go to Contacts and click on Import records - When uploading the file the access error occurs @Tecnativa TT51841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188634
Original PR description
Apply sudo to avoid an access error when importing records (e.g. partners). Example use case: - Uninstall `base_install_request` - A user without the Administrator > Settings permission - Go to Contacts and click on Import records - When uploading the file the access error occurs @Tecnativa TT51841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188634
Versions 16.0+ Description of the issue/feature this PR addresses: The issue occurs when selecting a partner in an invoice, the sales team is not correctly computed. The problem arises because the default_team_id is not passed as a parameter to the context when the partner is selected, which works correctly in sales orders but fails in invoices. Current behavior before PR: When modifying the partner_id in an invoice, the sales team is not recomputed, leading to incorrect or missing
Original PR description
Versions 16.0+ Description of the issue/feature this PR addresses: The issue occurs when selecting a partner in an invoice, the sales team is not correctly computed. The problem arises because the…
Versions 16.0+ Description of the issue/feature this PR addresses: The issue occurs when selecting a partner in an invoice, the sales team is not correctly computed. The problem arises because the default_team_id is not passed as a parameter to the context when the partner is selected, which works correctly in sales orders but fails in invoices. Current behavior before PR: When modifying the partner_id in an invoice, the sales team is not recomputed, leading to incorrect or missing sales team assignment. Desired behavior after PR is merged: After this PR is merged, modifying the partner_id on an invoice will correctly recompute the sales team by passing the default_team_id in the context, ensuring consistent behavior between invoices and sales orders. I will now provide a short video demonstrating the error. This issue is replicable if none of the sales teams have any members assigned. https://drive.google.com/file/d/15mUpXvdlVpGZXW976PK7EVYH6X4sm2CJ/view?usp=sharing PR of v16 https://github.com/odoo/odoo/pull/180961 Forward-Port-Of: odoo/odoo#192242 Forward-Port-Of: odoo/odoo#181244
Versions -------- - saas-17.4+ Steps ----- 1. Have a published product "A" with 16+ variants; 2. have a published product "B" with alternative product "A"; 3. add more alternative products whose names are greater than "A"; 4. open product "B" in eCommerce. >[!Important] > Products with a reference value (e.g. "[FURN_2100]") get sorted before "A", so be sure to exclude those to reproduce the issue. Issue ----- Only product "A" gets displayed. Cause ----- The dynamic filter
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Have a published product "A" with 16+ variants; 2. have a published product "B" with alternative product "A"; 3. add more alternative products whose…
Versions -------- - saas-17.4+ Steps ----- 1. Have a published product "A" with 16+ variants; 2. have a published product "B" with alternative product "A"; 3. add more alternative products whose names are greater than "A"; 4. open product "B" in eCommerce. >[!Important] > Products with a reference value (e.g. "[FURN_2100]") get sorted before "A", so be sure to exclude those to reproduce the issue. Issue ----- Only product "A" gets displayed. Cause ----- The dynamic filter for alternative products applies the default limit of 16 to the variant count. This was not an issue in earlier versions, as alternative products displayed variants instead of templates. Solution -------- In the `_prepare_values` method, set the `hide_variants` context value even if `self.filter_id` is falsy, making it accessible for dynamic filters as well. In the `_get_products_*` methods, check this context value. If present, limit each product template to a single variant before calling `search`. opw-4318624 Forward-Port-Of: odoo/odoo#189040
to reproduce: ============= - create a leave for an employee of 3 days - create a public holiday that happens to be in the middle of the employee leave - check work entries for the employee on that period -> only work entries of the public holiday are created Problem: ======== - when the public holiday was created, the leave was not split to take into account the public holiday Solution: ========= - split the leave to take into account the public holiday opw-4353988 --- I co
Original PR description
to reproduce: ============= - create a leave for an employee of 3 days - create a public holiday that happens to be in the middle of the employee leave - check work entries for the employee on that period -> only work entries of the public holiday are created Problem: ======== - when the public holiday was created, the leave was not split to take into account the public holiday Solution: ========= - split the leave to take into account the public holiday opw-4353988 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192376 Forward-Port-Of: odoo/odoo#191552
This commit uses the `inset-inline-start` CSS property instead of `left` to account for RTL languages. (No linked task) Forward-Port-Of: odoo/odoo#191342
Original PR description
This commit uses the `inset-inline-start` CSS property instead of `left` to account for RTL languages. (No linked task) Forward-Port-Of: odoo/odoo#191342
Before this commit, "search more" would not find any matches if searching partners by VAT numbers. After this commit, it becomes possible to search and "load more" partners by VAT number. opw-4379852 Forward-Port-Of: odoo/odoo#190621 Forward-Port-Of: odoo/odoo#189703
Original PR description
Before this commit, "search more" would not find any matches if searching partners by VAT numbers. After this commit, it becomes possible to search and "load more" partners by VAT number. opw-4379852 Forward-Port-Of: odoo/odoo#190621 Forward-Port-Of: odoo/odoo#189703
Currently, a traceback is occurring when the user tries to delete archived product variants. To reproduce this issue: 1) Install sale and enable product variants from configuration 2) Create a product from the variant and archive it 3) Now try to delete the above archived product. Error:- ``` KeyError: 2 ``` When the user archives a product and tries to delete the archived product, we get the `product_ids_by_template_id` as an empty dict. https://github.com/odoo/odoo/blob
Original PR description
Currently, a traceback is occurring when the user tries to delete archived product variants. To reproduce this issue: 1) Install sale and enable product variants from configuration 2) Create a product from the variant and archive it 3) Now try to delete the above archived product. Error:- ``` KeyError: 2 ``` When the user archives a product and tries to delete the archived product, we get the `product_ids_by_template_id` as an empty dict. https://github.com/odoo/odoo/blob/f118a44c5b15163556e3388c5a7daa72119f58f8/addons/product/models/product_product.py#L384-L388 This leads to the above traceback when accessing the product template id from an empty dict from the below line. https://github.com/odoo/odoo/blob/f118a44c5b15163556e3388c5a7daa72119f58f8/addons/product/models/product_product.py#L395 sentry-6173505059 Forward-Port-Of: odoo/odoo#191761
Since [1], when an extra menu is displayed due to the top menu exceeding its maximum width, the active class is no longer applied correctly. This issue was introduced during the conversion from jQuery to vanilla JavaScript. Steps to reproduce: - Enter the Website in edit mode. - Navigate to Site > Menu Editor. - Add several menu items until the menu exceeds its maximum width. - Ensure that one of the items in the extra menu redirects to "Contact Us". - Click on the "Contact Us" menu it
Original PR description
Since [1], when an extra menu is displayed due to the top menu exceeding its maximum width, the active class is no longer applied correctly. This issue was introduced during the conversion from jQuery to vanilla JavaScript. Steps to reproduce: - Enter the Website in edit mode. - Navigate to Site > Menu Editor. - Add several menu items until the menu exceeds its maximum width. - Ensure that one of the items in the extra menu redirects to "Contact Us". - Click on the "Contact Us" menu item. - Open the dropdown menu (via the "+" icon) and observe that the "Contact Us" entry is not highlighted. This commit resolves the problem. [1]: https://github.com/odoo/odoo/commit/0de634965a0dec4470b30154f3722a1e83b0e866 task-4428845 opw-4383641 Forward-Port-Of: odoo/odoo#192164 Forward-Port-Of: odoo/odoo#191548
Steps to reproduce: initial state: The accounting report "General Ledger" has the filter "unfold all" option activated and this filter can be selected on the report. - Create a new accounting report - Select "Composite Report" - Add the General Ledger as a section - Save -> When navigating to the General Ledger, it no longer has the "unfold all" option selected. Solution provided: If the report is accessible, should not change its fields when being added to a composite rep
Original PR description
Steps to reproduce: initial state: The accounting report "General Ledger" has the filter "unfold all" option activated and this filter can be selected on the report. - Create a new accounting report - Select "Composite Report" - Add the General Ledger as a section - Save -> When navigating to the General Ledger, it no longer has the "unfold all" option selected. Solution provided: If the report is accessible, should not change its fields when being added to a composite report. task-4317649 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188476
Fixes an issue due to the phone number being formatted before the verification that it is actually set. The formatting will now support receiving no phone number, and it won't cause an issue as its existence is checked right after. Also avoid running the account_edi_proxy_client neutralize on malaysian users, as it simply set the type to test. The malaysian edi supports having both a test and production user set on the same db (only one is being use at any given time of course), so that neut
Original PR description
Fixes an issue due to the phone number being formatted before the verification that it is actually set. The formatting will now support receiving no phone number, and it won't cause an issue as its existence is checked right after. Also avoid running the account_edi_proxy_client neutralize on malaysian users, as it simply set the type to test. The malaysian edi supports having both a test and production user set on the same db (only one is being use at any given time of course), so that neutralize could result in having two test users, which is not allowed by the constrains. opw-4352823 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190685
Steps to reproduce: - insert a list of timesheets in a spreadsheet - reload the spreadsheet - right click on a list cell - click on "See record" => it's not the correct form view Task: 4444541 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192356 Forward-Port-Of: odoo/odoo#192222
Original PR description
Steps to reproduce: - insert a list of timesheets in a spreadsheet - reload the spreadsheet - right click on a list cell - click on "See record" => it's not the correct form view Task: 4444541 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192356 Forward-Port-Of: odoo/odoo#192222
When an order is canceled, the order is removed from the store and the session. This commit ensures that the order is removed from the store Forward-Port-Of: odoo/odoo#191232
Original PR description
When an order is canceled, the order is removed from the store and the session. This commit ensures that the order is removed from the store Forward-Port-Of: odoo/odoo#191232
Scenario: - install l10n_ch - go to /report/barcode/?barcode_type=QR&value=&width=150&height=150&mask=ch_cross => the ch_cross mask (swiss cross that should be in the center) is not in the center Issue: Reportlab QrCodeWidget has a fixed size to 32mm (with mm that is 72(ppi) / 25.4(1mm to inch) so ~2.83 pixels) and to get the widget to the full size, a zoom is applied on the Drawing content (so on the QrCodeWidget). Here are the zoom that are applied for several Drawing size:
Original PR description
Scenario: - install l10n_ch - go to /report/barcode/?barcode_type=QR&value=&width=150&height=150&mask=ch_cross => the ch_cross mask (swiss cross that should be in the center) is not in the center…
Scenario: - install l10n_ch - go to /report/barcode/?barcode_type=QR&value=&width=150&height=150&mask=ch_cross => the ch_cross mask (swiss cross that should be in the center) is not in the center Issue: Reportlab QrCodeWidget has a fixed size to 32mm (with mm that is 72(ppi) / 25.4(1mm to inch) so ~2.83 pixels) and to get the widget to the full size, a zoom is applied on the Drawing content (so on the QrCodeWidget). Here are the zoom that are applied for several Drawing size: - for 100 pixels: 100 / (32 * mm) => 1.012… - for 256 pixels: 256 / (32 * mm) => 2.822… - for 400 pixels: 400 / (32 * mm) => 4.409… But in the code, the zoom is just hardcoded to mm (~2.83) which corresponds to a barcode size of mm * 32 * mm => 257.127 pixels which is kind of good enough for 256 pixels, but wrong for most other size. In base code we only use 256 x 256 pixels so this is not much of an issue unless someone want to use it for something else. Fix: With this commit, we apply the Drawing zoom (on which we have the QrCodeWidget) to the ch_cross image. Note: Without the fix, the added test only fail on the third assertion for each loop iteration, the farer we are from 257x257 pixels the bigger the error is, for example for 256x256: Result: (38.45140, 38.45140, 52.25725984251969, 52.25725984251969) Expected: (38.28288, 38.28288, 52.02823111111111, 52.02823111111111) opw-4307177 PR NOTE: this could be merged in an higher version, and we could also just not fix this since as far as I can tell, we only need to support 256x256 and with and without the fix there is just one pixel of difference in this case.  Forward-Port-Of: odoo/odoo#192091
This reverts commit ff3702651a30fd7a6ee3007988df953dda911e41 After which customer credit notes share the sequence with supplier credit notes. Steps to reproduce: - Open Vendor Bills journal and enable 'Use Documents?' - Create a Bill with document type '(46) Factura de Compra Electrónica' - Create the credit note - In the Wizard: select 'Full Refund', Document Type 61, Confirm - Document name will be 'N/C 000001' - Now create an invoice with document type '(33) Factura Electrónica'
Original PR description
This reverts commit ff3702651a30fd7a6ee3007988df953dda911e41 After which customer credit notes share the sequence with supplier credit notes. Steps to reproduce: - Open Vendor Bills journal and enable 'Use Documents?' - Create a Bill with document type '(46) Factura de Compra Electrónica' - Create the credit note - In the Wizard: select 'Full Refund', Document Type 61, Confirm - Document name will be 'N/C 000001' - Now create an invoice with document type '(33) Factura Electrónica' - Add a credit note for the invoice Issue: Credit note name will be 'N/C 000002' but sequences should be unique for move type opw-4268371 Forward-Port-Of: odoo/odoo#192285
Changes to the synchronization system to ensure full synchronization every time a PoS writes to a record. This synchronization will not unlink local records in other PoS. Forward-Port-Of: odoo/enterprise#76253
Original PR description
Changes to the synchronization system to ensure full synchronization every time a PoS writes to a record. This synchronization will not unlink local records in other PoS. Forward-Port-Of: odoo/enterprise#76253
Base users do not have access to the model `spreadsheet.revision` which is directly affected in a collaborative context. The usual flow consists to give access to the revisions once we check the access rights on the related spreadsheet. The code that handled the restoration of previous versions did not follow this flow and base users would face access errors. Task-4397512 Forward-Port-Of: odoo/enterprise#75474
Original PR description
Base users do not have access to the model `spreadsheet.revision` which is directly affected in a collaborative context. The usual flow consists to give access to the revisions once we check the access rights on the related spreadsheet. The code that handled the restoration of previous versions did not follow this flow and base users would face access errors. Task-4397512 Forward-Port-Of: odoo/enterprise#75474
Before this commit, spans with no attribute and no special style were unwrapped by the OdooEditor, meaning the span itself disappeared, leaving its content in the parent element. This behavior breaks translations, as the whole span is used as a key to match translations After this commit, those spans are not removed. opw-3746922 opw-4318712 [++] Forward-Port-Of: odoo/enterprise#76000 Forward-Port-Of: odoo/enterprise#75962
Original PR description
Before this commit, spans with no attribute and no special style were unwrapped by the OdooEditor, meaning the span itself disappeared, leaving its content in the parent element. This behavior breaks translations, as the whole span is used as a key to match translations After this commit, those spans are not removed. opw-3746922 opw-4318712 [++] Forward-Port-Of: odoo/enterprise#76000 Forward-Port-Of: odoo/enterprise#75962
The "remaining" value of a budget should be the difference between the amount spent and the amount forecast, not the other way around. Task-4331872 Forward-Port-Of: odoo/enterprise#75767 Forward-Port-Of: odoo/enterprise#73742
Original PR description
The "remaining" value of a budget should be the difference between the amount spent and the amount forecast, not the other way around. Task-4331872 Forward-Port-Of: odoo/enterprise#75767 Forward-Port-Of: odoo/enterprise#73742
Forward-Port-Of: odoo/enterprise#76430
Original PR description
Forward-Port-Of: odoo/enterprise#76430
Steps to reproduce - Activate developer mode - Go to Accounting -> Configuration -> Accounting Reports - Create a composite report with 2 existing reports that have the "filter_unfold_all" activated, i.e. "Balance Sheet" and "Profit and Loss" - Create a menu item in the action of the report - Open the report - Press the filter "Unfold All" - Press the "PDF" button -> Results: the pdf has no line unfolded while they should (the web UI works as expected) Reason of the issue
Original PR description
Steps to reproduce - Activate developer mode - Go to Accounting -> Configuration -> Accounting Reports - Create a composite report with 2 existing reports that have the "filter_unfold_all" activated,…
Steps to reproduce - Activate developer mode - Go to Accounting -> Configuration -> Accounting Reports - Create a composite report with 2 existing reports that have the "filter_unfold_all" activated, i.e. "Balance Sheet" and "Profit and Loss" - Create a menu item in the action of the report - Open the report - Press the filter "Unfold All" - Press the "PDF" button -> Results: the pdf has no line unfolded while they should (the web UI works as expected) Reason of the issue: In the dispatch_report_action() function, the get_options() was wrong and unnecessary. This function is first called on the first section, then called on the composite report with its own options. This led to use the options of the composite report which does not have the filter_unfold_all field set to True. This also handles the case where a composite report has reports A and B, A having the filter_unfold_all while B doesn't have it. The expected result when printing it is that only report A has unfolded lines. task-4317649 Forward-Port-Of: odoo/enterprise#74826
Add missing english labels for the `l10n_mx_nationality` and `l10n_mx_type_of_operation`fields.  task-no Forward-Port-Of: odoo/enterprise#76055 Forward-Port-Of: odoo/enterprise#76038
Original PR description
Add missing english labels for the `l10n_mx_nationality` and `l10n_mx_type_of_operation`fields.  task-no Forward-Port-Of: odoo/enterprise#76055 Forward-Port-Of: odoo/enterprise#76038