|
@ -91,6 +91,7 @@ class Job(MinutelyJob): |
|
|
send_mail( |
|
|
send_mail( |
|
|
subject="Resultados da importação de dados de parlamentares", |
|
|
subject="Resultados da importação de dados de parlamentares", |
|
|
message=txt_message, |
|
|
message=txt_message, |
|
|
|
|
|
from_email=settings.DEFAULT_FROM_EMAIL, |
|
|
recipient_list=recipient_list, |
|
|
recipient_list=recipient_list, |
|
|
html_message=html_message, |
|
|
html_message=html_message, |
|
|
) |
|
|
) |
|
@ -127,9 +128,9 @@ class Job(MinutelyJob): |
|
|
tipo_casa = ["CM"] |
|
|
tipo_casa = ["CM"] |
|
|
cargos = ["13"] |
|
|
cargos = ["13"] |
|
|
|
|
|
|
|
|
cod_situacao = ["1", "2", "3"] # Eleito, por qp, por média |
|
|
ds_situacao = ["Eleito"] |
|
|
if json_data["suplentes"]: |
|
|
if json_data["suplentes"]: |
|
|
cod_situacao.append("5") # suplente |
|
|
ds_situacao.append("Suplente") |
|
|
|
|
|
|
|
|
result = {"infos": [], "erros": []} |
|
|
result = {"infos": [], "erros": []} |
|
|
|
|
|
|
|
@ -142,16 +143,14 @@ class Job(MinutelyJob): |
|
|
) |
|
|
) |
|
|
reader = csv.DictReader(f, delimiter=";") |
|
|
reader = csv.DictReader(f, delimiter=";") |
|
|
fields = { |
|
|
fields = { |
|
|
"ANO_ELEICAO", |
|
|
"nm_municipio", |
|
|
"SG_UE", |
|
|
"cd_cargo", |
|
|
"NM_UE", |
|
|
"nm_candidato", |
|
|
"CD_CARGO", |
|
|
"nm_urna_candidato", |
|
|
"SQ_CANDIDATO", |
|
|
"sg_partido", |
|
|
"NM_CANDIDATO", |
|
|
"ds_sit_totalizacao", |
|
|
"NM_URNA_CANDIDATO", |
|
|
"sg_ue", |
|
|
"NR_PARTIDO", |
|
|
"sq_candidato", |
|
|
"NM_PARTIDO", |
|
|
|
|
|
"CD_SIT_TOT_TURNO", |
|
|
|
|
|
} |
|
|
} |
|
|
try: |
|
|
try: |
|
|
fieldnames = reader.fieldnames |
|
|
fieldnames = reader.fieldnames |
|
@ -181,16 +180,20 @@ class Job(MinutelyJob): |
|
|
for row in reader: |
|
|
for row in reader: |
|
|
total += 1 |
|
|
total += 1 |
|
|
if not ( |
|
|
if not ( |
|
|
row["CD_CARGO"] in cargos |
|
|
row["cd_cargo"] in cargos |
|
|
and row["CD_SIT_TOT_TURNO"] in cod_situacao |
|
|
and row["ds_sit_totalizacao"] in ds_situacao |
|
|
): |
|
|
): |
|
|
skiped += 1 |
|
|
skiped += 1 |
|
|
continue |
|
|
continue |
|
|
cod_tse = row["SG_UE"] |
|
|
cod_tse = row["sg_ue"] |
|
|
legenda = int(row["NR_PARTIDO"]) |
|
|
sigla_partido = row["sg_partido"] |
|
|
# Hack para 2022 - fusão de partidos # |
|
|
# Hack para 2022 - fusão de partidos # |
|
|
if legenda in [17, 25]: |
|
|
if sigla_partido in ["PSL", "DEM"]: |
|
|
legenda = 44 |
|
|
sigla_partido = "UNIÃO" |
|
|
|
|
|
if sigla_partido == "PTC": |
|
|
|
|
|
sigla_partido = "AGIR" |
|
|
|
|
|
if sigla_partido == "PC do B": |
|
|
|
|
|
sigla_partido = "PCdoB" |
|
|
try: |
|
|
try: |
|
|
if json_data["tipo_candidatos"] == "V": |
|
|
if json_data["tipo_candidatos"] == "V": |
|
|
casa = Orgao.objects.get( |
|
|
casa = Orgao.objects.get( |
|
@ -209,31 +212,30 @@ class Job(MinutelyJob): |
|
|
result["erros"].append( |
|
|
result["erros"].append( |
|
|
"Não foi encontrada a Casa Legislativa com " |
|
|
"Não foi encontrada a Casa Legislativa com " |
|
|
f"o código TSE {cod_tse}. O nome do " |
|
|
f"o código TSE {cod_tse}. O nome do " |
|
|
f"ente da federação é {row['NM_UE']}. " |
|
|
f"ente da federação é {row['nm_municipio']}. " |
|
|
"Corrija o cadastro do SIGI e tente novamente." |
|
|
"Corrija o cadastro do SIGI e tente novamente." |
|
|
) |
|
|
) |
|
|
try: |
|
|
try: |
|
|
partido = Partido.objects.get(legenda=legenda) |
|
|
partido = Partido.objects.get(sigla=sigla_partido) |
|
|
except: |
|
|
except: |
|
|
# De agora em diante apenas procura erros, sem criar |
|
|
# De agora em diante apenas procura erros, sem criar |
|
|
# novos parlamentares, para agilizar o processo |
|
|
# novos parlamentares, para agilizar o processo |
|
|
apenas_verificar = True |
|
|
apenas_verificar = True |
|
|
result["erros"].append( |
|
|
result["erros"].append( |
|
|
f"O partido {row['NM_PARTIDO']} de legenda " |
|
|
f"O partido de sigla {sigla_partido} não foi encontrado" |
|
|
f"{legenda} não foi encontrado no SIGI." |
|
|
" no SIGI." |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
if not apenas_verificar: |
|
|
if not apenas_verificar: |
|
|
Parlamentar.objects.update_or_create( |
|
|
Parlamentar.objects.update_or_create( |
|
|
flag_importa="N", |
|
|
flag_importa="N", |
|
|
sequencial_tse=row["SQ_CANDIDATO"], |
|
|
sequencial_tse=row["sq_candidato"], |
|
|
ano_eleicao=row["ANO_ELEICAO"], |
|
|
nome_completo=row["nm_candidato"], |
|
|
nome_completo=row["NM_CANDIDATO"], |
|
|
nome_parlamentar=row["nm_urna_candidato"], |
|
|
nome_parlamentar=row["NM_URNA_CANDIDATO"], |
|
|
|
|
|
partido=partido, |
|
|
partido=partido, |
|
|
casa_legislativa=casa, |
|
|
casa_legislativa=casa, |
|
|
status_mandato="S" |
|
|
status_mandato="S" |
|
|
if row["CD_SIT_TOT_TURNO"] == "5" |
|
|
if row["ds_sit_totalizacao"] == "Suplente" |
|
|
else "E", |
|
|
else "E", |
|
|
) |
|
|
) |
|
|
imported += 1 |
|
|
imported += 1 |
|
|