Daily updates from Odoo
Navigate
Branch
Saturday, April 20, 2024
69 changes
58 changes
New functionality added to Odoo
Odoo Social now supports sending and receiving Facebook page messages directly in Discuss, helping teams manage customer conversations without leaving Odoo. Page-specific operators can be assigned, and Odoo automatically selects an available operator to avoid notifying everyone while keeping conversations covered.
Original PR description
Purpose ======= Be able to send/receive Facebook messages in Discuss. The code must be generic, to be able to send messages on other medias, in the future. Specifications ============== Features…
Purpose ======= Be able to send/receive Facebook messages in Discuss. The code must be generic, to be able to send messages on other medias, in the future. Specifications ============== Features -------- We want to be able to send messages from Odoo to Facebook and to receive the Facebook messages in Odoo. We want to specify operators per page. So, a list of users will receive the messages of the Facebook page and will be able to respond. Facebook webhook ---------------- Facebook manage events (as new message) with webhook. You specify an URL in your application setting, and when you receive a new message on your page, Facebook will perform a HTTP request on the endpoint you specify with the message information. The steps are 1. You create a Facebook application, and you set your callback URL to `<web_base_url>/social_facebook/webhook` 2. You connect your Facebook account with Odoo (so we have an access token per page) 3. Each page make a HTTP request to register itself to the webhook (to receive the new messages) 4. When a new message is received on a page, Facebook perform a HTTP request with the page ID. IAP --- If the user use IAP, a callback URL will be passed to IAP during the authentication. We save it in the IAP database. So, when IAP will receive a new event, we look at the Facebook page ID (in the data we received from Facebook), and we give the event to the right callback URL. Note that multiple Odoo database might be linked to the same Facebook page, that Facebook send notifications in batch(so we can receive notifications of different page/database in same request). Signature --------- In order to prevent malicious users from impersonating Facebook sign each message with the APP secret. If the events are passed thought IAP, the signature is checked when IAP receive the message and then IAP sign each request to each database with the shared secret passed during the authentication (this key is build with the database secret). So, each message is signed and can not be impersonate. Operators -------------- To not spam all operators with all social messages, we want to choose only one operators to respond to the Facebook contact. The order of priority to choose an operator is 1. An online operator who is not in an active social channel 2. The online operator who has the lowest number of active social channel 3. An offline operator who is not in an active social channel 4. The offline operator who has the lowest number of active social channel A social channel is considered as "active" if one message has been sent in the last 30 minutes. We take offline operators if nobody is available to not loose the conversation and to be able to respond later to the customer. Task-2124457
The appraisal app now includes an onboarding tour to help new users get started more easily. Managers can also personalize confirmation emails before sending them, while appraisal, goal, and plan screens receive clearer presentation improvements.
Original PR description
This PR adds the hr_appraisal onboarding tour to guide the user through the first steps of this module. There are also some cosmetic changes for appraisal form and list views, appraisal plan list view and goals form and kanban view. A new wizard is also added to allow the user to customize the Confirm and Send mail body. There are two new mail notifications along with it to hide some of the technical details of the mail body to the user. TASK ID: 2274970
Odoo Social Marketing can now connect to YouTube channels through Google authentication. Users can manage channel videos, comments and replies, mark spam, upload videos, and share YouTube links through other connected social networks.
Luxembourg accounting reports now include electronic versions of key statutory reports in the main Luxembourg reports module. This simplifies access to balance sheet, profit and loss, VAT, and Intrastat electronic reporting while keeping automated checks to ensure reports generate correctly.
Original PR description
Luxembourgian electronic reports module of v13 consists of electronic version of the Balance Sheet, Balance Sheet(Abridged), Profit and loss, Profit and loss(Abridged) and vat report. Also it has a test case that ensures error free generation of different electronic reports. Here, the electronic reports module is merged with Luxembourgian reports module for master. Task: 2198395
Odoo Social now lets users connect Facebook Groups, view group feeds and mentions, and choose which linked Facebook Page account should post to a group. This helps teams manage group engagement from Odoo alongside their existing social media channels.
Original PR description
Purpose ======= Allow the users to link their Facebook groups in Odoo, to see the feed of the groups and the group mentions. Specifications ============== Facebook API ------------ If we want to…
Purpose ======= Allow the users to link their Facebook groups in Odoo, to see the feed of the groups and the group mentions. Specifications ============== Facebook API ------------ If we want to access to the Facebook group of a user, we need to install our application in the setting of the Facebook group (Just adding app ID in the group setting, we do not need to develop something). > `https://developers.facebook.com/docs/groups-api` Features -------- So, in order to link the Facebook group to Odoo, the user have to 1. Link his Facebook account in Odoo (by clicking on the media) 2. We fetch from the Facebook API the groups of the user and we display them in Odoo 3. As we can link many pages to one group, the user have to choose which account he want to use to post on the Facebook group 4. Then, he can generate a `social.account` from the Facebook group and the Facebook page Task 2191132 PR #8639 See odoo/upgrade/pull/827 See odoo/iap-apps/pull/167
Enhancements to existing features
Helpdesk tickets now include the related commercial customer, making it easier to see all tickets tied to the same company even when different contacts submitted them. This improves filtering and grouping so support teams can get a consolidated customer view faster.
Original PR description
Before this commit, in the case where tickets where assigned to contacts, it was very cumbersome to get a unified view of one customer. Now, commercial partner is set as a ticket column and as such…
Before this commit, in the case where tickets where assigned to contacts, it was very cumbersome to get a unified view of one customer. Now, commercial partner is set as a ticket column and as such available on filters and groupings. Peer of odoo/odoo#26226 It's probably just a first step in the right direction... **Description of the issue/feature this PR addresses:** - Tickets are not easily groupable by commercial partner - Tickets can be filed by different contacts (email adresses) - A consolidate view is cumbersome, for example if "colleague X" had filed that ticket last week, could you check? **Current behavior before PR:** - No grouping or accurate filtering by the commercial company behind the reporter's contact **Desired behavior after PR is merged:** - Appropriate grouping to the commercial company is possible. - Accurate filtering by commercial company supports the exposed workflow **Note:** Please do not close, even if not immediately accepted (`wishlist` tag). This PR is meant to be carried along and actively maintained, until this semantic will be completed this way or another. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr @xoe-labs
Settings screens now offer a QR code shortcut so users can quickly download the mobile app on their phone. This improves onboarding and makes mobile access easier from key setup areas such as expenses and timesheets.
Original PR description
Back2Basics of the base_setup module. Add a QR Code client action when clicking on the base_setup setting icons in settings to allow users to directly download the app on their phone. Task-ID: 2338797 Related: https://github.com/odoo/odoo/pull/62826
The Studio submenu was converted to a newer interface foundation to make future changes easier and more consistent. This mainly affects internal behavior in Studio and Website Studio, with limited direct impact for end users beyond smoother ongoing maintenance.
Original PR description
PURPOSE Prepare future for owl SPEC Convert submenu to owl TASK 2289910
The Studio dialog used to create new fields has been updated to a newer interface framework. This should make the field creation experience more reliable and easier to maintain, especially when users add fields by dragging and dropping them in Studio.
Original PR description
convert newfield dialogbox to owl task - 2289999
Timers started from tasks or helpdesk tickets now stay in sync with the Timesheets timer header. This reduces duplicate effort and ensures time is logged consistently when users switch, stop, or cancel timers across these screens.
Original PR description
* = helpdesk_timesheet PURPOSE ------- Currently, the timer on tasks/tickets works "independently" from the timer header of the Timesheets app. For instance, if the timer was launched from a task, it is not reflected in the Timesheets app. The goal of this task to make these two behaviors consistent. SPECIFICATIONS -------------- If the timer is launched on a task while it was always running on another one, the timesheet entry for the latter should automatically be logged instead of simply pausing the timer. If the timer was launched from a task/ticket, it should also be running in the timesheet app Task-Id: 2276015 Co-authored-by: Mahendra Barad <mba@odoo.com> Co-authored-by: Nidhi Patel <nia@odoo.com>
Online appointment invitation emails now include more useful context in the header, such as the appointment name or type. The message wording is clearer for customers and staff, removes unnecessary response buttons for customers, and formats appointment details more cleanly.
Original PR description
This PR is linked to odoo/odoo#49201 It adds some useful information in header of the invitation mail being sent while booking an online appointment. TaskID - 2199620
Planning now highlights shifts that may cause overtime or exceed a task deadline, helping managers spot scheduling risks earlier. It also adds filters for conflicts, overtime, missed deadlines, and employee job titles so teams can review problematic shifts more quickly.
Original PR description
[IMP] planning: overtime warning The calculation of accurate overtime is a bit complex: – it is recommended to use UTC for internal calculations and local time to display output, – a slot can begin and end on the same day or not, which means 00:00 in local time must be taken into account, – there can be several slots in a day, – calculations are done in decimal format because of the way the number of legal work hours is retrieved. That implies a trick to format overtime. --- [IMP] planning, project_forecast: deadline warning If a task deadline is defined, which implies a task and its parent project too, display it in the slot form. If the deadline is over, display warnings in the slot popover and form. --- [IMP] planning, project_forecast: new filters Add new filters: – Shifts in conflict, – Shifts in overtime, – Exceeded deadline – Employee's job title Task ID: 2215216
The Web Studio field selector dialog was modernized using Odoo's newer interface framework. This keeps the customization experience consistent and makes future enhancements easier to deliver with less maintenance risk.
Original PR description
PURPOSE Prepare future for owl SPEC Convert field selector dialog to owl Task: 2309531
When users rotate an attached image, the updated version is now shown immediately in the form's attachment viewer. This keeps the preview consistent with the saved file and avoids confusion from seeing an outdated image.
Original PR description
PURPOSE
when we rotate an image and close it, it will save that image and it should update
the image in attachment viewer in form
SPECIFICATION
it should update image in attachment viewer also on rotate
LINKS
PR https://github.com/odoo/enterprise/pull/11565
Task 2067052Document workflow actions can now create records such as invoices or move documents to workspaces even when the user does not normally have direct create access. The final result still respects the user's permissions, making document processing smoother without broadly expanding access.
Original PR description
This commit will allow workflow actions that create records to bypass create access rights. If a record is created this way, the resulting action is still based on the user's rights. task-2232959
Managers can now set a deadline after which employees can no longer mark themselves unavailable or unassign themselves from scheduled shifts. This helps reduce last-minute staffing gaps while keeping employees informed through updated shift pages and reminder emails.
Original PR description
- Configure self-unassignment delay - Self-unassignment delay on shifts - Self-unassignment delay on webpage - Multi-shift email template self-unassignment delay reminder - Single-shift email template self-unassignment delay reminder Adding a delay until which employees can no longer unassign themselves would bring peace of mind to managers and prevent abuse. The 'I am unavailable' button is hidden if we are past the deadline. The delay can be counted towards the beginning of the shift, week of the shift or month of the shift. The week starts on Sunday for companies in the US, Canada or Japan. Self-unassignment should fail if requested past the deadline.
This update improves the employee login experience in the Belgian point of sale module. It should make staff sign-in with employee badges smoother and more reliable during daily retail operations.
Access to certain fleet vehicle information is now limited to fleet administrators. This helps ensure sensitive or controlled fleet-related fields are only managed by authorized users.
Original PR description
[IMP] fleet_vehicle: refine accessibility to some fields ------------------------------------------------------------------------- Fleet_vehicle accessibility to particular fields has been refined and is now restricted to fleet administrator only. TASK#2032894
The Studio menu editing window has been updated using a newer interface foundation. This keeps the feature ready for future improvements while preserving the menu editing experience for users.
Original PR description
PURPOSE Prepare future for owl SPEC Convert Studio Edit Menu to owl TASK 2289908
This change identifies and disables internal navigation actions that appear unused across several Enterprise apps, reducing clutter and future maintenance work. One manufacturing-related action is moved to the Enterprise module where it is actually used, helping keep app ownership clearer without expected business workflow changes.
Original PR description
Enterprise counterpart of https://github.com/odoo/odoo/pull/45188 Ir.actions.act_window seemingly unused in Odoo codebase: Not linked to a given menu, not referenced in the code. Some actions are only used in enterprise but defined in community, and could maybe be moved between modules. ## This PR isn't expected to be merged But split in multiple parts, after scope by scope review of responsible Gooroos (and removing instead of commenting the given actions). [Task ID - 2188942](https://www.odoo.com/web?#id=2188942&model=project.task&view_type=form)
The electronic invoicing modules for Peru, Colombia, and Mexico were adjusted to work with recent accounting and EDI platform changes. This helps keep invoice processing and compliance flows functioning correctly after the underlying system split.
Original PR description
…count_edi and edi.
This update improves how users insert and link Odoo records, lists, and pivot views into Documents spreadsheets. It should make spreadsheet-based reporting workflows smoother and more reliable for teams using shared documents.
Point of Sale sessions can now keep two key actions directly accessible on the product screen, while moving extra actions into a dialog when there are more than three. This makes common cashier actions easier to find without overcrowding the screen.
Original PR description
Define 2 quick access action button and hide the other inside a dialog. These actions are defined inside the pos session config It's only take care of this development if more than 3 actions exist inside the pos session. Task ID: 2453679
The Sign app gains several user-facing improvements, including multi-upload support, reusable field templates, clearer recipient workflows, and the ability for recipients to refuse signing. The update also improves Sign request views, signer status visibility, mobile signing reliability on iOS, and logging accuracy, making document signing easier to manage and track.
Original PR description
New functionnalities to the app (multi upload, field template, recipients workflow, refuse to sign, visual improvements)
Helpdesk SLA reports are updated to make performance easier to understand, with clearer success and failure rates, ticket counts, and time-based measures. The default report now focuses on the last 30 days and groups results by helpdesk team and SLA, helping managers quickly spot service performance issues.
Original PR description
The purpose of this task is the current SLA status analysis report is hard to understand and doesn't provide much-added value. So in this commit, we add the following measure - 'Success Rate' measure…
The purpose of this task is the current SLA status analysis report is hard to
understand and doesn't provide much-added value.
So in this commit, we add the following measure
- 'Success Rate' measure that represent the % of tickets closed without failing
the SLA vs. the total number of tickets
- 'Failure Rate' measure that represent the % of tickets closed and having
failed the SLA vs. the total number of tickets
- 'Successful Tickets' measure that represent the number of tickets closed
without failing the SLA
- 'Tickets in Progress' measure that represent the number of tickets with this
SLA in progress
- 'Tickets in Total' measure that represent the total number of tickets,
regardless of the status of the SLA
And Rename the following measure
- rename 'ticket failed' into 'Failed Tickets'
- rename 'time to first assignment (hours)' into 'Hours to assign'
- rename 'Time to close (hours)' measure into 'Hours to close'
Add by default:
- the filter should be 'last 30 days'
- the report should be grouped by Helpdesk Team > SLA
- the measures should be: 'tickets failed' + 'failure rate'
-> remove the 'SLA Status Failed' measure
-> remove the 'open time (hours)' measure
-> change the 'day to reach SLA' measure to 'Hours to reach SLA'
-> the values from the measures expressing hours is formatted as 00:00
instead of 0
LINKS
PR: #18799
Task-ID: 2500895Several enterprise services now use more consistent route names, with redirects preserving existing access. This improves naming consistency across connected features while minimizing disruption for users and integrations.
Original PR description
requirement: https://github.com/odoo/iap-apps/pull/327
Cancelled or refused signature requests are now treated as final, so they cannot be reopened or resent and signers no longer see cancelled items. The Sign app also simplifies template sharing and permissions, making ownership, invited users, and access rules clearer and safer for employees and managers.
Original PR description
Don't need to RESEND canceled sign requests Change the draft state of sign request item to canceled With the new mechanics Refuse to Sign, the cancel state is harder to manage, because it can become reopen. The logic will be to consider Refused and Cancelled as end steps of the stage. When a Sign Request has been cancelled, the item is no longer available for the signer and it won't move from that state. If the user want to change it, and resend it, he have to start from scratch. taskid: 2582307
Twitter posts now show a character counter and warn users when a message exceeds Twitter's 280-character limit, including special handling for emojis and new lines. This helps users fix messages before posting, avoiding failed posts and unusable retry attempts.
Original PR description
PURPOSE While posting a message on Twitter, even though it has some character limit, we can still create a long message which eventually crashes on posting. The 'Retry' button which appears after…
PURPOSE While posting a message on Twitter, even though it has some character limit, we can still create a long message which eventually crashes on posting. The 'Retry' button which appears after thus crashing of the post has no use then. So our purpose is to remind users that their tweets can't be longer than 280 characters hence prevent it from the sudden crash while posting SPECIFICATION To do so these are the changes proposed. -Twitter post max length as per its documentation is 280 characters, where standard alphabets, space as well as newlines carry a weight of 1 and emojis carry a weight of 2. This is now taken into account. -Under the 'message' field we have added a read-only text which indicates the current length out of total characters to be fit in the Tweet we are posting. -If the message length is beyond the max-length we have set, the count sentence will be highlighted as a warning, -Also the overflowed text will be highlighted in the preview of the post. -If one tries to post a Tweet with more than the max-length, a user error is threw either to limit the characters or deselect the Twitter account. LINKS Task-id : 2517821 PR #18312
Odoo Studio now automatically applies the right avatar display when users add an avatar field to a kanban card for users or employees. This makes kanban cards look correct with less manual setup and avoids offering the avatar option when one is already present.
Original PR description
when adding an avatar field with the 'add an avatar' studio link - if the selected field is a many2one to res.users, it will set the many2one_avatar_user widget on the field. - if the selected field is a many2one to hr.employee, it will set the many2one_avatar_employee widget on the field. - removed the 'add an avatar' link if there is already a many2one_avatar_xxx widget in the kanban card. TaskID-2530023
This update adjusts how Twitter posts are managed and displayed in Odoo's Social Marketing area. It should make the Twitter stream experience more consistent for users working with social posts, though the available PR details are limited.
The approvals test suite was simplified by removing repeated checks that did not add extra validation. This makes ongoing maintenance easier while keeping the same product behavior and test intent.
Original PR description
PURPOSE: remove duplicate assertions. SPECIFICATIONS: Improve the test case by removing unnecessary and duplicate assert. LINKS: Task: 2462115
Document search panel filters can now be displayed in a defined order, making it easier for users to scan and choose relevant categories or tags. This improves navigation consistency when working with grouped filters in Documents.
Original PR description
with this commit, we are providing the new parameter named "order" in <field> of <searchpanel>. it will sort the filters based on field passed using the parameter named "order" externally. even multiple grouped filters and categories also ordered by the field provided. Task : 2001615
Vehicle model setup now shows clearer tax-related details for cars and bikes, including tax deduction, CO2 fees, and electric assistance where relevant. Manufacturer cards also show car and bike counts, making fleet data easier to review at a glance.
Original PR description
…l and kanban list
Currently, when adding some new manufacturer models, we don't know the
tax deduction and the CO2 fees. Also the UX of the kanban list view and
manufacturer model needs to be improved.
By this commit, in Manufacturer > Model for vehicle type;
-Car: Tax Deduction and Co2 fees are added
-Bike: Tax Deduction and Electric Assistance are added
In the kanban list view of Manufacturer, the counts of bikes and cars of
each particular manufacturer is added in the kanban card.
TaskID: 2439798Employees now receive email alerts when their published shifts are changed or deleted, helping them stay aware of schedule updates. Managers or shift creators are also notified when published open shifts are assigned or when employees unassign themselves, making it easier to reallocate work quickly.
Original PR description
Purpose of this task is to warn the user that his initial schedule has changed and Make managers aware that a shift has to reallocated when the person who was supposed to do the shift unassigned himself. So in this commit we send the mail according to below changes to the employee/manager. - Shift that is published is modified then send the email to the employee assigned to the shift. - Shift that is published is deleted then send the email to the employee assigned to the shift. - An employee unassigned himself from a published shift then send the email to the user who created the shift. - Published open shift is assigned then send the email to the user who created the shift. task-2287739
The timesheet grid now includes clearer guidance in the product tour before showing users how to adjust timesheets manually. The timer control icon has also been updated to better communicate stopping time tracking, with a related keyboard-use issue fixed for lines without tasks.
Original PR description
The purpose of the task is to adjust tour and adjust icon So in this commit, - Added extra tour step before tour shows how to adjust time sheet manually - Replace the arrow button which means play with square button which means stop TaskId: 2451807
Users can now swipe a notification from left to right to mark it as read in the inbox. This makes managing notifications faster and more intuitive on mobile devices.
Original PR description
PURPOSE Swiping a notification from left to right should mark it as read in the inbox. SPECIFICATIONS Swiping a notification from left to right will mark it as read in the inbox. LINKS: Task 2391177
The VoIP app now works with the new Scheduled Phonecall activity type introduced in the broader activity system. This helps users create VoIP phone calls directly from scheduled call activities, improving follow-up planning and call handling.
Original PR description
### Adapts the VOIP module based on the community changes that add a new mail.activity.type: "Scheduled Phonecall". This will allow creating void.phonecall from this new activity type. See the related PR linked below for further details about the introduction of this new mail.activity.type. LINKS: TaskID: 2486126 Related: odoo/odoo#69685
Users can now select a record in the map side panel by clicking anywhere on its row, instead of only on the text. This makes navigating from the list to the matching map pin faster and less frustrating.
Original PR description
PURPOSE In the map view sidepanel, clicking anywhere on a record row should select it, and redirect to the corresponding map pin. Currently, the user needs to click on the string itself, which is bad design. SPECIFICATION Currently > in the map view sidepanel, the user needs to click exactly on the record <a> to select it Expected > clicking anywhere on the record <li> should select the record TASK 2471919
Resolved issues and error corrections
Marketing automation emails now allow users to edit the preview text, helping teams better control how messages appear to recipients. SMS marketing forms now use the label “Title” instead of “Subject,” making the form clearer and more appropriate for text messages.
Original PR description
preview text in marketing automation mailings is now editable, earlier there was no option for input. subject field name is changed to title in marketing automation sms as subject looks weird in sms form.
Appointment confirmation details now align more naturally on mobile screens. This makes the booking confirmation page easier to read and more polished for users on phones, while preserving the desktop layout.
Original PR description
This will fix the right alignement of the label when a appointment is confirmed and on mobile. Before this commit the labels where aligned all the time the right, which is nice on Desktop, but not so pretty on the mobile side. After this commit the labels are pulled to the left using simple css media queries on max 767px in width. --------------- Task #2302663/6
This update fixes issues in time off accrual handling and related Belgian payroll work entry setup. It helps ensure leave balances and payroll work entries are shown and calculated more consistently, reducing administrative errors.
This update fixes an internal issue in contract-based work entries where date calculations could call a removed process. It helps keep employee work entry dates computed reliably after related HR changes.
Original PR description
…n in hr_work_entry_contract hr_work_entry_contract overrides _inverse_duration to do stuff, and calls super but method has been removed from hr_work_entry. hr_work_entry._inverse_duration was removed and its body, or something equivalent, was moved to a new method hr_work_entry._compute_date_stop, this commit replaces hr_work_entry_contract._inverse_duration with an override of the _compute_date_stop method, the call to super is preserved but now the parent method exists. task: 2285889 related: odoo/odoo/commit/3bd345597fa932abdaf780f72bacf331690f549b
Planning views with many employee rows no longer load every avatar, reducing wait times for large schedules. Copying a week now respects the companies a user is allowed to access, preventing slots from other companies from being copied by mistake.
Users can now leave a sign template while an item options popover is still open without triggering an error. This makes template editing smoother and avoids interruptions when navigating away before validating or closing the item options.
Original PR description
move the popover of a sign item into o_sign_template Before this commit When we edit a sign template 1. click a sign item and open its options 2. click "template" button in the navigation without clicking "validate" or "x" button 3. you will find a trackback taskid: 2645074
Worksheet-style quality checks now close immediately after the user validates them. This returns manufacturing operators to the tablet work order view instead of moving them to another quality check, reducing confusion and keeping the workflow on track.
Original PR description
when quality check of type worksheet close the quality check window as soon as the user validates it and return to the tablet view window rather than next quality check. task - 2555350
Fixed an issue where switching from a filtered timesheet list with no results back to the grid view could cause an error. Users can now move between views smoothly even when their search returns no timesheet entries.
Original PR description
Steps to produce: Go to Timesheets > All Timesheets > list view filter on something that doesn't return any result switch to the grid view. Expected Result: Traceback should not raised, switching view should work smoothly. TASK 2510310
In Studio mode, clicking the SMS icon inside a phone field now selects the phone widget instead of opening the SMS wizard. This prevents accidental pop-ups while editing forms and makes Studio behavior more predictable for users configuring views.
Original PR description
PURPOSE Clicking on sms icon in phone widget in studio mode opens wizard while in studio mode clicking on it should not open wizard instead just select the element. SPEC Clicking on sms icon in phone widget in studio mode should only select phone widget. TASK 2577276
This update adjusts an automated test related to infinite scrolling in the form view chatter. It helps ensure the messaging panel continues to behave reliably when users browse longer conversation histories.
Original PR description
Chatter infinite scroll on form view PR Reference : 64004
This update corrects demo data by pointing it to the right account reference. It helps ensure the demo setup works as expected and avoids errors when loading or testing the sample configuration.
Original PR description
- fixed data by updating account external id
Features or functions removed from Odoo
This change removes or relocates view definitions that are no longer used across several Odoo Enterprise apps. It is expected to have little to no visible impact for users, while reducing maintenance overhead and keeping the codebase cleaner.
Original PR description
Enterprise counterpart of https://github.com/odoo/odoo/pull/45221 Ir.ui.view seemingly unused in Odoo codebase: * Primary views only * Not linked to an action (Current PR is based on #8386 to ensure views used in unused actions are also removed). * Not the default view of the model for the given view type. * Not referenced in the code or in Views archs (`form_view_id=`, `kanban_view_ref=`, ...) ## This PR isn't expected to be merged But split in multiple parts, after scope by scope review of responsible Gooroos (and removing instead of commenting the given views). [Task ID - 2183784](https://www.odoo.com/web?#id=2183784&model=project.task&view_type=form)
Code cleanup and technical improvements
The Project Timesheet synchronization app has been rebuilt on Odoo's newer interface framework to support future development. This should help keep the app maintainable and aligned with upcoming platform improvements, without introducing a new business feature.
Original PR description
PURPOSE To prepare future we want to convert everything into owl. Convert project_timesheet_synchro to owl SPEC Convert project_timesheet_synchro to owl TASK 2208443
The view creation dialog in Odoo Studio was rebuilt using the newer interface framework. This prepares the feature for future improvements while keeping the business workflow essentially unchanged.
Original PR description
PURPOSE Prepare future for owl SPEC Convert view dialog box to owl TASK 2289910
The Map View setup dialog in Odoo Studio was rebuilt using the newer interface framework. This prepares the feature for future maintenance while keeping the user-facing behavior largely unchanged.
Original PR description
PURPOSE Prepare future for owl SPEC Convert map view dialog to owl task: 2302480
Incoming customer emails are now handled more consistently across documents, helpdesk, quality control, and related workflows. This improves customer matching, reduces unnecessary follower notifications, and makes the underlying mail handling easier to maintain for future improvements.
This update reorganizes and standardizes parts of the Point of Sale app, especially mobile employee login and IoT-connected POS components. The changes should make the POS easier to maintain and reduce unnecessary reloads when configuring installed POS modules, helping improve reliability for stores using these features.
Original PR description
Related to: https://github.com/odoo/odoo/pull/70263
Miscellaneous changes
Appointment slots are not reflected in the gantt view so there are no indications of whether an appointment is within a valid time period with regards to the appointment-defined time intervals. This commit adds slot intervals in gantt availabilities display and attempts to have more common ground between slots and gantt. task-3813567 Forward-Port-Of: odoo/enterprise#61033 Forward-Port-Of: odoo/enterprise#60100
Original PR description
Appointment slots are not reflected in the gantt view so there are no indications of whether an appointment is within a valid time period with regards to the appointment-defined time intervals. This commit adds slot intervals in gantt availabilities display and attempts to have more common ground between slots and gantt. task-3813567 Forward-Port-Of: odoo/enterprise#61033 Forward-Port-Of: odoo/enterprise#60100
The pivot autofill template was removed by mistake during a recent update of the lib (due to a lack of tests ...). Forward-Port-Of: odoo/enterprise#60762
Original PR description
The pivot autofill template was removed by mistake during a recent update of the lib (due to a lack of tests ...). Forward-Port-Of: odoo/enterprise#60762
…tprint With this [commit](https://github.com/odoo/enterprise/commit/8638ccc9cc26b997caee852e266b7ecc6f7c632a), we introduced a performance issue for databases with partners having lots (several thousands) bank account numbers. Due to the GROUP BY clause, the query was duplicating each move line for each partner's bank account number, which quickly saturated the server's memory. We eliminated the problem by selecting from `res_partner` instead of `account_move_line`. Forward-Port-Of: o
Original PR description
…tprint With this [commit](https://github.com/odoo/enterprise/commit/8638ccc9cc26b997caee852e266b7ecc6f7c632a), we introduced a performance issue for databases with partners having lots (several thousands) bank account numbers. Due to the GROUP BY clause, the query was duplicating each move line for each partner's bank account number, which quickly saturated the server's memory. We eliminated the problem by selecting from `res_partner` instead of `account_move_line`. Forward-Port-Of: odoo/enterprise#60977 Forward-Port-Of: odoo/enterprise#60851
11 changes
Enhancements to existing features
This update improves the speed of checking unit of measure categories, especially for businesses with large catalogs. By optimizing how the system counts units in a category, processing time is reduced dramatically—from 900ms down to just 15ms for large datasets—resulting in faster system performance and better user experience.
Original PR description
This commit improves the performance of the reference check for large categories of Units of Measure (UoM). After this commit, the number of UoMs in the category is counted using the read_group method instead, resulting in faster performance. ### Benchmark: | Nbr of UoM | Before | After | | ---------: | -----: | ----: | | 0 | 0ms | 0ms | | 1 | 1ms | 1ms | | 30 | 6ms | 3ms | | 200 | 7ms | 2ms | | 18000 | 900ms | 15ms | opw-3775689 Forward-Port-Of: odoo/odoo#157752
Resolved issues and error corrections
Fixed an issue where consolidation reports were always printing in portrait mode, even when the content was too wide to fit properly. The system now automatically detects when a report is too large and switches to landscape mode for better readability and proper formatting of wide financial data.
Original PR description
Before that, the report was always printed in portrait mode. This was due to the fact the consolidation report does not use the options['columns'] key, unlike pretty much every other report. Because of that, the standard code couldn't detect it would be too large for the portrait mode. We fix that by introducing a context key to control that, and forcing it when necessary on the consolidation report. OPW 3850656 Forward-Port-Of: odoo/enterprise#60946 Forward-Port-Of: odoo/enterprise#60637
This update resolves test failures in the appointment scheduling system that were occurring in no-demo mode. The fix adjusts test query counters to match actual system behavior, ensuring automated testing runs smoothly without errors.
Original PR description
Some tests have an additional query, making runbot fail in no-demo mode. This is to investigate but we can already ix tests. Runbot-62058 Runbot-62057 Runbot-62056 Runbot-62055
This fix prevents TaxCloud from recalculating taxes when confirming down payment invoices, which was causing incorrect tax amounts. Down payment taxes are now correctly preserved from when the invoice was created, ensuring the invoice total remains accurate throughout the process.
Original PR description
**Steps to reproduce:** - Install Accounting and Sales - Configure TaxCloud in Accounting settings - Create a SO: * Customer: [US customer] (e.g. Azure Interior) * Product: [any] * Unit Price: [any]…
**Steps to reproduce:** - Install Accounting and Sales - Configure TaxCloud in Accounting settings - Create a SO: * Customer: [US customer] (e.g. Azure Interior) * Product: [any] * Unit Price: [any] (e.g. $ 200.00) * Fiscal Position (Other Info tab): Automatic Tax Mapping (TaxCloud) - Confirm the SO => The taxes will be recomputed with TaxCloud (e.g. $ 20.50 with "Tax 10.250 %") - Create a down payment from SO (via "Create Invoice" button): * Create Invoice: Down payment (percentage) * Down Payment Amount: 50% => The total amount of the down payment is 50% of the total amount of the SO (i.e. $ 110.25) and the computed taxes are the same than the taxes on the SO. - Confirm the down payment **Issue:** Upon confirmation, the taxes are recomputed with TaxCloud and the total amount is not the same anymore. **Cause:** The "Down payment" product has a specific TaxCloud Category and as the taxes are recomputed upon confirmation, the tax amount changes (e.g. from $ 20.50 to $ 0.00). **Solution:** Do not recompute taxes with TaxCloud when confirming a down payment as the taxes should have already been computed correctly when the down payment has been created. opw-3814524 Forward-Port-Of: odoo/enterprise#60722
Fixed a layout issue with blog filters on mobile devices by replacing the broken filter dropdown with a more user-friendly dropdown or side panel (offcanvas) that appears next to the search bar. This improvement makes the mobile experience more consistent with other parts of the website and provides better spacing for easier navigation.
Original PR description
The blogs filters in mobile is breaking the layout. This commit applies a dropdown or an offcanvas instead which is displayed next to searchbar. In this 17.0 fix, the dropdown becomes an offcanvas if we have a sufficient amount of blogs which allows better navigation on mobile and makes it consistent with other website modules. Additionally it adapts the spacing to make it even between the navigation component. The `t-set="_classes"` is not removed in case of potential xpath in production. Same goes for the `container` class on the div at line 9, being overridden by it's t-attf-class counterpart. task-3315921 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145547
This update fixes several critical issues with how accounting chart templates are loaded, particularly for localized versions like Nigeria. The fixes ensure that accounts are created before taxes that reference them, and that tax configuration values are properly applied. This resolves problems where certain countries couldn't properly set up their accounting structures.
Original PR description
Several fixes to the chart_template loading, found because to `l10n_ng` not being able properly accounts and taxes. See related PR. 1. **[FIX] account: defer recursive check** This bug is generally…
Several fixes to the chart_template loading, found because to `l10n_ng` not being able properly accounts and taxes.
See related PR.
1. **[FIX] account: defer recursive check**
This bug is generally hidden in normal localizations because the `get_account_account` function reads `account.account-xx.csv` soon enough to create all the needed accounts.
In `l10n_ng` there is no `account.account-ng.csv`, as it relies on the generic_coa. The chart_template's `get_account_tax` function reads `account.tax-ng.csv` before `get_ng_account_account` is called.
The `defer` function should check the account_tax fields and postpone them until the creates are done, but it only checks the "first level" and doesn't check all the way down to `account_tax.repartition_line_ids.account_id`.
By making `defer` recursive we are able to properly postpone the creation of taxes after the accounts are made.
2. **[FIX] account: deferred repartition_line_ids need Command.clear**
When we load a chart template, we generally create records from scratch. Some relational fields may get deferred, since the record they point at may not yet be created. These fields are then not created with the record itself, they are deferred by the `defer` function and they get updated after all creates.
In case the field is `account_tax.repartition_line_ids` though, if we don't provide repartition lines on a tax, `account_tax._compute_invoice_repartition_line_ids` creates two fake ones.
When the deferred field is populated, all the new repartition lines are added for a total of at least four, two fake ones (base, tax) and at least two regular ones (base, tax).
Since there can't be two base repartition lines, the validation `_validate_repartition_lines` raises a ValidationError.
This behaviour can be avoided if before creating relational fields' sub-records, we clear the existing ones.
It should cause no harm since we are anyway creating or updating the parent record, for example: `account.tax <-- account.tax.repartition.line`.
3. **[FIX] account, l10n_it_edi_withholding: Templates submodels values not evaluated**
Files in the CSV templates that had submodels didn't get their values evaluated.
Example:
`account.tax-xx.csv -> repartition_line_ids/use_in_tax_closing` was not evaluated by `account/models/chart_template.py`'s `_parse_csv` function, resulting in taxes having a "False" value still resulting as True.
This already affects l10n_eg.
In the process, code has been a little de-obfuscated.
*(This came out while testing `task-3724926`. Even if they're not in the scope of the task itself, we noticed that withholding taxes have `use_in_tax_closing` to `True` and putting them to False in the CSV had no effect)*
4. **[IMP] account: compute the template function only once**
The templating function is executed 5 times per Chart template instead of once. It may not be all this relevant, but the fix is very basic.
Note: `isinstance` should always be `list | tuple` instead of `(list, tuple)`
related PR: https://github.com/odoo/odoo/pull/148370
task-3607459This fix resolves an issue where the live chat system could select an operator who wasn't available for assignment, causing errors. The system now correctly ensures that only operators from the approved list are selected when assigning someone to handle a new chat conversation.
Original PR description
Before this PR, trying to get an available operator could result in an error. When a live chat is created, an operator is selected based on various criteria such as language, country, number of ongoing chats and availability for calls. This selection process involves the `_get_less_active_operator` method, which receives the status of all operators and a list of operators to choose from. Prior to this fix, an operator not included in the list of operators to choose from could still be selected, resulting in errors when trying to locate them in the operator list. This PR resolves the issue by ensuring that operators are only selected from the provided list. opw-3874872
This fix corrects a German translation issue where both "Source" and "Reference" fields on printed invoices were labeled identically as "Referenz". The translation team recommended using "Verweis" for "Source" to distinguish it from "Reference", making invoices clearer for German-speaking users.
Original PR description
Steps to reproduce:
- Install Contacts, Sales, Accounting and l10n_de
- Configure DIN5008 as document layout in the settings
- Install German language
- Create a contact with German as language (e.g. German Contact)
- Create a SO with German Contact as customer
- Create an invoice from the SO
- Add a Customer Reference ("Other Info" tab) on the invoice
- Confirm and print the invoice
Issue:
On the printed invoice, both "Source" (i.e. the SO) and "Reference" (i.e. Customer Reference) labels are translated with the same German term: "Referenz".
Solution:
Translation team suggested to use "Verweis" to translate "Source" in German.
opw-3821069
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#162559
Forward-Port-Of: odoo/odoo#162381Fixed an unnecessary database operation that was occurring when portal users were created, which could cause system errors during high-volume user signups. The system now skips this operation for portal users since they don't use the digest feature anyway, improving reliability and performance.
Original PR description
When a portal user is created (e.g. through the `auth_signup` module), an unnecessary write is done on the `write_date` of the default digest. This `write` is unnecessary since a portal user is never subscribed to the default digest. In case of a high signup frequency, it can cause concurrent transaction errors. We avoid writing if no internal user is being created. Forward-Port-Of: odoo/odoo#162230
Activity summaries in the Accounting app's Miscellaneous Operations view were stretching across the entire screen when text was long. This fix constrains the activity summaries to stay within their card boundaries, improving the dashboard's visual layout and readability.
Original PR description
Issue ----- The activities summaries displayed by the misc. operations view in the accounting app take up the entire screen and span across the card if the activity summary is too long. Steps ----- - Open the Accounting App. - Create a new entry from 'Miscellaneous Operations'. - Add an activity with a long summary. - Go back the dashboard. The summary will try to span the entire width. Cause ----- The activities are displayed with a field tag in the kanban view. The field tag refers to the activities js component as a widget. Due the use of a widget attribute, the template generates a div with class: "o_field_widget". This class is defined to have a css "display" attribe with a default value of "inline-block". Using "inline-block" causes the activity row to take up the whole width. opw-3839992 Forward-Port-Of: odoo/odoo#160167
This fix resolves a crash that occurred when users tried to install the PEPPOL accounting module. The issue was that enabling PEPPOL didn't properly update a related module's form view, causing the installation to fail. Now the system automatically updates the necessary form when installing PEPPOL, allowing users to successfully enable this feature without errors.
Original PR description
The aim of this commit is to allow user to install `account_peppol` without facing a traceback. Context: The commit cffd0e9dd91376dd7fe4613f4fd94e659daaeef0 introduced a check based on a field introduced in the view by another module it depends on. The problem is that ticking the peppol checkbox install the `account_peppol` module but doesn't trigger an update of the `account_edi_ubl_cii` module. Before the commit: Impossible to installing `account_peppol`. After the commit: Installing `account_peppol` will update the view `account_edi_ubl_cii.account_move_send_form` if the field added by commit cffd0e9dd91376dd7fe4613f4fd94e659daaeef0 can't be found. opw-3874304 Forward-Port-Of: odoo/odoo#162598