Browse Source

Unifica autores considerando migrados anteriormente

migracao
Marcio Mazza 6 years ago
parent
commit
a943d4522a
  1. 24
      sapl/legacy/migracao_dados.py

24
sapl/legacy/migracao_dados.py

@ -452,21 +452,31 @@ def get_autorias_sem_repeticoes(autoria, reapontamento):
def unifica_autores_repetidos_no_legado(campo_agregador): def unifica_autores_repetidos_no_legado(campo_agregador):
"Reúne autores repetidos em um único, antes da migracão" "Reúne autores repetidos em um único, antes da migracão"
# usamos uma tupla neutra se o conjunto é vazio
# p q a query seja sintaticamente correta
ids_ja_migrados = _formatar_lista_para_sql(
get_all_ids_from_model(Autor) or [-1000]
)
# enumeramos a repeticoes segundo o campo relevante # enumeramos a repeticoes segundo o campo relevante
# (p. ex. cod_parlamentar ou cod_comissao) # (p. ex. cod_parlamentar ou cod_comissao)
# a ordenação prioriza, as entradas: # a ordenação prioriza, as entradas:
# - ja migradas previamente
# - não excluidas, # - não excluidas,
# - em seguida as que têm col_username, # - em seguida as que têm col_username,
# - em seguida as que têm des_cargo # - em seguida as que têm des_cargo
autores = exec_legado( autores = exec_legado(
""" f"""
select {cod_parlamentar}, cod_autor from autor select {campo_agregador}, cod_autor,
where {cod_parlamentar} is not null (cod_autor in {ids_ja_migrados}) ja_migrado
order by {cod_parlamentar}, from autor
ind_excluido, col_username desc, des_cargo desc""".format( where {campo_agregador} is not null
cod_parlamentar=campo_agregador order by {campo_agregador},
) ja_migrado desc,
ind_excluido, col_username desc, des_cargo desc"""
) )
# descartamos o último campo, usado apenas p ordenar corretamente
autores = [a[:-1] for a in autores]
reapontamento, apagar = get_reapontamento_de_autores_repetidos(autores) reapontamento, apagar = get_reapontamento_de_autores_repetidos(autores)

Loading…
Cancel
Save