diff --git a/sapl/base/views.py b/sapl/base/views.py index 093307897..b38bee7bf 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1108,15 +1108,16 @@ class RelatorioMateriaAnoAssuntoView(ListView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['title'] = _('Matérias por Ano e Assunto') - mat = MateriaLegislativa.objects.exclude(id__in= - MateriaAssunto.objects.distinct( - 'materia_id').values_list( - 'materia_id', - flat=True - ).order_by( - 'materia_id' - )).values( - 'ano').annotate(total=Count('ano')).order_by('-ano') + + # In[10]: MateriaAssunto.objects.all().values( + # ...: 'materia__ano').annotate( + # ...: total = Count('materia__ano')).order_by('-materia__ano') + + mat = MateriaLegislativa.objects.filter( + materiaassunto__isnull=True).values( + 'ano').annotate( + total=Count('ano')).order_by('-ano') + context.update({"materias_sem_assunto": mat}) return context diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 48d44083e..bf43879fd 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -2007,6 +2007,11 @@ class MateriaLegislativaPesquisaView(FilterView): "autoria_set__autor", "tipo",) + # retorna somente MateriaLegislativa sem MateriaAssunto se True + materia_assunto_null = self.request.GET.get("materiaassunto_null", False) + if materia_assunto_null: + qs = qs.filter(materiaassunto__isnull=True) + if 'o' in self.request.GET and not self.request.GET['o']: qs = qs.order_by('-ano', 'tipo__sigla', '-numero') diff --git a/sapl/templates/base/RelatorioMateriasAnoAssunto.html b/sapl/templates/base/RelatorioMateriasAnoAssunto.html index 5e9b2b16a..49858beae 100644 --- a/sapl/templates/base/RelatorioMateriasAnoAssunto.html +++ b/sapl/templates/base/RelatorioMateriasAnoAssunto.html @@ -3,7 +3,14 @@ {% load crispy_forms_tags %} {% block base_content %}
- Matérias por Ano e Assunto +
+

Conteúdo

+
    +
  1. Matérias com assunto cadastrado
  2. +
  3. Matérias sem assunto cadastrado
  4. +
+
+

Matérias com assunto cadastrado

{% if not object_list %}

{{ NO_ENTRIES_MSG }}

{% else %} @@ -29,7 +36,7 @@ {% endif %}
- Matérias sem Assunto +

Matérias sem assunto cadastrado

@@ -40,7 +47,7 @@ {% for o in materias_sem_assunto %} -
+ {{o.ano}} {{o.total}}