diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 321a62b5b..2903b78dd 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -780,7 +780,7 @@ class AnexadaForm(ModelForm): if materia_principal == anexa.materia_anexada: ciclico = True else: - for a in Anexada.objects.filter(materia_principal=anexa.documento_anexado): + for a in Anexada.objects.filter(materia_principal=anexa.materia_anexada): anexadas.append(a) anexadas_anexada = anexadas diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 696b1235a..e1ac885ca 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -2084,11 +2084,39 @@ class MateriaAnexadaEmLoteView(PermissionRequiredMixin, FilterView): qr = self.request.GET.copy() context['object_list'] = context['object_list'].order_by( - 'ano', 'numero') + 'numero', '-ano') principal = MateriaLegislativa.objects.get(pk=self.kwargs['pk']) not_list = [self.kwargs['pk']] + \ [m for m in principal.materia_principal_set.all().values_list('materia_anexada_id', flat=True)] context['object_list'] = context['object_list'].exclude(pk__in=not_list) + + context['temp_object_list'] = context['object_list'] + context['object_list'] = [] + for obj in context['temp_object_list']: + materia_anexada = obj + ciclico = False + anexadas_anexada = Anexada.objects.filter( + materia_principal = materia_anexada + ) + + while(anexadas_anexada and not ciclico): + anexadas = [] + + for anexa in anexadas_anexada: + + if principal == anexa.materia_anexada: + ciclico = True + else: + for a in Anexada.objects.filter(materia_principal=anexa.materia_anexada): + anexadas.append(a) + + anexadas_anexada = anexadas + + if not ciclico: + context['object_list'].append(obj) + + context['numero_res'] = len(context['object_list']) + context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else '' context['show_results'] = show_results_filter_set(qr) @@ -2124,7 +2152,9 @@ class MateriaAnexadaEmLoteView(PermissionRequiredMixin, FilterView): msg = _('Materia(s) anexada(s).') messages.add_message(request, messages.SUCCESS, msg) - return self.get(request, self.kwargs) + + sucess_url = reverse('sapl_index') + 'materia/' + kwargs['pk'] + '/anexada' + return HttpResponseRedirect(sucess_url) class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView): diff --git a/sapl/templates/materia/em_lote/anexada.html b/sapl/templates/materia/em_lote/anexada.html index 76a154ec6..2b1c22c56 100644 --- a/sapl/templates/materia/em_lote/anexada.html +++ b/sapl/templates/materia/em_lote/anexada.html @@ -8,11 +8,11 @@ {% endif %} {% if show_results %} - {% if object_list.count > 0 %} - {% if object_list.count == 1 %} + {% if numero_res > 0 %} + {% if numero_res == 1 %}

{% trans 'Pesquisa concluída com sucesso! Foi encontrada 1 matéria.'%}

{% else %} -

{% blocktrans with object_list.count as total_materias %}Foram encontradas {{total_materias}} matérias.{% endblocktrans %}

+

Foram encontradas {{ numero_res }} matérias.

{% endif %}
{% csrf_token %}