Daily updates from Odoo
Navigate
Branch
Saturday, September 21, 2024
47 changes
4 changes
Resolved issues and error corrections
This change restores prior stock move line behavior after a recent adjustment caused manufacturing orders to fail when users added lines in Detailed Operations. It matters because production teams can again create and edit manufacturing operation details without disruption.
Original PR description
This reverts commit 5b999384a3ec51b8d9ff7b13b17508ebe6ac3ad5. The original commit in v17 was ok, but in saas-17.2+, the MRP flow was broken due to this change. Steps to reproduce: - Open Manuf -> Create MO w/ product Drawer -> Confirm - Open Detailed Operations. -> Add a line opw-4201279 and many more opws linked in main ticket 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
Miscellaneous changes
Currently, a traceback occurs when the user tries to `log out from all devices`. To reproduce this issue: 1) Open the `Preferences` from the profile 2) Click `Log out from all devices` from the Account Security page 3) Give the current password and click `Log out from all devices` Error:- ``` AttributeError: 'bool' object has no attribute 'strip' ``` When the user clicks on the `Log out from all devices`, the `revoke_all_devices` method triggers in which the `_check_identity`
Original PR description
Currently, a traceback occurs when the user tries to `log out from all devices`. To reproduce this issue: 1) Open the `Preferences` from the profile 2) Click `Log out from all devices` from the…
Currently, a traceback occurs when the user tries to `log out from all devices`. To reproduce this issue: 1) Open the `Preferences` from the profile 2) Click `Log out from all devices` from the Account Security page 3) Give the current password and click `Log out from all devices` Error:- ``` AttributeError: 'bool' object has no attribute 'strip' ``` When the user clicks on the `Log out from all devices`, the `revoke_all_devices` method triggers in which the `_check_identity` method is triggered. https://github.com/odoo/odoo/blob/a7db2d8f1336035f6e45d04da7c2ebec5f3d9dba/odoo/addons/base/models/res_users.py#L2000-L2002 But here in the `_check_identity()` current password is set to False. This leads to a traceback from the `_change_password` method. https://github.com/odoo/odoo/blob/a7db2d8f1336035f6e45d04da7c2ebec5f3d9dba/odoo/addons/base/models/res_users.py#L1982-L1988 https://github.com/odoo/odoo/blob/a7db2d8f1336035f6e45d04da7c2ebec5f3d9dba/odoo/addons/base/models/res_users.py#L977-L978 Note:- I don't know the scope of setting the password as False, So instead of removing that line, I passed the current password as a variable. sentry-5867375557 Forward-Port-Of: odoo/odoo#180612
Before this commit: ========== - An issue existed with the quantity of reward products where there were more reward products applied than configured in the backend. - Rewards were being applied even when loyalty points were insufficient for the redemption of loyalty rewards. - In a loyalty program configuration with a reward point mode per order, loyalty points were consistently decreasing. - We were not showing a balance of loyalty points for the customers. After this commit:
Original PR description
Before this commit: ========== - An issue existed with the quantity of reward products where there were more reward products applied than configured in the backend. - Rewards were being applied even when loyalty points were insufficient for the redemption of loyalty rewards. - In a loyalty program configuration with a reward point mode per order, loyalty points were consistently decreasing. - We were not showing a balance of loyalty points for the customers. After this commit: ========== - The quantity of the applied reward product will now match the configuration set in the backend. - Reward products will not be applied if the customer's loyalty points are insufficient for the specific reward product. - Loyalty points will be computed correctly in the case of the reward point mode per order. - We will show a balance of loyalty points for the customers. task-4126886 Forward-Port-Of: odoo/odoo#180850 Forward-Port-Of: odoo/odoo#178901
Commit [958b41c4] added an event triggered when clicking on "Accept all" on a cookie banner (in 17.4) and [cee8a5e6] added support for Google Consent Mode V2 in master (18.0). This commit backports the relevant parts of both so that stable versions are compliant with Google's policy and that the analytics are properly working. The event will also make it easier for customers to add custom code working with Odoo's standard cookie banner. Note that due to [958b41c4], the behavior of Google Con
Original PR description
Commit [958b41c4] added an event triggered when clicking on "Accept all" on a cookie banner (in 17.4) and [cee8a5e6] added support for Google Consent Mode V2 in master (18.0). This commit backports…
Commit [958b41c4] added an event triggered when clicking on "Accept all" on a cookie banner (in 17.4) and [cee8a5e6] added support for Google Consent Mode V2 in master (18.0). This commit backports the relevant parts of both so that stable versions are compliant with Google's policy and that the analytics are properly working. The event will also make it easier for customers to add custom code working with Odoo's standard cookie banner. Note that due to [958b41c4], the behavior of Google Consent Mode is slightly different in stable versions than in 17.4 and above: - In stable, Google is called on page load with consents set on denied. This grants that only cookieless pings, non-identifying information is sent to Google (see [Google's documentation]). It is updated once the cookies are accepted. - In 17.4 and above, Google is not called until the cookies are accepted and only then receives the default + updated consents. [958b41c4]: https://github.com/odoo/odoo/commit/958b41c4acec7e1700ca4d6e0b25ee0ad2aac9f1 [cee8a5e6]: https://github.com/odoo/odoo/commit/cee8a5e6aafd9c05e5b2c027e52aee6b174a4ad5 [Google's documentation]: https://support.google.com/google-ads/answer/10000067 Related to task-3880544 Forward-Port-Of: odoo/odoo#180960 Forward-Port-Of: odoo/odoo#180866
42 changes
New functionality added to Odoo
This update adds a new Zomato integration through UrbanPiper for Odoo Point of Sale, helping restaurants manage online delivery orders from another major platform. It also creates a shared foundation for delivery providers and adds translation support for menu synchronization, making future integrations easier and more localization-friendly.
Original PR description
After this commit: === - Separate a generic pos_urban_piper base module. - Each provider will inherit from this base module. - Translation support is added to the sync menu for categories, products, attributes, and attribute values. - A new pos_urban_piper_zomato module added to support Zomato integration with Urbanpiper. Related: https://github.com/odoo/odoo/pull/180575
A new online payment capability lets businesses start bulk payment processes directly from Odoo. This helps finance teams handle multiple payments more efficiently and reduces manual payment preparation work.
Original PR description
This commits add a new module that allows the initiation of bulk payments Task ID: 2982194
When a quotation is confirmed, related opportunities can now automatically increase their expected and recurring revenue to match higher quoted amounts. This helps sales teams keep pipeline values accurate without manually updating opportunities after sending or confirming quotes.
Original PR description
Purpose ========= Help salespeople keep their opportunities up-to-date by propagating the revenues they set on Quotations. Specification ============== When a quotation is confirmed, if the…
Purpose ========= Help salespeople keep their opportunities up-to-date by propagating the revenues they set on Quotations. Specification ============== When a quotation is confirmed, if the expected_revenue of the lead is less than the nonrecurring_total of quote, the expected_revenue of the lead should be updated to match the nonrecurring total of quote. If the recurring_revenue of the lead is smaller than the recurring monthly update it with, Case 1: when no recurring plan is set on lead update it with the recurring monthly. Case 2 when recurring plan is set on the lead update it with (recurring monthly * number of months) For example: If the lead has an expected_revenue of $40 and recurring_revenues of 10$ and doesn't contain any recurring_plan, Quote 1: nonrecurring total $45, recurring monthly $12 and we confirm it Then the expected_revenue would be updated from $40 to $45 and recurring_revenue from $10 to $12. Task-3806572 COM PR: https://github.com/odoo/odoo/pull/163537
Enhancements to existing features
This update lets payments be handled without always creating a journal entry, aligning accounting workflows with recent platform changes. It affects payment processing, bank reconciliation, batch payments, reports, and localization-related payment exports, with a known limitation that batch payment reconciliation without journal entries will be completed later.
Original PR description
Commit mostly adapting for renamings of fields and states. More information on the community commit. Some aspects specific to this commit are: * the reconciliation of batch payments are not fully working if there is no journal entry created for the payments. This will be fixed in a future commit [task-4180163](https://www.odoo.com/odoo/project.task/4180163)
Appointment confirmations and calendar details now use clearer, dynamically generated descriptions based on the booking information. Reschedule links are included in synced calendars and calendar files, while cancellations are simpler for customers and staff.
Original PR description
Purpose ======== Improve descriptions for external communication which can be used everywhere. Specifications ============== - The description is not stored on the event at creation but will be computed based on attendees and data coming from the form submission. - Reschedule links are now propagated to calendar sync and ICS files. - The cancellation process is eased. Technical ========== - New partner is created from the form if any details mismatch with the existing customer. - We changed the procedure of preparing the description for the calendar event, so we do not need the description for calendar.booking model as we no longer receive descriptions from the '_handle_appointment_form_submission' method. Task-3458669
Planning users now see a notification after splitting a shift in the Gantt view, with an option to undo the split. This makes it easier to correct accidental split actions and quickly restore the original shift without manual rework.
Original PR description
After this commit, a notification appears when the user uses the split tool to divide a shift in the gantt view. The notification contains an "Undo" button which allows to merge back the last divided shift. When "Undo" is pressed, a confirmation notification is displayed to tell that the shift was successfully merged back. task-3827618
The extraction status shown in document headers now updates automatically as processing progresses. Users no longer need to manually refresh pages to see the latest status, making document workflows clearer and faster.
Original PR description
Improved the extraction status header to display real-time updates, eliminating the need for manual refreshes. This improves the user experience by providing immediate feedback as the document extraction progresses.
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
Mexican electronic delivery documents now support products that may or may not be hazardous depending on the shipment. Users can mark these cases directly on the delivery, helping ensure transport documents reflect the correct hazardous-material status and meet Carta Porte requirements.
Original PR description
Proper implementation supporting products that may be hazardous, defined with "0,1" in the CatalogosCartaPorte (ClaveProdServe sheet, Material Peligroso column) We need to address 3 possible values…
Proper implementation supporting products that may be hazardous, defined with "0,1" in the CatalogosCartaPorte (ClaveProdServe sheet, Material Peligroso column) We need to address 3 possible values of the column 'Material Peligroso': 1. If it is “0”, we must not emit the MaterialPeligroso element 2. If it is “1” we must have in the MaterialPeligroso element “Si” 3. If it is “0,1”, we must have in the MaterialPeligroso element “Si” or “No” depending on the actual case 1 and 2 were already working as expected, users will just leave blank or fill the product field "Hazardous Material Designation Code" (l10n_mx_edi_hazardous_material_code) Case 3 was not working because we could only emit 'MaterialPeligroso' with 'Si' or not have it at all https://github.com/odoo/enterprise/commit/f4c662f0cfd47f6af28df9e11d80eae1c0b26a8d was a temporary fix This commit aim to be a permanent fix for the issue by: - Adding proper definition for the Hazardous Material Designation Codes - Extending unspsc model with the MaterialPeligroso information - Adding a new fields on the picking to keep track whether the product falls into the maybe hazardous category and if it is actually hazardous - For the maybe hazardous products let users choose via checkbox in the Additional Info tab where other MX related fields are located opw-3955361 taskid: 4187959
Turkish localization now supports using a different default account for sales returns than for regular sales. This helps businesses in Turkey keep accounting entries aligned with local reporting expectations and reduces manual adjustments.
Original PR description
This commit accommodates the fact that in Turkey the default return from sales account is different from the default sales account task: 3754480
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
Users reviewing bank statements from the reconciliation Kanban can now open the complete statement form instead of a limited quick modal. This makes auditing statements created from documents more convenient and gives users better access to all statement details in one place.
Original PR description
In this commit: https://github.com/odoo/enterprise/commit/120a546295b9e99b2bd50736003506311419562e we have improved the form view of bank statement, if you want to audit a statement you've created via a document, it's far more convenient to open the full form view when you are in your Kanban view instead of the old quick modal. task: 4196574
The Barcode app now handles RFID and bulk barcode scans more smoothly, including support for Zebra Android readers and clearer progress while many items are processed. Inventory adjustments are more reliable by prompting users about missing serial-numbered items and using expected quantities for existing lots, reducing counting mistakes and repeated alerts.
Original PR description
List of changes: - Can split RFID when multiples are received as one; - Avoid to display the same notification when multiple barcodes are scanned at once and some of them triggers the same notification; - Inventory Adjustment: - When not all serial numbers are counted, ask what to do with remaining ones; - When existing lots are scanned, use the theoretical quantity instead of the scanned one (if there is any.) See commits for more details. Community PR: odoo/odoo#177738 [task-4089638](https://www.odoo.com/odoo/project.task/4089638)
Sales managers can now manage subscription lines from recurring plans, update prices across multiple subscriptions, and use import/export tools for larger changes. They can also email customers from the Sales Order list about pricing or terms changes, reducing manual work and the need for custom processes.
Original PR description
We’ve made several updates to make managing subscriptions easier. Sales managers can now use a new button on recurring plans to manage subscription items from Sales Orders. We've added a multi-edit feature so you can update the prices of several subscriptions at once. You can also export and import subscription lines to make bulk updates simpler. We've added a new action to the Sales Order list view that lets sales managers email customers directly about changes in terms and pricing. These updates include new features like mass updates and filters by product, customer, and subscription dates, making it easier for sales managers to handle subscriptions without needing custom solutions. task-4102978
Employees can now use flexible or fully flexible working calendars, including schedules without fixed daily or weekly limits. This improves payroll, planning, and attendance views for teams with non-standard working patterns while preventing auto-planning from assigning flexible staff incorrectly.
Original PR description
### Description of the issue/feature this PR addresses: ------- In this commit, the flexible working hours (flexible contract) has been reworked in the resource calendar and the contract. 1.…
### Description of the issue/feature this PR addresses: ------- In this commit, the flexible working hours (flexible contract) has been reworked in the resource calendar and the contract. 1. Definition of Flexible working calendars: Flexible working calendars are defined by setting the `flexible_hours` field to True in resource calendar. Flexible resource are able to set the number of working hours per day freely, without referring to working intervals (attendance). Added a helper function `is_flexible` in resource for readability and better maintenance of this definition. 2. Introduction of Fully Flexible working calendars Fully Flexible working calendars are defined by not setting any value to the field working calendar in the resource/contract view. This type of flexible calendar has no limit to the working hours per day, as well as on the week. This allows to have fully freedom on the length of shifts for resources. Note that for contracts, fully flexible can be selected only if the contract's working entry source is not 'working schedule'. A helper function `is_fully_flexible` is added in resource for readability and better maintenance of this definition. To allow these changes, we also introduced changes in the following modules: **hr_payroll:** - `resource_calendar_id` field no longer required for hr_contract. - in demo data, added `resource_calendar_flex_40h` for flexible contract with a limit of 40hours/week. - update existing flexible contracts in demo data. (previously, flex contract had their `calendar_id`=False) **planning:** - demo employee added with fully flexible working calendar (Suman Oza) - Adapted numerous methods for calculation of slots duration: whenever the calendar attendance is referred to calculate availability, we set an exception for flexible resources. - Auto plan: adapted to **exclude** flexible resources for this feature. - `_copy_slots` method is re-adapted for missing calendar of fully flexible resources. - progress bar adapted for fully flexible resources: the total working hours of the resource (in the planning view's interval) will be displayed. - progress bar adapted for flexible resources: the progress bar will be displayed as before in the gantt view. However the denominator will be an approximation in the case of month/year interval, since we cannot know how many working days there are per week. - Added tests for flex and fully flex contracts. **planning_contract**: - a slot outside the interval of an ongoing contract period returns 0 allocated hours for flexible and fully flexible contracts. **hr_attendance_gantt:** - when retrieving unavailable_intervals_by_calendar for fully flex we return an empty Interval to set no unavailability. **hr_work_entry_contract_attendance:** - for fully flexible resources, refer to the timezone of the resource instead of the calendar. Additionally, a demo user with a fully flexible schedule has been added to display the features and facilitate future testing. Task-3762895 related PR community: https://github.com/odoo/odoo/pull/157577 update: https://github.com/odoo/upgrade/pull/5851
Tax closing reminder activities are now attached to the journal used for closing instead of a draft closing entry. This prevents empty closing entries from being created while keeping teams informed about the next tax closing task.
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
Inventory counts for products tracked by serial number now better match real warehouse workflows. The Barcode app no longer asks for serial numbers during inventory adjustment when those serial numbers are only meant to be assigned later, such as at delivery, reducing confusion and incorrect line warnings.
Original PR description
Before this commit: ================== Barcode Icons for Serial Numbers was visible when the product is tracked by serial number but the quant has zero quantity and the edit button on the line was also visible. After this Commit: ================= Barcode Icons for Serial Numbers is removed if that product has zero quant and user is scanning the product directly but on the other side if the user is scanning a particular location and then scanning the product which is tracked by serial number then Barcode icon is visible and checkbox button is removed. task-3790171
Kitchen and preparation display staff can now see notes that apply to an entire order, not just individual order lines. This helps teams catch customer instructions or special handling details more reliably during order preparation.
Original PR description
In this commit ------------------ - Created preparation_display_order_note to store the order note currently displayed on preparation display. - Showed order note on kichen display. task: 4081356 Related PR Community PR: https://github.com/odoo/odoo/pull/175535 Upgrade PR: https://github.com/odoo/upgrade/pull/6341
The POS receipt screen now separates email and phone-based sending into clearer input fields and actions. Staff can more easily send receipts by email, SMS, or WhatsApp, reducing confusion at checkout.
Original PR description
### Before <img width="859" alt="Screenshot 2024-08-21 at 10 24 50 AM" src="https://github.com/user-attachments/assets/3441b646-f032-4075-8583-b5b1c500cd9d"> ### After <img width="859" alt="Screenshot 2024-08-21 at 9 50 29 AM" src="https://github.com/user-attachments/assets/12025f2c-5f06-4e49-829d-02c5fddc9624">
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 Belgian payroll notice period wizard now includes more departure reasons and calculates notice period start and end dates more accurately. The interface has also been improved to make employee departure processing easier and reduce input mistakes.
Original PR description
This adds some departure reasons to the notice period wizard. It also fixes the starting and ending dates of the period. Finally, this improves the UI to make it easier to use and less prone to errors. Task: 3633959
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
Manufacturing order cost summaries now show planned costs before production starts, begin actual costs at zero once work is in progress, and compare actual versus planned costs when finished. This helps teams better track production profitability and avoid misleading cost figures during manufacturing.
Original PR description
This PR contains small changes to adapt to the community PR. ------------------------ The mo overview costs are not accurate. Problems -------- - as soon as the MO is in progress, the real costs should start at 0, and the component cost should not be added untill they are consummed - when the MO is draft/confirmed, you should not see the real cost, but the bom cost to be able to compare it to what component are used/operations are planned on the MO - when the MO is done, you want to compare the real cost vs what was planned task-id: 3369946
Odoo now retrieves key invoicing authorization details directly from DIAN for Colombian electronic invoicing journals. This helps keep official numbering ranges, authorization dates, journal codes, and technical keys accurate, with a note added when values are updated.
Original PR description
Use GetNumberingRange to fetch the journal values: * l10n_co_edi_dian_authorization_number * l10n_co_edi_dian_authorization_date * l10n_co_edi_dian_authorization_end_date * l10n_co_edi_min_range_number * l10n_co_edi_max_range_number * code * l10n_co_dian_technical_key Log a message in the chatter if some fields are updated. task-4133688
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
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.
This fix prevents new bank connections from using an invalid default synchronization date when no lock date exists. It helps ensure first-time bank synchronization can start correctly and avoids provider errors during account setup.
Original PR description
Commit https://github.com/odoo/enterprise/commit/08a818bef6150c2877cdf64a7f4aa05ea14449e9 introduced a bug by setting journals last_sync to 1-1-1 when no lockdate is set. This would cause the first synchronization to fail because: - a start date would be set which is not wanted for first sync - the start date would be 1-1-1 which can cause error with some providers Reproduce bug: - Connect Saltedge Fake Bank OAuth with Pending Transactions - Select Account
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
Customer follow-up is simplified by improving the partner ledger and making it the standard way to send follow-up information. Older localized customer statement modules are removed, reducing duplicate processes and making receivables follow-up more consistent.
Original PR description
There are multiple mechanisms to handle Customer follow-up: the follow-up report, the customer statement module, and the partner ledger. To simplify, we improve the partner ledger and use this as the standard follow-up. Remove l10n_*_customer_statement modules Task-4143138
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.
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.
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
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
1 change
Resolved issues and error corrections
This update adds missing Spanish language translations for the Chilean EDI website checkout module. Navigation buttons and interface text that were added in the code were not translated, resulting in untranslated text appearing to Spanish-speaking users. The translation file has been updated to match the current code and provide a complete user experience in Spanish.
Original PR description
module is missing some translations
the i18n po file hasn't been updated since v.16 and doesn't match current fields
specifically, in **modules/website.py** the following navigation buttons are added:
```
checkout_steps.insert(previous_step_index+1, ( ['l10n_cl_edi_website_sale.l10n_cl_edi_invoicing_info'], {
...
'main_button': _lt("Continue checkout"),
'back_button': _lt("Return to shipping"),
...
```
but those translations are not present in **i18n/es_CL.po**
resulting in an unreadable interface in spanish, language for which this module is built for
