Wednesday, January 17, 2024
30 changes
1 change
Resolved issues and error corrections
Copying a marketing automation activity now also copies its related mailing, so duplicated campaigns keep the emails they need. This prevents campaigns from cancelling emails unexpectedly when the copied activity is run.
Original PR description
When we copy activities, we should also copy their mailings, otherwise when we run campaign it cancels emails. task-3465452
24 changes
Resolved issues and error corrections
This update fixes two visual issues in the rental product shop page: removes an unwanted border around the date picker in the sidebar that was causing layout problems, and corrects the validation styling so that invalid rental inputs now properly display with a red border as intended.
Original PR description
### 1. Remove unwanted border Prior to this PR, there was a border on the date picker in the sidebar of the shop page, which created a layout issue. To fix that, this commit removes this border. ### 2. Adapt invalid inputs Prior to this commit, renting inputs were supposed to have a red border when invalid. The related function targeted the wrong name and no longer worked. This commit adapts this function and the style applied to maintain consistency. Requires: - https://github.com/odoo/enterprise/pull/54378 task-3586525
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
The report editor in Web Studio had a critical issue where it couldn't properly save custom changes to inherited reports without breaking the inheritance structure. This fix changes how the editor saves modifications by creating a complete copy of the report layout as an inherited view, ensuring all customizations are preserved correctly and the editor works reliably for users making report changes.
Original PR description
Forward-Port-Of: odoo/enterprise#53791
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
Fixed critical issues when multiple point-of-sale systems use the same Worldline payment terminal simultaneously. The update prevents system crashes caused by conflicting requests and ensures each payment terminal correctly routes responses to the right checkout location. This improves reliability for businesses operating multiple checkout lanes or locations sharing the same payment hardware.
Original PR description
Mirror of the following PR for WorldlineDriver_W: https://github.com/odoo/enterprise/pull/53951 Apart from the changes same as in the mentionned PR desribed below this PR also improves the…
Mirror of the following PR for WorldlineDriver_W: https://github.com/odoo/enterprise/pull/53951 Apart from the changes same as in the mentionned PR desribed below this PR also improves the WorldlineDriver_W. It adds some very much needed logging and smart sleep mechanics already present in the WorldlineDriver_L. It also adds a unique buffer size for all the variables used by C++ code (also already on WorldlineDriver_W). Finally it adds some comments to the C++ variables mapping to easily identify them (you guessed it, also on WorldlineDriver_W already). The description below matches the https://github.com/odoo/enterprise/pull/53951 Currently, if you have 2 browser tabs or 2 different PoS using the same Worldline terminal, there was a way to do some damage if requests were started at the same time 1) Since we call C++ code through a thread without a mutex, it was possible to get a race condition and provoke a segmentation fault 2) Even if there was no race condition, we were not specifying to who the driver is replying all the time. So a cancel request on the 1st PoS could cancel an active transaction on the 2nd PoS. This PR fixes both issues by specifying the owner of the request and the cid in every single response sent from the driver to the frontend. I am also adding the cid to the data sent in a cancellation request as otherwise we don't know which transaction line we're cancelling. It replaces the threads by a queue to avoid race conditions in the future and respect the condition that all the Driver class logic must be executed in the "run" method for safe execution. It also fixes the Last Transaction Status popup which could accidentally "catch" the response from a transaction since it doesn't care about the cid. This PR also makes the popup consistent with the response (using error popup for a response resulting in an error). task-3676153 Forward-Port-Of: odoo/enterprise#54073
This update fixes three critical issues in the manufacturing shopfloor module that were preventing proper production order closure and workorder management. The fixes address problems with closing multiple productions simultaneously, restore access to the shopfloor from production forms, and correct workorder deletion behavior to prevent unintended data transfers.
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 update adds two new commodity codes for banana imports that replace an outdated code as of January 1, 2024. The change ensures accurate classification of banana products in international trade reporting, with separate codes for Canary Island bananas and other banana varieties. This keeps the system compliant with updated trade nomenclature standards.
Original PR description
From the 1st of January 2024, commodity code [0803 90 10] is replaced by these 2 new codes: - [0803 90 11] Plátano de Canarias - [0803 90 19] Others Source: https://www.nbb.be/en/statistics/foreign-trade/nomenclature-and-codes  opw-3676899 Forward-Port-Of: odoo/enterprise#54359 Forward-Port-Of: odoo/enterprise#54102
This update fixes a critical bug in the Journal Report where using the Analytic Groupby feature caused the system to crash. The fix prevents users from attempting to use this unsupported feature and also disables Horizontal Grouping and Period Comparison options that were making the report difficult to read. Users will now see a clear message if they try to use these features instead of encountering an error.
Original PR description
Descritpion of the issue/feature this commit addresses: At the moment, trying to use the analytic groupy on the Journal Report results in a traceback. It is not possible to use it at all. --- Steps…
Descritpion of the issue/feature this commit addresses: At the moment, trying to use the analytic groupy on the Journal Report results in a traceback. It is not possible to use it at all. --- Steps to reproduce: 1-Activate the Analytic Accounting in the settings 2-Activate the Analytic Groupby in the Journal Report's options 3-Go to the Journal Report and apply any Analytic Groupby filter 4-A traceback shows up --- Desired behavior after this commit is merged: This commit handles the issue by adding a check at the very start of the custom handler of the Journal Report. This new check verifies that no analytic groupby filter is being applied on the report. If it is the case, an error is raised to tell the user the feature is not supported by that report. While at it, the Horizontal Grouping and Period Comparison options have also been disabled because their rendering was making the report unreadable and they added no value to it. With this commit, the Journal Report can't use Analytic Groupby, Horizontal Grouping or Period Comparison. --- task-3600349 Forward-Port-Of: odoo/enterprise#53807
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 corrects two critical bugs in the manufacturing unbuild process. When unbuilding a manufacturing order where the actual quantity produced differs from the original planned quantity, the system now correctly uses the actual produced quantity instead of the planned quantity. This ensures inventory adjustments are accurate and match the actual production output.
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1” with BoM:
- Component: C1, Qty: 1
- Create a Mo to produce 5 units of P1
- Confirm and mark as done the MO
- Unlock the MO
- Change the qty produced to 20
- Try to unbuild the MO
Problem:
Bug 1: The wizard triggered is set with the product_qty(5) instead of the qty_produced (20)
Bug 2: Set the product_qty to 5 and validate the unbuild, in result
the stock moves in the unbuild order are 20 units instead of 5 units
opw-3630001
Forward-Port-Of: odoo/odoo#148676
Forward-Port-Of: odoo/odoo#146211This update fixes a visual issue where review dialog boxes on course pages were displaying duplicate borders. When users click to add or edit a review on a course, the dialog box will now display cleanly without the redundant border styling that was previously visible.
Original PR description
Before this PR =================== 1). Go to website slides. 2). Open any Course. 3). Click on 'Add a review' or 'Edit your review'. -> We can see that textarea and div both have a border. After this PR ================= When we are in the pop-up view div border will be not shown. Task-3623765
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