Browse Source

Ajusta job de importação de parlamentares para novo formato do TSE

pull/159/head
Sesostris Vieira 2 years ago
parent
commit
cad69e3d65
  1. 56
      sigi/apps/parlamentares/jobs/minutely/importa_parlamentar.py
  2. 4
      sigi/apps/parlamentares/templates/parlamentares/import.html

56
sigi/apps/parlamentares/jobs/minutely/importa_parlamentar.py

@ -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

4
sigi/apps/parlamentares/templates/parlamentares/import.html

@ -63,8 +63,8 @@
</li> </li>
{% endif %} {% endif %}
<li class="collection-item"> <li class="collection-item">
{% trans "Os arquivos de resultados das eleiçoes podem ser encontrados no" %} {% trans "Os arquivos de resultados das eleiçoes podem ser gerados no" %}
<a href="https://dadosabertos.tse.jus.br/" target="_blank">{% trans "Portal de dados abertos do TSE" %}</a> <a href="https://sig.tse.jus.br/ords/dwapr/seai/r/sig-eleicao/home" target="_blank">{% trans "Portal de dados abertos do TSE" %}</a>
</li> </li>
<li class="collection-item"> <li class="collection-item">
{% blocktrans %} {% blocktrans %}

Loading…
Cancel
Save