Saturday, May 10, 2025
14 changes · master
Enhancements to existing features
Appointment forms can now be embedded on existing external websites for visitors who are not logged in. This makes it easier for businesses to use Odoo appointment scheduling without immediately adopting the full Odoo website integration, while keeping logged-in sessions protected.
Original PR description
Remove CSRF check on appointment forms if there is no session or no associated user for the session. We consider this safe as we already accept logged-out creation of appointment and do not modify any existing data so long as no user is logged in. In that way it is similar to regular form snippets which already work this way since odoo/odoo@b192d8d23f83b35c21b13f6e4516c18897b80201 This greatly eases embedding this form on existing websites for users who do not wish to use our website integration immediately but still want the benefits of the app and the ease of use of the form page. task-4593880
Resolved issues and error corrections
Attachment lists in Documents now have a slightly refined visual style. This makes attached files look cleaner and easier to scan for users without changing how the feature works.
Miscellaneous changes
Currently it's possible for a timesheet user to set and write the project to False in the timesheet list view. The UI will say the project is missing but the analytic line is changed anyway. This PR add check that the project is set before writing to the analytic line record. opw-4649817 Forward-Port-Of: odoo/enterprise#84819 Forward-Port-Of: odoo/enterprise#83420
Original PR description
Currently it's possible for a timesheet user to set and write the project to False in the timesheet list view. The UI will say the project is missing but the analytic line is changed anyway. This PR add check that the project is set before writing to the analytic line record. opw-4649817 Forward-Port-Of: odoo/enterprise#84819 Forward-Port-Of: odoo/enterprise#83420
The SEPA Direct Debit payment provider view was cleaned up by removing an unused rule that could incorrectly hide the provider status. This helps ensure business users can consistently see the status of SEPA payment providers in the kanban view.
Original PR description
This commit remove un-used view which contain wrong condition to hide state field in kanban view of provider of Sepa direct debit and we don't want to hide state for Sepa provider. Related PR: https://github.com/odoo/upgrade/pull/7653
A mismatch between backend and frontend caused the time displayed in the grid to be incorrect. The cell value was doubled due to a frontend-only calculation, but the actual data was correct on the backend. Refreshing the page fixed the display issue. Steps to reproduce: ------------------- * Open the view form of a timesheet cell (🔍) * Start the timer in the Hours Spent column * Go back to My Timesheets * Stop the timer > Observation: timer displayed was previous_timer * 2 + new_tim
Original PR description
A mismatch between backend and frontend caused the time displayed in the grid to be incorrect. The cell value was doubled due to a frontend-only calculation, but the actual data was correct on the backend. Refreshing the page fixed the display issue. Steps to reproduce: ------------------- * Open the view form of a timesheet cell (🔍) * Start the timer in the Hours Spent column * Go back to My Timesheets * Stop the timer > Observation: timer displayed was previous_timer * 2 + new_timer Why the fix: ------------ 'stopTimer()' waits for the orm call 'action_timer_stop' to return a value that will be added to the current cell value. opw-4701396 Forward-Port-Of: odoo/enterprise#84843 Forward-Port-Of: odoo/enterprise#84416
The test `test_barcode_production_create_bom` sometime fails. This commit modifies its tour to avoid random fails. runbot build error: [190620](https://runbot.odoo.com/odoo/runbot.build.error/190620) Forward-Port-Of: odoo/enterprise#84872
Original PR description
The test `test_barcode_production_create_bom` sometime fails. This commit modifies its tour to avoid random fails. runbot build error: [190620](https://runbot.odoo.com/odoo/runbot.build.error/190620) Forward-Port-Of: odoo/enterprise#84872
Current behavior before PR: - When showing analytic columns in reports, a filter can be applied from 'Options' menu to show analytic simulations (analytic items not linked to any move). This filter didn't work properly. Desired behavior after PR is merged: - Analytic simulations are integrated in the already existing analytic groupby columns Link to the task : - https://www.odoo.com/odoo/project/967/tasks/4603267 Forward-Port-Of: odoo/enterprise#81183
Original PR description
Current behavior before PR: - When showing analytic columns in reports, a filter can be applied from 'Options' menu to show analytic simulations (analytic items not linked to any move). This filter didn't work properly. Desired behavior after PR is merged: - Analytic simulations are integrated in the already existing analytic groupby columns Link to the task : - https://www.odoo.com/odoo/project/967/tasks/4603267 Forward-Port-Of: odoo/enterprise#81183
Steps --------- 1. Have `accountant` and `account_accountant` installed 2. Set up an online bank -> see Odoofin steps on Knowledge 3. Set another user's access group to `Advanced Billing` for accounting 4. Login as that user and access the accounting app -> Access error for account.online.link Problem --------- Advanced billing should have access to the dashboard due to its role. The group `group_account_readonly` has read access to the model, as suggested by its name. However, the gro
Original PR description
Steps --------- 1. Have `accountant` and `account_accountant` installed 2. Set up an online bank -> see Odoofin steps on Knowledge 3. Set another user's access group to `Advanced Billing` for accounting 4. Login as that user and access the accounting app -> Access error for account.online.link Problem --------- Advanced billing should have access to the dashboard due to its role. The group `group_account_readonly` has read access to the model, as suggested by its name. However, the group `group_account_basic` does not have any access. Solution --------- Add 2 access rules on `account.online.link` that allows a Advanced billing user to see (and only see) those records. Note that it does not change anything for `group_account_user` which inherits both from `group_account_readonly` and `group_account_basic`, since it already had readonly access thanks to the first aforementioned. task-4731654 Forward-Port-Of: odoo/enterprise#83889
Before This **PR**: If a company attempted to generate a GST token using a GST number already assigned to another company with a valid token, the system returned an ambiguous error: {'message': 'API access is not available or user expiry duration is less than or equal to auth token expiry duration', 'error_cd': 'AUTH4037'}. This caused confusion for users, as the message did not clearly indicate the issue. After This **PR**: A new function has been introduced to check whether another compa
Original PR description
Before This **PR**:
If a company attempted to generate a GST token using a GST number already assigned to another company with a valid token, the system returned an ambiguous error: {'message': 'API access is not available or user expiry duration is less than or equal to auth token expiry duration', 'error_cd': 'AUTH4037'}. This caused confusion for users, as the message did not clearly indicate the issue.
After This **PR**:
A new function has been introduced to check whether another company has the same GST number and a valid token before sending the request. If such a case is detected, the system now displays a warning, recommending the use of a Tax Unit.
**task**-4636041
Forward-Port-Of: odoo/enterprise#84792
Forward-Port-Of: odoo/enterprise#81218Community PR: https://github.com/odoo/odoo/pull/207457 The Blackbox driver was sometimes being blocked by the Adam scale driver due to them having the same priority. This commit raises the priority of the Blackbox driver to ensure it runs before other Serial drivers. task-4750364 Forward-Port-Of: odoo/enterprise#84429 Forward-Port-Of: odoo/enterprise#84122
Original PR description
Community PR: https://github.com/odoo/odoo/pull/207457 The Blackbox driver was sometimes being blocked by the Adam scale driver due to them having the same priority. This commit raises the priority of the Blackbox driver to ensure it runs before other Serial drivers. task-4750364 Forward-Port-Of: odoo/enterprise#84429 Forward-Port-Of: odoo/enterprise#84122
- Since this PR: https://github.com/odoo/enterprise/pull/82531, the "Customer Statement" smart button (inside the customer form) was no longer visible when orders were paid via customer accounts in PoS and the session was closed. This was caused by session-level account.move records lacking partner_id, which caused _compute_has_moves to return false. - This fix overrides `_compute_has_moves` inside the module `pos_settle_due` to set `has_moves` to True when a partner's total_due is non-zero, en
Original PR description
- Since this PR: https://github.com/odoo/enterprise/pull/82531, the "Customer Statement" smart button (inside the customer form) was no longer visible when orders were paid via customer accounts in PoS and the session was closed. This was caused by session-level account.move records lacking partner_id, which caused _compute_has_moves to return false. - This fix overrides `_compute_has_moves` inside the module `pos_settle_due` to set `has_moves` to True when a partner's total_due is non-zero, ensuring the statement button remains visible when relevant. task-id: 4749148 Forward-Port-Of: odoo/enterprise#84206 Forward-Port-Of: odoo/enterprise#84003
Steps to reproduce the bug: - Go to mps: - Select one or more records - Click on Action > Export - Export Problem: A traceback is raised with the following error: “Error: Invalid props for component 'RPCErrorDialog': 'model' is not a string or null” This is caused by a missing “model” parameter when opening the export dialog. The regression was introduced by commit 1e4e40c, which removed the “resModel” from the dialog context. https://github.com/odoo/odoo/commit/1e4e40
Original PR description
Steps to reproduce the bug:
- Go to mps:
- Select one or more records
- Click on Action > Export
- Export
Problem:
A traceback is raised with the following error:
“Error: Invalid props for component 'RPCErrorDialog': 'model' is not a string or null”
This is caused by a missing “model” parameter when opening the export dialog. The regression was introduced by commit 1e4e40c, which removed the “resModel” from the dialog context.
https://github.com/odoo/odoo/commit/1e4e40cf78fe8151dffdcb19df2688787084732c#diff-e58d49a1707841d2176f1d2a177911255094f0b5795ced0a86be963681e53dcdL277-R275
opw-4720190
Forward-Port-Of: odoo/enterprise#83915**Steps to reproduce:** - Install Sales + Stock apps - Activate `Signature : Require a signature on your delivery orders` in the settings - Create and confirm a quotation with a product. - Go to the delivery order in the Barcode app. - Go to the settings in the top-right corner to find the 'Sign' button. - Sign the document. - 'Sign' button remains visible and active after the document is signed. **Issue:** Delivery document can be signed more than once. The button state seems to imp
Original PR description
**Steps to reproduce:** - Install Sales + Stock apps - Activate `Signature : Require a signature on your delivery orders` in the settings - Create and confirm a quotation with a product. - Go to the delivery order in the Barcode app. - Go to the settings in the top-right corner to find the 'Sign' button. - Sign the document. - 'Sign' button remains visible and active after the document is signed. **Issue:** Delivery document can be signed more than once. The button state seems to imply that the transaction is not finalized. **Fix:** Hide 'Sign' button after signature validation using the `record.signature` field value. This prevents users from signing multiple time the same delivery document. opw-4700124 Forward-Port-Of: odoo/enterprise#84631 Forward-Port-Of: odoo/enterprise#84385
**Steps to reproduce:** - Install Accounting - Activate "Analytic Accounting" in Accounting settings - Go to "Accounting / Accounting / Journal Entries" - Create an entry with some analytic distribution - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Activate "Analytic Group By" in the settings of the report - Add the account used in the analytic distribution in "Analytic" group option **Issue 1:** In the "End Balance" column, all the amounts are summed in the total
Original PR description
**Steps to reproduce:** - Install Accounting - Activate "Analytic Accounting" in Accounting settings - Go to "Accounting / Accounting / Journal Entries" - Create an entry with some analytic…
**Steps to reproduce:** - Install Accounting - Activate "Analytic Accounting" in Accounting settings - Go to "Accounting / Accounting / Journal Entries" - Create an entry with some analytic distribution - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Activate "Analytic Group By" in the settings of the report - Add the account used in the analytic distribution in "Analytic" group option **Issue 1:** In the "End Balance" column, all the amounts are summed in the total column instead of being grouped by analytic accounts. It results on a total amount being twice what it should be as the total column of each period is also included in the sum. There is a similar issue with horizontal groups. **Cause 1:** The "End Balance" column is not computed via the SQL as all the data required to compute it are already retrieved. However, the case where there are groups by analytic is not handled. It results on the computation taking the value of a analytic group and also the value of the total group, which doubles the computed amount. **Solution 1:** As it is not possible to identify easily each different group in each period to sum the corresponding values together, the computation of the "End Balance" will be done in the SQL if the groupby analytic is done or if a horizontal group is set. **Issue 2:** - Install l10n_ro_reports - Switch to a Romanian company (RO Company) - Follow the same steps than issue 1 - Select "Trial Balance 4/5 col (RO)" as Report => A traceback is raised: "TypeError: unsupported operand type(s) for +: 'float' and 'NoneType'" opw-4648009 Forward-Port-Of: odoo/enterprise#84800 Forward-Port-Of: odoo/enterprise#84044