Clean up Request object

This commit is contained in:
Alexandre Iooss 2019-08-09 23:17:55 +02:00
parent 8b27710266
commit d6e7a2b635
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
5 changed files with 29 additions and 58 deletions

View File

@ -163,31 +163,11 @@ PASSWORD_HASHERS = [
AUTH_USER_MODEL = 'users.User' AUTH_USER_MODEL = 'users.User'
# Association information
ASSO_NAME = "Med"
ASSO_ADDRESS_LINE1 = "61 Avenue du président Wilson"
ASSO_ADDRESS_LINE2 = "94230 Cachan"
ASSO_SIRET = ""
ASSO_EMAIL = "med@lists.crans.org"
ASSO_PHONE = "01 02 03 04 05"
# Number of hours a token remains valid after having been created. Numeric and string
# versions should have the same meaning.
REQ_EXPIRE_HRS = 48
REQ_EXPIRE_STR = '48 heures'
# Email `From` field
EMAIL_FROM = 'club-med@crans.org'
MINIMUM_LEVEL = 0 # Découvert autorisé MINIMUM_LEVEL = 0 # Découvert autorisé
SEARCH_RESULT = 15 # Affichage des résultats SEARCH_RESULT = 15 # Affichage des résultats
MAX_EMPRUNT = 5 # Max emprunts MAX_EMPRUNT = 5 # Max emprunts
SEARCH_DISPLAY_PAGE = 20 # Affichage des resultats de recherche SEARCH_DISPLAY_PAGE = 20 # Affichage des resultats de recherche
# Utilisateurs autorisés pour la page clef
AUTHORIZED_IP_RANGE = "138.231.0.0/16"
AUTHORIZED_IP6_RANGE = "2a06:e042::/32"
try: try:
from .settings_local import * from .settings_local import *
except ImportError: except ImportError:

View File

@ -28,13 +28,13 @@ def add_emprunt(request, userid):
user = User.objects.get(pk=userid) user = User.objects.get(pk=userid)
except User.DoesNotExist: except User.DoesNotExist:
messages.error(request, u"Entrée inexistante") messages.error(request, u"Entrée inexistante")
return redirect("/media/index_emprunts/") return redirect("/")
emprunts_en_cours = Emprunt.objects.filter(date_rendu=None, emprunts_en_cours = Emprunt.objects.filter(date_rendu=None,
user=user).count() user=user).count()
if emprunts_en_cours >= user.maxemprunt: if emprunts_en_cours >= user.maxemprunt:
messages.error(request, messages.error(request,
"Maximum d'emprunts atteint de l'user %s" % user.maxemprunt) "Maximum d'emprunts atteint de l'user %s" % user.maxemprunt)
return redirect("/media/index_emprunts/") return redirect("/")
emprunt = EmpruntForm(request.POST or None) emprunt = EmpruntForm(request.POST or None)
if emprunt.is_valid(): if emprunt.is_valid():
emprunt = emprunt.save(commit=False) emprunt = emprunt.save(commit=False)
@ -46,7 +46,7 @@ def add_emprunt(request, userid):
reversion.set_user(request.user) reversion.set_user(request.user)
reversion.set_comment("Création") reversion.set_comment("Création")
messages.success(request, "Le emprunt a été ajouté") messages.success(request, "Le emprunt a été ajouté")
return redirect("/media/index_emprunts/") return redirect("/")
return form({'form': emprunt}, 'media/media.html', request) return form({'form': emprunt}, 'media/media.html', request)
@ -57,14 +57,14 @@ def retour_emprunt(request, empruntid):
emprunt_instance = Emprunt.objects.get(pk=empruntid) emprunt_instance = Emprunt.objects.get(pk=empruntid)
except Emprunt.DoesNotExist: except Emprunt.DoesNotExist:
messages.error(request, u"Entrée inexistante") messages.error(request, u"Entrée inexistante")
return redirect("/media/index_emprunts/") return redirect("/")
with transaction.atomic(), reversion.create_revision(): with transaction.atomic(), reversion.create_revision():
emprunt_instance.permanencier_rendu = request.user emprunt_instance.permanencier_rendu = request.user
emprunt_instance.date_rendu = timezone.now() emprunt_instance.date_rendu = timezone.now()
emprunt_instance.save() emprunt_instance.save()
reversion.set_user(request.user) reversion.set_user(request.user)
messages.success(request, "Retour enregistré") messages.success(request, "Retour enregistré")
return redirect("/media/index_emprunts/") return redirect("/")
def index(request): def index(request):

View File

@ -12,11 +12,7 @@ from django.utils.translation import ugettext_lazy as _
from reversion.admin import VersionAdmin from reversion.admin import VersionAdmin
from .forms import UserCreationAdminForm from .forms import UserCreationAdminForm
from .models import Adhesion, Clef, Request, User from .models import Adhesion, Clef, User
class RequestAdmin(admin.ModelAdmin):
list_display = ('user', 'type', 'created_at', 'expires_at')
class ClefAdmin(VersionAdmin): class ClefAdmin(VersionAdmin):
@ -127,6 +123,5 @@ class UserAdmin(VersionAdmin, BaseUserAdmin):
admin.site.register(User, UserAdmin) admin.site.register(User, UserAdmin)
admin.site.register(Request, RequestAdmin)
admin.site.register(Adhesion, AdhesionAdmin) admin.site.register(Adhesion, AdhesionAdmin)
admin.site.register(Clef, ClefAdmin) admin.site.register(Clef, ClefAdmin)

View File

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.22 on 2019-08-09 21:17
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('users', '0026_auto_20190809_0802'),
]
operations = [
migrations.RemoveField(
model_name='request',
name='user',
),
migrations.DeleteModel(
name='Request',
),
]

View File

@ -2,15 +2,11 @@
# Copyright (C) 2017-2019 by BDE ENS Paris-Saclay # Copyright (C) 2017-2019 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
import datetime
import uuid
from django.contrib.auth.models import AbstractUser from django.contrib.auth.models import AbstractUser
from django.db import models from django.db import models
from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from med.settings import MAX_EMPRUNT, REQ_EXPIRE_HRS from med.settings import MAX_EMPRUNT
class User(AbstractUser): class User(AbstractUser):
@ -48,28 +44,6 @@ class User(AbstractUser):
return last_adh_year and self in last_adh_year.adherent.all() return last_adh_year and self in last_adh_year.adherent.all()
class Request(models.Model):
PASSWD = 'PW'
EMAIL = 'EM'
TYPE_CHOICES = (
(PASSWD, 'Mot de passe'),
(EMAIL, 'Email'),
)
type = models.CharField(max_length=2, choices=TYPE_CHOICES)
token = models.CharField(max_length=32)
user = models.ForeignKey('User', on_delete=models.PROTECT)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
expires_at = models.DateTimeField()
def save(self):
if not self.expires_at:
self.expires_at = timezone.now()
self.expires_at += datetime.timedelta(hours=REQ_EXPIRE_HRS)
if not self.token:
self.token = str(uuid.uuid4()).replace('-', '') # remove hyphens
super().save()
class Clef(models.Model): class Clef(models.Model):
nom = models.CharField(max_length=255, unique=True) nom = models.CharField(max_length=255, unique=True)
proprio = models.ForeignKey('User', on_delete=models.PROTECT, blank=True, proprio = models.ForeignKey('User', on_delete=models.PROTECT, blank=True,