mirror of https://github.com/interlegis/sapl.git
Browse Source
* Colocando opcao de geracao de relatorios em configuracao do sistema * fix 2313 * HOT-FIX: adiciona logging de erros não tratados * HOT-FIX: diminui o nível do logging * inicio do relatorio por mes das normas * normas por mes concluida e inicio normas vigencia * relatorio por vigencia em andamento * adicionadas normas por vigencia * estatisticas das normas por vigencia por ano * tela de estatisticas * adiciona model NormaEstatisticas no map_rules * correcoes e adicao de opcao no configuracao de aplicacao * correcao do teste em norma * retira config relatorio atos que não era utilizado * migrationpull/2179/head
Cesar Augusto de Carvalho
6 years ago
committed by
Edward
19 changed files with 578 additions and 13 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,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,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 %} |
Loading…
Reference in new issue