mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 06:17:17 +00:00
added pages to modify and save users.
also move alot of validation code to the form classes.
This commit is contained in:
141
comic/forms.py
141
comic/forms.py
@@ -1,6 +1,8 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.models import User
|
||||
from comic.models import Setting
|
||||
|
||||
|
||||
class AccountForm(forms.Form):
|
||||
username = forms.CharField(help_text='Username',
|
||||
required=False,
|
||||
@@ -16,20 +18,131 @@ class AccountForm(forms.Form):
|
||||
'class': 'form-control'
|
||||
}
|
||||
))
|
||||
password1 = forms.CharField(help_text='New Password',
|
||||
required=False,
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
password2 = forms.CharField(help_text='New Password Confirmation',
|
||||
required=False,
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
password = forms.CharField(help_text='New Password',
|
||||
required=False,
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
password_confirm = forms.CharField(help_text='New Password Confirmation',
|
||||
required=False,
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
|
||||
def clean_email(self):
|
||||
data = self.cleaned_data['email']
|
||||
user = User.objects.get(username=self.cleaned_data['username'])
|
||||
if data == user.email:
|
||||
return data
|
||||
if User.objects.filter(email=data).exists():
|
||||
raise forms.ValidationError('Email Address is in use')
|
||||
return data
|
||||
|
||||
def clean(self):
|
||||
form_data = self.cleaned_data
|
||||
if form_data['password'] != form_data['password_confirm']:
|
||||
raise forms.ValidationError('Passwords do not match.')
|
||||
if len(form_data['password']) < 8 & len(form_data['password']) != 0:
|
||||
raise forms.ValidationError('Password is too short')
|
||||
return form_data
|
||||
|
||||
|
||||
class AddUserForm(forms.Form):
|
||||
username = forms.CharField(help_text='Username',
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
email = forms.CharField(help_text='Email Address',
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control'
|
||||
}
|
||||
))
|
||||
password = forms.CharField(help_text='New Password',
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
password_confirm = forms.CharField(help_text='New Password Confirmation',
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
|
||||
def clean_username(self):
|
||||
data = self.cleaned_data['username']
|
||||
if User.objects.filter(username=data).exists():
|
||||
raise forms.ValidationError('This username Exists.')
|
||||
return data
|
||||
|
||||
def clean_email(self):
|
||||
data = self.cleaned_data['email']
|
||||
if User.objects.filter(email=data).exists():
|
||||
raise forms.ValidationError('Email Address is in use')
|
||||
return data
|
||||
|
||||
def clean(self):
|
||||
form_data = self.cleaned_data
|
||||
if form_data['password'] != form_data['password_confirm']:
|
||||
raise forms.ValidationError('Passwords do not match.')
|
||||
if len(form_data['password']) < 8:
|
||||
raise forms.ValidationError('Password is too short')
|
||||
return form_data
|
||||
|
||||
|
||||
class EditUserForm(forms.Form):
|
||||
username = forms.CharField(help_text='Username',
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control disabled',
|
||||
'readonly': True,
|
||||
}
|
||||
))
|
||||
email = forms.CharField(help_text='Email Address',
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control'
|
||||
}
|
||||
))
|
||||
password = forms.CharField(help_text='New Password',
|
||||
required=False,
|
||||
widget=forms.PasswordInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
))
|
||||
|
||||
@staticmethod
|
||||
def get_initial_values(user):
|
||||
out = {
|
||||
'username': user.username,
|
||||
'email': user.email
|
||||
}
|
||||
return out
|
||||
|
||||
def clean_email(self):
|
||||
data = self.cleaned_data['email']
|
||||
user = User.objects.get(username=self.cleaned_data['username'])
|
||||
if data == user.email:
|
||||
return data
|
||||
if User.objects.filter(email=data).exists():
|
||||
raise forms.ValidationError('Email Address is in use')
|
||||
return data
|
||||
|
||||
def clean_password(self):
|
||||
data = self.cleaned_data['password']
|
||||
if len(data) < 8 & len(data) != 0:
|
||||
raise forms.ValidationError('Password is too short')
|
||||
return data
|
||||
|
||||
|
||||
class SettingsForm(forms.Form):
|
||||
|
||||
Reference in New Issue
Block a user