Monday, December 9, 2024
28 changes · 18.0
Resolved issues and error corrections
Emoji reactions in Mail are now styled so reactions from others are less visually prominent in dark theme. This makes it easier for users to distinguish their own highlighted reactions while keeping the light theme unchanged.
Original PR description
When message has emoji reactions, they have slightly different visual whether the current user has reacted or not: When the user has reacted, this is highlighted. This works great in white them, but in dark theme the non-self reacted visual was more highlighted, which goes against the intend of highlighting self-reactions more. The problem is that non-self reactions are too distracting in dark theme, which isn't the case in white theme, This comes from borders being too visible. The color of default `border` is too much in dark theme. This commit fixes the issue by using `border-secondary`, which has reduced opacity in dark theme. In white theme, this is unchanged. Before <img width="868" alt="Screenshot 2024-12-09 at 13 03 23" src="https://github.com/user-attachments/assets/963f6b65-a280-4be9-b15f-8a1cdbd562a5"> After <img width="864" alt="Screenshot 2024-12-09 at 13 03 31" src="https://github.com/user-attachments/assets/5c43b705-d750-4370-af5b-2f3ab3dac51e">
This fixes an issue where installing batch picking could unintentionally change the appearance of empty-screen messages across Odoo. The styling is now limited to the intended stock batch and fleet views, keeping other screens visually consistent.
Original PR description
**[FIX] stock_{picking_batch,fleet}: scope no content helper**
Since [1], a CSS rule was changing the size of all the no content
helpers throughout Odoo when `stock_picking_batch` was installed.
This commit fixes that by scoping the rule to its original intent.
opw-4370026
[1]: https://github.com/odoo/odoo/commit/06d1d48199ccfc79a80aea314f75d649b3149dba#diff-87ad06e3496be4ac6761b7052a11d9e9f1464e291d305405aae839f1a4d2ba9cR1
---
In order to achieve this, we needed to add support for the class attribute for graph and pivot views. It is only a matter of RNG validation as the code already support the parsing of the `class` attribute. The following commit is therefore added:
**[FIX] base,web: class attr for `<graph/>` & `<pivot/>`**
Before this commit, the class attribute for `<graph/>` and `<pivot/>` views
was not allowed.
As there is no valid reason not to do so, this commit now allows it.Spellcheck indicators in the Odoo HTML editor now appear only when the user is actively focused on the editor. This keeps red spelling underlines from staying visible in places where rich text content is being viewed but not edited, making screens cleaner and less distracting.
Original PR description
This commit fixes the behavior of spellcheck on the WYSIWIG component, which previously enabled this only on focus. Since we use this element in many scenarios accross Odoo, we don't want red lines to keep their visibility all the time, when the WYSIWIG is not directly focused. ~~A test has been introduced, since the contenteditable attribute was not correctly accessed by the hook.~~
This fix updates an internal website editor test so it matches the allowed customization behavior for button styles. It helps keep quality checks active for the website editor and reduces the risk of regressions in future updates.
Original PR description
In this commit, we fix the test_tour in order to reactivate it from v18. The probleme that is fixed in this commit is that we can't customize a "secondary" button in the sidebar of web editor tools but it is allowed with "custom" button. runbot-error-id~109213 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 fix makes an automated online shop test wait for the page address to fully update before checking it. It reduces false test failures, helping teams trust release checks without changing the customer shopping experience.
Original PR description
In this commit, we fix a undeterministic behavior about check the pathname of window in function assertPathName. In this function, we check the url of the window but the url can changes few ms after the DOM has been loaded. So the check can occurs after the DOM has been loaded. To avoid this behavior, we wait for the pathname instead of check it direclty. runbot-error-id~70316
The Knowledge app now lets users create new records from externally embedded views without hitting an error. This restores expected behavior for teams using embedded Knowledge views and prevents interruptions when adding content.
Original PR description
This commit fixes an issue with the external embedded views in Knowledge where the `New` button would raise a traceback. The issue was introduced in the big Knowledge refactor via #67083. This was caused by the action service when the doAction was called inside the createRecord of the ReadonlyEmbeddedViewComponent. The views returned by the find method called upon the action's views array were always undefined. This meant that we never found the correct view to use which raised the traceback. To fix this, the arrow function given to the find method has been updated so that it returns a correct value. task-4367683
The Documents app now silently handles cases where a document access link is used after the document has already been deleted. This prevents confusing “missing record” messages and keeps document cleanup flows smooth for users.
Original PR description
The goal of this commit is to avoid getting an error message when using the /documents/touch/ route for an access_token that no longer exists. This bug was detected in the document_delete_tour where this route is used when the document has already been deleted. This caused a "missing record" message to appear. This commit fixes this behavior.
Dragging a document shortcut to My Drive now places it in My Drive instead of leaving it in the original folder. This makes document organization behave as users expect and reduces confusion when moving shortcuts.
Original PR description
**Before this PR**: Dragging a shortcut to My Drive would create the shortcut within the current folder. **After this PR**: The shortcut will be created in My Drive, rather than remaining in the original folder. **Task**-4313298
A timing issue in the document deletion flow was corrected so the automated deletion check waits for recent access tracking before removing items. This helps keep document deletion behavior reliable and prevents false failures in quality checks.
Original PR description
The logAccess method is a debounce function with a 1000ms delay, which is a good idea to avoid flooding the network in case a user clicks incessantly in the browser. The bug identified in the document_delete_tour tour is that this method is called AFTER the selected item has been deleted... only because of this "debounce". The tour engine is faster than the 1 second it takes µfor the debounce to be executed BEFORE the deletion of the selected document(s). The solution is therefore that this debounce is directly executed when the document deletion modal opens.
Miscellaneous changes
Return newly created leaves after calling `hr.leave._split_leaves()` to improve inheritability by other modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187633 Forward-Port-Of: odoo/odoo#186948
Original PR description
Return newly created leaves after calling `hr.leave._split_leaves()` to improve inheritability by other modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187633 Forward-Port-Of: odoo/odoo#186948
Current behaviour: --- When you make content of type article in eLearning, then add an animation on scroll on an element, when you put the article in fullscreen, the animations do not trigger. Steps to reproduce: --- 1. Go to eLearning 2. Select a course with articles 3. Click on Go to website 4. Go on the article content 5. Open the editor 6. Drag and drop the columns block at the end 7. Select "feature one" and add an animation on scroll 8. After saving, scroll, the animation wo
Original PR description
Current behaviour: --- When you make content of type article in eLearning, then add an animation on scroll on an element, when you put the article in fullscreen, the animations do not trigger. Steps…
Current behaviour: --- When you make content of type article in eLearning, then add an animation on scroll on an element, when you put the article in fullscreen, the animations do not trigger. Steps to reproduce: --- 1. Go to eLearning 2. Select a course with articles 3. Click on Go to website 4. Go on the article content 5. Open the editor 6. Drag and drop the columns block at the end 7. Select "feature one" and add an animation on scroll 8. After saving, scroll, the animation works 9. Click on "Fullscreen" 10. Scroll again, animation doesn't trigger Cause of the issue: --- In website_slide, fullscreen mode, the right scrollable element is not `#wrapwrap`, but `.o_wslide_fs_article_content` Note: --- If the animation is not complete, but the page is scrolled at maximum, animation intensity can be lowered in the editor panel, so that the animation can finish earlier. opw-4151770 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#184717
In a list view, first manually resize a column. Doing so, the table can either overflow (if the column has been extended), or be smaller that the available space. Then, resize the page. Before this commit, the table kept is previous width, i.e. it could not benefit from the potential available space that came from resizing the window. With this commit, we force the whole widths computation to be reset after a window resize. Followup of https://github.com/odoo/odoo/pull/170511 opw~4318312
Original PR description
In a list view, first manually resize a column. Doing so, the table can either overflow (if the column has been extended), or be smaller that the available space. Then, resize the page. Before this commit, the table kept is previous width, i.e. it could not benefit from the potential available space that came from resizing the window. With this commit, we force the whole widths computation to be reset after a window resize. Followup of https://github.com/odoo/odoo/pull/170511 opw~4318312 task~4221195 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#189875
In migration and init scripts, when loading the chart of accounts or parts of it, we should always start with the parent companies to avoid creating duplicate chart records.This [file](https://github.com/odoo/odoo/pull/180029/commits/7b6fb92891e58c3d1de1cb9bd9b4c28354ba6f92) was merged last week. comm PR odoo/odoo#182706 ent PR odoo/enterprise#71421 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I co
Original PR description
In migration and init scripts, when loading the chart of accounts or parts of it, we should always start with the parent companies to avoid creating duplicate chart records.This [file](https://github.com/odoo/odoo/pull/180029/commits/7b6fb92891e58c3d1de1cb9bd9b4c28354ba6f92) was merged last week. comm PR odoo/odoo#182706 ent PR odoo/enterprise#71421 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#183731
Versions -------- - 16.0+ Steps (18.0+) ------------- 1. Enable credit limits via Accounting settings; 2. log in as a user with access to Sales but not Accounting; 3. create a Sales Order; 4. add a product. Issue ----- Access Error. Cause ----- Commit de302c2 changed the way company dependent fields are handled. Instead of computing them via `_compute_company_dependent`, they are now stored in the database. Before this this change, any `groups` restriction added to a field
Original PR description
Versions -------- - 16.0+ Steps (18.0+) ------------- 1. Enable credit limits via Accounting settings; 2. log in as a user with access to Sales but not Accounting; 3. create a Sales Order; 4. add a product. Issue ----- Access Error. Cause ----- Commit de302c2 changed the way company dependent fields are handled. Instead of computing them via `_compute_company_dependent`, they are now stored in the database. Before this this change, any `groups` restriction added to a field wasn't actually checked. After this change, it does get checked, leading to the access error. Solution -------- 1. Use `sudo` to access `partner_id.credit`. 2. When calling the `_build_credit_warning_message`, pass the sales order with `sudo`. opw-4367393 Forward-Port-Of: odoo/odoo#189970 Forward-Port-Of: odoo/odoo#189209
Currently, a traceback occurs when the user changes the SMS iap URL and tries to test SMS mailing. To reproduce this issue: 1) Install `mass_mailing_sms` 2) Add 'B' in the SMS `IAP` URL from the `settings/technical/iap` 3) Open any SMS marketing record and click on the `Test` button Error:- ``` ValueError: unsupported format character 'B' (0x42) at index 152 ``` When the user gives the 'B' in the URL string, it is converted to `%B%` in the URL. As it leads to a traceback as `%s
Original PR description
Currently, a traceback occurs when the user changes the SMS iap URL and tries to test SMS mailing. To reproduce this issue: 1) Install `mass_mailing_sms` 2) Add 'B' in the SMS `IAP` URL from the `settings/technical/iap` 3) Open any SMS marketing record and click on the `Test` button Error:- ``` ValueError: unsupported format character 'B' (0x42) at index 152 ``` When the user gives the 'B' in the URL string, it is converted to `%B%` in the URL. As it leads to a traceback as `%s` is used to format two strings. https://github.com/odoo/odoo/blob/a98a8859696f5a69afe2954a3f5493b611ee252b/addons/sms/tools/sms_api.py#L59 This error occurs when using the old-style string formatting (%s) within an f-string. When using f-strings, we don't need to mix them with the % formatting method. We can replace the `%` formatting with the `format` method. sentry-6072287605 Forward-Port-Of: odoo/odoo#187827
Steps to reproduce: - Open the Notes/To-Do App. - Type some content in the document. - On a new line, insert a table. - Resize the table so there is blank space on its right side. - Select some content and the entire table, ensuring the mouse pointer ends up in the blank space on the right side of the table. - Press `Ctrl + C` - A traceback error occurs. Description of the issue/feature this PR addresses: When selecting content with mouse and ending pointer in empty space to righ
Original PR description
Steps to reproduce: - Open the Notes/To-Do App. - Type some content in the document. - On a new line, insert a table. - Resize the table so there is blank space on its right side. - Select some content and the entire table, ensuring the mouse pointer ends up in the blank space on the right side of the table. - Press `Ctrl + C` - A traceback error occurs. Description of the issue/feature this PR addresses: When selecting content with mouse and ending pointer in empty space to right of a table, pressing Ctrl+C triggers `onCopy`. It tries to clone the closest element of endContainer as a table, but if `closestElement` is not a table, it causes a traceback. Desired behavior after PR is merged: The traceback no longer occurs when copying a selection near a table. task-4357182 Forward-Port-Of: odoo/odoo#189416 Forward-Port-Of: odoo/odoo#188758
Release notes: https://github.com/odoo/owl/releases/tag/v2.5.2 Forward-Port-Of: odoo/odoo#189448 Forward-Port-Of: odoo/odoo#189410
Original PR description
Release notes: https://github.com/odoo/owl/releases/tag/v2.5.2 Forward-Port-Of: odoo/odoo#189448 Forward-Port-Of: odoo/odoo#189410
…anges In previous commit [1], we made changes to handle better the invoicing address partner and the commercial partner. This broke facturx constraints. [1]: https://github.com/odoo/odoo/commit/053c6de8e48ff3fea469531cf32352d88111469e task-no Forward-Port-Of: odoo/odoo#189907
Original PR description
…anges In previous commit [1], we made changes to handle better the invoicing address partner and the commercial partner. This broke facturx constraints. [1]: https://github.com/odoo/odoo/commit/053c6de8e48ff3fea469531cf32352d88111469e task-no Forward-Port-Of: odoo/odoo#189907
The DIN 5008 layout was not properly addressing reports on invoices and delivery slips. On invoices/pro-forma, the reports were not addressed to the correct partners (commercial partner instead of invoice partner). In the delivery slips the reports were not addressed to the delivery partner. This led to functionally and legally incorrect reports. task-4089521 Forward-Port-Of: odoo/odoo#189951 Forward-Port-Of: odoo/odoo#183775
Original PR description
The DIN 5008 layout was not properly addressing reports on invoices and delivery slips. On invoices/pro-forma, the reports were not addressed to the correct partners (commercial partner instead of invoice partner). In the delivery slips the reports were not addressed to the delivery partner. This led to functionally and legally incorrect reports. task-4089521 Forward-Port-Of: odoo/odoo#189951 Forward-Port-Of: odoo/odoo#183775
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 Forward-Port-Of: odoo/odoo#189757 Forward-Port-O
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 Forward-Port-Of: odoo/odoo#189757 Forward-Port-Of: odoo/odoo#189526
**Current behavior:** Enabling the "Display Lots & Serial Numbers on Delivery Slips" setting, then creating an RFQ for a product with lot/SN tracking and a reference (`default_code`) + receiving the product, and finally printing the delivery slip will result in the product display name appearing twice on the delivery slip. **Expected behavior:** One time, the name. **Steps to reproduce:** 1. Enable "Display Lots & Serial Numbers on Delivery Slips" 2. Create a SN/Lot tracked product w
Original PR description
**Current behavior:** Enabling the "Display Lots & Serial Numbers on Delivery Slips" setting, then creating an RFQ for a product with lot/SN tracking and a reference (`default_code`) + receiving the product, and finally printing the delivery slip will result in the product display name appearing twice on the delivery slip. **Expected behavior:** One time, the name. **Steps to reproduce:** 1. Enable "Display Lots & Serial Numbers on Delivery Slips" 2. Create a SN/Lot tracked product with a reference 3. Create a purchase order, confirm and receive the product 4. On the receipt, click the `Print` button -> 2x name **Cause of the issue:** `description != move_line.product_id.name">` Won't ever be true if there is a reference, as the description at this point is like: `product_id.default_code + product_id.name` **Fix:** Compare description to the `display_name` which will include this kind of extra stuff. opw-4165301 Forward-Port-Of: odoo/odoo#188078
*: l10n_account_edi_ubl_cii_tests Previously, we always set code 30 "Credit transfer" for both customer invoices and credit notes. When you set this code to 30, the UBL rule BR-61 [1] fail if you don't set the payee's bank account number. It's not handy to be forced to set the bank account number while we don't really know if the payment will happen through credit transfer at this stage. We now set code 57 "Standing agreement" for refunds, which seems more general and still a valid meth
Original PR description
*: l10n_account_edi_ubl_cii_tests Previously, we always set code 30 "Credit transfer" for both customer invoices and credit notes. When you set this code to 30, the UBL rule BR-61 [1] fail if you don't set the payee's bank account number. It's not handy to be forced to set the bank account number while we don't really know if the payment will happen through credit transfer at this stage. We now set code 57 "Standing agreement" for refunds, which seems more general and still a valid method. [1]: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-61/ task-no Forward-Port-Of: odoo/odoo#189549
Steps to reproduce: 1. Have a VAT number (or company registry) with dots (e.g.: BE1234.678.28) 2. Import a valid SODA file with the same VAT number 3. Error: "The imported document doesn't seem to correspond to this company's VAT number nor company id" Why it happens: This happens because the regex was taking only the first matching group (1234 in the example above). Solution: Instead of searching the first group of the regex, we can subtract all chars and only keep digits to have a v
Original PR description
Steps to reproduce: 1. Have a VAT number (or company registry) with dots (e.g.: BE1234.678.28) 2. Import a valid SODA file with the same VAT number 3. Error: "The imported document doesn't seem to correspond to this company's VAT number nor company id" Why it happens: This happens because the regex was taking only the first matching group (1234 in the example above). Solution: Instead of searching the first group of the regex, we can subtract all chars and only keep digits to have a valid Belgian VAT number that can be used when checking correspondence between the company VAT and the imported SODA file VAT. opw 4347926 Forward-Port-Of: odoo/enterprise#75297 Forward-Port-Of: odoo/enterprise#75111
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 Forward-Port-Of: odoo/enterprise#75243 Forward-Port-Of: odoo/enterpr
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 Forward-Port-Of: odoo/enterprise#75243 Forward-Port-Of: odoo/enterprise#75160
CSS problem with currency symbol in the monetary field amount, when being on the reconciliation widget, click on a statement and then try to match an existing entries. When clicking on this line, the currency of the amount in the manual operations page was in the amount. task: 4260301 Forward-Port-Of: odoo/enterprise#74511
Original PR description
CSS problem with currency symbol in the monetary field amount, when being on the reconciliation widget, click on a statement and then try to match an existing entries. When clicking on this line, the currency of the amount in the manual operations page was in the amount. task: 4260301 Forward-Port-Of: odoo/enterprise#74511
Steps to reproduce ================== - Open any form view - Drag and drop a new html field at the start of the form view => It goes to the bottom Cause of the issue ================== The generated xpath was `<xpath expr="//form[1]/sheet[1]" position="inside"/>` This puts the new element at the end of the sheet Solution ======== If we want to insert something at the start of the sheet, we need to put it before it's first child. If the sheet is empty, we can use inside like p
Original PR description
Steps to reproduce ================== - Open any form view - Drag and drop a new html field at the start of the form view => It goes to the bottom Cause of the issue ================== The generated xpath was `<xpath expr="//form[1]/sheet[1]" position="inside"/>` This puts the new element at the end of the sheet Solution ======== If we want to insert something at the start of the sheet, we need to put it before it's first child. If the sheet is empty, we can use inside like previously opw-4339407 Forward-Port-Of: odoo/enterprise#75323 Forward-Port-Of: odoo/enterprise#75276
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#74957 Forward-Port-Of: odoo/enterprise#74509
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#74957 Forward-Port-Of: odoo/enterprise#74509
Steps to reproduce =================== - Open the resource schedule, and go into day mode. - Switch to tomorrow, and click new. - The start date has been changed but not the end date, which is still now +duration. - Which creates a default duration of `-23:00 hours`. Second issue: - Open the resource type appointment and then create the booking from the Gantt view using the new button. - We get the wrong appointment type there. Technical =========== - Earlier, the stop was c
Original PR description
Steps to reproduce =================== - Open the resource schedule, and go into day mode. - Switch to tomorrow, and click new. - The start date has been changed but not the end date, which is still…
Steps to reproduce =================== - Open the resource schedule, and go into day mode. - Switch to tomorrow, and click new. - The start date has been changed but not the end date, which is still now +duration. - Which creates a default duration of `-23:00 hours`. Second issue: - Open the resource type appointment and then create the booking from the Gantt view using the new button. - We get the wrong appointment type there. Technical =========== - Earlier, the stop was calculated based on the current time instead of `start` in the default_stop. we set stop datetime inside `onAddClicked` by default to start + 1 hour to override the calendar.event's default_stop. - Earlier, we fell into the condition of fetching only the user appointment when we were not providing any resources inside the default_get method, which led to having the user-based appointment instead of the resource-based one. Here, we added a separate condition to fetch the resource-based when going through the action of resource gantt. After this PR =================== - This PR addresses the issue and fixes it by adding the default stop for 1 hour after the start time and assigning the correct appointment type. Task-4330924 Forward-Port-Of: odoo/enterprise#74883 Forward-Port-Of: odoo/enterprise#74144