Tuesday, April 4, 2023
129 changes · master
New functionality added to Odoo
Odoo can now support database tables whose record counts grow beyond the previous 2.1 billion limit. Developers can enable larger ID fields for selected models, and related links between records are updated accordingly, helping large-scale ERP deployments continue growing without hitting ID capacity limits.
Original PR description
A serious ERP system needs to support tables with more than 2.1 billion records. This change allows the developer to set the model attribute `_bigint_id` to True to set, or update the sql data type of its `id` column to int8. This will also recursively update the column type of the columns that have a foreign key constraint on that `id` column (Many2one and Many2many). Many2oneReference fields are bigint by default. While the XML-RPC standard does not officially support integer values that exceed the signed 32 bits limits, this change patches the Python XML-RPC client to apply, if necessary, the <i8> extension that is also applied by the Apache Java implementation of the protocol. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
This update reduces overhead in Odoo's internal caching logic, especially in areas used when preparing website and template assets. It should make some very frequent background operations faster without changing user-facing workflows.
Original PR description
`decorator` turns out to be quite heavy, if the decorated function is very fast (possibly since 5.0 and the switch to `Signature` as ~98% of the per-call overhead is spent in `inspect`). Might be worth bypassing it in some cases. Alternatively surgically switching some decorators to `decoratorx` (introduced in 5.1 as the pre-5.0 behaviour via exec) might be a simpler and less disruptive alternative, if we didn't suffer from major decorator-related issues before the Signature stuff.
Resolved issues and error corrections
An unused calculated field in Manufacturing work orders was removed because it could trigger a database number overflow error. This reduces the risk of unexpected failures without changing normal user workflows.
Original PR description
This field is only computed, never used, and can cause a PostgreSQL "NumericValueOutOfRange: integer out of range".  --- OPW-3253333 PR for stable: https://github.com/odoo/odoo/pull/117590 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
Point of Sale popup screens were updated to rely on the newer internal service structure instead of older legacy components. This keeps the checkout experience technically cleaner and easier to maintain, with no intended change to cashier workflows.
Original PR description
This is a continuation of the effort of making pos addons independent from legacy web modules. In this commit, the popups are now completely independent from the legacy environment. `env.pos` inside each popup is no longer pointing to the instance of `PosGlobalState` (`globalState`). To access the `globalState` inside each popup, we have to read it from the `pos` service (via the `usePos` hook) which is done in this commit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
## Current behaviour You can see the `Sales Order Item` field in the project's `Settings` sheet page when the project is not `Billable`. ## Expected behaviour If the project is not `Billable`, we hide the field `Sales Order Item`. ## Steps to reproduce - Install `sale_timesheet`. - Project > kebab-menu on project > Settings - Click on the Settings tab of the project's form view - Observe there is a `Sales Order Item` field, even if the project is not Billable. ## Reason for the pr
Original PR description
## Current behaviour You can see the `Sales Order Item` field in the project's `Settings` sheet page when the project is not `Billable`. ## Expected behaviour If the project is not `Billable`, we…
## Current behaviour You can see the `Sales Order Item` field in the project's `Settings` sheet page when the project is not `Billable`. ## Expected behaviour If the project is not `Billable`, we hide the field `Sales Order Item`. ## Steps to reproduce - Install `sale_timesheet`. - Project > kebab-menu on project > Settings - Click on the Settings tab of the project's form view - Observe there is a `Sales Order Item` field, even if the project is not Billable. ## Reason for the problem Before, `Sales Order Item` was in the Invoicing tab, which is visible only when the project is billable and a partner is set. Due to a recent refactoring (b77f60b155bf97a115aa209847dc791677b2e924), the field was moved to the `Settings`, but the visibility condition that was on the invoicing tab was not. ## Fix Add the missing visibility condition on the field `sale_line_id`. ## Affected versions - saas-16.1 - saas-16.2 - master --- opw-3250937 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117452
Website editors can now set different column counts for the references block on mobile and desktop screens. This helps teams create layouts that look better on each device size while reducing accidental item removal when adjusting columns.
Original PR description
- It should be possible to have different number of columns on mobile and on desktop. - In the web editor, col should indicate the number of columns per row both on mobile & desktop. - The option is conditional of your environment. You edit the number for the screen size of your current resolution. - When decreasing the number, we delete items only if everything was in one row. task-3097045
This update makes several small project-related screens and defaults clearer for users, including better labels, cleaner timesheet totals, and more sensible default task stages. It also improves sales and purchase product settings so service-related options appear only when relevant and service products default to purchase-based billing behavior.
Original PR description
Purpose of the PR is to do the generic improvements for project. So in this PR did the following changes: - adding a label 'last update' to the stat button in project form view. - indicate 'my project' in the tab instead of 'project sharing view in portal' in project sharing. - set the first non-folded stage of the project as default on newly created tasks. - remove user confirming the SO as the default project manager. - hide fields service_tracking, service_upsell_threshold if sale_ok is false. - set purchase_method to purchase by default if product is of service type. - remove the : next to the totals labels and decrease the font-size for values of 'total hours' and 'remaining hours' in timesheets notebook in project task form view. task-2897867
The web upload service documentation now makes clear that it can accept either a browser file list or a standard list of files. This helps teams prepare and filter files before uploading, such as excluding files that are too large, without changing user-facing behavior.
Original PR description
As the upload service (js) only uses iteration, index based access and length on the files parameter, it is compatible as well with an array of File as files parameter (instead of a FileList). So, we have updated the files parameter docstring to accept as well array of File. With this change we can easily pass a modified list of files (ListFile being hard to create on some browser). Example of use-case, only send to the upload service the files smaller than a given threshold by transforming a FileList to an array and then by filtering it. Task-3179130 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves several web interface components used in areas such as Studio, including better drag behavior, selectable menus, tab controls, and field selection. It also makes automated tours and mail testing helpers more reliable, reducing issues during development and validation.
Original PR description
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
Project setup now makes the email alias contact option visible once an alias name is entered. This helps users choose who can send emails to a project, such as followers, partners, or everyone, making project email handling clearer and easier to configure.
Original PR description
This will improve the following UX - alias contact field was not visible earlier till we added the alias name - alias contact will help to select the type of mail that will send to the follower, partner, and Everyone task-3186572
Marc Demo no longer has administrator-level access in the Timesheets and Project demo data. This restores his previous, more limited permissions so teams can more accurately test access rights in Services-related workflows.
Original PR description
Since 16.0, the demo user Marc Demo has gained admin access to all the apps. To facilitate testing access rights, this commit restores his access rights as they were before for the Services apps. Enterprise: https://github.com/odoo/enterprise/pull/38055 Task-3229247
Point of Sale and Restaurant flows now allow more practical quantity adjustments when French POS certification is enabled. This reduces friction for affected businesses while keeping the process compliant with legal requirements.
Original PR description
In the previous state of the point_of_sale module, when the l10n_fr_pos_cert module was used, we were too restrictive leading to an unusable flow by some clients. We adapt the modules here so that the FR module is more usable by the clients while still respecting the law. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Mail app’s call settings now have a dedicated structure for managing device options. This makes audio or video device selection easier to maintain and supports a more reliable calling experience for users.
Original PR description
Task-3048413
The mail app now has a dedicated way to manage incoming call invitation popups. This should make call request notifications easier to organize and maintain, supporting a smoother user experience during calls.
Original PR description
Task-3048395
This update reorganizes and simplifies parts of Odoo's messaging and activity interface across several apps. It helps make the underlying interface easier to maintain, which can support more consistent future improvements with limited immediate business disruption.
Original PR description
Task-3057085 Enterprise: https://github.com/odoo/enterprise/pull/33680
The CRM lost lead action now keeps its intended settings when opened from a list view. This ensures the modal window displays at the correct size, improving consistency for users without changing core CRM workflows.
Original PR description
Prior to this all of the context of the action called in the list action was overriden. We now combine the action context with the environment context. For now, it just insures that the modal window opens with the correct size. task-3235932 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mail notifications now use a dedicated alert view model, making notification pop-ups easier to manage and more consistent. This should improve reliability and maintainability of notification behavior for users without changing their workflow.
Original PR description
Task-3048454
The mail app’s suggested-recipient logic was reorganized to make it easier to maintain and extend. This is an internal improvement that should help future updates to the message composer while keeping the user experience unchanged.
Original PR description
Task-3004250
The emoji picker now disables the category bar while a user is searching, reducing confusion and keeping attention on the search results. This makes emoji selection in conversations a little clearer and smoother.
Original PR description
Task-2978040
This update improves Odoo Discuss and Mail with blurred video backgrounds, richer link previews, and a much larger searchable emoji picker. These changes make online conversations more polished, private, and expressive for everyday users.
Original PR description
Enterprise: https://github.com/odoo/enterprise/pull/31060
This update reduces the number of shared web dependencies used by Odoo's Discuss and mail-related interface components. It should make the messaging experience easier to maintain and evolve, with limited direct impact on day-to-day users.
Original PR description
Task-2967711 Enterprise: https://github.com/odoo/enterprise/pull/30925
The mail emoji picker now offers a much larger emoji selection and a search bar that helps users quickly find the emoji they want. Category navigation has also been improved, making emoji browsing smoother and more intuitive in conversations.
Original PR description
New things: Much more emojis in the emoji picker (more than 1800 emojis, up from 81) Fuzzy search bar to find emoji in the emoji picker Known limitations: Emoji visual is based on browser/OS, so some emojis may not be visible on some devices Task-2957928
The Mail emoji picker now offers a much larger emoji selection and a fuzzy search bar, making it easier for users to find and insert the right emoji in conversations. This improves messaging expressiveness and usability, though emoji appearance may vary depending on the user's device or browser.
Original PR description
New things: - Much more emojis in the emoji picker (more than 1800 emojis, up from 81) - Fuzzy search bar to find emoji in the emoji picker Known limitations: - Emoji visual is based on browser/OS, so some emojis may not be visible on some devices Task-2957928
The live chat button now manages its own display setup, simplifying how the chat widget is initialized on public pages. This should make the live chat experience easier to maintain and reduce the risk of display issues without changing how visitors use it.
Original PR description
Task-2954564
This update improves how the website live chat interface loads its shared templates and global setup. It helps make live chat behavior more consistent across public website pages, supporting a smoother visitor support experience.
Original PR description
*: website_livechat Task-2937799
This update improves the activity menu experience, especially on smaller screens, by keeping key action buttons together at the top. It also includes broader cleanup and fixes around calendar and mail activity behavior, making the interface more consistent and easier to use.
Original PR description
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
The live chat feature now uses a dedicated button view to better manage how visitors start conversations. This improves the reliability and maintainability of the chat experience across website and survey touchpoints, helping businesses offer smoother customer support.
Original PR description
Task-2877539
This update streamlines how the live chat widget loads and initializes across the website. It helps make the chat experience more reliable and easier to maintain, with supporting adjustments in related web and messaging components.
Original PR description
Task-2877717
This update improves how the website live chat chatbot test script detects and uses the live chat button. It helps ensure chat-related testing more accurately reflects the real customer experience, reducing the risk of issues reaching users.
Original PR description
Task-2878717
Live chat components now receive their messaging setup more directly, making the chat button and related visitor messaging services easier to initialize consistently. This improves reliability and maintainability for website live chat experiences without changing the core business workflow.
Original PR description
Task-2877767
This change modernizes how the live chat button and related messaging features are loaded and managed. It should make the website chat entry point more consistent and easier to maintain, supporting a smoother customer support experience.
Original PR description
Task-2878703
This update introduces a dedicated public live chat service to make Odoo's website chat experience more reliable and easier to maintain. It reorganizes how public chat sessions are initialized and supported across related apps, helping ensure smoother visitor interactions and future enhancements.
Original PR description
Task-2877752
This update makes live chat components easier to load in external website contexts and fixes crashes that could occur when portal assets or user localization data were missing. It improves reliability for visitors and users by preventing error loops and ensuring translations can still load properly.
Original PR description
Task-2877536
Notification popovers in Mail and Snailmail were updated to use a newer display component. This improves consistency and maintainability of message notification details without changing the core business workflow.
Original PR description
in MessageView/nonFailureNotification Task-2864563
This update introduces a shared notification component for mail and live chat, making notification display more consistent across conversations. It helps provide a cleaner, more reliable chat experience for users and lays groundwork for easier future improvements.
Original PR description
*: im_livechat Task-2833579 enterprise: https://github.com/odoo/enterprise/pull/26644
The mobile messaging area now uses a dedicated tab component for its navigation bar. This should make the interface easier to maintain and support a more consistent mobile messaging experience for users.
Original PR description
Task-2833579
The mail app now handles clicks on notification permission requests more clearly, helping users respond to browser notification prompts from within Odoo. This improves the setup flow for real-time message alerts and reduces confusion when enabling notifications.
Original PR description
Task-2579306
The mail app now has a cleaner autocomplete-based input for starting new messages from the mobile messaging menu. This makes it easier for users to find recipients and begin conversations on smaller screens.
Original PR description
Task-2817076
The out of office message will no longer appear as a banner in employee messaging areas. This reduces visual clutter while keeping the same availability information accessible by hovering over the user status icon.
Original PR description
The banner showing out of office message is not wanted. This commit is to remove it. The information will now show in a tool tip when hovering on the user status icon. Task ID: 2631818
Messaging now loads less channel information during startup, which should make opening Odoo and using chat feel faster. This improves performance without changing the main user experience.
Original PR description
Task-2741926
Users can now see who reacted to a message by opening a reaction summary from the message context menu. This makes team conversations clearer by showing reaction details on desktop with right-click and on mobile with a long press.
Original PR description
This commit allows users to see a summary of reactions for a specific message by right-clicking on a reaction on desktop and bye long pressing on a reaction on mobile. Task-id: 2641441 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds automated checks around message reaction behavior in Odoo's mail app. It helps reduce the risk of regressions so teams can rely on reactions working consistently in conversations.
Original PR description
task-id: 2730654 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
The mail and Discuss code has been updated internally to better support a future framework upgrade. This helps keep messaging features maintainable and ready for upcoming technical improvements without changing day-to-day user workflows.
Original PR description
In preparation to using Owl v2 in discuss code. Task-2694206
This update refines how mail settings and public discussion channels are managed and displayed. It should make configuration clearer for administrators and improve the experience around public channels in Odoo Discuss.
Original PR description
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
Message headers in the Mail app now use less empty space after the date. This creates a slightly cleaner, more compact conversation view without changing functionality.
Original PR description
Decreases the space after o_Message_headerDate Example: https://www.awesomescreenshot.com/image/24868111?key=9198ed452bfe4388ce6ba978a1aca993 Task-2793394
Message action buttons in the Mail app now appear within the message area instead of floating separately. This makes message controls easier to find and gives conversations a cleaner, more consistent layout.
Original PR description
Improves the MessageActionList design to move the action buttons in the same
space as the message.
This PR is an alternative to [that PR](https://github.com/odoo/odoo/pull/90167)
This PR does:
- Put the actionList Container in the same line as the header of an
un-squashed message
- Put a blank line on top of each squashed text message
to put the actionList Container in.
Task-2793394Message action buttons are repositioned to sit more naturally alongside each message, reducing visual clutter in conversations. This makes mail threads easier to scan and actions easier to find without changing the underlying message content.
Original PR description
Improves the MessageActionList design to move the action buttons in the same
space as the message
Mockup: https://app.excalidraw.com/l/65VNwvy7c4X/AkE0bp4yO3M
It is not possible to make the text wrap around the actionList Container,
because the text is created dynamically, and there could be elements
other than text in the message.
This PR does:
- Put the actionList Container in the same line as the header of an
un-squashed message
- Put a blank column on the right of each squashed text message
to put the actionList Container in.
There is also an alternative in [that PR](https://github.com/odoo/odoo/pull/90367)
Task-2793394The mail app’s emoji picker now groups emojis by category and adds a category bar at the top of the popover. This makes it easier for users to browse and quickly find the emoji they want when composing messages.
Original PR description
... EmojiShowcase controllers and xml This commit introduces the EmojiCategory controlller and xml Emoji categories will be displayed on top of the popver view, and can be clicked to display certain emojis according to the category This commit also introduces two more components, EmojiCategoryBar and EmojiShowcase EmojiCategoryBar is used to contain the display of EmojiCategories, and EmojiShowcase is used to contain the display of Emojis Part of Task-2365687
The messaging area now uses a dedicated emoji structure to manage emoji data more consistently. This helps support a smoother and more maintainable emoji experience in chat and message composition.
Original PR description
Task-2365687
Users can now change the avatar shown for mail discussion channels. This makes channels easier to recognize visually and helps teams personalize their communication spaces.
Original PR description
task-2684679 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mail emoji picker now offers a broader and better organized set of emojis based on updated emoji data. This makes message reactions and communication in Odoo easier and more expressive for users.
Original PR description
This PR improves the current list of emojis available. It adds three new model to represent the new data of emojis, and introduces a new file containing the raw data for the new emojis. That new file have been obtained from https://github.com/missive/emoji-mart/blob/main/packages/emoji-mart-data/sets/14/native.json Part of Task-2365687
Users can now right-click a Discuss message to open a dialog showing reaction groups and the people behind each reaction. This makes it easier to understand team feedback and engagement without leaving the conversation.
Original PR description
Add dialog box in the right click on message to show message reaction groups and their partners Task-2641441 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mail emoji picker now updates the search bar hint to show the shortcode for the emoji currently being hovered or soft-selected. This makes it easier for users to discover and search for the right emoji in conversations.
Original PR description
Change the search bar placeholder depends on which emoji is hovered. Task-3050008 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Helpdesk team settings now hide the email alias when no alias is configured, reducing confusion for users. Teams also get an “Accept Email From” option, giving administrators clearer control over who can send emails to create or update helpdesk tickets.
Original PR description
Currently, even if the email alias is empty in the res setting, the email alias is visible in the helpdesk team, now it will be invisible. -Added `Accept Email From` to Helpdesk team task-3186572
Live chat operators now use clearer commands to create and search helpdesk tickets, making ticket handling easier and more intuitive. Helpdesk views also show average customer ratings, improve ticket search coverage, clean up ticket descriptions, and refine visual presentation in kanban views.
Original PR description
In this PR adept following changes: - replaced rating percentage with average rating in helpdesk team. - convert '/helpdesk' command into '/ticket' for ticket creation. - convert '/helpdesk_ticket' into '/search_ticket' for easy to understand search command. - excluding odoobot message from ticket description. - change message content on '/empty ticket command. - extend the search to the partner_name, partner_id, partner_email and partner_phone fields. - fix face icon size and alignment in ticket kanban view task-3109558
Cohort reports can now be configured so users cannot open the underlying list view from report cells. This is applied to Helpdesk SLA and ticket analysis reports to keep users in the intended reporting view and avoid exposing technical-looking detail screens.
Original PR description
Before this commit cohort view does not have any attribute to prevent user from opening views from cohort view cells. This commit add a attribute to prevent user from opening list view from cohort view to restrict user to see other data from cohort view and use that in helpdesk anlysis cohort view. task-3186590
Users can now add file and template blocks inside Knowledge tables, giving them more flexibility when organizing content. The update also improves block and toolbar sizing so these elements fit better in narrower table columns.
Original PR description
Authorize `/file` and `/template` commands in a table and update the css to use the size of the container instead of the size of the viewport. There was not really a reason to prevent using those commands in a table except the sizing, but we could let the user decide whether he wants those blocks or not (works fine with tables of <4 columns). Update the styling of toolbars for a more precise handling of the positioning of text and buttons (since `/file` and `/template` commands can now be way smaller more frequently). Task-3247197
This update makes the Planning app easier to use by improving labels, messages, and key actions such as publishing and sending schedules from list views. It also preserves more planning details when employees are archived and clarifies pricing information on sales-related planning records, helping users avoid confusion and reduce manual follow-up.
Original PR description
Purpose of this PR is to improve the generic UX of planning app. So, in this PR: - modify user error and add text under a field. - copy the given record of slots into the open shift when resource of that slot gets archived. - add the `publish&send` button in planning tree view. - modify the type of button (primary/secondary) of the 'I take it' button. - remove material resource slot's hour from `To Plan` button. - indicate the `Price Unit' in SOL and slot. task-2895387
Helpdesk ticket forms now focus on selecting an existing customer instead of showing separate customer name and email fields that were mainly intended for email or website submissions. This reduces confusion during ticket creation and makes ticket lists cleaner by avoiding extra clickable customer links inside rows.
Original PR description
Before this PR, the users seemed confused between the `partner_id` and `partner_name` fields during the onboarding. The `partner_name` is normally only useful when receiving tickets from an alias or a contact form and so it prevents the contact database from being bloated with spam since the system will search an existing partner with name and email set instead of directly creating a partner during the creation of the ticket. This PR removes the `partner_name` and `partner_email` fields from form view of `helpdesk.ticket` model since those fields are not really useful during the ticket creation with the form view. This PR also prevents to click on partner_id field to go to the form view of `res.partner` in the list view of `helpdesk.ticket` to avoid having too many clickable elements inside of a clickable element. task- 3186602
Helpdesk teams now have a clearer Help Center area in their setup, making it easier to manage customer support entry points. Tickets also gain a customer preview option and improved sharing links, helping support teams review and share the customer-facing view more easily.
Original PR description
in this commit, improve following features in helpdesk. - added a 'help center' section below the 'channels' in team form view. - added a 'customer preview' stat button in helpdesk ticket. task-2942449
The demo user Marc Demo no longer has administrator rights in Helpdesk, Field Service, and Planning demo data. This makes access-rights testing more realistic and aligned with earlier behavior for Services apps.
Original PR description
Since 16.0, the demo user Marc Demo has gained admin access to all the apps. To facilitate testing access rights, this PR restores his access rights as they were before for the Services apps. Community: https://github.com/odoo/odoo/pull/115026 Task-3229247
When users upload several documents at once, oversized files are now rejected individually instead of stopping the entire upload. Valid files continue uploading, and users receive a clear notification if some files were not uploaded.
Original PR description
…o large When uploading file(s) in batch, instead of rejecting all files if at least one is too large, we only reject files that are too large and upload the rest. We also display an error notification telling that not all files have been uploaded. Task-3179130
Project sharing now includes easier access to related documents, matching the visibility users already have from task portal pages. Product planning settings are also simplified by hiding planning options when sales are not enabled, reducing confusion for users.
Original PR description
Purpose of the PR is to do the generic improvements for project. So in this PR did the following changes: - add the 'documents' stat button to project sharing view which opens the same thing and have the same visibility conditions as in the task portal. - hide field planning_enabled if sale_ok is false. task-2897867
This update fixes automated walkthrough tests for two-step verification that were failing after a profile dialog change. It helps keep quality checks reliable so future updates to account security flows can be validated correctly.
Original PR description
This commit fixes the totp tours which fail on a step in the profile dialog. The step searches for an element ".o_dialog_container" that is removed since commit e51112e0df7f5e05d3cdf2c01d236c6bbbf123a6
A bug in the Mail app could cause public Discuss conversations to crash when a new message arrived before the user's identity was fully loaded. This fix makes message handling more reliable and prevents interruptions for users joining or viewing public discussions.
Original PR description
This may happen when receiving a new message without setting the self persona yet. Fix runbot issue 19975
Spreadsheet pivots and lists now automatically show clear black borders around header areas and total rows. This makes inserted tables easier to read when header backgrounds are close in color to grid lines.
Original PR description
### Description of the issue/feature this PR addresses: The problem is that when users insert pivots/lists, because the background color of headers is close to the grid line color, the border of cells becomes almost invisible. ### Current behavior before PR: See above. ### Desired behavior after PR is merged: When inserting pivots/lists, the cells in header zone will automatically have borders. task [3103403](https://www.odoo.com/web#id=3103403&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures the Belgian localization demo setup does not block or replace demo accounts created by other modules. It helps demo environments work correctly when Belgian accounting is used together with modules such as payroll accounting.
Original PR description
Other modules (i.e. `hr_payroll_account`) might also be creating demo accounts, do not prevent that. 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
Mail notifications no longer assume every visitor is signed in as an internal user. This prevents errors for guest users, helping shared discussions and portal-style interactions continue smoothly.
Original PR description
Some code in handle notification wrongly assumes `store.user` is set, as it reads `user.id`. This is correct when the user is authenticated as an internal user, but for guests this is incorrect. This commit adapt code of handling notifications so that `store.user` can be undefined for guests. Fix runbot issue 19978
The mail app no longer logs an unnecessary warning when emoji data is not loaded before a short automated flow ends. Users still see the existing failure message if emojis cannot load, while internal test systems avoid false failure alerts.
Original PR description
This happens intentionally on tours that finishes successfully before the emojis are fully loaded. Notably short tours like public discuss page show this case. The console.warn still trigger unhappy runbot. Functionally the emoji picker shows "Failed to load emoji", so this warning becomes useless. Fix runbot issue 20081
This update fixes incorrect data lookups in the public live chat interface that could trigger errors while visitors use chat. It helps keep the live chat window stable and reliable for website users and support teams.
Original PR description
- non-field read "__parentedMixin" on record(PublicLivechatView_1) - non-field read "model" on record(PublicLivechat_1) - non-field read "isFolded" on record(PublicLivechatWindow_1)
The live chat startup flow was adjusted to avoid an unnecessary failure during page loading. This should make the website chat button and chatbot experience more reliable for visitors, with no expected change to normal business workflows.
Original PR description
*: website_livechat
This fix improves how users choose microphones and other audio devices while using calls in Odoo Discuss. It helps ensure the selected device is correctly shown and applied, reducing confusion and call setup issues.
Original PR description
Task-2887231
This fix ensures frontend services are only deployed and started once, even when several services register at nearly the same time. It reduces the risk of duplicate initialization that could cause inconsistent behavior in areas such as live chat, mail, surveys, and website interactions.
Original PR description
Before this commit, it was possible to deploy services more than once. This happened in case the root widget was about to deploy and start the services, and more than one service was registering itself during a next tick. Services must be deployed and started only once. This commit ensures that if many services are added in this scenario, the services are deployed and started only once. Task-2878911
When a message is sent, recipients are now automatically added as followers so they continue receiving future updates. This prevents people included in a conversation from missing later replies and improves reliability in the messaging workflow.
Selecting an emoji in the mail composer now keeps the cursor where the user was typing instead of moving it to the end of the message. This makes composing messages smoother and avoids extra editing when adding emojis mid-sentence.
Original PR description
This commit fixes the caret location after selecting an emoji Previously that location was reset to the end of the input every time an emoji was inserted
Payroll accounting now creates a separate journal for each company instead of relying on shared master data. This keeps payroll journals aligned with each company's accounting setup and avoids configuration issues when loading charts of accounts.
Original PR description
An accounting journal is owned by only one company. Creating it in the master data makes no sense. Since the loading of the payroll data is tightly linked to the loading of the Chart of Accounts, we can use the mechanism of CoA to create the data accordingly.
Odoo Studio now applies its view customizations after other related view changes, even when those changes have unusually high priority. This prevents crashes while editing customized views and helps ensure business users can continue tailoring screens reliably.
Original PR description
Before this commit, when editing a view, the priority of the studio view holding the customizations was 99. It was, at the time, thought to be high enough. But when the direct inheritance contains views with hiher priorities, studio will crash at some point because the xpaths computed by studio must apply to the resulting view, that is, when everything else has been applied. Hence, after this commit, we compute a priority high enough in function of the other view inheriting from the base view.
The demo Partner Spreadsheet now shows borders around pivot and list headers. This small visual fix makes the sample spreadsheet easier to read and better presented for users exploring Documents Spreadsheet.
Original PR description
This PR adds borders for headers of pivot and list in the demo spreadsheet (Partner Spreadsheet Test). task [3103403](https://www.odoo.com/web#id=3103403&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) See the changes in community: https://github.com/odoo/odoo/pull/117493
The Kanban board’s quick-create process has been reorganized to use a simpler, more focused approach within the Kanban view. This reduces internal complexity and should make future maintenance more reliable without changing the overall user workflow.
Original PR description
This commit uses an extension of the form view controller as the kanban's record quick create. This is done to simplify the relational model and the kanban record quick create. part-of task-id 3179751
This update changes much of Odoo's web code to use modern browser module loading instead of an older internal format. It is mainly an internal cleanup that should make the web client easier to maintain and prepare for simpler startup code, with little direct impact on day-to-day users.
Original PR description
This commit converts almost all odoo module by native module. The goal is to deprecate odoo.define in favor of native module and then simplify boot.js by removing the regexp that finds module dependencies. task id: 3162300
This update reorganizes internal parts of Odoo's Mail module that manage message-related data updates. It should make the code easier to maintain and reduce risk in future mail and messaging changes, without introducing direct user-facing changes.
Original PR description
Task-3037277
This change continues the modernization of Odoo's public livechat experience by aligning it with the newer Discuss architecture. It should make future livechat improvements easier to deliver while keeping the customer-facing chat flow more consistent and maintainable.
Original PR description
**/!\ EXPERIMENTAL PR /!\** *: website_livechat This commit is a step towards refactoring the JS of public livechat, so that it reuses the same architecture as the code of Discuss. This implies code that uses JS models and OWL components. Task-2928837
This update refreshes underlying discussion and activity-related code while also improving calendar, CRM, and website behavior. Business users should see a more reliable communication experience, with fewer glitches around destroyed UI elements and activity menus, while most changes are internal preparation for future improvements.
This update cleans up how Odoo's internal email and SMS tests are organized by removing unnecessary duplicate test helper classes. It makes the test structure easier to maintain and supports future separation of test add-ons without affecting end users.
Original PR description
Remove 'TestMailCommon' and 'TestSMSCommont' test classes. Use MailCommon or SMSCommon when possible to ease move of test addons and inheritance. 'TestMailCommon' was useless and is replaced by the 'MailCommon' class defined directly in Mail addon, easing inheritance and imports. 'TestSMSCommon' was useless and is replaced by the 'SMSCommon' class defined directly in SMS addon, easing inheritance and imports. See community PR for more details. Task-3263512
The pull request streamlines internal SMS-related test setup by using the shared SMS testing base directly. This reduces maintenance overhead for developers without changing how business users experience the product.
This update modernizes the internal code behind Mexico-specific Point of Sale invoicing popups. It helps keep the feature aligned with the newer Odoo interface framework, reducing future maintenance risk without changing day-to-day user workflows.
Original PR description
Part of https://github.com/odoo/odoo/pull/116307.
The test tour `time_off_request_calendar_view` would fail once the first Thursday of the year was not visible to the user (e.g. on the 1st April) as the MouseEvents would not be fired. Forward-Port-Of: odoo/odoo#117440
Original PR description
The test tour `time_off_request_calendar_view` would fail once the first Thursday of the year was not visible to the user (e.g. on the 1st April) as the MouseEvents would not be fired. Forward-Port-Of: odoo/odoo#117440
- Create an account of type current asset - Add him a Sales Tax and a Purchase Tax - Create invoice - Add a line - Remove the taxes from this line - Change the account to the one you created => A purchase tax is applied to the line. It should not happen, so we prevent it. 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/sub
Original PR description
- Create an account of type current asset - Add him a Sales Tax and a Purchase Tax - Create invoice - Add a line - Remove the taxes from this line - Change the account to the one you created => A purchase tax is applied to the line. It should not happen, so we prevent it. 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#117481 Forward-Port-Of: odoo/odoo#115196
before this commit, in the website profile, ie in the forum, if we filter the users using This week or This month filters, always the + is displayed along with the gained karma. so if the user's gained karma during the selected period is negative values, lets say -500, currently it displays as follows --> +-500 , instead of -500 after this commit, if the gained karma during the period is it will show as -500 instead of +-500 with reference to: https://github.com/odoo/odoo/pull/111634
Original PR description
before this commit, in the website profile, ie in the forum, if we filter the users using This week or This month filters, always the + is displayed along with the gained karma. so if the user's gained karma during the selected period is negative values, lets say -500, currently it displays as follows --> +-500 , instead of -500 after this commit, if the gained karma during the period is it will show as -500 instead of +-500 with reference to: https://github.com/odoo/odoo/pull/111634 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117018 Forward-Port-Of: odoo/odoo#114506
…ounts exist The first problem when multiple analytics accounts exist is the sql query, it is generated with less placeholders than the actual arguments, so putting the ids in an array groups them in a single argument. The second problem is the getter from the collected data dict in the project models, it is assuming there is only a single account for all projects. see also https://github.com/odoo/enterprise/pull/36855 ``` Traceback (most recent call last): [...] data = model.
Original PR description
…ounts exist The first problem when multiple analytics accounts exist is the sql query, it is generated with less placeholders than the actual arguments, so putting the ids in an array groups them in…
…ounts exist
The first problem when multiple analytics accounts exist is the sql query, it is generated with less placeholders than the actual arguments, so putting the ids in an array groups them in a single argument.
The second problem is the getter from the collected data dict in the project models, it is assuming there is only a single account for all projects.
see also https://github.com/odoo/enterprise/pull/36855
```
Traceback (most recent call last):
[...]
data = model.search_read(domain=domain, fields=fields_list, limit=80)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 4947, in search_read
result = records.read(fields, **read_kwargs)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 2966, in read
return self._read_format(fnames=fields, load=load)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 3115, in _read_format
vals[name] = convert(record[name], record, use_name_get)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 5830, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1188, in __get__
self.compute_value(recs)
File "/home/odoo/src/odoo/16.0/odoo/fields.py", line 1347, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/16.0/addons/mail/models/mail_thread.py", line 403, in _compute_field_value
return super()._compute_field_value(field)
File "/home/odoo/src/odoo/16.0/odoo/models.py", line 4175, in _compute_field_value
getattr(self, field.compute)()
File "/home/odoo/src/odoo/16.0/addons/project_purchase/models/project.py", line 30, in _compute_purchase_orders_count
self._cr.execute(query_string, query_param)
File "/home/odoo/src/odoo/16.0/odoo/sql_db.py", line 515, in execute
return self._cursor.execute(*args, **kwargs)
File "/home/odoo/src/odoo/16.0/odoo/sql_db.py", line 310, in execute
_logger.debug("query: %s", self._format(query, params))
File "/home/odoo/src/odoo/16.0/odoo/sql_db.py", line 302, in _format
return self._obj.mogrify(query, params).decode(encoding, 'replace')
TypeError: not all arguments converted during string formatting
```
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#112271Problem: The email created by _send_availability_email is not translated correctly. The body is always sent in English and the subject will always use the current language of the database. Example: Partner A's language = Spanish Current database language = "French" The body of the email sent to Partner A will be in English and the subject of the email sent will be in French. Solution: Pass in the partner's language into the context. If the partner does not have any language, defau
Original PR description
Problem: The email created by _send_availability_email is not translated correctly. The body is always sent in English and the subject will always use the current language of the database. Example: Partner A's language = Spanish Current database language = "French" The body of the email sent to Partner A will be in English and the subject of the email sent will be in French. Solution: Pass in the partner's language into the context. If the partner does not have any language, default to English. This fix will translate the entire email uniformly according to the context's language. opw-3207979 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114885
This commit improves ux/ui by adding the slide description on top of quiz and offering links to additional resources if user gets questions wrong. task-3246366 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117047 Forward-Port-Of: odoo/odoo#116576
Original PR description
This commit improves ux/ui by adding the slide description on top of quiz and offering links to additional resources if user gets questions wrong. task-3246366 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117047 Forward-Port-Of: odoo/odoo#116576
**Issue:** Trying to print an image from attachment_viewer (the component on chatter that previews the attachment on chatter) the page opened is completely empty because this.imageUrl is undefined . **Fix:** The correct attr that should be used is imageUrl from attachmentViewerViewable --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114547
Original PR description
**Issue:** Trying to print an image from attachment_viewer (the component on chatter that previews the attachment on chatter) the page opened is completely empty because this.imageUrl is undefined . **Fix:** The correct attr that should be used is imageUrl from attachmentViewerViewable --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114547
**[FIX] project: display project in read-only when portal user is not a collaborator** Before this commit: - A portal user cannot access the project if he's not a follower but a public user can do that and It doesn't make sense for portal users to have less access than public users. - Technically the problem was that we call _check_project_sharing_access with a project with the portal user instead of sudo, so when trying to access self.collaborator_ids, an exception is raised saying that t
Original PR description
**[FIX] project: display project in read-only when portal user is not a collaborator** Before this commit: - A portal user cannot access the project if he's not a follower but a public user can do that and It doesn't make sense for portal users to have less access than public users. - Technically the problem was that we call _check_project_sharing_access with a project with the portal user instead of sudo, so when trying to access self.collaborator_ids, an exception is raised saying that the portal user cannot have access to project fields. After this commit: - Portal users can both access the project in read-only when they are not part of followers. - Technically, we preferred searching over just adding self.sudo() to get the result directly in one query for a better performance. task-3205644 Forward-Port-Of: odoo/odoo#117401 Forward-Port-Of: odoo/odoo#113657
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117515
Original PR description
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117515
Steps to reproduce ================== - Go to eLearning - On the "Trees, Wood and Gardens" card, click on "view course" - Click on Main Trees Categories The slide name is outside the view Also, the XP badge is cropped Before ======  After ====  After ====  opw-3225999 Forward-Port-Of: odoo/odoo#116781
Before this revision, a date/datetime field was displayed in UTC instead of in the user timezone. This revision fixes this issue. opw 3127742 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#117514 Forward-Port-Of: odoo/odoo#114529
Original PR description
Before this revision, a date/datetime field was displayed in UTC instead of in the user timezone. This revision fixes this issue. opw 3127742 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#117514 Forward-Port-Of: odoo/odoo#114529
when customer upgrading their database to the 16.0 from older versions then it, they are facing an issue in discuss app during opening the chat ``` UncaughtClientError > TypeError Uncaught Javascript Error > Cannot read properties of undefined (reading 'channel') TypeError: Cannot read properties of undefined (reading 'channel') at model.compute (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:11716:504) at Listener.onChange (https://69.test.u
Original PR description
when customer upgrading their database to the 16.0 from older versions then it, they are facing an issue in discuss app during opening the chat ``` UncaughtClientError > TypeError Uncaught Javascript…
when customer upgrading their database to the 16.0 from older versions then it, they are facing an issue in discuss app during opening the chat
```
UncaughtClientError > TypeError
Uncaught Javascript Error > Cannot read properties of undefined (reading 'channel')
TypeError: Cannot read properties of undefined (reading 'channel')
at model.compute (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:11716:504)
at Listener.onChange (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:10422:252)
at ModelManager._notifyListenersInUpdateCycle (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:10446:226)
at ModelManager._flushUpdateCycle (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:10433:64)
at ModelManager.update (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:10357:62)
at model.update (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:10504:137)
at model._handleGlobalWindowFocus (https://69.test.upgrade.odoo.com/web/assets/157609-0cec86b/web.assets_backend.min.js:11803:184)
at owl.EventBus.trigger (https://69.test.upgrade.odoo.com/web/assets/157608-48bb818/web.assets_common.min.js:1535:63)
at onFocusChange (https://69.test.upgrade.odoo.com/web/assets/157608-48bb818/web.assets_common.min.js:6255:165)
at https://69.test.upgrade.odoo.com/web/assets/157608-48bb818/web.assets_common.min.js:6258:84
```
for more clear: https://www.awesomescreenshot.com/video/16178967?key=69054b02935378a1708a3cdc726614fa
issue-3183156,3232109,3229195,3248633
Forward-Port-Of: odoo/odoo#117570
Forward-Port-Of: odoo/odoo#117468- Japan chart of account template updates - Translation updates - Use better code names for tax report task-3127047 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112278
Original PR description
- Japan chart of account template updates - Translation updates - Use better code names for tax report task-3127047 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112278
Steps to reproduce the error: 1. Open a Pos 2. Without any orderline, click on `+-` button 3. You will see an error issue https://github.com/odoo/odoo/issues/115642 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117063 Forward-Port-Of: odoo/odoo#116478
Original PR description
Steps to reproduce the error: 1. Open a Pos 2. Without any orderline, click on `+-` button 3. You will see an error issue https://github.com/odoo/odoo/issues/115642 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117063 Forward-Port-Of: odoo/odoo#116478
Before revision 5bf1207c8cb7575fba4501aff4932c2cc952bf9f a new environment was created for each call at `xml_import` or `convert_file`, with `odoo.api.Environment(cr, SUPERUSER_ID, {})` meaning the context was empty, meaning the lang was never set Now that we pass from end to end the environment, the caller of `xml_import` or `convert_file` passes his own environment, therefore propagating his `context` variables, therefore potentially passing a lang in the context. Therefore, since
Original PR description
Before revision 5bf1207c8cb7575fba4501aff4932c2cc952bf9f a new environment was created for each call at `xml_import` or `convert_file`, with `odoo.api.Environment(cr, SUPERUSER_ID, {})` meaning the…
Before revision 5bf1207c8cb7575fba4501aff4932c2cc952bf9f a new environment was created for each call
at `xml_import` or `convert_file`,
with `odoo.api.Environment(cr, SUPERUSER_ID, {})`
meaning the context was empty, meaning the lang was never set
Now that we pass from end to end the environment,
the caller of `xml_import` or `convert_file`
passes his own environment, therefore propagating
his `context` variables, therefore potentially passing a lang in the context.
Therefore, since this change, the lang of the user is taken into account when calling `xml_import`/`convert_file`, and it updates the translation term rather than the source term for translated fields.
This could be an actual/intended valid behavior,
this needs to be discussed,
but currently the places where `xml_import`/`convert_file` is called expects to update the source term,
not the translated term.
See for reference
https://github.com/odoo/odoo/pull/116780#issuecomment-1486506663
Therefore, as this is an unexpected/unintended change of behavior of the refactor 5bf1207c8cb7575fba4501aff4932c2cc952bf9f, and as code blocks calling `xml_import`/`convert_file` have not been adapted, we prefer to play it safe
and revert the behavior to what is was.
This is very possible other context keys will need to be dropped, but one of the desired change of the refactor was to be able to pass keys in the context, currently we prefer to not wipe the environment context and just blacklist the one we do not want to propagate, such as the lang.
If other related issues arise, we will then re-consider.
Forward-Port-Of: odoo/odoo#117383Since saas 16.1, we added a more visible error information box when the module system cannot find some dependencies, or if there is an error in the JS code. This error box is very useful to understand a lot of typical devlopment issues. However, it was occasionally displayed in production code. However, we sometimes observe that the error information box was displayed, because the request to load an assets failed with a 404. It is unclear in which circumstance this can happen, but it
Original PR description
Since saas 16.1, we added a more visible error information box when the module system cannot find some dependencies, or if there is an error in the JS code. This error box is very useful to…
Since saas 16.1, we added a more visible error information box when the module system cannot find some dependencies, or if there is an error in the JS code. This error box is very useful to understand a lot of typical devlopment issues. However, it was occasionally displayed in production code. However, we sometimes observe that the error information box was displayed, because the request to load an assets failed with a 404. It is unclear in which circumstance this can happen, but it seems that the following elements are involved: - the user has an open tab with odoo, kept open for a while - some js code is changed on the server, which causes the previous assets to be deleted - the user reload its open tabs, so the browser will load the /web page from disk, which points to the old assets files - then it will try to load all assets, with a 404 on one of the script - the error information box is displayed This commit intercepts the loading error and stop displaying the error information box, which is basically the same behaviour as 16.0 and before. We could force a reload in that case, but it seems dangerous, since in case of errors, it could easily lead to an infinite loop. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117541 Forward-Port-Of: odoo/odoo#117453
Before this commit: the `product.display_name` field could contain line breaks, which prevented it from being matched correctly by regular expressions. This commit fixes the issue by modifying the `_product_search_string()` function to remove line breaks. opw-3239830 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117368 Forward-Port-Of: odoo/odoo#116692
Original PR description
Before this commit: the `product.display_name` field could contain line breaks, which prevented it from being matched correctly by regular expressions. This commit fixes the issue by modifying the `_product_search_string()` function to remove line breaks. opw-3239830 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117368 Forward-Port-Of: odoo/odoo#116692
With `generic_coa` now installed by default, the default pos.config are automatically assigned a sale and an invoice journal, and trying to install afterward a country specific chart template result in the following error: 2023-04-03 16:29:27,642 9344 ERROR _testdb-162820-testdb-162820-point-of-sale odoo.sql_db: bad query: DELETE FROM "account_journal" WHERE id IN (1, 2, 3, 8, 4, 6, 9, 7, 5, 10) ERROR: update or delete on table "account_journal" violates foreign key constraint "pos_config_jo
Original PR description
With `generic_coa` now installed by default, the default pos.config are automatically assigned a sale and an invoice journal, and trying to install afterward a country specific chart template result…
With `generic_coa` now installed by default, the default pos.config are automatically assigned a sale and an invoice journal, and trying to install afterward a country specific chart template result in the following error:
2023-04-03 16:29:27,642 9344 ERROR _testdb-162820-testdb-162820-point-of-sale odoo.sql_db: bad query: DELETE FROM "account_journal" WHERE id IN (1, 2, 3, 8, 4, 6, 9, 7, 5, 10)
ERROR: update or delete on table "account_journal" violates foreign key constraint "pos_config_journal_id_fkey" on table "pos_config"
DETAIL: Key (id)=(10) is still referenced from table "pos_config".
Traceback (most recent call last):
...
File "/home/odoo/src/odoo/saas-16.2/odoo/modules/loading.py", line 481, in load_modules
processed_modules += load_marked_modules(env, graph,
File "/home/odoo/src/odoo/saas-16.2/odoo/modules/loading.py", line 365, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/saas-16.2/odoo/modules/loading.py", line 297, in load_module_graph
module.write({'state': 'installed', 'latest_version': ver})
File "/home/odoo/src/odoo/saas-16.2/addons/account/models/ir_module.py", line 67, in write
self.env['account.chart.template'].try_loading(
File "/home/odoo/src/odoo/saas-16.2/addons/account/models/chart_template.py", line 141, in try_loading
return self._load(template_code, company, install_demo)
File "/home/odoo/src/odoo/saas-16.2/addons/point_of_sale/models/chart_template.py", line 16, in _load
result = super()._load(template_code, company, install_demo)
File "/home/odoo/src/odoo/saas-16.2/addons/account/models/chart_template.py", line 176, in _load
self.env[model].search([('company_id', '=', company.id)]).with_context({MODULE_UNINSTALL_FLAG: True}).unlink()
File "/home/odoo/src/odoo/saas-16.2/addons/account/models/account_journal.py", line 524, in unlink
ret = super(AccountJournal, self).unlink()
File "/home/odoo/src/odoo/saas-16.2/addons/mail/models/mail_thread.py", line 326, in unlink
res = super(MailThread, self).unlink()
File "/home/odoo/src/odoo/saas-16.2/addons/mail/models/mail_activity_mixin.py", line 246, in unlink
result = super(MailActivityMixin, self).unlink()
File "/home/odoo/src/odoo/saas-16.2/odoo/models.py", line 3635, in unlink
cr.execute(query, (sub_ids,))
File "/home/odoo/src/odoo/saas-16.2/odoo/sql_db.py", line 311, in execute
res = self._obj.execute(query, params)
psycopg2.errors.ForeignKeyViolation: update or delete on table "account_journal" violates foreign key constraint "pos_config_journal_id_fkey" on table "pos_config" DETAIL: Key (id)=(10) is still referenced from table "pos_config".
This commit also reset the journals on the existing pos.config so that `post_install_pos_localisation()` assign the right ones once the new chart template is loaded.
We also only reset payment methods and journals in case we load a new chart of accounts (this fix the "reload" of the CoA when PoS is installed)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#117522In some themes, RGBA colors were used to define the colors of shapes. However, adding this color in the parameters of the background image URL of a "shape" element was not valid. This caused several bugs, such as the colorpicker not finding the colors of the shape used, as well as the colors of the shape being lost after the application of a "flip". Steps to reproduce the bug: - In website edit mode, open the homepage page of the Nano theme. - Drag and drop a Banner snippet onto the page.
Original PR description
In some themes, RGBA colors were used to define the colors of shapes. However, adding this color in the parameters of the background image URL of a "shape" element was not valid. This caused several…
In some themes, RGBA colors were used to define the colors of shapes. However, adding this color in the parameters of the background image URL of a "shape" element was not valid. This caused several bugs, such as the colorpicker not finding the colors of the shape used, as well as the colors of the shape being lost after the application of a "flip". Steps to reproduce the bug: - In website edit mode, open the homepage page of the Nano theme. - Drag and drop a Banner snippet onto the page. - Bug: The colorpicker does not recognize the four colors used by the shape. - Click on one of the two "Flip" buttons. - Bug: The colors of the shape are lost. Also, this commit combines the two "onBuilt" methods of the "BackgroundShape" options. This should have been done during the forward-port of this commit [1], but we missed it. [1]: https://github.com/odoo/odoo/commit/256ff539afe331544ccb58848f1ecd0eecbe4daa task-2824607 Forward-Port-Of: odoo/odoo#117394 Forward-Port-Of: odoo/odoo#116052
On a calendar event, the 'free' option does not hide the element. So that the user doesn't expect this behavior, you have to modify its description. opw-3047999 Forward-Port-Of: odoo/odoo#116654
Original PR description
On a calendar event, the 'free' option does not hide the element. So that the user doesn't expect this behavior, you have to modify its description. opw-3047999 Forward-Port-Of: odoo/odoo#116654
Incorporate Rolando Duarte (rolandojduartem) as Vauxoo's contributor. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117558 Forward-Port-Of: odoo/odoo#117545
Original PR description
Incorporate Rolando Duarte (rolandojduartem) as Vauxoo's contributor. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117558 Forward-Port-Of: odoo/odoo#117545
It takes a too long to load project task kanban view. And ~85% of this time is spent in `ProjectTask._get_all_subtasks`, which is a recursive method returning the children of the children, while any, of the task, for each task, just to display their count. We replaced this recursive method with a SQL request, which is way faster. Also, it can be called in batch. It will return a dict {id: subtask_ids}. task-3246085 --- I confirm I have signed the CLA and read the PR guidelines at w
Original PR description
It takes a too long to load project task kanban view. And ~85% of this time is spent in `ProjectTask._get_all_subtasks`, which is a recursive method returning the children of the children, while any, of the task, for each task, just to display their count.
We replaced this recursive method with a SQL request, which is way faster. Also, it can be called in batch. It will return a dict {id: subtask_ids}.
task-3246085
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#117532
Forward-Port-Of: odoo/odoo#116570There is a very nice and clear system that helps the user to figure what are the available area to drop content inside, and what will they do: are they shared between products, or product specific etc. The issue is that once you have dropped a snippet inside, that helper message is not shown anymore, but it's still not obvious which area is used for what, actually you have no clue which one is which, especially if you come back on the page later: at best remember there were 2 separate zones b
Original PR description
There is a very nice and clear system that helps the user to figure what are the available area to drop content inside, and what will they do: are they shared between products, or product specific…
There is a very nice and clear system that helps the user to figure what are the available area to drop content inside, and what will they do: are they shared between products, or product specific etc. The issue is that once you have dropped a snippet inside, that helper message is not shown anymore, but it's still not obvious which area is used for what, actually you have no clue which one is which, especially if you come back on the page later: at best remember there were 2 separate zones but you don't especially remember which one is which. Keeping the message helps in that regard without any negative impact. Note that making the message appear when there are already a snippet will work out of the box in the sense that the message will be duplicated and shown twice: one at the very bottom of the area and one at the very top. task-3160416 For tracking purpose, here is how it looks like in actual 16.0: | color | before | after | | -- | -- | -- | | white |  | | |odoo purple |  | | | odoo green |  | | | gray |  |  | | black |  | | Forward-Port-Of: odoo/odoo#111515
When a new tax is created and click on Reload button of fiscal Localization it will generate traceback. Steps to Produce:- - Create a new Tax. - Then open the setting of invoicing and Click on reload Button which is located inside fiscal Localization. - IndexError will be generated. Cause:- - When a user creates a tax from UI `get_external_id` return an empty string and we try to `spilt` an empty string and get 1 index value and because of that it gives traceback. Fix:- - Che
Original PR description
When a new tax is created and click on Reload button of fiscal Localization it will generate traceback. Steps to Produce:- - Create a new Tax. - Then open the setting of invoicing and Click on reload Button which is located inside fiscal Localization. - IndexError will be generated. Cause:- - When a user creates a tax from UI `get_external_id` return an empty string and we try to `spilt` an empty string and get 1 index value and because of that it gives traceback. Fix:- - Check xml_id is not null before trying to spilt and get the value from xml_id.  Sentry-4042986115 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117436
**Steps to reproduce the bug:** - Create two warehouses in the same company - Create a storable product “P1”: - Add 10 units in each warehouse - Click on the forecasted widget **Problem:** The quantity on hand is 20 instead of 10 while the current warehouse set in the filter is "WH1", because the warehouse has not been added in the context, so we calculate all the quantities available in all the locations of the current company: https://github.com/odoo/odoo/blob/c05815ae6b8bd7afceb7
Original PR description
**Steps to reproduce the bug:**
- Create two warehouses in the same company
- Create a storable product “P1”:
- Add 10 units in each warehouse
- Click on the forecasted widget
**Problem:**
The quantity on hand is 20 instead of 10 while the current warehouse set in the filter is "WH1", because the warehouse has not been added in the context, so we calculate all the quantities available in all the locations of the current company:
https://github.com/odoo/odoo/blob/c05815ae6b8bd7afceb760395af09c707c89c485/addons/stock/report/stock_forecasted.py#L164 https://github.com/odoo/odoo/blob/3ee5d7a0fbccae5f742e1aba8d3d24f8bab3cbdd/addons/stock/models/product.py#L275
for the filter, the default one is added in the context here: https://github.com/odoo/odoo/blob/16.0/addons/stock/static/src/stock_forecasted/forecasted_warehouse_filter.js#L19
opw-3194872
Forward-Port-Of: odoo/odoo#114308**Current behavior before PR:** help command returns false instead of DM group members name **Desired behavior after PR is merged:** it returns DM group members name Task-2917720 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#115770 Forward-Port-Of: odoo/odoo#96491
Original PR description
**Current behavior before PR:** help command returns false instead of DM group members name **Desired behavior after PR is merged:** it returns DM group members name Task-2917720 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#115770 Forward-Port-Of: odoo/odoo#96491
…oduct with currency - Description of the issue/feature this PR addresses: Calling [price_compute()](https://github.com/odoo/odoo/blob/135c7e1884b3587fcd6e4034a8d2f42d07702106/addons/product/models/product.py#L641) on product.product cause AssertationError **IF you also provide currency parameter.** This happens because when currency_id conversion is performed, the product.company_id is False in variants, so maybe it should be investigated why is it false, but this is a very quick fix
Original PR description
…oduct with currency - Description of the issue/feature this PR addresses: Calling…
…oduct with currency
- Description of the issue/feature this PR addresses:
Calling [price_compute()](https://github.com/odoo/odoo/blob/135c7e1884b3587fcd6e4034a8d2f42d07702106/addons/product/models/product.py#L641) on product.product cause AssertationError **IF you also provide currency parameter.**
This happens because when currency_id conversion is performed, the product.company_id is False in variants, so maybe it should be investigated why is it false, but this is a very quick fix withoud any drawback.
- Steps to reproduce:
This is very easy to reproduce, but you need a simple snippet because there is no call to price_compute() in product.product while using currency conversion in original source code. Easiest way to reproduce this is to make a button that calls method on a product.product record, you will get AssertationError:
def btn_test_price_compute(self):
product = self.env['product.product'].browse(10) # fetch any product from variant model
currency = product.currency_id or self.env.company.currency_id # fetch currency
price = product.price_compute(
"list_price",
uom=product.uom_id,
currency=currency,
company=product.company_id
)[product.id]
# try to compute price: works fine in product template and also
# in product product as long as you don't use 'company' argument.
# As soon as you provide currency a conversion will be performed,
# but it will fail because there is no product.company_id:
#
# >>AssertionError: convert amount from unknown company
- Desired behavior after PR is merged:
We can call price_compute() on product variants using currency conversion parameter without issues.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#117644
Forward-Port-Of: odoo/odoo#1174351. Install [Manufacturing] on Apps 2. On [Settings]>[Manufacturing] - toggle on [Work Orders], [Quality] & [Quality Worksheet] 3. Go to Manufacturing - Work Centers (a.k.a WC) Overview should be visible - if no W.C. by default, add from [Configuration]>[Work Centers] 4. click on the 3 dots at the top right corner of each WC card affected branch: saas-16.1 up to master Forward-Port-Of: odoo/odoo#117525
Original PR description
1. Install [Manufacturing] on Apps 2. On [Settings]>[Manufacturing] - toggle on [Work Orders], [Quality] & [Quality Worksheet] 3. Go to Manufacturing - Work Centers (a.k.a WC) Overview should be visible - if no W.C. by default, add from [Configuration]>[Work Centers] 4. click on the 3 dots at the top right corner of each WC card affected branch: saas-16.1 up to master Forward-Port-Of: odoo/odoo#117525
Before this commit period of label actually spelled in dutch language 'Periode' not in english 'Period'. This commit fix typo by writting correct spelling in english. task-3186590 Forward-Port-Of: odoo/enterprise#39270 Forward-Port-Of: odoo/enterprise#37397
Original PR description
Before this commit period of label actually spelled in dutch language 'Periode' not in english 'Period'. This commit fix typo by writting correct spelling in english. task-3186590 Forward-Port-Of: odoo/enterprise#39270 Forward-Port-Of: odoo/enterprise#37397
Some adaptations to community fix. Related: https://github.com/odoo/odoo/pull/116570 task-3246085 Forward-Port-Of: odoo/enterprise#39243 Forward-Port-Of: odoo/enterprise#38723
Original PR description
Some adaptations to community fix. Related: https://github.com/odoo/odoo/pull/116570 task-3246085 Forward-Port-Of: odoo/enterprise#39243 Forward-Port-Of: odoo/enterprise#38723
Issue --> Consider a `data_merge.group` record with two `data_merge.record` records that point to two `crm.lead` records. Case 1: 1) Both the original `crm.lead` records have been deleted 2) The `res_id` field for the `data_merge.record` records point to an empty object Running the cron "Data Merge: Cleanup Records" leads to a traceback because the dictionary `original_records` inside the method `_cleanup()` is empty and the code `original_record = original_records[rec.res_id]` retur
Original PR description
Issue --> Consider a `data_merge.group` record with two `data_merge.record` records that point to two `crm.lead` records. Case 1: 1) Both the original `crm.lead` records have been deleted 2) The…
Issue --> Consider a `data_merge.group` record with two `data_merge.record` records that point to two `crm.lead` records. Case 1: 1) Both the original `crm.lead` records have been deleted 2) The `res_id` field for the `data_merge.record` records point to an empty object Running the cron "Data Merge: Cleanup Records" leads to a traceback because the dictionary `original_records` inside the method `_cleanup()` is empty and the code `original_record = original_records[rec.res_id]` returns an error Case 2: 1) One of the two original `crm.lead` records have been deleted In this case, running to the cron leads to a KeyError traceback on the `original_records` dictionary as `original_record = original_records[rec.res_id]` tries to access a key that does not exist in it. Both of these errors are caused by the `data_merge.record` records still existing even after the original records have been deleted. Solution --> This PR adds an if-else block and a dict.get() method call to handle the two cases mentioned above, respectively by utilizing the existing variables to unlink the `data_merge.group` and `data_merge.record` with non-existent `res_id` records. opw-3193111 Forward-Port-Of: odoo/enterprise#37648
Forward-Port-Of: odoo/enterprise#39265
Original PR description
Forward-Port-Of: odoo/enterprise#39265
Steps to reproduce: - install 'hr_contract_salary' (to show template contract configuration); - go to 'Employees/Configuration/Contracts/Templates'; - create a new template; - create a new "Contract Document Template" via the form view; - upload a file; - click on 'SAVE & CLOSE' button; Issue: A User Error is triggered. Cause: In the code: `attachments = self.env['ir.attachment'].browse([vals.get('attachment_id') for vals in vals_list])` returns `attachments = [False]`. Therefore
Original PR description
Steps to reproduce:
- install 'hr_contract_salary' (to show template contract configuration);
- go to 'Employees/Configuration/Contracts/Templates';
- create a new template;
- create a new "Contract Document Template" via the form view;
- upload a file;
- click on 'SAVE & CLOSE' button;
Issue:
A User Error is triggered.
Cause:
In the code:
`attachments = self.env['ir.attachment'].browse([vals.get('attachment_id') for vals in vals_list])` returns `attachments = [False]`.
Therefore,
`self._check_pdf_data_validity(attachment.datas)` to check if the data `b''` is valid. As this is not the case, a user error is triggered.
Solution:
You have to make sure that an attachment is created when we do not pass in the `create_with_attachment_data` function before the `create` function.
Forward-Port-Of: odoo/enterprise#38195Use the duration in the link to compute the end date as the custom appointment type can have multiple durations. Before, it was leading to having a 404 error because the duration was not enough to get the slot. Even if the duration has been tempered in the link, we check later if the duration has the correct value based on the type of slot. task-3259580 Forward-Port-Of: odoo/enterprise#39239 Forward-Port-Of: odoo/enterprise#39222
Original PR description
Use the duration in the link to compute the end date as the custom appointment type can have multiple durations. Before, it was leading to having a 404 error because the duration was not enough to get the slot. Even if the duration has been tempered in the link, we check later if the duration has the correct value based on the type of slot. task-3259580 Forward-Port-Of: odoo/enterprise#39239 Forward-Port-Of: odoo/enterprise#39222
Bug === The link preview show the link tracker URL, now we show the title of the page. Task-3239261 Forward-Port-Of: odoo/enterprise#39228 Forward-Port-Of: odoo/enterprise#38473
Original PR description
Bug === The link preview show the link tracker URL, now we show the title of the page. Task-3239261 Forward-Port-Of: odoo/enterprise#39228 Forward-Port-Of: odoo/enterprise#38473
Steps to reproduce: - Install the Appointment and Website. - Create a new Online Appointment with certain hours available. - Now when we go to the frontend to book an appointment. - Now, taking into account that our default timezone is 'Europe/Brussels', we can see that the available hours are from 10:00 to 12:00. - Now we change the timezone any timezone we want to use, for example 'America/New_York', now we can see that the available hours are now from 5:00 am to 7:00am. - Then we sele
Original PR description
Steps to reproduce: - Install the Appointment and Website. - Create a new Online Appointment with certain hours available. - Now when we go to the frontend to book an appointment. - Now, taking into…
Steps to reproduce: - Install the Appointment and Website. - Create a new Online Appointment with certain hours available. - Now when we go to the frontend to book an appointment. - Now, taking into account that our default timezone is 'Europe/Brussels', we can see that the available hours are from 10:00 to 12:00. - Now we change the timezone any timezone we want to use, for example 'America/New_York', now we can see that the available hours are now from 5:00 am to 7:00am. - Then we select 5:00am, and we go to the next step, here we can see at the right side the hour that we have selected and the timezone. - Now we change our mind and we want to change the hour that we have selected, so we go back to the previous step but using the browser button to go back (or the usual mouse button). - In the first step again, we can see that we have the timezone reseted to 'Europe/Brussels' again, with it rights hours. - Let's say we forgot to change the timezone again, and we just select one of the hours available for the current displayed timezone. - We go to the next step and we look carfully at the right side, we can see what happened with the hour that we have selected, and the timezone. Issue: With the flow of going back using the browser, we don't keep the proper timezone in the session, so when we go back to the first step, the frontend is updated for the default timezone, but we never really change the previous timezone, which make us in this case for example, to be able to book an appointment for 10:00am for 'America/New_York' timezone, which is not an hour that we have available in our appointment. Solution: The issue is caused by the browser "storing" the page and not calling the controller again when we go back which leads to not updating the `request.session.timezone` key. So what we do here is to prevent the browser from storing the page, so when we go back, the controller is called again and the `request.session.timezone` is updated. opw-3116509 Forward-Port-Of: odoo/enterprise#38826 Forward-Port-Of: odoo/enterprise#37920
steps to produce: - go to the helpdesk teams - select assignment method 'Random' or 'Balanced' - add same user(mitchell admin) as team member in both teams - then change assignment method to 'Manual' in one of team. - while applying 'my teams' filter on helpdesk team both of team will visible issue: manual assignment method and previously added team member on helpdesk team for that case my team filter not working properly. fix: adding domain for 'my teams' in helpdesk team task-305
Original PR description
steps to produce: - go to the helpdesk teams - select assignment method 'Random' or 'Balanced' - add same user(mitchell admin) as team member in both teams - then change assignment method to 'Manual' in one of team. - while applying 'my teams' filter on helpdesk team both of team will visible issue: manual assignment method and previously added team member on helpdesk team for that case my team filter not working properly. fix: adding domain for 'my teams' in helpdesk team task-3052920 Forward-Port-Of: odoo/enterprise#36603
### The Bug: We are getting a traceback when printing an invoice, for all invoices where the CDR was retrieved from IAP/Digiflow/SUNAT after the sending of the EDI document failed because the invoice already existed on SUNAT's side. The traceback happens because the EDI document that is saved in the ZIP attachment lacks the signature that is needed to generate the QR code. This is because we saved the unsigned version of the EDI document instead of the signed version. ### The Fix: In
Original PR description
### The Bug:
We are getting a traceback when printing an invoice, for all invoices where the CDR was retrieved from IAP/Digiflow/SUNAT after the sending of the EDI document failed because the invoice already existed on SUNAT's side.
The traceback happens because the EDI document that is saved in the ZIP attachment lacks the signature that is needed to generate the QR code.
This is because we saved the unsigned version of the EDI document instead of the signed version.
### The Fix:
In `_l10n_pe_edi_sign_invoices_{iap,digiflow,sunat}`, we always return the signed version of the EDI document, even if the IAP/Digiflow/SUNAT service returned an error, so that if we are able to recover from the error (in the case where the invoice already existed on SUNAT and we are able to download its CDR), the signed version gets saved.
opw-3243335
Forward-Port-Of: odoo/enterprise#39151
Forward-Port-Of: odoo/enterprise#39046…ounts When multiple analytics account exist on projects, the sql query will have less placeholders than the account ids arguments. And the getter from the dict will use a key that has all ids. see also https://github.com/odoo/odoo/pull/112271 Forward-Port-Of: odoo/enterprise#36855
Original PR description
…ounts When multiple analytics account exist on projects, the sql query will have less placeholders than the account ids arguments. And the getter from the dict will use a key that has all ids. see also https://github.com/odoo/odoo/pull/112271 Forward-Port-Of: odoo/enterprise#36855
In the Documents app, create a new spreadsheet from a template. Reload the page => you see the raw template data Since 8377cd6 Test backported (and adapted) from bfe094b Forward-Port-Of: odoo/enterprise#39215 Forward-Port-Of: odoo/enterprise#39190
Original PR description
In the Documents app, create a new spreadsheet from a template. Reload the page => you see the raw template data Since 8377cd6 Test backported (and adapted) from bfe094b Forward-Port-Of: odoo/enterprise#39215 Forward-Port-Of: odoo/enterprise#39190
Description of the issue/feature this PR addresses: When trying to display any pill in the project.task gantt view (when the timesheet module is installed) a traceback is raised. Basically the time formater was deprecated, now using a simple reference, not 100% sure it's good in every case. Task-3249673 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#39013
Original PR description
Description of the issue/feature this PR addresses: When trying to display any pill in the project.task gantt view (when the timesheet module is installed) a traceback is raised. Basically the time formater was deprecated, now using a simple reference, not 100% sure it's good in every case. Task-3249673 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#39013
Steps to reproduce: - Go to Apps, and install the module `l10n_se_reports`. - Go to Accounting > Reporting > Fiscal Year EC Sales Report. - Select This Financial Year and click on "PDF". Issue: We aren't able to generate the pdf report for the fiscal year in ec sales report. Solution: We need to fix the limitation inside `_get_se_period` which wasn't ableing to get the period for a financial year. FW - port: saas-15.3 opw-3088073 Forward-Port-Of: odoo/enterprise#38846 Fo
Original PR description
Steps to reproduce: - Go to Apps, and install the module `l10n_se_reports`. - Go to Accounting > Reporting > Fiscal Year EC Sales Report. - Select This Financial Year and click on "PDF". Issue: We aren't able to generate the pdf report for the fiscal year in ec sales report. Solution: We need to fix the limitation inside `_get_se_period` which wasn't ableing to get the period for a financial year. FW - port: saas-15.3 opw-3088073 Forward-Port-Of: odoo/enterprise#38846 Forward-Port-Of: odoo/enterprise#34976
before this commit, text was getting out of the kanban card After this commit, text was given width in the kanban card task-3147011 Forward-Port-Of: odoo/enterprise#39159 Forward-Port-Of: odoo/enterprise#36534
Original PR description
before this commit, text was getting out of the kanban card After this commit, text was given width in the kanban card task-3147011 Forward-Port-Of: odoo/enterprise#39159 Forward-Port-Of: odoo/enterprise#36534