|
|
|
@ -1198,7 +1198,7 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): |
|
|
|
tabela.append( |
|
|
|
('anexadas_ciclicas', |
|
|
|
'Matérias Anexadas cíclicas', |
|
|
|
len(anexados_ciclicos(True)) |
|
|
|
len(materias_anexadas_ciclicas()) |
|
|
|
) |
|
|
|
) |
|
|
|
tabela.append( |
|
|
|
@ -1209,6 +1209,34 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): |
|
|
|
) |
|
|
|
return tabela |
|
|
|
|
|
|
|
def materias_anexadas_ciclicas(): |
|
|
|
todos = [] |
|
|
|
|
|
|
|
for a in Anexada.objects.select_related('materia_principal', |
|
|
|
'materia_anexada', |
|
|
|
'materia_principal__tipo', |
|
|
|
'materia_anexada__tipo'): |
|
|
|
visitados = [a.materia_principal] |
|
|
|
anexadas = [a.materia_anexada] |
|
|
|
while len(anexadas) > 0: |
|
|
|
ma = anexadas.pop() |
|
|
|
if ma not in visitados: |
|
|
|
visitados.append(ma) |
|
|
|
anexadas.extend([a.materia_anexada for a in Anexada.objects.filter(materia_principal=ma)]) |
|
|
|
else: |
|
|
|
ciclo_list = visitados + [ma] |
|
|
|
todos.append(ciclo_list) |
|
|
|
|
|
|
|
todos_set = [] |
|
|
|
todos_pruned = [] |
|
|
|
for t in todos: |
|
|
|
if set(t) not in todos_set: |
|
|
|
todos_set.append(set(t)) |
|
|
|
todos_pruned.append(t) |
|
|
|
|
|
|
|
ciclicos = todos_pruned |
|
|
|
|
|
|
|
return ciclicos |
|
|
|
|
|
|
|
def anexados_ciclicos(ofMateriaLegislativa): |
|
|
|
ciclicos = [] |
|
|
|
@ -1299,7 +1327,7 @@ class ListarAnexadasCiclicasView(PermissionRequiredMixin, ListView): |
|
|
|
paginate_by = 10 |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
return anexados_ciclicos(True) |
|
|
|
return materias_anexadas_ciclicas() |
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
context = super( |
|
|
|
|