Daily updates from Odoo
Navigate
Branch
Monday, August 5, 2019
34 changes
New functionality added to Odoo
Discuss now includes a History mailbox where read messages are moved, helping users find previous conversations without cluttering their inbox. The history is based on Odoo-managed notifications and keeps messages for up to six months, with related cleanup changes to manage older notification records.
Original PR description
Task: https://www.odoo.com/web#id=40597&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.69e9cabdb6eab7ac13caa30c7639ed5b -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change lets companies manage multiple operating units and assign them to key business documents such as invoices, sales orders, purchase orders, point-of-sale orders, payments, expenses, and journal entries. When enabled, reports and document headers can show the relevant operating unit's details instead of only the parent company, improving accuracy for multi-branch or multi-division operations.
Original PR description
Task: https://www.odoo.com/web#id=1917619&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.9da01f115c928cde4b8eb85243999c84 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
Products can now store a Country of Origin, which is automatically copied to invoice lines when the product is selected. This helps Belgian Intrastat reporting capture required origin information more consistently and reduces manual entry.
Original PR description
Description of the issue/feature this PR addresses: - Related task: https://www.odoo.com/web?#id=1967762&model=project.task&view_type=form&menu_id=4720 - Pad: https://pad.odoo.com/p/r.cc27789e4aaa790d105dfc63532e1a01
Enhancements to existing features
Odoo now checks required Python packages by their installable package names and supported versions, rather than only testing whether they can be imported. This makes dependency messages clearer for administrators and helps avoid setup issues when modules require specific package versions.
Original PR description
Use [pkg_resources.get_distribution()](https://setuptools.readthedocs.io/en/latest/pkg_resources.html#getting-or-creating-distributions) to check if python external
dependencies are installed, instead of trying an import.
This better expresses which python distribution needs to be installed
and allows declaring a minimum supported version such as.
```python
'external_dependencies': {
'python': [
'pyserial>=3'
]
}
```
Close #25541
[updated to show an example]
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update adds a dedicated tax group widget on invoices and journal entries, making it easier to adjust grouped tax amounts when rounding is needed. It helps accounting users manage tax totals more accurately directly from the document screen.
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Attachments will now use the latest related record name instead of relying on a saved copy that can become outdated. This keeps displayed attachment information more accurate when records are renamed, with minimal impact on day-to-day use.
Original PR description
This commit removes the store property of `res_name` from `ir.attachment` as it doesn't need to be stored and could contain outdated information. Task: #1943295 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves error messages when incorrect dependencies cause failures during migrations or development. It helps teams identify the source of dependency problems faster, reducing debugging time and support effort.
Original PR description
During a migration process or developpment if a deps is wrong, it is hard to find where is issue come. same as https://github.com/odoo/odoo/pull/31889 @odony @nim-odoo -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The CRM reporting filter previously labeled “Contents” is now labeled “Activity Description.” This makes it easier for users to understand that the filter searches activity descriptions, improving usability without changing behavior.
Original PR description
task: https://www.odoo.com/web?#id=2008515&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 pad: https://pad.odoo.com/p/r.28b0be0a1a502fa9068127d03b2d7431 Before this commit, at custom filter 'Contents' option is there for filtering by activity description. For more usability only rename is needed. By this commit 'contents' is changed to 'Activity Description'. User can filter records by activity description.
The Mexican electronic invoicing module now checks for external Python dependencies using the official distribution names from PyPI. This improves installation and validation reliability without changing day-to-day user workflows.
Original PR description
To go with https://github.com/odoo/odoo/pull/25549
This change removes a misleading legacy setting that could make database upgrades incomplete or unreliable. It affects many business apps and helps ensure future upgrades handle renamed fields through safer, more complete migration processes.
Original PR description
This attribute is misleading as it is insufficient to correctly upgrade the database. It only renames the column in the database, but other operations are needed, like updating the corresponding `ir.model.fields` record (and its xmlid). The default values and the translations are also lost during the upgrade. Moreover, this feature was misused. It was: - left on fields during multiple versions. - used on reports (SQL views). This would be ok if the feature was complete, but, as is, it was useless. - kept unchanged after a second renaming of the field (which can happen versions later the first rename). - used, even when the meaning of the field changed. i.e. the field `archived` has been renamed to the classic `active`, but the value in the database should be switched.
Customers can now preview and sign field service worksheets from the portal, while emailed worksheet reports have a clearer layout and better content. The update also streamlines material handling by using sales order lines directly, improving pricing, discounts, quantities, and consistency with sales documents.
Original PR description
This merge improves the worksheet flow and design. It provides: - a portal interface: the customer can see its worksheet from its tasks on the portal - refresh the worksheet report to be clearer - improve the flow of report sending to the final customer - display, on the portal preview, the information of material products. As we need the same informations as if the material was added on the sales order, we remove the product map and directly use the sales lines. See sub commits for more details. Task-2009558
Mexican electronic invoicing features that were previously split across separate add-ons are now included in the main Mexican EDI module. This simplifies setup and ensures cancellation, payment, customs, external trade, and cash-basis tax processes work together more consistently with Mexican SAT requirements.
Original PR description
Because a lot of modules were added in stable in order to add features/fixes, it is an opportunity to merge the modules in master.
Document managers can now give selected groups read-only access to folders and limit folder contents so users only see documents owned by them. Shared document access is also checked against the share creator's current permissions, making access behavior more consistent and controlled.
Original PR description
This commit allows documents managers to add readonly groups to folders and to restrict the content by document owner. adds two new fields (`read_group_ids` and `user_specific`) to `documents.folder`. Task: #1915003
Online appointments now open by default in a kanban-style view, making scheduled events easier to scan and access. The list view also shows appointment locations and displays assigned employees more clearly, helping teams find key details faster.
Original PR description
Purpose ======= Setup a kanban view to easily jump to scheduled calendar events of type online appointments. Specification ========== set kanban as default view https://nimb.ws/bMDBLP in listview, add 'location' field after 'name' + set many2many_tags widget on 'employee_ids'
Financial reports can now be filtered by operating unit, giving businesses a clearer view of results for specific operational areas. If no operating unit is selected, reports continue to show the relevant company data, while selected units narrow the report to matching records.
Original PR description
Task: https://www.odoo.com/web#id=1917619&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.9da01f115c928cde4b8eb85243999c84 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes key parts of the asset form easier to target for future customizations. It does not change day-to-day functionality, but it reduces effort and risk when adapting the asset form to specific business needs.
Original PR description
Right now the `form` view has a lot of elements (also a lot are nested) and it is not really easy to `xpath` into the deeper elements. Some `name` on the most important elements allow to easily xpath from there on.
The customer follow-up form has been updated with a clearer sheet-style layout. This makes the screen easier to read and more consistent with other Odoo forms, improving day-to-day usability for accounting teams.
Original PR description
Before this PR:  After this PR: 
Field Service projects are now easier to configure with one setting that prepares billing, timesheets, worksheets, and planning defaults automatically. Task screens and buttons were cleaned up so users better understand the next step and avoid confusion between regular project work and Field Service workflows.
Original PR description
This merge brings small and big changes related to the flow of an FSM tasks and the FSM project configuration. * task flow - clean views in order to make the user better understand what is the next…
This merge brings small and big changes related to the flow of an FSM tasks and the FSM project configuration. * task flow - clean views in order to make the user better understand what is the next step to do in the FSM flow. - better split project and FSM buttons on task form view. The goal is to avoid confusion in user mind. A task can be FSM and follow the flow of the project app (stage by stage), and simutaneously follow the FSM flow (draft, sent, billed, done). * FSM project config In order to simplify this, we introduced the 'is_fsm' flag. Checking it on a project preconfigure the settings for the project to be in FSM mode. An FSM project is a "task rate" billable project with timesheets and worksheets. To do so, we - introduce the 'is_fsm' flag, and the onchange forcing the configuration - remove "allow planning": the gantt view and planned dates on task form view are always visible. This is not an option anymore. - remove "allow billable": we now use the flow of "task rate", meaning the project can not be billable, but each task is at a different rate (the one of the generated sale order line linked to the task, based on the service product of the project). Task-2009567
Referral levels now display their images directly instead of showing file attachment details, making the referral setup screens clearer for users. The update also adds internal labels to key screen elements, helping future changes and customizations be made more reliably.
Original PR description
This PR changes two things: 1. It adds the image widget on the referral levels as it was now just showing the attachment name in KB, not the image itself 2. Add `name` on the main elements for easier `xpath` expressions in the future @mart-e are you the one to review/approve this? Or should I have @RomainLibert or @tivisse? They seem to have made the app.
Resolved issues and error corrections
This fixes an issue in manufacturing where work orders could not be grouped by date in reporting or planning views. Businesses get more reliable schedule overviews, making it easier to review production workload by time period.
Original PR description
-- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Creating a bill of materials from a product now pre-fills only the finished product, not each component line. This avoids accidental use of the finished product as a component, reducing data entry mistakes in manufacturing setup.
Original PR description
The action called from the product's bom stat button (mrp.product_open_bom) fill the key 'default_product_id'. This allows, creating a bom from the list view, to prefilled the product. This context key will also fill each new bom line as the technical field is called product_id too. This commit overrides default_product_id to False for the bom line One2many in the bom form view in order to only prefill the finished product and not the components. Task : 2045485
This fix prevents the mobile apps icon from appearing while users search in Settings. It keeps search results cleaner and helps users focus on the settings that match their query.
Original PR description
The mobile apps icons were always showing even during a search in the settings. 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 fullscreen course player now shows the selected lesson name as the browser page title. This helps learners and staff better identify the current lesson when using fullscreen mode or switching between browser tabs.
Original PR description
Description of the issue/feature this PR addresses: Task id: https://www.odoo.com/web?#id=2040899&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where the calendar would not open from the activity menu when users clicked the calendar icon while adding a note. It also clears the previously selected date when starting another note, preventing accidental reuse of old dates.
Original PR description
Since commit `a3d98dae68b97aeb7c36ca93c31f067535cbe8fd` the calendar is no longer opening when clicking on the calendar icon in the activities when adding a note. 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
Phone number validation now preserves the original spacing behavior more accurately while cleaning numbers. This prevents small mismatches between what users enter and what the system returns after validation, reducing confusion in contact data handling.
Original PR description
This commit ensures that we only strip the spaces of a phone number
{string} field on its sanitization to avoid differences between the
input and result of the function `phone_sanitize_numbers_string_w_record`.
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-prUpdating follower notification preferences no longer closes the preferences menu or causes unwanted page scrolling. This makes it faster and less frustrating for users to adjust multiple notification options, while also reducing unnecessary background calls.
Original PR description
Description of the issue/feature this PR addresses: Task: https://www.odoo.com/web?#id=1960834&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.7b2f7840a5ff2e4d6f5e50dc8353124b Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an error that could occur when creating a new course in the eLearning/Slides app. The change ensures the needed page template is loaded at the right time, so users can create courses without hitting a crash.
Original PR description
Description of the issue/feature this PR addresses: - Task - https://www.odoo.com/web#id=2040460&action=327&model=project.task&view_type=form&menu_id=4720 - Pad - https://www.odoo.com/web#id=2040460&action=327&model=project.task&view_type=form&menu_id=4720 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change prevents Gantt view date-based totals from generating an invalid data request that could cause the view to fail. Business users benefit from more reliable planning and reporting when viewing aggregated values by date.
Original PR description
When aggregating a field x per date, the generated read_group contained field:date in the fields list as well as in the group by list. The one in the fields list make read_group crash. Internally, some data of the gantt views are indexed by field or by field:date
Fixes an error that could occur when users clicked "Overview" from the Project kanban view while Forecast was installed. This keeps project navigation working reliably and avoids disruption for teams using forecasting features.
Original PR description
This commit fixes a traceback when clicking on "Overview" in Project kanban view with Forecast installed. Since project forecast actions have been made into xml actions, there is a problem in the way the context is retrieved by a stat button method in project overview, considering it as a dict when it is now a string to parse. opw-2037280
Features or functions removed from Odoo
Odoo removed an old shortcut used to rename database fields because it did not fully preserve related setup data, defaults, or translations during upgrades. This reduces the risk of incomplete or misleading upgrade behavior across multiple business apps, but may require more explicit migration handling for renamed fields.
Original PR description
This attribute is misleading as it is insufficient to correctly upgrade the database. It only renames the column in the database, but other operations are needed, like updating the corresponding `ir.model.fields` record (and its xmlid). The default values and the translations are also lost during the upgrade. Moreover, this feature was misused. It was: - left on fields during multiple versions. - used on reports (SQL views). This would be ok if the feature was complete, but, as is, it was useless. - kept unchanged after a second renaming of the field (which can happen versions later the first rename). - used, even when the meaning of the field changed. i.e. the field `archived` has been renamed to the classic `active`, but the value in the database should be switched.
Code cleanup and technical improvements
Product links across the website now use the proper product-specific web address, helping visitors land on the correct product page. Website images are also generated through the standard image URL method instead of fixed links, improving consistency and maintainability across website pages.
Original PR description
Some product links were not using website_url, now that we have an url for product.product we should use that one to reach the right product. Some image links were hard coded in the xml views of website, now they are replaced with website.image_url(model, field). Task: #2007400 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo’s eLearning area is now promoted from a Website subsection into its own application with clearer menus for courses, content, reviews, forums, certifications, reporting, and settings. This makes it easier for teams to manage learning content, track performance, sell courses, and communicate with attendees from one dedicated backend workspace.
Original PR description
PURPOSE eLearning should have its own application in manager. Indeed this is becoming a big application and having it embedded inside Website application is not enough anymore. It should also hold…
PURPOSE
eLearning should have its own application in manager. Indeed this is becoming
a big application and having it embedded inside Website application is not
enough anymore. It should also hold updated and easy-to-use menus,
navigation, actions and views in backend.
SPECIFICATIONS
Update manifest and make website_slides an application separated from
website embedded menus.
Implement new menu structure
* Courses
* Courses
List view: Course Name, # Views, # Attendees, # Ratings, Revenues,
Reviews
* Contents
* Reviews: kanban view of channel reviews
* Certifications: kanban view of surveys of type certificate
* Forum
* Forums: add columns to list view: Posts (questions count), Views
(sum of views of each post), Answers (sum of child_count on each post),
Favorites (sum of favourite_count on each post)
* Posts: add columns to list view: Views / Answers / Favourites
* Reporting
* Courses: list view on slide.channel model, ordered by # views.
List view: Course Name, # Views, # Attendees, # Ratings, Revenues;
* Contents: graph view on slide.slide model
Area Graph: X month
Y measure: # Views (others measures: Attendees, ...)
Group by: course (color)
* Revenues: graph view on sale.report model showing revenues of eLearning
courses.
Area chart, X: monthn Y: €, Color: course
* Certifications: list view on surveys of type certificate
Columns: Title, Survey Stage, Registered People, Certified People, Attempts
Success Rate (certified/attempts), Average Results
* Reviews: see kanban of latest reviews;
* Quiz: list view on slide.question model.
List view: Add # Quizz Trials, # Quizz Passed, Avg Attempts
* Forum: graph view on forum.post model
Area chart: # Posts created by months, color=forum
* Configuration
* Settings
* Allow Forum on Courses (installs website_slides_forum)
* Allow Certifications (installs website_slides_survey)
* Allow Selling Courses (installs website_sale_slides)
* Course Tags
* See channel.tags.group with label Course Tags, form view allow to
configure group tags
* https://drive.google.com/a/odoo.com/file/d/1G0g2UnG5cZG55EXQ5icbgwe7T2eSZskT/view?usp=drivesdk
* On click: open :https://drive.google.com/a/odoo.com/file/d/1I_PW3aZAbrslXadiYqmVF-_6dGXx8knd/view?usp=drivesdk
* Content Tags
Add course (slide.channel) kanban view. Each tile should contain
* Title of the course
* Tags below the title
* Primary button "New Lesson"
* Statistics :
* Attendees
* Running (progress != 100%)
* (if one content is certificate) Certified or Finished
* See : https://drive.google.com/a/odoo.com/file/d/13K8FmkbwmBG4JQ5gH3Q5T8OlWPs3blcu/view?usp=drivesdk
* With FP remarks https://drive.google.com/a/odoo.com/file/d/1mb7LUT0VUNs5fMcKB9c0Bfaqk2-XFFuu/view?usp=drivesdk
* Add "Sales 150.00$" below "Watch Time" if type "on payment". Same
info than the smart/stat button on the course itself. Click on the amount
sends to Reporting Revenues (same than on the stat btn)
Add review (rating.rating) kanban view. Each tile should contain
* Kanban view, full width, no default group by
* Order by date (most recent on top)
* See: https://drive.google.com/a/odoo.com/file/d/1IYE1QBIJa26BLugRiafyBop-srkYwndC/view?usp=drivesdk
* add a tag for unpublished comments
* Add the pic of the user above the stars
* Click on card, send to front-end and able to (un)publish the comment
* Kind of what's on the front-end: https://drive.g
Improve course form view: add a revenue stat button displaying the total
of sale order linked to the course's product.
Integrate a button on slide.channel form view allowing to perform a mass
mailing on course attendees. Do a flow similar to event.
Remove "Our Documentation" dummy default existing data. It makes no sense
to have void data. Instead just add a small explanation text in eLearning
front-end telling the user to create its first course if he has rights to
do so.
In order to better show the new backend add some demo data for missing
numbers, notably
* sales: add confirmed sale orders in order to have revenues value;
* forum: add some posts and answers;
* quiz: update slide.slide.partner demo data to hold quiz attempts count
LINKS
Task 1978729
PR #35061
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Co-Authored-By: Jérémy Hennecart <jeh@odoo.com>Website helpdesk slides and Twitter wall pages now use Odoo's standard method for loading images instead of fixed file links. This makes image handling more reliable and easier to maintain without changing the user-facing features.
Original PR description
Some image links were hard coded in the xml views of website, now they are replaced with website.image_url(model, field). See: odoo/odoo/pull/34149 Task: #2007400
Helpdesk teams will no longer be automatically linked to a default placeholder eLearning course. This avoids irrelevant course assignments and lets users choose the most appropriate course for each team.
Original PR description
…teams PURPOSE eLearning should have its own application in manager. Indeed this is becoming a big application and having it embedded inside Website application is not enough anymore. It should also hold updated and easy-to-use menus, navigation, actions and views in backend. SPECIFICATIONS Default "Our Documentation" dummy default existing course has been removed in master as it makes no sense to have void data. This commit updates helpdesk / slides bridge accordingly. We consider it makes no sense to take the first course when linking an helpdesk team to a course. Let users choose what is relevant instead of taking dummy data. LINKS Task 1978729 PR #35061