Thursday, December 5, 2024
21 changes · 17.0
Enhancements to existing features
This update addresses necessary adjustments to the Danish localization package (l10n_dk) following a recent change in the community version. Specifically, tests have been updated to align with the new account type. This ensures continued accurate reporting and compliance for Danish businesses using Odoo Enterprise.
Original PR description
Following the change of account type in the community pr, some tests had to be modified. task: 4341375
Resolved issues and error corrections
This fixes a mobile display issue where a shortcut icon in form views appeared smaller than the settings button. Users now see more consistent button sizing and clearer truncated labels when space is limited.
Original PR description
Steps to reproduce ================== - In 18, install documents,project - Open a project then a task - Switch to a mobile view and refresh the page - The lightning icon is smaller than the cog icon Cause of the issue ================== https://github.com/odoo/odoo/pull/188986 An overflow was applied on the entire oe_stat_button Solution ======== We can move the overflow to the `o_field_statinfo` This is better than before as now the ellipsis is visible. task-4377703
Code cleanup and technical improvements
Old compatibility code for weighing scales from unsupported Odoo versions has been removed. This simplifies the hardware driver maintenance without changing current supported scale behavior.
Original PR description
The SerialScaleDriver has code to maintain compatibility with very old Odoo versions (v12). Since these versions have not been supported for years we remove the code. task-4380956 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Steps to reproduce: - Go to a form view with a one2many with a handle widget - Move a line in the one2many that make Odoo crash with the onchange To generate a faulty view, create a form view with a one2many and add an automation "On UI change" to make the resequence crash. Current behaviour ----------------- After the error being thrown, the user will not be able to resequence this line again. Expected Behaviour ------------------ After the error, the user will still be able to r
Original PR description
Steps to reproduce: - Go to a form view with a one2many with a handle widget - Move a line in the one2many that make Odoo crash with the onchange To generate a faulty view, create a form view with a one2many and add an automation "On UI change" to make the resequence crash. Current behaviour ----------------- After the error being thrown, the user will not be able to resequence this line again. Expected Behaviour ------------------ After the error, the user will still be able to resequence this line Forward-Port-Of: odoo/odoo#158276 Forward-Port-Of: odoo/odoo#157539
Fixes an issue where lot numbers could be created and linked to a receipt but remained hidden on the stock picking screen even after the related field was unhidden. This makes inventory tracking information visible to users when they choose to display it, improving traceability during stock operations.
Original PR description
### Steps to reproduce: - Create a product tracked by lot: Lot Product - Create and Mark as todo a receipt with a move: 1 x Lot Product - Click on the burger icon on the move and add a lot name LOT001 - Save > Save the picking > Validate the picking - Unhide the Serial Numbers field #### > While a lot with that lot name was created in DB and is used both by the move and its move line it i snot visible on the picking ### Cause of the issue: The field is smply invisible for lots (while it is not for SN): https://github.com/odoo/odoo/blob/066834aafd7f904c4a9c0cf4a82b4bdfbb011f0b/addons/stock/views/stock_picking_views.xml#L319-L322 ### Fix: The issue is not reproducible on 17.2+ because the view has been updated. We simply backport one line from 98f1992f9ce5cb9eb590bd50b42ce07e24c3b919 opw-4338150 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where spellcheck could target the wrong editable area in the web interface. Users editing rich text or editable content should now get spellcheck behavior in the intended place, with a test added to help prevent the issue from returning.
Original PR description
This commit fixes the wrong use of the contenteditable attribute inside the useSpellcheck implementation. Now, the isContentEditable attribute is used to find the right element. A test has been added too, using the contenteditable='true' attribute.
This fix prevents timing conflicts in stock picking guided tours, making the related automated checks more stable. It helps ensure stock workflows are tested consistently and reduces false failures during validation.
Original PR description
runbot task: 107888 and 109252 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users who cancel Razorpay authorization during payment provider setup are now safely returned to the provider form instead of seeing an error. This prevents a confusing failure during onboarding and makes the connection flow more reliable.
Original PR description
Version: - 17.0 Steps to reproduce: - Click on the Connect button, which redirects to the authentication wizard. - On the authorization page, click on the Cancel button. issue: - Clicking on the Cancel button does not return an authorization code, causing a traceback error. solution: - Added a condition to handle the Cancel action. If the user clicks Cancel, redirect to the provider form view without causing an error. opw-4377802
When customers filter their invoices in the portal and move between pages, their selected view now remains in place. This prevents confusion and extra clicks by keeping invoice lists consistent during pagination.
Original PR description
before this commit, when users applied a filter Invoice or Other in the My Invoices portal and then changed the page number, the selected filter was removed, resetting to the default view. This commit resolves the issue by ensuring the filterby parameter is preserved in the pager's url_args, allowing the selected filter to persist across pagination. opw-4367525
Editing a phone number in the website header no longer creates an invalid phone link when the number contains spaces. This keeps contact links working correctly for visitors and avoids broken links after website edits.
Original PR description
Since [1], the `tel://` protocol was adopted instead of `tel:`. However, URIs cannot contain space characters, which can lead to invalid URIs in certain cases.
Steps to reproduce:
- Open the website editor.
- Attempt to edit the phone number in the header.
- The URI becomes invalid due to the presence of a space character.
This commit resolves the issue by removing space characters from the URI, ensuring it remains valid.
[1]:
https://github.com/odoo/odoo/commit/6d4a3b3ab5c0f3361d1d681d05b974e295dcbabe
opw-4354614This fixes an issue where a website header color setting for overlay mode incorrectly affected the mobile navigation menu. Mobile visitors now see the intended menu text colors, improving readability and consistency across device previews.
Original PR description
Since commit [1], a new option was added to set the text color of the navbar in "over the content" mode. However, this option also affects the text color of the "mobile navbar", which it should not. This commit fixes the issue by stopping the "over the content" text color from applying to the mobile navbar. Steps to reproduce: - Enter "Website" edit mode. - Click on the "header". - Set the "Header Position" option to "Over The Content". - Select a "red" color in the colorpicker of the "Navbar" option. - Click the "Mobile Preview" button. - Click the "Hamburger menu" button to open the mobile navbar. - Bug: The text color is not "red". [1]: https://github.com/odoo/odoo/commit/1e30600d9e0e12e43fcbca60760a64f2551e3c8f opw-4364765
This update prevents the creation of quality checks when inventory is marked as 'Scrapped' within Odoo. Previously, a quality check was automatically generated after a 'Scrap' action, which was an unnecessary step. This change streamlines the process and ensures accurate inventory tracking.
Original PR description
Steps to reproduce the bug: - Create a storable product “P1.” - Set up a quality point: - Control Per: By operation - Operation: Receipts - Product: P1 - Create a receipt for two units of P1. - Mark the receipt as "To Do." - Click on "Quality Check" → Fail. - Click on action → Scrap: - Scrap 1 unit of P1. - Confirm. Problem: A quality check is created for the scrapped move. This should not happen. opw-4345679
This update resolves a technical error that prevented users from successfully splitting documents when scheduling activities within the Documents module. The fix ensures that document IDs are correctly included, allowing the splitting functionality to work as intended. This improves the reliability of document management workflows.
Original PR description
useEffect hook on pdf_manager generates file urls from documents ids, before this commit documents comming from activity view didn't have id key set. Reproduce --- - install document - open documents activity view, schedule an activity with a document (that is possible to split) - attempt to split the document -> Traceback opw-4163726
This update resolves an issue where deleting all stages from a helpdesk ticket kanban view resulted in a blank screen. The fix ensures that the correct data is displayed after stage deletion, improving the user experience. The problem stemmed from a validation oversight in the system.
Original PR description
Steps: - Create a new helpdesk team. - Open tickets of that team. - Delete all ticket stages Issue: - If all the stages are deleted then the blank screen appears instead of shadow data. Cause: - Only `helpdesk.ticket` was being validated, but `helpdesk.stage.delete.wizard` was not included in the check. Fix: - The issue has been fixed by replacing active_model with default_team_id. task-4290529
This update corrects a technical issue that caused a traceback error when users interacted with the bank reconciliation feature in Odoo Enterprise. The fix ensures that the system correctly handles user selections, preventing errors and improving the overall stability of the accounting process. This resolves a minor disruption for users.
Original PR description
Fixing a traceback when selecting text, because the t-on-click was triggered but the target had no attribute. task: 4260301 Forward-Port-Of: odoo/enterprise#74509
Steps to reproduce: - Enable 'Reception Report' in Inventory Configuration - Make an outgoing shipment for a storable product - Make an incoming shipment for that same product - Open the allocation report - Reload the page Issue: The context is lost when reloading the page, meaning that we lose the the `default_picking_ids`/`default_production_ids` in the context, making it unable to open the report. To avoid this, we add the key and values to the router (and thus the URL) so it can
Original PR description
Steps to reproduce: - Enable 'Reception Report' in Inventory Configuration - Make an outgoing shipment for a storable product - Make an incoming shipment for that same product - Open the allocation report - Reload the page Issue: The context is lost when reloading the page, meaning that we lose the the `default_picking_ids`/`default_production_ids` in the context, making it unable to open the report. To avoid this, we add the key and values to the router (and thus the URL) so it can be properly picked up when reloading the report. opw-4321072 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189560
Currently, if trying to take a screenshot results in an error the reporting is iffy: we end up with an uninformative and unexpected traceback along the lines of concurrent.futures: exception calling callback for <Future at 0x7f212c073110 state=finished raised ChromeBrowserException> Traceback (most recent call last): File "concurrent/futures/_base.py", line 340, in _invoke_callbacks callback(self) File "odoo/odoo/tests/common.py", line 1532, in handler
Original PR description
Currently, if trying to take a screenshot results in an error the reporting is iffy: we end up with an uninformative and unexpected traceback along the lines of concurrent.futures: exception calling…
Currently, if trying to take a screenshot results in an error the reporting is iffy: we end up with an uninformative and unexpected traceback along the lines of
concurrent.futures: exception calling callback for <Future at 0x7f212c073110 state=finished raised ChromeBrowserException>
Traceback (most recent call last):
File "concurrent/futures/_base.py", line 340, in _invoke_callbacks
callback(self)
File "odoo/odoo/tests/common.py", line 1532, in handler
base_png = f.result(timeout=0)['data']
^^^^^^^^^^^^^^^^^^^
File "concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
odoo.tests.common.ChromeBrowserException: Internal error
As this is mostly unhelpful, handle the thing better, and lower the concern to `RUNBOT`: giving prominence to the screenshot failure is probably less relevant than the actual reason why we tried to take a screenshot in the first place?
Forward-Port-Of: odoo/odoo#189585Steps to reproduce: - Remove all Expenses access rights from the user "Marc Demo." - Create a new expense and generate a report from it. - Attempt to change the state to "reported" using an API, server action, or browser extension. Issue: You will be blocked to do so Cause: there must have been a confusion with the state available for `hr.expense` model https://github.com/odoo/odoo/blob/063e224c17c0e0194e5ade6acbe82ff38a669b54/addons/hr_expense/models/hr_expense.py#L90-L95 and the
Original PR description
Steps to reproduce: - Remove all Expenses access rights from the user "Marc Demo." - Create a new expense and generate a report from it. - Attempt to change the state to "reported" using an API, server action, or browser extension. Issue: You will be blocked to do so Cause: there must have been a confusion with the state available for `hr.expense` model https://github.com/odoo/odoo/blob/063e224c17c0e0194e5ade6acbe82ff38a669b54/addons/hr_expense/models/hr_expense.py#L90-L95 and the `hr.expense.sheet` model https://github.com/odoo/odoo/blob/063e224c17c0e0194e5ade6acbe82ff38a669b54/addons/hr_expense/models/hr_expense.py#L973-L979 => 'submit' does not exist in hr.expense -> it is reported opw-4278187 Forward-Port-Of: odoo/odoo#189041
Versions -------- - 16.0+ Steps ----- 1. Schedule the "Calendar: Event Reminder" to run once a day; 2. create an event that started 2 hours ago, and ended 1 hour ago; 3. run the event reminder cron. Issue ----- A reminder email is sent, event though the event has passed. Cause ----- The alarm manager doesn't check whether the reminders it sends are still relevant. Solution -------- 16.0: - When querying events to send reminders for, ensure their `stop` date is before
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Schedule the "Calendar: Event Reminder" to run once a day; 2. create an event that started 2 hours ago, and ended 1 hour ago; 3. run the event reminder cron. Issue ----- A reminder email is sent, event though the event has passed. Cause ----- The alarm manager doesn't check whether the reminders it sends are still relevant. Solution -------- 16.0: - When querying events to send reminders for, ensure their `stop` date is before the current time. 17.0+: - As past events may need to be queried to set up recurrence reminders, only filter them out when gathering attendees to send an immediate email. opw-4191612 Forward-Port-Of: odoo/odoo#189340
Before this commit: - The `::before` pseudo-element had `width: -webkit-fill-available` and `width: -moz-available`, causing it to span the entire width of its container. - Its `z-index: 100` made it overlap with other elements, preventing interaction with underlying elements. After this commit: - `pointer-events: none` was applied to the pseudo-element. - This allows interactions with underlying elements while retaining the visual styling. task-4313526 --- I confirm I have sig
Original PR description
Before this commit: - The `::before` pseudo-element had `width: -webkit-fill-available` and `width: -moz-available`, causing it to span the entire width of its container. - Its `z-index: 100` made it overlap with other elements, preventing interaction with underlying elements. After this commit: - `pointer-events: none` was applied to the pseudo-element. - This allows interactions with underlying elements while retaining the visual styling. task-4313526 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187915
In commit [1], we introduced a "data-forced-size" attribute on "image shapes" SVGs to adjust SVGs height to ensure the image fits properly within it (e.g. for "devices" shapes). However, the "image_shape" route was not updated to match this change, preventing the use of predefined building blocks containing an image shape with a "forced-size" attribute. This commit updates the "image_shape" route to support the "data-forced-size" attribute. [1]: https://github.com/odoo/odoo/commit/
Original PR description
In commit [1], we introduced a "data-forced-size" attribute on "image shapes" SVGs to adjust SVGs height to ensure the image fits properly within it (e.g. for "devices" shapes). However, the "image_shape" route was not updated to match this change, preventing the use of predefined building blocks containing an image shape with a "forced-size" attribute. This commit updates the "image_shape" route to support the "data-forced-size" attribute. [1]: https://github.com/odoo/odoo/commit/63cf8a693a5262600d465d70f0383229464d71e7 task-4094393 Forward-Port-Of: odoo/odoo#189156