Daily updates from Odoo
Navigate
Branch
Wednesday, July 17, 2019
33 changes
New functionality added to Odoo
The stock forecast report is replaced with a clearer graph that shows inventory quantities both in the past and the future. This helps users analyze historical stock levels and upcoming planned movements more easily, with a simpler and more performant reporting approach.
Original PR description
The issue with the current forecast report is that you are not able to see the quantity in the past. Also the code is complicated due to the cumulative quantity that has to be computed twice in python and in a read_group override. So we decided to remove it and replace it by a new report based on the stock quant and planned in/out moves. The report will be displayed in a graph view and a analyse for past stock will be available. More detail in each commit. Task: 2000948
Odoo now includes IoT drivers for serial-connected weighing scales, including support for two existing scale models. This helps businesses keep using compatible scales with Point of Sale through newer IoT communication flows while maintaining backward compatibility.
Original PR description
So far there are no IoT drivers for serial equipment. This adds a base IoT serial driver as well as a base IoT serial scale driver and drivers for the two previously supported scales. For the moment the scale drivers support both the old routes and the new event and action routes. Task: 1892412 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
List view column headers can now show their help text in a tooltip. This makes it easier for users to understand what a field means without leaving the list or looking elsewhere for guidance.
Original PR description
Task 2036832 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 web search panel now includes field identifiers on category and filter lists. This supports more precise interactions in related features, such as drag-and-drop behavior in document search panels, without changing the visible user interface.
Original PR description
adds field_name data on category and filter lists in the search panel template so it can be used to identify their field. Task: #1998014 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Language activation now loads the selected language directly instead of opening an extra wizard, reducing unnecessary steps for administrators. Button labels and form layout were clarified so managing available languages is easier to understand.
Original PR description
The activation of languages was changed at bd3a553ad9c81e458a6 This commit makes a few changes/fixes - When executing the toggle_active method do not open the wizard but load directly the language - Rename the name of the button in tree view, Download was confusing as implies the resources are downloaded while it is only loaded - Remove duplicated help - Add action button to load the language from the form view (as it the only way from the form view was using the "Unarchive" action) - Add label directly next to the field (was making a line return) - Set the placeholder on the field (no effect on the label) - Remove groups as the view is already restricted to system users Follow-up of task id 2026150
The Lunch app now better respects company boundaries by linking suppliers and products to the relevant company. This helps businesses using multiple companies keep lunch supplier and product records visible only where appropriate.
Original PR description
- Add a related on the lunch.supplier to the company id of the linked res.partner - Add related on the product: to the company id of the linked lunch.supplier - add multi company Record rules -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Sellers can now offer PayPal checkout using only an email address, even before they have a PayPal merchant account. PayPal can prompt the seller to create the account, while Odoo follows up so the seller can complete the required payment credentials afterward.
Original PR description
Current behavior before PR: Seller needs PayPal account to accept payment from buyer. Desired behavior after PR is merged: Now seller can accept payment through PayPal even if does not have any PayPal account. Task:- https://www.odoo.com/web?#id=34668&view_type=form&model=project.task&action=327&menu_id=4720 Pad:- https://pad.odoo.com/p/r.39cd68037247fe8bcf08a0429cd5e2fd -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Inventory users can now print picking barcode reports as PDFs, in addition to the existing ZPL format. This makes the barcode report easier to view, share, and print on standard office printers without relying on label-printer formats.
Original PR description
**In Inventory for a picking, we have an option to print the report of Barcodes in ZPL but we do not have option to print the same in PDF**. After this PR is merged, there will be a PDF version of the report of Barcodes available just similar to the report in ZPL. A PDF template is added below the ZPL template. Task Link: https://www.odoo.com/web?#id=1970506&action=327&model=project.task&view_type=form&menu_id=4720 Pad Link: https://pad.odoo.com/p/r.06e68725c4f39d21c9f2e215aba68924 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes employee availability indicators more consistent across HR apps by combining login, attendance, leave, email, and IP activity where available. It also fixes demo attendance data that could prevent checkout and improves leave-related employee views for HR users.
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
Certification surveys can now be configured to automatically award a badge when a participant passes. This helps organizations recognize completed certifications immediately and display achievements on the user profile without extra manual setup.
Original PR description
This PR allow gaining a badge at the end of a certification survey if succeeded. The badge can be configured on the survey if the certification mode is activated. The badge is linked directly to the…
This PR allow gaining a badge at the end of a certification survey if succeeded. The badge can be configured on the survey if the certification mode is activated. The badge is linked directly to the survey and not the challenge, because it makes more sense to configure directly the reward on the survey and not the way to gain this reward. As the way is always the same. Only one badge can be set on the certification survey. Only the name, description, image and badge level can be configured. The rest of badge configuration is automatically set to correspond to the use case. When a badge is configured on a certification survey, the needed challange, goal and challenge line are autogenerated. The badge is available on the user's profile page if he gained it. Note : To avoid having to create a bridge module only to display the certification badge on the user's profile page, the default website_published value of the certification badge is defined directly in the survey module even if survey does not depend of website. This attribute will be ignored until website module is installed. Task ID : 1935136
Sales users can now add optional products to a quote without the web client fully reloading, so their searches, breadcrumbs, and current context are preserved. The quote also gives clearer visual feedback by highlighting added optional products and hiding the add button once they are included.
Original PR description
Purpose ======= Avoid a complete reload of the web client when adding a optional product, which loses searches, breadcrumb, etc. This is achieved by adding a non-stored 'is_present' computed field which is computed depending on the presence of a SO line linked to the option line - that way its is dynamically adapted when the option is added to the SO. Since we wanted a clear feedback when the option was added to the quote, green colouring and the disappearance of the 'add to quote' button have been added. Note that this field *cannot* be stored - since the line_id field on the option bypasses the ORM (`set null` for the on_delete attribute), it would not recompute properly upon deletion of the linked SO line. Task#1950410
This update makes the recruitment app and job website pages easier to use for hiring teams and applicants. It streamlines common recruitment workflows and improves the presentation and configuration of job postings, helping teams manage applications more efficiently.
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
Language activation is now more intuitive: activating a language also starts the translation loading flow, and users get shortcuts to add more languages from relevant forms. The language management screens are simplified, unnecessary options are removed, and the language field is hidden when there is only one active language.
Original PR description
1. base: Load translation when language is activated Purpose ------ Settings > Translations > Languages > I find the language I want and I click on stat button to activate it. Now I set it up on my…
1. base: Load translation when language is activated Purpose ------ Settings > Translations > Languages > I find the language I want and I click on stat button to activate it. Now I set it up on my user, it still doesn't work > the langage has not been loaded !!! Specification ------- When activating a language load the translation (and open the load translation wizard) 2. base: Add shortcut button to load language Pupose ------- On the res.partner and res.user form view if you want to change the language, it's not easy to know where I can activate more langages. Specification ----------- Add a small icon next to the language field to activate more languages (similar interface than to send an SMS). 3. base: Clean res.lang tree view 1. Set limit to 200 to display all current 82 languages in one page (current limit is 80/82). 2. Move some fields to debug mode. 3. Add a button to directly load a language. 4. base: Remove Load a Translation menu Activating a language automatically load the translation, hence the menu is no longer necessary. 5. base: Don't show language if only one active If only one language is active, don't show in the contact form view (`res.partner`) the language field. Changing the language is not possible since there is only one language. Hence the field is useless and therefore hidden. TaskID: 2026150
The dashboard app now adapts more smoothly on smaller devices, making it easier to view and use on phones and tablets. An unused title-editing field was also removed, simplifying the interface and reducing visual clutter.
Original PR description
Task : https://www.odoo.com/web#id=31560&view_type=form&model=project.task&action=327&menu_id=4720 Pad : https://pad.odoo.com/p/r.070aab10d824467034ed9ad0888a113a
Sales users can now add optional products without forcing the web client to reload. After adding an optional product, the screen automatically returns to the order lines so users can immediately see the result.
Original PR description
…roduct Purpose ======= This commit adds a custom widget to the button adding optional products. The widget triggers the same action as the button and then switches the tab to "Order Lines" so that the user can see the action worked. 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
Users can now move documents directly into workspaces or apply tags by dragging them onto the search panel. This makes organizing documents faster and more intuitive, reducing clicks and streamlining day-to-day document management.
Original PR description
This commit adds the ability to drag documents and drop them into the search panel's categories and filters (workspaces and tags). Task: #1998014
The stock forecast report now includes a grid-style view that makes planned incoming and outgoing stock moves easier to review and adjust. Users can quickly open related stock moves and update scheduled dates, helping teams manage inventory timing more efficiently.
Point of Sale can now work with newer IoT scale drivers, including serial-based Sylvac devices, instead of relying on older USB-specific handling. This improves compatibility with weighing hardware and adds automated checks to help ensure the displayed weight is accurate.
Original PR description
At this point Sylvac Calipers are supported via a specific USB driver. This replaces it with a new serial driver that inherits from the same base serial driver as the new iot scale drivers. It also adapts the pos so it can work with the new scale drivers. And it adds a tour to the pos to test the new scale drivers. Task: 1892412
Users can now print picking barcodes directly from the barcode view in both PDF and ZPL formats. This makes warehouse operations faster by reducing the steps needed to create labels for pickings.
Original PR description
**Barcode PDF and Barcode ZPL buttons in the view of Barcode** In the barcode module, there is no option for printing picking's barcodes. So we've added PDF and ZPL formats of reports with the other buttons in the barcode view. The buttons will make rpc calls to the methods of stock.picking model and then will perform the do_action on it. Task Link: https://www.odoo.com/web?#id=1970506&action=327&model=project.task&view_type=form&menu_id=4720 Pad Link: https://pad.odoo.com/p/r.06e68725c4f39d21c9f2e215aba68924
The cohort view now shows the same empty-state message and blank folder icon used in other views. This creates a more consistent experience for users when there is no data to display.
Original PR description
Show same nocontent message as other views with blank folder icon and same help message to have unified behavior. Task 1878115 Co-authored-by: Mohammed Shekha <msh@openerp.com>
The Map view configuration has been moved into the general settings area, making it easier for administrators to find and manage. This improves setup clarity without changing the core map functionality users rely on.
Original PR description
Task:https://www.odoo.com/web#id=2008967&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.3cb992ad9756bdb5373058cc5ecf9099
The salary simulation page now avoids a rendering step that could fail when users had different browser windows open in debug and normal modes. This improves reliability while keeping the same user-facing behavior, with some internal cleanup to make the code easier to maintain.
Original PR description
This commit removes the flatten call from the simulation route which could break in some cases due to having a window in debug=assets and another in normal mode. The flatten call was needed because we were rendering the template before the rollback, but moving the rendering after the rollback enables us to simply remove the flatten call. Rendering after the rollback should not cause any trouble as we put all the needed information in memory (either in the orm cache, either in the values dictionnary), this means that we can access all the values inside the template. Some cleaning of the method is also applied in this commit in order to facilitate its comprehension
This update makes the recruitment and salary contract flow easier to use for HR teams. It improves applicant-related screens and supporting checks so recruiters can complete hiring steps more smoothly and with fewer usability friction points.
Resolved issues and error corrections
Inventory valuation records now use the correct description when a product valuation or costing method changes. This helps finance and inventory teams understand why valuation entries were created and avoids confusion in audit trails.
Changing the quotation template on a sales quote now clears the previously selected optional products. This prevents products from an old template from accidentally staying on the quote, helping sales teams keep quotations accurate.
Original PR description
Description of the issue/feature this PR addresses: <b>Task:</b> https://www.odoo.com/web?#id=2005838&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b>Pad:</b> https://pad.odoo.com/p/r.c9308300096a6d1bef5944a1dcefff74 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 a problem that could prevent authorized users from creating a new company when timesheet holidays were installed. The system now handles the automatic background project setup correctly, so company creation succeeds even when the user does not directly manage projects.
Original PR description
[FIX] base: Allow to create company with ir.model.access ======== The group `base.group_erp_manager` grants the permission to create a company according to the `ir.model.access`. However, with only…
[FIX] base: Allow to create company with ir.model.access ======== The group `base.group_erp_manager` grants the permission to create a company according to the `ir.model.access`. However, with only this group, a user cannot create a company because the group does not give permission to `res.partner`. For creating a company, access to `res.partner` is required for two things: 1. Create the linked `res.partner` 2. Write the name of the company which is a related field of `partner_id.name`, readonly=False, stored=True. Using a simple `sudo` would be enough to solve 1. but 2. is problematic since the write is performed by a low level inverse orm method at the company creation. The solution is that `base.group_erp_manager` implies `base.group_partner_manager`. [FIX] project_timesheet_holidays: Allow to create a company ========== It is currently impossible to create a company. The reason being that the newly created company is not yet in context `allowed_company_ids`. Therefore, every consequent access to a record protected with a multi company `ir.rule` fails for that company. Here, the module automatically creates a project in that company and later read that project to check a constraint. The read raises an AccessError, hence the company is not created. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes demo and test data so product units of measure are consistent in point of sale, stock, and delivery scenarios. It helps keep sample data and automated checks reliable without changing everyday business workflows.
Original PR description
Task 1883670
This fix prevents Odoo from trying to update existing records that were only linked as default values in a form. It helps avoid save errors when those linked records are locked or not meant to be edited, such as posted accounting entries.
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
Code cleanup and technical improvements
The mass mailing app has been reorganized and renamed to make it easier to maintain and ready for future SMS-based outreach. Campaign tracking was also corrected so each mailing gets accurate marketing source information, improving reporting reliability.
Original PR description
PURPOSE Mass mailing is currently a bit messy. As SMS will be added as a way to notify people in mass through SMS let us take this opportunity to somehow clean this application: organization, light…
PURPOSE
Mass mailing is currently a bit messy. As SMS will be added as a way to notify
people in mass through SMS let us take this opportunity to somehow clean this
application: organization, light code cleaning, model renaming.
SPECIFICATIONS
Guidelines: re-organize model files and split them according to main
models. Also reorganize views.
Move some code bits / fields declarations to reorder them. Purpose is to
make code easier to understand and find. Funny we found two override of create
that have been merged. An override of name create is not necessary considering
code was present in one of the two merged create. Make internal methods private
and rename send_mail to action_send_mail to avoid confusion with composer and
template send_mail methods.
Fix UTM management and propagation in mass mailing. Right UTM definition in
mass mailing :
* mass mailing campaign -> utm.campaign
* mass mailing -> utm.source
* "email" -> utm.medium
Therefore :
* remove campaign setting source and medium as each mailing is a source
and medium is "email";
* ensure each mailing is a separate source (otherwise name is shared);
* ensure UTM values propagate to link creation are those values and not
the one coming from the mass mailing campaign;
Rename mass mailing models. Rationale :
* remove mail prefix, as mass mailing will allow to use SMS to contact
people and will soon be less mail-dependent;
* have simpler name, easier to read, find and understand;
* mailing.list/contact/tag seems a better naming than mail.mass_mailing.
list/contact/tag;
* have a mailing prefix for all models used in mass mailing;
MIGRATION
mail.mail.statistics model -> mailing.trace
mail.statistics.report model -> mail.trace.report
mail.mass_mailing.list model -> mailing.list
mail.mass_mailing.list.merge model -> mailing.list.merge
mail.mass_mailing.contact model -> mailing.contact
mail.mass_mailing.list_contact_rel model -> mailing.contact.subscription
mail_mass_mailing_contact_list_rel table -> mailing_contact_list_rel (specific
case of a decorated m2m)
mail.mass_mailing.stage model -> mailing.stage
mail.mass_mailing.tag model -> mailing.tag
mail.mass_mailing model -> mailing.mailing
fields updated (w column change)
* link.tracker.click: mail_stat_id -> mailing_trace_id
fields updated (no column change)
* mail.mail: statistics_ids -> mailing_trace_ids
* mail.mass_mailing (mailing.mailing): statistics_ids -> mailing_trace_ids
* mail.mass_mailing.list (mailing.list): subscription_contact_ids ->
subscription_ids
LINKS
Task ID 2037906
Preparing task ID 1997464 (SMS addition in mass mailing)
PR #34938This update consolidates duplicated empty-state messaging used in graph, pivot, and cohort views into one shared component. It reduces maintenance effort and helps keep the user experience consistent when reports have no data to display.
Original PR description
The same template was defined for graph, pivot and cohort views (only the message sometimes slighlty changed). This rev. creates one generic template used by those three views. 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 removes an outdated internal coding marker that is no longer needed because the system already treats these methods that way by default. It reduces code clutter and helps developers maintain accounting-related features more consistently, with no expected change for end users.
Original PR description
depends on https://github.com/odoo/odoo/pull/34556
Marketing automation was updated to match the cleaned-up mass mailing application naming and tracking structure. This improves consistency across email campaign tracking and prepares the mailing tools for future SMS campaign support.
Original PR description
PURPOSE Mass mailing is currently a bit messy. As SMS will be added as a way to notify people in mass through SMS let us take this opportunity to somehow clean this application: organization, light code cleaning, model renaming. SPECIFICATIONS Update marketing automation to naming update of some method in mass mailing. Fix UTM management and propagation in mass mailing. Right UTM definition in mass mailin and marketing automation is : * marketing campaign -> utm.campaign * mass mailing -> utm.source * "email" -> utm.medium Update marketing automation model use : * mail.mail.statistics has been renamed to mailing.trace; * mail.mass_mailing.contact has been renamed to mailing.contact; * mail.mass_mailing has been renamed to mailing.mailing; LINKS Task ID 2037906 Preparing task ID 1997464 (SMS addition in mass mailing) See odoo/odoo#34938 PR #4863
This change removes outdated internal coding patterns across several accounting-related areas, aligning the enterprise codebase with newer platform standards. Business users should not see functional changes, but the cleanup helps maintainability and reduces future upgrade risk.
Original PR description
depends on https://github.com/odoo/odoo/pull/34556 and https://github.com/odoo/odoo/pull/34775