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. 38
      sapl/templates/base/RelatorioMateriasPorAutor_filter.html
  4. 39
      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()

38
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 style="border-left: hidden; border-right: hidden;"><th colspan="3"></th></tr>
<tr class="active"><th colspan="3" class="text-center">Autor: {{ materia.autoria_set.first.autor }}</th></tr>
<tr class="active"> <tr class="active">
<th width="10%">Matéria</th> <th width="10%">Matéria</th>
<th>Ementa</th> <th>Ementa</th>
<th width="20%">Coautor(es)</th> <th width="20%">Autor(es)</th>
</tr> </tr>
</thead> </thead>
{% endifchanged %} {% for materia in materias_resultado %}
<tbody> <tbody>
<tr> <tr>
<td><a href="{% url 'sapl.materia:materialegislativa_detail' materia.pk %}"> <td>
<a href="{% url 'sapl.materia:materialegislativa_detail' materia.pk %}">
{{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}} {{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}}
</a></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>
{% if materia.autoria_set.first != materia.autoria_set.last %}
{% for autor in materia.autoria_set.all %} {% for autor in materia.autoria_set.all %}
{% if not autor.primeiro_autor %} {% if not autor.primeiro_autor %}
{{ autor.autor }}<br /> {{ autor.autor }}<br />
{% else %}
<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 %}

39
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 object_list|length %} {% if materias_resultado|length %}
<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="2" class="text-center">QUADRO GERAL</th></tr> <tr class="active">
<th colspan="2" class="text-center">QUADRO GERAL</th>
</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>
{% if materias_resultado|length %}
{% for materia in materias_resultado %}
<strong>Matéria:</strong> {{materia.tipo.descricao}} {{materia.numero}}/{{materia.ano}}
</br> </br>
<strong>Ementa:</strong>
</br> </br>
{% if object_list|length %} {{materia.ementa}}
{% for materia in object_list %}
{% ifchanged materia.autoria_set.first.autor %}
</br>
<strong>Autor: {{ materia.autoria_set.first.autor }}</strong>
</br>
</br>
{% endifchanged %}
<div style="border-top: 1px solid black;margin-bottom:0.3cm">
<strong>Matéria:</strong> {{materia.tipo.descricao}} {{materia.numero}}/{{materia.ano}}
</br> </br>
<strong>Ementa:</strong> {{materia.ementa}} <strong>Autor(es):</strong>
</br> </br>
<strong>Coautor(es):</strong> {% if materia.autoria_set.first != materia.autoria_set.last %}
{% for autor in materia.autoria_set.all %} {% for autor in materia.autoria_set.all %}
{% if not autor.primeiro_autor %} {% if not autor.primeiro_autor %}
{{ autor.autor }}<br /> {{ autor.autor }}<br />
{% else %}
<u><i>{{ autor.autor }}</i></u><br />
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %}
</br> </br>
</div> <div style="border-top: 1px solid black;margin-bottom:0.3cm"></div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}

Loading…
Cancel
Save