Daily updates from Odoo
Wednesday, May 8, 2024
35 changes · 17.0
Security fixes and vulnerability patches
This update strengthens privacy controls in the Calendar module by preventing administrators who aren't invited to private events from viewing sensitive event details. Additionally, only event attendees can now edit event information, preventing unauthorized modifications. This ensures that private calendar events remain truly private regardless of user permissions.
Original PR description
Before this commit, through the list view and form view, private events were being accessed by administrators who were not invited to those private events. These events should have their sensitive…
Before this commit, through the list view and form view, private events were being accessed by administrators who were not invited to those private events. These events should have their sensitive fields hidden. Additionally, uninvited users could edit public events information since they are editable in the event form view. After this commit, we filter the sensitive fields from private events through the _fetch_query method even when the current user has group "Settings", or is in superuser mode: thus uninvited administrators won't be able to read the private event's sensitive information anymore. After hiding the private event information, the values are also updated in the cache. This override covers overs all variations of read(), search_read() and export_data() regarding securing the event private information. Additionally, the form view is now more strict regarding the editing of events for users that are not event attendees: for them, the event fields are now readonly. task-3837646 Forward-Port-Of: odoo/odoo#164788 Forward-Port-Of: odoo/odoo#159913
Enhancements to existing features
The "Value at Import" section in the asset page is now visible to all users by default, instead of only appearing in debug mode. This improvement makes it easier for users to access and view important asset depreciation information without needing to enable debug mode.
Original PR description
[IMP] account_asset: Set Depreciated group in assets visible Issue: Currently, The VALUE AT IMPORT section in asset page is only visible in the debug mode which make the users walk in cycles trying to get the advantage of this section but it's not actually visible Solution: Make it the group visible by default Task-3891744 Forward-Port-Of: odoo/enterprise#61429
This improvement adds a confirmation warning when users click the cancel button on transfers (stock pickings) or manufacturing orders. This prevents accidental cancellations of important operations, which are difficult to reverse. Users will now see a confirmation dialog before any cancellation is processed.
Original PR description
Description of the issue/feature this PR addresses: This PR aims to address the issue where the cancel buttons (on transfer and MO) are prone to accidental presses due to their proximity. Currently,…
Description of the issue/feature this PR addresses: This PR aims to address the issue where the cancel buttons (on transfer and MO) are prone to accidental presses due to their proximity. Currently, pressing the cancel button immediately cancels the transfer or MO. Current behavior before PR: Pressing the cancel button results in immediate cancellation of the transfer or MO. Desired behavior after PR is merged: After merging this PR, Odoo will prompt for confirmation when the cancel button on a transfer or MO is pressed. This will help prevent accidental cancellations. Additionally, the confirmation warning should always be present for both cancel buttons on the MO to ensure consistency. See below attached for a confirmation message: On transfer,  On MO,  --- I confirm I have signed the CLA and read the PR guidelines at [submit-pr](www.odoo.com/submit-pr)
This update allows anyone to preview exhibitor information on upcoming events, not just registered attendees, increasing exhibitor visibility. The changes also fix broken exhibitor images, improve the handling of missing profile information, and refine the layout of registration buttons for a more polished user experience.
Original PR description
- Allow anyone to preview the exhibitor description on events that have not started yet (not only registered people) - Fix/improve the handling of exhibitors missing a profile image or description (don't display broken images/"false") - touch up the layout of registration buttons to be more standard --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
Fixed a bug where users received false warnings about including links when sharing document folders, even when no URL-type documents were actually being shared. The system now correctly counts shared links by using tag filters, preventing unnecessary alerts and confusion during the sharing process.
Original PR description
Reproducing: 1. Use a folder with one `binary` and one `url`-type documents. 2. Add a tag on the `binary` one. 3. Check the tag in the search panel 4. Share the folder Problem: You are warned about having included a link in the share, but you had not. Note that this domain is not the one used to identify the records that will be included in the share (stored in `domain`). Task-3806121
This fix prevents the CodaBox module from overwriting an accounting firm that is already assigned to a Belgian company during demo installation. Now the system checks if an accounting firm is already set before making any changes, preserving existing configurations.
Original PR description
Previous to this commit, in demo, when installing CodaBox, if a Belgian company already had an accounting firm set, it was overriden by a new one. This commit fixes this by checking if the Belgian company already has an accounting firm set. If so, we do not modify it. task-id: none
When creating a new task in the Field Service calendar view, the start date selected by the user was being overwritten with an incorrect default date. This fix ensures that the user's selected start date is properly saved when creating a task from the calendar.
Original PR description
Currently, when creating a task from the calendar view in the field service app, the start date that was set by the user is not registered. Steps to reproduce: ------------------- * Go to the **Field…
Currently, when creating a task from the calendar view in the field service app, the start date that was set by the user is not registered. Steps to reproduce: ------------------- * Go to the **Field Service** App * Switch to the calendar view * Select "Tomorrow" (x+1) * For the new task, set the `Planned Date` as follows: * Start date : The day after tomorrow at 3PM (x+2 3PM) * End date: Three days after the start at 4PM (x+5 4PM) * Fill anything for the other required fields > **Save & Close** * Switch to the kanban view and select the task created > Observation: the start date of `Planned Date` is set at Tomorrow 7AM instead of the day after at 3PM Why the fix: ------------ This behavior was introduced after this commit: https://github.com/odoo/enterprise/commit/39b9362d0469d71b59d47e9d66d5e73b9a46520b. This commit added an inverse method to the field `planned_date_start` to enable drag and droping tasks in the calendar view. And `planned_date_start` is a field that exists purely for calendar displaying of tasks. https://github.com/odoo/enterprise/blob/c8c4a52b508621b45239332273832de26a085931/project_enterprise/models/project_task.py#L299-L305 When creating a task in the calendar view, the context contains `default_planned_date_start` and its value depends on the first day you selected in the calendar. At task creation, `default_planned_date_start` triggers a write in `planned_date_start` which triggers its inverse method. This removes the `default_planned_date_start` from the context which won't trigger the inverse method. We don't have to worry about the line `default_planned_date_begin: default_planned_date_start,` as if we have selected a start date in the form, it will be present inside `vals_list` in the create function and will use that value instead of the one in the context. opw-3850455
This fix prevents an infinite email loop that occurred when security systems (like MS Defender) automatically clicked links in signing request emails and removed URL parameters. The system now properly validates signing requests before showing expiry messages, stopping bots from repeatedly triggering resend actions that generated massive unwanted emails.
Original PR description
Before this PR, the sign_request record was browsed but we did not checked if the record was correct.
Before this PR, when the sign_document_from_mail controller was
called without timestamp parameter, it would redirect to the
sign.sign_request_expired template because
current_request_item._validate_expiry(post.get('timestamp'),
post.get('exp')) would return False.
For human triggered interaction, it is not an issue.
Some customer complained of massive email sent. One of the signer is
probably relying on MS Defender. This is system is known to click on
links in email and cleaning the GET parameters of the URL.
In that case, the bot will get the sign.sign_request_expired which has a
button that allows to resend the sign request. If the bot click on that
button, it will send an email, that will be analyzed by the bot. it will
clean the parameters, get the sign.sign_request_expired template etc
etc.This fix resolves an issue where vehicle information was incorrectly remaining on tax lines in bills even after being removed. When editing a bill line to remove the associated vehicle, the tax line would still retain the vehicle reference, causing data inconsistency. This update ensures that removing a vehicle from a line properly clears it from all related tax lines.
Original PR description
Create a Bill Add on a new line tax and vehicle Save Edit line > Remove vehicle Save Issue: tax line will still have the vehicle set opw-3790136 Forward-Port-Of: odoo/enterprise#58834
Fixed an issue in the VoIP softphone where search results for contacts, activities, and calls weren't appearing until the user pressed Enter. The search bar now updates and displays results immediately as you type, providing a faster and more responsive user experience.
Original PR description
When typing in the softphone's search bar, the search result doesn't appear immediately; the user has to press Enter to make it happen. This is because the input field uses the t-model directive with the trim modifier. The trim modifier silently switches the directive to lazy mode, meaning that the content of the field is updated whenever the onchange event is fired instead of oninput. This commit removes the trim modifier to fix the problem. opw-3890028
Users can now centralize Bank and Cash journal documents in the Documents app, just like other journal types. Previously, these journal types were restricted from the Documents bridge without clear business justification. Access controls can manage any sensitive information concerns.
Original PR description
Before this commit, users were not allowed to activate the bridge to the documents app to work on Bank and Cash journals. This commit allows Bank and Cash journal documents to be centralized the same way other journals are. There does not seem to be particular reason about excluding Bank and Cash journals from the documents bridge. The potential of showing unwanted bank account numbers in a general repository can always be managed by other means such as access rights. The exclusion was added in this PR https://github.com/odoo/enterprise/pull/10141 but it seems unnecessary and needs to be removed. task-3839839
This fix resolves a display issue where document names were being truncated with "..." when locked in the kanban view. The problem was caused by duplicate text-overflow styling being applied to the document name field. By removing the redundant CSS class, document names now display correctly without unwanted truncation.
Original PR description
Issue ----- The document name is replaced by `...` on the kanban card when the name is too long and locking the document. Steps to reproduce ------------------ - Install `documents` module - Click on any document card to open the right sidebar - Change the document name to a very long one (Should display `...` at the end of name on the card) - Click on the lock icon in the sidebar to lock the document Cause ----- There is a `o_text_overflow` CSS class on the field that use `text-overflow` while a parent also use it(`o_kanban_record_title`). Note: No issue before v16.0 because it seems that the renderer get ride of any extra class on a text field in the kanban view. Solution -------- Remove the extra `o_text_overflow` CSS class from the field. opw-3829011 Forward-Port-Of: odoo/enterprise#62025 Forward-Port-Of: odoo/enterprise#60052
Avatax, the electronic invoice service provider, updated their API requirements for payment methods. This fix adjusts how Odoo handles payment method integration to comply with the new requirements, ensuring that Brazilian electronic invoices continue to process correctly without disruption to your invoicing workflow.
Original PR description
Avatax support confirmed to us that they now require a modeDescription for "Other" payment methods. There are other required attributes we can't easily add, so instead we change the cardTpIntegration type to one that doesn't need these new attributes. opw-3915009
This update fixes a visual issue in the course quiz creation feature where the Save and Cancel buttons were displayed too close together. A small margin has been added between the buttons to improve the user interface and make the buttons easier to click.
Original PR description
Steps to reproduce 1. Go to course. 2. Add a content 3. Select quiz content then Add a question, Issue: There was no space between the Save and Cancel buttons. fix: Add the margin-left on the button. Task:3848282
This fix ensures that the UAE-specific VAT amount field is only displayed when users are working with United Arab Emirates companies. Previously, the field was incorrectly visible for users in other countries (such as Belgium) when the UAE localization module was installed. This prevents confusion and ensures the interface shows only relevant fields for each company's location.
Original PR description
The field l10n_ae_vat_amount is not hide if the user is connected with a company in another country. For exemple, if you are connected with a BE company with the l10n_ae module installed, the field was visible. Now the field is only visible for the AE companies. task-3877935
Fixed a bug that caused the website search box to crash when users tried to edit it in the page editor. The search box is now marked as non-editable to prevent this error from occurring, ensuring a smoother experience when managing website content.
Original PR description
This traceback occurs when the user tries to edit the website searchbar To reproduce this issue:- 1) Install `website_sales` 2) open `website` and click on the `search icon` 3) A `website search box` will popup 4) Now open the `editor` and try to change the `inline text` 5) Save the record 6) A traceback appears Error:- ``` ValueError: not enough values to unpack (expected 1, got 0) ``` The issue is occurring because on `web search box` we are getting section_xpath - `/data/xpath[3]/form/t[1]/div[1]/button[1]/i[1]` and we are not getting any value in root from this `section_xpath` over here - https://github.com/odoo/odoo/blob/cdedc1752b845bed9acc0dd4bfeb4b343b675326/addons/web_editor/models/ir_ui_view.py#L121 To fix this issue `o_not_editable` class has been used on that website search bar sentry-3933794130
This update removes unnecessary country code prefixes from Uruguay state identifiers. Since these state codes only appear when Uruguay is selected as the country, the "UY-" prefix is redundant and has been removed to simplify the data and improve user experience.
Original PR description
Description of the issue/feature this PR addresses: It is not necessary to put the UY- at the beginning because they only appear if the country is Uruguay Task: 88 Task in adhoc: 6022 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 ensures that when a contract is archived, the employee's form view correctly updates to show the current active contract. Previously, the system wasn't recognizing when a contract became inactive, causing the employee record to display outdated contract information. This improves data accuracy in HR management.
Original PR description
Issue: When archiving a contract the employee form view does not update the first contract. Cause: The first contract computation is not trigger when archiving a contract. expected behavior: When archiving a contract the first contract should be recomputed. Fix: Add the active field to the depends method of the contract. task-3745594 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163737 Forward-Port-Of: odoo/odoo#158366
Fixed crashes that occurred when searching for messages containing single quotes (like "can't") or round brackets (like "("). The system was not properly escaping these special characters in search queries, causing the search feature to fail. This update ensures users can now search for any message content without encountering errors.
Original PR description
Before this commit, when trying to highlight a message containing a single quote you get a traceback.
To reproduce:
- post a message with body "can't"
- search for "can"
- search for "can't"
This happens because the XPath expression with unescaped single quotes becomes invalid.
This commit fixes the issue by escaping the single quotes using the XPath concat() function.
---
Before this commit, trying to search for a message containing a round bracket would produce a traceback.
- search for the string "("
This happens because the search term is not being escaped for the regexp.
This commit fixes the issue by escaping the search term. Same is being done on the mock server. Added tests.This fix resolves an issue where time off requests were being incorrectly canceled when an employee had both regular and accrual-based time allocations. The system was improperly calculating available time off when both allocation types were present, causing valid time off requests to be rejected. The fix ensures that regular allocations are not incorrectly factored into accrual-based validation checks.
Original PR description
Steps to reproduce: ------------------- - create a new time off type (with approval and allocation) - create an accrual plan with 1 day (monthly on the 1 day of the month) - create two allocations…
Steps to reproduce: ------------------- - create a new time off type (with approval and allocation) - create an accrual plan with 1 day (monthly on the 1 day of the month) - create two allocations with the type, one regular (X days) and one accrual (Y days) - take a time off of Z days with the condition: Z < X + Y - run `Time Off: Cancel invalid leaves` scheduled action Issue: ------ The time off is canceled with the following message: ``` The time off has been canceled: the accruated amount is insufficient for that duration. ``` Cause: ------ To delete the leave with the cron `_cancel_invalid_leaves`: [A] The leave must be: - between today and today + 31 days - have at least an allocation of type `accrual`. [B] We need an `exceeding_duration`: `additional_leaves_duration > latest_remaining` <=> `additional_leaves_duration > latest_remaining` <=> `additional_leaves_duration > virtual_remaining - date_accrual_bonus + latest_accrual_bonus` <=> `leave.number_of_days > virtual_remaining - date_accrual_bonus + latest_accrual_bonus` <=> `leave.number_of_days > SUM_ALLOC(virtual_remaining_leaves) - SUM_ALLOC(accrual_bonus) + SUM_ALLOC(_get_future_leaves_on(leave.date_from))` <=> `leave.number_of_days > SUM_ALLOC(virtual_remaining_leaves)` (simplify the use case) As we have a regular allocation, the following logic will be used: ```py leave_type_data[allocation]['virtual_remaining_leaves'] -= allocated_time ``` The result is that the condition cancelling the leave will be respected when it should not. Solution: --------- Move the logical block which adds the leave to `to_recheck_leaves` if an `accrual` type allocation is detected, so as not to make changes with regular allocations. opw-3869889
This update corrects how the Chilean localization module handles partner identification types in the system. The fix ensures the identification type field properly accepts the correct data format (integers or lists of integers), improving data consistency and preventing potential errors when managing partner information in Chile-based operations.
Original PR description
Browse method receives an int or iterable(int) or None as argument type Ticket Adhoc side: 73975 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 resolves an issue where deleting an email template used in an event's communication settings would cause an error when trying to open that event. The system now properly removes references to deleted templates instead of leaving broken links, ensuring events remain accessible even after template deletion.
Original PR description
Current behavior: --- When you delete a mail template that is used in the communication tab of an event, you get an error: Missing Record Steps to reproduce: --- 1. Go to Email Templates 2. Delete a template used in an event 3. Try to open the event 4. Error: Missing Record Cause of the issue: --- When you delete a template, the fields template_ref in event.mail and event.type.mail are not changed, Making reference to nonexistent data. Fix: --- As mentioned in the ticket, lines related to the template should be unlinked. opw-3685142 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164680 Forward-Port-Of: odoo/odoo#153893
This fix improves the Odoobot chat experience by ensuring users are reminded they can start the tour again when the chat ends. Previously, the final message didn't mention this option, leaving users unaware they could restart the guided tour. The message wording has been updated across both the mail_bot and im_livechat_mail_bot modules to include this helpful reminder.
Original PR description
At the end of the chat with odoobot, odoobot state is `idle` and the message which is sent to user in this state doesn't contain `start the tour` so at the end of the chat, user never knows that it's possible to start the tour again! This PR changes the wording in messages from odooBot in `idle` state to contain `start the tour` again possibility. This is a part of task-3570249 but since from 15.0 it's similar in all versions, the fix should be applied on all of them. Forward-Port-Of: odoo/odoo#164612 Forward-Port-Of: odoo/odoo#163950
This fix resolves a problem where images added to websites using relative URLs (like 'website/static/src/img/phone.png') were not displaying correctly. The system was incorrectly creating URL-type attachments instead of properly fetching and storing the image data. By providing the current page URL as a reference point when processing image URLs, the system now correctly handles relative paths and displays images as expected.
Original PR description
[FIX] web_editor: avoid creating url attachment when data are fetchable Steps to reproduce: - Drop a "Text-Image" snippet on the website. - Double click to replace the image. - Click on "Add URL" and…
[FIX] web_editor: avoid creating url attachment when data are fetchable Steps to reproduce: - Drop a "Text-Image" snippet on the website. - Double click to replace the image. - Click on "Add URL" and use a relative local url that does not begin by a `/` to replace the image (for example `website/static/src/img/phone.png`). -> Problem: The image is not visible on the website. Since [1] (modified by [2]), the system tries to fetch the data when an image is uploaded by giving its url through the media dialog. If the system manages to fetch the data, the original image is linked to a binary attachment that contains those data. If the data are not fetchable, the original image is linked to an attachment of type "url". The problem is that, in the described case, `new URL()` is throwing an error that is intercepted by the `catch()` instruction. An attachment of type "url" is created even if the data are fetchable. More investigation should be done to know why but, in this case, the system is redirected to a wrong url (something like `http://localhost:8069/web/image/334-redirect/website/static/src/img/phone.png`) when trying to load the image. Due to that, the image is not visible on the website. To solve the problem, the url of the current page is given as a `base` at `URL` creation. Thanks to it, `new URL()` does not throw an error anymore. Note that `window.location.href` is used instead of `window.location.origin` to handle relative local url that does not begin with a `/`. [1]: https://github.com/odoo/odoo/commit/943944dd249c15de870d6800d89e48d54a422e5a [2]: https://github.com/odoo/odoo/commit/238566d1dea29fd11353e7e6529d29843c4f658b task-3754865 Forward-Port-Of: odoo/odoo#154625
This fix corrects how remaining stock quantities are displayed on the online store product pages. Previously, decimal quantities like 1.4 were shown with excessive decimal places (1.4000...1). Now quantities display cleanly as integers when applicable, or with only the necessary decimal places based on the product's unit of measure settings.
Original PR description
Problem:
On the webshop product page of a product configured to display the
available quantity, the quantity is displayed as a raw float, so it is
sometimes shown with many digits.
Note that, since the quantity is `float_round`ed python-side, often this
doesn't appear. 1.4 is an quantity for which this does show.
Exact steps to reproduce:
* On a db with sales, webshop and inventory installed, create a product
for sale
* adjust the on-hand quantity to be 1.4
* set the product to display remaining quantity on the e-shop (sales
tab) if below x > 1.4
* go to the webshop page of the product, the remaining quantity is shown
as 1.4000...1
Desired:
The quantity is displayed as is for integers. ("usual" case)
The quantity is displayed with as many decimals as are significant,
based on the `uom_rounding`.
opw-3827850
Forward-Port-Of: odoo/odoo#164540
Forward-Port-Of: odoo/odoo#160356This update fixes three visual issues with dropdown menus in the web editor toolbar: dropdowns that overflow their container in Firefox, dropdown menus that are too narrow, and duplicate checkmark icons appearing on selected items. These fixes improve the user experience when working with the editor's formatting tools across different browsers.
Original PR description
The dropdown overflow their container on firefox: This was due to width fill-available which isn't set on firefox relying on a `width: 100%` effectively occupies the available space better.…
The dropdown overflow their container on firefox: This was due to width fill-available which isn't set on firefox relying on a `width: 100%` effectively occupies the available space better. (moz-available provides weird result on ff >125). The dropdown-menu was not wide enough, this PR mimics the full width dropdown-menu using the `width: 100%` inheriting the width of the we-row. Sometimes we had a misplacement if popper.js consider the dropdown-menu should be rendered at `data-popper-placement`=`x-start`. Thus why selecting this attribute to adapt the position accordingly.pdown are position relative by default for the dropdown-menu to refer to the position of the dropdown-toggle Additionnally the tick icon on our dropdown items were displayed twice, this was due to the ::before pseudo element from the `webclient.scss` still being displayed in website while we manage it already with an ::after element. task-3527720 part of 3503975 | Before | After | | -- | -- | |  |  | |  | | | |  | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#137129
This fix resolves a problem where tax mapping rules from multiple invoices were being incorrectly combined when creating several invoices with different tax positions. Now each invoice correctly applies only its own tax mapping rules, ensuring accurate tax calculations and compliance.
Original PR description
The mappings of all the positions were considered when doing the account mapping when creating multiple invoices with different fiscal positions. Forward-Port-Of: odoo/odoo#164762
Estonia's general tax rate has increased from 20% to 22%, and this update ensures that Odoo's EU OSS (One-Stop Shop) tax mappings reflect the new rate. This fix is important for businesses using Odoo to handle cross-border EU sales, as it ensures accurate tax calculations for Estonian transactions.
Original PR description
The general tax rate of Estonia has changed from 20% to 22% recently. However, the mapping of tax rates using OSS has not been updated. This commit updates the tax mappings to use the new 22% tax. no-task-id Forward-Port-Of: odoo/odoo#164774
This fix corrects an issue where delivery orders would incorrectly show as "ready" when a product's initial demand was set to zero after reservation. The system now properly maintains the "waiting" status when some products still have pending stock requirements, ensuring accurate order status tracking and preventing premature fulfillment notifications.
Original PR description
Usecase to reproduce: - Product A and B 1 unit in stock - Procuct C no stock - Create a delivery for the 3 products, one unit each - Set the picking policy as deliver all at once - Reserve - Unlock and set the Product A initial demand to zero Expected behavior: Picking remains in waiting state Current behavior: It goes to ready state It's an issue in the `_get_relevant_state_among_moves` method that return assigned if the first move is in confirmed without any initial demand. But it's false since another move could have an initial demand after it and in confirm state opw-3850635 Forward-Port-Of: odoo/odoo#164711
This update fixes a bug where the system would crash when calculating monetary field values that need to be rounded based on currency information from different companies. The issue occurred because the system was not properly handling company context settings during these calculations, which has now been corrected to ensure smooth financial data processing.
Original PR description
The method `_flush()` can map context key `'allowed_company_ids'` to `None`, which may lead to some code to crash. We have found such a use-case, where the value of a monetary field must be rounded with respect to a non-stored currency field, which is computed and uses `with_company()`, which crashes because of the context's value. Forward-Port-Of: odoo/odoo#164747 Forward-Port-Of: odoo/odoo#164689
This fix resolves a problem where website tours were failing when multiple companies were configured, particularly when localization modules like l10n_ar_website_sale were installed. The solution improves the search logic to correctly target the right websites instead of searching across all companies indiscriminately, ensuring tours run reliably in complex business setups.
Original PR description
When l10n_ar_website_sale is installed, the tour is ran. We have several companies, so the search is not selective enough. Just search on the right websites. runbot-55875 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#162843
A test for product pricing was failing because a required feature wasn't enabled during testing. This fix activates the necessary pricing feature in the test setup so the test can run successfully. This ensures the product pricing functionality works correctly.
Original PR description
Many single runbot builds fail due to the test_pricelists_res_partner_form test introduced by https://github.com/odoo/odoo/pull/163768:
```
FAIL: TestPricelist.test_pricelists_res_partner_form
Traceback (most recent call last):
File "/data/build/odoo/addons/product/tests/test_pricelist.py", line 168, in test_pricelists_res_partner_form
self.assertEqual(partner_form.property_product_pricelist, default_pricelist)
File "/data/build/odoo/odoo/tests/form.py", line 307, in __getattr__
return self[field_name]
File "/data/build/odoo/odoo/tests/form.py", line 312, in __getitem__
assert field_info is not None, f"{field_name!r} was not found in the view"
AssertionError: 'property_product_pricelist' was not found in the view
```
This happens because `group_product_pricelist` is not activated during the test, and then the form doesn't contain 'property_product_pricelist' field.
Activate the feature in the setUpClass to fix this issue.This update fixes how padding is applied to highlighted text in the website editor. The changes ensure that highlighted text displays correctly whether it's a title or paragraph, and removes horizontal padding that was causing issues when coloring words within highlighted sentences or highlighting partial words. Users can now add spaces manually if they want extra spacing around highlighted text.
Original PR description
Commit 1: [FIX] website: use em unit for vertical padding of highlighted text The padding was defined in pixels, thus adding a small padding on highlighted titles (wanted design) but an apparently…
Commit 1:
[FIX] website: use em unit for vertical padding of highlighted text
The padding was defined in pixels, thus adding a small padding on
highlighted titles (wanted design) but an apparently big one on
highlighted paragraphs (unwanted design). Using em unit makes more
sense: this commit chooses the values so that the padding of highlighted
h2 titles in the default Odoo theme is unchanged. You will thus get a
slightly bigger one for highlighted h1 titles and a slightly smaller one
for highlighted smaller titles.
This would lead to no padding for highlighted paragraphs though. While
this might be what is wanted (most document editing software do not add
any padding) it was decided to keep a minimal value as a compromise.
Related to opw-3877772
Commit 2:
[FIX] website: remove highlighted text horizontal padding
Not adding any horizontal padding is important as it ensures that
several features work (the first one is the very problematic one
reported in the customer ticket):
- Coloring a word inside a highlighted sentence -> in this case, the DOM
is a succession of 3 <font> elements, the word one with both the
background-color and the color.
- Highlighting part of a word -> you don't want the word to be split
- Even in the good cases, you might just not want the padding, to align
the highlighted element with the general layout.
=> The user can still add surrounding spaces if needed anyway which is
actually both technically and functionally intuitive.
opw-3877772
| Before | After |
| -------- | -------- |
|  |  |
| Padding impossible to change + problems (the opw one is illustrated by the highlighted "what they want and give") | Relative vertical padding + No horizontal one (you can add real spaces instead) |This fix resolves a visual glitch that appeared when navigating to apps on small screens in the home menu. The issue was caused by conflicting animation settings between two modules that used the same animation name. By renaming the animation to be unique, the app now displays smoothly when clicked on mobile devices.
Original PR description
Since commit[1], we have added an animation on the `DraggableHook`. However, we have used the same CSS `keyframes` name (`bounce`) as another one added[2] before by `hr_referral` module (enterprise). CSS `keyframes` can't be scoped [3] as they don't follow the cascade. So when `hr_referral` is installed the `keyframes` is override and produce some weird animation when the `DraggableHook` is used. Steps to reproduce: * Go to the HomeMenu (enterprise) on small screen * Click on a App => Bug a weird animation appear before the "navigation" to the App task-3918268 [1]: odoo/odoo@4c5cf0962f91d05085fea75e9c26ecdca9c0eb13 [2]: odoo/enterprise@08c19c4cbd1af70859cbdb49bb535927b1cbf76d [3]: https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes#resolving_duplicates --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed the emoji picker to properly center error messages when emoji loading fails. Previously, when emojis failed to load, the error screen appeared misaligned. Now it displays centered for a better user experience.
Original PR description
When emoji picker has no emojis, this means the loading of emojis failed. In that case, the screen should have its content centered. Task-3916943 Before/After <img width="303" alt="before" src="https://github.com/odoo/odoo/assets/6569390/5fb2709e-34c5-4027-ab68-cc47d97fc15b"> <img width="300" alt="after" src="https://github.com/odoo/odoo/assets/6569390/8065f4af-0200-4614-b492-63e3fa881b9d">