X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/ed7cd4d7271acd67bf366e4d320f9c49f07a50ea..66f7c2655c3bbc544569b6b5111b50b14cb9336b:/src/catalogue/views.py diff --git a/src/catalogue/views.py b/src/catalogue/views.py index e68c4a28..6d4a2249 100644 --- a/src/catalogue/views.py +++ b/src/catalogue/views.py @@ -2,6 +2,7 @@ # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from django.db.models import Prefetch +from django.contrib.auth.models import User from django.views.generic import DetailView, TemplateView from . import models import documents.models @@ -56,3 +57,32 @@ class KindTerms(Terms): queryset = models.Kind.objects.all() class GenreTerms(Terms): queryset = models.Genre.objects.all() + +class AuthorTerms(Terms): + search_fields = ['first_name', 'last_name'] + queryset = models.Author.objects.all() + +class EditorTerms(Terms): + search_fields = ['first_name', 'last_name', 'username'] + queryset = User.objects.all() + + class serializer_class(serializers.Serializer): + label = serializers.SerializerMethodField() + + def get_label(self, obj): + return f'{obj.last_name}, {obj.first_name}' + +class BookTitleTerms(Terms): + queryset = models.Book.objects.all() + search_fields = ['title', 'slug'] + + class serializer_class(serializers.Serializer): + label = serializers.CharField(source='title') + +class WLURITerms(Terms): + queryset = models.Book.objects.all() + search_fields = ['title', 'slug'] + + class serializer_class(serializers.Serializer): + label = serializers.CharField(source='wluri') +