Tuesday, November 21, 2023
32 changes · 17.0
Resolved issues and error corrections
Clicking outside a popover now closes it without cancelling pending edits, so changes made in property definition popovers are applied as expected. The calendar view keeps its special behavior to avoid accidentally opening a record creation dialog.
Original PR description
Since commit 3d218e1, clicking outside a popover closes the popover and performs a preventDefault on the event. As a consequence, changes made in the property definition popover are no longer applied…
Since commit 3d218e1, clicking outside
a popover closes the popover and performs a preventDefault on the event. As a consequence, changes made in the property definition popover are no longer applied when the popover is closed by clicking outside.
Problem:
The preventDefault has the consequence of cancelling the input change event allowing the change to be applied to the property definition when the popover is closed.
Solution:
Remove the preventDefault by default and only use it in the case of the calendar view, which is the only use case that wants to prevent the click event so as not to open a record creation dialog (see commit 3d218e1).
How to reproduce the PropertyField bug:
- Go to a form view with a properties field
- Click on the edit property button
- A popover opens so that you can edit the field definition
- Type a few characters in the label input
- Click outside the popover
Before this commit:
The value inserted in the popover is ignored
After this commit:
The value inserted in the popover is applied to the property.
It is not possible to write a test reproducing this native browser behaviour.
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prClicking inside a list cell that contains an action button, such as the forecast button on purchase documents, no longer causes an error when the button itself is not directly clicked. This prevents an avoidable crash and makes list interactions more reliable for users.
Original PR description
Steps to reproduce: - Purchase -> Open any RFQ/PO. - Click on the cell containing the "forecast" button, without clicking on the button itself. Following 28f2622, it will generate a traceback when clicking on a cell list from a button column. Since button columns don't have a `name`, no `record.fields` will match and throw a traceback, as we try to access `type` from nothing. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Analytic plans that do not have accounts directly attached will now still appear in the widget when their subplans contain analytic accounts. This helps users find and use the relevant planning structure instead of missing valid options.
Original PR description
If we have an analytic plan without analytic accounts, but with subplans that do have analytic accounts, we do want them to appear in the widget. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The stock removal process now ignores packages that have no available quantity. This prevents rounding-related mistakes and helps warehouse operations focus only on packages that can actually be used.
Original PR description
### Before this PR The query get also the packages with zero available_quantity . Sometimes the check `elif elem[1] == 0:` does not return true because of rounding of python. Should be used the float_is_zero but we have not the precision_rounding of the product on this function ### After this PR We get only the packages with available_quantity >0 so - We will not have the issue of rounding - The for will enumerate only the available packages --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Tags in list-style fields now have enough minimum space to remain readable instead of being cut off. This makes screens such as sales order lines easier to review when tag values are shown in columns.
Original PR description
Before this commit, the width of the cells for many2many_tags was often too small, so the tags were truncated. (e.g.: the tax_id column on the sale order lines on the form view of the sale order) After this commit, the column has a min-width of 150px Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a problem where Point of Sale orders could lead to a blank screen when the Saudi localization module was installed. It also corrects receipt display when no rounding is applied, helping cashiers complete sales and provide accurate receipts reliably.
Original PR description
Before this commit, validating an order with the l10n_sa_pos module installed resulted in a blank screen. Additionally, there was an issue with the display of receipts when no rounding was applied. opw-3594564 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an issue where edits made in a properties popover could be lost when the user clicked elsewhere to close it. The change keeps those edits applied while preserving the calendar behavior that prevents accidental record creation.
Original PR description
Since commit 3d218e10f8911f14e87981a91f0345ca630e29d5, clicking outside a popover closes the popover and performs a preventDefault on the event. As a consequence, changes made in the property…
Since commit 3d218e10f8911f14e87981a91f0345ca630e29d5, clicking outside a popover closes the popover and performs a preventDefault on the event. As a consequence, changes made in the property definition popover are no longer applied when the popover is closed by clicking outside.
Problem:
The preventDefault has the consequence of cancelling the input change event allowing the change to be applied to the property definition when the popover is closed.
Solution:
Remove the preventDefault by default and only use it in the case of the calendar view, which is the only use case that wants to prevent the click event so as not to open a record creation dialog (see commit 3d218e10f8911f14e87981a91f0345ca630e29d5).
How to reproduce the PropertyField bug:
- Go to a form view with a properties field
- Click on the edit property button
- A popover opens so that you can edit the field definition
- Type a few characters in the label input
- Click outside the popover
Before this commit:
The value inserted in the popover is ignored
After this commit:
The value inserted in the popover is applied to the property.
It is not possible to write a test reproducing this native browser behaviour.
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes an accounting issue where payment term line values could be written to the wrong field. After the change, due-related values are saved in the intended place, helping invoices and payment schedules remain accurate.
Original PR description
**Description of the issue/feature this PR addresses:** Fix the wrong field assignment in the function of field "Due" from the payment term lines. **Impacted versions** * 17.0 Desired behaviour after PR is merged: After this PR merge, System will assign value to the right field. Fixed Issue [#141837](https://github.com/odoo/odoo/issues/141837) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an incorrect accounting check from running when users delete bank statements. It avoids a misleading “record does not exist” error, making statement cleanup work as expected.
Original PR description
Manual fw port of https://github.com/odoo/odoo/pull/130914 When trying to delete a bank statement, if there is no move with the same id, we get an error "Record doesn't exist or has been deleted". The reason is we call the account_move.check_move_sequence_chain() method wih the id of the statement. We avoid using account_move_service if the model is not account_move as it make no sense to call an account_move method from a bank statement record. Root cause: https://github.com/odoo/enterprise/blob/fd6586e8b098f018a54c715c53a2c12fe192bf7c/account_bank_statement_import/views/account_bank_statement_import_view.xml#L28 opw-3425826
This fixes a problem where time off accrual allocations created with very old start dates could calculate the next accrual date incorrectly. As a result, employee leave balances should no longer show incorrect future balances or gain extra days when the scheduled accrual process runs.
Original PR description
To reproduce the bug: - create an accrual allocation with the seniority plan - set the start date way in the past like in 2000 - validate the allocation - go on the dashboard, the accrued amount should be broken when setting the balance on a future date - additional days accrued if the cron is run Fix: nextcall being unset upon creation by default, the allocation would consider the start of the second level as the nextcall if the allocation is created in the past. This commits sets nextcall to a correct value if the lastcall is set in the past upon creation. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where newly created stock movements could be moved out of their initial status too early. Keeping them in the right state ensures related stock replenishment rules can run as expected, reducing the risk of missed warehouse operations.
Original PR description
**Description of the issue/feature this PR addresses:** The "New" stock moves should not recompute state, otherwise the stock pull rule will not triggered for the moves. This pr fix an issue: https://github.com/odoo/odoo/issues/142633 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Live chat now hides reaction options for messages that have not yet been saved on the server. This prevents users from seeing an error when reacting to temporary chatbot messages, improving the chat experience on website contact pages.
Original PR description
Before this commit, the "add reaction" button was available even when the thread is not persisted. This is wrong since those messages are only temporary thus not known by the server: a crash would occur when trying to add a reaction to such messages. This commit disables reactions for temporary messages. Steps to reproduce the issue: - Go to the `/contactus` page - Open a chat with the welcome bot - Try to add a reaction to its first message - An error modal appears task-3603577
The Sales discount popup now gives radio button labels enough room on small screens. This prevents option text from wrapping awkwardly, making discounts easier to review and select on mobile devices.
Original PR description
**Version:** - 17.0 ### Steps to produce: (for small devices) - install the sales app - activate discounts in the sale setting - create a sale order and add the product - click on the discount button and check the pop-up ### Issue: The radio button's text is not arranged in a single line. ### Cause: The full text cannot be displayed in one line due to the lack of space. ### Solution: Providing sufficient space for displaying the entire text of the radio button in a single line. task-3568058 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Webhook-triggered automated actions now receive the request payload and handle record lookup more reliably. This prevents errors when webhooks are called with record details and lets teams use webhook data in their automated Python actions.
Original PR description
Adds the payload to the eval_context of the triggered automated action so that it can be used in the python code. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an error that could occur when using webhook URLs to trigger actions on existing records. It also ensures missing records show the expected warning instead of causing another error, with tests updated to cover the corrected behavior.
Original PR description
**Step to reproduce:** - Create a webhook on any models with any action - Enter the webhook url in your browser and add ?id=1&_model=your.model (make sure the record exists in the database) **Issue:** - You get an error **Cause:** In the webhook the record_getter default value is wrong. The env is not available in the eval_context of the webhook Also the id is not casted to integer - Additional fix, in case no record is found the args for the warning are not in a tuple and it raises an error instead of the expected warning - Fix the tests to verify the default record_getter and the cast of the id in integer --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the visual layout of the alert box in the Planning module's slot form when viewed on mobile devices. The alert box alignment has been corrected by properly applying responsive design classes and reorganizing the form fields for better mobile display.
Original PR description
Steps: - Open Planning - Go to slot form view - Switch to mobile view - Check repeat Issue: - Alert box is not perfectly aligned. Cause: - Bootstrap classes is not perfectly used. Fix: - Add the 'recurrence_update' field one more time and apply bootstrap classes according to mobile friendly view also wrap the 'Edit' and 'recurrence_update' field in flex box. task-3478920
This update fixes the visual appearance of alert messages in the Planning module by standardizing their spacing and padding. Previously, alerts were appearing too close to other elements on the form, creating an inconsistent look compared to alerts in other parts of the system. The fix removes custom styling overrides and applies standard alert formatting, improving the overall visual consistency of the application.
Original PR description
This PR aims to standardize the design of alerts inside planning by adding some spacing between alerts and the next element and by removing custom padding. Prior to this commit, the alert would be directly stick to the form sheet, due to the lack of `margin-bottom`. This was causing consistency issues with other alerts from other modules that would have a bottom spacing to prevent them to stick to the following element. There was also a padding property used to add some whitespace within the alert, while our alert class already include a CSS variables that handles the padding of the element. To fix this visual issue, we simply reset the styling applied to these alert to standard, by removing margin and padding overrides.
This fix adds a missing label before the hourly rate field in Australian payroll payslips. The label was absent from the payslip template, making it unclear what the displayed rate represented. This improves clarity and readability of payslip documents for employees.
Original PR description
This small fix will add a label before the hourly rate as it is missing at the moment.
This fix resolves a critical error that prevented German restaurant and bar locations from processing payments in the Point of Sale system. The issue occurred because price formatting was being handled incorrectly between the backend and frontend systems. By moving all price formatting to the frontend, payments now process smoothly without errors.
Original PR description
Steps to reproduce: Set up German localization for PoS, make a PoS that is bar / restaurant, make an order and proceed to pay. Error pop up: `Unknown Error, Please Contact Odoo Support` When synchronizing, get traceback: ``` TypeError: (value || 0).toFixed is not a function ``` The issue is that before saas-16.3, unit price was converted to string and was processed to have correct formating on the Python side. In saas-16.3, this string was passed into `formatCurrency` method which did a similar functionality. However `formatCurrency` expects a number and not a string which causes the issue. To fix this, it is better to do all the string processing in JavaScript code. opw-3499791 Forward-Port-Of: odoo/enterprise#48659
This update fixes a visual display issue in the help center search results page where tags were appearing too close together without proper spacing. The fix improves the readability and professional appearance of the search results by adding proper spacing between tags.
Original PR description
Before this PR in help center search results webpage a space is missing between the different tags. In this PR we have fixed the spacing issue by adding bootstrap class task-3463622 Forward-Port-Of: odoo/enterprise#50535 Forward-Port-Of: odoo/enterprise#46139
This update fixes two issues in the WhatsApp messaging feature: it now allows users to enter longer titles in WhatsApp template forms, and it prevents displaying empty account names in the navigation breadcrumbs. These improvements enhance the user experience when managing WhatsApp templates.
Original PR description
Fix the whatsapp template form to be able to enter bigger titles. Prevent displaying the account name in the breadcrumbs if there is none. Task-3555944 Forward-Port-Of: odoo/enterprise#50634 Forward-Port-Of: odoo/enterprise#49594
The journal report was incorrectly displaying debit amounts instead of the move line name/label in the first column. This fix restores the correct display of move line names, ensuring users see the expected information when reviewing journal reports.
Original PR description
The label of the first move line of the journal report has been broken, and is now showing the debit. This fix will revert that mistake so that it shows the name as expected. Forward-Port-Of: odoo/enterprise#50882
Fixed a layout display issue in the Helpdesk Team form view, specifically in the automatic closing option section. This ensures the form displays correctly and improves the user experience when managing helpdesk team settings.
Original PR description
In this PR we have fixed the layout issue in helpdesk team form view in automatic closing option. task-3268763 Forward-Port-Of: odoo/enterprise#51039 Forward-Port-Of: odoo/enterprise#40067
Fixed two issues with the follow-up email system in Accounting. The reply-to field configured in follow-up templates is now properly used when sending emails, and users will now correctly receive follow-up emails when they are added as recipients. These fixes ensure that follow-up communications are delivered reliably with the correct reply-to address.
Original PR description
Accounting > Configuration > Follow-up Levels Open any followup level configuration, access the template configuration Under 'Email configuration' tab fill reply-to field Send a followup email using this followup level Issue: reply-to field is not filled This occurs because the system never use the field from the template. Accounting > Follow-up Reports Select a partner in need of action Click "Follow up", the send mail wizard will open Add as recepient the current user Send Issue: User will not receive the email This occurs because without the context key 'mail_notify_author' the mail subsystem will avoid sending the email to the author opw-3575447 Forward-Port-Of: odoo/enterprise#50902 Forward-Port-Of: odoo/enterprise#50621
This update corrects the visual indicators in the timesheet timer to accurately reflect which fields are required. The Project field is now properly marked as required, while the Task field is correctly shown as optional. This fixes user confusion where the visual styling contradicted the actual system requirements.
Original PR description
### Steps to reproduce: - Go to Timesheets and start the timer. - Try to stop the timer. - Odoo says that the project must be selected. - Select the project and stop the timer. - Odoo allows the timer to be stopped...But the styling of the **"Task"** field implies it's _required_, while the **"Project"** field has _optional_ styling despite being _required_. ### Investigation - Basically the styling of the two fields was just swapped, adding the class `o_required_modifier` to the task field instead of the project one. opw-3572543 Forward-Port-Of: odoo/enterprise#50854 Forward-Port-Of: odoo/enterprise#50345
Fixed an issue where the timer start button was not appearing in the timesheet list view when grouping filters were applied. The timer now displays correctly regardless of whether rows are grouped or collapsed, improving the user experience when managing timesheets with filters.
Original PR description
**Steps:** - Open Timesheet - You can see the row of timer with Start Button - Choose Grid View and apply a Group By filter - Now go to the List View **Issue:** - When ListView is selected, the row with the timer consisting of the Start Button is not displayed. **Cause:** - In the list view because of the closed rows, the display timer doesn't get the data due to which the timer is not visible. **Fix:** - Added a different condition to showTimer instead of depending on display_timer field value in view which only gives the desire result when there is no group-by or group-by has at-least one section opened. **Task**-3387850 Forward-Port-Of: odoo/enterprise#51097 Forward-Port-Of: odoo/enterprise#50884
Fixed an issue where consolidation comparison reports displayed multiple columns without showing their corresponding time periods, making it impossible to distinguish between them. The fix adds period dates to the column headers and comparison field labels so users can clearly identify which data belongs to which period.
Original PR description
Issue: ====== When you add comparaison in consolidation it will not show the period in the display name so we are not able to distinguish between them. Steps to reproduce the issue: ============================= - Install consolidation - Install demo data for consolidation - Go to consolidation app and click on consolidated balance in the first test chart - Click on comparison and select test chart - You will see 2 columns that you can't distinguish between them. Solution: ========== - Added `display_dates` in the display in the comparaison field and in the headers fields. Before: ======  After: ====  opw-3514517 Forward-Port-Of: odoo/enterprise#51092 Forward-Port-Of: odoo/enterprise#48667
A bug in the Belgian POS blackbox module prevented the numpad from working correctly on the product screen, making it impossible to apply discounts or perform other numeric input operations. This fix corrects the underlying code error so the numpad functions as intended.
Original PR description
Prior to this commit, the override made on the method _setValue in the product screen was including a call to the parent method without the correct arguments leading to no behaviour when clicking on the numpad in the product screen when the pos_blackbox_be module was installed (e.g. when trying to do a discount). This commit fixes this error.
Fixed an issue where the favorite star icon in the Field Service Management product view wasn't turning yellow when users hover over it. The fix enables editing permissions on the star icon element, allowing the visual feedback to work as intended when users interact with it.
Original PR description
Steps: - Install fsm app - Open any task. - Click on product button open - In product kanban view Issue: - The favorite star icon should turn yellow on hover Cause: - Not allowed for editing Fix: - Allow editing from 'edit="0" to 'edit="1" for turn yellow on hover Task-3484413 Forward-Port-Of: odoo/enterprise#46478
This update resolves random test failures in the web enterprise module that were caused by overly strict timing assumptions in automated tests. The tests were checking for a blank screen state that wasn't guaranteed to occur, causing them to fail unpredictably. By removing this unnecessary check, the tests now run reliably without affecting any user-facing functionality.
Original PR description
Commit [1] adapted a few WebClientEnterprise tests to reflect with a community change [2] which makes a click a on menu perform two updates of the webclient: one with a blank screen, and another one with the requested view. Tests were adapted to check that after a tick, no view was displayed yet, and that after another tick, the view was finally there. This is incorrect and sometimes fails. Indeed, it might happen that the kanban view is already there after the first tick, because more than one animation frame can occur during a nextTick. This commit fixes those test by simply removing the first assertion (blank screen), which isn't the concern of those tests anyway. [1] 430b9dc15031bce98e3be55b23438ee09494dada [2] https://github.com/odoo/odoo/pull/124068 Task 3603040 Forward-Port-Of: odoo/enterprise#51050
Users can now successfully delete draft approvals that have attached documents. Previously, attempting to delete a draft approval with attachments would fail with an error. The fix ensures attachments are properly removed before the approval record is deleted.
Original PR description
There is a business check on attachment unlink that needs to access approval state. This is why the attachment needs to be unlinked before the approval itself. steps to reproduce: - create a draft approval and attach a document - delete the approval. before this commit: odoo.exceptions.MissingError: Record does not exist or has been deleted. (Record: approval.request(8,), User: 2) after this commit: approval is deleted opw-3558437 Forward-Port-Of: odoo/enterprise#51095 Forward-Port-Of: odoo/enterprise#49681
This update fixes automated testing issues in the Documents Spreadsheet module where tours were failing due to reliance on specific demo data. The fix ensures tours can run reliably with existing spreadsheets, improving the stability of the testing process and preventing recurring errors.
Original PR description
The tours were relying on strictly demo data. This revision ensures we do run the tour with an existing spreadsheet. Runbot errors 27347,27341,27080,27077,33917 Forward-Port-Of: odoo/enterprise#50981 Forward-Port-Of: odoo/enterprise#50349