diff --git a/scripts/deduplica_comissao.py b/scripts/deduplica_comissao.py index 0c10acede..29e1313b6 100644 --- a/scripts/deduplica_comissao.py +++ b/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 difflib import SequenceMatcher -models_dependentes = [Composicao, DespachoInicial, Relatoria, UnidadeTramitacao] +models_dependentes = [Composicao, DespachoInicial, Relatoria, UnidadeTramitacao, Reuniao] def similar(a, b): return SequenceMatcher(None, a, b).ratio() @@ -24,14 +24,23 @@ def detecta_duplicados(): lst_duplicados.append(c_1_lst) 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): principal = duplicados[-1] - for c in duplicados[:-1]: - for m in models_dependentes: - for obj in m.objects.filter(comissao=c): - obj.comissao = principal - obj.save() - c.delete() + for secundaria in duplicados[:-1]: + muda_models_dependentes(principal,secundaria) + muda_autor(principal, secundaria) + secundaria.delete() def main():