forked from CGM_Public/pretix_original
Show event meta data in backend list of events
This commit is contained in:
@@ -710,8 +710,12 @@ class Event(EventMixin, LoggedModel):
|
|||||||
@property
|
@property
|
||||||
def meta_data(self):
|
def meta_data(self):
|
||||||
data = {p.name: p.default for p in self.organizer.meta_properties.all()}
|
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()})
|
if hasattr(self, 'meta_values_cached'):
|
||||||
return data
|
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
|
@property
|
||||||
def has_payment_provider(self):
|
def has_payment_provider(self):
|
||||||
|
|||||||
@@ -87,6 +87,11 @@
|
|||||||
<td class="event-name-col">
|
<td class="event-name-col">
|
||||||
<strong><a href="{% url "control:event.index" organizer=e.organizer.slug event=e.slug %}">{{ e.name }}</a></strong>
|
<strong><a href="{% url "control:event.index" organizer=e.organizer.slug event=e.slug %}">{{ e.name }}</a></strong>
|
||||||
<br><small>{{ e.slug }}</small>
|
<br><small>{{ e.slug }}</small>
|
||||||
|
{% for k, v in e.meta_data.items %}
|
||||||
|
{% if v %}
|
||||||
|
<span class="text-muted">· {{ k }}: {{ v }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
</td>
|
</td>
|
||||||
{% if not hide_orga %}<td>{{ e.organizer }}</td>{% endif %}
|
{% if not hide_orga %}<td>{{ e.organizer }}</td>{% endif %}
|
||||||
<td class="event-date-col">
|
<td class="event-date-col">
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from i18nfield.strings import LazyI18nString
|
|||||||
|
|
||||||
from pretix.base.forms import SafeSessionWizardView
|
from pretix.base.forms import SafeSessionWizardView
|
||||||
from pretix.base.i18n import language
|
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 (
|
from pretix.control.forms.event import (
|
||||||
EventWizardBasicsForm, EventWizardCopyForm, EventWizardFoundationForm,
|
EventWizardBasicsForm, EventWizardCopyForm, EventWizardFoundationForm,
|
||||||
)
|
)
|
||||||
@@ -32,8 +32,13 @@ class EventList(PaginationMixin, ListView):
|
|||||||
template_name = 'pretixcontrol/events/index.html'
|
template_name = 'pretixcontrol/events/index.html'
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = self.request.user.get_events_with_any_permission(self.request).select_related('organizer').prefetch_related(
|
qs = self.request.user.get_events_with_any_permission(self.request).prefetch_related(
|
||||||
'_settings_objects', 'organizer___settings_objects'
|
'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')
|
).order_by('-date_from')
|
||||||
|
|
||||||
qs = qs.annotate(
|
qs = qs.annotate(
|
||||||
|
|||||||
Reference in New Issue
Block a user