Commits

Francisco Souza  committed cc71c14

Versão praticamente final da página de cadastro.

Também foram efetuados alguns ajustes no layout da aplicação.

  • Participants
  • Parent commits 582de08

Comments (0)

Files changed (6)

File cursos/forms.py

 from models import Aluno
 from util.validacoes import validar_cpf
 
-class CPFField(forms.CharField):
-    def clean(self, value):
-        if not value:
-            raise forms.ValidationError('Este campo é obrigatório.')
-        cpf = value.replace('.', '').replace('-', '')
-        if not validar_cpf(cpf):
-            raise forms.ValidationError('Você deve digitar um CPF válido.')
-
 class AlunoForm(forms.ModelForm):
     class Meta:
         model = Aluno
         fields = ('username', 'first_name', 'last_name', 'email', 'password')
 
-    cpf = CPFField(max_length = 15, widget = forms.TextInput())
+    cpf = forms.CharField(max_length = 15, widget = forms.TextInput())
     password = forms.CharField(max_length = 16, min_length = 4, widget = forms.PasswordInput, label = 'Senha')
     confirmacao_senha = forms.CharField(max_length = 16, min_length = 4, widget = forms.PasswordInput)
 
+    def clean_cpf(self):
+        self.cleaned_data['cpf'] = self.cleaned_data['cpf'].replace('.', '').replace('-', '')
+        if not validar_cpf(self.cleaned_data['cpf']):
+            raise forms.ValidationError('Você deve digitar um CPF válido.')
+
+        if Aluno.objects.filter(cpf = self.cleaned_data['cpf']).count() > 0:
+            raise forms.ValidationError('Este CPF já está cadastrado.')
+
+        return self.cleaned_data['cpf']
+
     def clean_username(self):
         if User.objects.filter(username = self.cleaned_data['username']).count() > 0:
             raise forms.ValidationError('Já existe um usuário com este login.')
     def save(self, commit = True):
         aluno = super(AlunoForm, self).save(commit = False)
         aluno.set_password(self.cleaned_data['password'])
+        aluno.cpf = self.cleaned_data['cpf']
 
         if commit:
             aluno.save()

File cursos/models.py

         verbose_name = gettext_lazy('Aluno')
         verbose_name_plural = gettext_lazy('Alunos')
 
-    cpf = models.CharField(max_length = 11)
+    cpf = models.CharField(max_length = 11, unique = True)
 
     def __unicode__(self):
         return self.username

File media/style.css

 	font-weight: bold;
 }
 
+#mensagem_usuario {
+	text-align: right;
+	color: #777;
+	font-size: 11px;
+}
+
 .divAfastada {
 	margin-right: 20em;
 }
+
+.table_form {
+	width: 70%;
+	margin-left: 6em;
+}
+
+.label_table_form {
+	text-align: right;
+}
+
+.wid_table_form {
+	text-align: left;
+}

File templates/cursos.html

 {% block conteudo %}
     <p>Veja abaixo uma lista de cursos. Para visualizar detalhes de um curso, clique sobre o mesmo.
     Você deve estar autenticado para visualizar os detalhes dos cursos.</p>
+    {% if not cursos %}
+        <p>Nenhum curso cadastrado.</p>
+    {% endif %}
     <ul>
         {% for curso in cursos %}
             <li><a href="{{ curso.get_url }}">{{ curso.titulo }}</a> (instrutor: {{ curso.instrutor.nome }});</li>

File templates/super.html

             {% endblock menu %}
         </div>
         
+        {% if user.is_authenticated %}
+            <div id="mensagem_usuario">
+                Seja-bem vindo {{ user.first_name }} {{ user.last_name }}.
+            </div>
+        {% endif %}
+        
         <div id="topo">
             {% block topo %}
             {% endblock topo %}
     (r'^$', 'views.bemvindo'),
     (r'^cursos/', include('cursos.urls')),
     (r'^media/(.*)$', 'django.views.static.serve', { 'document_root' : settings.MEDIA_ROOT }),
-    (r'^login/$', 'django.contrib.auth.views.login', { 'template_name' : os.path.join(dir, 'templates/login.html')}),
-    (r'^logout/$', 'django.contrib.auth.views.logout'),
+    (r'^login/$', 'django.contrib.auth.views.login', { 'template_name' : 'login.html'}),
+    (r'^logout/$', 'django.contrib.auth.views.logout', { 'template_name' : 'logout.html'}),
 )