diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py
index a4d0733a86..04c1165478 100644
--- a/src/pretix/base/models/event.py
+++ b/src/pretix/base/models/event.py
@@ -710,8 +710,12 @@ class Event(EventMixin, LoggedModel):
@property
def meta_data(self):
data = {p.name: p.default for p in self.organizer.meta_properties.all()}
- data.update({v.property.name: v.value for v in self.meta_values.select_related('property').all()})
- return data
+ if hasattr(self, 'meta_values_cached'):
+ data.update({v.property.name: v.value for v in self.meta_values_cached})
+ else:
+ data.update({v.property.name: v.value for v in self.meta_values.select_related('property').all()})
+
+ return OrderedDict((k, v) for k, v in sorted(data.items(), key=lambda k: k[0]))
@property
def has_payment_provider(self):
diff --git a/src/pretix/control/templates/pretixcontrol/events/index.html b/src/pretix/control/templates/pretixcontrol/events/index.html
index a7205138d7..d1202ba581 100644
--- a/src/pretix/control/templates/pretixcontrol/events/index.html
+++ b/src/pretix/control/templates/pretixcontrol/events/index.html
@@ -87,6 +87,11 @@
{{ e.name }}
{{ e.slug }}
+ {% for k, v in e.meta_data.items %}
+ {% if v %}
+ · {{ k }}: {{ v }}
+ {% endif %}
+ {% endfor %}
|
{% if not hide_orga %}{{ e.organizer }} | {% endif %}
diff --git a/src/pretix/control/views/main.py b/src/pretix/control/views/main.py
index 6ab86eaaa6..4d19473dd8 100644
--- a/src/pretix/control/views/main.py
+++ b/src/pretix/control/views/main.py
@@ -17,7 +17,7 @@ from i18nfield.strings import LazyI18nString
from pretix.base.forms import SafeSessionWizardView
from pretix.base.i18n import language
-from pretix.base.models import Event, Organizer, Quota, Team
+from pretix.base.models import Event, EventMetaValue, Organizer, Quota, Team
from pretix.control.forms.event import (
EventWizardBasicsForm, EventWizardCopyForm, EventWizardFoundationForm,
)
@@ -32,8 +32,13 @@ class EventList(PaginationMixin, ListView):
template_name = 'pretixcontrol/events/index.html'
def get_queryset(self):
- qs = self.request.user.get_events_with_any_permission(self.request).select_related('organizer').prefetch_related(
- '_settings_objects', 'organizer___settings_objects'
+ qs = self.request.user.get_events_with_any_permission(self.request).prefetch_related(
+ 'organizer', '_settings_objects', 'organizer___settings_objects', 'organizer__meta_properties',
+ Prefetch(
+ 'meta_values',
+ EventMetaValue.objects.select_related('property'),
+ to_attr='meta_values_cached'
+ )
).order_by('-date_from')
qs = qs.annotate(
|