Tuesday, November 19, 2024
33 changes · master
Enhancements to existing features
This update aligns the HR Referral applicant area with improved checks for whether users can access specific fields. It helps ensure the application respects field visibility rules more consistently, reducing the risk of users seeing or interacting with information they should not access.
Original PR description
task-4331116 odoo/odoo#186908
Spreadsheet-related data lookup methods are now marked as read-only, helping the system handle these requests more efficiently. This is an internal performance and reliability improvement with no expected change to user workflows.
Original PR description
## Description Adds the `@api.readonly` decorator to methods that only perform data retrieval in spreadsheet-related models and controllers. Task: [4317048](https://www.odoo.com/odoo/project/2328/tasks/4317048)
The Time-Off overview Gantt view now opens with the current month selected by default instead of a broader date range. This makes it easier for managers and employees to focus on the most relevant upcoming absences without manually adjusting filters.
Original PR description
This PR improves the Gantt view in the overview menu of the time-off module by setting the default filter to `This Month` instead of a date range. task-4239714
Internal test users now include partner management access by default, matching the access commonly used by real internal users. This reduces setup friction and supports upcoming mail and recipient handling improvements.
Original PR description
Add 'base.group_patner_manager' by default on test internal user as anyway it is mostly always used for internal users. Prepares Task-4332797 : [mail] Partner from emails 3.0 Prepares Task-4273479 : [mail] Email-like recipients
Adding a spreadsheet to a dashboard now clears old breadcrumb links that could point users back to previously archived spreadsheet documents. This reduces confusion and makes the dashboard creation flow cleaner and easier to follow.
Original PR description
When adding a new dashboard, existing breadcrumbs may lead to confusion, as they keep links to previous archived spreadsheet document. This commit clears breadcrumbs when adding a new dahsboard, ensuring a better user experience. task-3416361
US regular payroll calculations can now include employee bonuses and approved expenses directly in payslips. Bonuses are treated as taxable income before taxes, while expenses are added after taxes, helping payroll teams handle these common payments more accurately.
Original PR description
Add `Bonus` input type to `United States Regular Pay Salary Structure`.
Use `Expenses` and `Bonus` input types in the computation of payslips.
* Expenses:
* Allows users to include expenses (added automatically from the Expenses app) into the salary calculation when using the Structure Type "United States: Regular Pay". The rule is placed post taxes in the structure.
* Bonus:
* Add an Input type in "hr.payslip.input.type" called `Bonus`.
* "Bonus" allows users to add an extra source of income for employees that have associated the "United States: Regular Pay" Structure type in their payslip. The rule is placed pre-taxes in the structure, it is a taxable amount.
task-4097635The rental point-of-sale flow was aligned with recent quotation screen behavior so tests reflect the correct order quantities. This helps ensure unpaid amounts are calculated consistently and reduces the risk of regressions in rental sales validation.
Original PR description
This commit adapts a test so that it follows the logic of the changes of the pos quotation screen. The test has to be adapted because the quantity of the orderline was 0 before and that was leading to a zero amount unpaid. Community PR: https://github.com/odoo/odoo/pull/175365 task-id: 4070347
The Knowledge app now uses a simpler internal setup when loading messages, grouping related options together. This should make the code easier to maintain without changing how users interact with the feature.
Original PR description
This commit moves `search_term`, `before`, `after`, `limit` and `around` fetch params to a single parameter as `options` to simplify the code. This change applies to all available fetch messages routes. Suggested [here](https://github.com/odoo/odoo/pull/182334/files#r1811034899) Related to odoo/odoo#187192
Spreadsheet cell data is now saved in a simpler format, reducing exported file sizes significantly. This can make spreadsheet dashboards and document-related spreadsheet operations faster and lighter to store or transfer.
Payroll now shows warnings for untrusted employee bank accounts directly in the standard payroll app instead of only in the SEPA payroll extension. This helps all payroll localizations spot potentially unsafe payment details before processing salaries.
Original PR description
This will move the warning for untrusted bank accounts from the sepa module to standard payroll so that it's available for all localisations. Task: 4023575
The referral module now includes a reward report that helps review rewards earned by employees for successful referrals. This gives businesses clearer visibility into referral program performance and employee incentives.
Original PR description
This PR improves the referral module's report by adding a reward report that evaluates the data of rewards earned by employees for successful referrals. task-3946561
Code cleanup and technical improvements
This update renames internal WhatsApp channel fields so the browser-side code matches the server-side naming. It should not change user workflows, but it reduces confusion for future maintenance and helps avoid inconsistencies in WhatsApp discussions.
Original PR description
https://github.com/odoo/odoo/pull/184367
Miscellaneous changes
This commit fix some missing translations for the modelo349 tax report in spain. no-task Forward-Port-Of: odoo/enterprise#73850
Original PR description
This commit fix some missing translations for the modelo349 tax report in spain. no-task Forward-Port-Of: odoo/enterprise#73850
This change removes an outdated customization in the enterprise web module because the related menu data is no longer prepared in the underlying community code. It reduces maintenance overhead without changing what business users see or do.
Original PR description
The override is no longer necessary as the code in community no longer computes menu_data.
To reproduce: - Enable card provider (ex. "Demo" provider from `payment_demo`) - Go to website /shop - Add a subscription product to the cart - To go cart and click on "Checkout" - On the payment, chose the card payment method and check the option: "Automate payments for the linked subscriptions" - Click on "Pay Now" Here a request is made to /shop/undefined instead of the expect transaction route This commit ensure we only overwrite the default transation route by the sub
Original PR description
To reproduce: - Enable card provider (ex. "Demo" provider from `payment_demo`) - Go to website /shop - Add a subscription product to the cart - To go cart and click on "Checkout" - On the payment, chose the card payment method and check the option: "Automate payments for the linked subscriptions" - Click on "Pay Now" Here a request is made to /shop/undefined instead of the expect transaction route This commit ensure we only overwrite the default transation route by the subscription one only if it's set (from invoice portal controller) Forward-Port-Of: odoo/enterprise#73887
This commit uses the res.company env to check the value of the sign_invoice field instead of checking it directly through the related field. When uninstalling a module through res.config settings (i.e. unchecking the Partner Autocomplete box), this line will thrown an error if the uninstalled module had any fields on res.company. When using the related field, it tries to access a cached copy of the res.company record with field values that may have been modified, as opposed to browsing for the r
Original PR description
This commit uses the res.company env to check the value of the sign_invoice field instead of checking it directly through the related field. When uninstalling a module through res.config settings (i.e. unchecking the Partner Autocomplete box), this line will thrown an error if the uninstalled module had any fields on res.company. When using the related field, it tries to access a cached copy of the res.company record with field values that may have been modified, as opposed to browsing for the record directly which will be properly updated. Task-ID: 4107361 Forward-Port-Of: odoo/enterprise#68336
Reproduce: 1. Open the split tool on a pdf 2. Split into new documents 3. See crash about concurrent access to records 3. Sometimes you should do it several times This happens because several routes try to access the document simultaneously before any `documents.access` record exist. See `owner_values` in `documents.document`'s `_prepare_create_values` where we do this for the owner, but in the split tool, the owner can be someone else. Task-4319786 Forward-Port-Of: odoo/enterprise#7
Original PR description
Reproduce: 1. Open the split tool on a pdf 2. Split into new documents 3. See crash about concurrent access to records 3. Sometimes you should do it several times This happens because several routes try to access the document simultaneously before any `documents.access` record exist. See `owner_values` in `documents.document`'s `_prepare_create_values` where we do this for the owner, but in the split tool, the owner can be someone else. Task-4319786 Forward-Port-Of: odoo/enterprise#73750
- Hide sign item box when you don't need to fill it - Add responsible name to box task-id: 4316046 Forward-Port-Of: odoo/enterprise#73454
Original PR description
- Hide sign item box when you don't need to fill it - Add responsible name to box task-id: 4316046 Forward-Port-Of: odoo/enterprise#73454
opw-4272165 community: https://github.com/odoo/odoo/pull/186595 Forward-Port-Of: odoo/enterprise#73738 Forward-Port-Of: odoo/enterprise#73715
Original PR description
opw-4272165 community: https://github.com/odoo/odoo/pull/186595 Forward-Port-Of: odoo/enterprise#73738 Forward-Port-Of: odoo/enterprise#73715
Before this commit, when onSidebarDragStart was called to start dragging a sign item from the side bar, the placeholder was not resized the same it it is when it is dropped. Therefore the placeholder would see his change change upon releasing the element. taskid: 4164114 Forward-Port-Of: odoo/enterprise#73547
Original PR description
Before this commit, when onSidebarDragStart was called to start dragging a sign item from the side bar, the placeholder was not resized the same it it is when it is dropped. Therefore the placeholder would see his change change upon releasing the element. taskid: 4164114 Forward-Port-Of: odoo/enterprise#73547
Currently if employees (without users) log into the register and use the barcode reader, if the barcode isn't found in the database, they will be prompted with the create product screen Steps to reproduce: ------------------- * Connect to the db with Mitchell Admin * Open the **Point of Sale** App * Select **Configuration** > **Settings** * Select the Furniture shop * Enable **Log in with Employees** * Open Furniture shop session * Select an employee that is not a user as employee (Ab
Original PR description
Currently if employees (without users) log into the register and use the barcode reader, if the barcode isn't found in the database, they will be prompted with the create product screen Steps to…
Currently if employees (without users) log into the register and use the barcode reader, if the barcode isn't found in the database, they will be prompted with the create product screen Steps to reproduce: ------------------- * Connect to the db with Mitchell Admin * Open the **Point of Sale** App * Select **Configuration** > **Settings** * Select the Furniture shop * Enable **Log in with Employees** * Open Furniture shop session * Select an employee that is not a user as employee (Abigail Peterson for ex) * Either select the barcode icon and present a barcode to the camera or go into debug mode and enter the barcode in the debug window and select scan. Prefer to use a barcode not in the db. > Observation: A popup appear to create a product Why the fix: ------------ Currently employees are able to create product if the underlying user who is connected has the group `base.group_system`. https://github.com/odoo/enterprise/blob/3bf3400a60436e9f07f23c6ba11e5749e4c00459/pos_barcodelookup/static/src/overrides/components/barcode_reader/barcode_reader.js#L8 Employees do not have the right to create products. This commit https://github.com/odoo/odoo/commit/e10768b6ce5c82e67e14641233dc9deefb48f8ba already removed the rights to see the create product button from the menu. We follow the same logic to block the creation process when scanning barcodes. opw-4255570 Community PR:https://github.com/odoo/odoo/pull/187184 Forward-Port-Of: odoo/enterprise#72758
test_sync_pickings depends on street value, which does not exist in no-demo mode, thus breaking tests. This commit fixes the issue. [broken test](https://runbot.odoo.com/web#id=73283&view_type=form&model=runbot.build.error&menu_id=405&cids=1) Forward-Port-Of: odoo/enterprise#73041
Original PR description
test_sync_pickings depends on street value, which does not exist in no-demo mode, thus breaking tests. This commit fixes the issue. [broken test](https://runbot.odoo.com/web#id=73283&view_type=form&model=runbot.build.error&menu_id=405&cids=1) Forward-Port-Of: odoo/enterprise#73041
Offer "send message" will directly propose the email of the offer's employee/applicant. task-4062860 Forward-Port-Of: odoo/enterprise#73900
Original PR description
Offer "send message" will directly propose the email of the offer's employee/applicant. task-4062860 Forward-Port-Of: odoo/enterprise#73900
We've added tracking on some fields that are used to compute the cost of cars to know if it has been manually changed. When the value or the cost of the car change, we want to know who modified it and when it has been done. TASK-ID: 4306184 Forward-Port-Of: odoo/enterprise#73977 Forward-Port-Of: odoo/enterprise#73718
Original PR description
We've added tracking on some fields that are used to compute the cost of cars to know if it has been manually changed. When the value or the cost of the car change, we want to know who modified it and when it has been done. TASK-ID: 4306184 Forward-Port-Of: odoo/enterprise#73977 Forward-Port-Of: odoo/enterprise#73718
Purpose ======= Hide the "frozen folders" by default, the frozen spreadsheets can be accessed in "Shared With Me". Task-4316768 Forward-Port-Of: odoo/enterprise#73829
Original PR description
Purpose ======= Hide the "frozen folders" by default, the frozen spreadsheets can be accessed in "Shared With Me". Task-4316768 Forward-Port-Of: odoo/enterprise#73829
Forward-Port-Of: odoo/enterprise#73901
Original PR description
Forward-Port-Of: odoo/enterprise#73901
Add `Bonus` input type to `United States Regular Pay Salary Structure`. Use `Expenses` and `Bonus` input types in the computation of payslips. * Expenses: * Allows users to include expenses (added automatically from the Expenses app) into the salary calculation when using the Structure Type "United States: Regular Pay". The rule is placed post taxes in the structure. * Bonus: * Add an Input type in "hr.payslip.input.type" called `Bonus`. * "Bonus" allows users to add an e
Original PR description
Add `Bonus` input type to `United States Regular Pay Salary Structure`.
Use `Expenses` and `Bonus` input types in the computation of payslips.
* Expenses:
* Allows users to include expenses (added automatically from the Expenses app) into the salary calculation when using the Structure Type "United States: Regular Pay". The rule is placed post taxes in the structure.
* Bonus:
* Add an Input type in "hr.payslip.input.type" called `Bonus`.
* "Bonus" allows users to add an extra source of income for employees that have associated the "United States: Regular Pay" Structure type in their payslip. The rule is placed pre-taxes in the structure, it is a taxable amount.
task-4097635
Forward-Port-Of: odoo/enterprise#74043
Forward-Port-Of: odoo/enterprise#68530To reproduce: - Edit 'Trial Balance' report and enable the "Blank if Zero" option for both debit and credit lines - Open a 'Trial Balance', observe there is no 'End Balance' values for line where there are only debit or only credit amounts. This commit also update the `is_zero` option for end balance columns value to ensure there are correctly shown when "Blank if Zero" option is enabled. Forward-Port-Of: odoo/enterprise#73722
Original PR description
To reproduce: - Edit 'Trial Balance' report and enable the "Blank if Zero" option for both debit and credit lines - Open a 'Trial Balance', observe there is no 'End Balance' values for line where there are only debit or only credit amounts. This commit also update the `is_zero` option for end balance columns value to ensure there are correctly shown when "Blank if Zero" option is enabled. Forward-Port-Of: odoo/enterprise#73722
When trying to generate SEPA for employee payslip, and one of the the employee has a work address with no country, the generation fail with the following error: ``` File "/home/odoo/src/enterprise/18.0/account_iso20022/models/account_journal.py", line 394, in _get_PstlAdr Ctry.text = partner_id.country_id.code ^^^^^^^^^ File "src/lxml/etree.pyx", line 1043, in lxml.etree._Element.text.__set__ File "src/lxml/apihelpers.pxi", line 749, in lxml.etree._setNodeText File "src/
Original PR description
When trying to generate SEPA for employee payslip, and one of the the employee has a work address with no country, the generation fail with the following error:
```
File "/home/odoo/src/enterprise/18.0/account_iso20022/models/account_journal.py", line 394, in _get_PstlAdr
Ctry.text = partner_id.country_id.code
^^^^^^^^^
File "src/lxml/etree.pyx", line 1043, in lxml.etree._Element.text.__set__
File "src/lxml/apihelpers.pxi", line 749, in lxml.etree._setNodeText
File "src/lxml/apihelpers.pxi", line 737, in lxml.etree._createTextNode
File "src/lxml/apihelpers.pxi", line 1528, in lxml.etree._utf8
TypeError: Argument must be bytes or unicode, got 'bool'
```
This fix by using the country code of the compute valid partner address (i.e in our case the employee private address) and not the partner itself (the work address).
Forward-Port-Of: odoo/enterprise#73607Forward-Port-Of: odoo/enterprise#70809
Original PR description
Forward-Port-Of: odoo/enterprise#70809
We only need to shown MX EDI fields for move/invoices related to a company where fiscal country is Mexico, hide it for other companies. Forward-Port-Of: odoo/enterprise#73929 Forward-Port-Of: odoo/enterprise#73623
Original PR description
We only need to shown MX EDI fields for move/invoices related to a company where fiscal country is Mexico, hide it for other companies. Forward-Port-Of: odoo/enterprise#73929 Forward-Port-Of: odoo/enterprise#73623
### Steps to reproduce: - In the settings Enable Multi-steps route - Create a product FP with a BOM: - 1 component: 1 x COMP (tracked by SN) - 1 operation: "Register SN on COMP" - Add an instruction on your op: - type: "Register consumed component" - Product To Register: COMP - Put 2 SN for COMP: - SN01 in Stock/Shelf1 - SN02 in Stock/Shelf2 - Create and confirm an MO for 1 Unit of FP > SN01 is reserved on the COMP raw move. - Go to the shopfloor > "Register SN o
Original PR description
### Steps to reproduce: - In the settings Enable Multi-steps route - Create a product FP with a BOM: - 1 component: 1 x COMP (tracked by SN) - 1 operation: "Register SN on COMP" - Add an instruction…
### Steps to reproduce:
- In the settings Enable Multi-steps route
- Create a product FP with a BOM:
- 1 component: 1 x COMP (tracked by SN)
- 1 operation: "Register SN on COMP"
- Add an instruction on your op:
- type: "Register consumed component"
- Product To Register: COMP
- Put 2 SN for COMP:
- SN01 in Stock/Shelf1
- SN02 in Stock/Shelf2
- Create and confirm an MO for 1 Unit of FP
> SN01 is reserved on the COMP raw move.
- Go to the shopfloor > "Register SN on COMP"
- Change the SN of the COMP from SN01 to SN02
#### > Go back to the MO the incorrect location was used
### Cause of the issue:
While the lot is correctly updated by the action here: https://github.com/odoo/enterprise/blob/e90cf74be3945d1f1256d398ca9c4b61bc35ed08/mrp_workorder/models/quality.py#L485-L507 The associated quant is not set and hence the move location_id, package, ... are not updated with it.
### Fix:
We take advantage of the `quant_id` dummy field of the `stock.move.line` to update the info to write thanks to the write override: https://github.com/odoo/odoo/blob/09cac8b9e6d2db46dadece0442a8a947a49c9de7/addons/stock/models/stock_move_line.py#L85 https://github.com/odoo/odoo/blob/09cac8b9e6d2db46dadece0442a8a947a49c9de7/addons/stock/models/stock_move_line.py#L399-L400 https://github.com/odoo/odoo/blob/09cac8b9e6d2db46dadece0442a8a947a49c9de7/addons/stock/models/stock_move_line.py#L911-L920
### Note:
Unfortunately, the Dialog opened when clicking on the the quality check from the shopfloor:
https://github.com/odoo/enterprise/blob/34ab94cdcc49f4ade66953874a03f2988b2b4317/mrp_workorder/static/src/mrp_display/dialog/mrp_quality_check_confirmation_dialog.js#L12
is not embedded in a form view so that the onchange:
https://github.com/odoo/odoo/blob/366676cafdce00d55823c6daf41452b0c2373e4d/addons/stock/models/stock_move_line.py#L185-L192
is not triggered by our change of "lot_id".
opw-4149941
---
Forward-Port-Of: odoo/enterprise#73856
Forward-Port-Of: odoo/enterprise#72816Fix tour test_03_preparation_display_skip_change by unlink printer config to avoid the appear of modal "printing failed". Forward-Port-Of: odoo/enterprise#73985
Original PR description
Fix tour test_03_preparation_display_skip_change by unlink printer config to avoid the appear of modal "printing failed". Forward-Port-Of: odoo/enterprise#73985