mirror of https://github.com/interlegis/sapl.git
Browse Source
* Inicia implementação do login simples * Cria o Login * Melhora a mensagem de erro no Login * Ajusta migração para novas mudanças das models Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Concerta problema de duplicidade Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Arruma conflito com master e traduz textos de info Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Remove global e corrige alguns textos Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Arruma exclusão de stubs desnecessários Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Arruma problema de merge no makemigrations Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Cria função para pegar fields_dict Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Retira código desnecessário * Arruma exclusão de stubs desnecessários Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Arruma problema de merge no makemigrations Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Cria função para pegar fields_dict Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Adiciona datas invalidas à model ProblemaMigracao Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Arruma imports Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Adiciona a ativação/desativação do virtualenv * Ajusta sugestões de correção do PR Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Exclui arquivo de migrate pra resolver conflito Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * Concerta alguns problemas de model e admin Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br> * FIX: substitui null por '' ao limpar autor * Init crud legislação citada * Tests * Init crud legislacao * Init crud legislação citada * Valida legislação repetida * Valida legislação igual * Ajeita testes * Init Crud Tramitação * Valida ultima tramitação * Ordena tramitações * Teste delete * Termina validações para deletar uma tramitação * Fix testes * Fix #381 * Adiciona placeholder * Estruturar View e template de pendências. * Refat dos tipos de pendências e rend. dos vides * Alteração na reenderização da mensagem dos Vides. * Ajuste na integração com Compilação * Criar Filtro em Nível de Notificação de Pendências * Fix #398 * Faz o merge de migrations de materia * Fix #397 - Apresentar Filiação Partidária Atual * HOT FIX: filiação vem em ordem decrescente: first() ao invés de last() * Fix #407 * Adiciona o campo Natureza de Processo * Resolve alguns erros apontados pelo check_qa * Adiciona mais um 'guarda' pra preservar ordem decrescente de filiação * Init crud legislação citada * Comeca a implementacao do travis * Modifica o travis * Insere a verificacao com o Travis apos testes em um fork do sapl * Faz a integracao continua com o travis funcionar corretamente * Fix #355 crud relatoria * Init crud legislação citada * Init Crud Tramitação * Init crud relatoria * Disabilita localização atual * Valida localização atual * Fix qa e testes * Init crud documento acessório * Monta layout para autor * Adicona busca de autor na criação de documento acessório * Esconde campo não usado de autor * Define layout documento acessório * Ajusta botão de salvar e cancelar * Fix qa * Adiciona edição de documento acessório * Fix qa e testes * Init crud legislação citada * Init Crud Tramitação * Init crud relatoria * Fix qa e testes * Fix url * Adiciona campo de arquivo em Documento Acessório * Fix #391 refatora pesquisa doc adm django filter (#417) * Refatora a Pesquisa de Documento Adm * Finaliza a refatoracao da pesquisa por documento administrativo * Cria o botao de pesquisa por Documento Administrativo * Faz ir para o menu principal quando clica na logoda aplicacao * Arruma PEP8 * Arruma alguns detalhes * Faz modificacoes propostas pela issue 418 fix #418 * Fix #429 - ordem descrescente de mandato parlamentar (#437) * Ordena Mandato por data_inicio de Legislatura em ordem decrescente * Fix #402 - checagem de filiação partidária (#423) * Fix #402 - checagem de filiação partidária * WIP * WIP * WIP * WIP * Init crud legislação citada * Disabilita localização atual * Valida localização atual * Fix qa e testes * Init crud documento acessório * Monta layout para autor * Adicona busca de autor na criação de documento acessório * Esconde campo não usado de autor * Define layout documento acessório * Fix qa * Remove duplicidade do helper * Modifica row dos botões * Init crud relatoria * Disabilita localização atual * Valida localização atual * Init crud legislação citada * Init Crud Tramitação * Init crud relatoria * Fix qa e testes * Init crud documento acessório * Monta layout para autor * Adicona busca de autor na criação de documento acessório * Define layout documento acessório * Fix url * Adiciona campo de arquivo em Documento Acessório * Init crud proposicao * Muda url de proposição e valida tipo de proposicao para adição de matéria * Muda data inválida para elaboração * Ordena listagem pela data de envio * Valida se uma proposição está sendo enviada ou criada * Valida remoção ou retorno de proposição * Remove código desnecessário * Fix qa * Fix testes * Inicia implementação do login simples * Cria o Login * Melhora a mensagem de erro no Login * Faz algumas das mudancas apontadas na revisao * Tenta arrumar a quebra nos testes * Faz com que todos os testes passem * Muda detalhes na url do templatepull/445/head
eduardocalil
9 years ago
committed by
Edward
9 changed files with 191 additions and 2 deletions
@ -0,0 +1,69 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
import pytest |
||||
|
from django.contrib.auth.models import User |
||||
|
|
||||
|
pytestmark = pytest.mark.django_db |
||||
|
|
||||
|
|
||||
|
@pytest.fixture |
||||
|
def user(): |
||||
|
return User.objects.create_user('jfirmino', password='123') |
||||
|
|
||||
|
|
||||
|
def test_login_aparece_na_barra_para_usuario_nao_logado(client): |
||||
|
response = client.get('/') |
||||
|
assert '<a href="/login/?next=">Login</a>' in str(response.content) |
||||
|
|
||||
|
|
||||
|
def test_username_do_usuario_logado_aparece_na_barra(client, user): |
||||
|
assert client.login(username='jfirmino', password='123') |
||||
|
response = client.get('/') |
||||
|
assert '<a href="/login/?next=">Login</a>' not in str(response.content) |
||||
|
assert 'jfirmino' in str(response.content) |
||||
|
assert '<a href="/logout/?next=">Sair</a>' in str(response.content) |
||||
|
|
||||
|
|
||||
|
def test_nome_completo_do_usuario_logado_aparece_na_barra(client, user): |
||||
|
# nome completo para o usuario |
||||
|
user.first_name = 'Joao' |
||||
|
user.last_name = 'Firmino' |
||||
|
user.save() |
||||
|
assert client.login(username='jfirmino', password='123') |
||||
|
response = client.get('/') |
||||
|
assert '<a href="/login/?next=">Login</a>' not in str(response.content) |
||||
|
assert 'Joao Firmino' in str(response.content) |
||||
|
assert '<a href="/logout/?next=">Sair</a>' in str(response.content) |
||||
|
|
||||
|
|
||||
|
@pytest.mark.urls('base.tests.teststub_urls') |
||||
|
@pytest.mark.parametrize("link_login,destino", [ |
||||
|
# login redireciona para home |
||||
|
('/login/', '/'), |
||||
|
]) |
||||
|
def test_login(app, user, link_login, destino): |
||||
|
pagina_login = app.get(link_login) |
||||
|
form = pagina_login.forms['login-form'] |
||||
|
form['username'] = 'jfirmino' |
||||
|
form['password'] = '123' |
||||
|
res = form.submit() # login |
||||
|
|
||||
|
assert str(user.pk) == app.session['_auth_user_id'] |
||||
|
assert res.url == destino |
||||
|
|
||||
|
|
||||
|
@pytest.mark.parametrize("link_logout,destino", [ |
||||
|
# logout redireciona para a pagina de login |
||||
|
('/logout/', '/login/'), |
||||
|
]) |
||||
|
def test_logout(client, user, link_logout, destino): |
||||
|
# com um usuário logado ... |
||||
|
assert client.login(username='jfirmino', password='123') |
||||
|
assert str(user.pk) == client.session['_auth_user_id'] |
||||
|
|
||||
|
# ... acionamos o link de logout |
||||
|
res = client.get(link_logout, follow=True) |
||||
|
|
||||
|
destino_real = res.redirect_chain[-1][0] |
||||
|
|
||||
|
assert '_auth_user_id' not in client.session |
||||
|
assert destino_real == destino |
@ -0,0 +1,10 @@ |
|||||
|
from django.conf.urls import patterns, url |
||||
|
from django.views.generic.base import TemplateView |
||||
|
|
||||
|
from sapl.urls import urlpatterns as original_patterns |
||||
|
|
||||
|
urlpatterns = original_patterns + patterns('', url(r'^zzzz$', |
||||
|
TemplateView.as_view( |
||||
|
template_name='index.html'), |
||||
|
name='zzzz') |
||||
|
) |
@ -0,0 +1,68 @@ |
|||||
|
{% extends "crud/detail.html" %} |
||||
|
{% load i18n %} |
||||
|
{% block base_content %} |
||||
|
|
||||
|
<!-- O bloco comentado é para ser implementado após as autorizacoes --> |
||||
|
<!-- {% if next %} |
||||
|
{% if user.is_authenticated %} |
||||
|
<p>Você não tem acesso a esta página. Se quiser continuar, faça o Login.</p> |
||||
|
|
||||
|
{% else %} |
||||
|
<p>Por favor, faça o Login para acessar esta página.</p> |
||||
|
{% endif %} |
||||
|
|
||||
|
{% endif %} --> |
||||
|
|
||||
|
<div class="container"> |
||||
|
<div class="row"> |
||||
|
<div class="col-md-4 col-md-offset-4"> |
||||
|
<div class="login-panel panel panel-default"> |
||||
|
<div class="panel-heading"> |
||||
|
<h3 class="panel-title">Entrar</h3> |
||||
|
</div> |
||||
|
<div class="panel-body"> |
||||
|
<form id="login-form" method="post" action="{% url 'base:login' %}"> |
||||
|
{% csrf_token %} |
||||
|
|
||||
|
<p class="bs-component"> |
||||
|
<table> |
||||
|
{% if form.errors %} |
||||
|
<div class="alert alert-danger">Usuário e/ou Senha inválidos. |
||||
|
</div> |
||||
|
|
||||
|
{% endif %} |
||||
|
<tr> |
||||
|
<td><b>Usuário</b></td> |
||||
|
<td>{{ form.username }}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><b>Senha</b></td> |
||||
|
<td>{{ form.password }}</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
</p> |
||||
|
<p class="bs-component"> |
||||
|
<center> |
||||
|
<input class="btn btn-success btn-sm" type="submit" value="login" /> |
||||
|
</center> |
||||
|
</p> |
||||
|
<input type="hidden" name="next" value="{{ next }}" /> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{% endblock base_content %} |
||||
|
|
||||
|
{% block javascript %} |
||||
|
|
||||
|
|
||||
|
<script> |
||||
|
{% if not user.is_authenticated %} |
||||
|
$("#autenticacao") .css("display","none"); |
||||
|
{% endif %} |
||||
|
</script> |
||||
|
|
||||
|
{% endblock %} |
Loading…
Reference in new issue