35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import django_filters
|
|
from .models import Event, EventParticipant, MethodicalFile
|
|
|
|
class EventFilter(django_filters.FilterSet):
|
|
name = django_filters.CharFilter(lookup_expr="icontains")
|
|
location = django_filters.CharFilter(lookup_expr="icontains")
|
|
date_after = django_filters.DateFilter(field_name="date", lookup_expr="gte")
|
|
date_before = django_filters.DateFilter(field_name="date", lookup_expr="lte")
|
|
|
|
class Meta:
|
|
model = Event
|
|
fields = ["name", "location", "date_after", "date_before"]
|
|
|
|
|
|
class EventParticipantFilter(django_filters.FilterSet):
|
|
student_name = django_filters.CharFilter(
|
|
field_name="student__account__first_name", lookup_expr="icontains"
|
|
)
|
|
event_name = django_filters.CharFilter(field_name="event__name", lookup_expr="icontains")
|
|
|
|
class Meta:
|
|
model = EventParticipant
|
|
fields = ["student_name", "event_name", "points"]
|
|
|
|
|
|
class MethodicalFileFilter(django_filters.FilterSet):
|
|
name = django_filters.CharFilter(lookup_expr="icontains")
|
|
specialty_name = django_filters.CharFilter(
|
|
field_name="specialty__name", lookup_expr="icontains"
|
|
)
|
|
|
|
class Meta:
|
|
model = MethodicalFile
|
|
fields = ["name", "specialty_name", "upload_date"]
|