Monday, November 4, 2024
24 changes · 17.0
Enhancements to existing features
Daily and weekly calendar event cards no longer show the start time twice. This reduces visual clutter and makes event information easier to scan for users.
Original PR description
When in daily and weekly calendar views, the start time of events are shown twice in the event card, poluting the user interface. This commit removes the isolated start time for making the event card cleaner. task-4161302
Resolved issues and error corrections
This fix updates the Time Off accrual plan screen so its layout, colors, sizing, and dark mode appearance are more consistent with the rest of Odoo. Users should see a cleaner and more uniform interface when managing accrual plans.
Original PR description
This PR aims to solve an old issue that was not fixed with the Milk redesign. Prior to this PR, there were different layout issues including colors, sizes, or dark mode adaptations. These issues were making the view looking different from the other one, resulting in consistencies issues. This PR tweaks some CSS in order to handle most of these issues. task-3713647 | /// | 17.0 | This PR | |--------|--------|--------| | LM | <img alt="image" src="https://github.com/user-attachments/assets/09eba47a-8d9e-4a4b-af73-f8f83321a454"> | <img alt="image" src="https://github.com/user-attachments/assets/bea7c02c-2118-4262-9433-52cddd99e7e7"> | | DM | <img alt="image" src="https://github.com/user-attachments/assets/416bd1a5-9c7f-44d7-a78d-f479074f5f42"> | <img width="1530" alt="image" src="https://github.com/user-attachments/assets/9fb77db6-7752-403a-82de-9d03b9fe46e6"> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
To reproduce: ============= - with service product S with create project & task - create sale order with that product - with another service product E with Re-invoice Expenses at cost - create expense with this product and link it to the first sale order - go back to sale order, we find product E added to sale order - create invoice and post it Problem: ======== on project updates we have the expense + the customer invoice which gives wrong profits in stats Solution: ========= e
Original PR description
To reproduce: ============= - with service product S with create project & task - create sale order with that product - with another service product E with Re-invoice Expenses at cost - create expense with this product and link it to the first sale order - go back to sale order, we find product E added to sale order - create invoice and post it Problem: ======== on project updates we have the expense + the customer invoice which gives wrong profits in stats Solution: ========= exclude the customer invoice from the revenues when it's linked to an expense, as the expense is already included in the revenues opw-4000095 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182165
This fixes an issue where embedded Google Slides could cause errors when users interact with shop floor pages. The system now safely checks whether embedded content can be accessed before using it, improving reliability without changing user workflows.
Original PR description
When an iFrame and its parent document are from different origins, contentDocument is null. See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentDocument This will cause an error when interacting with an iFrame that contains a Google Slide, which is from a different origin. Due to this, we need to check that there's a contentDocument before trying to use its content. opw-4240622 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an issue in the website editor where the image replacement picker would not open after an image was cropped. This helps users continue editing page images without getting blocked or needing to restart their editing flow.
Original PR description
Steps to reproduce: - Drag and drop any snippet with image in it. - Select image and crop image using transform option. - Click replace button. - Image selection popover won't open. After this commit: - The "preserveCursor" method has been used to maintain the cursor state because transform option was losing cursor selection. task-3930743
This fixes a POS settings issue where the preparation display option could turn itself back on after saving, even when self-ordering was disabled. Businesses can now reliably disable the preparation display when it is not needed, avoiding unwanted kitchen display behavior.
Original PR description
Issue: In the POS settings, even after disabling the preparation display option, it remains enabled after saving. Steps to reproduce: -In POS configuration -Ensure the Pay after option is set to each order. -Disable self ordering and uncheck the preparation display option, save. Explanation: In res_config_settings.py of pos_self_order, https://github.com/odoo/odoo/commit/8ee8010cf67f20c4eb28a334cc943bfedf2dd0d1 added a check to ensure that the preparation display is enabled if self-ordering is active. However, it was still automatically enabling the preparation display even when self-ordering was disabled. opw-4225668 (This pr was merged but introduced an error with the test which was fixed in a separate pr: https://github.com/odoo/odoo/pull/186539) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Point of Sale receipts now display the original item price when a line discount is applied. This makes receipts clearer for customers by showing both the starting price and the discounted result.
Original PR description
Currently, when a discount is applied on a specific pos order line, the receipt does not reflect the original price of the article. Steps to reproduce: ------------------- * Open shop session * Add any product to the order * Apply a discount on that order line * Validate and pay order > Observation: The original price of the order is not reflected Why the fix: ------------ We now show the original price, without the discount, on the receipt. opw-4179118 Before: ---------  After: ------- 
Employee badges now avoid showing “Software Developer” when an employee has no job position set. This prevents misleading job titles on printed badges and keeps employee information accurate.
Original PR description
Issue: When printing an employee badge for an employee without a job position, the default title was set to "Software Developer." Steps to Reproduce: -Create an employee with an empty job position. -Alternatively, remove the job position of an existing employee. -Generate and print a badge (in HR settings). Explanation: In `hr_employee_badge.xml`, the default value was set to "Software Developer." opw-4255102 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A backend view lookup behavior was corrected by adding an option to include primary inherited views when needed. This helps ensure Odoo retrieves the right screen definitions in affected cases, reducing errors or missing layout behavior for users.
Original PR description
TODO
This update addresses an issue in Odoo Web Studio related to editing view properties. It helps keep Studio customization behavior reliable for users managing app screens.
Original PR description
Steps to reproduce ================== Cause of the issue ================== Solution ======== opw-4104396
This update resolves an issue where the sign generation process would sometimes produce incorrect results after switching between drawing and auto-result modes. The fix ensures the dialog has sufficient time to load properly before mode changes, preventing this problem. This improves the reliability and user experience of the sign generation feature.
Original PR description
We wait for the next tick to leave the dialog enough time to load properly before changing the mode to draw, this way we avoid to have the canva with the auto result after changing to draw mode.
This update resolves a technical error that prevented users from confirming invoices when using the new loyalty program and Taxcloud integration. The issue stemmed from an incorrect field check within the invoice processing logic. This fix ensures smooth invoice confirmation for transactions utilizing these features.
Original PR description
Steps: - Install sales app. - Enable loyalty and taxclould. - Create a loyalty program and a rule for a product. - Enable Taxclould API on fiscal position. - Create SO and set that fiscal position on SO - Add that product with loyalty program and apply that promotion on so - Confirm delivery and Create Invoice. - Try to confirm invoice. Issue: - Traceback. Cause: - Wrong field check in condition on Invoice lines. Fix: - Update field to check right condition. opw-4180034 Forward-Port-Of: odoo/enterprise#72696
This update resolves an issue where Avalara was returning generic error messages due to a reason field being too short. By ensuring the reason field has the correct length, we prevent these errors and improve the reliability of invoice processing for Brazilian e-commerce.
Original PR description
The error Avalara returns for this is too generic to be useful: Rejeição: Evento não atende o Schema XML específico We found out by contacting Avalara support that the error in this case was a reason that was too short. Let's prevent this from re-occuring. opw-4298175
This update resolves a crash within Odoo's Studio application when navigating to edit one-to-many records. The fix prevents the system from incorrectly interpreting a default value as an invalid record ID, eliminating the error and ensuring Studio functions smoothly. The change ensures Studio users can reliably edit forms with related records.
Original PR description
…anys Have a ir.default that sets one line into a one2many on some models. In studio, edit the form view of the main model, then navigate to edit the one2many, with the ir.default having been triggered (there is one virual line in the one2many). Before this commit there was a crash because "false" is not a valid id for the staticlist. After this commit, there is no crash, and the virtual record doesn't appear. opw-4289233
This update resolves a display error in the map view that incorrectly prompted users to set up their Mapbox token, even when it was already configured. The issue stemmed from a filtering problem when tasks lacked customer data, causing an error during routing. Adding a 'partner' filter ensures accurate routing calculations.
Original PR description
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token…
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token set up. This happens when, for example: if you have 3 tasks where 2 of them have the customer field filled and one doesn't. The function _fetchRoute tried to filter out the records that don't have the latitude/longitude. But, here, since one of the records doesn't have a partner, when it's trying to look into partner.partner_latitude, it throws an error. After the error, mapBoxToken is set to '' in _partnerFetching, and called _openStreetMapAPI() resulting in displaying the error, "to get routing on your map, you first need to set up your Mapbox token." So, adding record.partner in the filter will help filter out the records that don't have partner. To Reproduce on Runbot: 1. Set up Mapbox token 2. Go to Project->Task 3. Create 3 Tasks ( 2 with customer and 1 without customer ) 4. Go to the map view and it'll display the error. opw-3682829 Forward-Port-Of: odoo/enterprise#69047 Forward-Port-Of: odoo/enterprise#55580
This update resolves a technical error that prevented users from successfully exporting XAF reports (like the General Ledger) when using the 'Export' function. The fix ensures the report content is correctly saved as a file attachment, resolving a 'TypeError' that was blocking the export process.
Original PR description
With NL Company Open "General Ledger" Hit Save > Select XAF > Click 'Export' Issue: "TypeError: argument should be a bytes-like object or ASCII string, not 'generator'" This occurs because when calling `export_report` we save the attachment and we need the actual file content. opw-3820739 Forward-Port-Of: odoo/enterprise#72294
Currently, When the user adds a wrong ``div(eg: </div>)`` in a view's architecture and tries to save the view, then an error occurs. Steps to reproduce: - Go to Settings > Technical > Views > open a view - In View Architecture add ``closing div(eg: </div>)`` after any ``div`` - Then save manually, the error will occur. Traceback: `` ParserError: Multiple elements found (div, div)`` To solve this issue, the error has been handled using a try-except block in the ``parse_html`` method
Original PR description
Currently, When the user adds a wrong ``div(eg: </div>)`` in a view's architecture and tries to save the view, then an error occurs. Steps to reproduce: - Go to Settings > Technical > Views > open a view - In View Architecture add ``closing div(eg: </div>)`` after any ``div`` - Then save manually, the error will occur. Traceback: `` ParserError: Multiple elements found (div, div)`` To solve this issue, the error has been handled using a try-except block in the ``parse_html`` method. sentry-4147547360 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168422
Commit 9a64d78d17ea39c7ce10e4ebba8df69987c2c925 introduced an error in the method name used to normalize codice fiscale. The method name has changed between 16.0 and 17.0, method name from 17.0 has been used instead of 16.0 one. Same is true for 17.0 where 16.0 name was used instead. opw-4261959 Forward-Port-Of: odoo/odoo#185942
Original PR description
Commit 9a64d78d17ea39c7ce10e4ebba8df69987c2c925 introduced an error in the method name used to normalize codice fiscale. The method name has changed between 16.0 and 17.0, method name from 17.0 has been used instead of 16.0 one. Same is true for 17.0 where 16.0 name was used instead. opw-4261959 Forward-Port-Of: odoo/odoo#185942
**Steps to reproduce the bug:** - Create two storable products, “P1” and “P2”. - Set “P1” to be tracked by Serial Number - Update P1 with SN1. - Create a repair order: - Set P1 with SN1. - Save. - Edit and update the product to P2. - Save. - Print the order. **Problem:** The “lot_id” is not cleared and appears in the report because the “lot_id” field becomes invisible and read-only under the same condition. Since it is read-only and not force-saved, the value of “lot_id” is no
Original PR description
**Steps to reproduce the bug:** - Create two storable products, “P1” and “P2”. - Set “P1” to be tracked by Serial Number - Update P1 with SN1. - Create a repair order: - Set P1 with SN1. - Save. - Edit and update the product to P2. - Save. - Print the order. **Problem:** The “lot_id” is not cleared and appears in the report because the “lot_id” field becomes invisible and read-only under the same condition. Since it is read-only and not force-saved, the value of “lot_id” is not considered in the write of the repair order, even though the `onchange` sets the “lot_id” field to False: https://github.com/odoo/odoo/blob/16.0/addons/repair/models/repair.py#L208-L212 **opw-4281176** Forward-Port-Of: odoo/odoo#185552
The regex used to extract the UID from `pos_reference` was too restrictive, failing when the session number exceeded 99999. This fix allows the UID extraction to handle references with larger session numbers. opw-4281163 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185155
Original PR description
The regex used to extract the UID from `pos_reference` was too restrictive, failing when the session number exceeded 99999. This fix allows the UID extraction to handle references with larger session numbers. opw-4281163 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185155
Description of the issue/feature this PR addresses: Link to task: [#4218972](https://www.odoo.com/web#model=project.task&id=4218972) This change fixes english and arabic labels & translations in the l10n_sa_invoice module Current behavior before PR: Some labels are inaccurate or do not match the saudi arabia ZATCA invoice template. Desired behavior after PR is merged: Labels are more accurate and match the saudi arabia ZATCA invoice template. --- I confirm I have signed the CL
Original PR description
Description of the issue/feature this PR addresses: Link to task: [#4218972](https://www.odoo.com/web#model=project.task&id=4218972) This change fixes english and arabic labels & translations in the l10n_sa_invoice module Current behavior before PR: Some labels are inaccurate or do not match the saudi arabia ZATCA invoice template. Desired behavior after PR is merged: Labels are more accurate and match the saudi arabia ZATCA invoice template. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186092 Forward-Port-Of: odoo/odoo#184060
Steps to reproduce: - Create and confirm an invoice at 2024/10/01 with a line containeing a tax_id - In journal items, try to "cut-off" Issue: You won't be able to do so because of the tax lock date Cause: We need the correct accounting date to find back the reference move but before the fix, a side effect was to check for tax lock date which does not make sense in this flow. We create move line without tax_ids/tag_grid and so it does not impact the tax report: https://github.com/odoo/
Original PR description
Steps to reproduce: - Create and confirm an invoice at 2024/10/01 with a line containeing a tax_id - In journal items, try to "cut-off" Issue: You won't be able to do so because of the tax lock date Cause: We need the correct accounting date to find back the reference move but before the fix, a side effect was to check for tax lock date which does not make sense in this flow. We create move line without tax_ids/tag_grid and so it does not impact the tax report: https://github.com/odoo/odoo/blob/16.0/addons/account/wizard/account_automatic_entry_wizard.py#L242-L271 Solution: we set the `has_tax` to False to byapss the check. The user, if he wishes, could excatly the same flow by creating an entry "a la mano" <-> We don't need to block this flow opw-4191527 Forward-Port-Of: odoo/odoo#185078
Versions -------- - 16.0 - 17.0 - saas-17.2 Backport of https://github.com/odoo/odoo/pull/185169, which fixed this in saas-17.4. Steps ----- 1. Set eCommerce prices to display tax included; 2. have a discount code program; 3. add a deliverable product to cart; 4. apply discount code; 5. click "Proceed to Checkout"; 6. open web inspector on the discount amount in the cart summary. Issue ----- The `span` element doesn't have the `data-reward-type="discount"` attribute. Cau
Original PR description
Versions -------- - 16.0 - 17.0 - saas-17.2 Backport of https://github.com/odoo/odoo/pull/185169, which fixed this in saas-17.4. Steps ----- 1. Set eCommerce prices to display tax included; 2. have a discount code program; 3. add a deliverable product to cart; 4. apply discount code; 5. click "Proceed to Checkout"; 6. open web inspector on the discount amount in the cart summary. Issue ----- The `span` element doesn't have the `data-reward-type="discount"` attribute. Cause ----- The template adding the attribute, only adds it to the first child element, which displays the price tax excluded. Solution -------- Add an `xpath` template to also add it to the second one. opw-4284046 Forward-Port-Of: odoo/odoo#185440
Specification: This PR aims to resolve the issue occured while discarding the upload process the `this.fileInput.el` becomes undefined as image is discarded which resulted in traceback. task-4255826 Forward-Port-Of: odoo/odoo#183547
Original PR description
Specification: This PR aims to resolve the issue occured while discarding the upload process the `this.fileInput.el` becomes undefined as image is discarded which resulted in traceback. task-4255826 Forward-Port-Of: odoo/odoo#183547