0.8.39 change profile validation

This commit is contained in:
SDE
2023-12-15 15:28:29 +03:00
parent 9c971a6fa4
commit 037b4cc562
2 changed files with 32 additions and 12 deletions

View File

@@ -30,21 +30,37 @@ class RegistrationForm(forms.Form):
agreement = forms.BooleanField(initial=False, required=True) agreement = forms.BooleanField(initial=False, required=True)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args) required_password = True
required_agreement = True
required_email = True
if 'not_required_password' in kwargs.keys() and kwargs['not_required_password']: if 'not_required_password' in kwargs.keys() and kwargs['not_required_password']:
self.fields['password'].required = False required_password = False
self.fields['confirm_password'].required = False del kwargs['not_required_password']
if 'not_required_agreement' in kwargs.keys() and kwargs['not_required_agreement']:
required_agreement = False
del kwargs['not_required_agreement']
if 'not_required_email' in kwargs.keys() and kwargs['not_required_email']:
required_email = False
del kwargs['not_required_email']
super(RegistrationForm, self).__init__(*args, **kwargs)
self.fields['password'].required = required_password
self.fields['confirm_password'].required = required_password
self.fields['agreement'].required = required_agreement
self.fields['email'].required = required_email
def clean(self): def clean(self):
cleaned_data = super().clean() cleaned_data = super().clean()
i = 0 # i = 0
names = list(cleaned_data.keys()) # names = list(cleaned_data.keys())
while i < len(names): # while i < len(names):
if not cleaned_data[names[i]]: # if not cleaned_data[names[i]]:
if self.fields[names[i]].required: # if self.fields[names[i]].required:
self.add_error(names[i], _('Обязательное поле')) # self.add_error(names[i], _('Обязательное поле'))
i += 1 # i += 1
if 'tel' in cleaned_data and 'tel' in cleaned_data: if 'tel' in cleaned_data and 'tel' in cleaned_data:
from BaseModels.validators.form_field_validators import get_phone_valid_error from BaseModels.validators.form_field_validators import get_phone_valid_error

View File

@@ -236,7 +236,11 @@ def change_profile_confirm_ajax(request):
data = json.loads(request.body) data = json.loads(request.body)
from .forms import RegistrationForm from .forms import RegistrationForm
kwargs = {'not_required_password': True} kwargs = {
'not_required_password': True,
'not_required_agreement': True,
'not_required_email': True
}
form = RegistrationForm(data, **kwargs) form = RegistrationForm(data, **kwargs)
if not form.is_valid(): if not form.is_valid():
form.initial = form.cleaned_data form.initial = form.cleaned_data