Wednesday, January 17, 2024
25 changes · 17.0
Enhancements to existing features
This update optimizes the layout of form views by reducing the horizontal space used by the chat panel, allowing more room for the main form content. The change removes the WhatsApp button icon from the chat area to save additional space, making the interface more efficient and easier to use.
Original PR description
Currently the form sheet have a flex-grow-1, the chatter could use less horizontal space to leave more space for the form sheet's content. This commit follows it's community counterpart, removing the icon of the whatsapp button in the chatter to save space. Community PR: https://github.com/odoo/odoo/pull/147136 task-3641988
The unrealized currency gain/loss report now generates significantly faster on databases with large amounts of transaction data. Performance has been improved from 13-15 minutes down to approximately 2 minutes through database query optimization, making the report more responsive for users.
Original PR description
On database with large amount of move lines, the report is really slow to generate, this commit improve a bit the situation by: 1/ replacing the `amount_residuals_by_aml_id` CTE by a `LATERAL JOIN` 2/ Fixing inefficient subquery that exclude move line of an exchange move (`NOT IN` -> `NOT EXISTS`) 3/ rounding the `amount_residual` (aka "Balance in Foreign Currency") so that line where reconciled amount sum is not strictly zero (epsilon) are all correctly excluded On our test database, the report now render in ~2 minutes, down from ~13-15 minutes before OPW-3646825 Forward-Port-Of: odoo/enterprise#54014
This update improves the Indian Point of Sale system to detect missing company state information earlier in the process. Instead of encountering an error when confirming an order, users will now see the error when opening a POS session, allowing them to fix the configuration issue before starting work. This prevents wasted time and provides a better user experience.
Original PR description
Before PR: --- If state is not set in the company,it gives error on order confirmation. After PR: --- If state is not set in the company, now it gives error when opening POS session. task id: 3360161 Forward-Port-Of: odoo/odoo#149381 Forward-Port-Of: odoo/odoo#124605
This update prevents automated webhook actions from accidentally sending data to external servers when using test databases. The webhook URL is now set to an invalid address in test environments, and a warning is logged when these actions run. This protects your organization from unintended data transfers during testing.
Original PR description
The user can define automated actions for sending data to a remote server using a webhook. To prevent this feature from sending unwanted data from a test database, this commit neutralizes the field `webhook_url` to an invalid URL. When the action is run, a warning is logged.
Resolved issues and error corrections
Fixed an issue where product and component filters were not being applied correctly when navigating to the Master Production Schedule (MPS) from the Bill of Materials view. The search filter appeared in the search bar but wasn't actually filtering the displayed items. This fix ensures the correct filter domain is passed when launching the MPS view.
Original PR description
When clicking on "schedules" from the BoM view, the domain in the search bar is correctly set, but the product/components displayed are not filtered. The empty domain from the props was set as the domain because an empty array is true in js. This fix checks is the length of the props domain array is greater than 0, else set its value to the SearchModel domain. opw-3548470 Forward-Port-Of: odoo/enterprise#51415 Forward-Port-Of: odoo/enterprise#51365
This update fixes a limitation in the manufacturing work order tablet view where users couldn't add steps to operations that didn't already have any steps assigned. Now, a dedicated "Add Step" button appears when clicking "Worksheet Improvement," making it easy to add steps to any operation regardless of its initial state. This improvement streamlines the worksheet creation process for manufacturing teams.
Original PR description
Before this PR: ----------------------------- - It is possible to add a step to an operation in the tablet view if it already has any steps, but it is not possible if it doesn't have any steps initially. After this PR: ----------------------------- - The issue has been resolved by adding a pop-up button that appears upon clicking for worksheet improvement. - If there are no steps initially assigned, the button will prompt the addition of steps. - If steps are already assigned, it will function as before. task_id : 3551582 Forward-Port-Of: odoo/enterprise#49703
Users can now successfully delete certificates from their Mexican company settings without encountering validation errors. Previously, attempting to remove a certificate would fail because the system couldn't properly handle the deletion of the required company relationship. This fix enables proper certificate management for companies using Mexican electronic invoicing.
Original PR description
Currently, you cannot delete a certificate. ### Steps to reproduce - install `l10n_mx_edi` * switch to a Mexican company * go to the settings * under 'MX Electronic invoicing', delete a line from the 'Certificates' field * attempt to save You should be met with a validation error. ### Cause In the `Certificate` model, the `company_id` field is defined as a `Many2one` relation to the `ResCompany` model and is marked as `required=True`. The inverse relation in the `ResCompany` model contains a `certificate_ids` field. When saving after removing a certificate in the settings, Odoo attempts to unlink the certificate from `company_id.certificate_ids`. Due to the defined relationships, this will result in the system trying to set the `certificate.company_id` field to `False`. However, since `company_id` is a required field, this operation leads to an error. opw-3664517
This update fixes the UPS delivery integration to include email addresses for shippers and recipients in shipping requests. Previously, email information was missing from shipment data sent to UPS, which could cause delivery issues or incomplete shipment records. This fix ensures all necessary contact information is properly transmitted.
Original PR description
This commit adds email address to the data sent for the `Shipper`, `ShipFrom` and `ShipTo`. opw-3487959 Forward-Port-Of: odoo/enterprise#53759 Forward-Port-Of: odoo/enterprise#53578
This update addresses several issues in the Australian payroll module including correcting salary rule accounts, adding missing salary rules, fixing report labels and formatting, and resolving leave withholding calculations. These fixes ensure accurate payroll processing and reporting for Australian businesses using the system.
Original PR description
- Fixes missing report label - Fixes incorrect accounts on salary rules - Remove unused salary rules - Adds missing salary rules - Fixes missing leave withhold - Fix report formatting task - 3569881
A recent update to the currency rate system introduced a bug that prevented fetching exchange rates from multiple providers. This fix restores the ability to retrieve rates from all configured providers, ensuring more reliable and comprehensive currency data for your business operations.
Original PR description
In a previous commit [1], we modified the code to update the currency rates, introducing a bug where we could only get the currency rates from the first provider. This commit fixes that. [1] 24012f9db268a7722275a508374498bb18bbebdc Forward-Port-Of: odoo/enterprise#54055 Forward-Port-Of: odoo/enterprise#54025
This update resolves an issue where the account reconciliation wizard would fail when attempting to fully reconcile two exchange differences. The fix ensures that exchange difference reconciliations complete successfully without errors, improving the reliability of the accounting reconciliation process.
Original PR description
When reconciling two exchange differences that should result into a full reconciliation the wizard raise an error. Forward-Port-Of: odoo/enterprise#54112
This fix resolves a technical error that occurred when users tried to create a new staff booking in the calendar gantt view. The issue was caused by incorrect data formatting when assigning staff members to a booking. After this fix, users can now successfully create new staff bookings without encountering errors.
Original PR description
This traceback arises when the user tries to create a new `Staff Booking` in a `gantt` view. To reproduce this issue: 1) Install `Appointment` 2) Open `Appointment/Schedule/Staff Booking` 3) Click on…
This traceback arises when the user tries to create a new `Staff Booking` in a `gantt` view.
To reproduce this issue:
1) Install `Appointment`
2) Open `Appointment/Schedule/Staff Booking`
3) Click on `New` in gantt view of `Staff Booking`.
4) Traceback arises.
Error:-
```
TypeError: 'int' object is not subscriptable
File "odoo/http.py", line 2150, in __call__
response = request._serve_db()
File "odoo/http.py", line 1722, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1749, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1953, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 24, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 20, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 466, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "addons/web/models/models.py", line 953, in onchange
if cmd[0] in (Command.UPDATE, Command.LINK):
```
In `default_get` method, the `partner_ids` value is given as a list of ids.
https://github.com/odoo/enterprise/blob/43f09c5ed91f012a4caa12379ef913ab77de8d2c/appointment/models/calendar_event.py#L41-L42
Which leads to a traceback from here.
https://github.com/odoo/odoo/blob/5e9918f8459c113f1fbf5e59c167fc79a0767f6a/addons/web/models/models.py#L946-L954
After applying this commit, It will resolve the issue by assigning a value using command.
sentry-4625709760Fixed an issue where the "hide zero lines" filter option in account reports was not being saved, causing users to lose their preference when reloading the page. This update ensures that filter settings are now properly retained between page refreshes, improving the user experience.
Original PR description
Filter 'hide zero lines' wasn't saving the option, so I was not persistent between pages reload.
This fix corrects a bug where fixed taxes were being incorrectly discounted when promotional programs were applied to sales orders. Fixed taxes should remain unchanged when discounts are applied, as they are separate from the product price. This ensures accurate tax calculations and prevents customers from receiving unintended tax reductions.
Original PR description
Have a product with percent tax and fixed tax Have a promo program applying 50% on the order Create a sale order - Add the product - Add the promo Issue: The fixed tax is discounted We should ignore fixed taxes when applying promotions. opw-3580170 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#146947 Forward-Port-Of: odoo/odoo#145567
This update fixes an issue where emails with multiple attachments were incorrectly creating duplicate invoices in the expense module. The fix restores proper logic for determining when attachments should be automatically processed, while adding a control mechanism to disable this feature when needed. This ensures expense documents are handled correctly without creating unwanted duplicates.
Original PR description
Problem --------- In the commit 24345812cb015e86f362f8c35176646239bfb803 (odoo), we modified the extraction of attachment in such a way that mails coming in a journal from aliases with several…
Problem --------- In the commit 24345812cb015e86f362f8c35176646239bfb803 (odoo), we modified the extraction of attachment in such a way that mails coming in a journal from aliases with several attachments create several invoices. Due to the urgency of the task, the computation of whether an attachment needs auto-extraction or not, has been skipped which failing some tests that had been silenced. Linked https://github.com/odoo/enterprise/pull/49816 fixes it. However, as a comment on the said PR suggested, we should add a context key that disable the auto-extraction. Objective --------- Add a context key that disable the auto-extraction and update commit [2bfe69be5c64743d0bf35793a427878170d0b3c6](https://github.com/odoo/enterprise/commit/2bfe69be5c64743d0bf35793a427878170d0b3c6) (enterprise) to use the said context key. Solution --------- 1. Remove the override of the `_needs_auto_extract` 2. Manually set the main attachment of the created moves so that `register_as_main_attachment` is not called when accessing the move. This removes the auto-extraction without the need to use the key (we still keep the context key as suggested by the OCR team). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix resolves an issue where employee expenses were appearing twice in project profitability reports—once as "Expenses" and once as "Vendor Bills." The solution modifies how the system filters expenses to prevent duplication, ensuring accurate financial reporting for projects without requiring additional modules to be installed.
Original PR description
… project upgrade report Issue Description: ====================== There is an issue in the project upgrade report where an expense with a related analytic account appears twice. This occurs once as…
… project upgrade report Issue Description: ====================== There is an issue in the project upgrade report where an expense with a related analytic account appears twice. This occurs once as "Expenses" and again as "Vendor Bills". This problem does not manifest on runbot with all apps installed, indicating a specific configuration issue. The installation of the 'project_purchase' module resolves the issue, as the method "_get_already_included_profitability_invoice_line_ids" within both the "project_purchase" and "project_hr_expense" modules performs a check for an 'expense_sheet_id' in account moves. This check helps to exclude these entries from the profitability items, thereby preventing duplication. However, while this solution is effective, it leads to an undesirable addition of the Purchase app to the client's database, which is not acceptable for the client. Relevant code sections: https://github.com/odoo/odoo/blob/1fbcfdf69b503e77e1a931d23dd47df0daf8b2fe/addons/project_hr_expense/models/project_project.py#L70-L78 https://github.com/odoo/odoo/blob/1fbcfdf69b503e77e1a931d23dd47df0daf8b2fe/addons/project_purchase/models/project_project.py#L138 Steps to Reproduce: ====================== 1. Install Expense, Accounting, Project, Sales, Employees, Contacts apps on base runbot. 2. Create a service product with 'Prepaid/Fixed Price' and ensure 'Create an Order: Project & Task' is selected. 3. Create and confirm a sales order for the service product created in step 2. 4. In the Expenses app, create an employee-paid expense linked to the sales order's analytic account (e.g., Analytic Distribution: Departments > S00074). 5. Follow the process in the Expenses app by clicking on 'Create Report' > 'Submit to Manager' > 'Approve' > 'Post Journal Entries'. 6. Access Project Updates in the Projects app. 7. Observe that in the project profitability cost section, the same expense is listed twice under different labels: once as "Expenses" and once as "Vendor Bills". Proposed Solution: ====================== The proposed solution involves modifying the domain of the `_add_purchase_items` function within the `project_account` module, specifically at [this code section](https://github.com/odoo/odoo/blob/763f88e2d45cb7ba107db135eecd0365ba2b8c8b/addons/project_account/models/project_project.py#L14). The enhancement would entail adding a condition to the function's domain to exclude any IDs that are already present in the profitability report. This approach will efficiently prevent the double counting of expenses, ensuring that each expense is represented only once in the project profitability report, thereby maintaining accuracy and consistency in financial tracking. This solution focuses on enhancing the existing functionality with a targeted and efficient modification, ensuring minimal impact on other system components while effectively addressing the issue. opw-3522293 Forward-Port-Of: odoo/odoo#149485 Forward-Port-Of: odoo/odoo#148986
This fix prevents customers from accidentally receiving multiple loyalty cards when processing orders in the Point of Sale system. Previously, if a sale order was created but not confirmed before being settled at the register, the system would create two separate loyalty cards for the same customer. The fix checks whether a customer already has a loyalty card before creating a new one, ensuring each customer has only one active card.
Original PR description
Current behavior: When you create an order for partner A but do not confirm it, then settle the order in the PoS and add some product. You will have 2 loyalty cards created for partner A. This is…
Current behavior: When you create an order for partner A but do not confirm it, then settle the order in the PoS and add some product. You will have 2 loyalty cards created for partner A. This is happening because when you confirm the order in the PoS it will confirm the sale order and create a first loyalty card, but the PoS will not be aware of this and when it will try to apply the point for the product added through the PoS it will create a new loyalty card. Steps to reproduce: - Activate a loyalty program - Create a partner A - Create a sale order for partner A but do not confirm it - Go to the PoS and settle the order - Add some product to the order - Pay the order - Go to the backend and check the loyalty cards for partner A - You will have 2 loyalty cards created To avoid this we will check if the partner has a loyalty card before creating a new one. opw-3582174 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149482 Forward-Port-Of: odoo/odoo#145782
This fix prevents customers from using expired eWallets to pay for orders or adding funds to expired eWallets in the Point of Sale system. Previously, the system allowed transactions with expired eWallets, which could lead to financial and compliance issues. The update ensures that only valid, non-expired eWallets can be used for payments.
Original PR description
Current behavior: It was possible to use an expired eWallet to pay for an order. It was also possible to put money on an expired eWallet. Steps to reproduce: - Create an eWallet with an expiration date in the past - Open PoS and add products to the order - Click on the eWallet button - You can still use the eWallet to pay for the order opw-3568270 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149484 Forward-Port-Of: odoo/odoo#145801
This fix resolves an issue where users couldn't select existing projects when configuring time off types in the timesheet section. The system was incorrectly suggesting to create new projects instead of recognizing projects that already existed. This was particularly problematic for single-company setups where company filtering wasn't visible to users.
Original PR description
Curently when trying to select an existing/newly created project in the timesheet section of time off types, it will not recognize that the project exists and will suggest to create it. Steps to…
Curently when trying to select an existing/newly created project in the timesheet section of time off types, it will not recognize that the project exists and will suggest to create it. Steps to reproduce: ------------------- * Go to **Setting** -> Enable timesheets * Go to **Time Off** App -> Configuration -> Time off types * Create new type * Go to **Project** App * Create a new project * Go back to the configuration of the new time off type * Enable **developer mode** * Under timesheet section, select project * Try selection the new project created * It suggests to create the project/does not recognize it is already created. Why the fix: ------------ In multi-company this issue can be handled by going into the settings of the project and selecting the same company as the one in the time off type. This issue is more problematic in case of single company because the field `company_id` is not available in neither the project form nor the time of type. As of currently, the `company_id` on time off type is by default the current company, while it is `False` by default for the project. This PR introduced that behavior: https://github.com/odoo/odoo/pull/122144 Since the `company_id` can now also be `False`, it makes sense to enlarge the filter domain on the time off type form. With that in place, the field `timesheet_task_id` also requires changes because a task created in a project with no `company_id` will not have a `company_id`. opw-3644265 Forward-Port-Of: odoo/odoo#148317
This update corrects how inventory moves are tracked in the stock system by ensuring the proper owner is assigned to all moves. Previously, some inventory moves were missing owner information, which caused incorrect stock quantity calculations when reviewing historical data. This fix ensures accurate inventory reporting going forward.
Original PR description
**Description of the issue/feature this PR addresses:** As `_compute_quantities_dict` does use `stock.move` as a source of calculation we need to make sure that the dedicated owner is set also on…
**Description of the issue/feature this PR addresses:** As `_compute_quantities_dict` does use `stock.move` as a source of calculation we need to make sure that the dedicated owner is set also on inventory moves which was forgotten and resulted in wrongly computed quantities in the past in case of such an use case. **Current behavior before PR:** As the owner was not set properly on inventory moves, the dates in the past calculation went wrong and included those moves. **Desired behavior after PR is merged:** From now on only the proper moves will be taken into account. To get this properly for instances out in the wild, it would be helpful to include a fix for the moves without the proper owner somewhere (basically align with `owner_id` of the `stock.move.line`) Let me know where we will fix this to have again consistency in databases... Info: @wt-io-it --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149334
This update reverts a previous change that was causing formatting problems in customer feedback messages. The original fix applied an inline display style too broadly, which broke the normal layout of text elements. The team is reverting this change while they work on a better solution to address the underlying issue with unwanted line breaks in helpdesk rating feedback.
Original PR description
This reverts commit 185adf6fb487fa260bb6dfe985638bc545de7fa2. The change was made to "fix" line breaks with rating feedback in helpdesk. However, it's not ok to apply `inline` display layout for all non-user made message body, as usual block display is expected for html tags like `<div>` or `<p>`. The correct fix should be to remove these unwanted `<br>` in the feedback rating messages. We don't know how they appeared, but this is a specific minor issue in helpdesk rating, so reverting the fix is a higher priority. Forward-Port-Of: odoo/odoo#149516
This update fixes two display problems when adding videos to Image Gallery and Images Wall page sections: videos now display at the correct size instead of appearing too small, and the spacing option now works properly with videos. While these sections were originally designed for images only, users can now add videos with proper formatting.
Original PR description
[FIX] website: fix video in Image Gallery and Images Wall Steps to reproduce: bug 1: - Enter edit mode. - Drag and drop an "Image Gallery" snippet onto the page. - Double-click on an image within the…
[FIX] website: fix video in Image Gallery and Images Wall
Steps to reproduce:
bug 1:
- Enter edit mode.
- Drag and drop an "Image Gallery" snippet onto the page.
- Double-click on an image within the snippet.
- In the media dialog, click the "Video" tab.
- Copy-paste a YouTube video URL into the URL input.
- Save the media dialog by clicking on the "Add" button.
- Bug: The video is very small.
bug 2:
- Drag and drop an "Images Wall" snippet onto the page.
- Double-click on an image within the snippet.
- In the media dialog, click the "Video" tab.
- Copy-paste a YouTube video URL into the URL input.
- Save the media dialog by clicking on the "Add" button.
- Bug: the spacing around the video is not correct and the "spacing"
option does not work for the video.
Note that the "image gallery" snippet (also the "image wall" snippet)
was not initially designed to handle anything other than images. When
you click on the "Add" button of the snippet, you can only add images.
However, by following the steps described above, it's possible to work
around this limitation and add a video to the snippet. Since this was
not part of the original plan, several options do not function correctly
with a video.
Instead of preventing the addition of videos, we have chosen to allow it
and focus on fixing the main issues (the small size of the video and the
"spacing" option which does not work with videos). So, if someone
specifically wants to add a video, it's currently possible, though some
features may not work as intended.
task-3597156
Forward-Port-Of: odoo/odoo#148637Fixed the Dutch tax report to correctly display Section 5 (Voorbelasting, kleineondernemersregeling en totaal) without showing the total amount. This ensures the tax report displays the correct information structure when users define the current fiscal year.
Original PR description
Steps to reproduce: - Open Tax report - Define "current fiscal year" Issue: Dutch tax report should not display the totaal of `Rubriek 5: Voorbelasting, kleineondernemersregeling en totaal (BTW)` opw-3446056 Forward-Port-Of: odoo/odoo#143841
This fix prevents Google Meet links from being automatically added to calendar events when a physical location is already specified. Previously, users would receive both a location and a Google Meet link in the same event, causing confusion about the actual meeting format. Now, the system correctly checks if a location is set before generating a virtual meeting link.
Original PR description
Issue
When a location is set on an event, the google meet link is also
generated, leading to confusion about the meeting format.
Steps to reproduce
- Create an event with a location
- Sync the Calendar with Google.
- Observe that a Google Meet link is sent with the email.
Solution
check if the loacation is set before generating a google meet link.
opw-3589379
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#146561This update fixes a performance issue in spreadsheets where unnecessary network requests were being made when using relational filters without default values. The fix prevents these wasteful data requests from being triggered during spreadsheet loading, resulting in faster performance and reduced server load.
Original PR description
- define a relational global filter without any default value. - reference that filter with `ODOO.FILTER.VALUE` => when loading the spreadsheet, a `read` RPC is triggered with an empty list of ids. This is: - useless network call - useless evaluation when the RPC resolves --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr