You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.5 KiB
65 lines
2.5 KiB
from django.contrib.auth.forms import UserCreationForm
|
|
from django.contrib.auth.models import User
|
|
from django import forms
|
|
from django.core.exceptions import ValidationError
|
|
from .choices import *
|
|
import time
|
|
from datetime import datetime, date, time, timedelta
|
|
# from datetime import datetime
|
|
|
|
class PostForm(forms.Form):
|
|
style = forms.ChoiceField(label='Style',choices=STYLE_CHOICES, required=True)
|
|
|
|
title = forms.CharField(label='Title (required for slug/SEO)', max_length=200, required=True)
|
|
url = forms.CharField(label='URL', max_length=200, required=False)
|
|
|
|
body = forms.CharField(label='Optional body', max_length=10000, required=False)
|
|
|
|
today = datetime.today() # + datetime.timedelta(days=1)
|
|
today_formatted = today.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
|
image = forms.FileField(required=False)
|
|
tags = forms.CharField(label='Tags (separated by a comma)', max_length=200, required=False)
|
|
|
|
pub_date = forms.DateTimeField(label='Optional publication date, example: ' + today_formatted, required=False)
|
|
|
|
class SigninForm(forms.Form):
|
|
username = forms.CharField(label='Enter Username', min_length=4, max_length=150)
|
|
password = forms.CharField(label='Enter password', widget=forms.PasswordInput)
|
|
|
|
class CustomUserCreationForm(forms.Form):
|
|
username = forms.CharField(label='Enter Username', min_length=4, max_length=150)
|
|
email = forms.EmailField(label='Enter email')
|
|
password1 = forms.CharField(label='Enter password', widget=forms.PasswordInput)
|
|
password2 = forms.CharField(label='Confirm password', widget=forms.PasswordInput)
|
|
|
|
def clean_username(self):
|
|
username = self.cleaned_data['username'].lower()
|
|
r = User.objects.filter(username=username)
|
|
if r.count():
|
|
raise ValidationError("Username already exists")
|
|
return username
|
|
|
|
def clean_email(self):
|
|
email = self.cleaned_data['email'].lower()
|
|
r = User.objects.filter(email=email)
|
|
if r.count():
|
|
raise ValidationError("Email already exists")
|
|
return email
|
|
|
|
def clean_password2(self):
|
|
password1 = self.cleaned_data.get('password1')
|
|
password2 = self.cleaned_data.get('password2')
|
|
|
|
if password1 and password2 and password1 != password2:
|
|
raise ValidationError("Password don't match")
|
|
|
|
return password2
|
|
|
|
def save(self, commit=True):
|
|
user = User.objects.create_user(
|
|
self.cleaned_data['username'],
|
|
self.cleaned_data['email'],
|
|
self.cleaned_data['password1']
|
|
)
|
|
return user
|
|
|