Thursday, February 2, 2023
6 changes · master
Enhancements to existing features
The calendar view filter panel now appears on the left side of the screen. This makes the calendar layout more consistent with other Odoo views, helping users navigate filters in a more familiar place.
Original PR description
This commit moves the filter panel of the calendar view to the left of the view to make it more coherent with other views. task: 3164391
The calendar view now behaves more like Google Calendar, making short appointments easier to read and placing events longer than 24 hours in the all-day area. Event cards also show timing details more clearly, helping users scan schedules faster.
Original PR description
This PR change generic calendar view to make it behave more like google calendar. These changes includes : - Scss rules for small event(<15 minutes) so that the title is always readable. On top of that, the top border of a darker color has been removed for these even to allow more space. - Event longer than 24h are now shown in the all day column independent of their 'allday' status - Time is now added in the event description, if the event is shorter than 30 minutes, only the start time is displayed at the end of the line. If the event is longer, the start time and end time are displayed on a new line. task-id : 3114155 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now click action buttons on unsaved draft rows in list views. The system will first save the new record, then run the requested action, reducing interruptions and extra manual steps.
Original PR description
Before this commit, the buttons of the draft record in a list view were disabled. Now, they are enabled and will save (create) the record before executing the button's action. task: 3132960
The Sign app now supports using templates when preparing signature requests, making it easier to send consistent documents with less repeated setup. This improves efficiency for teams that send similar agreements or forms regularly.
Resolved issues and error corrections
This fixes an issue where updating a many-to-many relationship could cause far more related records to be recalculated than necessary. The change reduces unnecessary background work, improving performance for databases with large linked record sets while keeping computed values accurate.
Original PR description
The issue occurs when a computed field depends on a many2many field with a corresponding inverse field on its comodel. Consider two models like ```py class User(models.Model): _name = _description =…
The issue occurs when a computed field depends on a many2many field with a corresponding inverse field on its comodel. Consider two models like
```py
class User(models.Model):
_name = _description = 'test_new_api.user'
group_ids = fields.Many2many('test_new_api.group')
group_count = fields.Integer(compute='_compute_group_count', store=True)
@api.depends('group_ids')
def _compute_group_count(self):
for user in self:
user.group_count = len(user.group_ids)
class Group(models.Model):
_name = _description = 'test_new_api.group'
user_ids = fields.Many2many('test_new_api.user')
```
When a user is added to a group with
```py
group.write({'user_ids': [Command.link(user.id)]})
```
we expect the field `group_count` to be recomputed on `user` only, but it is actually triggered on *all* the records in `group.user_ids`. This is a real performance issue when there are many records in the relation.
The explanation comes from the fact that
* the framework considers the field `user_ids` is modified on `group`;
* the field `group_count` implicitly depends on `group_ids.user_ids`, which makes it triggered on the users `u` such that `u.group_ids` intersects `group`.
The solution consists in handling the dependencies on inverse many2many field in the field itself. The field no longer adds the implicit dependency on its inverse field in the trigger tree, but instead determines which records in the comodel are actually impacted by the relation change in the method field.write().This update fixes how subscription-related operations are handled in batches, helping reduce errors when multiple records are processed together. It should make subscription management more reliable for teams working with larger volumes of sales subscriptions.
Original PR description
The goal of this PR is to batch operation for sale_subscription