mirror of https://github.com/interlegis/sigi.git
Marcio Mazza
10 years ago
123 changed files with 4022 additions and 123613 deletions
@ -0,0 +1,7 @@ |
|||
[run] |
|||
omit = |
|||
sigi/wsgi.py |
|||
manage.py |
|||
setup.py |
|||
test_*.py |
|||
ipython_log.py |
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
@ -0,0 +1,10 @@ |
|||
from django.contrib.sessions.models import Session |
|||
from django.contrib.auth.models import User |
|||
|
|||
|
|||
def user_from_session(session_key): |
|||
session = Session.objects.get(session_key=session_key) |
|||
uid = session.get_decoded().get('_auth_user_id') |
|||
user = User.objects.get(pk=uid) |
|||
print user.username, user.get_full_name(), user.email |
|||
return user |
@ -1,9 +1,10 @@ |
|||
{% extends "change_list_with_cart.html" %} |
|||
{% load i18n %} |
|||
|
|||
{% block object-tools-items %} |
|||
<li><a href="casas_sem_convenio_report/{{query_str}}"> |
|||
<span class="glyphicon glyphicon-list"></span> |
|||
Casas sem Processo de Convênio |
|||
{% trans 'Casas sem Processo de Convênio' %} |
|||
</a></li> |
|||
{{ block.super }} |
|||
{% endblock %} |
|||
|
@ -0,0 +1,17 @@ |
|||
import pytest |
|||
from django_dynamic_fixture import G |
|||
|
|||
from sigi.apps.casas.models import CasaLegislativa |
|||
|
|||
|
|||
@pytest.fixture |
|||
def some_parliaments(): |
|||
return parliaments_from_names([ |
|||
"Assembleia Legislativa do Amapa", |
|||
"Camara Municipal de Fortaleza", |
|||
"Camara Legislativa do Distrito Federal", |
|||
]) |
|||
|
|||
|
|||
def parliaments_from_names(names): |
|||
return [G(CasaLegislativa, nome=name, foto=None, gerente_contas=None,) for name in names] |
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -1,16 +1,17 @@ |
|||
{% extends "base_change_form.html" %} |
|||
{% load static from staticfiles %} |
|||
{% load i18n reporting_tags %} |
|||
|
|||
{% block extrastyle %} |
|||
{{ block.super }} |
|||
<link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}css/admin/diagnosticos/diagnostico/change_form.css"> |
|||
<link rel="stylesheet" type="text/css" href="{% static 'css/admin/diagnosticos/diagnostico/change_form.css' %}"> |
|||
{% endblock %} |
|||
|
|||
{% block object-tools %} |
|||
{% if change %}{% if not is_popup %} |
|||
<ul class="object-tools"> |
|||
<li><a href="history/" class="historylink">{% trans "History" %}</a></li> |
|||
<li><a href="{{adminform.form.instance.get_absolute_url }}" class="viewsitelink">Ver em PDF</a></li> |
|||
<li><a href="{{adminform.form.instance.get_absolute_url }}" class="viewsitelink">{% trans 'Ver em PDF' %}</a></li> |
|||
</ul> |
|||
{% endif %}{% endif %} |
|||
{% endblock %} |
|||
|
@ -1,18 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from django.db import models |
|||
from django.utils.translation import ugettext as _ |
|||
|
|||
from sigi.apps.convenios.models import Projeto |
|||
|
|||
|
|||
class Desembolso(models.Model): |
|||
projeto = models.ForeignKey(Projeto, verbose_name=u'Projeto') |
|||
descricao = models.CharField(u'Descrição da despesa', max_length=100) |
|||
data = models.DateField(u'Data do desembolso') |
|||
valor_reais = models.DecimalField(u'Valor em R$', max_digits=18, decimal_places=2) |
|||
valor_dolar = models.DecimalField(u'Valor em US$', max_digits=18, decimal_places=2) |
|||
projeto = models.ForeignKey(Projeto, verbose_name=_(u'Projeto')) |
|||
descricao = models.CharField(_(u'Descrição da despesa'), max_length=100) |
|||
data = models.DateField(_(u'Data do desembolso')) |
|||
valor_reais = models.DecimalField(_(u'Valor em R$'), max_digits=18, decimal_places=2) |
|||
valor_dolar = models.DecimalField(_(u'Valor em US$'), max_digits=18, decimal_places=2) |
|||
|
|||
class Meta: |
|||
verbose_name = 'Desembolso' |
|||
verbose_name_plural = 'Desembolsos' |
|||
verbose_name = _(u'Desembolso') |
|||
verbose_name_plural = _(u'Desembolsos') |
|||
|
|||
def __unicode__(self): |
|||
return u"%s (US$ %s)" % (self.descricao, self.valor_dolar) |
|||
|
@ -0,0 +1,6 @@ |
|||
{% load menus %} |
|||
<ul class="nav navbar-nav"> |
|||
{% for menu_item in menu_items %} |
|||
{% show_menu_item menu_item base_url %} |
|||
{% endfor %} |
|||
</ul> |
@ -0,0 +1,17 @@ |
|||
{% load menus %} |
|||
{% if menu_item.children %} |
|||
<li class="dropdown"> |
|||
{% if menu_item.url %} |
|||
<a href="{{base_url}}{{ menu_item.url }}" class="dropdown-toggle" data-toggle="dropdown">{{ menu_item.title }}</a> |
|||
{% else %} |
|||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ menu_item.title }} <span class="caret"></span></a> |
|||
{% endif %} |
|||
<ul class="dropdown-menu" role="menu"> |
|||
{% for child in menu_item.children %} |
|||
{% show_menu_item child base_url %} |
|||
{% endfor %} |
|||
</ul> |
|||
</li> |
|||
{% else %} |
|||
<li><a href="{{base_url}}{{ menu_item.url }}">{{ menu_item.title }}</a></li> |
|||
{% endif %} |
@ -0,0 +1,97 @@ |
|||
main_menu: |
|||
- title: Gráficos |
|||
url: '' |
|||
- title: Municípios |
|||
url: admin:contatos/municipio/ |
|||
children: |
|||
- title: Municípios |
|||
url: contatos/municipio/ |
|||
- title: Unidades Federativas |
|||
url: contatos/unidadefederativa/ |
|||
- title: Casas Legislativas |
|||
url: casas/casalegislativa/ |
|||
children: |
|||
- title: Todas |
|||
url: casas/casalegislativa/ |
|||
- title: Câmaras Municipais |
|||
url: casas/casalegislativa/?tipo__id__exact=1 |
|||
- title: Assembléias Legislativas |
|||
url: casas/casalegislativa/?tipo__id__exact=2 |
|||
- title: Legislaturas |
|||
url: mesas/legislatura/ |
|||
children: |
|||
- title: Todas |
|||
url: mesas/legislatura/ |
|||
- title: Parlamentares |
|||
url: parlamentares/parlamentar/ |
|||
- title: Tabela de cargos |
|||
url: mesas/cargo/ |
|||
- title: Tabela de partidos |
|||
url: parlamentares/partido/ |
|||
- title: Diagnósticos |
|||
url: diagnosticos/diagnostico/ |
|||
children: |
|||
- title: Administração |
|||
url: diagnosticos/diagnostico/ |
|||
- title: Coleta de dados |
|||
url: diagnosticos/mobile/ |
|||
- title: Gráficos e estatísticas |
|||
url: diagnosticos-graficos |
|||
- title: Convênios |
|||
url: convenios/convenio/ |
|||
children: |
|||
- title: Convênios |
|||
url: convenios/convenio/ |
|||
- title: Planos diretores |
|||
url: metas/planodiretor/ |
|||
- title: Inventário |
|||
url: inventario/bem/ |
|||
children: |
|||
- title: Bens |
|||
url: inventario/bem/ |
|||
- title: Fornecedores |
|||
url: inventario/fornecedor/ |
|||
- title: Equipamentos |
|||
url: inventario/equipamento/ |
|||
- title: Fabricantes |
|||
url: inventario/fabricante/ |
|||
- title: Tipos de equipamentos |
|||
url: inventario/tipoequipamento/ |
|||
- title: Modelos de equipamentos |
|||
url: inventario/modeloequipamento/ |
|||
- title: Servidores |
|||
url: servidores/servidor/?user__is_active__exact=1 |
|||
children: |
|||
- title: Pessoal |
|||
url: servidores/servidor/?user__is_active__exact=1 |
|||
- title: Funções |
|||
url: servidores/funcao |
|||
- title: Férias |
|||
url: servidores/ferias/ |
|||
- title: Licenças |
|||
url: servidores/licenca/ |
|||
- title: Serviços SEIT |
|||
url: servicos/casaatendida/ |
|||
children: |
|||
- title: Tipos de serviço |
|||
url: servicos/tiposervico/ |
|||
- title: Casas atendidas |
|||
url: servicos/casaatendida/ |
|||
- title: Lista de serviços |
|||
url: servicos/servico/ |
|||
- title: Ocorrências |
|||
url: ocorrencias/ocorrencia/?grupo=S&status__in=1,2 |
|||
children: |
|||
- title: Registro de ocorrências |
|||
url: ocorrencias/ocorrencia/?grupo=S&status__in=1,2 |
|||
- title: Tabela de categorias |
|||
url: ocorrencias/categoria/ |
|||
- title: Tipos de contato |
|||
url: ocorrencias/tipocontato/ |
|||
- title: Financeiro |
|||
url: financeiro/desembolso/ |
|||
children: |
|||
- title: Desembolsos |
|||
url: financeiro/desembolso/ |
|||
- title: Dashboard |
|||
url: metas-dashboardsss |
@ -0,0 +1,21 @@ |
|||
from os.path import dirname |
|||
|
|||
import yaml |
|||
from django import template |
|||
|
|||
|
|||
register = template.Library() |
|||
|
|||
menus = yaml.load(open(dirname(__file__) + '/menu_conf.yaml', 'r')) |
|||
|
|||
|
|||
@register.inclusion_tag('menus/menu.html', takes_context=True) |
|||
def show_menu(context, menu_id): |
|||
base_url = context['request'].build_absolute_uri('/') |
|||
menus = yaml.load(open(dirname(__file__) + '/menu_conf.yaml', 'r')) |
|||
return dict(menu_items=menus[menu_id], base_url=base_url) |
|||
|
|||
|
|||
@register.inclusion_tag('menus/menu_item.html') |
|||
def show_menu_item(menu_item, base_url): |
|||
return dict(menu_item=menu_item, base_url=base_url) |
@ -1,280 +0,0 @@ |
|||
[ |
|||
{ |
|||
"pk": 3, |
|||
"model": "inventario.fornecedor", |
|||
"fields": { |
|||
"pagina_web": "http://www.dell.com.br/", |
|||
"email": "", |
|||
"nome": "Dell" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "inventario.fornecedor", |
|||
"fields": { |
|||
"pagina_web": "", |
|||
"email": "", |
|||
"nome": "Desconhecido" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "inventario.fornecedor", |
|||
"fields": { |
|||
"pagina_web": "http://www.submarino.com.br/", |
|||
"email": "", |
|||
"nome": "Submarino" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "inventario.fabricante", |
|||
"fields": { |
|||
"nome": "Dell" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "inventario.fabricante", |
|||
"fields": { |
|||
"nome": "Desconhecido" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 4, |
|||
"model": "inventario.fabricante", |
|||
"fields": { |
|||
"nome": "HP" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 3, |
|||
"model": "inventario.fabricante", |
|||
"fields": { |
|||
"nome": "Microsoft" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Computador Desktop" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Desconhecido" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 8, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Estabilizador" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 3, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Impressora" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 5, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Modem" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 4, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Monitor" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 9, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Notebook/Laptop" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 6, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Roteador" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 7, |
|||
"model": "inventario.tipoequipamento", |
|||
"fields": { |
|||
"tipo": "Webcam" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 3 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 3, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 2 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 4, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 8 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 5, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 5 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 6, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 4 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 7, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 9 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 8, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 6 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 9, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Desconhecido", |
|||
"tipo": 7 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 10, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "PSC 500", |
|||
"tipo": 3 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 11, |
|||
"model": "inventario.modeloequipamento", |
|||
"fields": { |
|||
"modelo": "Vostro 1310", |
|||
"tipo": 9 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 1, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 2, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 3, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 3, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 4, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 4, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 5, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 5, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 6, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 6, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 7, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 7, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 8, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 8, |
|||
"fabricante": 1 |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 9, |
|||
"model": "inventario.equipamento", |
|||
"fields": { |
|||
"modelo": 9, |
|||
"fabricante": 1 |
|||
} |
|||
} |
|||
] |
@ -1,3 +0,0 @@ |
|||
from django.test import TestCase |
|||
|
|||
# Create your tests here. |
@ -1,44 +0,0 @@ |
|||
[ |
|||
{ |
|||
"pk": 4, |
|||
"model": "mesas.cargo", |
|||
"fields": { |
|||
"descricao": "1\u00ba Secret\u00e1rio" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "mesas.cargo", |
|||
"fields": { |
|||
"descricao": "1\u00ba Vice-Presidente" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 5, |
|||
"model": "mesas.cargo", |
|||
"fields": { |
|||
"descricao": "2\u00ba Secret\u00e1rio" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 3, |
|||
"model": "mesas.cargo", |
|||
"fields": { |
|||
"descricao": "2\u00ba Vice-Presidente" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 6, |
|||
"model": "mesas.cargo", |
|||
"fields": { |
|||
"descricao": "Corregedor" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "mesas.cargo", |
|||
"fields": { |
|||
"descricao": "Presidente" |
|||
} |
|||
} |
|||
] |
@ -1,35 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from django import template |
|||
from django.utils.safestring import mark_safe |
|||
|
|||
from sigi.apps.casas.models import CasaLegislativa |
|||
from sigi.apps.metas.views import parliament_summary |
|||
|
|||
|
|||
register = template.Library() |
|||
|
|||
|
|||
@register.filter(name='map_desc_serv') |
|||
def descricao_servicos(value): |
|||
if not isinstance(value, CasaLegislativa): |
|||
def descricao_servicos(casa): |
|||
if not isinstance(casa, CasaLegislativa): |
|||
return "" |
|||
|
|||
result = "" |
|||
|
|||
for sv in value.servico_set.all(): |
|||
result += u'<li>%s ativado em %s</li>' % (sv.tipo_servico.nome, sv.data_ativacao.strftime('%d/%m/%Y')) |
|||
|
|||
for cv in value.convenio_set.all(): |
|||
if (cv.data_retorno_assinatura is None) and (cv.equipada and cv.data_termo_aceite is not None): |
|||
result += u"<li>Equipada em %s pelo %s</li>" % (cv.data_termo_aceite.strftime('%d/%m/%Y'), cv.projeto.sigla) |
|||
if (cv.data_retorno_assinatura is not None) and not (cv.equipada and cv.data_termo_aceite is not None): |
|||
result += u"<li>Conveniada ao %s em %s</li>" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y')) |
|||
if (cv.data_retorno_assinatura is not None) and (cv.equipada and cv.data_termo_aceite is not None): |
|||
result += u"<li>Conveniada ao %s em %s e equipada em %s</li>" % (cv.projeto.sigla, cv.data_retorno_assinatura.strftime('%d/%m/%Y'), cv.data_termo_aceite.strftime('%d/%m/%Y')) |
|||
|
|||
for dg in value.diagnostico_set.all(): |
|||
result += u'<li>Diagnosticada no período de %s a %s</li>' % (dg.data_visita_inicio.strftime('%d/%m/%Y') if dg.data_visita_inicio |
|||
else u"<< sem data inicial >>", |
|||
dg.data_visita_fim.strftime('%d/%m/%Y') if dg.data_visita_fim |
|||
else u"<< sem data final >>") |
|||
|
|||
summary = parliament_summary(casa) |
|||
result = ''.join('<li>%s</li>' % info for info in summary['info']) |
|||
return mark_safe(result) |
|||
descricao_servicos.is_safe = True |
|||
|
@ -1,218 +0,0 @@ |
|||
[ |
|||
{ |
|||
"pk": 5, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "DEM", |
|||
"nome": "Democratas" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 19, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PCB", |
|||
"nome": "Partido Comunista Brasileiro" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 6, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PCdoB", |
|||
"nome": "Partido Comunista do Brasil" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 4, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PDT", |
|||
"nome": "Partido Democr\u00e1tico Trabalhista" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 20, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PHS", |
|||
"nome": "Partido Humanista da Solidariedade" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 13, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PPS", |
|||
"nome": "Partido Popular Socialista" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 17, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PP", |
|||
"nome": "Partido Progressista" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 16, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PRTB", |
|||
"nome": "Partido Renovador Trabalhista Brasileiro" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 25, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PRB", |
|||
"nome": "Partido Republicano Brasileiro" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 12, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PRP", |
|||
"nome": "Partido Republicano Progressista" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 10, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSC", |
|||
"nome": "Partido Social Crist\u00e3o" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 21, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSDC", |
|||
"nome": "Partido Social Democrata Crist\u00e3o" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 24, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSL", |
|||
"nome": "Partido Social Liberal" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 26, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSOL", |
|||
"nome": "Partido Socialismo e Liberdade" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 7, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSB", |
|||
"nome": "Partido Socialista Brasileiro" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 18, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSTU", |
|||
"nome": "Partido Socialista dos Trabalhadores Unificado" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 3, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PTB", |
|||
"nome": "Partido Trabalhista Brasileiro" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 9, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PTC", |
|||
"nome": "Partido Trabalhista Crist\u00e3o" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 23, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PTN", |
|||
"nome": "Partido Trabalhista Nacional" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 15, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PTdoB", |
|||
"nome": "Partido Trabalhista do Brasil" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 14, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PV", |
|||
"nome": "Partido Verde" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 22, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PCO", |
|||
"nome": "Partido da Causa Oper\u00e1ria" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 11, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PMN", |
|||
"nome": "Partido da Mobiliza\u00e7\u00e3o Nacional" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 27, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PR", |
|||
"nome": "Partido da Rep\u00fablica" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 8, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PSDB", |
|||
"nome": "Partido da Social Democracia Brasileira" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 2, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PMDB", |
|||
"nome": "Partido do Movimento Democr\u00e1tico Brasileiro" |
|||
} |
|||
}, |
|||
{ |
|||
"pk": 1, |
|||
"model": "parlamentares.partido", |
|||
"fields": { |
|||
"sigla": "PT", |
|||
"nome": "Partido dos Trabalhadores" |
|||
} |
|||
} |
|||
] |
@ -1,3 +0,0 @@ |
|||
from django.test import TestCase |
|||
|
|||
# Create your tests here. |
@ -1 +0,0 @@ |
|||
[{"pk": 1, "model": "servicos.tiposervico", "fields": {"template_email_altera": "Seu Portal Modelo foi alterado com sucesso. O endere\u00e7o de acesso \u00e9 {url} e a senha \u00e9 {senha}. Altere sua senha no primeiro acesso.", "sigla": "PM", "template_email_ativa": "Seu Portal Modelo foi ativado com sucesso. O endere\u00e7o de acesso \u00e9 {url} e a senha inicial \u00e9 {senha}. Altere sua senha no primeiro acesso.", "template_email_desativa": "Seu Portal Modelo foi desativado com sucesso. O endere\u00e7o de acesso era {url}.\r\nO motivo do cancelamento foi: {motivo}", "nome": "Portal Modelo"}}, {"pk": 2, "model": "servicos.tiposervico", "fields": {"template_email_altera": "Seu SAPL foi alterado com sucesso. O endere\u00e7o de acesso \u00e9 {url} e a senha \u00e9 {senha}. Altere sua senha no primeiro acesso.", "sigla": "SAPL", "template_email_ativa": "Seu SAPL foi ativado com sucesso. O endere\u00e7o de acesso \u00e9 {url} e a senha inicial \u00e9 {senha}. Altere sua senha no primeiro acesso.", "template_email_desativa": "Seu SAPL foi desativado com sucesso. O endere\u00e7o de acesso era {url}.\r\nO motivo do cancelamento foi: {motivo}", "nome": "Hospedagem SAPL"}}, {"pk": 3, "model": "servicos.tiposervico", "fields": {"template_email_altera": "Seu SAAP foi alterado com sucesso. O endere\u00e7o de acesso \u00e9 {url} e a senha \u00e9 {senha}. Altere sua senha no primeiro acesso.", "sigla": "SAAP", "template_email_ativa": "Seu SAAP foi ativado com sucesso. O endere\u00e7o de acesso \u00e9 {url} e a senha inicial \u00e9 {senha}. Altere sua senha no primeiro acesso.", "template_email_desativa": "Seu SAAP foi desativado com sucesso. O endere\u00e7o de acesso era {url}.\r\nO motivo do cancelamento foi: {motivo}", "nome": "Hospedagem SAAP"}}] |
@ -0,0 +1,31 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from django import forms |
|||
import pytest |
|||
from datetime import date |
|||
|
|||
from sigi.apps.servidores.forms import valida_data_inicial_menor_que_final, Periodo, periodos_se_sobrepoe |
|||
|
|||
|
|||
@pytest.mark.parametrize('data', [ |
|||
dict(ini=1, fim=2), |
|||
pytest.mark.xfail(raises=forms.ValidationError)(dict(ini=2, fim=1)), |
|||
pytest.mark.xfail(raises=forms.ValidationError)(dict(ini=1, fim=1)), |
|||
]) |
|||
def test_valida_data_inicial_menor_que_final(data): |
|||
valida_data_inicial_menor_que_final(data, 'ini', 'fim') |
|||
|
|||
|
|||
periodos = [ |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2001, 1, 1), date(2002, 2, 2)), True], # um dia de interseção |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2001, 1, 2), date(2002, 2, 2)), False], # exatamente um dia após |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2000, 12, 2), date(2002, 2, 2)), True], |
|||
[Periodo(date(2000, 10, 1), date(2001, 1, 1)), Periodo(date(2014, 1, 1), date(2014, 2, 2)), False], |
|||
] |
|||
|
|||
# para testar que a ordem dos parametros nao importa |
|||
periodos_trocados = [[b, a, res] for [a, b, res] in periodos] |
|||
|
|||
|
|||
@pytest.mark.parametrize('periodo1, periodo2, resultado', periodos + periodos_trocados) |
|||
def test_periodos_se_sobrepoe(periodo1, periodo2, resultado): |
|||
assert periodos_se_sobrepoe(periodo1, periodo2) == resultado |
@ -1,15 +1,23 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
|
|||
def test_clear_all_filters_is_disabled_if_no_filter_was_used(admin_client): |
|||
response = admin_client.get('/parlamentares/parlamentar', follow=True) |
|||
assert response.status_code == 200 |
|||
assert '<li class="clear-all-filter disabled"><a href="?">Clear All Filters</a></li>' in response.content |
|||
def get_li_clear_all_filters(res): |
|||
text = res.html.find(text='Clear All Filters') |
|||
li = text.find_parent('li') |
|||
assert li |
|||
return li |
|||
|
|||
|
|||
def test_clear_all_filters_is_enabled_if_some_filter_was_used(admin_client): |
|||
def test_clear_all_filters_is_disabled_if_no_filter_was_used(app): |
|||
res = app.get('/parlamentares/parlamentar/') |
|||
assert res.status_code == 200 |
|||
li = get_li_clear_all_filters(res) |
|||
assert 'disabled' in li.attrs['class'] |
|||
|
|||
|
|||
def test_clear_all_filters_is_enabled_if_some_filter_was_used(app): |
|||
# now we filter by capital letter |
|||
response = admin_client.get('/parlamentares/parlamentar/?nome_completo=B', follow=True) |
|||
assert response.status_code == 200 |
|||
# and there is no "disabled" css class |
|||
assert '<li class="clear-all-filter"><a href="?">Clear All Filters</a></li>' in response.content |
|||
res = app.get('/parlamentares/parlamentar/?nome_completo=B') |
|||
assert res.status_code == 200 |
|||
li = get_li_clear_all_filters(res) |
|||
assert 'disabled' not in li.attrs['class'] |
|||
|
@ -1,42 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
|
|||
def valida_data(data_inicio, data_final): |
|||
"""Função responsável por validar se o intervalo das |
|||
datas estão erradas, ou seja, se a data de início está |
|||
maior ou igual a data final. |
|||
|
|||
Caso seja maior ou igual retornará ``True``, caso contrário |
|||
retornará ``False``. |
|||
""" |
|||
if data_inicio >= data_final: |
|||
return True |
|||
else: |
|||
return False |
|||
|
|||
|
|||
def valida_periodo_data(di01, df01, di02, df02): |
|||
"""Função responsável por validar dois períodos de datas. |
|||
Isso é usado para verificar se determinado servidor exerceu |
|||
mais de uma função dentro de determinados períodos descritos |
|||
abaixo: |
|||
|
|||
1 - A segunda função não pode ter exercido ao mesmo tempo que |
|||
a primeira função. Exemplo: |
|||
|
|||
Primeiro Função: 01/05/2011 -- 01/11/2011 |
|||
Segundo Função: 01/05/2011 -- 01/11/2011 |
|||
|
|||
2 - A segunda função não pode ter exercido, dentro do período |
|||
da primeira função. Exemplo: |
|||
|
|||
Primeira Função: 01/05/2011 -- 01/11/2011 |
|||
Segunda Função: 02/05/2011 -- 30/10/2011 |
|||
""" |
|||
# Verificando a primeira situação |
|||
if di01 == di02 and df01 == df02: |
|||
return True |
|||
elif ((di01 >= di02) or (di02 <= df01)) and df01 <= df02: |
|||
return True |
|||
else: |
|||
return False |
File diff suppressed because one or more lines are too long
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue