|
|
|
@ -8,100 +8,115 @@ from sapl.sessao.models import IntegranteMesa, JustificativaAusencia, Orador, Or |
|
|
|
RetiradaPauta, SessaoPlenariaPresenca, VotoParlamentar |
|
|
|
|
|
|
|
|
|
|
|
def get_multiple(top_models): |
|
|
|
pks_objs = {} |
|
|
|
def get_multiple(): |
|
|
|
models = [Autor, Parlamentar] |
|
|
|
main_models = {} |
|
|
|
|
|
|
|
for model in top_models: |
|
|
|
model_name = re.findall(r'\w+', str(model))[-1] |
|
|
|
pks_objs.update({model_name: []}) |
|
|
|
for model in models: |
|
|
|
model_str = re.findall(r'\w+', str(model))[-1] |
|
|
|
main_models[model_str] = { |
|
|
|
'model': model, |
|
|
|
'kwargs': {}, |
|
|
|
'pks': [] |
|
|
|
} |
|
|
|
|
|
|
|
objs = model.objects.all() |
|
|
|
for model_name, model_dict in main_models.items(): |
|
|
|
objs = model_dict['model'].objects.all() |
|
|
|
|
|
|
|
for obj in objs: |
|
|
|
|
|
|
|
if model_name == 'Autor': |
|
|
|
kwargs = {'nome': obj.nome} |
|
|
|
model_dict['kwargs']['nome'] = obj.nome |
|
|
|
elif model_name == 'Parlamentar': |
|
|
|
kwargs = {'nome_parlamentar': obj.nome_parlamentar} |
|
|
|
else: |
|
|
|
print('Model não reconhecida.') |
|
|
|
return |
|
|
|
model_dict['kwargs']['nome_parlamentar'] = obj.nome_parlamentar |
|
|
|
|
|
|
|
pesquisa_obj = model.objects.filter(**kwargs) |
|
|
|
pesquisa_obj = model_dict['model'].objects.filter(**model_dict['kwargs']) |
|
|
|
if pesquisa_obj.count() > 1: |
|
|
|
multiplos_objs = [p.pk for p in pesquisa_obj] |
|
|
|
multiplos_objs = [o.pk for o in pesquisa_obj] |
|
|
|
multiplos_objs.sort() |
|
|
|
|
|
|
|
if multiplos_objs not in pks_objs.get(model_name): |
|
|
|
pks_objs.get(model_name).append(multiplos_objs) |
|
|
|
if multiplos_objs not in main_models[model_name]['pks']: |
|
|
|
main_models[model_name]['pks'].append(multiplos_objs) |
|
|
|
|
|
|
|
return pks_objs |
|
|
|
return main_models |
|
|
|
|
|
|
|
|
|
|
|
def transfer_author(pks_list): |
|
|
|
for pks in pks_list: |
|
|
|
for pk in pks[1:]: |
|
|
|
def transfer_purge_author(author_lists): |
|
|
|
for author_list in author_lists: |
|
|
|
for pk in author_list[1:]: |
|
|
|
autor_clonado = Autor.objects.get(pk=pk) |
|
|
|
|
|
|
|
for autoria in autor_clonado.autoria_set.all(): |
|
|
|
autoria.autor_id = pks[0] |
|
|
|
autoria.autor_id = author_list[0] |
|
|
|
autoria.save() |
|
|
|
|
|
|
|
for proposicao in autor_clonado.proposicao_set.all(): |
|
|
|
proposicao.autor_id = pks[0] |
|
|
|
proposicao.autor_id = author_list[0] |
|
|
|
proposicao.save() |
|
|
|
|
|
|
|
for autorianorma in autor_clonado.autorianorma_set.all(): |
|
|
|
autorianorma.autor_id = pks[0] |
|
|
|
autorianorma.autor_id = author_list[0] |
|
|
|
autorianorma.save() |
|
|
|
|
|
|
|
for documentoadministrativo in autor_clonado.documentoadministrativo_set.all(): |
|
|
|
documentoadministrativo.autor_id = pks[0] |
|
|
|
documentoadministrativo.autor_id = author_list[0] |
|
|
|
documentoadministrativo.save() |
|
|
|
|
|
|
|
for protocolo in autor_clonado.protocolo_set.all(): |
|
|
|
protocolo.autor_id = pks[0] |
|
|
|
protocolo.autor_id = author_list[0] |
|
|
|
protocolo.save() |
|
|
|
|
|
|
|
|
|
|
|
def transfer_congressman(models, pks_list): |
|
|
|
for pks in pks_list: |
|
|
|
for pk in pks[1:]: |
|
|
|
for model in models: |
|
|
|
for obj in model.objects.filter(parlamentar_id=pk): |
|
|
|
obj.parlamentar_id = pks[0] |
|
|
|
obj.save() |
|
|
|
|
|
|
|
|
|
|
|
def purge(top_models, pks_dict): |
|
|
|
for model in top_models: |
|
|
|
model_name = re.findall(r'\w+', str(model))[-1] |
|
|
|
|
|
|
|
lista = pks_dict.get(model_name) |
|
|
|
if lista: |
|
|
|
for pks in lista: |
|
|
|
for pk in pks[1:]: |
|
|
|
for obj in model.objects.filter(pk=pk): |
|
|
|
obj.delete() |
|
|
|
autor_clonado.delete() |
|
|
|
|
|
|
|
|
|
|
|
# def transfer_congressman(congressman_lists): |
|
|
|
# models = [ComposicaoMesa, Dependente, Filiacao, IntegranteMesa, JustificativaAusencia, Mandato, Orador, |
|
|
|
# OradorExpediente, Participacao, PresencaOrdemDia, Relatoria, RetiradaPauta, SessaoPlenariaPresenca, |
|
|
|
# UnidadeTramitacao, VotoParlamentar] |
|
|
|
# models_dict = {} |
|
|
|
# |
|
|
|
# for model in models: |
|
|
|
# model_str = re.findall('\w+', str(model))[-1] |
|
|
|
# models_dict[model_str] = { |
|
|
|
# 'model': model, |
|
|
|
# 'objs': [] |
|
|
|
# } |
|
|
|
# |
|
|
|
# for congressman_list in congressman_lists: |
|
|
|
# |
|
|
|
# for pk in congressman_list: |
|
|
|
# for pk in pks[1:]: |
|
|
|
# |
|
|
|
# for model in models: |
|
|
|
# for obj in model.objects.filter(parlamentar_id=pk): |
|
|
|
# obj.parlamentar_id = pks[0] |
|
|
|
# obj.save() |
|
|
|
|
|
|
|
|
|
|
|
# def purge(pks_dict): |
|
|
|
# for model in top_models: |
|
|
|
# model_name = re.findall(r'\w+', str(model))[-1] |
|
|
|
# |
|
|
|
# lista = pks_dict.get(model_name) |
|
|
|
# if lista: |
|
|
|
# for pks in lista: |
|
|
|
# for pk in pks[1:]: |
|
|
|
# for obj in model.objects.filter(pk=pk): |
|
|
|
# obj.delete() |
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
|
top_models = [Autor, Parlamentar] |
|
|
|
models = [ComposicaoMesa, Dependente, Filiacao, IntegranteMesa, JustificativaAusencia, Mandato, Orador, |
|
|
|
OradorExpediente, Participacao, PresencaOrdemDia, Relatoria, RetiradaPauta, SessaoPlenariaPresenca, |
|
|
|
UnidadeTramitacao, VotoParlamentar] |
|
|
|
|
|
|
|
pks_dict = get_multiple(top_models) |
|
|
|
main_models = get_multiple() |
|
|
|
|
|
|
|
author_list = pks_dict.get('Autor') |
|
|
|
if author_list: |
|
|
|
transfer_author(author_list) |
|
|
|
author_lists = main_models['Autor']['pks'] |
|
|
|
if author_lists: |
|
|
|
transfer_purge_author(author_lists) |
|
|
|
|
|
|
|
congressman_list = pks_dict.get('Parlamentar') |
|
|
|
if congressman_list: |
|
|
|
transfer_congressman(models, congressman_list) |
|
|
|
import ipdb; ipdb.set_trace() |
|
|
|
# congressman_lists = main_models['Parlamentar']['pks'] |
|
|
|
# if congressman_lists: |
|
|
|
# transfer_congressman(congressman_lists) |
|
|
|
|
|
|
|
purge(top_models, pks_dict) |
|
|
|
# purge(main_models) |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
|