1
0
mirror of https://gitlab.crans.org/mediatek/med.git synced 2025-06-29 18:31:09 +02:00

Move emprunt button

This commit is contained in:
Alexandre Iooss
2019-08-10 15:53:23 +02:00
parent 82ebc60982
commit 8613dd2810
6 changed files with 25 additions and 49 deletions

View File

@ -2,6 +2,9 @@
# Copyright (C) 2017-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from django.urls import reverse
from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _
from reversion.admin import VersionAdmin
from med.admin import admin_site
@ -24,13 +27,29 @@ class MediaAdmin(VersionAdmin):
class EmpruntAdmin(VersionAdmin):
list_display = ('media', 'user', 'date_emprunt', 'date_rendu',
'permanencier_emprunt', 'permanencier_rendu')
'permanencier_emprunt', 'permanencier_rendu_custom')
search_fields = ('media__titre', 'media__cote', 'user__username',
'date_emprunt', 'date_rendu')
date_hierarchy = 'date_emprunt'
autocomplete_fields = ('media', 'user', 'permanencier_emprunt',
'permanencier_rendu')
def permanencier_rendu_custom(self, obj):
"""
Show a button if item has not been returned yet
"""
if obj.permanencier_rendu:
return obj.permanencier_rendu
else:
return format_html(
'<a class="button" href="{}">{}</a>',
reverse('media:retour-emprunt', args=[obj.pk]),
_('Turn back')
)
permanencier_rendu_custom.short_description = _('permanencier rendu')
permanencier_rendu_custom.allow_tags = True
class JeuAdmin(VersionAdmin):
list_display = ('nom', 'proprietaire', 'duree', 'nombre_joueurs_min',

View File

@ -8,8 +8,6 @@ from . import views
app_name = 'media'
urlpatterns = [
url(r'^add_emprunt/(?P<userid>[0-9]+)$', views.add_emprunt,
name='add-emprunt'),
url(r'^retour_emprunt/(?P<empruntid>[0-9]+)$', views.retour_emprunt,
name='retour-emprunt'),
]

View File

@ -11,8 +11,6 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from reversion import revisions as reversion
from users.models import User
from .forms import EmpruntForm
from .models import Emprunt
@ -22,36 +20,6 @@ def form(ctx, template, request):
return render(request, template, c)
@login_required
@permission_required('media.add_emprunt')
def add_emprunt(request, userid):
try:
user = User.objects.get(pk=userid)
except User.DoesNotExist:
messages.error(request, u"Entrée inexistante")
return redirect("admin:media_emprunt_changelist")
emprunts_en_cours = Emprunt.objects.filter(date_rendu=None,
user=user).count()
if emprunts_en_cours >= user.maxemprunt:
messages.error(request,
"Maximum d'emprunts atteint de "
"l'user %s" % user.maxemprunt)
return redirect("admin:media_emprunt_changelist")
emprunt = EmpruntForm(request.POST or None)
if emprunt.is_valid():
emprunt = emprunt.save(commit=False)
emprunt.user = user
emprunt.permanencier_emprunt = request.user
emprunt.date_emprunt = timezone.now()
with transaction.atomic(), reversion.create_revision():
emprunt.save()
reversion.set_user(request.user)
reversion.set_comment("Création")
messages.success(request, "Le emprunt a été ajouté")
return redirect("admin:media_emprunt_changelist")
return form({'form': emprunt}, 'media/media.html', request)
@login_required
@permission_required('media.change_emprunt')
def retour_emprunt(request, empruntid):