mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-26 00:43:46 +00:00
Doc et grosse review pep8
This commit is contained in:
parent
51a8b66cd4
commit
e9855c7867
2 changed files with 665 additions and 200 deletions
215
users/forms.py
215
users/forms.py
|
@ -20,8 +20,16 @@
|
||||||
# You should have received a copy of the GNU General Public License along
|
# You should have received a copy of the GNU General Public License along
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
"""
|
||||||
|
Definition des forms pour l'application users.
|
||||||
|
|
||||||
# -*- coding: utf-8 -*-
|
Modification, creation de :
|
||||||
|
- un user (informations personnelles)
|
||||||
|
- un bannissement
|
||||||
|
- le mot de passe d'un user
|
||||||
|
- une whiteliste
|
||||||
|
- un user de service
|
||||||
|
"""
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
@ -29,17 +37,34 @@ from django import forms
|
||||||
from django.forms import ModelForm, Form
|
from django.forms import ModelForm, Form
|
||||||
from django.contrib.auth.forms import ReadOnlyPasswordHashField
|
from django.contrib.auth.forms import ReadOnlyPasswordHashField
|
||||||
from django.core.validators import MinLengthValidator
|
from django.core.validators import MinLengthValidator
|
||||||
from preferences.models import OptionalUser
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from .models import User, ServiceUser, Right, School, ListRight, Whitelist, Ban, Request, remove_user_room
|
|
||||||
|
|
||||||
from .models import get_admin_right
|
from preferences.models import OptionalUser
|
||||||
|
from .models import User, ServiceUser, Right, School, ListRight, Whitelist
|
||||||
|
from .models import Ban, remove_user_room
|
||||||
|
|
||||||
|
NOW = timezone.now()
|
||||||
|
|
||||||
|
|
||||||
class PassForm(forms.Form):
|
class PassForm(forms.Form):
|
||||||
passwd1 = forms.CharField(label=u'Nouveau mot de passe', max_length=255, validators=[MinLengthValidator(8)], widget=forms.PasswordInput)
|
"""Formulaire de changement de mot de passe. Verifie que les 2
|
||||||
passwd2 = forms.CharField(label=u'Saisir à nouveau le mot de passe', max_length=255, validators=[MinLengthValidator(8)], widget=forms.PasswordInput)
|
nouveaux mots de passe renseignés sont identiques et respectent
|
||||||
|
une norme"""
|
||||||
|
passwd1 = forms.CharField(
|
||||||
|
label=u'Nouveau mot de passe',
|
||||||
|
max_length=255,
|
||||||
|
validators=[MinLengthValidator(8)],
|
||||||
|
widget=forms.PasswordInput
|
||||||
|
)
|
||||||
|
passwd2 = forms.CharField(
|
||||||
|
label=u'Saisir à nouveau le mot de passe',
|
||||||
|
max_length=255,
|
||||||
|
validators=[MinLengthValidator(8)],
|
||||||
|
widget=forms.PasswordInput
|
||||||
|
)
|
||||||
|
|
||||||
def clean_passwd2(self):
|
def clean_passwd2(self):
|
||||||
|
"""Verifie que passwd1 et 2 sont identiques"""
|
||||||
# Check that the two password entries match
|
# Check that the two password entries match
|
||||||
password1 = self.cleaned_data.get("passwd1")
|
password1 = self.cleaned_data.get("passwd1")
|
||||||
password2 = self.cleaned_data.get("passwd2")
|
password2 = self.cleaned_data.get("passwd2")
|
||||||
|
@ -47,11 +72,26 @@ class PassForm(forms.Form):
|
||||||
raise forms.ValidationError("Passwords don't match")
|
raise forms.ValidationError("Passwords don't match")
|
||||||
return password2
|
return password2
|
||||||
|
|
||||||
|
|
||||||
class UserCreationForm(forms.ModelForm):
|
class UserCreationForm(forms.ModelForm):
|
||||||
"""A form for creating new users. Includes all the required
|
"""A form for creating new users. Includes all the required
|
||||||
fields, plus a repeated password."""
|
fields, plus a repeated password.
|
||||||
password1 = forms.CharField(label='Password', widget=forms.PasswordInput, validators=[MinLengthValidator(8)], max_length=255)
|
|
||||||
password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput, validators=[MinLengthValidator(8)], max_length=255)
|
Formulaire pour la création d'un user. N'est utilisé que pour
|
||||||
|
l'admin, lors de la creation d'un user par admin. Inclu tous les
|
||||||
|
champs obligatoires"""
|
||||||
|
password1 = forms.CharField(
|
||||||
|
label='Password',
|
||||||
|
widget=forms.PasswordInput,
|
||||||
|
validators=[MinLengthValidator(8)],
|
||||||
|
max_length=255
|
||||||
|
)
|
||||||
|
password2 = forms.CharField(
|
||||||
|
label='Password confirmation',
|
||||||
|
widget=forms.PasswordInput,
|
||||||
|
validators=[MinLengthValidator(8)],
|
||||||
|
max_length=255
|
||||||
|
)
|
||||||
is_admin = forms.BooleanField(label='is admin')
|
is_admin = forms.BooleanField(label='is admin')
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -63,6 +103,7 @@ class UserCreationForm(forms.ModelForm):
|
||||||
fields = ('pseudo', 'name', 'surname', 'email')
|
fields = ('pseudo', 'name', 'surname', 'email')
|
||||||
|
|
||||||
def clean_password2(self):
|
def clean_password2(self):
|
||||||
|
"""Verifie que password1 et 2 sont identiques"""
|
||||||
# Check that the two password entries match
|
# Check that the two password entries match
|
||||||
password1 = self.cleaned_data.get("password1")
|
password1 = self.cleaned_data.get("password1")
|
||||||
password2 = self.cleaned_data.get("password2")
|
password2 = self.cleaned_data.get("password2")
|
||||||
|
@ -78,21 +119,40 @@ class UserCreationForm(forms.ModelForm):
|
||||||
user.is_admin = self.cleaned_data.get("is_admin")
|
user.is_admin = self.cleaned_data.get("is_admin")
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
|
||||||
class ServiceUserCreationForm(forms.ModelForm):
|
class ServiceUserCreationForm(forms.ModelForm):
|
||||||
"""A form for creating new users. Includes all the required
|
"""A form for creating new users. Includes all the required
|
||||||
fields, plus a repeated password."""
|
fields, plus a repeated password.
|
||||||
password1 = forms.CharField(label='Password', widget=forms.PasswordInput, min_length=8, max_length=255)
|
|
||||||
password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput, min_length=8, max_length=255)
|
Formulaire pour la creation de nouveaux serviceusers.
|
||||||
|
Requiert seulement un mot de passe; et un pseudo"""
|
||||||
|
password1 = forms.CharField(
|
||||||
|
label='Password',
|
||||||
|
widget=forms.PasswordInput,
|
||||||
|
min_length=8,
|
||||||
|
max_length=255
|
||||||
|
)
|
||||||
|
password2 = forms.CharField(
|
||||||
|
label='Password confirmation',
|
||||||
|
widget=forms.PasswordInput,
|
||||||
|
min_length=8,
|
||||||
|
max_length=255
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(ServiceUserCreationForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(ServiceUserCreationForm, self).__init__(
|
||||||
|
*args,
|
||||||
|
prefix=prefix,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ServiceUser
|
model = ServiceUser
|
||||||
fields = ('pseudo',)
|
fields = ('pseudo',)
|
||||||
|
|
||||||
def clean_password2(self):
|
def clean_password2(self):
|
||||||
|
"""Verifie que password1 et 2 sont indentiques"""
|
||||||
# Check that the two password entries match
|
# Check that the two password entries match
|
||||||
password1 = self.cleaned_data.get("password1")
|
password1 = self.cleaned_data.get("password1")
|
||||||
password2 = self.cleaned_data.get("password2")
|
password2 = self.cleaned_data.get("password2")
|
||||||
|
@ -107,10 +167,13 @@ class ServiceUserCreationForm(forms.ModelForm):
|
||||||
user.save()
|
user.save()
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
|
||||||
class UserChangeForm(forms.ModelForm):
|
class UserChangeForm(forms.ModelForm):
|
||||||
"""A form for updating users. Includes all the fields on
|
"""A form for updating users. Includes all the fields on
|
||||||
the user, but replaces the password field with admin's
|
the user, but replaces the password field with admin's
|
||||||
password hash display field.
|
password hash display field.
|
||||||
|
|
||||||
|
Formulaire pour la modification d'un user coté admin
|
||||||
"""
|
"""
|
||||||
password = ReadOnlyPasswordHashField()
|
password = ReadOnlyPasswordHashField()
|
||||||
is_admin = forms.BooleanField(label='is admin', required=False)
|
is_admin = forms.BooleanField(label='is admin', required=False)
|
||||||
|
@ -126,6 +189,7 @@ class UserChangeForm(forms.ModelForm):
|
||||||
self.initial['is_admin'] = kwargs['instance'].is_admin
|
self.initial['is_admin'] = kwargs['instance'].is_admin
|
||||||
|
|
||||||
def clean_password(self):
|
def clean_password(self):
|
||||||
|
"""Dummy fun"""
|
||||||
# Regardless of what the user provides, return the initial value.
|
# Regardless of what the user provides, return the initial value.
|
||||||
# This is done here, rather than on the field, because the
|
# This is done here, rather than on the field, because the
|
||||||
# field does not have access to the initial value
|
# field does not have access to the initial value
|
||||||
|
@ -139,42 +203,59 @@ class UserChangeForm(forms.ModelForm):
|
||||||
user.save()
|
user.save()
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
|
||||||
class ServiceUserChangeForm(forms.ModelForm):
|
class ServiceUserChangeForm(forms.ModelForm):
|
||||||
"""A form for updating users. Includes all the fields on
|
"""A form for updating users. Includes all the fields on
|
||||||
the user, but replaces the password field with admin's
|
the user, but replaces the password field with admin's
|
||||||
password hash display field.
|
password hash display field.
|
||||||
|
|
||||||
|
Formulaire pour l'edition des service users coté admin
|
||||||
"""
|
"""
|
||||||
password = ReadOnlyPasswordHashField()
|
password = ReadOnlyPasswordHashField()
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(ServiceUserChangeForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(ServiceUserChangeForm, self).__init__(
|
||||||
|
*args,
|
||||||
|
prefix=prefix,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ServiceUser
|
model = ServiceUser
|
||||||
fields = ('pseudo',)
|
fields = ('pseudo',)
|
||||||
|
|
||||||
def clean_password(self):
|
def clean_password(self):
|
||||||
# Regardless of what the user provides, return the initial value.
|
"""Dummy fun"""
|
||||||
# This is done here, rather than on the field, because the
|
|
||||||
# field does not have access to the initial value
|
|
||||||
return self.initial["password"]
|
return self.initial["password"]
|
||||||
|
|
||||||
|
|
||||||
class ResetPasswordForm(forms.Form):
|
class ResetPasswordForm(forms.Form):
|
||||||
|
"""Formulaire de demande de reinitialisation de mot de passe,
|
||||||
|
mdp oublié"""
|
||||||
pseudo = forms.CharField(label=u'Pseudo', max_length=255)
|
pseudo = forms.CharField(label=u'Pseudo', max_length=255)
|
||||||
email = forms.EmailField(max_length=255)
|
email = forms.EmailField(max_length=255)
|
||||||
|
|
||||||
|
|
||||||
class MassArchiveForm(forms.Form):
|
class MassArchiveForm(forms.Form):
|
||||||
|
"""Formulaire d'archivage des users inactif. Prend en argument
|
||||||
|
du formulaire la date de depart avant laquelle archiver les
|
||||||
|
users"""
|
||||||
date = forms.DateTimeField(help_text='%d/%m/%y')
|
date = forms.DateTimeField(help_text='%d/%m/%y')
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
cleaned_data=super(MassArchiveForm, self).clean()
|
cleaned_data = super(MassArchiveForm, self).clean()
|
||||||
date = cleaned_data.get("date")
|
date = cleaned_data.get("date")
|
||||||
if date:
|
if date:
|
||||||
if date>timezone.now():
|
if date > NOW:
|
||||||
raise forms.ValidationError("Impossible d'archiver des utilisateurs dont la fin d'accès se situe dans le futur !")
|
raise forms.ValidationError("Impossible d'archiver des\
|
||||||
|
utilisateurs dont la fin d'accès se situe dans le futur !")
|
||||||
|
|
||||||
|
|
||||||
class BaseInfoForm(ModelForm):
|
class BaseInfoForm(ModelForm):
|
||||||
|
"""Formulaire de base d'edition d'un user. Formulaire de base, utilisé
|
||||||
|
pour l'edition de self par self ou un cableur. On formate les champs
|
||||||
|
avec des label plus jolis"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(BaseInfoForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(BaseInfoForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
|
@ -200,13 +281,21 @@ class BaseInfoForm(ModelForm):
|
||||||
]
|
]
|
||||||
|
|
||||||
def clean_telephone(self):
|
def clean_telephone(self):
|
||||||
|
"""Verifie que le tel est présent si 'option est validée
|
||||||
|
dans preferences"""
|
||||||
telephone = self.cleaned_data['telephone']
|
telephone = self.cleaned_data['telephone']
|
||||||
preferences, created = OptionalUser.objects.get_or_create()
|
preferences, _created = OptionalUser.objects.get_or_create()
|
||||||
if not telephone and preferences.is_tel_mandatory:
|
if not telephone and preferences.is_tel_mandatory:
|
||||||
raise forms.ValidationError("Un numéro de téléphone valide est requis")
|
raise forms.ValidationError(
|
||||||
|
"Un numéro de téléphone valide est requis"
|
||||||
|
)
|
||||||
return telephone
|
return telephone
|
||||||
|
|
||||||
|
|
||||||
class EditInfoForm(BaseInfoForm):
|
class EditInfoForm(BaseInfoForm):
|
||||||
|
"""Edition complète d'un user. Utilisé par admin,
|
||||||
|
permet d'editer normalement la chambre, ou le shell
|
||||||
|
Herite de la base"""
|
||||||
class Meta(BaseInfoForm.Meta):
|
class Meta(BaseInfoForm.Meta):
|
||||||
fields = [
|
fields = [
|
||||||
'name',
|
'name',
|
||||||
|
@ -220,22 +309,33 @@ class EditInfoForm(BaseInfoForm):
|
||||||
'telephone',
|
'telephone',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class InfoForm(EditInfoForm):
|
class InfoForm(EditInfoForm):
|
||||||
""" Utile pour forcer un déménagement quand il y a déjà un user en place"""
|
""" Utile pour forcer un déménagement quand il y a déjà un user en place
|
||||||
force = forms.BooleanField(label="Forcer le déménagement ?", initial=False, required=False)
|
Formuaire utilisé pour la creation initiale"""
|
||||||
|
force = forms.BooleanField(
|
||||||
|
label="Forcer le déménagement ?",
|
||||||
|
initial=False,
|
||||||
|
required=False
|
||||||
|
)
|
||||||
|
|
||||||
def clean_force(self):
|
def clean_force(self):
|
||||||
|
"""On supprime l'ancien user de la chambre si et seulement si la
|
||||||
|
case est cochée"""
|
||||||
if self.cleaned_data.get('force', False):
|
if self.cleaned_data.get('force', False):
|
||||||
remove_user_room(self.cleaned_data.get('room'))
|
remove_user_room(self.cleaned_data.get('room'))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class UserForm(InfoForm):
|
class UserForm(InfoForm):
|
||||||
""" Model form general"""
|
""" Model form general"""
|
||||||
class Meta(InfoForm.Meta):
|
class Meta(InfoForm.Meta):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
class PasswordForm(ModelForm):
|
class PasswordForm(ModelForm):
|
||||||
""" Formulaire de changement brut de mot de passe. Ne pas utiliser sans traitement"""
|
""" Formulaire de changement brut de mot de passe.
|
||||||
|
Ne pas utiliser sans traitement"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ['password', 'pwd_ntlm']
|
fields = ['password', 'pwd_ntlm']
|
||||||
|
@ -244,21 +344,32 @@ class PasswordForm(ModelForm):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(PasswordForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(PasswordForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ServiceUserForm(ModelForm):
|
class ServiceUserForm(ModelForm):
|
||||||
""" Modification d'un service user"""
|
""" Modification d'un service user"""
|
||||||
password = forms.CharField(label=u'Nouveau mot de passe', max_length=255, validators=[MinLengthValidator(8)], widget=forms.PasswordInput, required=False)
|
password = forms.CharField(
|
||||||
|
label=u'Nouveau mot de passe',
|
||||||
|
max_length=255,
|
||||||
|
validators=[MinLengthValidator(8)],
|
||||||
|
widget=forms.PasswordInput,
|
||||||
|
required=False
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ServiceUser
|
model = ServiceUser
|
||||||
fields = ('pseudo','access_group')
|
fields = ('pseudo', 'access_group')
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(ServiceUserForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(ServiceUserForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class EditServiceUserForm(ServiceUserForm):
|
class EditServiceUserForm(ServiceUserForm):
|
||||||
|
"""Formulaire d'edition de base d'un service user. Ne permet
|
||||||
|
d'editer que son group d'acl et son commentaire"""
|
||||||
class Meta(ServiceUserForm.Meta):
|
class Meta(ServiceUserForm.Meta):
|
||||||
fields = ['access_group','comment']
|
fields = ['access_group', 'comment']
|
||||||
|
|
||||||
|
|
||||||
class StateForm(ModelForm):
|
class StateForm(ModelForm):
|
||||||
""" Changement de l'état d'un user"""
|
""" Changement de l'état d'un user"""
|
||||||
|
@ -272,6 +383,7 @@ class StateForm(ModelForm):
|
||||||
|
|
||||||
|
|
||||||
class SchoolForm(ModelForm):
|
class SchoolForm(ModelForm):
|
||||||
|
"""Edition, creation d'un école"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = School
|
model = School
|
||||||
fields = ['name']
|
fields = ['name']
|
||||||
|
@ -281,7 +393,10 @@ class SchoolForm(ModelForm):
|
||||||
super(SchoolForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(SchoolForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
self.fields['name'].label = 'Établissement'
|
self.fields['name'].label = 'Établissement'
|
||||||
|
|
||||||
|
|
||||||
class ListRightForm(ModelForm):
|
class ListRightForm(ModelForm):
|
||||||
|
"""Edition, d'un groupe , équivalent à un droit
|
||||||
|
Ne peremet pas d'editer le gid, car il sert de primary key"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ListRight
|
model = ListRight
|
||||||
fields = ['listright', 'details']
|
fields = ['listright', 'details']
|
||||||
|
@ -291,21 +406,38 @@ class ListRightForm(ModelForm):
|
||||||
super(ListRightForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(ListRightForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
self.fields['listright'].label = 'Nom du droit/groupe'
|
self.fields['listright'].label = 'Nom du droit/groupe'
|
||||||
|
|
||||||
|
|
||||||
class NewListRightForm(ListRightForm):
|
class NewListRightForm(ListRightForm):
|
||||||
|
"""Ajout d'un groupe/list de droit """
|
||||||
class Meta(ListRightForm.Meta):
|
class Meta(ListRightForm.Meta):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(NewListRightForm, self).__init__(*args, **kwargs)
|
super(NewListRightForm, self).__init__(*args, **kwargs)
|
||||||
self.fields['gid'].label = 'Gid, attention, cet attribut ne doit pas être modifié après création'
|
self.fields['gid'].label = 'Gid, attention, cet attribut ne doit\
|
||||||
|
pas être modifié après création'
|
||||||
|
|
||||||
|
|
||||||
class DelListRightForm(Form):
|
class DelListRightForm(Form):
|
||||||
listrights = forms.ModelMultipleChoiceField(queryset=ListRight.objects.all(), label="Droits actuels", widget=forms.CheckboxSelectMultiple)
|
"""Suppression d'un ou plusieurs groupes"""
|
||||||
|
listrights = forms.ModelMultipleChoiceField(
|
||||||
|
queryset=ListRight.objects.all(),
|
||||||
|
label="Droits actuels",
|
||||||
|
widget=forms.CheckboxSelectMultiple
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class DelSchoolForm(Form):
|
class DelSchoolForm(Form):
|
||||||
schools = forms.ModelMultipleChoiceField(queryset=School.objects.all(), label="Etablissements actuels", widget=forms.CheckboxSelectMultiple)
|
"""Suppression d'une ou plusieurs écoles"""
|
||||||
|
schools = forms.ModelMultipleChoiceField(
|
||||||
|
queryset=School.objects.all(),
|
||||||
|
label="Etablissements actuels",
|
||||||
|
widget=forms.CheckboxSelectMultiple
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class RightForm(ModelForm):
|
class RightForm(ModelForm):
|
||||||
|
"""Assignation d'un droit à un user"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(RightForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(RightForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
|
@ -318,13 +450,19 @@ class RightForm(ModelForm):
|
||||||
|
|
||||||
|
|
||||||
class DelRightForm(Form):
|
class DelRightForm(Form):
|
||||||
rights = forms.ModelMultipleChoiceField(queryset=Right.objects.all(), widget=forms.CheckboxSelectMultiple)
|
"""Suppression d'un droit d'un user"""
|
||||||
|
rights = forms.ModelMultipleChoiceField(
|
||||||
|
queryset=Right.objects.all(),
|
||||||
|
widget=forms.CheckboxSelectMultiple
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, right, *args, **kwargs):
|
def __init__(self, right, *args, **kwargs):
|
||||||
super(DelRightForm, self).__init__(*args, **kwargs)
|
super(DelRightForm, self).__init__(*args, **kwargs)
|
||||||
self.fields['rights'].queryset = Right.objects.filter(right=right)
|
self.fields['rights'].queryset = Right.objects.filter(right=right)
|
||||||
|
|
||||||
|
|
||||||
class BanForm(ModelForm):
|
class BanForm(ModelForm):
|
||||||
|
"""Creation, edition d'un objet bannissement"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(BanForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(BanForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
|
@ -335,13 +473,16 @@ class BanForm(ModelForm):
|
||||||
exclude = ['user']
|
exclude = ['user']
|
||||||
|
|
||||||
def clean_date_end(self):
|
def clean_date_end(self):
|
||||||
|
"""Verification que date_end est après now"""
|
||||||
date_end = self.cleaned_data['date_end']
|
date_end = self.cleaned_data['date_end']
|
||||||
if date_end < timezone.now():
|
if date_end < NOW:
|
||||||
raise forms.ValidationError("Triple buse, la date de fin ne peut pas être avant maintenant... Re2o ne voyage pas dans le temps")
|
raise forms.ValidationError("Triple buse, la date de fin ne peut\
|
||||||
|
pas être avant maintenant... Re2o ne voyage pas dans le temps")
|
||||||
return date_end
|
return date_end
|
||||||
|
|
||||||
|
|
||||||
class WhitelistForm(ModelForm):
|
class WhitelistForm(ModelForm):
|
||||||
|
"""Creation, edition d'un objet whitelist"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
prefix = kwargs.pop('prefix', self.Meta.model.__name__)
|
||||||
super(WhitelistForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(WhitelistForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
|
@ -352,7 +493,9 @@ class WhitelistForm(ModelForm):
|
||||||
exclude = ['user']
|
exclude = ['user']
|
||||||
|
|
||||||
def clean_date_end(self):
|
def clean_date_end(self):
|
||||||
|
"""Verification que la date_end est posterieur à now"""
|
||||||
date_end = self.cleaned_data['date_end']
|
date_end = self.cleaned_data['date_end']
|
||||||
if date_end < timezone.now():
|
if date_end < NOW:
|
||||||
raise forms.ValidationError("Triple buse, la date de fin ne peut pas être avant maintenant... Re2o ne voyage pas dans le temps")
|
raise forms.ValidationError("Triple buse, la date de fin ne peut pas\
|
||||||
|
être avant maintenant... Re2o ne voyage pas dans le temps")
|
||||||
return date_end
|
return date_end
|
||||||
|
|
650
users/models.py
650
users/models.py
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue