Daily updates from Odoo
Navigate
Branch
Thursday, September 2, 2021
27 changes
Security fixes and vulnerability patches
This fix strengthens protections around default signing roles so they cannot be removed through alternate screens or automated calls. It helps preserve required signing workflows and prevents accidental or unauthorized disruption of signature processes.
Original PR description
In task-2475732, security rules were added to protect the users from deleting default roles. However they did not take into account deleting the records from rpc calls or from other views. This PR fixes the rules so they also handle these cases and prevent the default roles to be deleted.
New functionality added to Odoo
Currency rate updates can now use official exchange rates from the UAE Central Bank. This gives businesses operating in or with the UAE another trusted source for automated currency conversion updates.
Original PR description
Add a new provider - https://www.centralbank.ae/en/fx-rates Task 2615290
This change adds UAE-specific payroll capabilities, including local salary structures, rules, contract fields, and payroll accounting setup. It helps businesses operating in the United Arab Emirates manage payroll and related accounting more accurately within Odoo.
Original PR description
Changed name of branch to match the branch on `odoo/upgrade`
Companies using Argentina localization can now choose how VAT credit is prorated when generating AFIP VAT Book voucher files. This supports both global proration and no-proration reporting, helping businesses meet AFIP requirements directly in Odoo.
Original PR description
### Description of the issue/feature this PR addresses:
related to latam ticket 579 / Adhoc ticket 36712
When generating the AFIP VAT Book Vouchers TXT file the user can choose the proration option they want to use, this impact in the generated TXT files("Computable Tax Credit" column values change).
### Current behavior before PR:
Before this PR we were only able to generate the TXT file using the "Without Proration" option. For companies that need to report Global Proration to AFIP, they were not able to do it from Odoo.
### Desired behavior after PR is merged:
After this PR the user is able to generate the TXT file as he needs using the "Global" or "Without Proration" option.
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prAdds UAE-specific payroll setup so companies can manage local salary structures, rules, and contracts in Odoo. It also connects UAE payroll with accounting, helping payroll costs and related entries flow into the correct financial accounts.
Enhancements to existing features
HR-generated documents such as payslips are now linked to an employee's contact details as well as their user account, making it easier to share files with employees even when they do not have their own system login. Spreadsheet creation from Documents also preserves the intended folder and defaults when launched from contextual actions.
Original PR description
Previously documents generated by hr apps (such as payslips) were created with the employee's user as owner, but this does not allow for databases which don't have an user per employee to store and share documents for their employees only. This commit adds the logic to bind the documents to the employee's address instead of the user and the necessary rules to give them access to their files. Task ID: 2585039
This update improves Odoo's Time Off experience with a redesigned dashboard, clearer time off type setup, and stronger support for accrual plans and public holidays. HR teams can manage leave balances and country-specific payroll impacts more reliably, especially for employees with changing accrual rules or local holiday requirements.
Warehouse users can now scan a package type barcode to create or update packages directly in the Barcode app. This speeds up packing workflows and also improves note alerts so empty notes no longer create unnecessary warnings.
Original PR description
**TODO:** Add some tests. **[IMP] stock_barcode: scan package type** > Package type can now be scanned in the Barcode Application. > When a barcode type is scanned alone: > > - If the selected…
**TODO:** Add some tests. **[IMP] stock_barcode: scan package type** > Package type can now be scanned in the Barcode Application. > When a barcode type is scanned alone: > > - If the selected barcode line has already a package, it will change this package's type for the scanned one. > > - If the selected barcode line has no package, it will do a put in pack in a new package of this type. > > Also, the user can now scan a barcode beginning with a package type's barcode to put in pack in a new package of this type with the scanned barcode as package's name. > > For example, if you have a package type "Palette" with "PAL" as barcode and scan the barcode "PAL0000178", if this barcode doesn't match with something already existing, it will check if the barcode begins with a package type's barcode (here the palette) and then will put in pack the scanned products in a package with the barcode as name and with the corresponding package type. **[FIX] stock_barcode: display note …** > Before this commit, the picking's note alert was always shown once something was saved in the field (even if the field is empty as an empty HTML area is at least `<p><br></p>`). > > With this commit, it will be shown only if this is relevant. task-2627002
Phone call activity categorization has been moved from VoIP into the core Mail area. This makes meeting and activity management more consistent for users, even when VoIP-specific features are not the main focus.
Original PR description
In order to ease the mail.activity meetings management, we move the 'phonecall' category into the base 'mail' module. Check community commit for more details. Co-authored-by: Aurélien Warnon <awa@odoo.com> Task-2486126 ENT PR odoo/enterprise# COM PR odoo/odoo#75530
This update makes day-to-day work in Odoo service apps smoother by improving planning visuals, helpdesk follow-up, field service product selection, and timesheet entry. Teams can more quickly identify shift status, track customer service actions, review satisfaction ratings, and log time directly against tasks with fewer steps.
Original PR description
This PR brings UX improvements in the Services Apps (Planning, Timesheets, Project, Helpdesk, Field Service) task-2615316 Related: odoo/odoo#75524 Related: odoo/upgrade#2773
This update lets businesses restrict editing rights so users can only change their own documents, matching the existing read-only ownership control. Spreadsheet folders now use these ownership protections by default, and the default spreadsheet folder can be configured in settings instead of being fixed in the system.
Original PR description
Adds a duplicate of the `Own Documents Only` feature but for write access groups. This is added in order to limit folders to own documents completely, previously you would only be able to apply such a rule on read access. Enables both 'Own Documents Only' features on the spreadsheet folder. It also makes the default folder for spreadsheet configurable through the settings instead of it being hardcoded. Task ID: 2626858
The mobile menu now behaves more like a modern app drawer, keeping users oriented by showing a dimmed backdrop instead of taking over the entire screen. Sub-menus are easier to access and the menu can be closed by tapping outside it or swiping, making navigation smoother on phones and tablets.
Original PR description
Task ID: 2439062
Odoo now better supports invoices that combine taxes due immediately with taxes due on payment, which is required for withholding tax rules in some countries. Related reporting, reconciliation, invoice extraction, and commission views were updated so tax totals remain accurate and usable.
Original PR description
// Commit 1 [IMP] account_reports, account_accountant, l10n_be_reports: allow mixing cash basis and non-cash basis taxes on the same line The tax_exigible field of account.move.line made it…
// Commit 1 [IMP] account_reports, account_accountant, l10n_be_reports: allow mixing cash basis and non-cash basis taxes on the same line The tax_exigible field of account.move.line made it impossible to mix 'on_payment' and 'on_invoice' taxes on the same invoice line, as the base line couldn't be be tax exigible and non-tax exigible at the same time. However, this use case is needed by some countries in order to implement withholding taxes. To solve that, we totally remove the tax_exigible field from account.move.line and instead compute it on the fly with a domain (also passed to the query_get for SQL queries). An 'always_tax_exigible' stored computed field is also added on account.move, in order to still allow (like before) putting cash basis taxes on a miscellaneous operation without any payable/receivable line and still see it become exigible without needing any payment. Task: 2457374 // Commit 2 [IMP] account_invoice_extract, partner_commission: adapt views to the introduction of tax_totals_json Task 2457374
The My Tasks page in Project now opens in a visual Kanban board instead of a list by default. This makes it easier for users to quickly see task status and organize their work at a glance.
Original PR description
* Prioviously the My Task view was openend in tree by default. * After this commit the My Task view will be opened in kanban view by default task-2398734 Related PR: odoo/odoo#65664
Spreadsheet global filters now apply consistently to both pivot tables and list views. This makes spreadsheet reports easier to manage because one filter can control all relevant data views in the document.
Original PR description
Task-id 2632018
Spreadsheet pivots now show subgroup values only where they are relevant, instead of repeating every possible subgroup under every parent. This keeps date-based grouping behavior that users expect while making related field groupings clearer and less cluttered.
Original PR description
[IMP] documents_spreadsheet: Only join values when grouping by date currently when adding a pivot to a spreadsheet, each subgroup has always the same set of values. this join of all possible values in a set has been most valuable when first grouping by a date field, but can be quite frustrating when grouping by fields that are not independent, but related. This commit changes the behaviour off pivots in order to only have the set of subgroups to be the union of all possible values if there is a parent group based on a date field. There is also a special case if both parent and child are based on the same date field. in that cas we wont join the values. task-id: 2510158
Users can now download a partner's contact information as a standard vCard file. This makes it easier to add partner details to address books on desktop or mobile devices, with mobile imports handled by the device operating system.
Original PR description
In the process of replacing the native methods exposed in the mobile apps, this commit implements the download of a vCard containing a partner's informations. By using this standard format, both regular web users and mobile ones are now able to save the partner's details to use them with their usual address book software. On a mobile device, the actual import of those informations is delegated to the operating system. References: - https://datatracker.ietf.org/doc/html/rfc6350 - https://en.wikipedia.org/wiki/VCard - https://github.com/eventable/vobject#vcards Task ID: 2583916
Spreadsheet users can now work more efficiently with improved row and column movement, clearer highlights, unified panels, and new link-style cells. The update also fixes several display and editing issues, making spreadsheets more consistent and easier to use in Documents.
Original PR description
This commit contains the following updates to o-spreadsheet: [IMP] selection: allow to move selected columns and rows [IMP] side_panels: unify design [FIX] autofill: format incremented value in tooltip [IMP] cells: introduce link cells [REF] cells: split value type from its cell type [FIX] style: Unify style with Odoo [IMP] edition: avoid changing all highlights colors when adding ref. [IMP] highlight component: add a new component. [IMP] highlights: allow to have same highlights several times [IMP] renderer: display first digits of cropped numbers
Several Odoo Enterprise apps now better support guest users, allowing external participants to interact with selected communication, document, approval, live chat, social, and VoIP flows. This improves collaboration with people who do not have full internal accounts while keeping the experience consistent across modules.
Original PR description
* = approvals, documents, social_instagram, voip, website_helpdesk_livechat task-2494829
Employees can now create and share appointment links directly from their calendar, using either specific time slots or availability based on work hours. This makes it faster to offer booking options and reduces manual coordination with customers or colleagues.
Original PR description
# Purpose Allow an employee to manage more easily his appointments. He can now access his list of appointment types and creates a new category of appointment types that let him create real time slot…
# Purpose Allow an employee to manage more easily his appointments. He can now access his list of appointment types and creates a new category of appointment types that let him create real time slot from his calendar. He can also give a link to an appointment type that use as time slots his availabilities between his work hours. # Specifications This commits introduces temporary and work hours appointment types. The goal is to ease the scheduling of particular appointment type. The first one represents temporary appointment type which contains real time slots. This slots are created from the calendar view of the calendar app for the actual user. A work hours appointment type is an appointment type that is used to propose a link to select a slot from the working hours of an employee. This appointment category is managed by a new field: appointment_type_category * Calendar view: - Add a dropdown which display several options for the user (creation of temporary appointment/slots and appointment types of the actual employee). - Add a mode in the calendar view, to allow to create events as before (default) and a mode to create custom slots for a custom appointment type. - The end process of all the options allows to copy automatically the link of the appointment type. * Appointments Models: - Add one selection field in the calendar appointment type model: appointment_type_category. - Add fields to the slot model to manage real time slots. # Links task-2287846 COM PR: odoo/odoo#69484 UPG PR: odoo/upgrade#2401
Resolved issues and error corrections
This fixes a minor issue in accounting reports where the debug information popup could build an incorrect filter for its action. It helps ensure users and support teams see the right records when using debug details, reducing confusion during troubleshooting.
Original PR description
The goal is to fix a small bug that occurred when the domain was built.
Employees can now request appraisals and ask for appraisal feedback without being blocked by email template permission rules. This keeps managers in control of editing templates while allowing regular users to use approved templates for appraisal communications.
Original PR description
Purpose ======= Community update added groups allowing to ease email template management. Notably when activated only managers may deal with direct template update. Some exceptions are raised when requesting an appraisal or feedback on an appraisal because the current user does not have this group. He should however be able to render the template that the manager / template designer made without being able to modify them. Task-2187263
This update fixes mobile display issues where wide reports and dashboard sections could be cut off or difficult to scroll. Users can now navigate pivot, dashboard, Gantt, and related views more reliably on smaller screens, reducing frustration when reviewing business data on mobile devices.
Original PR description
Task ID: 2232265
Features or functions removed from Odoo
Amazon order handling now includes delivery tracking capabilities directly in the main Amazon sales app. This prevents delivery workflows from becoming unusable when tracking references are required and simplifies setup by removing the need for a separate add-on.
Original PR description
As of commit 01bc8407, a tracking reference is required for all deliveries. This makes the application unusable without the module `delivery`. `sale_amazon_delivery` is thus merged into `sale_amazon` and `delivery` is added as a dependency of the latter. task-2613864 Upgrade PR: https://github.com/odoo/upgrade/pull/2793
Miscellaneous changes
…inted receipt Forward-Port-Of: odoo/enterprise#20531 Forward-Port-Of: odoo/enterprise#20520
Original PR description
…inted receipt Forward-Port-Of: odoo/enterprise#20531 Forward-Port-Of: odoo/enterprise#20520
…t something The test involved in this commit did not test much hence did not crash when timeRanges were changed. This commit is linked to the fix [FIX] web: widget pie_chart supports timeRanges in PR: odoo/odoo#75335 Forward-Port-Of: odoo/enterprise#20551
Original PR description
…t something The test involved in this commit did not test much hence did not crash when timeRanges were changed. This commit is linked to the fix [FIX] web: widget pie_chart supports timeRanges in PR: odoo/odoo#75335 Forward-Port-Of: odoo/enterprise#20551
Steps to reproduce: With xml-rpc: - create a `sign.send.request` object - call `send_request` on this object Issue: Traceback: Empty `env.user` . Cause: Using `http.request` env, to get `sign.log model` or to get current user, outside of the controller will init a new env. In this case, the env will not have any user. Solution: Replace `http.request` by `self`. opw-2628387 Forward-Port-Of: odoo/enterprise#20418
Original PR description
Steps to reproduce: With xml-rpc: - create a `sign.send.request` object - call `send_request` on this object Issue: Traceback: Empty `env.user` . Cause: Using `http.request` env, to get `sign.log model` or to get current user, outside of the controller will init a new env. In this case, the env will not have any user. Solution: Replace `http.request` by `self`. opw-2628387 Forward-Port-Of: odoo/enterprise#20418