@ -46,7 +46,10 @@ from os import walk, path
from django import forms
from django . forms import ModelForm , Form
from django . contrib . auth . forms import ReadOnlyPasswordHashField
from django . contrib . auth . password_validation import validate_password , password_validators_help_text_html
from django . contrib . auth . password_validation import (
validate_password ,
password_validators_help_text_html ,
)
from django . core . validators import MinLengthValidator
from django . conf import settings
from django . utils import timezone
@ -60,7 +63,11 @@ from topologie.models import Port
from preferences . models import OptionalUser
from re2o . utils import remove_user_room
from re2o . base import get_input_formats_help_text
from re2o . mixins import FormRevMixin , AutocompleteMultipleModelMixin , AutocompleteModelMixin
from re2o . mixins import (
FormRevMixin ,
AutocompleteMultipleModelMixin ,
AutocompleteModelMixin ,
)
from re2o . field_permissions import FieldPermissionFormMixin
from preferences . models import GeneralOption
@ -156,14 +163,10 @@ class ServiceUserAdminForm(FormRevMixin, forms.ModelForm):
"""
password1 = forms . CharField (
label = _ ( " Password " ) ,
widget = forms . PasswordInput ,
max_length = 255 ,
label = _ ( " Password " ) , widget = forms . PasswordInput , max_length = 255
)
password2 = forms . CharField (
label = _ ( " Password confirmation " ) ,
widget = forms . PasswordInput ,
max_length = 255 ,
label = _ ( " Password confirmation " ) , widget = forms . PasswordInput , max_length = 255
)
def __init__ ( self , * args , * * kwargs ) :
@ -215,6 +218,7 @@ class PassForm(FormRevMixin, FieldPermissionFormMixin, forms.ModelForm):
DjangoForm : Inherit from basic django form
"""
selfpasswd = forms . CharField (
label = _ ( " Current password " ) , max_length = 255 , widget = forms . PasswordInput
)
@ -222,12 +226,10 @@ class PassForm(FormRevMixin, FieldPermissionFormMixin, forms.ModelForm):
label = _ ( " New password " ) ,
max_length = 255 ,
widget = forms . PasswordInput ,
help_text = password_validators_help_text_html ( )
help_text = password_validators_help_text_html ( ) ,
)
passwd2 = forms . CharField (
label = _ ( " New password confirmation " ) ,
max_length = 255 ,
widget = forms . PasswordInput ,
label = _ ( " New password confirmation " ) , max_length = 255 , widget = forms . PasswordInput
)
class Meta :
@ -280,7 +282,7 @@ class ResetPasswordForm(forms.Form):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
pseudo = forms . CharField ( label = _ ( " Username " ) , max_length = 255 )
email = forms . EmailField ( max_length = 255 )
@ -292,13 +294,11 @@ class MassArchiveForm(forms.Form):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
date = forms . DateTimeField ( help_text = " %d / % m/ % y " )
full_archive = forms . BooleanField (
label = _ (
" Fully archive users? WARNING: CRITICAL OPERATION IF TRUE "
) ,
label = _ ( " Fully archive users? WARNING: CRITICAL OPERATION IF TRUE " ) ,
initial = False ,
required = False ,
)
@ -323,7 +323,7 @@ class AdherentForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
prefix = kwargs . pop ( " prefix " , self . Meta . model . __name__ )
@ -351,18 +351,14 @@ class AdherentForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
" room " ,
]
widgets = {
" school " : AutocompleteModelMixin (
url = " /users/school-autocomplete " ,
) ,
" school " : AutocompleteModelMixin ( url = " /users/school-autocomplete " ) ,
" room " : AutocompleteModelMixin (
url = " /topologie/room-autocomplete " ,
attrs = {
" data-minimum-input-length " : 3 # Only trigger autocompletion after 3 characters have been typed
}
attrs = {
" data-minimum-input-length " : 3 # Only trigger autocompletion after 3 characters have been typed
} ,
) ,
" shell " : AutocompleteModelMixin (
url = " /users/shell-autocomplete " ,
)
" shell " : AutocompleteModelMixin ( url = " /users/shell-autocomplete " ) ,
}
force = forms . BooleanField (
@ -426,7 +422,8 @@ class AdherentCreationForm(AdherentForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
# Champ pour choisir si un lien est envoyé par mail pour le mot de passe
init_password_by_mail_info = _ (
" If this options is set, you will receive a link to set "
@ -439,9 +436,7 @@ class AdherentCreationForm(AdherentForm):
)
init_password_by_mail = forms . BooleanField (
help_text = init_password_by_mail_info ,
required = False ,
initial = True
help_text = init_password_by_mail_info , required = False , initial = True
)
init_password_by_mail . label = _ ( " Send password reset link by email. " )
@ -452,7 +447,7 @@ class AdherentCreationForm(AdherentForm):
label = _ ( " Password " ) ,
widget = forms . PasswordInput ,
max_length = 255 ,
help_text = password_validators_help_text_html ( )
help_text = password_validators_help_text_html ( ) ,
)
password2 = forms . CharField (
required = False ,
@ -542,8 +537,12 @@ class AdherentCreationForm(AdherentForm):
# Save the provided password in hashed format
user = super ( AdherentForm , self ) . save ( commit = False )
is_set_password_allowed = OptionalUser . get_cached_value ( " allow_set_password_during_user_creation " )
set_passwd = is_set_password_allowed and not self . cleaned_data . get ( " init_password_by_mail " )
is_set_password_allowed = OptionalUser . get_cached_value (
" allow_set_password_during_user_creation "
)
set_passwd = is_set_password_allowed and not self . cleaned_data . get (
" init_password_by_mail "
)
if set_passwd :
user . set_password ( self . cleaned_data [ " password1 " ] )
@ -558,7 +557,7 @@ class AdherentEditForm(AdherentForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
super ( AdherentEditForm , self ) . __init__ ( * args , * * kwargs )
@ -594,7 +593,7 @@ class ClubForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
prefix = kwargs . pop ( " prefix " , self . Meta . model . __name__ )
@ -624,15 +623,9 @@ class ClubForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
" mailing " ,
]
widgets = {
" school " : AutocompleteModelMixin (
url = " /users/school-autocomplete " ,
) ,
" room " : AutocompleteModelMixin (
url = " /topologie/room-autocomplete " ,
) ,
" shell " : AutocompleteModelMixin (
url = " /users/shell-autocomplete " ,
)
" school " : AutocompleteModelMixin ( url = " /users/school-autocomplete " ) ,
" room " : AutocompleteModelMixin ( url = " /topologie/room-autocomplete " ) ,
" shell " : AutocompleteModelMixin ( url = " /users/shell-autocomplete " ) ,
}
def clean_telephone ( self ) :
@ -657,18 +650,18 @@ class ClubAdminandMembersForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
class Meta :
model = Club
fields = [ " administrators " , " members " ]
widgets = {
" administrators " : AutocompleteMultipleModelMixin (
url = " /users/adherent-autocomplete " ,
url = " /users/adherent-autocomplete "
) ,
" members " : AutocompleteMultipleModelMixin (
url = " /users/adherent-autocomplete " ,
)
url = " /users/adherent-autocomplete "
) ,
}
def __init__ ( self , * args , * * kwargs ) :
@ -681,7 +674,7 @@ class PasswordForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
class Meta :
model = User
@ -698,7 +691,7 @@ class ServiceUserForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
password = forms . CharField (
label = _ ( " New password " ) ,
@ -737,7 +730,7 @@ class EditServiceUserForm(ServiceUserForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
password = forms . CharField (
label = _ ( " New password " ) ,
@ -757,7 +750,7 @@ class StateForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
class Meta :
model = User
@ -775,7 +768,7 @@ class GroupForm(FieldPermissionFormMixin, FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
groups = forms . ModelMultipleChoiceField (
Group . objects . all ( ) , widget = forms . CheckboxSelectMultiple , required = False
@ -797,7 +790,7 @@ class SchoolForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
class Meta :
model = School
@ -814,7 +807,7 @@ class ShellForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
class Meta :
model = ListShell
@ -833,7 +826,7 @@ class ListRightForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
permissions = forms . ModelMultipleChoiceField (
Permission . objects . all ( ) . select_related ( " content_type " ) ,
@ -857,7 +850,7 @@ class NewListRightForm(ListRightForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
class Meta ( ListRightForm . Meta ) :
fields = ( " name " , " unix_name " , " gid " , " critical " , " permissions " , " details " )
@ -875,7 +868,7 @@ class DelListRightForm(Form):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
listrights = forms . ModelMultipleChoiceField (
queryset = ListRight . objects . none ( ) ,
@ -898,7 +891,7 @@ class DelSchoolForm(Form):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
schools = forms . ModelMultipleChoiceField (
queryset = School . objects . none ( ) ,
@ -920,7 +913,7 @@ class BanForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
prefix = kwargs . pop ( " prefix " , self . Meta . model . __name__ )
@ -939,7 +932,7 @@ class WhitelistForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
prefix = kwargs . pop ( " prefix " , self . Meta . model . __name__ )
@ -959,7 +952,7 @@ class EMailAddressForm(FormRevMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
prefix = kwargs . pop ( " prefix " , self . Meta . model . __name__ )
@ -980,7 +973,7 @@ class EmailSettingsForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
def __init__ ( self , * args , * * kwargs ) :
prefix = kwargs . pop ( " prefix " , self . Meta . model . __name__ )
@ -1004,7 +997,8 @@ class InitialRegisterForm(forms.Form):
Parameters :
DjangoForm : Inherit from basic django form
"""
"""
register_room = forms . BooleanField ( required = False )
register_machine = forms . BooleanField ( required = False )
@ -1085,8 +1079,8 @@ class ThemeForm(FormRevMixin, forms.Form):
theme = forms . ChoiceField ( widget = forms . Select ( ) )
def __init__ ( self , * args , * * kwargs ) :
_ , _ , themes = next ( walk ( path . join ( settings . STATIC_ROOT , " css/themes " ) ) )
_ , _ , themes = next ( walk ( path . join ( settings . STATIC_ROOT , " css/themes " ) ) )
if not themes :
themes = [ " default.css " ]
super ( ThemeForm , self ) . __init__ ( * args , * * kwargs )
self . fields [ ' theme ' ] . choices = [ ( theme , theme ) for theme in themes ]
self . fields [ " theme " ] . choices = [ ( theme , theme ) for theme in themes ]