Browse Source

Fix #3100 - Relatórios de Matérias por Autor (#3103)

* Procurar matérias com coautores

* Refatorar template

* Refatorar template pdf

* Refatoração
pull/3126/head
João Rodrigues 5 years ago
committed by GitHub
parent
commit
06f05443e9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      sapl/base/forms.py
  2. 2
      sapl/base/views.py
  3. 74
      sapl/templates/base/RelatorioMateriasPorAutor_filter.html
  4. 71
      sapl/templates/relatorios/relatorio_materias_por_autor.html

3
sapl/base/forms.py

@ -1382,8 +1382,7 @@ class RelatorioMateriasPorAutorFilterSet(django_filters.FilterSet):
@property @property
def qs(self): def qs(self):
parent = super().qs parent = super().qs
return parent.distinct().filter(autoria__primeiro_autor=True)\ return parent.distinct().order_by('-ano', '-numero', 'tipo', 'autoria__autor', '-autoria__primeiro_autor')
.order_by('autoria__autor', '-autoria__primeiro_autor', 'tipo', '-ano', '-numero')
class Meta(FilterOverridesMetaMixin): class Meta(FilterOverridesMetaMixin):
model = MateriaLegislativa model = MateriaLegislativa

2
sapl/base/views.py

@ -4,6 +4,7 @@ import datetime
import logging import logging
import os import os
from collections import OrderedDict
from django.contrib import messages from django.contrib import messages
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
@ -926,6 +927,7 @@ class RelatorioMateriasPorAutorView(RelatorioMixin, FilterView):
return context return context
qs = context['object_list'] qs = context['object_list']
context['materias_resultado'] = list(OrderedDict.fromkeys(qs))
context['qtdes'] = num_materias_por_tipo(qs) context['qtdes'] = num_materias_por_tipo(qs)
qr = self.request.GET.copy() qr = self.request.GET.copy()

74
sapl/templates/base/RelatorioMateriasPorAutor_filter.html

@ -15,11 +15,14 @@
<b>PARÂMETROS DE PESQUISA:<br /></b> <b>PARÂMETROS DE PESQUISA:<br /></b>
&emsp;Autor: {{ autor }}<br /> &emsp;Autor: {{ autor }}<br />
&emsp;Tipo de matéria: {{ tipo }}<br /> &emsp;Tipo de matéria: {{ tipo }}<br />
&emsp;Data de apresentação: {{periodo}}<br /><br /><br/> &emsp;Data de apresentação: {{ periodo }}<br /><br /><br/>
{% if object_list %}
{% if materias_resultado %}
<table class="table table-bordered table-hover"> <table class="table table-bordered table-hover">
<thead class="thead-default" > <thead class="thead-default" >
<tr class="active"><th colspan="3" class="text-center">QUADRO GERAL</th></tr> <tr class="active">
<th colspan="3" class="text-center">QUADRO GERAL</th>
</tr>
<tr class="active"> <tr class="active">
<th colspan="2">Tipo Matéria</th> <th colspan="2">Tipo Matéria</th>
<th>Quantidade</th> <th>Quantidade</th>
@ -33,44 +36,41 @@
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
<thead class ="thead-default">
{% for materia in object_list %} <tr style="border-left: hidden; border-right: hidden;">
{% ifchanged materia.autoria_set.first.autor %} <th colspan="3"></th>
</tr>
<thead class="thead-default" > <tr class="active">
<tr style="border-left: hidden; border-right: hidden;"><th colspan="3"></th></tr> <th width="10%">Matéria</th>
<tr class="active"><th colspan="3" class="text-center">Autor: {{ materia.autoria_set.first.autor }}</th></tr> <th>Ementa</th>
<tr class="active"> <th width="20%">Autor(es)</th>
<th width="10%">Matéria</th> </tr>
<th>Ementa</th> </thead>
<th width="20%">Coautor(es)</th> {% for materia in materias_resultado %}
</tr> <tbody>
</thead> <tr>
{% endifchanged %} <td>
<tbody> <a href="{% url 'sapl.materia:materialegislativa_detail' materia.pk %}">
<tr> {{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}}
<td><a href="{% url 'sapl.materia:materialegislativa_detail' materia.pk %}"> </a>
{{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}} </td>
</a></td> <td>{% autoescape off %}{{materia.ementa}}<br>{{materia.observacao}}{% endautoescape %}</td>
<td>{% autoescape off %}{{materia.ementa}}<br>{{materia.observacao}}{% endautoescape %}</td> <td>
<td> {% for autor in materia.autoria_set.all %}
{% if materia.autoria_set.first != materia.autoria_set.last %} {% if not autor.primeiro_autor %}
{% for autor in materia.autoria_set.all %} {{ autor.autor }}<br />
{% if not autor.primeiro_autor %} {% else %}
{{ autor.autor }}<br /> <u><b><i>{{ autor.autor }}</i></b></u><br />
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %} </td>
</td> </tr>
</tr> </tbody>
</tbody>
{% endfor %} {% endfor %}
</table> </table>
<br />
{% else %} {% else %}
<h3>Não foram encontradas matérias com os parâmetros pesquisados.</h3> <h3>Não foram encontradas matérias com os parâmetros pesquisados.</h3>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endblock base_content %} {% endblock base_content %}

71
sapl/templates/relatorios/relatorio_materias_por_autor.html

@ -5,17 +5,17 @@
{% block content %} {% block content %}
<h2>Matérias por Autor</h2> <h2>Matérias por Autor</h2>
<b>PARÂMETROS DE PESQUISA:<br /></b>
<b>PARÂMETROS DE PESQUISA:<br /></b> &emsp;Autor: {{ autor }}<br />
&emsp;Autor: {{ autor }}<br /> &emsp;Tipo de matéria: {{ tipo }}<br />
&emsp;Tipo de matéria: {{ tipo }}<br /> &emsp;Data de apresentação: {{periodo}}<br /><br /><br/>
&emsp;Data de apresentação: {{periodo}}<br /><br /><br/>
{% if materias_resultado|length %}
{% if object_list|length %} <table class="table table-bordered table-hover">
<thead class="thead-default">
<table class="table table-bordered table-hover"> <tr class="active">
<thead class="thead-default" > <th colspan="2" class="text-center">QUADRO GERAL</th>
<tr class="active"><th colspan="2" class="text-center">QUADRO GERAL</th></tr> </tr>
<tr class="active"> <tr class="active">
<th>Tipo Matéria</th> <th>Tipo Matéria</th>
<th>Quantidade</th> <th>Quantidade</th>
@ -30,35 +30,26 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</br> </br></br>
</br> {% if materias_resultado|length %}
{% if object_list|length %} {% for materia in materias_resultado %}
<strong>Matéria:</strong> {{materia.tipo.descricao}} {{materia.numero}}/{{materia.ano}}
{% for materia in object_list %} </br>
{% ifchanged materia.autoria_set.first.autor %} <strong>Ementa:</strong>
</br> </br>
<strong>Autor: {{ materia.autoria_set.first.autor }}</strong> {{materia.ementa}}
</br> </br>
</br> <strong>Autor(es):</strong>
{% endifchanged %} </br>
{% for autor in materia.autoria_set.all %}
<div style="border-top: 1px solid black;margin-bottom:0.3cm"> {% if not autor.primeiro_autor %}
{{ autor.autor }}<br />
<strong>Matéria:</strong> {{materia.tipo.descricao}} {{materia.numero}}/{{materia.ano}} {% else %}
</br> <u><i>{{ autor.autor }}</i></u><br />
<strong>Ementa:</strong> {{materia.ementa}} {% endif %}
</br> {% endfor %}
<strong>Coautor(es):</strong> {% if materia.autoria_set.first != materia.autoria_set.last %} </br>
{% for autor in materia.autoria_set.all %} <div style="border-top: 1px solid black;margin-bottom:0.3cm"></div>
{% if not autor.primeiro_autor %}
{{ autor.autor }}<br />
{% endif %}
{% endfor %}
{% endif %}
</br>
</div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}

Loading…
Cancel
Save