Saturday, September 21, 2024
20 changes · master
Enhancements to existing features
The room booking app now uses the standard loading overlay styling instead of maintaining separate custom styling. This reduces maintenance effort and helps keep the user experience consistent across Odoo apps, with only a minor internal adjustment in the enterprise web interface.
Original PR description
- The room app was using his own CSS for the blocked UI. Indeed, it used the service but its CSS was not available. It now is, instead of more CSS code to support. - The web_enterprise app is using a div using the o_blockUI class... but this seems like a mistake, it never had an effect (since at least version 16.0). To investigate later. Related to task-4184418
This update adjusts automated testing around the WhatsApp message seen indicator. It helps ensure the message status display continues to behave reliably after related improvements.
Original PR description
Task-4198929 https://github.com/odoo/odoo/pull/180897
Success notifications in Planning have been rewritten to be shorter and more explicit. This makes confirmations easier for users to understand after completing planning-related actions.
Original PR description
The toast notifications have been reworded to be more explicit and shorter for the planning module. The changes were applied to notifications with the success status. Task-3916119
Kanban card menus were aligned with the newer kanban design so they behave consistently across affected apps. This is a small cleanup that removes outdated styling hooks and helps keep Manufacturing PLM, Quality, and eLearning views compatible with the updated interface.
Original PR description
*website_slides,mrp_plm,quality_control This commit removes kanban-record-menu from kanban_dashboard and moves it to the generic CSS rule for kanban-menu. Unnecessary classes that no longer have an effect in the updated kanban architecture have been removed. - Removed o_kanban_card_manage_section and o_no_padding_kanban_colorpicker class - Renamed .oe_kanban_colorpicker to o_kanban_colorpicker Task-3992107
Appointment, Frontdesk, and Web Studio kanban card layouts were simplified to use newer standard components and styling. This makes the views easier to maintain and helps keep the user interface consistent with current Odoo behavior, with minimal direct impact on daily workflows.
Original PR description
\* = [frontdesk, test_web_studio, web_studio] In this commit we have simplified the kanban arch for the above-mentioned modules. 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 Enterprise: https://github.com/odoo/odoo/pull/180843 Task-3992107
The Helpdesk dashboard card layout has been simplified to use newer interface components and standard styling. This makes the screen easier to maintain and helps keep the Helpdesk experience consistent with current Odoo design practices.
Original PR description
In this commit we have simplified the kanban arch for the helpdesk 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
Resolved issues and error corrections
When an analytic budget is revised, the new revised budget now keeps the same budget type as the original. This prevents confusion and helps ensure budget reviews and reporting stay consistent.
Original PR description
Description of the issue this commit addresses: When revizing an analytic budget, the revized budget doesn't have the type of the initial budget. --- Desired behavior after this commit is merged: The revized budget has the type fo the initial budget. --- task-4190606
Features or functions removed from Odoo
This change removes an older internal feature used to generate sample data across several Odoo apps. It helps simplify maintenance and aligns these enterprise modules with the related platform cleanup, with little expected impact on regular business users.
Original PR description
Linked to https://github.com/odoo/odoo/pull/180318
Code cleanup and technical improvements
Odoo Studio now creates new kanban views for staged records using the current view format instead of an older layout. This keeps newly created views aligned with the modern interface and improves consistency for users configuring apps in Studio.
Original PR description
Before this commit, creating a new kanban view for a model using stages would create a legacy Kanban (with kanban-box) instead of the current view implementation. Now, the view uses the newest syntax.
Miscellaneous changes
Before this commit, click on a long pill with ends outside of the view port would sometimes make the gantt popover (that displays some info on the pill) open outside of the view port. Here we make it target the middle of the visible part of the pill when that happens. Task ID: 3989911 Forward-Port-Of: odoo/enterprise#70305
Original PR description
Before this commit, click on a long pill with ends outside of the view port would sometimes make the gantt popover (that displays some info on the pill) open outside of the view port. Here we make it target the middle of the visible part of the pill when that happens. Task ID: 3989911 Forward-Port-Of: odoo/enterprise#70305
The update prevents a reporting check from failing when it encounters invalid or non-readable invoice data. This keeps related document and accounting workflows running instead of being interrupted by unexpected file content.
Original PR description
Previously, the method `_is_l10n_in_irn_json` encountered a `UnicodeDecodeError` when processing binary content in JSON format, causing the failure of tests such as `test_bridge_folder_workflow`, `test_workflow_create_misc_entry`, `test_move_document_unlink`, `test_bridge_account_sync_partner` in the `documents_account` module. To resolve this, exception handling has been enhanced to suppress both `JSONDecodeError` and `UnicodeDecodeError`, ensuring the method can safely handle invalid or non-UTF-8 encoded content without interrupting the workflow. Fixes: https://runbot.odoo.com/web#id=98061&view_type=form&model=runbot.build.error&menu_id=405
Clearing a lead's email or phone will no longer erase those details from the linked customer record. This prevents accidental loss of contact information used by other business documents, such as sales orders and support tickets.
The accounting dashboard views were modernized to use Odoo’s newer kanban structure, making them easier to maintain and less dependent on hidden technical conventions. A few HR reporting views were also cleaned up to use clearer internal names, with little expected change for day-to-day users.
Issue: ===== Changes of asset are not saved. Steps to reproduce the issue: ============================= - Create a new asset - Add some accounts in the accounting section - Confirm it - Click on modify depreciation - Select re-evaluate - Change the accounts and click modify - The changes are not applied Origin of the issue: ==================== We are not including the values of accounts in the `asset_vals` dict that we use to update the asset. Solution: ========= Added t
Original PR description
Issue: ===== Changes of asset are not saved. Steps to reproduce the issue: ============================= - Create a new asset - Add some accounts in the accounting section - Confirm it - Click on modify depreciation - Select re-evaluate - Change the accounts and click modify - The changes are not applied Origin of the issue: ==================== We are not including the values of accounts in the `asset_vals` dict that we use to update the asset. Solution: ========= Added the fields of the accounts to `asset_vals` dict. opw-4100185 Forward-Port-Of: odoo/enterprise#70172
Currently, An error is generated while a user is trying to open the 'Profit and Loss' report when balance sheet report is not available Steps to reproduce: - Install an ```account_reports``` module. - Turn on debugger mode (from SAAS-17.2 no need this). - Navigate to Accounting / Configuration / Management / Accounting Reports, Delete the 'Balance Sheet' report - And Open 'Profit and Loss' report(In Accounting Reports). ```ValueError: External ID not found in the system: account_rep
Original PR description
Currently, An error is generated while a user is trying to open the 'Profit and Loss' report when balance sheet report is not available Steps to reproduce: - Install an ```account_reports``` module.…
Currently, An error is generated while a user is trying to open the 'Profit and Loss' report when balance sheet report is not available Steps to reproduce: - Install an ```account_reports``` module. - Turn on debugger mode (from SAAS-17.2 no need this). - Navigate to Accounting / Configuration / Management / Accounting Reports, Delete the 'Balance Sheet' report - And Open 'Profit and Loss' report(In Accounting Reports). ```ValueError: External ID not found in the system: account_reports.balance_sheet``` An error occurs when the system tries to retrieve an external id of balance sheet report 'account_reports.balance_sheet' at [1], but it is not available. Link [1]: https://github.com/odoo/enterprise/blob/9d185d78813f776249a4de0469d659723a94d026/account_reports/models/account_report.py#L5401 To handle this issue, add 'raise_if_not_found=False' in ref() so that when balance sheet report is not available it will return a None value instead of traceback. Sentry-5836075163 Forward-Port-Of: odoo/enterprise#69989
**Steps to reproduce:** - Install l10n_mx_edi - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Create an invoice: * Customer: [a Mexican customer] (e.g. INMOBILIARIA CVA) * Usage: General expenses * CFDI to public: [checked] - Confirm the invoice - Generate CFDI and the invoice via "Send & Print" button **Issue:** On the invoice, "Usage" has an incorrect value: "S01 - General expenses" which is a mix of "S01 - Without fiscal effects" and "G03 - General expenses".
Original PR description
**Steps to reproduce:** - Install l10n_mx_edi - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Create an invoice: * Customer: [a Mexican customer] (e.g. INMOBILIARIA CVA) * Usage: General expenses * CFDI to public: [checked] - Confirm the invoice - Generate CFDI and the invoice via "Send & Print" button **Issue:** On the invoice, "Usage" has an incorrect value: "S01 - General expenses" which is a mix of "S01 - Without fiscal effects" and "G03 - General expenses". The description should be the one linked to the code. opw-4118647 Forward-Port-Of: odoo/enterprise#70274
Steps to reproduce: ------- - install field service app - Go to the Field Service app and create a new task. - Assign a partner (customer) to the task. - Notice that the address of the assigned partner is not displayed immediately. - The address only appears after the record is saved. cause: -------- - context 'show_address' was not passed to _compute_display_name Technical: --------- In a previous [pull request](https://github.com/odoo/enterprise/pull/56179/commits/676e6c34a990
Original PR description
Steps to reproduce: ------- - install field service app - Go to the Field Service app and create a new task. - Assign a partner (customer) to the task. - Notice that the address of the assigned…
Steps to reproduce: ------- - install field service app - Go to the Field Service app and create a new task. - Assign a partner (customer) to the task. - Notice that the address of the assigned partner is not displayed immediately. - The address only appears after the record is saved. cause: -------- - context 'show_address' was not passed to _compute_display_name Technical: --------- In a previous [pull request](https://github.com/odoo/enterprise/pull/56179/commits/676e6c34a9901d4fe7f68859e1b526dfc2090413), the show_address context was removed. As a result, the _compute_display_name method was not able to correctly display the partner's address when a partner was assigned to a task.The address would only appear after the task was saved. Solution: The show_address context should be reintroduced and passed to the `_compute_display_name` method during the task creation or update process. This will allow the address to be displayed immediately when the partner is selected. task-4038335 Forward-Port-Of: odoo/enterprise#68198
For on premise instances, when the database expire and user renew its subscription, the update is not immediate; on the expiration panel there is a already a button to forcefully refresh the subscription status and unblock the database, but it's not really visible (its not clear that the 'refresh' icon right next to "Renew your subscription" / "Upgrade your subscription" buttons is just to refresh the subscription status and not to re-do that action again). This commit now shows the 'Refre
Original PR description
For on premise instances, when the database expire and user renew its subscription, the update is not immediate; on the expiration panel there is a already a button to forcefully refresh the…
For on premise instances, when the database expire and user renew its subscription, the update is not immediate; on the expiration panel there is a already a button to forcefully refresh the subscription status and unblock the database, but it's not really visible (its not clear that the 'refresh' icon right next to "Renew your subscription" / "Upgrade your subscription" buttons is just to refresh the subscription status and not to re-do that action again). This commit now shows the 'Refresh subscription status' action as a textual button to make it more visible to users. [opw-3942907](https://www.odoo.com/odoo/project.task/3942907) Note: the goal is to introduce a slight [wording change](https://github.com/odoo/enterprise/compare/16.0...odoo-dev:enterprise:16.0-opw-3942907-exp-panel-increase-sub-refresh-act-visibility-xal#diff-915475ae004db6256f7efc2757edfead13697a1581ee8c609251b1bafdcf9d06R24) (cf ticket) in 16.0 and later forward port, we're not doing it for 15.0 as the translation is still loaded in db Forward-Port-Of: odoo/enterprise#70361 Forward-Port-Of: odoo/enterprise#65768
During upgrade this issue raises. when there is no value for account_ids and fnames pod_condition because null and all_conditions condition also become null so need to set `sql(FALSE)` if there is no fnames this is the query where problem occure during parsing ``` WITH purchase_order_data AS (SELECT (pol.product_qty - pol.qty_invoiced) / po.currency_rate * pol.price_unit::FLOAT * (a.rate)::FLOAT AS committed, 0 AS achieved,
Original PR description
During upgrade this issue raises. when there is no value for account_ids and fnames pod_condition because null and all_conditions condition also become null so need to set `sql(FALSE)` if there is no…
During upgrade this issue raises.
when there is no value for account_ids and fnames
pod_condition because null and
all_conditions condition also become null
so need to set `sql(FALSE)` if there is no fnames
this is the query where problem occure
during parsing
```
WITH purchase_order_data AS (SELECT (pol.product_qty - pol.qty_invoiced) / po.currency_rate * pol.price_unit::FLOAT * (a.rate)::FLOAT AS committed,
0 AS achieved,
"a"."account_id", "a"."x_plan3_id", "a"."x_plan4_id", "a"."x_plan5_id"
FROM purchase_order_line pol
JOIN purchase_order po ON pol.order_id = po.id
CROSS JOIN JSONB_TO_RECORDSET(pol.analytic_json) AS a(rate FLOAT, "account_id" INT, "x_plan3_id" INT, "x_plan4_id" INT, "x_plan5_id" INT)
WHERE po.date_order >= '2024-09-01'::date
AND po.date_order <= '2024-09-30'::date
AND pol.qty_invoiced < pol.product_qty
AND po.company_id = 1
AND po.state in ('purchase', 'done')
AND
),
account_analytic_line_data AS (
SELECT 0 AS committed,
aal.amount AS achieved,
"aal"."account_id", "aal"."x_plan3_id", "aal"."x_plan4_id", "aal"."x_plan5_id"
FROM account_analytic_line aal
WHERE aal.date >= '2024-01-01'::date
AND aal.date <= '2024-01-31'::date
AND aal.company_id = 1
AND
AND aal.category in ('vendor_bill')
```
```
File "/home/odoo/src/enterprise/saas-17.4/account_budget/models/budget_line.py", line 136, in _compute_all
self.env.cr.execute(SQL(
File "/home/odoo/src/odoo/saas-17.4/odoo/sql_db.py", line 564, in execute
return self._cursor.execute(*args, **kwargs)
File "/home/odoo/src/odoo/saas-17.4/odoo/sql_db.py", line 347, in execute
res = self._obj.execute(query, params)
psycopg2.errors.SyntaxError: syntax error at or near ")"
LINE 14: ),
```
Forward-Port-Of: odoo/enterprise#68665The issue: When we have entries that are linked to a bank statement with a balance of 0, this will lead to a division by zero error when generating a reconciliation report The Fix: check for the suspense balance value, if it is zero, then there is no need to compute the rate since zero divided by anything = 0 opw-3990116 Forward-Port-Of: odoo/enterprise#68300 Forward-Port-Of: odoo/enterprise#65095
Original PR description
The issue: When we have entries that are linked to a bank statement with a balance of 0, this will lead to a division by zero error when generating a reconciliation report The Fix: check for the suspense balance value, if it is zero, then there is no need to compute the rate since zero divided by anything = 0 opw-3990116 Forward-Port-Of: odoo/enterprise#68300 Forward-Port-Of: odoo/enterprise#65095