Daily updates from Odoo
Navigate
Branch
Friday, September 23, 2022
32 changes
Enhancements to existing features
Users can now restart the Odoo service or reboot an IoT Box directly from the IoT app. This removes the need to physically unplug the device or connect to it separately, making support and day-to-day operations easier.
Original PR description
Before, the user had to manually unplug and replug the IoT Box to reboot it. Also, it was required to connect to the IoT box to restart Odoo service. This improvement adds the 'Restart Odoo' and 'Reboot IoT box' buttons on the box's form view to IoT app. They allow the user to reboot the IoT box and restart Odoo service on it remotely from the IoT app in Odoo. task-2476576
Users can now restart Odoo on an IoT Box or reboot the IoT Box directly from the IoT app in debug mode. This reduces the need for physical access or manual unplugging, making maintenance faster and easier for support teams.
Original PR description
Description of the issue/feature this PR addresses: A feature allowing to reboot the IoT Box and to restart Odoo on the IoT Box allows the user to do both these things remotely. Current behavior before PR: Before, the user had to manually unplug and replug the IoT Box to reboot it. Restarting Odoo on the IoT Box also implied connecting to the IoT Box. Desired behavior after PR is merged: Now the user can restart Odoo on the IoT Box and reboot the IoT Box through the IoT app in debug mode, on the IoT Box view page. [Another PR](https://github.com/odoo/odoo/pull/100719) in odoo allows the user to do it from the IoT Box homepage as well. [Task 2476576](https://www.odoo.com/web#id=2476576&cids=1&menu_id=4720&action=333&active_id=1428&model=project.task&view_type=form) -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
Resolved issues and error corrections
Unintended keyboard shortcuts were removed from invoice extraction status bar buttons. This prevents conflicts with existing invoice actions, helping users avoid accidental or confusing behavior when working with invoices.
Original PR description
The hotkeys for those buttons weren't actually intended and they were colliding with other buttons of the form view : <kbd>ALT</kbd> + <kbd>V</kbd> is already used to confirm the invoice.
Code cleanup and technical improvements
This update switches Odoo Enterprise styling to use variable fonts, helping simplify font management and improve consistency across screens. Users may notice more consistent text rendering in areas such as HR salary, referrals, knowledge, manufacturing reports, signing, social, and the main web interface.
Original PR description
Requires : - https://github.com/odoo/odoo/pull/100711
This draft update modernizes how form sections are laid out in Odoo Enterprise by replacing older table-based structures with more flexible grid layouts. The change supports the broader interface restyling effort and should make forms easier to maintain and adapt across screen sizes.
Original PR description
This PR replaces the FormView group tables with css grids. Part of the overall v16 SCSS optimization/restyle, task-2704984 Requires: - https://github.com/odoo/odoo/pull/98911 task-2918464
Spreadsheet filter editing now uses a newer field selection component instead of an older legacy widget. This keeps the spreadsheet experience aligned with current interface standards and should make future maintenance easier without changing core business workflows.
Original PR description
This revision replace the use of the legacy FieldSelectorWidget by the new component ModelFieldSelector. Task-id 2987871
Miscellaneous changes
1. When filtering pickings with barcode, related Done pickings are also shown 2. When open barcode kanban view, we autofocus search bar. This makes barcode scanner input directly go to search bar instead of being processed. Forward-Port-Of: odoo/enterprise#31306
Original PR description
1. When filtering pickings with barcode, related Done pickings are also shown 2. When open barcode kanban view, we autofocus search bar. This makes barcode scanner input directly go to search bar instead of being processed. Forward-Port-Of: odoo/enterprise#31306
Purpose ======= If June has passed and the payment of the double has already taken place at the company, there is in principle no recalculation of the double pay at all on the N-1 holiday form (on the other hand, we must calculate single/double /complementary on sheet N) Specification ============= The double holiday pay shouldn't be computed on the ***N-1*** holiday attests if the double holiday pay has already been paid the current year. The N is computed as before. Forward-Port
Original PR description
Purpose ======= If June has passed and the payment of the double has already taken place at the company, there is in principle no recalculation of the double pay at all on the N-1 holiday form (on the other hand, we must calculate single/double /complementary on sheet N) Specification ============= The double holiday pay shouldn't be computed on the ***N-1*** holiday attests if the double holiday pay has already been paid the current year. The N is computed as before. Forward-Port-Of: odoo/enterprise#31373
Forward-Port-Of: odoo/enterprise#31703
Original PR description
Forward-Port-Of: odoo/enterprise#31703
When creating an invoice from a subscription, we should ensure that we keep section related to invoiceable lines and the same sequence of the order lines. Before this commit, section and note line where on the top of the invoices and all subscription lines at the bottom. Forward-Port-Of: odoo/enterprise#31625 Forward-Port-Of: odoo/enterprise#31448
Original PR description
When creating an invoice from a subscription, we should ensure that we keep section related to invoiceable lines and the same sequence of the order lines. Before this commit, section and note line where on the top of the invoices and all subscription lines at the bottom. Forward-Port-Of: odoo/enterprise#31625 Forward-Port-Of: odoo/enterprise#31448
This commit fixes hr_recruitment_sign's test. Forward-Port-Of: odoo/enterprise#31612
Original PR description
This commit fixes hr_recruitment_sign's test. Forward-Port-Of: odoo/enterprise#31612
When drag and dropping a work order in the Work Orders Planning, the end time wasn't recomputed. This can make the end time inconsistent with the duration when the work order spans across a non-working time. Steps to reproduce: 1. Install Manufacturing 2. Go to Settings > Manufacturing > Operations and enable Work Orders 3. Go to Manufacturing > Master Data > Routings and edit routing 'Primary Assembly' to last 120:00 minutes 4. Go to Manufacturing > Operations > Manufacturing Orders and
Original PR description
When drag and dropping a work order in the Work Orders Planning, the end time wasn't recomputed. This can make the end time inconsistent with the duration when the work order spans across a…
When drag and dropping a work order in the Work Orders Planning, the end time wasn't recomputed. This can make the end time inconsistent with the duration when the work order spans across a non-working time. Steps to reproduce: 1. Install Manufacturing 2. Go to Settings > Manufacturing > Operations and enable Work Orders 3. Go to Manufacturing > Master Data > Routings and edit routing 'Primary Assembly' to last 120:00 minutes 4. Go to Manufacturing > Operations > Manufacturing Orders and create one with values: - Product: Table Top - Plan From: today's date at 11:00:00 5. Save, mark as todo and plan the manufacturing order 6. Go to Manufacturing > Planning > Planning by Workcenter and trigger the day view 7. Move the work order to 8 am 8. The work order still lasts for 3 hours (according to its start and finish time) even though its expected duration is 2 hours Solution: Recompute `date_planned_finished` when we move a work order in the planning (`date_planned_start` and `date_planned_finished` are passed in values), and recompute `expected_duration` when we extend it (only one of them is passed depending on the way we extend the work order). (`duration_expected` is never passed in values when we manipulate a work order through the planning) Problem: `date_planned_finished` wasn't recomputed when moving the work order in the planning opw-2893622 Forward-Port-Of: https://github.com/odoo/odoo/pull/97805 Forward-Port-Of: odoo/enterprise#31680 Forward-Port-Of: odoo/enterprise#31547
caused by method definition change in odoo/enterprise#31225 Forward-Port-Of: odoo/enterprise#31473
Original PR description
caused by method definition change in odoo/enterprise#31225 Forward-Port-Of: odoo/enterprise#31473
Stpes to reproduce the bug: - Create a Storable product “P1” with BOM: - Component: 1 unit of “C1” - Add an operation with: - 1 step: “Test 1” - Go back to the “P1” product form: - Click on “Quality Control Points” smart button - Add a Control point “Test 2” - Create a MO to produce “P1” - Confirm the MO - Click on the “Quality checks” smart button Problem: You can do both quality checks while “Test 1” should be done during the operation. opw-
Original PR description
Stpes to reproduce the bug:
- Create a Storable product “P1” with BOM:
- Component: 1 unit of “C1”
- Add an operation with:
- 1 step: “Test 1”
- Go back to the “P1” product form:
- Click on “Quality Control Points” smart button
- Add a Control point “Test 2”
- Create a MO to produce “P1”
- Confirm the MO
- Click on the “Quality checks” smart button
Problem:
You can do both quality checks while “Test 1” should be done during the operation.
opw-2977518
Forward-Port-Of: odoo/enterprise#31545When defining a selection type field in fieldsToFetch, it is necessary to have a selection. We can use an empty array if it is not used by our field. Forward-Port-Of: odoo/enterprise#31544
Original PR description
When defining a selection type field in fieldsToFetch, it is necessary to have a selection. We can use an empty array if it is not used by our field. Forward-Port-Of: odoo/enterprise#31544
Purpose: - In the list view, show the "import records" button in the favorite menu that was missing. To do so, creation is no more restricted from the list view, but the create button is hidden because it does not behave as intended. Task-2985804 Forward-Port-Of: odoo/enterprise#31515
Original PR description
Purpose: - In the list view, show the "import records" button in the favorite menu that was missing. To do so, creation is no more restricted from the list view, but the create button is hidden because it does not behave as intended. Task-2985804 Forward-Port-Of: odoo/enterprise#31515
# Current behaviour When duplicating an upsell, the new duplicated upsell is not linked to the initial subscription. (It doesn't appear in the "history" view (click the "Sales" smart button on the subscription), and there is no smart button on the new upsell linking back to the subscription) # Expected behaviour A duplicated upsell should be linked to the subscription, with the smart button allowing for easy back and forth between the upsell and the subscription # Steps to reproduce - C
Original PR description
# Current behaviour When duplicating an upsell, the new duplicated upsell is not linked to the initial subscription. (It doesn't appear in the "history" view (click the "Sales" smart button on the…
# Current behaviour When duplicating an upsell, the new duplicated upsell is not linked to the initial subscription. (It doesn't appear in the "history" view (click the "Sales" smart button on the subscription), and there is no smart button on the new upsell linking back to the subscription) # Expected behaviour A duplicated upsell should be linked to the subscription, with the smart button allowing for easy back and forth between the upsell and the subscription # Steps to reproduce - Create an upsell to a subscription - Duplicate the upsell SO - Observe that the new SO has no "Sales" smart button, and in the original subscription, when clicking on the "Sales" smart button, the newly created SO is not present. # Reason for the problem After the refactoring of moving the subscription code to sale_order, there was no override of the copy_data method. When an upsell was duplicated, the new order client_order_ref was empty, subscription_id was also empty, and origin_order_id was set to the id of the source upsell SO, preventing it to be computed by _compute_origin_order_id correctly (since this compute expect the origin_order_id to be empty to set it to the subscription_id). # Fix Explicitly copy the problematic fields (client_order_ref, subscription_id, origin_order_id) from the source when duplicating. # Affected versions - saas-15.3 - 16.0 (recently added, fw-bot will take care of it) - master opw-2983856 Forward-Port-Of: odoo/enterprise#31513
Purpose ======= The pubic holiday is not paid for long term sick periods, but is actually paid over the first 30 days of sickness Forward-Port-Of: odoo/enterprise#31402
Original PR description
Purpose ======= The pubic holiday is not paid for long term sick periods, but is actually paid over the first 30 days of sickness Forward-Port-Of: odoo/enterprise#31402
Purpose ======= The activity has no name, resulting into a "TODO: Todo" activity. On the other hand, those problematic use cases are now catched by the payroll dashboard. TaskID: 2985606 Forward-Port-Of: odoo/enterprise#31400
Original PR description
Purpose ======= The activity has no name, resulting into a "TODO: Todo" activity. On the other hand, those problematic use cases are now catched by the payroll dashboard. TaskID: 2985606 Forward-Port-Of: odoo/enterprise#31400
Before this commit, this was possible to start dragging an article of the side panel even after user clicked to open an article. This led to an error because after reloading, dragging is still active. When dropping after reload of the page, the sortable component of the previous page is in fact destroyed. After this commit, the sortables are disabled when clicking on an article to open it. User cannot start dragging an article while the next article to display is loading. Task-2972864 For
Original PR description
Before this commit, this was possible to start dragging an article of the side panel even after user clicked to open an article. This led to an error because after reloading, dragging is still active. When dropping after reload of the page, the sortable component of the previous page is in fact destroyed. After this commit, the sortables are disabled when clicking on an article to open it. User cannot start dragging an article while the next article to display is loading. Task-2972864 Forward-Port-Of: odoo/enterprise#31378
The list view of bank statement line in the bank reco widget does not display the statement id in the list view. This is something that is not wanted at this time, as we want to be able to edit the statement of a bank transaction directly from there. Also remove some duplicated records in the xml file. Finally, add a padding between the partner_id and the statement in the kanban view. Forward-Port-Of: odoo/enterprise#31664
Original PR description
The list view of bank statement line in the bank reco widget does not display the statement id in the list view. This is something that is not wanted at this time, as we want to be able to edit the statement of a bank transaction directly from there. Also remove some duplicated records in the xml file. Finally, add a padding between the partner_id and the statement in the kanban view. Forward-Port-Of: odoo/enterprise#31664
Before this commit, in some cases, the start_date of a subscription could be larger than the next_invoice_date if the order was not confirmed the day of the creation. It would trigger issues. This commit make sure the ext_invoice-date is not set to its default value when the sale order is not in a relevant state (confirmed). taskid: 2988410 Forward-Port-Of: odoo/enterprise#31580 Forward-Port-Of: odoo/enterprise#31543
Original PR description
Before this commit, in some cases, the start_date of a subscription could be larger than the next_invoice_date if the order was not confirmed the day of the creation. It would trigger issues. This commit make sure the ext_invoice-date is not set to its default value when the sale order is not in a relevant state (confirmed). taskid: 2988410 Forward-Port-Of: odoo/enterprise#31580 Forward-Port-Of: odoo/enterprise#31543
Rewrite call_center_field to use OWL and models framework. Task-2992592. Forward-Port-Of: odoo/enterprise#31503
Original PR description
Rewrite call_center_field to use OWL and models framework. Task-2992592. Forward-Port-Of: odoo/enterprise#31503
In sign the HTTP tests that called the route `/sign/sign` and tested that it is possible to sign with and without IAP credits when SMS authenticatin is required were passing the wrong id to the route. Since sign.request and sign.request.item have the same id when there is only one sign.request.item in the sign.request, the test was passing in some cases, but not all. This commit fixes this by passing the correct id to the `sign/sign` route. This commit also fixes the inheritance from TestSign
Original PR description
In sign the HTTP tests that called the route `/sign/sign` and tested that it is possible to sign with and without IAP credits when SMS authenticatin is required were passing the wrong id to the route. Since sign.request and sign.request.item have the same id when there is only one sign.request.item in the sign.request, the test was passing in some cases, but not all. This commit fixes this by passing the correct id to the `sign/sign` route. This commit also fixes the inheritance from TestSignController in sign_itsme that was causing the sign tests to be run again when running the sign_itsme tests. Forward-Port-Of: odoo/enterprise#31623
In case the partner name contains only characters that are sanitized, we can end up with an empty partner name in the XML file, which is forbidden as the field is mandatory. We should fallback on a default value in that case instead. opw-2984678 Forward-Port-Of: odoo/enterprise#31674 Forward-Port-Of: odoo/enterprise#31459
Original PR description
In case the partner name contains only characters that are sanitized, we can end up with an empty partner name in the XML file, which is forbidden as the field is mandatory. We should fallback on a default value in that case instead. opw-2984678 Forward-Port-Of: odoo/enterprise#31674 Forward-Port-Of: odoo/enterprise#31459
This commit slightly adapts the helpdesk bridge to enable no_open for the helpdesk team field. This avoids issues when the user tries to open modals on top of modals. See community PR for more details. Task-2981969 Forward-Port-Of: odoo/enterprise#31661
Original PR description
This commit slightly adapts the helpdesk bridge to enable no_open for the helpdesk team field. This avoids issues when the user tries to open modals on top of modals. See community PR for more details. Task-2981969 Forward-Port-Of: odoo/enterprise#31661
This commit adapts the selectors of the sign_widgets_tour for the signature field converted to owl. Forward-Port-Of: odoo/enterprise#31574
Original PR description
This commit adapts the selectors of the sign_widgets_tour for the signature field converted to owl. Forward-Port-Of: odoo/enterprise#31574
Have a tax with tax tags Create a bank statement line Reconcile creating a manual operation, add the tax, then remove it and validate Check journal entry The tax tags will be present on the base line even if the tax was removed opw-2867395 Forward-Port-Of: odoo/enterprise#31256
Original PR description
Have a tax with tax tags Create a bank statement line Reconcile creating a manual operation, add the tax, then remove it and validate Check journal entry The tax tags will be present on the base line even if the tax was removed opw-2867395 Forward-Port-Of: odoo/enterprise#31256
Steps to reproduce: 1- enter barcode app 2- remove the demo message 3- leave and come back to the app 4- the message is still present Bug: the action parameter is correctlt stored in the backend but its new value is only applied after a page refresh on the frontend Fix: reload the page after setting the value opw-2951186 Forward-Port-Of: odoo/enterprise#31558 Forward-Port-Of: odoo/enterprise#30535
Original PR description
Steps to reproduce: 1- enter barcode app 2- remove the demo message 3- leave and come back to the app 4- the message is still present Bug: the action parameter is correctlt stored in the backend but its new value is only applied after a page refresh on the frontend Fix: reload the page after setting the value opw-2951186 Forward-Port-Of: odoo/enterprise#31558 Forward-Port-Of: odoo/enterprise#30535
Steps to reproduce: - Install l10n_be_intrastat. - Open the Accounting App. - Go to Reporting > Intrastat Report. - Click on SAVE. - Select XML as export format > EXPORT. - Should raise a traceback. This is due to the fact that the file content was automatically encoded. But it should not always be the case. With XMLs for instance, the content is of type `markupsafe.Markup` and should be kept as is, instead of being encoded. With this PR, a check is made before encoding the file
Original PR description
Steps to reproduce: - Install l10n_be_intrastat. - Open the Accounting App. - Go to Reporting > Intrastat Report. - Click on SAVE. - Select XML as export format > EXPORT. - Should raise a traceback. This is due to the fact that the file content was automatically encoded. But it should not always be the case. With XMLs for instance, the content is of type `markupsafe.Markup` and should be kept as is, instead of being encoded. With this PR, a check is made before encoding the file content, to make sure it is of type `bytes`. Forward-Port-Of: odoo/enterprise#31604 Forward-Port-Of: odoo/enterprise#31591
When we open the 'Detailed Analysis' of a Revenue KPI, the data displayed in the pivot view does not match the data of the graph Steps to reproduce: 1. Install Subscriptions 2. Go to Subscriptions, open any subscription and in tab 'Other Info', check 'To Renew' 3. Click on 'Renewal Quotation' > 'Confirm' > 'Create Invoice' > 'Create and View Invoice' 4. Click on 'Post' > 'Register Payment' > 'Validate' 5. Go to Reporting > Revenue KPIs > Monthly Recurring Revenue and modify
Original PR description
When we open the 'Detailed Analysis' of a Revenue KPI, the data displayed in the pivot view does not match the data of the graph Steps to reproduce: 1. Install Subscriptions 2. Go to Subscriptions,…
When we open the 'Detailed Analysis' of a Revenue KPI, the data displayed in the pivot view does not match the data of the graph Steps to reproduce: 1. Install Subscriptions 2. Go to Subscriptions, open any subscription and in tab 'Other Info', check 'To Renew' 3. Click on 'Renewal Quotation' > 'Confirm' > 'Create Invoice' > 'Create and View Invoice' 4. Click on 'Post' > 'Register Payment' > 'Validate' 5. Go to Reporting > Revenue KPIs > Monthly Recurring Revenue and modify the date filter to current month 6. Click on 'Detailed Analysis' 7. An error occurs (specific to v13 and caused by [this commit] which modified the name of `action_invoice_line_entries_report` in the xml but not in the js) 8. (with the fix of the action's name) The data displayed does not match what was shown in the graph [this commit]:https://github.com/odoo/enterprise/commit/45a5d86ef530345bba6bc66a5b68b8c425113494 Solution: If we want to get all the subscriptions that were running in a certain period, we need to get the subscriptions that start before the ending of the period (`subscription_start_date` <= period_end) and end after the beginning of the period (`subscription_end_date` >= period_start) Problem: The filters on the subscription start and end date were incorrect opw-2908803 Forward-Port-Of: odoo/enterprise#30641
This merge harmonize the layout and styling between community and enterprise edition. This allows to simplify some templates and avoid overrides in enterprise only. But the main goal is to make both edition responsive. Among other things, a few bugs have been also fixed (like duplicated scss file in bundle...) and Bootstrap configuration/customization files are grouped in `web_enterprise/static/src/scss`. Forward-Port-Of: odoo/enterprise#31511
Original PR description
This merge harmonize the layout and styling between community and enterprise edition. This allows to simplify some templates and avoid overrides in enterprise only. But the main goal is to make both edition responsive. Among other things, a few bugs have been also fixed (like duplicated scss file in bundle...) and Bootstrap configuration/customization files are grouped in `web_enterprise/static/src/scss`. Forward-Port-Of: odoo/enterprise#31511