Browse Source

Redirecionando autores

deduplica_comissao
ulyssesBML 5 years ago
parent
commit
7967aa764a
  1. 25
      scripts/deduplica_comissao.py

25
scripts/deduplica_comissao.py

@ -1,10 +1,10 @@
from sapl.comissoes.models import Comissao, Composicao from sapl.comissoes.models import Comissao, Composicao, Reuniao
from sapl.materia.models import DespachoInicial, Relatoria, UnidadeTramitacao from sapl.materia.models import DespachoInicial, Relatoria, UnidadeTramitacao
from difflib import SequenceMatcher from difflib import SequenceMatcher
models_dependentes = [Composicao, DespachoInicial, Relatoria, UnidadeTramitacao] models_dependentes = [Composicao, DespachoInicial, Relatoria, UnidadeTramitacao, Reuniao]
def similar(a, b): def similar(a, b):
return SequenceMatcher(None, a, b).ratio() return SequenceMatcher(None, a, b).ratio()
@ -24,14 +24,23 @@ def detecta_duplicados():
lst_duplicados.append(c_1_lst) lst_duplicados.append(c_1_lst)
return lst_duplicados return lst_duplicados
def muda_autor(principal, secundaria):
for autor in secundaria.autor.all():
autor.delete()
def muda_models_dependentes(principal,secundaria):
for model in models_dependentes:
for obj in model.objects.filter(comissao=secundaria):
obj.comissao = principal
obj.save()
def junta_dulpicados(duplicados): def junta_dulpicados(duplicados):
principal = duplicados[-1] principal = duplicados[-1]
for c in duplicados[:-1]: for secundaria in duplicados[:-1]:
for m in models_dependentes: muda_models_dependentes(principal,secundaria)
for obj in m.objects.filter(comissao=c): muda_autor(principal, secundaria)
obj.comissao = principal secundaria.delete()
obj.save()
c.delete()
def main(): def main():

Loading…
Cancel
Save