Daily updates from Odoo
Thursday, April 18, 2024
26 changes · master
New functionality added to Odoo
Odoo Social now supports connecting Pinterest accounts, allowing users to create pins and boards and monitor Pinterest activity from within Odoo. This expands social media management options for businesses using Odoo, with standard subscription-based access and an advanced option for using a custom Pinterest application.
Original PR description
This commit introduces the Pinterest media implementation for the social app. It uses the Pinterest REST API to connect to your Pinterest account and allow users to: - Add new pins on your Pinterest account - Add new boards on your Pinterest account - Monitor pins from your Pinterest account - ... Users will have to connect their Pinterest account to Odoo. (See commit that introduces the social app for more details.) ------- Advanced usage: If you want to use your own Pinterest account, instead of built in IAP usage that requires an enterprise subscription: Users must connect Odoo with their Pinterest account using a Pinterest Application. (Pinterest App information: https://developers.pinterest.com/) ------- Task#2089553
Odoo now supports financial factoring for Mexican electronic invoicing, allowing payment complements to be issued in the financial factor's name while keeping normal administrative records tied to the original customer. This helps Mexican businesses comply with SAT requirements as factoring becomes more common and avoids needing unsupported SaaS customizations.
Original PR description
[Financial Factoring ](https://en.wikipedia.org/wiki/Factoring_(finance)) > Factoring is a financial transaction and a type of debtor finance in which a business sells its accounts receivable (i.e., invoices) to a third party (called a factor) at a discount.[ Payment complement shall be emitted in financial factor's name instead of the original customer's name, but Odoo from an administrative stand point can stay as it is (At least for Mexico). The process is described [here](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/documentos/Guia_comple_pagos.pdf) at page 58. Note: This was not common in Mexico before, but it is becomming really common now and it is impossible to do by customizations on the saas, that why this module is necessary. Ticket #1891464 Based on [this](https://github.com/odoo/enterprise/pull/3442) PR for v11
This change introduces a new Planning app to schedule employees, manage recurring shifts, and report on planned work. Managers get dedicated scheduling tools, open shift handling, and external pages that let staff view or take available shifts more easily.
The Social app now groups posts by campaign and tracks links with campaign information. Businesses can measure leads, opportunities, quotations, and revenue generated from social campaigns and individual posts.
Original PR description
This PR adds UTMs + sale and crm statistics to the social app Social posts will now be organized by campaign and the links they contain will be correctly tracked. This will allow us to make statistics on lead/opportunity creation, quotations creation and the revenue made by the campaign itself. Each social post will also have those statistics Task ID: 2045210
This update adds social marketing capabilities for sending push notifications directly to website visitors who opt in. It helps businesses re-engage visitors through a new communication channel alongside social posting, while also cleaning up older lead tracking behavior now handled through website visitor records.
Introduces a dedicated Planning app for managing employee shifts, roles, recurring schedules, and templates. Employees can access external pages to view, take, or leave shifts, while managers get improved Gantt planning tools and fixes that reduce scheduling errors.
Adds a dedicated employee referral module to help staff share open jobs, follow referral stages, and receive onboarding guidance. The update supports broader recruitment reach with sharing tools, campaign tracking, demo data, and reporting for business visibility.
Odoo now includes Turkish BA/BS monthly sales and purchase reporting, helping businesses prepare required submissions to local authorities for transactions above the reporting threshold. The update also adds Turkish balance sheet and profit and loss reporting to improve local accounting compliance.
Original PR description
Task ID: [2784881](https://www.odoo.com/web#id=2784881&menu_id=3940&cids=1&action=4043&model=project.task&view_type=form)
Users can now insert spreadsheet documents directly into Knowledge articles using a new spreadsheet command or button. This makes it easier to combine written guidance with live reports or data in one shared article.
Original PR description
This PR will allow the user to embed a spreadsheet document into a Knowledge article. This new feature can be really useful for users wanting to integrate reports or data in an article. task-2796155
Adds a new localization module to manage Argentine withholding taxes in Odoo accounting. This helps businesses operating in Argentina handle withholding-related payments, tax templates, sequences, access rules, and accounting views more directly within the system.
Adds support for exporting Portuguese General Ledger data in the SAF-T audit file format. This helps Portuguese companies produce the official accounting file needed for tax authority reporting and software certification checks.
Original PR description
This PR adds the ability to export the General Ledger in the SAF-T format. Links: https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/SAFT_PT/Paginas/news-saf-t-pt.aspx…
This PR adds the ability to export the General Ledger in the SAF-T format.
Links:
https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/SAFT_PT/Paginas/news-saf-t-pt.aspx
https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Faturacao/Paginas/certificacao-de-software.aspx
Note:
No xsd validation is performed as the SAF-T sample given by the Portuguese authorities cannot be validated against the .xsd scheme they provide with the following error:
lxml.etree.XMLSchemaParseError: Element '{http://www.w3.org/2001/XMLSchema}complexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))., line 196
xsd scheme: https://info.portaldasfinancas.gov.pt/apps/saft-pt04/saftpt1.04_01.xsd
SAF-T sample link: https://info.portaldasfinancas.gov.pt/apps/saft-pt01/local/saft_idemo599999999.xml
However, the validation software provided by the authorities marks the resulting xml of the code as correct.
task-id: 2710707Introduces Social Walls, allowing businesses to collect posts from multiple social media streams around selected topics and display them publicly on website pages. The feature includes moderation, publishing controls, display customization, and improved styling so teams can showcase social engagement while filtering unwanted posts.
Original PR description
This PR now targets master (my previous commits were targeting 14.0 branch)
Timesheets now offer a dedicated list view with Day, Week, and Month ranges, plus navigation controls to move between periods or return to today. This makes it easier for users to review and manage time entries for the exact period they need, while grid clicks now open the correct dated view more reliably.
Original PR description
Task:https://www.odoo.com/web#id=1824569&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.4fbdcc4d0249f83ce23817bbbd5739f3
This update adds overtime calculations for employee shifts and uses them to warn planners in form and Gantt views. It also adds shift deadlines when projects are involved and introduces multiple planning filters, helping teams spot scheduling risks earlier and manage workloads more effectively.
Original PR description
The goal is to compute the employee overtime for a shift and use it for warn the user on the form and gantt view, add a deadline on a shift when project is used and also use it as a warn and finally add multiple filter on the planning.
Point of Sale can now connect to payment terminals through an IoT Box, helping automate card payment flows at checkout. The update also adds support for Ingenico terminals and improves IoT device communication and setup reliability.
Original PR description
task: https://www.odoo.com/web#id=1891152&action=333&active_id=1428&model=project.task&view_type=form&menu_id=4720 Integration of payment terminal in Point of Sale. Driver for Ingenico payment terminal.
The Point of Sale interface is now optimized for mobile devices, making it easier to manage orders, payments, receipts, and employee login from smaller screens. Restaurant users also get a mobile-friendly table selection flow, improving usability for teams working on tablets or phones.
Original PR description
Making POS Screen mobile responsive. - POS Main - Restaurant - HR Employee Login
This update adds Clearbit-powered company information suggestions to contact creation and quotation customer selection. It helps users create more complete customer records faster by automatically filling details such as company data and logos, with related settings controls.
Original PR description
Task: https://www.odoo.com/web?#id=1867818&action=327&model=project.task&view_type=form&menu_id=4720
Adds a new Inventory dashboard that helps teams monitor completed stock movements, including top-selling products, delivery and receipt delays, and quantity trends. This gives business users a faster way to understand inventory performance and spot operational bottlenecks.
Original PR description
SPECIFICATIONS =============== Add a dashboard view in Inventory Menu item : https://drive.google.com/a/odoo.com/file/d/1nH0y68k5LPkAGVQerWIivHS0vEteNxtx/view?usp=drivesdk Based on stock.moves…
SPECIFICATIONS
===============
Add a dashboard view in Inventory
Menu item : https://drive.google.com/a/odoo.com/file/d/1nH0y68k5LPkAGVQerWIivHS0vEteNxtx/view?usp=drivesdk
Based on stock.moves
Default filter : status = done
KPIs in at a glance :
Filter : status = done
Last 30 days top selling items : Take the outgoing stock.moves done with date_done within last 30 days and list the product with highest qty
Last 30 days less selling items : Take the outgoing stock.moves done with date_done within last 30 days and list the product with lowest qty
[LAP/GPE 01/06/2018] create an additional table with the 3 top selling / 3 less selling items
Compare date expected and date for done receipts, take the avg and list average delay to receive
Compare date expected and date for done deliveries, take the avg and list average delay to deliver
Average time needed to deliver : compare created date and date for done deliveries, take the avg
Average time needed to receive : compare create date and date for done receipts, take the avg
Pivot :
Filter : status = done
Vertical : group by operation type
Horizontal : group by date/month
Measure : real quantity
Graph :
Filter : status = done
Group by : Date > Product
Measure : real quantity
Grouped (not stack)Enhancements to existing features
This update makes field service easier to plan and manage with clearer labels, better scheduling defaults, and more reliable timer behavior. It also lets helpdesk teams turn support tickets into field service tasks, improving follow-up when customer issues require on-site work.
Original PR description
Provides several improvements to the fsm applications such as - renaming - makig some project fields required - altering demo data - technical improvements - wizards to link material to tasks and projects
This update makes payment workflows easier to start and understand from accounting screens, including batch payments, SEPA transfers, and SEPA direct debits. It also adds clearer guidance and configuration options so users can avoid errors and complete common payment tasks with fewer steps.
This update makes Field Service easier to set up and use by improving onboarding, planning access, permissions, and sales order creation from tasks. It also adds task worksheets/reports that can be printed or emailed to customers, helping teams document completed work more clearly.
Original PR description
https://www.odoo.com/web?debug#id=1943792&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720
Closed payslips can no longer be moved back to draft, helping preserve payroll history. Users can now create a linked correction payslip instead, while new checks prevent duplicate payslips for the same contract and period unless they are corrections.
Original PR description
Once a payslip is closed, we shouldn't be able to reset it to draft. Add a button: Payslip Correction -> this will create a new payslip in draft with a specific status or flag to say it is a correction and link between both payslips. Add unique constraint to payslip to avoid to have multiple payslips for the same contract during the same period (except if is a correction). id=1985537
Subscription products now use subscription variants to manage templates, pricing, and related details in one place. Sales teams can set subscription templates at order or line level, with optional restrictions to keep recurring product choices consistent and prices accurate.
Original PR description
[IMP] sale_subscription : modify models due to specs ------------------------------------------------------------------------- - Products are no longer linked to subscription_template. - Now,…
[IMP] sale_subscription : modify models due to specs ------------------------------------------------------------------------- - Products are no longer linked to subscription_template. - Now, products and subscription_template are both linked to a subscription_variant that simulate a many2many relation in a table with additional fields. - Price and other information are available in thhis subscription_variant table. They are visible on either the product, tab 'sales' or under the Subscription Variants menu in Subscription module. - Subscription_template can be set on sale_order as well as on sale_order_line. - Restrictions exist so that it is possible to set a subscription_template on a sale_order_line only if the product is a recurring product. Same for a sale_order. [IMP] sale_subscription : modify demo datas and adapt tests -------------------------------------------------------------------------------- - Adapt demo datas - Adapt test datas after changes done to model sale_order_line [IMP] sale_subscription : add sub_temp restriction setting ---------------------------------------------------------------------------- - Add a setting 'Restrict Subscription Template' - This setting locks the subscription_template on sale_order_line. Once the user choose a recurring product in a sale_order_line, its subscription template is fixed and he has to set it at the sale_order level. If he changes the subscription template on the sale_order, it is adapted on every sale_order_line containing a recurring product. [IMP] sale_subscription : price selection for subscription product ------------------------------------------------------------------------------------- - It is now possible to apply a pricelist_item on a particular subscription_template. - Overriding methods to do so. - Price for a recurring product in a sale_order_line is now depending on subscription_template that is chosen for that product in that sale_order_line. (remember, link is done in subscription_variant) - lst_price is hidden from product_template/product_product form, tree and kanban views since it isn't relevant to show it anymore. Indeed, the real prices for recurring product are set in corresponding subscription_variant for those products. [IMP] sale_subscription : prevent adding rec product on confirm SO ----------------------------------------------------------------------------------------- - Users are now unable to create a new Sale Order Line with a recurring product if the Sale Order is confirmed. - They are also unable to change the product of an existing Sale Order Line if the Sale Order is confirmed. [IMP] sale_subscription : add partner phone number --------------------------------------------------------------------- * Customer phone number is now available from Subscriptions : - in form view - in kanban view * It is either partner_id phone, mobile, or related company phone, mobile or nothing. In that order.
Knowledge articles now have a more polished cover picker that lets users reuse existing covers, upload new images, or choose images from Unsplash. Adding a cover can automatically suggest a relevant Unsplash image based on the article title, while privacy rules ensure users only see covers from articles they can access.
Original PR description
Purpose: ======== 1. Instead of using the standard "avatar" image picker for the covers, create a CoverSelector, based on ImageSelector used in the MediaDialog from web_editor which is prettier,…
Purpose: ======== 1. Instead of using the standard "avatar" image picker for the covers, create a CoverSelector, based on ImageSelector used in the MediaDialog from web_editor which is prettier, allows to reuse covers, and allows to select images from unsplash. 2. When the user clicks on "add cover" in knowledge, picks a random image from unsplash using the name of the article as search query. If unsplash credentials are not set or if service is down, falls back to the "change cover" behaviour, showing the CoverSelector allowing the user to pick an existing cover, to upload a new one, or to enter its unsplash credentials. Specs: ====== Create the components "CoverDialog" and "CoverSelector", based on "MediaDialog" and "ImageSelector" but adapted for knowledge's use-cases. The coverSelector only shows covers used in articles the user can access, so that covers of private articles remain private. Covers are saved in "ir.attachment" with "res_model=knowledge.article", allowing to not show covers in the ImageSelector in other apps, preventing users of other apps from deleting covers. They are also saved with "res_id = 0", which allows to not link covers with a precise article, preventing covers to be deleted if the associated article is deleted. When a new cover is uploaded, an url with an access token is generated and saved. This url is used to display the covers so that they can be shown in portal view, and so that users can see every cover (because attachments with res_id=0 and linked to a model are only accessible by the user that created the attachment) The binary field "cover" is replaced by a many2one field "cover_image_id" referencing the created attachment. This allows to reuse covers without needing to duplicate the attachment. Also added a field "cover_image_url" referencing the url of the attachment, which is used to display the cover. When a cover is removed from an article and is not used in any other article anymore, the associated attachment is deleted. Same if an article is unlinked and its cover is not used anymore. Extend "web_unsplash" controller and add a route that fetches a random image from unsplash using a query word, then uses "web_unsplash"'s route to save the image in ir_attachments. Add a method calling this route using the article name as query when clicking on the "Add cover" button. During the request, the button is hidden so that one can not click multiple times on it and send several rpc's. If the request returns an error (unsplash credentials not set, service unavailable, ...), opens the CoverSelectorDialog instead. Task-2852916
Users can now keep uploaded or created documents private instead of automatically sharing them with everyone who can access the workspace. This gives businesses more control over sensitive files, while also removing the older document locking feature and making workspace assignment optional.
Original PR description
PURPOSE : Allow users to restrict access to their Documents. Currently, as a document has to be in a workspace, it is available to the workspace's groups. We want to provide the user with a way to 'opt-out' of sharing uploaded/created documents. Folder_id not required anymore, addition of access field and deletion of locking feature Task=2257514
Helpdesk tickets can now track several service level agreements at the same time, so teams get a clearer view of all commitments tied to a customer issue. SLA status is updated immediately when tickets are created or key details change, helping teams see missed or met deadlines without waiting for a scheduled background process.
Original PR description
task link - https://www.odoo.com/web#id=37561&action=327&model=project.task&view_type=form&menu_id=