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