Daily updates from Odoo
Monday, September 23, 2024
11 changes · master
New functionality added to Odoo
A new dashboard has been added to help businesses monitor warehouse operations from the spreadsheet dashboard area. This gives teams a clearer view of stock-related activity and supports better operational follow-up.
Original PR description
Task-3919020
Enhancements to existing features
Studio approval settings now provide clearer help text and better aligned approval information, making the feature easier to understand and use. Approval groups can also be selected more flexibly because a technical identifier is no longer required.
Spreadsheet list insertions now apply formatting separately and use table styling instead of fixed borders. This makes inserted Odoo lists more consistent, easier to maintain, and better aligned with spreadsheet table behavior.
Original PR description
We currently insert lists with hardcoded borders and styles. This revision adds a new UI command to: - Split the style addition from the list datasource insertion - replace the current style by a table Task: 4178740
Users can now unschedule or delete planning slots directly from the Gantt popover, avoiding the extra step of opening the full form view. The update also standardizes how the unschedule action is defined, making the interface easier to maintain across planning and project views.
Original PR description
_*=planning, project_enterprise - In this PR add a new 'Unschedule and Delete' button to the gantt popover, which enables unscheduling or deletion of a slot directly from the popover without opening the form view. - in this PR remove the unschedule button code from javaScript and implement it in xml. task-3475452
Company-specific settings and values are now stored directly in a more structured database format, improving consistency and making reporting easier. This change also updates related accounting, payroll, documents, reporting, and data-cleaning areas to work with the new storage approach.
Original PR description
[IMP] core: jsonb company dependent fields use jsonb for company dependent fields 1. field type before: company dependent fields were non-stored and computed now: company dependent fields are stored…
[IMP] core: jsonb company dependent fields
use jsonb for company dependent fields
1. field type
before: company dependent fields were non-stored and computed
now: company dependent fields are stored fields whose column type is
jsonb with the format like '{"1": val1}'::jsonb
2. fallback
before: fallbacks of company dependent fields were stored in
ir_property.value_xxx `WHERE res_id IS NULL`
now: fallbacks are stored in ir_default.json_value in the format of
jsonfied write format
3. many2one
a. field.ondelete
before: only field.ondelete='set null'
now: support field.ondelete='set null' and field.ondelete='restrict'
b. field.index
before: no index
now: default 'btree_not_null' which index (col IS NOT NULL) for all
NOT NULL rows
c. reference exists
before: checked when get data from ir_property
now: cleaned when orm `unlink`. As a side effect, if a model is
referenced by a many2one company dependent field, this model
cannot have any field.ondelete='cascade' field. The developer
must override the `unlink` method to do the logical on delete
cascade in the ORM
4. _field_to_sql
before: not supported for company dependent fields
now: can be used by company dependent fields like normal fields to
generate reports
https://github.com/odoo/odoo/pull/175627
task: 3954610Several spreadsheet dashboards were updated to improve readability and business relevance. Changes include refreshed scorecard colors and layout, added accounting borders, and a subscription chart now showing MRR by product category instead of individual products.
Original PR description
some scorecards colors have a changed a graph in Subscriptions has changed (MRR by products -> MRR by Product Category) Some scorecard reorganisation Addition of borders in Accounting Task: 4195987
Helpdesk screens now better respect user permissions across related apps, reducing unnecessary access error messages. Buttons and information that users cannot access are hidden, making the support experience clearer and less confusing.
Original PR description
*= account,repair,loyalty,sale_loyalty,sale_timesheet,stock,timesheet. Improvement by restricting access errors for the user and hiding some stat buttons with no rights task-3912377
Subscription plans can now define whether a cancellation closes the subscription immediately or at the end of the current billing period. This gives businesses more control over cancellation policies and helps align subscription handling with customer commitments.
Original PR description
Before this PR, subscription plans lacked an option to specify whether the subscription should close immediately or at the end of the subscription period. After this PR, a new field has been added to subscription plans, allowing users to choose whether a subscription should close immediately or at the end of it's period. task-4035347
Resolved issues and error corrections
Fixes an issue where quotation calculators could fail or load the wrong sales order lines when synced fields targeted positions above the first line. Saving from the spreadsheet is now more reliable and avoids unnecessary reloading when all line positions are already available.
Fixed an issue in the Barcode app where scanning a non-GS1 product barcode together with multiple serial numbers could cause an error when GS1 nomenclature was enabled. This helps warehouse users continue receipt operations smoothly and prevents stuck scan counts on screen after failed parsing.
Original PR description
How to reproduce ================ - Create a product tracked by SN and set a barcode (ex.: productserial1) - Select the Default GS1 Nomenclature in the Inventory Settings - Open the Barcode App > Operations > Receipts > New - Scan a barcode containing the created product's barcode and multiple serial numbers (eg.: 'productserial1,sn1,sn2,sn3,sn4') --> Traceback. Cause of the issue ================== There is two issues: 1. The parser throws an error if it tries to parse a barcode with the GS1 nomenclature and fails and this error wasn't handle bv the BarcodeObject when it parses its barcode. 2. If the BarcodeObject wasn't parsed and has no missing record, it wasn't processed and the barcode's count stay on the screen.
Resource-based appointments booked online now show correctly in the Gantt planning view. This prevents missed bookings in operational schedules by removing an inappropriate privacy check for events that are tied to resources rather than individual users.
Original PR description
Purpose ======= Fix the resource events which weren't displayed in the gantt view when booked from the front-end. Specification ============= When an appointment based on resources is booked from the front-end, the event "user_id" field is set to be OdooBot. This is an issue as the read_group domain for the calendar.event model checks the user_id 'res_users_settings_id' field for privacy purpose but OdooBot doesn't have any users settings. => The read_group domain is always evaluated to False. No resource based events booked from the front-end are displayed on the gantt view. Fixing that by updating the privacy domain to be sure every events related to a resource can now be visible and accessible on the gantt view. The privacy field of an event is mainly related to the user settings but resource events aren't typically linked to any user meaning their visibility shouldn't depend on the privacy. Task-4191434