Tuesday, August 23, 2022
7 changes
New functionality added to Odoo
Barcode users can now scan GS1 expiration or best-before dates directly while editing picking and inventory adjustment lines. This reduces manual entry, helps capture product shelf-life information more accurately, and supports expiry handling for industries such as food.
Original PR description
Add barcode support for expiration date. Now in the Barcode, in the sml edit form of picking and inventory adjustment, users can scan a expiration date(GS1). Task-2657043
Enhancements to existing features
Odoo Enterprise apps were updated to work with the platform's newer real-time messaging system. This keeps spreadsheet collaboration, VoIP, documents, accounting tests, and Studio behavior aligned with the core upgrade, reducing the risk of disruption for users relying on live updates.
Original PR description
community: odoo/odoo#75510 Task-2053917
Resolved issues and error corrections
Bank reconciliation now correctly applies payment tolerance rules when matching slightly different invoice and statement amounts. This prevents the full amount from being incorrectly treated as a write-off, improving accounting accuracy for small payment differences.
Original PR description
…ing payment tolerance - Create a reco model with a payment tolerance of 2% - Create an invoice of 1000 - Create a statement line of 998 => The whole amount is in write-off Explanation: The first issue is the matched aml is mounted inside the widget using 'allow_partial'. So, the mounted line is a partial of 998 / 1000 instead of the full amount. The second issue is '_action_select_reconcile_model' is removing all the lines linked to a reconcile model instead of removing only the ones having a different reconcile model. So, the previously mounted line is removed and then, the write-off is generated for the whole amount. task: 2929017
Spreadsheet users can now set and use global filters even when a spreadsheet has no pivot, list, or graph data source. This enables formulas such as credit-related calculations to reuse filter values more flexibly, supporting new reporting scenarios without extra setup.
Original PR description
We now have some use cases that could benefit from the global filters, for exemple ODOO.CREDIT function which can take the value from an ODOO.FILTER.VALUE function. This could work without a pivot, list or graph in the spreadsheet. Therefore, we enable the use of a global filter without a data source. Task-id 2954856
Map views can now correctly group records by many-to-many fields, such as assignees. This makes grouped maps clearer by showing proper group labels, placing each record in the right groups, and keeping map pins aligned with the record list.
Original PR description
The objective of this PR is to allow grouping by many2many fields in map (enterprise) views. # Map The x2many 'group by' was available for the map view but was not handled. ### Current behaviour: - The 'grouped by' map view with no group label - The grouped by was by set of ids in the x2many and thus not grouped by each id in the x2many. - The pin in the map had IDs that do not exist in the list of records on the right ### Expected behaviour by merging this PR - There are group labels when grouped by x2many - Each group is one and only one record - Pins in the map have IDs that exists in the list of record on the right task-2721035
The mobile user preferences form has been modernized to use Odoo's newer interface framework. This should make the screen easier to maintain and more consistent with current mobile behavior, with related tests updated to protect the experience.
This fixes an issue where uploaded documents could miss or ignore related details such as owner, customer, or linked record because those values were sent in the wrong format. Document uploads now apply the intended context correctly, improving reliability for users organizing files.
Original PR description
The upload_attachment route does not expect `default_x` keys but directly `x` for owner_id, partner_id, res_id and res_model. However they were passed as `default_x` since the owl refactor. This commit fixes behaviour.