mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-23 11:53:12 +00:00
Rearangement des formulaires dans forms.py
This commit is contained in:
parent
3d78e09bb9
commit
c205775434
3 changed files with 178 additions and 175 deletions
175
users/forms.py
175
users/forms.py
|
@ -24,11 +24,14 @@
|
||||||
|
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
|
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
|
||||||
|
|
||||||
from .models import User, ServiceUser, get_admin_right
|
from .models import get_admin_right
|
||||||
|
|
||||||
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)
|
passwd1 = forms.CharField(label=u'Nouveau mot de passe', max_length=255, validators=[MinLengthValidator(8)], widget=forms.PasswordInput)
|
||||||
|
@ -148,3 +151,173 @@ class MassArchiveForm(forms.Form):
|
||||||
if date:
|
if date:
|
||||||
if date>timezone.now():
|
if date>timezone.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):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(BaseInfoForm, self).__init__(*args, **kwargs)
|
||||||
|
self.fields['name'].label = 'Prénom'
|
||||||
|
self.fields['surname'].label = 'Nom'
|
||||||
|
self.fields['school'].label = 'Établissement'
|
||||||
|
self.fields['comment'].label = 'Commentaire'
|
||||||
|
self.fields['room'].label = 'Chambre'
|
||||||
|
self.fields['room'].empty_label = "Pas de chambre"
|
||||||
|
self.fields['school'].empty_label = "Séléctionner un établissement"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = User
|
||||||
|
fields = [
|
||||||
|
'name',
|
||||||
|
'surname',
|
||||||
|
'pseudo',
|
||||||
|
'email',
|
||||||
|
'school',
|
||||||
|
'comment',
|
||||||
|
'room',
|
||||||
|
'telephone',
|
||||||
|
]
|
||||||
|
|
||||||
|
def clean_telephone(self):
|
||||||
|
telephone = self.cleaned_data['telephone']
|
||||||
|
preferences, created = OptionalUser.objects.get_or_create()
|
||||||
|
if not telephone and preferences.is_tel_mandatory:
|
||||||
|
raise forms.ValidationError("Un numéro de téléphone valide est requis")
|
||||||
|
return telephone
|
||||||
|
|
||||||
|
class EditInfoForm(BaseInfoForm):
|
||||||
|
class Meta(BaseInfoForm.Meta):
|
||||||
|
fields = [
|
||||||
|
'name',
|
||||||
|
'surname',
|
||||||
|
'pseudo',
|
||||||
|
'email',
|
||||||
|
'school',
|
||||||
|
'comment',
|
||||||
|
'room',
|
||||||
|
'shell',
|
||||||
|
'telephone',
|
||||||
|
]
|
||||||
|
|
||||||
|
class InfoForm(EditInfoForm):
|
||||||
|
force = forms.BooleanField(label="Forcer le déménagement ?", initial=False, required=False)
|
||||||
|
|
||||||
|
def clean_force(self):
|
||||||
|
if self.cleaned_data.get('force', False):
|
||||||
|
remove_user_room(self.cleaned_data.get('room'))
|
||||||
|
return
|
||||||
|
|
||||||
|
class UserForm(InfoForm):
|
||||||
|
class Meta(InfoForm.Meta):
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
class PasswordForm(ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = User
|
||||||
|
fields = ['password', 'pwd_ntlm']
|
||||||
|
|
||||||
|
class ServiceUserForm(ModelForm):
|
||||||
|
password = forms.CharField(label=u'Nouveau mot de passe', max_length=255, validators=[MinLengthValidator(8)], widget=forms.PasswordInput, required=False)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = ServiceUser
|
||||||
|
fields = ('pseudo','access_group')
|
||||||
|
|
||||||
|
class EditServiceUserForm(ServiceUserForm):
|
||||||
|
class Meta(ServiceUserForm.Meta):
|
||||||
|
fields = ['access_group','comment']
|
||||||
|
|
||||||
|
class StateForm(ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = User
|
||||||
|
fields = ['state']
|
||||||
|
|
||||||
|
|
||||||
|
class SchoolForm(ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = School
|
||||||
|
fields = ['name']
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(SchoolForm, self).__init__(*args, **kwargs)
|
||||||
|
self.fields['name'].label = 'Établissement'
|
||||||
|
|
||||||
|
class ListRightForm(ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = ListRight
|
||||||
|
fields = ['listright', 'details']
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(ListRightForm, self).__init__(*args, **kwargs)
|
||||||
|
self.fields['listright'].label = 'Nom du droit/groupe'
|
||||||
|
|
||||||
|
class NewListRightForm(ListRightForm):
|
||||||
|
class Meta(ListRightForm.Meta):
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
def __init__(self, *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'
|
||||||
|
|
||||||
|
class DelListRightForm(ModelForm):
|
||||||
|
listrights = forms.ModelMultipleChoiceField(queryset=ListRight.objects.all().select_related('user'), label="Droits actuels", widget=forms.CheckboxSelectMultiple)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
exclude = ['listright','gid']
|
||||||
|
model = ListRight
|
||||||
|
|
||||||
|
class DelSchoolForm(ModelForm):
|
||||||
|
schools = forms.ModelMultipleChoiceField(queryset=School.objects.all(), label="Etablissements actuels", widget=forms.CheckboxSelectMultiple)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
exclude = ['name']
|
||||||
|
model = School
|
||||||
|
|
||||||
|
|
||||||
|
class RightForm(ModelForm):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(RightForm, self).__init__(*args, **kwargs)
|
||||||
|
self.fields['right'].label = 'Droit'
|
||||||
|
self.fields['right'].empty_label = "Choisir un nouveau droit"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Right
|
||||||
|
fields = ['right']
|
||||||
|
|
||||||
|
|
||||||
|
class DelRightForm(ModelForm):
|
||||||
|
rights = forms.ModelMultipleChoiceField(queryset=Right.objects.all(), label="Droits actuels", widget=forms.CheckboxSelectMultiple)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Right
|
||||||
|
exclude = ['user', 'right']
|
||||||
|
|
||||||
|
|
||||||
|
class BanForm(ModelForm):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(BanForm, self).__init__(*args, **kwargs)
|
||||||
|
self.fields['date_end'].label = 'Date de fin'
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Ban
|
||||||
|
exclude = ['user']
|
||||||
|
|
||||||
|
def clean_date_end(self):
|
||||||
|
date_end = self.cleaned_data['date_end']
|
||||||
|
if date_end < timezone.now():
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
class WhitelistForm(ModelForm):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(WhitelistForm, self).__init__(*args, **kwargs)
|
||||||
|
self.fields['date_end'].label = 'Date de fin'
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Whitelist
|
||||||
|
exclude = ['user']
|
||||||
|
|
||||||
|
def clean_date_end(self):
|
||||||
|
date_end = self.cleaned_data['date_end']
|
||||||
|
if date_end < timezone.now():
|
||||||
|
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
|
||||||
|
|
170
users/models.py
170
users/models.py
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.forms import ModelForm, Form
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.db.models.signals import post_save, post_delete
|
from django.db.models.signals import post_save, post_delete
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
@ -686,172 +685,3 @@ class LdapServiceUserGroup(ldapdb.models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class BaseInfoForm(ModelForm):
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(BaseInfoForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields['name'].label = 'Prénom'
|
|
||||||
self.fields['surname'].label = 'Nom'
|
|
||||||
self.fields['school'].label = 'Établissement'
|
|
||||||
self.fields['comment'].label = 'Commentaire'
|
|
||||||
self.fields['room'].label = 'Chambre'
|
|
||||||
self.fields['room'].empty_label = "Pas de chambre"
|
|
||||||
self.fields['school'].empty_label = "Séléctionner un établissement"
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = User
|
|
||||||
fields = [
|
|
||||||
'name',
|
|
||||||
'surname',
|
|
||||||
'pseudo',
|
|
||||||
'email',
|
|
||||||
'school',
|
|
||||||
'comment',
|
|
||||||
'room',
|
|
||||||
'telephone',
|
|
||||||
]
|
|
||||||
|
|
||||||
def clean_telephone(self):
|
|
||||||
telephone = self.cleaned_data['telephone']
|
|
||||||
preferences, created = OptionalUser.objects.get_or_create()
|
|
||||||
if not telephone and preferences.is_tel_mandatory:
|
|
||||||
raise forms.ValidationError("Un numéro de téléphone valide est requis")
|
|
||||||
return telephone
|
|
||||||
|
|
||||||
class EditInfoForm(BaseInfoForm):
|
|
||||||
class Meta(BaseInfoForm.Meta):
|
|
||||||
fields = [
|
|
||||||
'name',
|
|
||||||
'surname',
|
|
||||||
'pseudo',
|
|
||||||
'email',
|
|
||||||
'school',
|
|
||||||
'comment',
|
|
||||||
'room',
|
|
||||||
'shell',
|
|
||||||
'telephone',
|
|
||||||
]
|
|
||||||
|
|
||||||
class InfoForm(EditInfoForm):
|
|
||||||
force = forms.BooleanField(label="Forcer le déménagement ?", initial=False, required=False)
|
|
||||||
|
|
||||||
def clean_force(self):
|
|
||||||
if self.cleaned_data.get('force', False):
|
|
||||||
remove_user_room(self.cleaned_data.get('room'))
|
|
||||||
return
|
|
||||||
|
|
||||||
class UserForm(InfoForm):
|
|
||||||
class Meta(InfoForm.Meta):
|
|
||||||
fields = '__all__'
|
|
||||||
|
|
||||||
class PasswordForm(ModelForm):
|
|
||||||
class Meta:
|
|
||||||
model = User
|
|
||||||
fields = ['password', 'pwd_ntlm']
|
|
||||||
|
|
||||||
class ServiceUserForm(ModelForm):
|
|
||||||
password = forms.CharField(label=u'Nouveau mot de passe', max_length=255, validators=[MinLengthValidator(8)], widget=forms.PasswordInput, required=False)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = ServiceUser
|
|
||||||
fields = ('pseudo','access_group')
|
|
||||||
|
|
||||||
class EditServiceUserForm(ServiceUserForm):
|
|
||||||
class Meta(ServiceUserForm.Meta):
|
|
||||||
fields = ['access_group','comment']
|
|
||||||
|
|
||||||
class StateForm(ModelForm):
|
|
||||||
class Meta:
|
|
||||||
model = User
|
|
||||||
fields = ['state']
|
|
||||||
|
|
||||||
|
|
||||||
class SchoolForm(ModelForm):
|
|
||||||
class Meta:
|
|
||||||
model = School
|
|
||||||
fields = ['name']
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(SchoolForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields['name'].label = 'Établissement'
|
|
||||||
|
|
||||||
class ListRightForm(ModelForm):
|
|
||||||
class Meta:
|
|
||||||
model = ListRight
|
|
||||||
fields = ['listright', 'details']
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(ListRightForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields['listright'].label = 'Nom du droit/groupe'
|
|
||||||
|
|
||||||
class NewListRightForm(ListRightForm):
|
|
||||||
class Meta(ListRightForm.Meta):
|
|
||||||
fields = '__all__'
|
|
||||||
|
|
||||||
def __init__(self, *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'
|
|
||||||
|
|
||||||
class DelListRightForm(ModelForm):
|
|
||||||
listrights = forms.ModelMultipleChoiceField(queryset=ListRight.objects.all().select_related('user'), label="Droits actuels", widget=forms.CheckboxSelectMultiple)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
exclude = ['listright','gid']
|
|
||||||
model = ListRight
|
|
||||||
|
|
||||||
class DelSchoolForm(ModelForm):
|
|
||||||
schools = forms.ModelMultipleChoiceField(queryset=School.objects.all(), label="Etablissements actuels", widget=forms.CheckboxSelectMultiple)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
exclude = ['name']
|
|
||||||
model = School
|
|
||||||
|
|
||||||
|
|
||||||
class RightForm(ModelForm):
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(RightForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields['right'].label = 'Droit'
|
|
||||||
self.fields['right'].empty_label = "Choisir un nouveau droit"
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Right
|
|
||||||
fields = ['right']
|
|
||||||
|
|
||||||
|
|
||||||
class DelRightForm(ModelForm):
|
|
||||||
rights = forms.ModelMultipleChoiceField(queryset=Right.objects.all(), label="Droits actuels", widget=forms.CheckboxSelectMultiple)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Right
|
|
||||||
exclude = ['user', 'right']
|
|
||||||
|
|
||||||
|
|
||||||
class BanForm(ModelForm):
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(BanForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields['date_end'].label = 'Date de fin'
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Ban
|
|
||||||
exclude = ['user']
|
|
||||||
|
|
||||||
def clean_date_end(self):
|
|
||||||
date_end = self.cleaned_data['date_end']
|
|
||||||
if date_end < timezone.now():
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
class WhitelistForm(ModelForm):
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(WhitelistForm, self).__init__(*args, **kwargs)
|
|
||||||
self.fields['date_end'].label = 'Date de fin'
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Whitelist
|
|
||||||
exclude = ['user']
|
|
||||||
|
|
||||||
def clean_date_end(self):
|
|
||||||
date_end = self.cleaned_data['date_end']
|
|
||||||
if date_end < timezone.now():
|
|
||||||
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
|
|
||||||
|
|
|
@ -39,8 +39,8 @@ from django.db import transaction
|
||||||
from reversion.models import Version
|
from reversion.models import Version
|
||||||
from reversion import revisions as reversion
|
from reversion import revisions as reversion
|
||||||
from users.models import User, Right, Ban, Whitelist, School, ListRight, Request, ServiceUser
|
from users.models import User, Right, Ban, Whitelist, School, ListRight, Request, ServiceUser
|
||||||
from users.models import DelRightForm, BanForm, WhitelistForm, DelSchoolForm, DelListRightForm, NewListRightForm
|
from users.forms import DelRightForm, BanForm, WhitelistForm, DelSchoolForm, DelListRightForm, NewListRightForm
|
||||||
from users.models import EditInfoForm, InfoForm, BaseInfoForm, StateForm, RightForm, SchoolForm, EditServiceUserForm, ServiceUserForm, ListRightForm
|
from users.forms import EditInfoForm, InfoForm, BaseInfoForm, StateForm, RightForm, SchoolForm, EditServiceUserForm, ServiceUserForm, ListRightForm
|
||||||
from cotisations.models import Facture
|
from cotisations.models import Facture
|
||||||
from machines.models import Machine, Interface
|
from machines.models import Machine, Interface
|
||||||
from users.forms import MassArchiveForm, PassForm, ResetPasswordForm
|
from users.forms import MassArchiveForm, PassForm, ResetPasswordForm
|
||||||
|
@ -85,7 +85,7 @@ def password_change_action(u_form, user, request, req=False):
|
||||||
def reset_passwd_mail(req, request):
|
def reset_passwd_mail(req, request):
|
||||||
""" Prend en argument un request, envoie un mail de réinitialisation de mot de pass """
|
""" Prend en argument un request, envoie un mail de réinitialisation de mot de pass """
|
||||||
t = loader.get_template('users/email_passwd_request')
|
t = loader.get_template('users/email_passwd_request')
|
||||||
c = Context({
|
c = {
|
||||||
'name': str(req.user.name) + ' ' + str(req.user.surname),
|
'name': str(req.user.name) + ' ' + str(req.user.surname),
|
||||||
'asso': ASSO_NAME,
|
'asso': ASSO_NAME,
|
||||||
'asso_mail': ASSO_EMAIL,
|
'asso_mail': ASSO_EMAIL,
|
||||||
|
@ -93,7 +93,7 @@ def reset_passwd_mail(req, request):
|
||||||
'url': request.build_absolute_uri(
|
'url': request.build_absolute_uri(
|
||||||
reverse('users:process', kwargs={'token': req.token})),
|
reverse('users:process', kwargs={'token': req.token})),
|
||||||
'expire_in': REQ_EXPIRE_STR,
|
'expire_in': REQ_EXPIRE_STR,
|
||||||
})
|
}
|
||||||
send_mail('Changement de mot de passe', t.render(c),
|
send_mail('Changement de mot de passe', t.render(c),
|
||||||
EMAIL_FROM, [req.user.email], fail_silently=False)
|
EMAIL_FROM, [req.user.email], fail_silently=False)
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in a new issue