Thursday, September 19, 2024
18 changes · master
Enhancements to existing features
Manufacturing work order Gantt labels now show the final product name at the beginning. This makes production schedules easier to read and helps teams quickly identify what each planned work order contributes to.
Original PR description
Show the name of the final product at the beginning of the gantt labels task: 3977697 See odoo/odoo#168432
Project dashboard cards have been simplified across related apps to make them easier to read and maintain. The update uses newer standard interface components, improving consistency without changing core business workflows.
Original PR description
*hr_timesheet,sale_timesheet,documents_project,industry_fsm_report, project_account_budget In this commit we have simplified the kanban arch for the project module dashboard. the goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of `<field/>` tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use `<field name=... widget=image/>` instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color=color_field_name on root node Task-3992107
The manufacturing PLM and work order dashboards have been simplified to make their cards easier to read and maintain. This update modernizes the underlying layout components without changing core business workflows.
Original PR description
In this commit we have simplified the kanban arch for the mrp_plm and mrp_workorder module dashboard. the goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of `<field/>` tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use `<field name=... widget=image/>` instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color=color_field_name on root node Task-3992107
The Planning-related kanban screens have been simplified to use newer, standard card layouts and styling. This should make the dashboard views easier to maintain and more consistent for users across Planning, Project Forecast, and Sales Planning.
Original PR description
In this commit we have simplified the kanban arch for the planning module dashboard. the goal is to simplify them, make them easier to read and use bootstrap utility classnames. - Previously, we used kanban-box, but now we are using kanban-card instead. - Deprecated oe_kanban_global_click and oe_kanban_global_click_edit. - More use of `<field/>` tags - Removed the oe_kanban_colorpicker class and replaced it with the kanban_color_picker widget. - Changed type='edit' to type='open' to open records. since version 16, records always open in edit mode by default. - kanban_image from rendering context, is deprecated so we use `<field name=... widget=image/>` instead - kanban_color, kanban_getcolor and kanban_getcolorname are deprecated use new attribute highlight_color=color_field_name on root node Task-3992107
Avatar tag lists now show the remaining person’s avatar when only one item is hidden, rather than displaying a “+1” counter. This makes resource and user lists clearer at a glance and avoids unnecessary extra counting in the interface.
Original PR description
Before this commit, the user avatar tag list displayed the counter with +1 when there was only 1 tag left to display. Now, the last tag is displayed instead of the counter. This commit also renames the property `itemsVisible` to `visibleItemsLimit` to better reflect the purpose of this property. task-4134018
Manufacturing planning now includes a ready-to-use spreadsheet template for importing Master Production Schedule data. This helps users test or prepare planning data more quickly using products that fit the standard demo setup, while avoiding conflicts with existing demo entries.
Original PR description
An XLSX import template for MPS that works with the default demo product data and doesn't clash with the MPS demo data. Partly relies on #68419 (f9989c3). Task ID: [4129558](https://www.odoo.com/odoo/project/966/tasks/4129558)
The spreadsheet dashboard tests now verify that the correct first day of the week is used for each locale. This helps ensure date-based dashboard calculations remain consistent for users in different regions.
Original PR description
This commit is the counterpart of https://github.com/odoo/odoo/pull/180619 and updates the test to check the weekstart of the locale. Task: 4194152
Resolved issues and error corrections
Tax closing entries will no longer automatically receive default taxes from accounts marked for tax closing. This prevents validation errors in special accounting setups and helps tax closing proceed reliably.
Original PR description
Some special cases may require to have an account set as "used in tax closing" and at the same time having a default tax to improve usability. This would cause issues as the tax would be set on the line and trigger the _check_taxes_on_closing_entries constrains. This fix aim to mitigate that by ensure that _compute_tax_ids is not done on tax closing lines. task id # 3903331
Miscellaneous changes
Steps to Reproduce the Bug: - Create two storable products, "P1" and "P2". - Create a Quality Point: - Product: P1 - Type: Manufacturing - Create a Quality Check: - Product: P2 - Select the Quality Point of P1 Problem: The product is updated to P1 instead of triggering a user error. opw-4030133 Forward-Port-Of: odoo/enterprise#69695 Forward-Port-Of: odoo/enterprise#69362
Original PR description
Steps to Reproduce the Bug: - Create two storable products, "P1" and "P2". - Create a Quality Point: - Product: P1 - Type: Manufacturing - Create a Quality Check: - Product: P2 - Select the Quality Point of P1 Problem: The product is updated to P1 instead of triggering a user error. opw-4030133 Forward-Port-Of: odoo/enterprise#69695 Forward-Port-Of: odoo/enterprise#69362
Marketing automation activity relationships now display correctly in hierarchy views. This restores needed parent relationship information so users can understand how campaign activities connect to each other.
Original PR description
Since [1] the hierarchy kanban is missing the necessary parent data to be able to properly display hierarchies We add it back with a comment specifying it needs to remain task-4195978 1: d07574d2a286543c22072fa4ea338ff756242f21
This fix prevents errors when multiple attachments are processed together for Indian GSTR reporting. It improves reliability in setups that use Indian localization alongside accounting features, helping reports and related PDF attachments work as expected.
Original PR description
The method `_unwrap_edi_attachments` previously failed when `self` contained more than one record. This caused issues, particularly in the test `test_extend_with_attachments_multi_pdf` when both `l10n_in` and `account_accountant` modules were installed. The issue has been fixed by adding a loop to process each record in `self` individually and checking the `res_model` for each attachment within the file data. Fixes: https://runbot.odoo.com/web/#id=98056&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form
This fixes an error that could occur when Monster recruitment integration credentials are missing. Users will no longer be blocked by a data comparison issue in that situation, making the recruitment posting flow more reliable.
Original PR description
consteq needs to compare the same type of data so bool and str can't be compared FIX convert the bool to str before comparing task-4196102
The Knowledge app’s automated cover selection test was corrected after it checked for a button that was no longer relevant. This helps keep quality checks stable and makes future issues in this area easier to diagnose.
Original PR description
In this commit, we fix the knowledge_cover_selector_tour tour.
Actually, the step 41 makes no sense.
{
// Make the add cover button visible
trigger: '.o_knowledge_edit_cover_buttons',
},
We check for edit cover buttons but the cover was removed in previous
steps.
we take advantage of the commit to transform the comments into "content"
to make it easier to debug the tour.
We take advantage of this commit to lint the file.The Knowledge permission panel was updated so it no longer depends on jQuery, which may not always be available. This prevents errors when managing permissions and helps keep the feature compatible with newer platform standards.
Original PR description
This commit removes the soon-to-be deprecated JQuery from the PermissionPanel component. JQuery triggered errors inside the permission panel when it is not loaded, which can happen. This commit replaces all JQuery calls to a standard JS alternative. task-4193620
When the Appraisal of employee is archived and a user clicks on the Ongoing Appraisal button, a traceback will appear. Steps to reproduce the error: - Install ```hr_appraisal``` module - Create new employee > Click Request Appraisal > Save Appraisal > Archive that Appraisal - Go back to employee > Click on ```Ongoing Appraisal``` button Traceback: ``` Traceback (most recent call last): File "/home/odoo/odoo/community/odoo/http.py", line 2267, in __call__ response = request
Original PR description
When the Appraisal of employee is archived and a user clicks on the Ongoing Appraisal button, a traceback will appear. Steps to reproduce the error: - Install ```hr_appraisal``` module - Create new…
When the Appraisal of employee is archived and a user clicks on
the Ongoing Appraisal button, a traceback will appear.
Steps to reproduce the error:
- Install ```hr_appraisal``` module
- Create new employee > Click Request Appraisal > Save Appraisal >
Archive that Appraisal
- Go back to employee > Click on ```Ongoing Appraisal``` button
Traceback:
```
Traceback (most recent call last):
File "/home/odoo/odoo/community/odoo/http.py", line 2267, in __call__
response = request._serve_db()
File "/home/odoo/odoo/community/odoo/http.py", line 1842, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "/home/odoo/odoo/community/odoo/http.py", line 1862, in _transactioning
return service_model.retrying(func, env=self.env)
File "/home/odoo/odoo/community/odoo/service/model.py", line 134, in retrying
result = func()
File "/home/odoo/odoo/community/odoo/http.py", line 1840, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "/home/odoo/odoo/community/odoo/http.py", line 1847, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/odoo/community/odoo/http.py", line 2072, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/odoo/community/odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/odoo/community/odoo/http.py", line 774, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/odoo/community/addons/web/controllers/dataset.py", line 42, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo/community/addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/odoo/community/odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "/home/odoo/odoo/enterprise/hr_appraisal/models/hr_employee_base.py", line 39, in action_open_last_appraisal
if len(relevant_appraisals) == 1:
UnboundLocalError: local variable 'relevant_appraisals' referenced before assignment
```
https://github.com/odoo/enterprise/blob/a9a3ece5c8ae5fa0b2fa117acb5dbedc69689478/hr_appraisal/models/hr_employee_base.py#L30-L37
When appraisal is archived, ```employee_appraisals``` will be empty,
So, eventually ```relevant_appraisals``` will be Empty.
So, it will lead to the above traceback.
sentry-5830582533
Forward-Port-Of: odoo/enterprise#69893**Steps to reproduce:** - Install Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Configure external trade according to: https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade - Make sure that USD has up-to-date rates - Create an external trade invoice: * Customer: [a US customer] (e.g. Deco Addict) * Currency: USD * Usage: Without fiscal effects * Incoterm: EX WORKS * Exter
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Configure external trade according to: https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade - Make sure that USD has up-to-date rates - Create an external trade invoice: * Customer: [a US customer] (e.g. Deco Addict) * Currency: USD * Usage: Without fiscal effects * Incoterm: EX WORKS * External Trade: Definitive - Confirm the invoice - Print the invoice **Issue:** In the external trade section of the invoice, there are 2 empty cells: "Operation Type" and "Subdivision". According to https://facture.com.mx/nuevo-complemento-comercio-exterior-2-0/ they both have been removed. opw-4078535 Forward-Port-Of: odoo/enterprise#70206 Forward-Port-Of: odoo/enterprise#70178
Patch the voip.ringtone service in all voip tests to avoid playing ringtones while tests are running. Forward-Port-Of: odoo/enterprise#70041
Original PR description
Patch the voip.ringtone service in all voip tests to avoid playing ringtones while tests are running. Forward-Port-Of: odoo/enterprise#70041
Before this PR: There are two problems: first, if you have a line discount like this: <img width="350" alt="Captura de pantalla 2024-03-27 a la(s) 09 48 55" src="https://github.com/odoo/enterprise/assets/382893/7564b133-c6e9-4bab-97f3-d8a0a2634fe5"> The calculation made by Odoo is: 319319 * 21.35 / 100 = 68175 which does not match the amount placed in "DescuentoMonto". In this case, it is 68173 (difference of 2 CLP) which is why it is better to prioritize the discount amount instead of the
Original PR description
Before this PR: There are two problems: first, if you have a line discount like this: <img width="350" alt="Captura de pantalla 2024-03-27 a la(s) 09 48 55"…
Before this PR: There are two problems: first, if you have a line discount like this: <img width="350" alt="Captura de pantalla 2024-03-27 a la(s) 09 48 55" src="https://github.com/odoo/enterprise/assets/382893/7564b133-c6e9-4bab-97f3-d8a0a2634fe5"> The calculation made by Odoo is: 319319 * 21.35 / 100 = 68175 which does not match the amount placed in "DescuentoMonto". In this case, it is 68173 (difference of 2 CLP) which is why it is better to prioritize the discount amount instead of the percentage in the XML, which is already rounding, leading to a problem. The second: if you have a surcharge in the line, like this: <img width="354" alt="Captura de pantalla 2024-03-27 a la(s) 09 52 40" src="https://github.com/odoo/enterprise/assets/382893/5a7ffa96-a2d9-498f-acf3-7003c95aa789"> Odoo ignores it. After the PR: The first issue is fixed by giving priority to the "DescuentoMonto" tag. The second issue is added as an improvement. Since Odoo does not have a column to show the surcharge separated in the line, we are taking advantage of the feature that supports negative discounts in the line to put that surcharge as negative. Forward-Port-Of: odoo/enterprise#65842 Forward-Port-Of: odoo/enterprise#59532