Daily updates from Odoo
Friday, December 19, 2025
4 changes
New functionality added to Odoo
This update adds a dedicated return type for Stamp Taxes within the Turkish localization of Odoo Enterprise. This allows users to accurately file and track Stamp Tax returns, addressing a previous gap in reporting functionality. It aligns with recent changes to support Stamp Taxes.
Original PR description
Before: Stamp Taxes did not exist in the Turkish localization. No return type or reporting structure was available for them. After: Added a dedicated Stamp Tax return type to match the Stamp Taxes introduced in the linked PR. Impact: Enables users to file and track Stamp Tax returns separately and correctly. Related PR-https://github.com/odoo/odoo/pull/236197 TaskId-4953773
This update introduces the ability to automatically send signature requests to pre-defined contacts (users or partners) triggered by server actions. Odoo Studio users can now easily automate signature workflows across Odoo applications, streamlining document approvals. This improves efficiency and integration with automation processes.
Original PR description
Add the option of sending a signature request to pre-defined signers or linked fields to `res.users` or `res.partner` when a server action is ran. Odoobot does the sending of the signature request and the message post on the chatter of the reference record. This is a useful feature for using automations with Odoo Studio across all Odoo applications. task-5187133
This update introduces a new grid view for work entries within the Enterprise module, providing a more visual and detailed representation of employee hours. This allows for better tracking of work time, accounting for absences and incomplete hours, and facilitates payrun generation when payroll is enabled.
Original PR description
*=hr_work_entry_enterprise,hr_payroll,web_grid Added the grid view to the work entries enterprise module, accounting for unavailable days, incomplete hours per day, and allowing for generating payruns if payroll is installed. The column totals are formatted depending on the expected worked days and the total work entries on a given day. Task-5118840
This update introduces an automated Timesheet Assistant that tracks user activity on their computer and suggests relevant timesheet entries based on their work. This streamlines timesheet creation, reducing manual effort and improving accuracy for consultants, ultimately boosting billable rates.
Original PR description
Purpose ======= The goal is to make timesheet entry as quick and effortless as possible for consultants. Easier time logging means fewer forgotten entries, better visibility on activities, and…
Purpose ======= The goal is to make timesheet entry as quick and effortless as possible for consultants. Easier time logging means fewer forgotten entries, better visibility on activities, and ultimately a higher billable rate for the department. This PR is the first step in a series of features aiming to address this. It adds a new "Timesheets Assistant" feature, tracking the activity of users on their computer, and suggesting timesheet entries based on this data. Implementation ============== ActivityWatch ------------- Most of this new feature requires installing the tool [ActivityWatch](https://activitywatch.net/). This tool collects data through *watchers*, which are units tasked with one type of tracking. By default, there is one watcher tracking the name of the active window, and one tracking whether or not the user is actively using the computer. There are also additional watchers that can be installed by the user, the most important being a browser extension to get extra information about which websites were visited. This is used, among other things, to detect which activities were done in Odoo. Watchers send their data to a local server, which is then queried by the JavaScript code in Odoo. It is important to stress that this data only stays on the **client-side** and is never sent to the server, until the user decides to use it to create timesheets. Processing the Data ------------------- First of all, we start by retrieving the calendar events and planning shifts we can find for the current user, if the right modules are installed. We then add the data collected by ActivityWatch. We have two ways of processing that data: - **Odoo Activities**: With the browser watcher enabled, we track whenever the user is working on a record that we could connect to a task or a project. We then consider that subsequent activities were connected to that project, until another project/task detection. - **Matching Rules**: This allows filtering activities based on a regex that is run on a concatenation of the name and URL (if present), and matching them to a label that will show up in the suggestions of the timesheets assistant. The labels can contain placeholders that will be replaced with elements captured by the regex. Rules can also optionally be bound to a project or task, in which case they will count as a project/task change for subsequent activities. The precedence order for the data is as follows: 1. Calendar Events 2. Planning Shifts 3. Matching Rules, in order of ascending sequence 4. Odoo Activities In case of overlapping events from different sources, the one with lower precedence will be ignored for the duration of the overlap. Suggestions ----------- This results in aggregates of durations, with a label, and optionally a project or task. In the assistant interface, they are displayed in a list that can be (or not) grouped by the matched projects and tasks. The user can then choose one or more activities to convert to a timesheet, or dismiss the suggestions. Suggestions hidden this way will not show up again. Existing timesheets for the current employee are also shown on the right side of the assistant UI. They can be edited or deleted from there. When the user created a timesheet from activities, we track which project and task they match it to. This data is used to automatically match activities to projects and tasks based on the user's habits. --- Task-5167914