Thursday, February 2, 2023
6 changes · master
Enhancements to existing features
Odoo now calculates internal field update rules only when needed instead of doing all of them upfront. This significantly reduces installation time for large module sets and speeds up the first request on new workers without changing business behavior.
Original PR description
This patch optimizes the way field trigger trees are computed. Overall, the resulting trigger trees are mostly identical, but they can now be determined one by one, which enables an on-demand…
This patch optimizes the way field trigger trees are computed. Overall, the resulting trigger trees are mostly identical, but they can now be determined one by one, which enables an on-demand approach and partial cache. Before this patch, getting the first trigger tree proceeded as follows: - resolve the dependencies of all fields; - compute the transitive closure of the dependencies of all fields; - store the transitive closure above as field triggers for all fields in a cache. After this patch, getting the first trigger tree proceeded as follows: - resolve the dependencies of all fields; - cache them as direct triggers for all fields; - compute one trigger tree as the transitive closure of the field's triggers, and cache it. This optimization is quite effective during the installation of modules, and is even more effective when the number of fields is large. For instance, a complete installation with all community modules is now takes 25% less time. For a complete installation with all enterprise modules, the installation time is even 30% less! A medium installation is about 16% less time. The optimization also speeds up the first request on a new Odoo worker, since the minimum time for computing a handful of trigger trees is much smaller than before. We have observed slight differences in trigger trees, but they occur in places where the tree has redundant branches, in particular with fields having recursive dependencies. It therefore makes no difference in what is being triggered or invalidated.
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
This change removes old internal access-check methods that are no longer used. It simplifies the core base module and reduces maintenance overhead without changing day-to-day user behavior.
Original PR description
It looks like these methods where an alternative to `has_groups`, but not used since a while. In Odoo 10.0, there is only one hit, in point_of_sale, which has been replaced by `user_has_groups` in 11.0 with revision 34c661111b74145c334ce0cb456a18adccc4a4de In Odoo 9.0, there are a few more hits in base, which have been replaced by `self.env.user.has_group` in 11.0 with revision 4ddc32313996c8cf6e8e6dffd2253aad8a144ccf
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.