Monday, June 24, 2024
29 changes · master
Enhancements to existing features
This update ensures data cleanup actions added by bridge modules are tied to the modules that create them. When those modules are uninstalled, the related actions are removed automatically, reducing leftover menu options and keeping the system tidy.
Original PR description
Bind contextual action to bridge module to delete action on module uninstallation. task-id: 3275043
Leave administrators and employee leave managers can now validate, approve, or refuse leave allocations directly from the Gantt or calendar popover. This reduces navigation and speeds up day-to-day leave management decisions.
Original PR description
In this PR, a validation, approval, and refuse button have been added to the footer of the popover. These buttons are visible to both the administrator and the leave manager of the employee task-3329594
Salary offer pages can now be customized using Odoo Studio, making it easier for businesses to adapt offer content and workflows to their needs. This improves flexibility for HR teams without requiring custom development.
Referral recruiters can now access the points menu without needing developer mode. This makes it easier for the right users to review referral points while keeping the change limited to the HR Referral area.
Original PR description
The points menu was visible only in developper mode but it should be visible for referral recruiter too. (I also made the two menuitem respect the 120c width) task-3863980
The Approvals dashboard has been redesigned to make common actions easier to find and use. Users can now archive or restore approval categories directly from the dashboard, while creating a new approval request is promoted as the main action for a more consistent experience.
Original PR description
This commit revamps the dashboard of the approvals module. The dashboard give now the possibility to archive/unarchive categories in addition to the possibility to configure them. The menu permitting to create a new approval request has been moved to as the main button of the dashboard. All these changes are made to make the dashboard more user-friendly and to make it more consistent with the rest of the module. task-3634015
This update improves the precision of rounding utilities used across several business workflows. It helps financial, payroll, field service, and asset-related tests better reflect expected calculation results, reducing the risk of small rounding inconsistencies.
Original PR description
Updated tests for improved float rounding. Community branch: https://github.com/odoo/odoo/pull/152709
The salary attachment amount is now described as a payslip amount instead of a monthly amount. This better reflects employees who are paid on schedules other than monthly, reducing confusion in payroll records and screens.
Original PR description
In the salary attachment, the field 'monthly_amount' should be named 'payslip_amount' since the employee could be receiving payslips at another frequency than monthly. Task: 3947494
Adds Portuguese Balance Sheet and Profit and Loss report templates, including versions aligned with IPP and OCC formats. This helps Portuguese companies produce required financial statements more easily and consistently from Odoo.
The accounting audit trail is now integrated into the main accounting app with clearer guidance when no records are shown and more search filters for easier review. German localization will enable the audit trail setting automatically, supporting compliance needs with less manual setup.
Original PR description
This commit is part of a bigger commit in the community branch. This commit merges account_audit_trail to account and adds improvements on top of it: - improved the empty screen of audit trail menu message - auto activate the audit trail setting for l10n_de - added some additional filters in search for audit trail view task-id: 3952457 related community PR: https://github.com/odoo/odoo/pull/167072
Resolved issues and error corrections
New Belgian payroll contracts now show CP200 before PFI by default. This helps users pick the expected payroll structure more easily and reduces setup mistakes when creating contracts.
Original PR description
Purpose ======= Make CP200 come before PFI by default on new contracts.
Code cleanup and technical improvements
This update streamlines internal automated walkthroughs and tests by removing an older way of checking page elements. It helps keep the testing framework easier to maintain without changing day-to-day user features.
Miscellaneous changes
When trying to create a custom slot of 15min in the calendar, two slots were created. This was because the fullcalendar library was detecting two events: a date selection and a date click. The date selection is correct but the size of the event (15 min) is the minimal size which execute a click using the default time. To prevent this behaviour, we use preventDefault to ignore the second event and so the creation of the second slot. task-3976122 Forward-Port-Of: odoo/enterprise#64000
Original PR description
When trying to create a custom slot of 15min in the calendar, two slots were created. This was because the fullcalendar library was detecting two events: a date selection and a date click. The date selection is correct but the size of the event (15 min) is the minimal size which execute a click using the default time. To prevent this behaviour, we use preventDefault to ignore the second event and so the creation of the second slot. task-3976122 Forward-Port-Of: odoo/enterprise#64000
Original PR description
In order to simplify the towers API, it was decided to remove the extra_trigger key from the steps. To check that an element is in the DOM, simply create a step with a trigger. task~3974087
WhatsApp chat member information is now sent to the client in a simpler, flatter format. This reduces duplicated data transfer and client-side processing, helping conversations load more efficiently without changing user-facing behavior.
Original PR description
This will reduce data transferred to the client and processed in JS when the same persona was appearing multiple times in members. This also makes more clear what is transferred by avoiding nested values. This is part 3, focusing on channel member and related persona. Formatting code eventually becomes simpler too, by always adding data to the store rather than updating pre-existing dict manually. Part of task-3605717 https://github.com/odoo/odoo/pull/170330
After [this commit], when we allowed credit card accounts on bank journals, we changed the domain of the manual bank reconciliation widget to also make credit card accounts not selectable anymore. However, people are currently reconciling their bank journal entries with a credit card account, which is not possible anymore after this change. This commit fixes that by only preventing to reconcile with the same account as the one set on the journal. [this commit]: https://github.com/odoo/e
Original PR description
After [this commit], when we allowed credit card accounts on bank journals, we changed the domain of the manual bank reconciliation widget to also make credit card accounts not selectable anymore. However, people are currently reconciling their bank journal entries with a credit card account, which is not possible anymore after this change. This commit fixes that by only preventing to reconcile with the same account as the one set on the journal. [this commit]: https://github.com/odoo/enterprise/commit/4f84a260e515cc5d52d7aa2d9ba0dca7d77a101c Forward-Port-Of: odoo/enterprise#65176 Forward-Port-Of: odoo/enterprise#64877
When settling a sale order with recurring product, the qty invoiced is not correctly update on the sale order. Steps to reproduce: ------------------- * Install Point of Sale and Sale Subscription * Create a recurring product A * Create a sale order with the product A and select any subscription plan * Open a PoS session, settle the order, validate it and invoice it * Go back to the sale order > Observation: The invoiced quantity is still 0 Why the fix: ------------ Before this fi
Original PR description
When settling a sale order with recurring product, the qty invoiced is not correctly update on the sale order. Steps to reproduce: ------------------- * Install Point of Sale and Sale Subscription * Create a recurring product A * Create a sale order with the product A and select any subscription plan * Open a PoS session, settle the order, validate it and invoice it * Go back to the sale order > Observation: The invoiced quantity is still 0 Why the fix: ------------ Before this fix the `_get_subscription_qty_invoiced` method was not considering the pos_order_lines linked to the order_lines. It was happening because here https://github.com/odoo/enterprise/blob/77c76fecda9b63e2fc17431a4cd3623650f93724/sale_subscription/models/sale_order_line.py#L189-L196 The order lines with recurring product where not considered in the normal invoiced quantity computation. opw-3992577 Forward-Port-Of: odoo/enterprise#65202 Forward-Port-Of: odoo/enterprise#64891
**Before this PR:** Some fields are associated with groups in XML files, but they are visible even though the groups are disabled. (Recurring Revenue is not ticked in settings, i.e., the feature is not activated). **After this PR:** recurring_revenue fields in the measure will only be visible when it is ticked in settings, i.e., only when the feature is activated. Task-3810415 Forward-Port-Of: odoo/enterprise#65186 Forward-Port-Of: odoo/enterprise#60228
Original PR description
**Before this PR:** Some fields are associated with groups in XML files, but they are visible even though the groups are disabled. (Recurring Revenue is not ticked in settings, i.e., the feature is not activated). **After this PR:** recurring_revenue fields in the measure will only be visible when it is ticked in settings, i.e., only when the feature is activated. Task-3810415 Forward-Port-Of: odoo/enterprise#65186 Forward-Port-Of: odoo/enterprise#60228
Before, the end date of salary attachment was computed using today's date as a starting point. It really should be the salary attachment's starting date. Also, this will add a computed field to see the duration of the attachment. Task: 3947494 Forward-Port-Of: odoo/enterprise#63361
Original PR description
Before, the end date of salary attachment was computed using today's date as a starting point. It really should be the salary attachment's starting date. Also, this will add a computed field to see the duration of the attachment. Task: 3947494 Forward-Port-Of: odoo/enterprise#63361
Currently when we look at lunch times, we do not take leaves into account, resulting in lunch-time being computed when you have public holidays or time off Forward-Port-Of: odoo/enterprise#64916
Original PR description
Currently when we look at lunch times, we do not take leaves into account, resulting in lunch-time being computed when you have public holidays or time off Forward-Port-Of: odoo/enterprise#64916
Purpose ======= Fix the modal buttons which were badly displayed on mobile. Happening on the appointment type "Share" modal and the appointment type on-boarding step 2 "Preview" button modal. Specification ============= Usual modal buttons are direct children of the footer tag. However in these 2 cases, we're using a custom widget to add a modal button. The widgets are encapsulated into a "o_widget" div which messes up the button display. Restoring a good display for these widgets button
Original PR description
Purpose ======= Fix the modal buttons which were badly displayed on mobile. Happening on the appointment type "Share" modal and the appointment type on-boarding step 2 "Preview" button modal. Specification ============= Usual modal buttons are direct children of the footer tag. However in these 2 cases, we're using a custom widget to add a modal button. The widgets are encapsulated into a "o_widget" div which messes up the button display. Restoring a good display for these widgets buttons by making them take all the available space on mobile view and only the necessary space on higher screen sizes. Task-3981072 Forward-Port-Of: odoo/enterprise#64924 Forward-Port-Of: odoo/enterprise#64235
**Current behavior:** A picking with a move for a product with kit BOM that also has some product packaging can be un-openable in Barcode. **Expected behavior:** Any picking should be able to be processed in Barcode. **Steps to reproduce:** *Enable product packagings* 1. Create a storable product with a kit BOM and a product packaging 2. Make some picking that has a move for the new product, confirm it so the moves for the kit components are created 3. Add stock move lines for
Original PR description
**Current behavior:** A picking with a move for a product with kit BOM that also has some product packaging can be un-openable in Barcode. **Expected behavior:** Any picking should be able to be…
**Current behavior:** A picking with a move for a product with kit BOM that also has some product packaging can be un-openable in Barcode. **Expected behavior:** Any picking should be able to be processed in Barcode. **Steps to reproduce:** *Enable product packagings* 1. Create a storable product with a kit BOM and a product packaging 2. Make some picking that has a move for the new product, confirm it so the moves for the kit components are created 3. Add stock move lines for each of the moves, fill out their `qty_done` field with the required amount 4. Save the picking record, go into Barcode 5. Try to open the picking -> trace back **Cause of the issue:** The Barcode client tries to read the package record of the BOM product/product template but it was never fetched into the barcode cache. **Fix:** Ensure any packaging record that could have an attempted access is fetched by the barcode client `onWillStart()`. opw-3895426 Forward-Port-Of: odoo/enterprise#65179 Forward-Port-Of: odoo/enterprise#64024
Since Persona model properly determines `avatarUrl` it makes sense to invoke its method, that way we make sure that proper partner avatar is fetched. X-original-commit: 706259bc1177b22ee66c70062d8cb8f750bf0f02 fixes original pr of the task-3908710 Forward-Port-Of: odoo/enterprise#65069
Original PR description
Since Persona model properly determines `avatarUrl` it makes sense to invoke its method, that way we make sure that proper partner avatar is fetched. X-original-commit: 706259bc1177b22ee66c70062d8cb8f750bf0f02 fixes original pr of the task-3908710 Forward-Port-Of: odoo/enterprise#65069
Add the studio.approval.rule models in the default models to studio export. Task-3748219 Forward-Port-Of: odoo/enterprise#57038
Original PR description
Add the studio.approval.rule models in the default models to studio export. Task-3748219 Forward-Port-Of: odoo/enterprise#57038
In fc84a6e a fix was added to prevent deleting EDI documents as they're sent to the government. This is not the case for vendor bills and vendor bill refunds. This commit allows the deletion of the documents for those move types. task-3999152 Forward-Port-Of: odoo/enterprise#64974
Original PR description
In fc84a6e a fix was added to prevent deleting EDI documents as they're sent to the government. This is not the case for vendor bills and vendor bill refunds. This commit allows the deletion of the documents for those move types. task-3999152 Forward-Port-Of: odoo/enterprise#64974
Forward-Port-Of: odoo/enterprise#65016 Forward-Port-Of: odoo/enterprise#62136
Original PR description
Forward-Port-Of: odoo/enterprise#65016 Forward-Port-Of: odoo/enterprise#62136
In 17.0, a protection was added to the 281.50 tags on the partners (commit: 09439b46cbb8b6ef2447d67e1647cbc284d0e192). The code was forward ported but the function `user_has_groups` has been removed in saas-17.2 (in https://github.com/odoo/odoo/commit/cb31d4352c741a5f8a927a65debb8e027e87df22), causing a traceback. In this commit, we rather use the `has_group` function. task-3955109 Forward-Port-Of: odoo/enterprise#64971
Original PR description
In 17.0, a protection was added to the 281.50 tags on the partners (commit: 09439b46cbb8b6ef2447d67e1647cbc284d0e192). The code was forward ported but the function `user_has_groups` has been removed in saas-17.2 (in https://github.com/odoo/odoo/commit/cb31d4352c741a5f8a927a65debb8e027e87df22), causing a traceback. In this commit, we rather use the `has_group` function. task-3955109 Forward-Port-Of: odoo/enterprise#64971