Wednesday, March 20, 2024
43 changes · saas-17.1
Resolved issues and error corrections
The Planning profile button now appears correctly when both the logged-in user and the target employee belong to multiple companies. This fixes a visibility issue so users can reliably access employee profile details in multi-company setups.
Original PR description
Currently, when the user and the target both are in multiple companies, the profile button cannot be displayed correctly. Since the employee_id uses `('company_id', '=', self.env.company.id)` rather than `in`.
In community branch we fixed it by checking employee_ids directly and if it is found, the profile button will be displayed correctly.
In order to accommodate that change, we needed to filter out employee_ids and add employee_id in fields for patchAvatarCardResourcePopover, as resource.resource has no field employee_ids.The salary package wishlist now groups available cars by category, matching the company car benefit experience. This makes it easier for employees to browse and compare vehicle options consistently.
Original PR description
Since the wishlist benefit displays cars, they should be grouped by category as for the Company car benefit.
The Studio app creation screen has been adjusted so the final “Create your App” button remains clearly visible in Chrome at normal zoom. This removes the need for users to zoom out and helps them complete new app creation without confusion.
Original PR description
Steps to Reproduce : - Toggle Studio from Odoo Dashboard - Click on create new app button --> Enter App name and Respective model - The `Create your App` button in Chrome will ultimately not be clearly visible at 100% zoom; the user must currently zoom out to see the button. video link: [Video](https://drive.google.com/file/d/1ug8VFpC10l4o_HFRQOnvwbUDO9yg_rzq/view) Observed behavior: - `Create your App` button is not visible. Expected behavior: - `Create your App` button should be visible clearly. Task-3794467
This update resolves an issue where users could interact with the 'load more' button in the Kanban view when the system was running on sample data. This change ensures that the Kanban view functions correctly, regardless of whether it's using live data or a sample dataset, improving user experience.
Original PR description
This commit fixes an issue where one could interract with the load more button of the kanban view even in sample data mode. task-3754233
This update resolves an issue where the profile button wasn't appearing correctly when users and targets were associated with multiple companies. The fix now accurately checks for employee IDs across all companies, ensuring the profile button is displayed as expected for users with complex company relationships.
Original PR description
Currently, when the user and the target both are in multiple companies, the profile button cannot be displayed correctly. Since the employee_id uses `('company_id', '=', self.env.company.id)` rather than `in`.
This commit fixes the issue by checking employee_ids directly and if it is found, the profile button will be displayed correctly.
We don't care about which employee_id is used if there are multiple, since the user are in multiple companies as well. If looking for a specific profile, the employee can be found in the HR application.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#157741The project task progress bar was incorrectly displaying a value of '1' instead of '100' when timesheets were logged. This update corrects a calculation error that was introduced recently, ensuring the progress bar accurately reflects the percentage of time logged on tasks. This improves the visibility and accuracy of task progress for users.
Original PR description
### Steps to reproduce: - Install **Field service** app. - Go to Field Service app and create a new task, with Allocated Time of 5 hours. - In the new ticket, Log 5 hours in the **TimeSheets** tab. - Go to the tasks list. - Notice how the progress bar of the new task shows **1** _instead_ of **100** although 5 out of 5 hours have been logged. ### Investigation: - 8389722b1abdef029799c3c082a44e30dafb24b1 introduced the new **ProjectTaskProgressBarField** component. - 4a93d9aee957dd3feb3db0cb69eb3b8f0f4a4683 introduced a change to calculate the `task.progress` as a _fraction_ instead of a _percentage_ https://github.com/odoo/odoo/blob/7280dd53bc14f7c398c63a1f719987bcab7c257a/addons/hr_timesheet/models/project_task.py#L102 - But the **ProjectTaskProgressBarField** wasn't adapted to that change working with percentage values. opw-3790397
This update corrects a formatting issue in the Czech localization for Odoo. It ensures that the Company ID (IČO) is displayed before the VAT ID (DIČ), aligning with Czech reporting standards. The change also clarifies the label for the Company ID to 'Company ID' for better readability.
Original PR description
In Czech republic, the standard is to first render Company ID (IČO), and then to render VAT ID (DIČ). - Changing the position to before (not after), so company ID renders before VAT ID. - Changed label from "ID" to "Company ID" (so it is obvious in what ID it is). Original fixes by @cunivca: odoo/odoo#149339, odoo/odoo#149340, merged into one. Related: https://github.com/odoo/odoo/commit/d0704a19de31e0251d343081ae6b3da9991a248e Forward-Port-Of: odoo/odoo#157993
This update corrects a visual issue where the 'billable' message within the project timesheet was incorrectly positioned. The fix involved refining the system's targeting of the message element, ensuring it appears in the correct location for users. This improves the clarity and usability of the timesheet feature.
Original PR description
Versions: --------- - 17.0 Issue: ------ Message for flag timesheet from project as billable/non-billable is misplaced. Cause: ------ Xpath given for Message placed in sale_timsheet is not very specific. Solution: --------- Give accurate xpath for message div. task-3630449 Forward-Port-Of: odoo/odoo#148880
This update resolves a sporadic failure in a key WebSocket test, ensuring more reliable test results. The fix addresses a timing issue where the test was prematurely evaluating the connection before it was fully established. This improves the overall stability of the Odoo platform.
Original PR description
Before this commit, the `test_websocket_instances_weak_set` was sometimes failing. Indeed, this test doesn't wait for the connection to be fully established before making its assertions. This commit fixes this issue. fixes runbot-55037,55035 Forward-Port-Of: odoo/odoo#157510 Forward-Port-Of: odoo/odoo#157433
This update resolves an issue where a manufacturing smart button was incorrectly displayed during resupply picking for subcontracting orders. The change ensures that this button is hidden, aligning with the intended workflow and preventing potential user confusion. This improves the user experience and data accuracy for subcontracting processes.
Original PR description
Create a [TEST] product: - Routes: - Replenish on Order (MTO) - Buy Assign to [TEST] the following Bill of Material: - BoM Type: Subcontracting - Subcontractors: [Partner] - Components: - [component 1] - [component 2] Components are set up as follows: - Routes: - Buy - Resupply Subcontractor on Order Now create a PO: - Partner: [Partner] - Product: [TEST] Confirm the PO Go to the created resupply picking Issue: there is a smart button for manufacturing The MO should not be visible and the smart button should not be there. opw-3801113
Miscellaneous changes
Before this commit, when the current user did not have `hr.group_hr_user` group and creates a timesheet for an employee in his team, he could get a traceback before one field defined only `hr.employee` model cannot be fetched in `hr.employee.public` by the ORM. The reason is because when the user creates a timesheet in a task without any company set, we will take the company of the employee set on the timesheet to set it in the new timesheet, by doing that, the ORM will prefetch the fields of `h
Original PR description
Before this commit, when the current user did not have `hr.group_hr_user` group and creates a timesheet for an employee in his team, he could get a traceback before one field defined only…
Before this commit, when the current user did not have `hr.group_hr_user` group and creates a timesheet for an employee in his team, he could get a traceback before one field defined only `hr.employee` model cannot be fetched in `hr.employee.public` by the ORM. The reason is because when the user creates a timesheet in a task without any company set, we will take the company of the employee set on the timesheet to set it in the new timesheet, by doing that, the ORM will prefetch the fields of `hr.employee` and returned the company from its cache. This commit makes sure we will not have any issue when we try to get the company of the employee to set in the new timesheet if one field defined in `hr.employee` is not defined in `hr.employee.public` and has to be prefetched by the ORM. Steps to reproduce (in 17+) ================== 0. install `hr_timesheet` and `pos_blackbox_be` modules. 1. create a user A with `hr_timesheet.group_hr_timesheet_approver`, without any access to Employee app 2. create a project and a task without any company set (default value) 3. log in as user A 4. go to the form view of task created in step 2 5. add a timesheet and save the form view Expected Behavior ================= The timesheet should be added in the task and the form view should be saved without any issue. Actual Behavior =============== A traceback is occured saying "The fields 'insz_or_bis_number' you try to read is not available on the public employee profile" opw-3769277 Forward-Port-Of: odoo/odoo#156506
`_get_checkout_steps` didn't provide a friendly way to add steps in the checkout flow. Developers had to reimplement part of the parent logic in their overrides. This commit introduces `get_checkout_step_list`. This method will allow an easier override of the checkout steps while keeping the logic to return a single step in the parent method. Forward-Port-Of: odoo/odoo#158026
Original PR description
`_get_checkout_steps` didn't provide a friendly way to add steps in the checkout flow. Developers had to reimplement part of the parent logic in their overrides. This commit introduces `get_checkout_step_list`. This method will allow an easier override of the checkout steps while keeping the logic to return a single step in the parent method. Forward-Port-Of: odoo/odoo#158026
The account move search was not enough specific to retrieve only one account move. The following `assert` sometimes failed because of this. This commit reinforces to search to get only one account move opw: runbot error 60338 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#158050
Original PR description
The account move search was not enough specific to retrieve only one account move. The following `assert` sometimes failed because of this. This commit reinforces to search to get only one account move opw: runbot error 60338 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#158050
Some methods were using the `self.env` to decide users/partners while those methods can also be called from Cron, thus the user would end up to be OdooBot instead of the partner that initiated the async sending. Forward-Port-Of: odoo/odoo#157991
Original PR description
Some methods were using the `self.env` to decide users/partners while those methods can also be called from Cron, thus the user would end up to be OdooBot instead of the partner that initiated the async sending. Forward-Port-Of: odoo/odoo#157991
Steps to reproduce: - - Create a request for quotation for a product with set vendor Taxes - Create an alternative purchase order from that RFQ with Copy Product Current Behavior: - The purchase order line of the PO associated with the created alternative does not compute the taxes. Expected behavior: - The taxes should be computed in the same way as if the PO was created manually and then linked to the alternatives. Cause of the issue: - When creating a PO manually, the taxes
Original PR description
Steps to reproduce: - - Create a request for quotation for a product with set vendor Taxes - Create an alternative purchase order from that RFQ with Copy Product Current Behavior: - The purchase…
Steps to reproduce: - - Create a request for quotation for a product with set vendor Taxes - Create an alternative purchase order from that RFQ with Copy Product Current Behavior: - The purchase order line of the PO associated with the created alternative does not compute the taxes. Expected behavior: - The taxes should be computed in the same way as if the PO was created manually and then linked to the alternatives. Cause of the issue: - When creating a PO manually, the taxes of each purchase order line are computed when the product is set during the call of the `onchange_product_id` onchange method: https://github.com/odoo/odoo/blob/64c13193ae0fe23eb1b426f5bbcd8531e9a40967/addons/purchase/models/purchase.py#L1221 https://github.com/odoo/odoo/blob/7ed0a773b6e0711b127f236ce665c35202d973bc/addons/purchase/models/purchase.py#L1055-L1061 By contrast, PO created from the `action_create_alternative` generate each `purchase.order.line` using `Command.create`. Therefore these lines will not trigger the onchange method and their taxes will not be computed. Fix: - To KISS, we compute the taxes of each line just after the creation of the record using the `_compute_tax_id` method. opw-3750719 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155060
How to reproduce: - install crm - open a lead - create an activity call or meeting (and schedule it in the calendar) - mark it as done with a feedback The activity log in the chatter contains the feedback twice and shouldn't. The problem was caused by the synchronization of the event description with the related activities. When marking an activity as done, the event description is updated with the feedback which in turn update the activity note with the feedback. When logging the acti
Original PR description
How to reproduce: - install crm - open a lead - create an activity call or meeting (and schedule it in the calendar) - mark it as done with a feedback The activity log in the chatter contains the feedback twice and shouldn't. The problem was caused by the synchronization of the event description with the related activities. When marking an activity as done, the event description is updated with the feedback which in turn update the activity note with the feedback. When logging the activity done in the chatter, the note and the feedback are logged leading to a duplicate feedback. We solve this by first logging the activity done in the chatter before updating the event description. Task-3653088 Forward-Port-Of: odoo/odoo#157930 Forward-Port-Of: odoo/odoo#147898
Since commit [1], the new tiktok icon is added to odoo but the conversion of the css class into an image is not supported. This commit ensures that the conversion is correctly handled. Steps to reproduce: - Open the mail marketing app - Create a new mass mailing - Insert an icon in the template, for instance type /image in the text and select the "Pictogram" tab - Search for tiktok icon and insert it - Send the mass mailing - The icon will not be found in the mail [1]: https://git
Original PR description
Since commit [1], the new tiktok icon is added to odoo but the conversion of the css class into an image is not supported. This commit ensures that the conversion is correctly handled. Steps to reproduce: - Open the mail marketing app - Create a new mass mailing - Insert an icon in the template, for instance type /image in the text and select the "Pictogram" tab - Search for tiktok icon and insert it - Send the mass mailing - The icon will not be found in the mail [1]: https://github.com/odoo/odoo/commit/515915b9 Forward-Port-Of: odoo/odoo#157937 Forward-Port-Of: odoo/odoo#157919
PayPal refuses to take access_token name parameter and throws an error to user that they need to log again. Since the Access Token is neeeded to cancel transaction, it is renamed to return_access_token. opw-3810686 Forward-Port-Of: odoo/odoo#157974
Original PR description
PayPal refuses to take access_token name parameter and throws an error to user that they need to log again. Since the Access Token is neeeded to cancel transaction, it is renamed to return_access_token. opw-3810686 Forward-Port-Of: odoo/odoo#157974
Steps to reproduce the bug: - Install the "Blogs" app and go to the "/blog" page. - Click on "Edit" to enter edit mode. - Go to the "Theme" tab. - Select the 4th color from the theme colors and choose "black". - Save the page to exit edit mode. - Perform a search in the search bar input that yields no results, for example: "zzz". - Bug: The message "No results found. Please try another search." is not visible because it is displayed in white on the white background of the dropdown. A
Original PR description
Steps to reproduce the bug: - Install the "Blogs" app and go to the "/blog" page. - Click on "Edit" to enter edit mode. - Go to the "Theme" tab. - Select the 4th color from the theme colors and…
Steps to reproduce the bug: - Install the "Blogs" app and go to the "/blog" page. - Click on "Edit" to enter edit mode. - Go to the "Theme" tab. - Select the 4th color from the theme colors and choose "black". - Save the page to exit edit mode. - Perform a search in the search bar input that yields no results, for example: "zzz". - Bug: The message "No results found. Please try another search." is not visible because it is displayed in white on the white background of the dropdown. A previous commit [1] had already addressed the issue for the "Search" snippet that can be dropped into a page, but this fix wasn't sufficient to solve the problem everywhere. Indeed, the text-muted in a dropdown should be adjusted in all cases and not just for snippets; it's a Bootstrap issue. The text-muted color should be adapted to the background color of the dropdown. [1]: https://github.com/odoo/odoo/commit/f9bf40cb53cf487c8736c1f565c2f0d3834acd5e task-3662985 Forward-Port-Of: odoo/odoo#157731 Forward-Port-Of: odoo/odoo#156029
* = facturx, ubl, ubl_cii, ubl_bis3 Problem --------- Currently, the EDI use the commercial partner to craft the XML document. However, this causes issues when users add, for example, an invoice address to a partner. Indeed, the address of the main partner will be used and not the invoice address. This caused issue; see the relevant OPW-3624205. Objective --------- Make sure that the correct address is used when generating the XML. Solution --------- Make sure the commercial partn
Original PR description
* = facturx, ubl, ubl_cii, ubl_bis3 Problem --------- Currently, the EDI use the commercial partner to craft the XML document. However, this causes issues when users add, for example, an invoice address to a partner. Indeed, the address of the main partner will be used and not the invoice address. This caused issue; see the relevant OPW-3624205. Objective --------- Make sure that the correct address is used when generating the XML. Solution --------- Make sure the commercial partner // partner value is used at the correct spot. - `partner` should be used for addresses - `commercial_partner` for everything else. OPW-3624205 task-3636315 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157856 Forward-Port-Of: odoo/odoo#155896
This will fix the number of employees in the partner view and redirect to a kanban view of the employees. The smart button on the partner view for the number of employees related to this partner now gives the correct number depending on the companies selected. If multiple employees are related, the action shows a kanban view of those employees. Task: 3693173 Forward-Port-Of: odoo/odoo#157537 Forward-Port-Of: odoo/odoo#154162
Original PR description
This will fix the number of employees in the partner view and redirect to a kanban view of the employees. The smart button on the partner view for the number of employees related to this partner now gives the correct number depending on the companies selected. If multiple employees are related, the action shows a kanban view of those employees. Task: 3693173 Forward-Port-Of: odoo/odoo#157537 Forward-Port-Of: odoo/odoo#154162
**Current behaviour before commit:** When trying to crop image in website, 'mousedown' and 'keydown' events are not getting caught. Due to this, - Crop is not getting closed when clicking on document - Cropped image is not getting saved when pressing enter **Desired behaviour after commit:** Now, events are added to the owner document of the crop widget. As result, - Crop gets closed when clicking anywhere in document - Image gets saved when pressing enter. task-3570524
Original PR description
**Current behaviour before commit:** When trying to crop image in website, 'mousedown' and 'keydown' events are not getting caught. Due to this, - Crop is not getting closed when clicking on document - Cropped image is not getting saved when pressing enter **Desired behaviour after commit:** Now, events are added to the owner document of the crop widget. As result, - Crop gets closed when clicking anywhere in document - Image gets saved when pressing enter. task-3570524 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157763 Forward-Port-Of: odoo/odoo#140108
Before this commit, the aria-current was the name of the search_X instead of value 'page'. Code was strange since `'page' and X` == `X`, while we expect 'page' as value. In case of unknown 'search_slide_category' value, use '-' instead to raise a KeyError Exception. We still have some links that point to old url with slide category of type 'presentation' that doesn't exist anymore since the v16. Remove outdated code following the comment: > I swear though, don't be afraid, remove it!
Original PR description
Before this commit, the aria-current was the name of the search_X instead of value 'page'. Code was strange since `'page' and X` == `X`, while we expect 'page' as value. In case of unknown 'search_slide_category' value, use '-' instead to raise a KeyError Exception. We still have some links that point to old url with slide category of type 'presentation' that doesn't exist anymore since the v16. Remove outdated code following the comment: > I swear though, don't be afraid, remove it! From this way, the wrong slide_type of type 'presentation' will be ignored in all case and link from google will show the slide instead of an error 500. Forward-Port-Of: odoo/odoo#158002
This adds a button to the AI Copywriter that allows the user to correct the selected text without altering it otherwise. task-3776377 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156067
Original PR description
This adds a button to the AI Copywriter that allows the user to correct the selected text without altering it otherwise. task-3776377 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156067
When an addon has an invalid version but is not installable, there is no need to error out. This situation typically happens when unmigrated modules are present in the addons path. Description of the issue/feature this PR addresses: fixes #141747 Current behavior before PR: When an uninstallable addon with an invalid version is present in the path, Odoo does not start. Desired behavior after PR is merged: When an uninstallable addon with an invalid version is present in the pat
Original PR description
When an addon has an invalid version but is not installable, there is no need to error out. This situation typically happens when unmigrated modules are present in the addons path. Description of the issue/feature this PR addresses: fixes #141747 Current behavior before PR: When an uninstallable addon with an invalid version is present in the path, Odoo does not start. Desired behavior after PR is merged: When an uninstallable addon with an invalid version is present in the path, Odoo does start. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157657
The pager was not getting the margin from the bottom. This PR fixes the issue by providing the appropriate margin to the pager. Task-3792586 Forward-Port-Of: odoo/odoo#157005
Original PR description
The pager was not getting the margin from the bottom. This PR fixes the issue by providing the appropriate margin to the pager. Task-3792586 Forward-Port-Of: odoo/odoo#157005
In the Quotations list view, it is possible to show "amount_to_invoice" field. However, this field is empty for quotations and therefore useless. It should be set as invisible for quotations. An inherited view was already taking care of it, but was using "invisible" attribute instead of "column_invisible" attribute. opw-3722037 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158043
Original PR description
In the Quotations list view, it is possible to show "amount_to_invoice" field. However, this field is empty for quotations and therefore useless. It should be set as invisible for quotations. An inherited view was already taking care of it, but was using "invisible" attribute instead of "column_invisible" attribute. opw-3722037 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158043
An error occurs when the user attempts to access a forecast report for the replenishment product but does not receive the warehouse location ID (archive/delete). Steps to reproduce: (without demo data) - Install "stock_account" module - Inventory -> Operation -> Procurement -> Replenishment - Create a new Replenishment product - Configuration -> warehouse -> Archive warehouse records - Go to a product made in the replenishment and click on forecast report Traceback : ```IndexError:
Original PR description
An error occurs when the user attempts to access a forecast report for the replenishment product but does not receive the warehouse location ID (archive/delete). Steps to reproduce: (without demo…
An error occurs when the user attempts to access a forecast report for the replenishment product but does not receive the warehouse location ID (archive/delete).
Steps to reproduce: (without demo data)
- Install "stock_account" module
- Inventory -> Operation -> Procurement -> Replenishment
- Create a new Replenishment product
- Configuration -> warehouse -> Archive warehouse records
- Go to a product made in the replenishment and click on forecast report
Traceback :
```IndexError: list index out of range
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1826, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1824, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, 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 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 30, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/stock/report/stock_forecasted.py", line 21, in get_report_values
'docs': self._get_report_data(product_ids=docids),
File "addons/stock/report/stock_forecasted.py", line 126, in _get_report_data
res.update(self._get_report_header(product_template_ids, product_ids, wh_location_ids))
File "addons/sale_stock/report/stock_forecasted.py", line 34, in _get_report_header
res = super()._get_report_header(product_template_ids, product_ids, wh_location_ids)
File "addons/purchase_stock/report/stock_forecasted.py", line 11, in _get_report_header
res = super()._get_report_header(product_template_ids, product_ids, wh_location_ids)
File "addons/stock_account/report/stock_forecasted.py", line 17, in _get_report_header
company = self.env['stock.location'].browse(wh_location_ids[0]).company_id
```
This commit will help to open a forecast report if the warehouse location is not found.
sentry-4998176742
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#158017Have a list view with multiple groupbys and a lot of records to have pagers displayed. Open a group (first level). The pager of the group uses the number of records instead of number of (inner) groups as total. This commit fixes the issue. The pager now correctly allows to navigate through inner groups. 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 guid
Original PR description
Have a list view with multiple groupbys and a lot of records to have pagers displayed. Open a group (first level). The pager of the group uses the number of records instead of number of (inner) groups as total. This commit fixes the issue. The pager now correctly allows to navigate through inner groups. 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#157995
Before this PR: The snippet menu in the Mail Body appeared on the top of the form, causing misalignment. Technical details: - This problem was observed in the `view_mail_mass_mailing_form` form and all other views inheriting from it. - The fix involves adding the `o_mass_mailing_iframe `class using the `iframeHtmlClass` attribute on the body_arch field. After this PR: The layout is now aligned. This PR targets up to 17.0, for further versions the issue has already been resolved.
Original PR description
Before this PR: The snippet menu in the Mail Body appeared on the top of the form, causing misalignment. Technical details: - This problem was observed in the `view_mail_mass_mailing_form` form and all other views inheriting from it. - The fix involves adding the `o_mass_mailing_iframe `class using the `iframeHtmlClass` attribute on the body_arch field. After this PR: The layout is now aligned. This PR targets up to 17.0, for further versions the issue has already been resolved. task-3603623 Forward-Port-Of: odoo/odoo#157864 Forward-Port-Of: odoo/odoo#152996
Steps to reproduce: - have a codabox setup - from the accounting dashboard, fetch the codabox data Issue: Traceback Cause: When there are no transactions to fetch and there is no fallback journal_id in https://github.com/odoo/enterprise/blob/27878a7b1a0577c2e83d756d0f59fabe25b20223/account_accountant/static/src/components/bank_reconciliation/kanban.js#L541-L558 it will break (no journal_id -> no company_id -> break ensure one) Note: it could be interesting to further investigate why
Original PR description
Steps to reproduce: - have a codabox setup - from the accounting dashboard, fetch the codabox data Issue: Traceback Cause: When there are no transactions to fetch and there is no fallback journal_id in https://github.com/odoo/enterprise/blob/27878a7b1a0577c2e83d756d0f59fabe25b20223/account_accountant/static/src/components/bank_reconciliation/kanban.js#L541-L558 it will break (no journal_id -> no company_id -> break ensure one) Note: it could be interesting to further investigate why there is no default journal in the props opw-3814226 Forward-Port-Of: odoo/enterprise#58835
TaskID: 3782701 https://www.partena-professional.be/fr/nos-connaissances/infoflashes/delais-de-preavis-en-cas-de-demission-des-travailleurs-en-service#:~:text=Avec%20cette%20nouvelle%20loi%2C%20la,avant%20le%201er%20janvier%202014 Forward-Port-Of: odoo/enterprise#57970
Original PR description
TaskID: 3782701 https://www.partena-professional.be/fr/nos-connaissances/infoflashes/delais-de-preavis-en-cas-de-demission-des-travailleurs-en-service#:~:text=Avec%20cette%20nouvelle%20loi%2C%20la,avant%20le%201er%20janvier%202014 Forward-Port-Of: odoo/enterprise#57970
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the workspace where the document is being dragged to, is the same as the workspace it's already present. Effects: - `orm.write` is being executed unnecessarily. - Traceback is observed exclusively in 17.0 and master when similar steps are followed inside TRASH workspace. (will be solved by this PR)
Original PR description
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the…
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the workspace where the document is being dragged to, is the same as the workspace it's already present. Effects: - `orm.write` is being executed unnecessarily. - Traceback is observed exclusively in 17.0 and master when similar steps are followed inside TRASH workspace. (will be solved by this PR) Reason: - The workspaces inside the search panel are listed as list-items (`<li>`). Inside those items we have their display names enclosed within the `<header>`. On selecting any workspace (including trash), an active class is added to the `<header>`. - When the `_onDrop` event gets called, the condition before this commit tries to check the presence of an 'active' class on the `<li>` and not on the `<header>` element present inside it. After this commit: The updated condition removes unnecessary computation and eliminates the traceback as well. Task-3627626 Forward-Port-Of: odoo/enterprise#58772 Forward-Port-Of: odoo/enterprise#53158
How to reproduce: - in point of sale, enable "Generate a code on ticket" - create a pos_order, save the ticket - using the code on the ticket, request an invoice through the portal and fill the information as if you were a mexican company => An invoice is generated and sent successfully to the SAT, but "CFDI to Public" is True on the invoice. Hence, the receptor's RFC will be "XAXX..." instead of the RFC filled in the portal. Reason: The pos_order has "CFDI to Public" to True, and
Original PR description
How to reproduce: - in point of sale, enable "Generate a code on ticket" - create a pos_order, save the ticket - using the code on the ticket, request an invoice through the portal and fill the information as if you were a mexican company => An invoice is generated and sent successfully to the SAT, but "CFDI to Public" is True on the invoice. Hence, the receptor's RFC will be "XAXX..." instead of the RFC filled in the portal. Reason: The pos_order has "CFDI to Public" to True, and this value is copied on the invoice. Fix: Recompute the value for the "CFDI to Public" field on the pos_order when the partner_id is filled. It should only be True when the Receptor's RFC is "XAXX...". Note that the new compute for "CFDI to Public" on the pos_order now resembles the one on the account_move. opw-3767576 Forward-Port-Of: odoo/enterprise#58771
**Current behavior before this PR:** When a user creates an article in a private section and then publishes it on the web, now if a portal user accesses that link, the article will appear in the private section of the portal as well. **Reason:** There was no specific domain to prevent the portal user from showing private articles of others. **Desired behavior after this PR:** Published web articles will not shown in the portal's private section. **Task**-3486083 Forward-Port-Of:
Original PR description
**Current behavior before this PR:** When a user creates an article in a private section and then publishes it on the web, now if a portal user accesses that link, the article will appear in the private section of the portal as well. **Reason:** There was no specific domain to prevent the portal user from showing private articles of others. **Desired behavior after this PR:** Published web articles will not shown in the portal's private section. **Task**-3486083 Forward-Port-Of: odoo/enterprise#56231
On the form view editor, click on a button that has studio_approval="True" and some rules behind it Before this commit, unchecking the "Set approval rules" checkbox in the form view editor did not disable the rule itself, causing the expected workflow to trigger the rule, even if the button should not be enforcing them. This was because of commit 3db107ae481a8da85aa356c729bae5fc246e655b, which introduced server-side enforcement of studio approval rules. After this commit, we archive rules th
Original PR description
On the form view editor, click on a button that has studio_approval="True" and some rules behind it Before this commit, unchecking the "Set approval rules" checkbox in the form view editor did not disable the rule itself, causing the expected workflow to trigger the rule, even if the button should not be enforcing them. This was because of commit 3db107ae481a8da85aa356c729bae5fc246e655b, which introduced server-side enforcement of studio approval rules. After this commit, we archive rules that were set on the button, so the expected outside studio workflow works opw-3810516 Forward-Port-Of: odoo/enterprise#58859
- Whether the option is visible or not shouldn't depend on the `mail_extra_fields` compute. Use a separate compute to avoid useless processing. - Wrong moves used in the warning computation. - Remove useless trigger in `api.depends` to avoid unecessary computations. Forward-Port-Of: odoo/enterprise#58830
Original PR description
- Whether the option is visible or not shouldn't depend on the `mail_extra_fields` compute. Use a separate compute to avoid useless processing. - Wrong moves used in the warning computation. - Remove useless trigger in `api.depends` to avoid unecessary computations. Forward-Port-Of: odoo/enterprise#58830
## Issue: - If a Contact record has a complete Address record (Street 1, Street 2, City, State, Zip, and Country) and the Check Print Format is set to TOP then the Address and the check memo overlap (see screenshot). ## Steps To Reproduce: - Create a contact with a long name and long address. - Be in a company set up under l10n_us. - Set your check printing to be Print Check (Top) - US. - Issue a Vendor Payment to the contact - Add a memo and print check. - The address overlaps the
Original PR description
## Issue: - If a Contact record has a complete Address record (Street 1, Street 2, City, State, Zip, and Country) and the Check Print Format is set to TOP then the Address and the check memo overlap (see screenshot). ## Steps To Reproduce: - Create a contact with a long name and long address. - Be in a company set up under l10n_us. - Set your check printing to be Print Check (Top) - US. - Issue a Vendor Payment to the contact - Add a memo and print check. - The address overlaps the reference ## Solution: - Adjust the font size of the address to make it slightly smaller, thereby avoiding overlap. opw-3735486 Forward-Port-Of: odoo/enterprise#58269
Before this commit: IoT logs are kept in an IoT log file. Any time the support would need IoT log information, we are forced to ask the customer to send it to us as it requires to be in the LAN. After this commit: Relevant* log lines will be automatically send out to the server using an HTTP route. This feature can be toggled within the Handlers list page  preview:  preview:  *: Relevant = - Any odoo logs (depending on the level set in the handlers list, see: https://github.com/odoo/odoo/pull/134174 ) - Any other logs (werkzeug, python libraries, etc.) except /hw_proxy/hello Note: IoT logs received by the server will ALWAYS be logged regardless of it level. So an Odoo server set in INFO which receive a DEBUG log from the IoT will log it in its log with the DEBUG level Related odoo PR: https://github.com/odoo/odoo/pull/150920 opw-3696519 Forward-Port-Of: odoo/enterprise#58111 Forward-Port-Of: odoo/enterprise#55055
Impacted Version: - 17.0 and above This commit improve below features: - Create statement of account reports in follow-up reports task-3610441 Forward-Port-Of: odoo/enterprise#52098
Original PR description
Impacted Version: - 17.0 and above This commit improve below features: - Create statement of account reports in follow-up reports task-3610441 Forward-Port-Of: odoo/enterprise#52098
Before this commit assets from `website_sale_stock_renting` was loaded before `website_sale_renting` because there was prepend in parent module assets PR: https://github.com/odoo/enterprise/pull/49610 So method `_getInvalidMessage` written in child(`website_sale_stock_renting`) get overridden by parent module(`website_sale_renting`) This commit add `website_sale_stock_renting` module assets after `website_sale_renting` module assets in order to execute method in proper order opw-3679735 F
Original PR description
Before this commit assets from `website_sale_stock_renting` was loaded before `website_sale_renting` because there was prepend in parent module assets PR: https://github.com/odoo/enterprise/pull/49610 So method `_getInvalidMessage` written in child(`website_sale_stock_renting`) get overridden by parent module(`website_sale_renting`) This commit add `website_sale_stock_renting` module assets after `website_sale_renting` module assets in order to execute method in proper order opw-3679735 Forward-Port-Of: odoo/enterprise#58639
Currently we send a list of ibans, and a single date from which to fetch the files. This is a bit problematic if the user has multiple journals and one of which is not used. In such a case, this old journal won't have transactions for months. Then we'll use the date of this old journal as the one from which to start fetching. So a journal that is up to date and gets documents everyday will still use this old date. Therefore we'll download lots of files (3 months or historic) even though the v
Original PR description
Currently we send a list of ibans, and a single date from which to fetch the files. This is a bit problematic if the user has multiple journals and one of which is not used. In such a case, this old journal won't have transactions for months. Then we'll use the date of this old journal as the one from which to start fetching. So a journal that is up to date and gets documents everyday will still use this old date. Therefore we'll download lots of files (3 months or historic) even though the vast majority will not be used (only skipped because already imported) From now on, for each journal, we send the date of the last bank statement along with the IBAN of the journal, so that on IAP's side, we can filter out older bank statements. This allows faster fetching of the files. IAP: https://github.com/odoo/iap-apps/pull/771 task-id 3762743 Forward-Port-Of: odoo/enterprise#57722
Commit 7ad17cb introduced a change in the way payroll reports are generated. However, this change forgot to include those changes in the kenyan l10n reporting. This commit adapts the P9 form so it can be generated again. Forward-Port-Of: odoo/enterprise#55206
Original PR description
Commit 7ad17cb introduced a change in the way payroll reports are generated. However, this change forgot to include those changes in the kenyan l10n reporting. This commit adapts the P9 form so it can be generated again. Forward-Port-Of: odoo/enterprise#55206