Florian Charlier
authored
With stored computed seat attributes, the database can be flooded with update queries for the stored values for the event (ticket) seats computations (such as reserved, expected, and available seats). This can especially occur when a communication is sent to many people about an event with a registration link, many users may want to register at the same time, possibly resulting in concurrent_update errors. In this commit, we remove the `store=True` attribute of those fields, and therefore remove the Reporting/Event feature depending on them and rewrite some domain searches and _compute fields in the event and event_sale modules. This also impacts the way constraints are enforced on the number of registrations vs defined maximum as no stored value is directly available. For performance reasons, all events and tickets are now shown on backend form views, with seat availability added in their displayed name. Misc To avoid delaying the inevitable, the Event configurator modal/wizard now validates event/ticket consistency at closing. The UI of the RegistrationEditor wizard is also improved: * A warning alert will tell users that free registrations were not confirmed because of insufficient seat availability. * A first step to better explain the consequences of the actions taken on the modal was to be taken, here via the description and buttons wording. Tests Query counts are (indeed reduced) and updated. However, as local testing with `test-tags=/test_event_full` ("tef_only") is currently not reliable, these values were updated by applying the same change from the commit as the one seen for the runbots, while a "?" is appended to show this uncertainty. Task-2654816 See odoo/upgrade#3118 Part-of: odoo/odoo#81583
Name | Last commit | Last update |
---|---|---|
.. | ||
__init__.py | ||
event_configurator.py | ||
event_configurator_views.xml | ||
event_edit_registration.py | ||
event_edit_registration.xml |