Boston, MA 02111-1307, USA.
"""
from django import newforms as forms
+from django.newforms import ValidationError
from django.newforms.widgets import Textarea, PasswordInput
+from django.contrib.auth.models import User
from eventmanager.eventos.models import \
TipoTrabalho, CategoriaTrabalho, Palestrante, STATE_CHOICES
MKCHOICES = lambda K, xid=-1:[(x.id, str(x)) for x in K.objects.all() \
if xid != x.id]
+class LoginBase(forms.Form):
+ nome_usuario = forms.CharField(max_length=100)
+ senha = forms.CharField(max_length=100, widget=PasswordInput())
+ senha_2 = forms.CharField(max_length=100, widget=PasswordInput(),
+ label='Conferir Senha')
+
+ def clean_nome_usuario(self):
+ try:
+ User.objects.get(username=self.cleaned_data['nome_usuario'])
+ raise ValidationError('Já existe um usuário com esse nome')
+ except User.DoesNotExist:
+ return self.cleaned_data['nome_usuario']
+
+ def clean_senha_2(self):
+ if self.cleaned_data['senha'] != self.cleaned_data['senha_2']:
+ raise ValidationError('A confirmação não confere com a senha')
+ return self.cleaned_data['senha_2']
+
class SubmeterTrabalho(forms.Form):
def __init__(self, request, *args, **kwargs):
super(SubmeterTrabalho, self).__init__(*args, **kwargs)
'ex.: Computadores, softwares, etc. Máximo de 300 caracteres.')
outros_palestrantes = forms.MultipleChoiceField(required=0)
-class CadastroPalestrante(forms.Form):
+class CadastroPalestrante(LoginBase):
nome_completo = forms.CharField(max_length=100)
- nome_usuario = forms.CharField(max_length=100)
- senha = forms.CharField(max_length=100, widget=PasswordInput())
- senha_2 = forms.CharField(max_length=100, widget=PasswordInput(),
- label='Conferir Senha')
email = forms.CharField(max_length=100)
telefone = forms.CharField(required=False)
cidade = forms.CharField(max_length=100)
uf = forms.ChoiceField(choices=STATE_CHOICES)
+ def clean_celular(self):
+ if not self.cleaned_data['telefone'] and \
+ not self.cleaned_data['celular']:
+ raise ValidationError('Algum número de precisa ser preenchido')
+ return self.cleaned_data['celular']
+
class EditarPalestrante(forms.Form):
nome = forms.CharField(max_length=100, label='Nome completo')
email = forms.CharField(max_length=100)
nova_senha_2 = forms.CharField(max_length=100, widget=PasswordInput(),
label='Conferir Senha')
-class InscricaoBase(forms.Form):
+class InscricaoBase(LoginBase):
nome_completo = forms.CharField(max_length=100)
rg = forms.CharField(max_length=100)
- nome_usuario = forms.CharField(max_length=100)
- senha = forms.CharField(max_length=100, widget=PasswordInput())
- senha_2 = forms.CharField(max_length=100, widget=PasswordInput(),
- label='Conferir Senha')
email = forms.CharField(max_length=100)
rua = forms.CharField(max_length=100)