1
0
mirror of https://gitlab.crans.org/mediatek/med.git synced 2025-07-06 04:43:54 +02:00

Massive cleanup (1)

This commit is contained in:
Alexandre Iooss
2019-08-02 14:57:53 +02:00
parent ca394afe20
commit c5f98991aa
38 changed files with 479 additions and 729 deletions

View File

@ -1,28 +1,29 @@
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from django.template.context_processors import csrf
from django.template import Context, RequestContext, loader
# -*- 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.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.contrib.auth import authenticate, login
from django.views.decorators.csrf import csrf_exempt
from django.utils import timezone
from .forms import AuteurForm, MediaForm, JeuForm, EmpruntForm, EditEmpruntForm
from .models import Auteur, Media, Jeu, Emprunt
from users.models import User
from django.db import transaction
from django.shortcuts import render, redirect
from django.template.context_processors import csrf
from django.utils import timezone
from reversion import revisions as reversion
from reversion.models import Version
from med.settings import PAGINATION_NUMBER
from users.models import User
from .forms import AuteurForm, MediaForm, JeuForm, EmpruntForm, EditEmpruntForm
from .models import Auteur, Media, Jeu, Emprunt
def form(ctx, template, request):
c = ctx
c.update(csrf(request))
return render(request, template, c)
@login_required
@permission_required('perm')
def add_auteur(request):
@ -36,13 +37,14 @@ def add_auteur(request):
return redirect("/media/index_auteurs/")
return form({'mediaform': auteur}, 'media/media.html', request)
@login_required
@permission_required('perm')
def edit_auteur(request, auteurid):
try:
auteur_instance = Auteur.objects.get(pk=auteurid)
except Auteur.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_auteurs/")
auteur = AuteurForm(request.POST or None, instance=auteur_instance)
if auteur.is_valid():
@ -54,13 +56,14 @@ def edit_auteur(request, auteurid):
return redirect("/media/index_auteurs/")
return form({'mediaform': auteur}, 'media/media.html', request)
@login_required
@permission_required('perm')
def del_auteur(request, auteurid):
try:
auteur_instance = Auteur.objects.get(pk=auteurid)
except Auteur.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_auteurs/")
if request.method == "POST":
with transaction.atomic(), reversion.create_revision():
@ -84,13 +87,14 @@ def add_media(request):
return redirect("/media/index_medias/")
return form({'mediaform': media}, 'media/media.html', request)
@login_required
@permission_required('perm')
def edit_media(request, mediaid):
try:
media_instance = Media.objects.get(pk=mediaid)
except Media.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_medias/")
media = MediaForm(request.POST or None, instance=media_instance)
if media.is_valid():
@ -102,13 +106,14 @@ def edit_media(request, mediaid):
return redirect("/media/index_medias/")
return form({'mediaform': media}, 'media/media.html', request)
@login_required
@permission_required('perm')
def del_media(request, mediaid):
try:
media_instance = Media.objects.get(pk=mediaid)
except Media.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_medias/")
if request.method == "POST":
with transaction.atomic(), reversion.create_revision():
@ -118,6 +123,7 @@ def del_media(request, mediaid):
return redirect("/media/index_medias")
return form({'objet': media_instance, 'objet_name': 'media'}, 'media/delete.html', request)
@login_required
@permission_required('perm')
def add_jeu(request):
@ -131,13 +137,14 @@ def add_jeu(request):
return redirect("/media/index_jeux/")
return form({'mediaform': jeu}, 'media/media.html', request)
@login_required
@permission_required('perm')
def edit_jeu(request, jeuid):
try:
jeu_instance = Jeu.objects.get(pk=jeuid)
except Jeu.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_jeux/")
jeu = JeuForm(request.POST or None, instance=jeu_instance)
if jeu.is_valid():
@ -149,13 +156,14 @@ def edit_jeu(request, jeuid):
return redirect("/media/index_jeux/")
return form({'mediaform': jeu}, 'media/media.html', request)
@login_required
@permission_required('perm')
def del_jeu(request, jeuid):
try:
jeu_instance = Jeu.objects.get(pk=jeuid)
except Jeu.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_jeux/")
if request.method == "POST":
with transaction.atomic(), reversion.create_revision():
@ -165,13 +173,14 @@ def del_jeu(request, jeuid):
return redirect("/media/index_jeux")
return form({'objet': jeu_instance, 'objet_name': 'jeu'}, 'media/delete.html', request)
@login_required
@permission_required('perm')
def add_emprunt(request, userid):
try:
user = User.objects.get(pk=userid)
except User.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_emprunts/")
emprunts_en_cours = Emprunt.objects.filter(date_rendu=None, user=user).count()
if emprunts_en_cours >= user.maxemprunt:
@ -191,13 +200,14 @@ def add_emprunt(request, userid):
return redirect("/media/index_emprunts/")
return form({'mediaform': emprunt}, 'media/media.html', request)
@login_required
@permission_required('perm')
def edit_emprunt(request, empruntid):
try:
emprunt_instance = Emprunt.objects.get(pk=empruntid)
except Emprunt.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_emprunts/")
emprunt = EditEmpruntForm(request.POST or None, instance=emprunt_instance)
if emprunt.is_valid():
@ -209,13 +219,14 @@ def edit_emprunt(request, empruntid):
return redirect("/media/index_emprunts/")
return form({'mediaform': emprunt}, 'media/media.html', request)
@login_required
@permission_required('perm')
def retour_emprunt(request, empruntid):
try:
emprunt_instance = Emprunt.objects.get(pk=empruntid)
except Emprunt.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_emprunts/")
with transaction.atomic(), reversion.create_revision():
emprunt_instance.permanencier_rendu = request.user
@ -225,13 +236,14 @@ def retour_emprunt(request, empruntid):
messages.success(request, "Retour enregistré")
return redirect("/media/index_emprunts/")
@login_required
@permission_required('perm')
def del_emprunt(request, empruntid):
try:
emprunt_instance = Emprunt.objects.get(pk=empruntid)
except Emprunt.DoesNotExist:
messages.error(request, u"Entrée inexistante" )
messages.error(request, u"Entrée inexistante")
return redirect("/media/index_emprunts/")
if request.method == "POST":
with transaction.atomic(), reversion.create_revision():
@ -242,8 +254,6 @@ def del_emprunt(request, empruntid):
return form({'objet': emprunt_instance, 'objet_name': 'emprunt'}, 'media/delete.html', request)
@login_required
def index_jeux(request):
jeux_list = Jeu.objects.all()
@ -257,7 +267,8 @@ def index_jeux(request):
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
jeux_list = paginator.page(paginator.num_pages)
return render(request, 'media/index_jeux.html', {'jeux_list':jeux_list})
return render(request, 'media/index_jeux.html', {'jeux_list': jeux_list})
@login_required
def index_auteurs(request):
@ -272,7 +283,8 @@ def index_auteurs(request):
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
auteurs_list = paginator.page(paginator.num_pages)
return render(request, 'media/index_auteurs.html', {'auteurs_list':auteurs_list})
return render(request, 'media/index_auteurs.html', {'auteurs_list': auteurs_list})
@login_required
def index_medias(request):
@ -287,7 +299,7 @@ def index_medias(request):
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
medias_list = paginator.page(paginator.num_pages)
return render(request, 'media/index_medias.html', {'medias_list':medias_list})
return render(request, 'media/index_medias.html', {'medias_list': medias_list})
@login_required
@ -306,35 +318,35 @@ def index(request):
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
emprunts_list = paginator.page(paginator.num_pages)
return render(request, 'media/index_emprunts.html', {'emprunts_list':emprunts_list})
return render(request, 'media/index_emprunts.html', {'emprunts_list': emprunts_list})
@login_required
def history(request, object, id):
if object == 'auteur':
try:
object_instance = Auteur.objects.get(pk=id)
object_instance = Auteur.objects.get(pk=id)
except Auteur.DoesNotExist:
messages.error(request, "Auteur inexistant")
return redirect("/media/index_auteurs")
messages.error(request, "Auteur inexistant")
return redirect("/media/index_auteurs")
elif object == 'media':
try:
object_instance = Media.objects.get(pk=id)
object_instance = Media.objects.get(pk=id)
except Media.DoesNotExist:
messages.error(request, "Media inexistant")
return redirect("/media/index_medias")
messages.error(request, "Media inexistant")
return redirect("/media/index_medias")
elif object == 'emprunt':
try:
object_instance = Emprunt.objects.get(pk=id)
object_instance = Emprunt.objects.get(pk=id)
except Emprunt.DoesNotExist:
messages.error(request, "Emprunt inexistant")
return redirect("/media/index_emprunts")
messages.error(request, "Emprunt inexistant")
return redirect("/media/index_emprunts")
elif object == 'jeu':
try:
object_instance = Jeu.objects.get(pk=id)
object_instance = Jeu.objects.get(pk=id)
except Jeu.DoesNotExist:
messages.error(request, "Jeu inexistant")
return redirect("/media/index_jeux")
messages.error(request, "Jeu inexistant")
return redirect("/media/index_jeux")
reversions = Version.objects.get_for_object(object_instance)
paginator = Paginator(reversions, PAGINATION_NUMBER)
page = request.GET.get('page')
@ -347,4 +359,3 @@ def history(request, object, id):
# If page is out of range (e.g. 9999), deliver last page of results.
reversions = paginator.page(paginator.num_pages)
return render(request, 'med/history.html', {'reversions': reversions, 'object': object_instance})