|
|
@ -1210,7 +1210,7 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): |
|
|
return tabela |
|
|
return tabela |
|
|
|
|
|
|
|
|
def materias_anexadas_ciclicas(): |
|
|
def materias_anexadas_ciclicas(): |
|
|
todos = [] |
|
|
ciclos = [] |
|
|
|
|
|
|
|
|
for a in Anexada.objects.select_related('materia_principal', |
|
|
for a in Anexada.objects.select_related('materia_principal', |
|
|
'materia_anexada', |
|
|
'materia_anexada', |
|
|
@ -1225,18 +1225,20 @@ def materias_anexadas_ciclicas(): |
|
|
anexadas.extend([a.materia_anexada for a in Anexada.objects.filter(materia_principal=ma)]) |
|
|
anexadas.extend([a.materia_anexada for a in Anexada.objects.filter(materia_principal=ma)]) |
|
|
else: |
|
|
else: |
|
|
ciclo_list = visitados + [ma] |
|
|
ciclo_list = visitados + [ma] |
|
|
todos.append(ciclo_list) |
|
|
ciclos.append(ciclo_list) |
|
|
|
|
|
|
|
|
todos_set = [] |
|
|
""" |
|
|
todos_pruned = [] |
|
|
Remove ciclos repetidos (ou semanticamente equivalentes). |
|
|
for t in todos: |
|
|
Exemplo: A -> B -> A e B -> A -> B |
|
|
if set(t) not in todos_set: |
|
|
""" |
|
|
todos_set.append(set(t)) |
|
|
ciclos_set = [] |
|
|
todos_pruned.append(t) |
|
|
ciclos_unique = [] |
|
|
|
|
|
for t in ciclos: |
|
|
ciclicos = todos_pruned |
|
|
if set(t) not in ciclos_set: |
|
|
|
|
|
ciclos_set.append(set(t)) |
|
|
return ciclicos |
|
|
ciclos_unique.append(t) |
|
|
|
|
|
|
|
|
|
|
|
return ciclos_unique |
|
|
|
|
|
|
|
|
def anexados_ciclicos(ofMateriaLegislativa): |
|
|
def anexados_ciclicos(ofMateriaLegislativa): |
|
|
ciclicos = [] |
|
|
ciclicos = [] |
|
|
|