Daily updates from Odoo
Monday, July 8, 2024
25 changes · master
Enhancements to existing features
The rental demo data now presents the meeting room quotation template as "Rent Rooms" and includes a printer as an optional add-on. This makes the sample rental flow clearer and better demonstrates upsell options for rental quotations.
Original PR description
1) Rename 'Meeting room' quotation template to 'Rent Rooms' 2) Add printer as an optional product to the quotation template
The spreadsheet interface has been updated to give users more space to work by combining navigation and controls into a single streamlined top area. It also adds support for newer pivot date groupings, improving spreadsheet analysis options.
Original PR description
This commit is the counterpart of https://github.com/odoo/odoo/pull/172202
Bank statement validation now records a clearer message confirming validation and summarizing the affected accounts and amounts. Resetting a statement line also logs that it was returned to draft, making audit history easier to follow without overly long messages.
Original PR description
At validation, drop a message that indicates the statement line has been validated and summarizes all accounts and amounts in the journal entry. Aggregated the changes of all lines over the accounts to avoid very long validation messages in chatter so we have only, the account and the corresponding amount change. At resetting, drop a message to indicate that the statement line has been reset to Draft. task-3997721
Users can now set a default signature template on activity types that request signatures. This reduces time spent searching through templates and helps teams choose the right document while still allowing changes when sending the request.
Original PR description
### Purpose When user schedule activity of 'Request Signature' type, and request for signature then needs to select a template for signature. If user has important role in company then need to browse through lot of templates and if not then don't know which template to be selected. ### After this PR When user create activity type with 'Request Signature' action then user will be able to select default template over there and it will populate as default template to scheduled activity of 'Request Signature' type. Also user can change the template while requesting the signature. Task-3895712
Point of Sale scale screens now include a tare button and automatically update item prices when the tare weight changes. This helps cashiers price weighed products more accurately and reduces manual adjustments at checkout.
Original PR description
- Added tare button for automatic scaling of the tare weight. - Added automatic price adjustment based on tare weight changes. Task ID: 3984103 Related: https://github.com/odoo/odoo/pull/170592
The payslip form layout has been adjusted so the pay period appears below the payroll structure. This creates a more natural flow for payroll users when reviewing or entering payslip information.
Original PR description
This commit reposition the perdiod for the payslips to below the structure to make it more inline with a normal flow task-4004624
Enterprise apps now align with a platform update that shares more information about available views during a user session. This supports consistent behavior across Helpdesk and advanced reporting or planning views such as cohort, gantt, grid, and map.
Original PR description
We adapt the code in enterprise to the changes brought by https://github.com/odoo/odoo/pull/171919
Spreadsheet screens now use a simplified single-line header, combining navigation and common actions so users have more space to work. Key tools such as sharing, filters, save status, breadcrumbs, document title, and favorites remain available in the spreadsheet area with a cleaner layout.
Original PR description
With this commit, the layout of the spreadsheet actions is reworked to have more space to display the spreadsheet. The navbar and the control panel are now merged into a single line. Technical…
With this commit, the layout of the spreadsheet actions is reworked to
have more space to display the spreadsheet.
The navbar and the control panel are now merged into a single line.
Technical details:
- The control panel is completely removed
- All spreadsheet actions are now in "fullscreen" mode
- All spreadsheet actions now have a custom navbar, extended from the
web_enterprise navbar, in order to display:
1. The spreadsheet icon
2. The "app" name "Spreadsheet"
3. A simplified breadcrumb => only the last part of the path
4. The title of the spreadsheet
5. (only for documents) The favorite toggler
- The actions that were in the control panel ("Share", "Filters", the
save indicator, ...) are now moved inside the spreadsheet topbar. A
component is created for each action in order to achieve it. The main
technical impact of moving these actions is that they now should works
with the `env` instead of `props`.
Two known issues:
- Refreshing the browser while in a spreadsheet action will briefly
display the web navbar before the spreadsheet navbar is displayed. This
is due to the fact that the web navbar is displayed before the action is
loaded and therefore before the detection of the action mode `fullscreen`.
- Currently, any action following a `fullscreen` action will be forced
to be in `fullscreen` mode. This implies that when the user will drill
down in a spreadsheet, the action in which he will land will not have
the web navbar. This is not expected and will be fixed in the future.
Task: 4000864Spreadsheet pivot tables now support newer, more precise date grouping options, making reports easier to organize and analyze. The older duplicate year grouping option is removed in favor of the standard year number option, keeping reporting choices clearer.
Original PR description
This commit adds the support for the new granularities added in https://github.com/odoo/odoo/pull/159528. It also drops the support of `year` as it's the same as `year_number`. Task: 3899604
Resolved issues and error corrections
This fixes an error that could occur when an employee was assigned to a preparation display order in Point of Sale. It helps keep kitchen preparation workflows stable and avoids interruptions during order handling.
Original PR description
Fix traceback when assigning employee_id to pdis order. taskId: 4037944
Code cleanup and technical improvements
Odoo removes an unused manual setup flow for XML validation files and moves validation into automated nightly tests. This reduces user-facing configuration while still checking that generated accounting, payroll, banking, and localization XML documents meet required external formats.
Original PR description
Problem --------- In times immemorial, XSD checks were added to Odoo, so that when we generate an XML file to be sent to a service, we validate it using the corresponding XSD before sending it. At…
Problem --------- In times immemorial, XSD checks were added to Odoo, so that when we generate an XML file to be sent to a service, we validate it using the corresponding XSD before sending it. At the request of the infra team, which was concerned that we were downloading XSDs again and again on new databases when people tried generating XMLs for the first time, this framework was refactored in 16.0 in the following task. This no longer made the download of XSDs automatic, but made it possible through a button in the settings in debug mode. Which means that 99% of users never use it. Objective --------- 1. Remove the whole 'XSD framework' 2. Instead, add nightly (l10n_external) tests that try to generate the XMLs, download the XSD and try to validate the XMLs using the XSDs. Solution --------- Remove all occurances of `action_download_xsd_files` et al. Instead, we now have a decorator `test_xsd`. 1. place the decorator on test functions 2. use either take a URL or path to an XSD file as argument 3. make sure the decorated method returns the XML to test for 4. make sure your test as the exernal tag if using a URL Upon running the test, the decorated method will run test the XML against the specified XSD. odoo/odoo/pull/171593 task-3619697
Message-related data is now sent in a flatter, simpler format, reducing repeated information when the same contact appears across multiple messages. This should lower data transfer and browser processing, helping messaging features in Knowledge, WhatsApp, and VoIP feel more efficient without changing user workflows.
Original PR description
This will reduce data transferred to the client and processed in JS when the same persona was appearing in multiple messages. This also makes more clear what is transferred by avoiding nested values. This is part 5, focusing on message and persona in message. Formatting code eventually becomes simpler too, by always adding data to the store rather than updating pre-existing dict manually. Part of task-3605717 https://github.com/odoo/odoo/pull/171585
Miscellaneous changes
[FIX] l10n_dk_reports: fix account type of DK report tests By fixing the type of the account "Purchase of goods" from expense to expense_direct_cost the test now takes the new first expense account which is now "Freight costs" and not "Purchase of goods" anymore task-id#3983710 odoo-pr#[168838](https://github.com/odoo/odoo/pull/168838) Forward-Port-Of: odoo/enterprise#66202
Original PR description
[FIX] l10n_dk_reports: fix account type of DK report tests By fixing the type of the account "Purchase of goods" from expense to expense_direct_cost the test now takes the new first expense account which is now "Freight costs" and not "Purchase of goods" anymore task-id#3983710 odoo-pr#[168838](https://github.com/odoo/odoo/pull/168838) Forward-Port-Of: odoo/enterprise#66202
Steps to reproduce ================== - Open "Documents" app - Select any workspace - Click dropdown next to "Upload" - Select "Share" - Select "Download and Upload" from the "Allows to" radio buttons - Select "Share" Solution ======== Use the same solution as - https://github.com/odoo/enterprise/commit/f3320efad924623ea553847538c6244459a734d5 - https://github.com/odoo/enterprise/commit/2c6716e7f619423414b615015bf86fbd11256953 - https://github.com/odoo/enterprise/commit/2820
Original PR description
Steps to reproduce ================== - Open "Documents" app - Select any workspace - Click dropdown next to "Upload" - Select "Share" - Select "Download and Upload" from the "Allows to" radio buttons - Select "Share" Solution ======== Use the same solution as - https://github.com/odoo/enterprise/commit/f3320efad924623ea553847538c6244459a734d5 - https://github.com/odoo/enterprise/commit/2c6716e7f619423414b615015bf86fbd11256953 - https://github.com/odoo/enterprise/commit/2820230bf722d602540943ff9f17bd72e991bea9 opw-3990839 Forward-Port-Of: odoo/enterprise#66011 Forward-Port-Of: odoo/enterprise#65207
Since commit [1], the NavBar actually removes the parts/buttons specific to small/desktop-like screens instead of hidding them with responsive classes. This commit adapts also the HomeMenu toggle icon's breakpoint to match `isSmall`, avoiding a ugly overlap between `md` and `lg` breakpoints. Steps to reproduce: - open an app with a resolution > 992px - resize the viewport below 992px => the app's icon and HomeMnu one are overlapping opw-4033259 [1]: odoo/enterprise@a586702247e5dbe3
Original PR description
Since commit [1], the NavBar actually removes the parts/buttons specific to small/desktop-like screens instead of hidding them with responsive classes. This commit adapts also the HomeMenu toggle icon's breakpoint to match `isSmall`, avoiding a ugly overlap between `md` and `lg` breakpoints. Steps to reproduce: - open an app with a resolution > 992px - resize the viewport below 992px => the app's icon and HomeMnu one are overlapping opw-4033259 [1]: odoo/enterprise@a586702247e5dbe3690377d19cc84f7ab54e77ee Forward-Port-Of: odoo/enterprise#66219
This commit fixes an issue with the Knowledge form view that loses its navbar when you reload an article's page. This issue is caused by the lack of a path inside the ir.actions.server `ir_actions_server_knowledge_home_page` which is the action called when opening the app. This field was set on the action calling the form view `knowledge_article_action_form` but it's not the one called when refreshing the browser. task-3874849 Forward-Port-Of: odoo/enterprise#65642 Forward-Port-Of:
Original PR description
This commit fixes an issue with the Knowledge form view that loses its navbar when you reload an article's page. This issue is caused by the lack of a path inside the ir.actions.server `ir_actions_server_knowledge_home_page` which is the action called when opening the app. This field was set on the action calling the form view `knowledge_article_action_form` but it's not the one called when refreshing the browser. task-3874849 Forward-Port-Of: odoo/enterprise#65642 Forward-Port-Of: odoo/enterprise#62509
**Version:** - saas-16.3 **Step to reproduce:** - In the sign app, open the sign template iframe view. - When zooming in, the 'Sign Now' button breaks the text and creates extra space in the breadcrumb. **Issue:** Currently, the sign now button text creates extra spacing. **Solution:** Add the CSS class so that it will not create additional spacing task-3977792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port
Original PR description
**Version:** - saas-16.3 **Step to reproduce:** - In the sign app, open the sign template iframe view. - When zooming in, the 'Sign Now' button breaks the text and creates extra space in the breadcrumb. **Issue:** Currently, the sign now button text creates extra spacing. **Solution:** Add the CSS class so that it will not create additional spacing task-3977792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#64648
In the tour adaptation it seems a step has been removed which is very essential for the feature "Copy Previous Week". In sense tour fails when the user doesn't have any data(highly likely for an onboarding user). So the step is added to change the week. task-3997374 Forward-Port-Of: odoo/enterprise#64955
Original PR description
In the tour adaptation it seems a step has been removed which is very essential for the feature "Copy Previous Week". In sense tour fails when the user doesn't have any data(highly likely for an onboarding user). So the step is added to change the week. task-3997374 Forward-Port-Of: odoo/enterprise#64955
Steps to reproduce: ------------------- 1. Set the user with 'project > user' access rights level and nothing else. Remove every rights that are related to account/analytic accounting from the user (see record rules, access rights, groups, ...). 2. When opening the Project app, an Access Error occurs (related to 'account.analytic.line'). Fix: ------------------- The progress bar that appears when grouping tasks by project in the gantt view should be able to display the sum of the timeshe
Original PR description
Steps to reproduce: ------------------- 1. Set the user with 'project > user' access rights level and nothing else. Remove every rights that are related to account/analytic accounting from the user (see record rules, access rights, groups, ...). 2. When opening the Project app, an Access Error occurs (related to 'account.analytic.line'). Fix: ------------------- The progress bar that appears when grouping tasks by project in the gantt view should be able to display the sum of the timesheets amount per project even if the user has no access to 'account.analytic.line'. task-3973256 Forward-Port-Of: odoo/enterprise#65873 Forward-Port-Of: odoo/enterprise#63922
Currently, it is impossible to duplicate a recurring shift, because the "Edit Recurring Shift" modal opens instead. This PR fixes it by preventing this modal from opening and copying the shift as it should. The problem is that the "dragPillDrop" method will open the modal if the shift is recurring, no matter if you are trying to copy it or not. To fix it, a condition was added to check if the shift is being copied or not, and if so, it won't open the modal. task-3978527 Forward-Port-Of: o
Original PR description
Currently, it is impossible to duplicate a recurring shift, because the "Edit Recurring Shift" modal opens instead. This PR fixes it by preventing this modal from opening and copying the shift as it should. The problem is that the "dragPillDrop" method will open the modal if the shift is recurring, no matter if you are trying to copy it or not. To fix it, a condition was added to check if the shift is being copied or not, and if so, it won't open the modal. task-3978527 Forward-Port-Of: odoo/enterprise#65881
Steps: -------- - Install Field Service module - Now, go to the field service's configuration - Click on Time and Material invoicing - Make the new Task - Add products - Now in internal user, give users access right level > sale: own document only - Now login as a user who has user access right level - After login, go to field service module - Open that task in which sale order automatically generated, access error comes Issue: ------- - An user who has user access rights level tr
Original PR description
Steps: -------- - Install Field Service module - Now, go to the field service's configuration - Click on Time and Material invoicing - Make the new Task - Add products - Now in internal user, give…
Steps: -------- - Install Field Service module - Now, go to the field service's configuration - Click on Time and Material invoicing - Make the new Task - Add products - Now in internal user, give users access right level > sale: own document only - Now login as a user who has user access right level - After login, go to field service module - Open that task in which sale order automatically generated, access error comes Issue: ------- - An user who has user access rights level trying to read other user sale order. Cause: --------- - In this **PR enterprise-31363** added a new field pricelist_id on model project.task.This field is computed in _compute_currency_id.However user have no access to read record, therefore raises an access error for internal user. Fix: ----- - A sudo is used in method _compute_currency_id to be able to open the task but can not see sale order stat button. task-3610485 Forward-Port-Of: odoo/enterprise#66098 Forward-Port-Of: odoo/enterprise#52677
Steps to reproduce: - set a customer with Belgian VAT and check one with German VAT - Create sales: * one for the Belgian company using the 0% EU sale taxe * another for the German company using the 0% tax for construction (provider §13b) - Go To Statement Reports > EC Sales List Issue: Only the invoice for the Belgian company should appear in the report EC Sales 60 tag should not be present only tags in (41, 42, 21) source: https://apps.datev.de/help-center/documents/1017530 op
Original PR description
Steps to reproduce: - set a customer with Belgian VAT and check one with German VAT - Create sales: * one for the Belgian company using the 0% EU sale taxe * another for the German company using the 0% tax for construction (provider §13b) - Go To Statement Reports > EC Sales List Issue: Only the invoice for the Belgian company should appear in the report EC Sales 60 tag should not be present only tags in (41, 42, 21) source: https://apps.datev.de/help-center/documents/1017530 opw-3923031 Forward-Port-Of: odoo/enterprise#65958 Forward-Port-Of: odoo/enterprise#65098
When we are loading an offer in the salary configurator, if values are set to a benefit that depends on another one which is disabled. You are keeping the value of the contract, and it is not disabled as it should because the mandatory benefit is not set. We've got this issue because the variable in the loop has the same name as the one we really need declared before ('mandatoryBenefitSelected'). We also remove the loop and the split, as it is already done in the function 'updateDependentB
Original PR description
When we are loading an offer in the salary configurator, if values are set to a benefit that depends on another one which is disabled. You are keeping the value of the contract, and it is not disabled as it should because the mandatory benefit is not set.
We've got this issue because the variable in the loop has the same name as the one we really need declared before ('mandatoryBenefitSelected').
We also remove the loop and the split, as it is already done in the function 'updateDependentBenefits' that is called.
TASK-ID: NONE
Forward-Port-Of: odoo/enterprise#66124**Current behavior:** Setting up a control point for a product by quantity with a failure stock location on manufacturing operations will never allow a manufactured product that fails the quality check to end up in the failure location. **Expected behavior:** A product created in a manufacturing order can fail a quality check and end up in the designated failure location in WH. **Steps to reproduce:** 1. Set up a quality point on some storable product on manufacturing operations with:
Original PR description
**Current behavior:** Setting up a control point for a product by quantity with a failure stock location on manufacturing operations will never allow a manufactured product that fails the quality…
**Current behavior:**
Setting up a control point for a product by quantity with a failure stock location on manufacturing operations will never allow a manufactured product that fails the quality check to end up in the failure location.
**Expected behavior:**
A product created in a manufacturing order can fail a quality check and end up in the designated failure location in WH.
**Steps to reproduce:**
1. Set up a quality point on some storable product on manufacturing operations with:
`Control per: Quantity`
`Type: Pass - Fail`
`Failure Location: Some internal location`
3. Create a new MO with the quality controlled product and confirm it
4. Click the Quality Checks button, fail the check (make sure to select the faiure location here)
5. After the Quality Check, click Produce All -> Observe that the full quantity of products produced by the MO still was moved to whatever the default Stock location is, not the failure location specified.
**Cause of the issue:**
The method `_move_line_to_failure_location()` expects a picking and SML to exist, however when the quality check starts from an MO, we have neither (contrasted with a check starting from a picking). So the method just skips the logic where the re-route would occur.
**Fix:**
Override the method in the mrp_quality bridge module, if the quality check has a production_id then create the SML on the spot via `MrpProduction.action_confirm()`, then go through the same logic to split the created line as necessary based on the failed quantity vs. total quantity of the MO.
opw-3865301
Forward-Port-Of: odoo/enterprise#62731### steps to reproduce: - Create a storable product tracked by SN with a bom with two operations in the same workcenter: - Operation 1: with at least one component consumed - Operation 2 - Create and confirm an MO using that bom - Go to the shopfloor, validate all the quantities of the operation 1 and mark as done without setting a SN on the final product #### > Invalid Operation: You should provide a lot/serial number for the final product ### Expected behavior: You should be able
Original PR description
### steps to reproduce: - Create a storable product tracked by SN with a bom with two operations in the same workcenter: - Operation 1: with at least one component consumed - Operation 2 - Create and…
### steps to reproduce: - Create a storable product tracked by SN with a bom with two operations in the same workcenter: - Operation 1: with at least one component consumed - Operation 2 - Create and confirm an MO using that bom - Go to the shopfloor, validate all the quantities of the operation 1 and mark as done without setting a SN on the final product #### > Invalid Operation: You should provide a lot/serial number for the final product ### Expected behavior: You should be able to validate the operations of the MO without assigning an SN but you should not be able to mark the MO as done without assigning the SN to the final product. Note: if no component were consumed in an operation, the invalid operation would not be raised. ### Cause of the Issue: The invalid operation is raised because of these lines: https://github.com/odoo/enterprise/blob/1b0435a92492d85f28549a207fcdb7224b457c66/mrp_workorder/models/mrp_workorder.py#L433-L434 However, the existence of "self.move_raw_ids" only indicates that a component has to be consumed in this opration rather than the existence of a move requiring a the SN of the final product to be set. ## opw-3987022 Forward-Port-Of: odoo/enterprise#66058 Forward-Port-Of: odoo/enterprise#65075