# -*- mode: python; coding: utf-8 -*- # Copyright (C) 2017-2019 by BDE ENS Paris-Saclay # SPDX-License-Identifier: GPL-3.0-or-later from django.contrib import messages from django.contrib.auth.decorators import login_required, permission_required 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 rest_framework import viewsets from reversion import revisions as reversion from .models import Auteur, BD, Emprunt, Jeu from .serializers import AuteurSerializer, EmpruntSerializer, \ JeuSerializer, MediaSerializer @login_required @permission_required('media.change_emprunt') def retour_emprunt(request, empruntid): try: emprunt_instance = Emprunt.objects.get(pk=empruntid) except Emprunt.DoesNotExist: messages.error(request, u"Entrée inexistante") return redirect("admin:media_emprunt_changelist") with transaction.atomic(), reversion.create_revision(): emprunt_instance.permanencier_rendu = request.user emprunt_instance.date_rendu = timezone.now() emprunt_instance.save() reversion.set_user(request.user) messages.success(request, "Retour enregistré") return redirect("admin:media_emprunt_changelist") def index(request): """ Home page which redirect to admin when logged in """ if request.user.is_authenticated: return redirect('admin:index') else: return render(request, 'admin/index.html', { 'title': _('Welcome to the Mediatek database'), }) class AuteurViewSet(viewsets.ModelViewSet): """ API endpoint that allows authors to be viewed or edited. """ queryset = Auteur.objects.all() serializer_class = AuteurSerializer class MediaViewSet(viewsets.ModelViewSet): """ API endpoint that allows media to be viewed or edited. """ queryset = BD.objects.all() serializer_class = MediaSerializer class EmpruntViewSet(viewsets.ModelViewSet): """ API endpoint that allows borrowed items to be viewed or edited. """ queryset = Emprunt.objects.all() serializer_class = EmpruntSerializer class JeuViewSet(viewsets.ModelViewSet): """ API endpoint that allows games to be viewed or edited. """ queryset = Jeu.objects.all() serializer_class = JeuSerializer