mirror of
https://gitlab.crans.org/mediatek/med.git
synced 2025-07-07 03:04:01 +02:00
Add page to search a media by its ISBN
This commit is contained in:
@ -4,16 +4,20 @@
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from django.db import transaction
|
||||
from django.shortcuts import redirect, render
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import TemplateView
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.filters import SearchFilter
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from .models import Auteur, BD, Emprunt, Jeu
|
||||
from .serializers import AuteurSerializer, EmpruntSerializer, \
|
||||
JeuSerializer, MediaSerializer
|
||||
from .models import Auteur, BD, CD, Emprunt, FutureMedia, Jeu, Manga, Revue, Roman, Vinyle
|
||||
from .serializers import AuteurSerializer, BDSerializer, CDSerializer, EmpruntSerializer, FutureMediaSerializer, \
|
||||
JeuSerializer, MangaSerializer, RevueSerializer, RomanSerializer, VinyleSerializer
|
||||
|
||||
|
||||
@login_required
|
||||
@ -45,6 +49,10 @@ def index(request):
|
||||
})
|
||||
|
||||
|
||||
class FindMediumView(LoginRequiredMixin, TemplateView):
|
||||
template_name = "media/find_medium.html"
|
||||
|
||||
|
||||
class AuteurViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows authors to be viewed or edited.
|
||||
@ -53,12 +61,82 @@ class AuteurViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = AuteurSerializer
|
||||
|
||||
|
||||
class MediaViewSet(viewsets.ModelViewSet):
|
||||
class BDViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = BD.objects.all()
|
||||
serializer_class = MediaSerializer
|
||||
serializer_class = BDSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["isbn", "side_identifier"]
|
||||
search_fields = ["isbn", "$title", "$subtitle", "side_identifier", "$authors__name"]
|
||||
|
||||
|
||||
class MangaViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = Manga.objects.all()
|
||||
serializer_class = MangaSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["isbn", "side_identifier"]
|
||||
search_fields = ["isbn", "$title", "$subtitle", "side_identifier", "$authors__name"]
|
||||
|
||||
|
||||
class CDViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = CD.objects.all()
|
||||
serializer_class = CDSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["side_identifier"]
|
||||
search_fields = ["$title", "side_identifier", "$authors__name"]
|
||||
|
||||
|
||||
class VinyleViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = Vinyle.objects.all()
|
||||
serializer_class = VinyleSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["side_identifier", "rpm"]
|
||||
search_fields = ["$title", "side_identifier", "$authors__name"]
|
||||
|
||||
|
||||
class RomanViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = Roman.objects.all()
|
||||
serializer_class = RomanSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["isbn", "side_identifier", "number_of_pages"]
|
||||
search_fields = ["$title", "$subtitle", "side_identifier", "$authors__name"]
|
||||
|
||||
|
||||
class RevueViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = Revue.objects.all()
|
||||
serializer_class = RevueSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["number", "year", "month", "day", "double"]
|
||||
search_fields = ["$title"]
|
||||
|
||||
|
||||
|
||||
class FutureMediaViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows media to be viewed or edited.
|
||||
"""
|
||||
queryset = FutureMedia.objects.all()
|
||||
serializer_class = FutureMediaSerializer
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter]
|
||||
filterset_fields = ["isbn"]
|
||||
search_fields = ["$isbn"]
|
||||
|
||||
|
||||
class EmpruntViewSet(viewsets.ModelViewSet):
|
||||
|
Reference in New Issue
Block a user