Wednesday, May 15, 2024
25 changes · master
New functionality added to Odoo
Repair teams can now use quality checks directly on repair operation types, helping ensure repaired products meet required standards before completion. This adds quality control coverage for repairs while excluding quantity-based controls that are not applicable to this workflow.
Original PR description
Make quality checks effective on repair operation type, except Control per Quantity. task: 3773572
Enhancements to existing features
Additional automated checks were added to help prevent timers from incorrectly starting at a negative time and to avoid test errors when the Timer module is installed. This improves confidence that time tracking starts cleanly and remains reliable across related timesheet workflows.
Original PR description
[IMP] timer: Test start formatted time Before this commit: - Multiple instances of the timer were observed starting at -00:00:59 instead of 00:00:00. Unfortunately, it seems quite random and reproducing the issue exactly wasn't possible. - An error is raised when installing Timer module then starting JS tests. In this commit: - JS test added to try to reproduce the issue. - The file is inside timer but using hr_timesheet_common_tests from hr_timesheet. It also concerns hr_timesheet context. File moved to timesheet_grid and another test created in timer to simply test timer_start widget. task-3741938
Resolved issues and error corrections
The Chilean electronic invoicing point-of-sale setup now skips an unnecessary database lookup when there are no records to load. This reduces wasted processing during POS data loading and helps keep startup behavior efficient without changing user-facing workflows.
Original PR description
Previously, to avoid loading records when loading data into point_of_sale we used a domain with a falsy value `[('id', '=', False)]` but this required a query to the database.
Now we return False for the domain and if the domain is false we don't search for records. no record search.Code cleanup and technical improvements
Restaurant point-of-sale related test setup has been streamlined to reduce duplicated maintenance work across enterprise modules. This internal cleanup helps keep future changes more consistent and lowers the risk of test differences between related restaurant workflows.
Original PR description
The test assets that we use in pos are duplicated across different classes. In the corresponding commit we take the first steps in unifying them, by having the class in `pos_restaurant/tests/test_frontent.py` inherit from `point_of_sale`. In this commit we make the necessary changes to the enterprise modules. Task 3895255 https://github.com/odoo/odoo/pull/155540
Miscellaneous changes
Since a055dfeb84ab, the field `current_revision_uuid` is in the documents kanban view. Which means it can be computed for many documents. The compute method loads all the revisions of spreadsheet documents. Revisions can hold a lot of data (field `commands`), several hundreds of Mb for large spreadsheets. With this commit, we pre-fetch the only field that we need to prevent the ORM to prefetch all fields that we don't need (and specifically avoid loading the field `commands`) Task: 3918
Original PR description
Since a055dfeb84ab, the field `current_revision_uuid` is in the documents kanban view. Which means it can be computed for many documents. The compute method loads all the revisions of spreadsheet documents. Revisions can hold a lot of data (field `commands`), several hundreds of Mb for large spreadsheets. With this commit, we pre-fetch the only field that we need to prevent the ORM to prefetch all fields that we don't need (and specifically avoid loading the field `commands`) Task: 3918564 Forward-Port-Of: odoo/enterprise#62173
The Journal Report now shows a cleaner, more focused view with key journal and tax indicators instead of loading detailed move lines directly in the interface. Users can still audit details when needed, while PDF and XLSX exports remain complete and gain improved readability and workbook organization.
Original PR description
The old Journal Report was made in order to have a structured export of the move lines available, via its xlsx and pdf exports. Because of that, its user interface was heavy (since it needed to…
The old Journal Report was made in order to have a structured export of the move lines available, via its xlsx and pdf exports. Because of that, its user interface was heavy (since it needed to reflect what we wanted in the pdf/xlsx), and its computation was both slow and complex. Therefore, we now make the choice to simplify a lot what is shown in the UI by replacing the core of the report by a custom engine (which means the user can now use custom groupby values for this part, so it's more flexible). Only KPIs on the journals used in the periods, and the taxes used within them are shown, not the details of all the move lines. Of course, it is still possible to audit the amounts to see the details behind them, like on any report, so there is no functional loss (before, unfolding all the journals manually and loading more elements until you found the one you needed was useless anyway => people audited the lines to see their details directly within a tree view and used the search feature from there). In the meantime, we keep pdf and xlsx exports as complete as before (so, they do show way more information than the UI, and keep a full listing of all the move lines). For XSLX, we now ensure a new page is used for the rendering of every distinct journal. For PDF, we improve the style of the report, for better readability. task-3698843
Available planning shifts are now shown in chronological order on the front-end. This makes the schedule easier to read and keeps the shift list consistent with the rest of the planning view.
Original PR description
It makes more sense to display the shifts in the chronological order from the front-end. It also allows to form a coherent whole with the rest of the view. task-3853862
The point of sale rental workflow tests were updated to match a newer standard order selection screen. This helps keep automated checks aligned with the current interface, reducing the risk of future changes breaking rental order settlement unnoticed.
Original PR description
In the corresponding community commit we replace the custom list view for selecting a `sale.order` record with the default `view` component from `web`. In this commit we adapt the tests. Task: 3859301 https://github.com/odoo/odoo/pull/161066
The Knowledge app was updated to stay aligned with related messaging changes in Odoo. This helps keep article discussions and message formatting working consistently after the underlying platform update.
Original PR description
@see https://github.com/odoo/odoo/pull/162065
Australian payroll now includes employee expense reimbursements in payslip net salary calculations. This helps ensure reimbursed expenses are reflected correctly when payroll is processed, reducing manual adjustments and payment discrepancies.
Original PR description
The hr_payroll_expense module adds expense as other inputs to the payslip. However, this is not accounted in the net salary. This commits adds a new salary rule that adds expense reimbursement to the salary slip and includes it in the net salary. task# 3821955
Inventory teams can now choose whether barcode users see the expected quantity while counting, helping encourage real physical counts. A new option also ensures scanning a location loads all products expected there, reducing the risk of missing items during inventory adjustments.
Original PR description
Before this commit ================== - There were no settings to hide theoric quantity. - Another issue was that when scanning a location for inventory adjustment and finding nothing assigned to them, only the scanned products were displayed. This creates a problem where products with expected quantities (qty>0) that couldn't be physically found were missed during scanning. After this commit ================== - Added settings to hide theoric quantity, which allows to hide the expected quantity of a product to count in a location. - When scanning a location during an inventory adjustment, the module now loads all quants from that location. Community PR: https://github.com/odoo/odoo/pull/154848 TaskId-3479636
The Documents app now disables or hides actions users are not allowed to perform, such as uploading to or moving files into workspaces where they lack write access. This prevents confusing error messages and gives users clearer guidance when working with restricted folders or the trash.
Original PR description
We disable the "upload" button when the user doesn't have write access to the selected workspace. We ensure that the workspace field in the inspector does not allow to select non-writable workspaces, as the user cannot move selected items to those workspaces. We extend the feature developed in odoo/enterprise#38430 to the trash and non-writable workspaces, to avoid having an error when dropping files in the trash or a non-writable workspace. Task-3707728
Users can now move records in the Gantt view even when the view is grouped by property fields, making planning workflows more flexible. If a record is moved to a property row that does not apply to it, the system shows an error instead of making an invalid change.
Original PR description
Purpose ======= Allow moving the records when they are grouped by a property in the gantt view. If we move a record to a row corresponding to a property that the record doesn't have, an error is raised (because we won't change its parent). Task-3876726
Employee timesheet leaderboards now include employees only when they had an active or relevant contract during the selected period. This makes rankings more accurate and fair by excluding employees who should not be counted based on employment status.
Original PR description
Currently, contracts have 0 effect over the leaderboard, meaning that an employee will be part of the leaderboard whether they have a contract or not. This commit aims to add support for the contracts over the leaderboard, making employees part of it only if they had a contract or if they have a running contract on the selected period of time. The tests were adapted to remove the "post_install" tag, as the bridge module added in this commit changes the way employees are included in the leaderboard. task-3761558
Changed the chart_template_ref that wasn't adapted for a fw-port. Also added the tag, so the test's requests are not blocked in 17+ runbot-64732 runbot-62320 Forward-Port-Of: odoo/enterprise#62375
Original PR description
Changed the chart_template_ref that wasn't adapted for a fw-port. Also added the tag, so the test's requests are not blocked in 17+ runbot-64732 runbot-62320 Forward-Port-Of: odoo/enterprise#62375
the nssf number restriction should not be apply given the real world scenario where the number can be in other format (eg 000000000x) task-3908312 Forward-Port-Of: odoo/enterprise#61947
Original PR description
the nssf number restriction should not be apply given the real world scenario where the number can be in other format (eg 000000000x) task-3908312 Forward-Port-Of: odoo/enterprise#61947
In the BE loca, we were flexible on the notion of complete month. This was useful for odoo but did not make sense for the localization. A complete month of work is if you work from the first work day of the month to the last. Non-working days and public holidays are excluded. Forward-Port-Of: odoo/enterprise#62258
Original PR description
In the BE loca, we were flexible on the notion of complete month. This was useful for odoo but did not make sense for the localization. A complete month of work is if you work from the first work day of the month to the last. Non-working days and public holidays are excluded. Forward-Port-Of: odoo/enterprise#62258
task-3908271 Forward-Port-Of: odoo/enterprise#61944
Original PR description
task-3908271 Forward-Port-Of: odoo/enterprise#61944
Quality check wizard shows '- False' instead of Serial number in title if no lot_name opw-3839794 Forward-Port-Of: odoo/enterprise#62260
Original PR description
Quality check wizard shows '- False' instead of Serial number in title if no lot_name opw-3839794 Forward-Port-Of: odoo/enterprise#62260
Before this commit, the upsell lines were not translated into the customer lang. taskid: 3911032 Forward-Port-Of: odoo/enterprise#62394 Forward-Port-Of: odoo/enterprise#62086
Original PR description
Before this commit, the upsell lines were not translated into the customer lang. taskid: 3911032 Forward-Port-Of: odoo/enterprise#62394 Forward-Port-Of: odoo/enterprise#62086
**Steps:** - Install indian payroll(l10n_in_hr_payroll) - Create an employee. - Create contract on that employee. - Generate payslip. - Go to employee app > Report . - Print the `Yearly Salary by Head` or `Yearly Salary by Employee`. **Description of the issue/feature this PR addresses:** In the payroll module, - when we print employee salary report it will give traceback. - The `yearly salary by employee` report was generating duplicate lines for the net salary category. **Cause
Original PR description
**Steps:** - Install indian payroll(l10n_in_hr_payroll) - Create an employee. - Create contract on that employee. - Generate payslip. - Go to employee app > Report . - Print the `Yearly Salary by…
**Steps:** - Install indian payroll(l10n_in_hr_payroll) - Create an employee. - Create contract on that employee. - Generate payslip. - Go to employee app > Report . - Print the `Yearly Salary by Head` or `Yearly Salary by Employee`. **Description of the issue/feature this PR addresses:** In the payroll module, - when we print employee salary report it will give traceback. - The `yearly salary by employee` report was generating duplicate lines for the net salary category. **Cause** printing the employee salary report resulted in a traceback error. This was caused by an update (reference: https://github.com/odoo/enterprise/pull/53816) that made category_id in the payslip_line module unstored. As a result, the SQL query couldn't find the category_id and failed. **Fix:** This PR fix issues by modifying the SQL query used in the reports. Instead of relying on the unstored category_id from payslip_line, the query now retrieves the category ID directly from the hr_salary_rule_category table. task-3791974 Forward-Port-Of: odoo/enterprise#58933
part of task-3818666 community: https://github.com/odoo/odoo/pull/165340 Forward-Port-Of: odoo/enterprise#62419
Original PR description
part of task-3818666 community: https://github.com/odoo/odoo/pull/165340 Forward-Port-Of: odoo/enterprise#62419
This commit aims to convert QUnit tests which rely on `mail/test_utils` to hoot. Part of task-3818666 Forward-Port-Of: odoo/enterprise#62367
Original PR description
This commit aims to convert QUnit tests which rely on `mail/test_utils` to hoot. Part of task-3818666 Forward-Port-Of: odoo/enterprise#62367
Child asset has an `asset_lifetime_days` that depends on it's parent's. So, we need to add `recursive=True` to the field. Forward-Port-Of: odoo/enterprise#62351
Original PR description
Child asset has an `asset_lifetime_days` that depends on it's parent's. So, we need to add `recursive=True` to the field. Forward-Port-Of: odoo/enterprise#62351
Before this PR: - IGST is not applicable for intra-state transactions. - Transactions within special economic zones were not properly handled. After this PR: - Enhanced condition to exclude IGST for intra-state transactions. - Improved handling of transactions within special economic zones for accurate GST treatment. Forward-Port-Of: odoo/enterprise#62021
Original PR description
Before this PR: - IGST is not applicable for intra-state transactions. - Transactions within special economic zones were not properly handled. After this PR: - Enhanced condition to exclude IGST for intra-state transactions. - Improved handling of transactions within special economic zones for accurate GST treatment. Forward-Port-Of: odoo/enterprise#62021