Friday, February 23, 2024
28 changes · saas-17.1
Enhancements to existing features
This update adds a new test to ensure dropdown menus (like submenus) in Odoo are consistently and correctly tested across all versions. This improves the reliability of our software by verifying a key functionality, and helps prevent potential issues with navigation and user experience. This is a standard improvement for maintaining software quality.
Original PR description
This commit backports the test introduced in odoo/odoo#155154, as it is relevant to have it in every versions to ensure that dropdown menu (i.e. submenus) are correctly tested. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155156
Resolved issues and error corrections
odoo-python and odoo-javascript comments in .pot files are used to determine which translations to load. Omitting them would cause the translations not to appear. This commit goes through all .pot files and re-exports the ones where the comments have been omitted. Task-3764933. Community: https://github.com/odoo/odoo/pull/155220
Original PR description
odoo-python and odoo-javascript comments in .pot files are used to determine which translations to load. Omitting them would cause the translations not to appear. This commit goes through all .pot files and re-exports the ones where the comments have been omitted. Task-3764933. Community: https://github.com/odoo/odoo/pull/155220
Miscellaneous changes
Add and use a default resource calendar encompassing every hours of every days. This allows to take into account leaves for resource easily as we need a resource calendar for the computation. Indeed when the resource calendar was removed, the one set on the company was used in place which led to weird result for the end user as he didn't expect a working schedule after removing the one set on the resource. task-3562191 Forward-Port-Of: odoo/enterprise#57330 Forward-Port-Of: odoo/enterprise#5
Original PR description
Add and use a default resource calendar encompassing every hours of every days. This allows to take into account leaves for resource easily as we need a resource calendar for the computation. Indeed when the resource calendar was removed, the one set on the company was used in place which led to weird result for the end user as he didn't expect a working schedule after removing the one set on the resource. task-3562191 Forward-Port-Of: odoo/enterprise#57330 Forward-Port-Of: odoo/enterprise#56617
This update resolves a performance issue that slowed down the process of adding new messages in Odoo. By optimizing how related data is calculated, the system now inserts messages approximately twice as fast, leading to a smoother user experience. This change primarily impacts the 'mail' module.
Original PR description
Move compute of `imStatusTrackedPersonas` to its inverse field. Doing the compute on the "One" side of the relation prevents from looping and computing all values whenever there is a change in any of them. In practice, this reduces the "compute" time of the message fetch (which also fetch persona as authors of messages), reducing by approximately half the time it takes to insert these messages (depending on the number of persona it had to loop through). For example from 60ms to 30ms on my machine for message insert in "partner_1_125" (populate medium). Forward-Port-Of: odoo/odoo#154918
This update resolves an issue where the system was incorrectly summing data returned from a key function. This fix ensures accurate calculations within the stock account module, improving data reliability. No immediate user impact is expected.
Original PR description
This commit fixes summing list of dicts returned by _prepare_analytic_lines. NB: This code is not yet covered by a test use case. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#152819
This update resolves a performance issue related to how Odoo reads activity deadlines. By batching the reading process, the system now handles deadlines more efficiently, leading to faster response times. This change ensures smoother operation for users managing activities and appointments.
Original PR description
`__getitem__()` of BaseModel, reset the prefetch set of the recordset. Fix _compute_activity_date_deadline, to batched the reading of activity's deadline. Forward-Port-Of: odoo/odoo#154728 Forward-Port-Of: odoo/odoo#154159
This update resolves an issue where base users were incorrectly denied access to their own expense reports. A technical oversight in the system's design prevented them from generating these reports, resulting in an access error. This fix ensures all users, including base users, can properly create and access their expense reports.
Original PR description
Have a base user with no access to Accounting, Expenses, Employee Create an expense, input an amount Save and Create Report Access Error will raise You are not allowed to access 'Journal Entry' (account.move) records. This occurs because of a remaining field in the hr.expense.sheet form view after refactoring the model opw-3690493 Forward-Port-Of: odoo/odoo#154798 Forward-Port-Of: odoo/odoo#152288
This update resolves an issue that caused a 500 error when creating draft invoices with payment terms that include early discounts. The fix ensures the invoice preview function correctly calculates the total amount due, even when discounts are applied, preventing the error and improving invoice generation reliability.
Original PR description
Description of the issue this PR addresses: --- On obtains a 500: Internal Server Error when creating an invoice with a 2 lines payment term. Error while rendering the template…
Description of the issue this PR addresses: --- On obtains a 500: Internal Server Error when creating an invoice with a 2 lines payment term. Error while rendering the template "account.report_invoice_document". Steps to reproduce: --- - Accounting > Configuration > invoicing > Payment Terms - New > Create and save a payment term with 2 lines: - name 80/20 test - line_1 : 80% after 0 days - line_2 : 20% after 30 days - Sales > Orders > Quotations - Chose any > use payment terms 80/20 test - Save and create associated invoice > chose regular invoice - Create draft invoice > preview > 500: Internal Server Error Cause of the issue: --- The method "_get_amount_due_after_discount" called during the rendering of the template does not return a value in case self.early_discount is False. Fix: --- Return total_amount by default since no discount is applied. opw-3683708 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149934
This update quietly resolves a warning message that appeared after importing new modules into Odoo. Previously, the system attempted to update its internal graph, which was unnecessary and caused the warning. This change ensures a smoother import process without disrupting the user experience.
Original PR description
Before this PR, after having imported a module, a warning appears in the log, because it tries to update the graph which does not make sense for an imported module. This commit makes sure the warning is skipped if the module was imported. This commit can be backported to previous versions, if useful. Forward-Port-Of: odoo/odoo#155096
This update corrects a technical error preventing users from successfully verifying a partner's Peppol endpoint. The previous issue caused a system error, blocking the verification process. This fix ensures the Peppol verification feature functions correctly for all partners.
Original PR description
### Steps to reproduce * install `account_peppol` * open a partner's list view * select a contact * on the top middle, click Actions > Verify Peppol You should be met with a traceback: `AttributeError: 'bool' object has no attribute 'setdefault'` ### Cause `button_account_peppol_check_partner_endpoint` is expected to return an action or a falsy value (no action to perform). opw-3683612 Forward-Port-Of: odoo/odoo#152817
This update corrects a technical issue where translations weren't loading properly in Odoo. The team re-exported missing comments from .pot files, ensuring that translations are correctly identified and displayed for various Odoo add-ons. This improves the user experience for international customers.
Original PR description
odoo-python and odoo-javascript comments in .pot files are used to determine which translations to load. Omitting them would cause the translations not to appear. This commit goes through all .pot files and re-exports the ones where the comments have been omitted. Task-3764933. Enterprise: https://github.com/odoo/enterprise/pull/57361
This update resolves an issue where users lacked the ability to create new records with property fields if they didn't have access to the related parent record. The fix utilizes a temporary 'sudo' call to bypass access restrictions, ensuring all users can now create records with default property values.
Original PR description
When the user creates a new record having a property field, the system fetches the property definition of the parent record to retrieve the field's default values (see: `_add_default_values`). If the user lacks read access on the parent record, the user gets an access error when retrieving the property definition of the parent record. To prevent this error, we will perform a sudo call on the parent record before reading the property definition of the parent record. This allow the user to create a new record, even if they do not have access to the parent record. task-3594814 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154651 Forward-Port-Of: odoo/odoo#146265
This update stops Odoo from automatically sending emails when a validation token is assigned to an order. Previously, this created extra notifications that weren't essential for business operations. This change improves system performance and reduces unnecessary email volume.
Original PR description
Before this commit, validation transactions would send an email when the token is assigned to the order. taskid: 3675875 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154650 Forward-Port-Of: odoo/odoo#151773
In this commit (https://github.com/odoo/enterprise/commit/0f31f77665b10ac85396ed890786f630401f0503), we ensure that generic report line ids are unique by using all discriminant values. This commit ads these discriminant values in the where to make sure that sublines have unique ID as well. no task id Forward-Port-Of: odoo/enterprise#57343 Forward-Port-Of: odoo/enterprise#57256
Original PR description
In this commit (https://github.com/odoo/enterprise/commit/0f31f77665b10ac85396ed890786f630401f0503), we ensure that generic report line ids are unique by using all discriminant values. This commit ads these discriminant values in the where to make sure that sublines have unique ID as well. no task id Forward-Port-Of: odoo/enterprise#57343 Forward-Port-Of: odoo/enterprise#57256
task-id 3755037 Documentation PR https://github.com/odoo/documentation/pull/7840 Forward-Port-Of: odoo/enterprise#57138
Original PR description
task-id 3755037 Documentation PR https://github.com/odoo/documentation/pull/7840 Forward-Port-Of: odoo/enterprise#57138
Currently, synchronizing done order in FBA creates some stock move that are not in the state done anymore. This is due to some changes in the management of the quantity done in stock, that needs to see if the quantity was picked or not. As, in this case, we are confirming a move for products that were stocked in an Amazon Warehouse and then delivered by Amazon, we can manually set the move as being picked. opw-3594556 opw-3662990 Forward-Port-Of: odoo/enterprise#56943
Original PR description
Currently, synchronizing done order in FBA creates some stock move that are not in the state done anymore. This is due to some changes in the management of the quantity done in stock, that needs to see if the quantity was picked or not. As, in this case, we are confirming a move for products that were stocked in an Amazon Warehouse and then delivered by Amazon, we can manually set the move as being picked. opw-3594556 opw-3662990 Forward-Port-Of: odoo/enterprise#56943
Current behaviour: --- When an employee places an event on a certain day starting at 00:15 to 18:00 on a brussels TZ, the event is stored on the UTC TZ, so starting the day before at 23:15 to 17:00. This behavior shows the employee as available. Expected behaviour: --- The employee should not be available even if the event start on another day. Steps to reproduce: --- 1. Employee and db has a Brussels TZ 2. Go to Calendar 3. Add an event when employee is available 4. Event st
Original PR description
Current behaviour: --- When an employee places an event on a certain day starting at 00:15 to 18:00 on a brussels TZ, the event is stored on the UTC TZ, so starting the day before at 23:15 to 17:00.…
Current behaviour: --- When an employee places an event on a certain day starting at 00:15 to 18:00 on a brussels TZ, the event is stored on the UTC TZ, so starting the day before at 23:15 to 17:00. This behavior shows the employee as available. Expected behaviour: --- The employee should not be available even if the event start on another day. Steps to reproduce: --- 1. Employee and db has a Brussels TZ 2. Go to Calendar 3. Add an event when employee is available 4. Event starts at 00:15 and ends at 18:00 5. Go to website > Appointment 6. Select Mitchell Admin 7. Look at the date, should be unavailable 8. => Still available Cause of the issue: --- https://github.com/odoo/enterprise/blob/d6135811316837d6523e59163739fc9b954be2e6/appointment/models/calendar_appointment_type.py#L295 If the event starts on another day than the slot, it isn't taken into account. Fix: --- Adding events from yesterday and tomorrow to know if they overlap with the slot opw-3599209 Co-authored-by: Boulif Nasreddin <bon@odoo.com> Forward-Port-Of: odoo/enterprise#57284 Forward-Port-Of: odoo/enterprise#52935
Before this commit: ================================ - When we use a longer warehouse address name or company name, the shiprocket will return an error message with `The vendor details / pick up location cannot be longer than 36 characters.` After this commit: ================================ - It will only take 36 characters if the warehouse address name or company name is longer than 36 characters while validating the delivery order. - `Cannot reach the server. Please try again lat
Original PR description
Before this commit: ================================ - When we use a longer warehouse address name or company name, the shiprocket will return an error message with `The vendor details / pick up location cannot be longer than 36 characters.` After this commit: ================================ - It will only take 36 characters if the warehouse address name or company name is longer than 36 characters while validating the delivery order. - `Cannot reach the server. Please try again later.` - If shiprocket returns this error, the delivery order should not be validated. task-3650073 Forward-Port-Of: odoo/enterprise#57002 Forward-Port-Of: odoo/enterprise#53507
Our users, even our best trained colleagues, don't find the `VAT units` menu. It's too hidden in the configuration menu and in debug mode. this commit makes it discoverable. task-3746523 Forward-Port-Of: odoo/enterprise#56765
Original PR description
Our users, even our best trained colleagues, don't find the `VAT units` menu. It's too hidden in the configuration menu and in debug mode. this commit makes it discoverable. task-3746523 Forward-Port-Of: odoo/enterprise#56765
The module is auto-installed, and activating its feature is paying, so not desired. [opw-3180544](https://www.odoo.com/web#id=3180544&model=project.task) Forward-Port-Of: odoo/enterprise#40219
Original PR description
The module is auto-installed, and activating its feature is paying, so not desired. [opw-3180544](https://www.odoo.com/web#id=3180544&model=project.task) Forward-Port-Of: odoo/enterprise#40219
https://github.com/odoo/enterprise/commit/3479940bf8ba5b0efcc5ce9e10a07e30af1d6f87 intended to fix the conditions under which this node appears in the file, but it was wrong. The functional testing missed this, as the sepa_pain_version field got recomputed when updating the account code; so, checking the pain version was indeed the Swiss one, then modifying the account and putting and IBAN recomputed the pain version to 'Generic', hence compromising the test. The condition can actually be mad
Original PR description
https://github.com/odoo/enterprise/commit/3479940bf8ba5b0efcc5ce9e10a07e30af1d6f87 intended to fix the conditions under which this node appears in the file, but it was wrong. The functional testing missed this, as the sepa_pain_version field got recomputed when updating the account code; so, checking the pain version was indeed the Swiss one, then modifying the account and putting and IBAN recomputed the pain version to 'Generic', hence compromising the test. The condition can actually be made simpler: we want the SvcLvl everywhere but in Switzerland. Forward-Port-Of: odoo/enterprise#57164 Forward-Port-Of: odoo/enterprise#57104
This commit adds the Balance and the Profit and Loss report for CZ localization. Those reports follow the Decree No. 500/2002 Coll. It also adds some missing accounts. task-2348644 Forward-Port-Of: odoo/enterprise#54906
Original PR description
This commit adds the Balance and the Profit and Loss report for CZ localization. Those reports follow the Decree No. 500/2002 Coll. It also adds some missing accounts. task-2348644 Forward-Port-Of: odoo/enterprise#54906
To reproduce: ============= - On a fresh database without demo data, install the timesheet_grid module - Create new user demo with following settings: - Project: User - Timesheet: User : all timesheets - Connect as demo and go to timesheet - Timesheets > All Timesheets - On list view Delete the Admin's "Internal" timesheets - Refresh > Timesheets > All Timesheets -> Receive error Problem: ======= The timesheet_grid module makes ORM calls with sample data, that don't exist in th
Original PR description
To reproduce: ============= - On a fresh database without demo data, install the timesheet_grid module - Create new user demo with following settings: - Project: User - Timesheet: User : all timesheets - Connect as demo and go to timesheet - Timesheets > All Timesheets - On list view Delete the Admin's "Internal" timesheets - Refresh > Timesheets > All Timesheets -> Receive error Problem: ======= The timesheet_grid module makes ORM calls with sample data, that don't exist in the database. Solution: ========= The timesheet_grid module should not make ORM calls with sample data. opw-3747297 Forward-Port-Of: odoo/enterprise#57025
When we copy activities, we should also copy their mailings, otherwise when we run campaign it cancels emails. task-3465452 Forward-Port-Of: odoo/enterprise#54418
Original PR description
When we copy activities, we should also copy their mailings, otherwise when we run campaign it cancels emails. task-3465452 Forward-Port-Of: odoo/enterprise#54418
Before this commit user was getting traceback on unselecting all measures in pivot view on mobile. Steps to reproduce: - switch to mobile view. - open the pivot view of any report (tested with the 'tasks analysis' one here). - unselect all measures, the traceback will appear. Observed behavior: a traceback is generated. Expected behavior: no traceback, the action helper is displayed After this commit user will not get traceback on unselecting all measures in pivot view on mobil
Original PR description
Before this commit user was getting traceback on unselecting all measures in pivot view on mobile. Steps to reproduce: - switch to mobile view. - open the pivot view of any report (tested with the 'tasks analysis' one here). - unselect all measures, the traceback will appear. Observed behavior: a traceback is generated. Expected behavior: no traceback, the action helper is displayed After this commit user will not get traceback on unselecting all measures in pivot view on mobile. Instead of that an action helper will be displayed. Task-3630703 Forward-Port-Of: odoo/enterprise#54051
Steps to reproduce: - Create a monthly subscription for a customer with a quantity of 1 - Make an invoice and confirm it - Upsell with 2 quantity - Click on preview in new SO - Total quantity is 5 Issue: Total quantity should be 3 opw-3698971 Forward-Port-Of: odoo/enterprise#55329
Original PR description
Steps to reproduce: - Create a monthly subscription for a customer with a quantity of 1 - Make an invoice and confirm it - Upsell with 2 quantity - Click on preview in new SO - Total quantity is 5 Issue: Total quantity should be 3 opw-3698971 Forward-Port-Of: odoo/enterprise#55329
Steps to reproduce: Make a delivery operation from the United States to Canada or Puerto Rico. Attept to validate the delivery. A traceback appears: ``` File "/home/odoo/src/enterprise/delivery_ups_rest/models/delivery_ups.py", line 154, in ups_rest_send_shipping result = ups._send_shipping( File "/home/odoo/src/enterprise/delivery_ups_rest/models/ups_request.py", line 406, in _send_shipping request['Shipment']['InvoiceLineTotal'] = { KeyError: 'Shipment' ``` To fix the issue we nee
Original PR description
Steps to reproduce:
Make a delivery operation from the United States to Canada or Puerto Rico. Attept to validate the delivery. A traceback appears:
```
File "/home/odoo/src/enterprise/delivery_ups_rest/models/delivery_ups.py", line 154, in ups_rest_send_shipping
result = ups._send_shipping(
File "/home/odoo/src/enterprise/delivery_ups_rest/models/ups_request.py", line 406, in _send_shipping
request['Shipment']['InvoiceLineTotal'] = {
KeyError: 'Shipment'
```
To fix the issue we need to access `request['ShipmentRequest']['Shipment']` instead of `request['Shipment']`.
opw-3710939
Forward-Port-Of: odoo/enterprise#56891The aim of this commit is handling properly intrastat fields in product template. In this commit (https://github.com/odoo/enterprise/commit/175615a7d715d790e9ba5b0addbde1b964164d5d), we change related fields to computed ones but we forgot to add inverse function to handle the case where users want to modify their `product.template` instead of their `product.product`. opw-3755024 opw-3755048 opw-3755048 Forward-Port-Of: odoo/enterprise#57131
Original PR description
The aim of this commit is handling properly intrastat fields in product template. In this commit (https://github.com/odoo/enterprise/commit/175615a7d715d790e9ba5b0addbde1b964164d5d), we change related fields to computed ones but we forgot to add inverse function to handle the case where users want to modify their `product.template` instead of their `product.product`. opw-3755024 opw-3755048 opw-3755048 Forward-Port-Of: odoo/enterprise#57131