Tuesday, November 21, 2023
33 changes · 17.0
Enhancements to existing features
The web framework now provides a shared helper for setting up Owl applications, reducing repetitive setup work. This lowers the chance of configuration mistakes and makes future web development easier to maintain.
Original PR description
Currently mounting an owl application using the Odoo web framework takes a good bit of boilerplate. This is both annoying but also creates the opportunity to misconfigure created applications. This commit exctracts the application creation logic to a helper function which will make it much easier to create Owl applications correctly. task-3580007
Resolved issues and error corrections
Clicking 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
Miscellaneous changes
The test 'buttons with attr "special" in dialog close the dialog' sometimes fail on runbot because it can't click on 'Create and edit...' inside the many2one dropdown. Before this commit, the test edited the many2one as follows: 1) edit input to write a new value (with editInput) 2) click on the input to open the dropdown 3) click on 'Create and edit...' in the input But calling editInput opens the dropdown (even though the opening is a bit debounced, which is why it only failed sometim
Original PR description
The test 'buttons with attr "special" in dialog close the dialog' sometimes fail on runbot because it can't click on 'Create and edit...' inside the many2one dropdown. Before this commit, the test…
The test 'buttons with attr "special" in dialog close the dialog' sometimes fail on runbot because it can't click on 'Create and edit...' inside the many2one dropdown. Before this commit, the test edited the many2one as follows: 1) edit input to write a new value (with editInput) 2) click on the input to open the dropdown 3) click on 'Create and edit...' in the input But calling editInput opens the dropdown (even though the opening is a bit debounced, which is why it only failed sometimes). So it might happens, in rare cases, that the dropdown is already opened when we click in the input (step 2), which closes it and makes step 3 fail. This commit changes the test to do something similar as what we do in many2one_tests.js: we patch setTimeout to execute the callback directly, and thus remove the opening delay. We call editInput which triggers the opening of the dropdown, and we click inside the dropdown. Runbot issue 24739 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 Forward-Port-Of: odoo/odoo#142787 Forward-Port-Of: odoo/odoo#142743
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 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
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
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 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
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
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 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
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
When we save a many2one in a dialog opened by the external button, we trigger a "read" of the "display_name" to update it if the changes made in the dialog have had an impact on it. Before this commit, the context used for this "read" was completely wrong, it was an unevaluated string. This commit will therefore allow you to use the evaluated context. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I con
Original PR description
When we save a many2one in a dialog opened by the external button, we trigger a "read" of the "display_name" to update it if the changes made in the dialog have had an impact on it. Before this commit, the context used for this "read" was completely wrong, it was an unevaluated string. This commit will therefore allow you to use the evaluated context. 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 Forward-Port-Of: odoo/odoo#142750
Issue : - When you check-in/out on a day of time off, all the time is logged as extra hours. - When you do the same on a public holiday, it's not. _leave_intervals_batch is used to get all leave for an employee but the domain for the search only find leaves related to given ressources. Public Holiday Leaves are not related to any specific ressources and thus where never found. task-id: 3465686 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Issue : - When you check-in/out on a day of time off, all the time is logged as extra hours. - When you do the same on a public holiday, it's not. _leave_intervals_batch is used to get all leave for an employee but the domain for the search only find leaves related to given ressources. Public Holiday Leaves are not related to any specific ressources and thus where never found. task-id: 3465686 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#141495 Forward-Port-Of: odoo/odoo#141235
To reproduce: 1. on your windows computer, add a system environment variable with: - Key: ODOO_RC - Value: (path to any file except the `$INSTDIR\server\odoo.log`) 2. Install Odoo Windows version Notice that the log are stored into the `$INSTDIR\server\odoo.log` file 3. Restart Odoo's service => Odoo's log file does not log anything anymore Cause: As odoo will use in priority the environment variable as the config file path. This will save the config change into that file in
Original PR description
To reproduce: 1. on your windows computer, add a system environment variable with: - Key: ODOO_RC - Value: (path to any file except the `$INSTDIR\server\odoo.log`) 2. Install Odoo Windows version…
To reproduce: 1. on your windows computer, add a system environment variable with: - Key: ODOO_RC - Value: (path to any file except the `$INSTDIR\server\odoo.log`) 2. Install Odoo Windows version Notice that the log are stored into the `$INSTDIR\server\odoo.log` file 3. Restart Odoo's service => Odoo's log file does not log anything anymore Cause: As odoo will use in priority the environment variable as the config file path. This will save the config change into that file instead of the intended one at `$INSTDIR\server\odoo.conf`. Due to this, the config file remain the default one created by the previous commands but the log_file information get save to the wrong config file. On restart of the service, as the parameter is not present, it does not log in the intended way After this commit: Logs are logged into the log file as intended Was discovered accidentally while reviewing an IoT PR: https://github.com/odoo/odoo/pull/137547 Forward-Port-Of: odoo/odoo#141979 Forward-Port-Of: odoo/odoo#138644
Activate Sale/purchase receipts Create a purchase receipts Register payment Reset to draft Confirm Issue: outstanding payment is not visible opw-3572570 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 Forward-Port-Of: odoo/odoo#141311
Original PR description
Activate Sale/purchase receipts Create a purchase receipts Register payment Reset to draft Confirm Issue: outstanding payment is not visible opw-3572570 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 Forward-Port-Of: odoo/odoo#141311
Steps to reproduce ================== - Enable the debug mode - Use an odoo instance with the design-themes - Click on the debug menu - Click on Start tour `OwlError: Got duplicate key in t-foreach: homepage` Cause of the issue ================== Website theme tours are registered here : https://github.com/odoo/odoo/blob/5c01439cf20b2c0ca08d618df6f249617127e6d1/addons/website/static/src/js/tours/tour_utils.js#L348-L358 The saveAs option is used but since the owl refactor, it
Original PR description
Steps to reproduce ================== - Enable the debug mode - Use an odoo instance with the design-themes - Click on the debug menu - Click on Start tour `OwlError: Got duplicate key in t-foreach: homepage` Cause of the issue ================== Website theme tours are registered here : https://github.com/odoo/odoo/blob/5c01439cf20b2c0ca08d618df6f249617127e6d1/addons/website/static/src/js/tours/tour_utils.js#L348-L358 The saveAs option is used but since the owl refactor, it doesn't override the previous tour. There is a default homepage tour in the website addon and then one for each theme. There should only be one available at a time (same as in 16.2). When selecting a new theme, the action button_choose_theme is called and that ensures that only one theme can be installed at the same time. opw-3595512 Forward-Port-Of: odoo/odoo#142288 Forward-Port-Of: odoo/odoo#142148
Link zws should not be applied on links that contain blocks so as to avoid unfortunate side effects of zws on the dimensions of the link. task-3596919 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142651
Original PR description
Link zws should not be applied on links that contain blocks so as to avoid unfortunate side effects of zws on the dimensions of the link. task-3596919 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142651
If user tried to apply promotion that was targeting specific product on a product that was 0 price, it would cause an error. Now discount is no longer applied on free products. opw-3562218 Forward-Port-Of: odoo/odoo#142383 Forward-Port-Of: odoo/odoo#142282
Original PR description
If user tried to apply promotion that was targeting specific product on a product that was 0 price, it would cause an error. Now discount is no longer applied on free products. opw-3562218 Forward-Port-Of: odoo/odoo#142383 Forward-Port-Of: odoo/odoo#142282
Customer should do it in two steps if that's really what they want to do. This custom log was mainly intended to follow quantity changes on confirmed orders, but it's plain wrong if the product is changed at the same time. opw-3432715 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142524 Forward-Port-Of: odoo/odoo#142357
Original PR description
Customer should do it in two steps if that's really what they want to do. This custom log was mainly intended to follow quantity changes on confirmed orders, but it's plain wrong if the product is changed at the same time. opw-3432715 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142524 Forward-Port-Of: odoo/odoo#142357
Description of the issue/feature this PR addresses: In project.task timesheet notebook mobile view and project update kanban view, the alignment between employee name and avatar is not proper. Name is display slightly down than to avatar. Current behavior before PR: Alignment is not proper between name and avatar. Desired behavior after PR is merged: Alignment is proper between name and avatar. Fix: add d-flex class in outer div of name and avatar so that both name and avatar shou
Original PR description
Description of the issue/feature this PR addresses: In project.task timesheet notebook mobile view and project update kanban view, the alignment between employee name and avatar is not proper. Name is display slightly down than to avatar. Current behavior before PR: Alignment is not proper between name and avatar. Desired behavior after PR is merged: Alignment is proper between name and avatar. Fix: add d-flex class in outer div of name and avatar so that both name and avatar should display in same horizontal alignment. task-3277977 Forward-Port-Of: odoo/odoo#141850 Forward-Port-Of: odoo/odoo#120868
This commit adapts some steps to correctly select the elements as before because some selectors no longer work due to changes done in Framework JS code (web module). Forward-Port-Of: odoo/odoo#142654
Original PR description
This commit adapts some steps to correctly select the elements as before because some selectors no longer work due to changes done in Framework JS code (web module). Forward-Port-Of: odoo/odoo#142654
Steps to reproduce: - Install Accounting and l10n_ch - Switch to a Swiss company - Go to Settings and make sure that DIN5008 is selected as Document Layout - Go to Accounting settings and activate "QR Codes" option - Create an invoice for an Swiss contact - Print the invoice => The DIN5008 header is appearing on the QR code page. No header should appear on the QR code page with DIN5008. opw-3529963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com
Original PR description
Steps to reproduce: - Install Accounting and l10n_ch - Switch to a Swiss company - Go to Settings and make sure that DIN5008 is selected as Document Layout - Go to Accounting settings and activate "QR Codes" option - Create an invoice for an Swiss contact - Print the invoice => The DIN5008 header is appearing on the QR code page. No header should appear on the QR code page with DIN5008. opw-3529963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142704 Forward-Port-Of: odoo/odoo#142310
Steps: - Open Field Service - Go to gantt view - Create new task - Leave the title and customer field empty - Save the form dialog Issue: - The customer required notification show in the gantt view instead of form view dialog. Cause: - When we save the form 'saveRecord' method triggered and this doesn't return anything. Fix: - Add the return statement in 'saveRecord' method. task-3502839 Forward-Port-Of: odoo/odoo#142244 Forward-Port-Of: odoo/odoo#139147
Original PR description
Steps: - Open Field Service - Go to gantt view - Create new task - Leave the title and customer field empty - Save the form dialog Issue: - The customer required notification show in the gantt view instead of form view dialog. Cause: - When we save the form 'saveRecord' method triggered and this doesn't return anything. Fix: - Add the return statement in 'saveRecord' method. task-3502839 Forward-Port-Of: odoo/odoo#142244 Forward-Port-Of: odoo/odoo#139147
### Steps to reproduce - Install the Events module - Go to the General Settings and add French translation and make sure to check the **website 1** option - Go to the Events module and select an event - Click on Go To Website smart button on the right top corner - On the event page, Change the language and notice the start and end date format ### Investigation - The bug is more present in version `16.0` and above. This version has just small issue with formatting since the day and the r
Original PR description
### Steps to reproduce - Install the Events module - Go to the General Settings and add French translation and make sure to check the **website 1** option - Go to the Events module and select an event - Click on Go To Website smart button on the right top corner - On the event page, Change the language and notice the start and end date format ### Investigation - The bug is more present in version `16.0` and above. This version has just small issue with formatting since the day and the rest of the date were separate block. - By Using the option `format: 'full'` the date can be formatted correctly depending on the language used ### Resources - [https://babel.pocoo.org/en/latest/api/dates.html](https://babel.pocoo.org/en/latest/api/dates.html) opw-3569167 Forward-Port-Of: odoo/odoo#141121