Friday, February 16, 2024
52 changes · master
Enhancements to existing features
The Belgian reports app now offers the option to generate 325 forms directly from the forms list instead of through a separate menu item. This reduces menu clutter and makes the workflow easier for users who manage 325/281.50 forms.
Original PR description
The aim of this commit is moving the button to generate 325 forms. Before this commit, we had 2 menu items for the 325/281.50 forms. It was clearly too much. This commit removes the menu item that allows users to generate a new form and add it as a button in the list view. no task id
The payment and UPS website sales modules were updated to follow Odoo's newer process for uninstalling provider modules. This helps ensure these modules can be removed cleanly and consistently, reducing maintenance friction for administrators.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/154179
Luxembourg payroll tax logic has been moved into salary rule data, making the setup easier to understand and maintain in hosted environments. This reduces confusion for users who can review payroll rules but cannot change underlying code on SaaS.
Original PR description
Purpose ======= Even if the end_user is a tech, that he knows the code, as long as it's on the saas, he just can't do anything. Calling method in the rules is counter intuitive, you think that you have the hand, can check a parameter or not, but in fact you can't do anything. TaskID: 3748649
When a completed field service task is opened, the related products view now automatically focuses on products that were added. The action label was also renamed from “Choose Products” to “Add Products,” making the workflow clearer for users.
Original PR description
…oducts' Before these commit: -> There is no default filter 'Added Product' when opening the stat button once task is marked as done. -> Rename 'Choose Products' action into 'Add Products' because it sounds a bit more natural. After these commit: -> Set the default filter 'Added Product' when opening the stat button once task is marked as done. -> Renamed to Add products. task-3476798
Timesheets dated in the future no longer appear in the "To Validate" menus. This reduces confusion because future timesheets cannot be validated yet, so managers only see entries they can act on.
Original PR description
Before this commit, the timesheets that were dated in the future could be visible in the "To Validate" menus. However, it is not possible to validate such timesheets as they are dated in the future, which could lead to confusion for the user. To make things clear, this commit hides the timesheets that are dated in the future from the "To Validate" menus. task-3703516
This update removes now-unneeded technical markers from the enterprise messaging code. It does not change how users interact with messages, attachments, chat windows, or the messaging menu, but it keeps the codebase aligned with recent platform improvements and easier to maintain.
Original PR description
They are not necessary since: https://github.com/odoo/odoo/pull/142858 PR community: https://github.com/odoo/odoo/pull/154164
Resolved issues and error corrections
This fix ensures country-specific payroll modules load with the right payroll and accounting dependencies. It helps prevent installation or configuration issues when companies use localized payroll features without needing unnecessary accounting components.
Original PR description
l10n_xx_hr_payroll shouldn't depend on account and should depend on hr_payroll l10N_xx_hr_payroll_account should depend on l10n_xx_hr_payroll and account
Features or functions removed from Odoo
This change removes an obsolete field from the manufacturing planning module that pointed to data that no longer exists. It helps prevent confusion and potential errors in internal planning data without changing day-to-day user workflows.
Original PR description
The `sequence` fields on `mrp.production.schedule` is a related field to something that doesn't exist (sequence on product). This commits removes it as it is not used anymore (see 97b764fd8032c93a812f7c1f97e75035570c58d5)
Miscellaneous changes
It's confusing to allow resubmitting electronic invoices. When invoices are rejected the user will probably make changes to them in Odoo. Resubmitting will use the old, saved tax response data in l10n_br_edi_avatax_data which won't be correct anymore for the new configuration. Instead, the user should reset to draft, redo tax computation and then resubmit. task-3711015 Forward-Port-Of: odoo/enterprise#56576
Original PR description
It's confusing to allow resubmitting electronic invoices. When invoices are rejected the user will probably make changes to them in Odoo. Resubmitting will use the old, saved tax response data in l10n_br_edi_avatax_data which won't be correct anymore for the new configuration. Instead, the user should reset to draft, redo tax computation and then resubmit. task-3711015 Forward-Port-Of: odoo/enterprise#56576
This fixes a setup issue in the US payroll accounting test module when demo data is not installed. It prevents no-demo test builds from failing because the module incorrectly assumed demo company data was available.
Original PR description
When no demo data, we still have the main_company. It causes an issue when installing this module, as it expects the demo data. The whole no demo data build fails because of it. We should change what we make the check on.
This fix removes a duplicate Lithuania-specific Intrastat region setting because the same setting is now managed centrally. It helps keep accounting configuration consistent and reduces the risk of conflicting setup options.
Original PR description
In the previous commit https://github.com/odoo/enterprise/commit/77ff6f595d5c6f2ec297b7dddff866a77e3b87ed, the field intrastat_region_id was moved from l10n_be_intrastat to account_intrastat. The l10n_lt_intrastat localization was forgotten and is being removed in this commit. The field intrastat_region_id can indeed be defined only once in account_intrastat instead of all localizations. The view of the intrastat region (visible in the settings) was defined in account_intrastat, and is therefore no longer needed specifically in the l10n_lt_intrastat module task-3691571
Before this, a subscription with partial exemptions wouldn't be automatically invoiced. It's caused by field dependencies added by sale_subscription that cause the order totals to be recomputed after confirmation. More specifically, sale.order.line.discount is made to depend on subscription_state, which gets written to during action_confirm(). Because of this _invoice_sale_orders() will filter out the payment transaction because _get_partial_payment_subscription_transaction() considers it a p
Original PR description
Before this, a subscription with partial exemptions wouldn't be automatically invoiced. It's caused by field dependencies added by sale_subscription that cause the order totals to be recomputed after confirmation. More specifically, sale.order.line.discount is made to depend on subscription_state, which gets written to during action_confirm(). Because of this _invoice_sale_orders() will filter out the payment transaction because _get_partial_payment_subscription_transaction() considers it a partial payment. opw-3562613 Forward-Port-Of: odoo/enterprise#55579
Create a branch In the system parameters, switch account_online_synchronization.proxy_mode to sandbox Add a bank with plaid for example and follow the different steps Switch to the branch only and try to access the accounting app Access error raises: """ Sorry, Mitchell Admin (id=2) doesn't have 'read' access to: - Bank Connection, Plaid (account.online.link: 2, company=parent nico) Blame the following rules: - Account online link company rule Note: this might be a multi-company
Original PR description
Create a branch In the system parameters, switch account_online_synchronization.proxy_mode to sandbox Add a bank with plaid for example and follow the different steps Switch to the branch only and try to access the accounting app Access error raises: """ Sorry, Mitchell Admin (id=2) doesn't have 'read' access to: - Bank Connection, Plaid (account.online.link: 2, company=parent nico) Blame the following rules: - Account online link company rule Note: this might be a multi-company issue. Switching company may help - in Odoo, not in real life! If you really, really need access, perhaps you can win over your friendly administrator with a batch of freshly baked cookies. """ This occurs because the mentioned record rule allow access to the `account.online.link` record only from the same company opw-3725198 Forward-Port-Of: odoo/enterprise#56136
How to reproduce: - Open a planned transfer in the Barcode App; - Scan a non-reserved product => A confirmation dialog is shown; - Discard or close the confirmation dialog => Traceback! It happens because rejected promises have to be handle which is not the case here. To fix that, resolve the promise anyway. task-3677142 Forward-Port-Of: odoo/enterprise#55979
Original PR description
How to reproduce: - Open a planned transfer in the Barcode App; - Scan a non-reserved product => A confirmation dialog is shown; - Discard or close the confirmation dialog => Traceback! It happens because rejected promises have to be handle which is not the case here. To fix that, resolve the promise anyway. task-3677142 Forward-Port-Of: odoo/enterprise#55979
Bug === 1. Open the comments modal of a LInkedIn post 2. Click on "Reply" on a comment without answer => Traceback Task-3748995 Forward-Port-Of: odoo/enterprise#56773 Forward-Port-Of: odoo/enterprise#56689
Original PR description
Bug === 1. Open the comments modal of a LInkedIn post 2. Click on "Reply" on a comment without answer => Traceback Task-3748995 Forward-Port-Of: odoo/enterprise#56773 Forward-Port-Of: odoo/enterprise#56689
Fix translation for account_asset / wizard There was fixed strings without translation - gain - loss - gain/loss Forward-Port-Of: odoo/enterprise#56774 Forward-Port-Of: odoo/enterprise#56481
Original PR description
Fix translation for account_asset / wizard There was fixed strings without translation - gain - loss - gain/loss Forward-Port-Of: odoo/enterprise#56774 Forward-Port-Of: odoo/enterprise#56481
On a view, drag and drop a new related field. Go into one m2o field. Before this commit, it was possible to select a field of type "properties". This is not supported by python at the time. To do so, one would have to reflect the property "definition" of the python field. Also, some code would have to be written to create that other field, related as well that'd contain the properties' definition. After this commit, to make things simpler, we just blacklist property fields in the related
Original PR description
On a view, drag and drop a new related field. Go into one m2o field. Before this commit, it was possible to select a field of type "properties". This is not supported by python at the time. To do so, one would have to reflect the property "definition" of the python field. Also, some code would have to be written to create that other field, related as well that'd contain the properties' definition. After this commit, to make things simpler, we just blacklist property fields in the related field selector. opw-3730900 Forward-Port-Of: odoo/enterprise#56749 Forward-Port-Of: odoo/enterprise#56597
### Before: Before this fix, entering a search term in the bar caused pagination to malfunction. The issue stemmed from the offset not resetting to 0 upon entering a search term, leading to incorrect behavior. Additionally, the total count failed to update with search inputs. ### After: This PR resolves the issue by resetting the offset to 0 upon search term entry and updating the total count using the domain passed to the _fetchPagerTotal method. Task ID: [3631981](https://www.odoo
Original PR description
### Before: Before this fix, entering a search term in the bar caused pagination to malfunction. The issue stemmed from the offset not resetting to 0 upon entering a search term, leading to incorrect behavior. Additionally, the total count failed to update with search inputs. ### After: This PR resolves the issue by resetting the offset to 0 upon search term entry and updating the total count using the domain passed to the _fetchPagerTotal method. Task ID: [3631981](https://www.odoo.com/web#id=3631981&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#56669 Forward-Port-Of: odoo/enterprise#53122
We got a feedback from a Belgian partner that we don't have a xml declaration in the xml report. opw-3745820 Forward-Port-Of: odoo/enterprise#56764 Forward-Port-Of: odoo/enterprise#56727
Original PR description
We got a feedback from a Belgian partner that we don't have a xml declaration in the xml report. opw-3745820 Forward-Port-Of: odoo/enterprise#56764 Forward-Port-Of: odoo/enterprise#56727
For email address to be considered in the UPS request, the `M` needs to be capitalized. UPS documentation for reference: UPS documentation for reference: https://developer.ups.com/api/reference?loc=en_US#operation/Shipment!path=ShipmentRequest/Shipment/ShipTo/EMailAddress&t=request opw-3487959 Forward-Port-Of: odoo/enterprise#56475
Original PR description
For email address to be considered in the UPS request, the `M` needs to be capitalized. UPS documentation for reference: UPS documentation for reference: https://developer.ups.com/api/reference?loc=en_US#operation/Shipment!path=ShipmentRequest/Shipment/ShipTo/EMailAddress&t=request opw-3487959 Forward-Port-Of: odoo/enterprise#56475
Purpose ======= defaultdict.get(key) returns None if the key doesn't exist instead of default factory value This could lead to traceback in rules like result = categories.get("BASIC") + categories.get("ALW") Easily fixed with result = categories.get("BASIC", 0) + categories.get("ALW", 0) or better result = categories["BASIC"] + categories["ALW"] But could be more robust, find a way to override get or use try catch to return default value instead of None Forward-Port-Of: odoo
Original PR description
Purpose
=======
defaultdict.get(key) returns None if the key doesn't exist instead of default factory value
This could lead to traceback in rules like
result = categories.get("BASIC") + categories.get("ALW")
Easily fixed with
result = categories.get("BASIC", 0) + categories.get("ALW", 0) or better
result = categories["BASIC"] + categories["ALW"]
But could be more robust, find a way to override get or use try catch to return default value instead of None
Forward-Port-Of: odoo/enterprise#56501
Forward-Port-Of: odoo/enterprise#56384Steps to reproduce: 1. install `l10n_pos_res_cert` and set up Fiskaly 2. set up a PoS restaurant 3. set the language to German 4. open a PoS session and make an order error: ``` error parsing request body: amounts_per_vat_rate.0.amount: Does not match pattern '^-?\d+(.\d{2,5})$' ``` The issue is similar to that fixed in https://github.com/odoo/enterprise/pull/46682 It comes from the fact that formatCurrency method is used to convert the amounts to string. However it adds language
Original PR description
Steps to reproduce:
1. install `l10n_pos_res_cert` and set up Fiskaly
2. set up a PoS restaurant
3. set the language to German
4. open a PoS session and make an order
error:
```
error parsing request body: amounts_per_vat_rate.0.amount: Does not match pattern '^-?\d+(.\d{2,5})$'
```
The issue is similar to that fixed in https://github.com/odoo/enterprise/pull/46682
It comes from the fact that formatCurrency method is used to convert the amounts to string. However it adds language specific formatting. In this case Fiskaly expects `12.50` but `12,50` is sent.
opw-3724456
Forward-Port-Of: odoo/enterprise#56619
Forward-Port-Of: odoo/enterprise#56498**Current behavior:** Creating a new company and trying to switch to the l10n_ee accounting localization package will result in a validation error, preventing the installation. **Expected behavior:** The package should be installed and automatically activated for the active company. **Steps to reproduce:** 0. Install the l10n_ee accounting module 1. Create a new company such that no fiscal localization package is active by default, then switch to this new company in the selection in
Original PR description
**Current behavior:** Creating a new company and trying to switch to the l10n_ee accounting localization package will result in a validation error, preventing the installation. **Expected behavior:**…
**Current behavior:** Creating a new company and trying to switch to the l10n_ee accounting localization package will result in a validation error, preventing the installation. **Expected behavior:** The package should be installed and automatically activated for the active company. **Steps to reproduce:** 0. Install the l10n_ee accounting module 1. Create a new company such that no fiscal localization package is active by default, then switch to this new company in the selection in the top right 2. In Accounting settings, select the Estonia fiscal localization package and save (this causes the exception) **Cause of the issue:** Certain tax accounts in the module do not have their names fully updated. They all were labeled as "0% ..." instead of their true percentages like all other tax accounts. **Fix:** Update the names of the offending tax accounts so that they are fully reflective of their true %. Associated with https://github.com/odoo/odoo/pull/151515 opw-3683538 Forward-Port-Of: odoo/enterprise#56496
- According the SRI, the payment method is available in customer and vendor documents (invoices, debit notes and purchase liquidation), we leave it visible in view and pdf report for the documents excluding credit notes Forward-Port-Of: odoo/enterprise#56447 Forward-Port-Of: odoo/enterprise#52855
Original PR description
- According the SRI, the payment method is available in customer and vendor documents (invoices, debit notes and purchase liquidation), we leave it visible in view and pdf report for the documents excluding credit notes Forward-Port-Of: odoo/enterprise#56447 Forward-Port-Of: odoo/enterprise#52855
Steps to reproduce: - Change language to French for example - Install accounting - Go to the "Tax Report" - Options will display "With Draft Entries" or "Posted Entries Only" Issue: The terms are not exported since we were using t-esc. Cause: Replace the ternary operator with an t-if and t-else. opw-3356916 Forward-Port-Of: odoo/enterprise#55952 Forward-Port-Of: odoo/enterprise#53142
Original PR description
Steps to reproduce: - Change language to French for example - Install accounting - Go to the "Tax Report" - Options will display "With Draft Entries" or "Posted Entries Only" Issue: The terms are not exported since we were using t-esc. Cause: Replace the ternary operator with an t-if and t-else. opw-3356916 Forward-Port-Of: odoo/enterprise#55952 Forward-Port-Of: odoo/enterprise#53142