mirror of https://github.com/interlegis/sapl.git
committed by
GitHub
55 changed files with 1101 additions and 165 deletions
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.10.8 on 2018-12-11 20:25 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('base', '0026_auto_20181126_1727'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='appconfig', |
|||
name='relatorios_atos', |
|||
field=models.CharField(choices=[('S', 'Sim'), ('N', 'Não')], default='N', max_length=1, verbose_name='Relatórios de atos acessados'), |
|||
), |
|||
] |
|||
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.10.8 on 2018-12-18 17:03 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('base', '0027_appconfig_relatorios_atos'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='appconfig', |
|||
name='estatisticas_acesso_normas', |
|||
field=models.CharField(choices=[('S', 'Sim'), ('N', 'Não')], default='N', max_length=1, verbose_name='Estatísticas de acesso a normas'), |
|||
), |
|||
] |
|||
@ -0,0 +1,19 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.10.8 on 2018-12-18 18:40 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('base', '0028_appconfig_estatisticas_acesso_normas'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.RemoveField( |
|||
model_name='appconfig', |
|||
name='relatorios_atos', |
|||
), |
|||
] |
|||
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.10.8 on 2018-12-14 12:23 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('comissoes', '0018_auto_20180924_1724'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='reuniao', |
|||
name='hora_fim', |
|||
field=models.TimeField(blank=True, null=True, verbose_name='Horário de Término (hh:mm)'), |
|||
), |
|||
] |
|||
@ -0,0 +1,25 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.10.8 on 2018-12-17 18:44 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('norma', '0016_tipovinculonormajuridica_revoga_integramente'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='NormaEstatisticas', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('usuario', models.CharField(max_length=50)), |
|||
('horario_acesso', models.DateTimeField(auto_now=True, null=True)), |
|||
('norma', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='norma.NormaJuridica')), |
|||
], |
|||
), |
|||
] |
|||
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.10.8 on 2018-12-12 21:00 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('protocoloadm', '0009_merge'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='protocolo', |
|||
name='justificativa_anulacao', |
|||
field=models.CharField(blank=True, max_length=260, verbose_name='Motivo'), |
|||
), |
|||
] |
|||
@ -0,0 +1,64 @@ |
|||
{% extends "crud/list.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block base_content %} |
|||
{% if not show_results %} |
|||
{% crispy filter.form %} |
|||
{% endif %} |
|||
{% if show_results %} |
|||
<div class="actions btn-group pull-right" role="group"> |
|||
<a href="{% url 'sapl.base:estatisticas_acesso' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a> |
|||
</div> |
|||
<br /><br /><br /><br /> |
|||
<b>PARÂMETROS DE PESQUISA:<br /></b> |
|||
 Ano: {{ ano }} <br /> |
|||
<br/> |
|||
{% if normas_mes|length == 0 %} |
|||
<br> |
|||
<h3>{% trans 'Não foi encontrada nenhuma norma com os parâmetros buscados.'%}</h3> |
|||
{% elif normas_mes|length == meses_sem_acesso|length %} |
|||
<br> |
|||
<h3>{% trans 'Nenhuma norma teve acesso neste ano.'%}</h3> |
|||
{% else %} |
|||
{% for mes, normas in normas_mes.items %} |
|||
<div style="overflow:auto; "> |
|||
<table class="table table-bordered table-hover" style="margin-bottom: 0px;"> |
|||
<thead class="thead-default"> |
|||
<tr> |
|||
<th><h3 style="text-align:center;">Mês: {{ mes }}</h3></th> |
|||
</tr> |
|||
</thead> |
|||
</table> |
|||
{% if not mes in meses_sem_acesso %} |
|||
<table class="table table-bordered table-hover" style="width:100%; margin-bottom: 30px;"> |
|||
<thead class="thead-default" > |
|||
<tr class="active"> |
|||
<th>Norma</th> |
|||
<th>Ementa</th> |
|||
<th>Acessos</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{% for n in normas %} |
|||
{% if n.1 > 0 %} |
|||
<tr> |
|||
<td><a href="{% url 'sapl.norma:normajuridica_detail' n.0.pk %}"> |
|||
{{n.0.tipo.descricao}} - {{n.0.tipo.sigla}} {{n.0.numero}}/{{n.0.ano}} |
|||
</a></td> |
|||
<td>{{n.0.ementa}}<br>{{n.0.observacao}}</td> |
|||
<td>{{n.1}}</td> |
|||
</tr> |
|||
{% endif %} |
|||
{% endfor %} |
|||
</tbody> |
|||
</table> |
|||
{% else %} |
|||
<h3 style="text-align:center;">{% trans 'Nenhuma norma deste mês teve acessos.'%}</h3> |
|||
<br><br> |
|||
{% endif %} |
|||
</div> |
|||
{% endfor %} |
|||
{% endif %} |
|||
{% endif %} |
|||
{% endblock base_content %} |
|||
@ -0,0 +1,67 @@ |
|||
{% extends "crud/list.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block base_content %} |
|||
{% if not show_results %} |
|||
{% crispy filter.form %} |
|||
{% endif %} |
|||
|
|||
{% if show_results %} |
|||
<div class="actions btn-group pull-right" role="group"> |
|||
<a href="{% url 'sapl.base:normas_por_mes' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a> |
|||
</div> |
|||
<br /><br /><br /><br /> |
|||
<b>PARÂMETROS DE PESQUISA:<br /></b> |
|||
 Ano: {{ ano }} <br /> |
|||
<br/> |
|||
{% if normas_mes|length == 0 %} |
|||
<br> |
|||
<h3>{% trans 'Não foi encontrada nenhuma norma com os parâmetros buscados.'%}</h3> |
|||
{% endif %} |
|||
{% for mes, normas in normas_mes.items %} |
|||
<div style="overflow:auto; "> |
|||
<table class="table table-bordered table-hover" style="margin-bottom: 0px;"> |
|||
<thead class="thead-default"> |
|||
<tr> |
|||
<th><h3 style="text-align:center;">Mês: {{ mes }}</h3></th> |
|||
</tr> |
|||
</thead> |
|||
</table> |
|||
<table class="table table-bordered table-hover" style="width:100%; margin-bottom: 0px;"> |
|||
<thead class="thead-default" > |
|||
<tr class="active"> |
|||
{% for k, v in quant_normas_mes.items %} |
|||
{% if k == mes %} |
|||
{% if v > 1 %} |
|||
<th>Quantidade encontrada no mês: {{ v }} normas.</th> |
|||
{% else %} |
|||
<th>Quantidade encontrada no mês: 1 norma.</th> |
|||
{% endif %} |
|||
{% endif %} |
|||
{% endfor %} |
|||
</tr> |
|||
</thead> |
|||
</table> |
|||
<table class="table table-bordered table-hover" style="width:100%; margin-bottom: 30px;"> |
|||
<thead class="thead-default" > |
|||
<tr class="active"> |
|||
<th>Norma</th> |
|||
<th>Ementa</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{% for n in normas %} |
|||
<tr> |
|||
<td><a href="{% url 'sapl.norma:normajuridica_detail' n.pk %}"> |
|||
{{n.tipo.descricao}} - {{n.tipo.sigla}} {{n.numero}}/{{n.ano}} |
|||
</a></td> |
|||
<td>{{n.ementa}}<br>{{n.observacao}}</td> |
|||
</tr> |
|||
{% endfor %} |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
{% endfor %} |
|||
{% endif %} |
|||
{% endblock base_content %} |
|||
@ -0,0 +1,57 @@ |
|||
{% extends "crud/list.html" %} |
|||
{% load i18n %} |
|||
{% load crispy_forms_tags %} |
|||
|
|||
{% block base_content %} |
|||
{% if not show_results %} |
|||
{% crispy filter.form %} |
|||
{% endif %} |
|||
|
|||
{% if show_results %} |
|||
<div class="actions btn-group pull-right" role="group"> |
|||
<a href="{% url 'sapl.base:normas_por_vigencia' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a> |
|||
</div> |
|||
<br /><br /><br /><br /> |
|||
<b>PARÂMETROS DE PESQUISA:<br /></b> |
|||
 Ano: {{ ano }} <br /> |
|||
 Vigência: {{ vigencia }} <br /> |
|||
{% if object_list %} |
|||
<br/> |
|||
{% if object_list|length > 1 %} |
|||
<h3>Foram encontradas {{object_list|length}} normas.</h3> |
|||
{% else %} |
|||
<h3>Foi encontrada 1 norma.</h3> |
|||
{% endif %} |
|||
<br/> |
|||
<table class="table table-bordered table-hover" style="width:100%"> |
|||
<thead class="thead-default" > |
|||
<tr class="active"> |
|||
<th>Norma</th> |
|||
<th>Ementa</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
{% for norma in object_list %} |
|||
<tr> |
|||
<td><a href="{% url 'sapl.norma:normajuridica_detail' norma.pk %}"> |
|||
{{norma.tipo.descricao}} - {{norma.tipo.sigla}} {{norma.numero}}/{{norma.ano}} |
|||
</a></td> |
|||
<td>{{norma.ementa}}<br>{{norma.observacao}}</td> |
|||
</tr> |
|||
{% endfor %} |
|||
</tbody> |
|||
</table> |
|||
{% else %} |
|||
<table class="table table-bordered table-hover" style="margin-top:30px;"> |
|||
<thead class="thead-default" > |
|||
<tr class="active"> |
|||
<th> Não foi encontrada nenhuma norma com os parâmetros buscados.</th> |
|||
</tr> |
|||
</thead> |
|||
</table> |
|||
{% endif %} |
|||
<br> |
|||
<h3>Estatísticas das normas do ano:</h3><br> |
|||
<h3>{{quant_vigente}} vigente(s) / {{quant_nao_vigente}} não vigente(s)</h3> |
|||
{% endif %} |
|||
{% endblock base_content %} |
|||
@ -0,0 +1,107 @@ |
|||
<!DOCTYPE html> |
|||
<html><head> |
|||
|
|||
<link rel="stylesheet" href="basicsstyles.css" type="text/css" media="screen"> |
|||
<link rel="stylesheet" href="printstyles.css" type="text/css" media="print"> |
|||
|
|||
<style type="text/css" media="all"> |
|||
|
|||
body |
|||
{ |
|||
font-size: small; |
|||
font-family: Arial; |
|||
line-height: 175%; |
|||
background-color: transparent; |
|||
margin: 5pt 5pt 0pt 0pt; |
|||
} |
|||
|
|||
#voltar |
|||
{ |
|||
position: absolute; |
|||
top: 50pt; |
|||
left: 500pt; |
|||
} |
|||
|
|||
#ementa_texto |
|||
{ |
|||
font-family: Arial; |
|||
line-height: 150%; |
|||
border-style: none; |
|||
text-align: justify; |
|||
padding: 0pt 5pt 0pt 0pt; |
|||
margin-right:100px; |
|||
font-size: small; |
|||
height:130px; |
|||
} |
|||
|
|||
|
|||
#titulo |
|||
{ |
|||
font-size: medium; |
|||
margin-right:100px; |
|||
text-align: center; |
|||
} |
|||
|
|||
#despacho_inicial |
|||
{ |
|||
font-family: Arial; |
|||
line-height: 150%; |
|||
border-style: none; |
|||
text-align: justify; |
|||
font-size: small; |
|||
height:130px; |
|||
padding: 0pt 5pt 0pt 0pt; |
|||
margin-right:100px; |
|||
} |
|||
|
|||
@media print { |
|||
#voltar { display: none; } |
|||
} |
|||
|
|||
</style> |
|||
|
|||
<body style="margin-left:-50px;margin-right:180px; margin-top: -50px"> |
|||
|
|||
<div style="page-break-inside: avoid;"> |
|||
<justify> |
|||
<div id="titulo"> |
|||
<!-- Informa o processo --> |
|||
<strong class="text_pdf">PROCESSO Nº: {{ documento.numero }} / {{documento.ano}}</strong><br> |
|||
</div> |
|||
<table border=0> |
|||
<td height="60pt" valign=top> |
|||
<!-- Informa o tipo da matéria --> |
|||
<strong class="text_pdf">{{documento.tipo}}:</strong> <span class="text_pdf"> {{documento.numero}} / {{documento.ano}} </span><br> |
|||
</td> |
|||
</table> |
|||
|
|||
<table border=0> |
|||
<td height="60pt" valign=top> |
|||
<!-- Informa a Data de Entrada --> |
|||
<strong class="text_pdf">Data de entrada:</strong> <span class="text_pdf"> {{documento.data}}</span></br> |
|||
</td> |
|||
</table> |
|||
|
|||
{% if documento.protocolo%} |
|||
<table border=0> |
|||
<td height="60pt" valign=top> |
|||
<div> |
|||
<strong class="text_pdf">Protocolo: </strong><span class="text_pdf">{{materia.protocolo}}</span><br> |
|||
</td> |
|||
</table> |
|||
{% endif %} |
|||
|
|||
<!-- Ementa --> |
|||
<table border=0> |
|||
<td> |
|||
<div id="ementa_texto"> |
|||
<strong class="text_pdf">Ementa:</strong> <span class="text_pdf">{{documento.assunto}}</span> |
|||
</div> |
|||
</td> |
|||
</table> |
|||
|
|||
|
|||
</div> |
|||
</justify> |
|||
|
|||
</body> |
|||
@ -1,9 +1,11 @@ |
|||
<fieldset> |
|||
<p align="justify"> |
|||
{% if expedientes %} |
|||
<strong>Expedientes: </strong> |
|||
{% for e in expedientes %} |
|||
<b>{{e.tipo}}</b>: |
|||
{{e.conteudo|striptags|safe}} |
|||
{% endfor %} |
|||
{% endif %} |
|||
</p> |
|||
</fieldset> |
|||
|
|||
@ -1,10 +1,12 @@ |
|||
<fieldset> |
|||
<p align="justify"> |
|||
{% if mesa %} |
|||
<strong>Mesa Diretora: </strong> |
|||
{% for m in mesa %} |
|||
{{m.cargo}}: |
|||
{{m.parlamentar.nome_parlamentar}} / {{ m.parlamentar.filiacao_atual }} ; |
|||
{% endfor %} |
|||
{% endif %} |
|||
</p> |
|||
|
|||
</fieldset> |
|||
@ -1,6 +1,8 @@ |
|||
<fieldset> |
|||
<p align="justify"> |
|||
{% if object.ocorrenciasessao.conteudo %} |
|||
<strong>Ocorrências da Sessão: </strong> |
|||
{{object.ocorrenciasessao.conteudo|striptags|safe}} |
|||
{% endif %} |
|||
</p> |
|||
</fieldset> |
|||
|
|||
@ -1,9 +1,11 @@ |
|||
<fieldset> |
|||
<p align="justify"> |
|||
{% if oradores_explicacoes %} |
|||
<strong>Oradores das Explicações Pessoais: </strong> |
|||
{% for o in oradores_explicacoes %} |
|||
<b>{{o.numero_ordem}}</b> - {{o.parlamentar.nome_parlamentar}} / {{ o.parlamentar.filiacao_atual }} ; |
|||
{{o.url_discurso}} |
|||
{% endfor %} |
|||
{% endif %} |
|||
</p> |
|||
</fieldset> |
|||
Loading…
Reference in new issue