mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
Autocompletion in event selection
This commit is contained in:
@@ -252,7 +252,7 @@ def user_event_widgets(**kwargs):
|
||||
user = kwargs.pop('user')
|
||||
widgets = []
|
||||
|
||||
events = user.get_events_with_any_permission().order_by('-date_from', 'name').select_related('organizer')
|
||||
events = user.get_events_with_any_permission().order_by('-date_from', 'name').select_related('organizer')[:100]
|
||||
for event in events:
|
||||
widgets.append({
|
||||
'content': '<div class="event">{event}<span class="from">{df}</span><span class="to">{dt}</span></div>'.format(
|
||||
|
||||
32
src/pretix/control/views/typeahead.py
Normal file
32
src/pretix/control/views/typeahead.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import json
|
||||
|
||||
from django.db.models import Q
|
||||
from django.http import JsonResponse
|
||||
from django.urls import reverse
|
||||
|
||||
|
||||
def i18ncomp(query):
|
||||
return json.dumps(str(query))[1:-1]
|
||||
|
||||
|
||||
def event_list(request):
|
||||
query = request.GET.get('query', '')
|
||||
qs = request.user.get_events_with_any_permission().filter(
|
||||
Q(name__icontains=i18ncomp(query)) | Q(slug__icontains=query) |
|
||||
Q(organizer__name__icontains=i18ncomp(query)) | Q(organizer__slug__icontains=query)
|
||||
).order_by('-date_from')
|
||||
doc = {
|
||||
'results': [
|
||||
{
|
||||
'slug': e.slug,
|
||||
'organizer': str(e.organizer.name),
|
||||
'name': str(e.name),
|
||||
'date_range': e.get_date_range_display(),
|
||||
'url': reverse('control:event.index', kwargs={
|
||||
'event': e.slug,
|
||||
'organizer': e.organizer.slug
|
||||
})
|
||||
} for e in qs.select_related('organizer')[:10]
|
||||
]
|
||||
}
|
||||
return JsonResponse(doc)
|
||||
Reference in New Issue
Block a user