Thursday, August 29, 2024
29 changes · master
Enhancements to existing features
Automated checks were added for the Planning front end to help catch issues before they reach users. This reduces the risk that future changes accidentally break key planning workflows.
Original PR description
Currently there are no tests for the planning's front end. This means that changes in the code could break the front end's functionality without anyone noticing. Unfortunately, with the way that the front end is set-up there is no formal way to test the front-end like the back-end. This commit adds two tours which should make sure that the main functionalities of the front end are tested for future potential changes. task-3800770
Project-related service flows now use the newer project-based accounting link instead of the older analytic account field. This helps field service, rentals, subscriptions, helpdesk, manufacturing work orders, and project budgeting work more reliably with multi-dimensional analytic accounting.
Original PR description
In this commit, we adapt the flows that used 'analytic_account_id' field by the new 'project_id' fields introduced in https://github.com/odoo/odoo/pull/169868 We also make changes to allow flows to work properly with multi-dimensional analytic accounting. task-3985258
Forms now automatically let fields without labels use the full available width inside grouped sections. This removes the need for extra layout settings and reduces awkward empty space in accounting, payroll, delivery, localization, and manufacturing screens.
Original PR description
Grid is set to use 2 columns in a `<group/>` used as an inner group.
So before this commit, we had to put `colspan="2"` to force no label
fields to take all the available space.
If not, the field was located in the first column and you had some
empty space on the right due to the second column.
In this commit, we want to make this attribute optional when
`nolabel="1"` by collapsing these 2 columns automatically.
<group string="...">
<field name="x2many_field" nolabel="1"/>
</group>The spreadsheet experience has been updated to stay aligned with the latest platform improvements. This includes better handling of large spreadsheet content, improved currency and accounting formatting, and adjusted tests to support calculated fields, helping users create clearer financial reports with fewer display issues.
Original PR description
These commits adapt the enterprise codebase to https://github.com/odoo/odoo/pull/178178
Approval request lists now show key details such as location, period, and confirmation date, helping users understand requests faster. Submitted requests also have a clearer approve action, and approval reports can now be printed for easier sharing and record keeping.
Original PR description
In this commit, we've added the following things, - add Location, Period, and Date Confirmed fields in the list view of All Approvals - change the Approve Button color to primary when the record is submitted - Print the report for approval task-3560689
Resolved issues and error corrections
Demo bank records for Indian payroll now use correctly formatted bank identifier values. This helps ensure sample payroll data follows expected banking standards and avoids confusion during demos or testing.
Original PR description
In this commit, add formatted values for demo bank data. format: 11 characters - alphabetic code for the first four characters. - fifth character should always be zero and reserved for future use. - last 6 characters are usually numeric but can also be alphabetic. Related Task - 3794859
Code cleanup and technical improvements
The Belgian salary contract module’s browser code was modernized by replacing older jQuery usage with standard JavaScript. This is an internal cleanup that helps reduce technical dependencies and supports easier long-term maintenance without changing expected business behavior.
Original PR description
Description of the issue/feature this PR addresses: This PR aim to convert all jQuery code into Vanilla JS in hr_contract_salary, this way we will reduce the dependency of jQuery in Odoo codebase. task-3770362
Miscellaneous changes
[IMP] l10n_in_asset: add unit tests to indian asset depreciation This is about adding test to the new indian asset depreciation feature https://github.com/odoo/enterprise/pull/67225/commits/23591bb39500018afb3c4dab1c33c665c5f3a064 task-id#3909619 original-pr: https://github.com/odoo/enterprise/pull/67225 Forward-Port-Of: odoo/enterprise#69098 Forward-Port-Of: odoo/enterprise#68460
Original PR description
[IMP] l10n_in_asset: add unit tests to indian asset depreciation This is about adding test to the new indian asset depreciation feature https://github.com/odoo/enterprise/pull/67225/commits/23591bb39500018afb3c4dab1c33c665c5f3a064 task-id#3909619 original-pr: https://github.com/odoo/enterprise/pull/67225 Forward-Port-Of: odoo/enterprise#69098 Forward-Port-Of: odoo/enterprise#68460
This fix updates how VoIP call data is refreshed so it stays reliable after underlying system changes. It also makes related automated tests faster, helping future VoIP updates be validated more efficiently.
Original PR description
The voip model was overriding `static insert` method as if this works on a single record. For some time, this method works on multiple records, and its implementation detail has changed so assuming it does `get() ?? new()` is no longer guaranteed. The intent of override was to enrich data after them being assigned. This has been converted to an override of `update()`, which guarantees it being called whenever fields are updated on record, without making too much assumption in implementation details of records. This commit also speeds up tests of VOIP, which were awaiting input that contains a value. This is not observed by mutation observer, so these tests took 3 seconds to execute. This PR puts the value in `data-value`, so that this is a mutation that can be observed by contains, thus reducting time of such test to mere dozens of ms. https://github.com/odoo/odoo/pull/177059
Clicking a journal item in Accounting no longer opens an unwanted form view. When an attachment is available, users are taken to the expected preview instead, keeping the review flow focused and avoiding confusion.
Original PR description
The bug consisted of the form view to be opened when we clicked on an aml (journal item). The expected behaviour is to preview its attachment if there is one. But we never want to show that form view The cause is a commit from RD-JS https://github.com/odoo/odoo/pull/176707/files That changed the logic of opening the form view if there is no actions. task-4132306
Commission report filters have been adjusted so users only see options they are allowed to use. This prevents confusing access-right errors and keeps reporting tools aligned with each user's permissions.
Original PR description
Before this commit, some filters raised access right errors, filter that should be used have received access right and others were hidden.
This fix removes an obsolete VAT closing warning field that could still affect tax closing workflows. It helps ensure manually edited closing entries are not unintentionally refreshed in a way that erases user changes when posting or reviewing periodic VAT entries.
Original PR description
Before this commit https://github.com/odoo/enterprise/pull/65645/commits/ba50a831bb99d9808ed28899dfe1a73e0fe7566b when posting a manually modified closing entry, the entire move would be refreshed, and all user-modified information would be erased. This occurred because, when accessing the action_periodic_vat_entries, the current tax closing move was overwritten. We also removed tax_closing_show_multi_closing_warning but didn't remove the field so this PR will remove the last occurrence of the field and the compute. task: 4083471 related upgrade PR: https://github.com/odoo/upgrade/pull/6410
Steps to reproduce: - Install `l10n_{ar,pe}_pos` and `l10n_ec_edi_pos` - Enable "Use QR Code on ticket" - Make an order and validate it inside the POS - Open in an incognito window the link given by the QR Code Issues: Internal error, the cause is the multiple else that are added to the `get_info_div` block. This problem is blocking #175591 and #175593 related community PR: https://github.com/odoo/odoo/pull/176746 Forward-Port-Of: odoo/enterprise#68432
Original PR description
Steps to reproduce:
- Install `l10n_{ar,pe}_pos` and `l10n_ec_edi_pos`
- Enable "Use QR Code on ticket"
- Make an order and validate it inside the POS
- Open in an incognito window the link given by the QR Code
Issues:
Internal error, the cause is the multiple else that are added to the `get_info_div` block.
This problem is blocking #175591 and #175593
related community PR: https://github.com/odoo/odoo/pull/176746
Forward-Port-Of: odoo/enterprise#68432Because of https://github.com/odoo/odoo/blob/e1fb54cb3d5db9c906946fa11ff49c1ca86d3722/odoo/fields.py#L620-L621, writing on a field which is `related` and `readonly=False` will effectively forward the new value on the parent field if this one is also `readonly=False`. This was not the case for fields + `intercompany_warehouse_id` + `intercompany_sync_delivery_receipt` + `intercompany_receipt_type_id` defined in res_company and related in res_config_setting As they are computed fiel
Original PR description
Because of https://github.com/odoo/odoo/blob/e1fb54cb3d5db9c906946fa11ff49c1ca86d3722/odoo/fields.py#L620-L621, writing on a field which is `related` and `readonly=False` will effectively forward the new value on the parent field if this one is also `readonly=False`. This was not the case for fields + `intercompany_warehouse_id` + `intercompany_sync_delivery_receipt` + `intercompany_receipt_type_id` defined in res_company and related in res_config_setting As they are computed fields which implies that are `readonly=True` by default. Forward-Port-Of: odoo/enterprise#69067
Changes ----- Since 17.2, the subscription view in the portal only shows what will be invoiced next. SO lines of non recurring products are hidden if already invoiced. This commit makes the following changes: 1. When viewing a subscription in the portal from the Orders button, the breadcrumb links to the Subscriptions page instead of the Sales Orders page. 2. To allow the user to see non recurring products of a subscription, accessing previous orders from the "History" link of a subscripti
Original PR description
Changes ----- Since 17.2, the subscription view in the portal only shows what will be invoiced next. SO lines of non recurring products are hidden if already invoiced. This commit makes the following changes: 1. When viewing a subscription in the portal from the Orders button, the breadcrumb links to the Subscriptions page instead of the Sales Orders page. 2. To allow the user to see non recurring products of a subscription, accessing previous orders from the "History" link of a subscription will link to the sales orders (which show the non recurring lines). opw-4028536 Forward-Port-Of: odoo/enterprise#67595
Before this Fix =============== The repost and like operations on the feed view lead to failure. Reason ====== Due to the modifications in [code](https://github.com/odoo/odoo/blob/844ef1895c8fd4f39c5bebe7e3cffa5a6e68fe0d/addons/web/controllers/home.py#L37) any RPC calls with URLs starting with 'social_twitter/' are now being redirected to the mentioned controller, causing errors and operational failures. After this Fix ============== Rpcs call will be redirected to the respected cont
Original PR description
Before this Fix =============== The repost and like operations on the feed view lead to failure. Reason ====== Due to the modifications in [code](https://github.com/odoo/odoo/blob/844ef1895c8fd4f39c5bebe7e3cffa5a6e68fe0d/addons/web/controllers/home.py#L37) any RPC calls with URLs starting with 'social_twitter/' are now being redirected to the mentioned controller, causing errors and operational failures. After this Fix ============== Rpcs call will be redirected to the respected controller and operations will not fail. Task-4072724 Forward-Port-Of: odoo/enterprise#68298
Before this commit, there were discrepancies between a kanban view with or without the progress bar. The kanban view, with the progress bar, have the count of each group (folded or not). Contrariwise, the kanban view, without the progress bar, only have the count of the folded groups. This commit adds a count to all the columns of the kanban view, folded or not, with the progress bar or without. opw-4132389 Forward-Port-Of: odoo/enterprise#69048
Original PR description
Before this commit, there were discrepancies between a kanban view with or without the progress bar. The kanban view, with the progress bar, have the count of each group (folded or not). Contrariwise, the kanban view, without the progress bar, only have the count of the folded groups. This commit adds a count to all the columns of the kanban view, folded or not, with the progress bar or without. opw-4132389 Forward-Port-Of: odoo/enterprise#69048
**Current behavior:** In Barcode, it is possible for a split of incomplete moves to be triggered which leaves the original move with a quantity and demand of zero- effectively generating a superfluous record value. **Expected behavior:** A split should not occur when the original line has `quantity == 0`. **Steps to reproduce:** 1. Create a transfer for 2 units of some product, assign it 2. Open the transfer in Barcode and use the form to add 1 unit 3. Use the back button with
Original PR description
**Current behavior:** In Barcode, it is possible for a split of incomplete moves to be triggered which leaves the original move with a quantity and demand of zero- effectively generating a…
**Current behavior:**
In Barcode, it is possible for a split of incomplete moves to be
triggered which leaves the original move with a quantity and
demand of zero- effectively generating a superfluous record
value.
**Expected behavior:**
A split should not occur when the original line has
`quantity == 0`.
**Steps to reproduce:**
1. Create a transfer for 2 units of some product, assign it
2. Open the transfer in Barcode and use the form to add 1 unit
3. Use the back button within the Barcode app to return to the
previous action
4. Reopen the transfer, set the quantity on the move to 0 from 1
5. Use the back button to exit the transfer again
6. Open the transfer in the backend to see there is a move with
a line for 0 / 0 units.
**Cause of the issue:**
We split moves if their quantity is less than demand without
considering it may be zero.
**Fix:**
Reset the move in the case of `quantity == 0`- thus it will no
longer become a split candidate.
opw-4056241
Forward-Port-Of: odoo/enterprise#69046
Forward-Port-Of: odoo/enterprise#68554Once an archived employee has a draft contract archived, he is deleted. We should not do that as it tries to delete some of employees that really have worked in the company. So we aslo check that the employee we want to delete has no other contract in the company. We also don't need to look after cars, as they are not created if the contract is not signed. Forward-Port-Of: odoo/enterprise#68606
Original PR description
Once an archived employee has a draft contract archived, he is deleted. We should not do that as it tries to delete some of employees that really have worked in the company. So we aslo check that the employee we want to delete has no other contract in the company. We also don't need to look after cars, as they are not created if the contract is not signed. Forward-Port-Of: odoo/enterprise#68606
SEPA file was generated for payslips even if the wage was 0. It should not be the case. This fix filters the payslips to generate SEPA file only for those with wage>0. Forward-Port-Of: odoo/enterprise#69052
Original PR description
SEPA file was generated for payslips even if the wage was 0. It should not be the case. This fix filters the payslips to generate SEPA file only for those with wage>0. Forward-Port-Of: odoo/enterprise#69052
As we force sending the mail to the signatories, we've put a commit in the transaction before sending the mail to ensure the document is signed before sending the mail. The issue is that if the transcation failed later in an override (e.g. create a car, send another document, ...), the document is signed and the transaciton has only been partially processed. To avoid this kind o issues (silent errors), we are using the function 'send_after_commit' instead of 'send' to only send the email w
Original PR description
As we force sending the mail to the signatories, we've put a commit in the transaction before sending the mail to ensure the document is signed before sending the mail. The issue is that if the transcation failed later in an override (e.g. create a car, send another document, ...), the document is signed and the transaciton has only been partially processed. To avoid this kind o issues (silent errors), we are using the function 'send_after_commit' instead of 'send' to only send the email when the entire transaction is processed. Forward-Port-Of: odoo/enterprise#68975
The constraint here fails because when uploading the certificate, password and key through the settings, the values are written one by one on the company, which made it fail in case the password is written first (the constraint would test the password on empty values and throw an error). The groups right is not useful anymore as the flow uses sudo to modify it outside of the settings. Forward-Port-Of: odoo/enterprise#68826 Forward-Port-Of: odoo/enterprise#67874
Original PR description
The constraint here fails because when uploading the certificate, password and key through the settings, the values are written one by one on the company, which made it fail in case the password is written first (the constraint would test the password on empty values and throw an error). The groups right is not useful anymore as the flow uses sudo to modify it outside of the settings. Forward-Port-Of: odoo/enterprise#68826 Forward-Port-Of: odoo/enterprise#67874
When filling big numbers (10+ digits) in the input field with Actual Demand/Replenishment activated, the field limits itself to 38% of the cell width, which then crops the number inside. This fix replace the inline-flex by a normal flex, as well as removes the max-width. This way if Actual Demand/Replenishment is activated, it will be shown over 2 lines in the cell. fp-request Forward-Port-Of: odoo/enterprise#69040 Forward-Port-Of: odoo/enterprise#66164
Original PR description
When filling big numbers (10+ digits) in the input field with Actual Demand/Replenishment activated, the field limits itself to 38% of the cell width, which then crops the number inside. This fix replace the inline-flex by a normal flex, as well as removes the max-width. This way if Actual Demand/Replenishment is activated, it will be shown over 2 lines in the cell. fp-request Forward-Port-Of: odoo/enterprise#69040 Forward-Port-Of: odoo/enterprise#66164
Steps: - Install `marketing_automation` and `web_studio` - Open Marketing Automation and studio - Click "Edit Menu" - Click "New Menu" - Set a name - Set Existing Model - Select "Marketing Activity" - Confirm - Try to use this new menu - Traceback This is because a compute is triggered in marketing_activity and we use `literal_eval` on domain fields unsetted. `literal_eval` works only with string https://docs.python.org/3/library/ast.html#a
Original PR description
Steps:
- Install `marketing_automation` and `web_studio`
- Open Marketing Automation and studio
- Click "Edit Menu"
- Click "New Menu"
- Set a name
- Set Existing Model
- Select "Marketing Activity"
- Confirm
- Try to use this new menu
- Traceback
This is because a compute is triggered in marketing_activity and we use `literal_eval` on domain fields unsetted.
`literal_eval` works only with string https://docs.python.org/3/library/ast.html#ast.literal_eval
opw-4115586
Forward-Port-Of: odoo/enterprise#68920Steps to reproduce: 1) Go to runbot Odoo 16 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). 2) Take position on Argentinian company (AR) (Responsable Inscripto) . 3) Create customer electronic invoice and confirm. If there is a response with 503 error (HTTPError: 503 Server Error. Service Unavailable) while connecting to the webservice then it will be raised the error message and this text "Please report this error to your Odoo provider" (but this text is
Original PR description
Steps to reproduce: 1) Go to runbot Odoo 16 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). 2) Take position on Argentinian company (AR) (Responsable Inscripto) . 3)…
Steps to reproduce: 1) Go to runbot Odoo 16 enterprise and install "l10n_ar_edi" module (Argentinean Electronic Invoicing). 2) Take position on Argentinian company (AR) (Responsable Inscripto) . 3) Create customer electronic invoice and confirm. If there is a response with 503 error (HTTPError: 503 Server Error. Service Unavailable) while connecting to the webservice then it will be raised the error message and this text "Please report this error to your Odoo provider" (but this text is not suitable because the odoo provider can`t solve the error. The webservice is not available). Current behavior: If there is a response with 503 error (HTTPError: 503 Server Error. Service Unavailable) while connecting to the webservice when the user is trying to confirm an electronic customer invoice then it will be raised the error message and this text "Please report this error to your Odoo provider". Expected behavior: If there is a response with 503 error (HTTPError: 503 Server Error. Service Unavailable) while connecting to the webservice when the user is trying to confirm an electronic customer invoice then it will be raised the error message and this text 'The AFIP electronic billing webservice is not available. Wait a few minutes for it to reset and try to validate the action again.'. Task Adhoc: 37771 Forward-Port-Of: odoo/enterprise#67566 Forward-Port-Of: odoo/enterprise#59983
We no longer need to add isCheck after this version on a tour we remove the checks and fix a small typo to avoid failing runbots. opw-76050 Forward-Port-Of: odoo/enterprise#68962
Original PR description
We no longer need to add isCheck after this version on a tour we remove the checks and fix a small typo to avoid failing runbots. opw-76050 Forward-Port-Of: odoo/enterprise#68962
`portal.CustomerPortal.OPTIONAL_BILLING_FIELDS` is deprecated, we should rather use the method `_get_optional_fields` c.f. the OC-side commit Forward-Port-Of: odoo/enterprise#68969 Forward-Port-Of: odoo/enterprise#68679
Original PR description
`portal.CustomerPortal.OPTIONAL_BILLING_FIELDS` is deprecated, we should rather use the method `_get_optional_fields` c.f. the OC-side commit Forward-Port-Of: odoo/enterprise#68969 Forward-Port-Of: odoo/enterprise#68679
Issue ----- Error when multiple input lines on a payslip are of the same type. Steps ----- [hr_payroll] 1. Create a salary attachment for an employee, type "Attachment of salary", with a monthly amount and total amount A. 2. Create another salary attachment for the same employee, same type and monthly amount and total amount B different from A. 3. Create a payslip for the employee, create a contract with a start date matching the salary attachment date. On "Other Inputs", remove the "A
Original PR description
Issue ----- Error when multiple input lines on a payslip are of the same type. Steps ----- [hr_payroll] 1. Create a salary attachment for an employee, type "Attachment of salary", with a monthly amount and total amount A. 2. Create another salary attachment for the same employee, same type and monthly amount and total amount B different from A. 3. Create a payslip for the employee, create a contract with a start date matching the salary attachment date. On "Other Inputs", remove the "Attachment of salary" line. Create two input lines of type "Attachment of salary", one with amount A and another with amount B. 4. Compute sheet > Confirm > Mark as paid > ** Error ** Cause ----- Generally, input lines of the same type on a payslip will be merged in one input line, but it is not the case if there are multiple salary attachments of the same type matching these input lines. opw-4066851 Forward-Port-Of: odoo/enterprise#68934 Forward-Port-Of: odoo/enterprise#68441
This commit adds the website_generator_sale module for the website generator, which will allow for the importing of products. This includes support for variants, redirects and category pages. [Task](https://www.odoo.com/odoo/project/8390/tasks/3987140?cids=1) Forward-Port-Of: odoo/enterprise#66832
Original PR description
This commit adds the website_generator_sale module for the website generator, which will allow for the importing of products. This includes support for variants, redirects and category pages. [Task](https://www.odoo.com/odoo/project/8390/tasks/3987140?cids=1) Forward-Port-Of: odoo/enterprise#66832