def cria_segundo_turno(id_eleicao, segundo_turno): turno = Turno() turno.id_eleicao = id_eleicao turno.turno = 2 cria_turno_cargo(turno, segundo_turno) db.create(turno) db.commit()
def apurar_votos(tcr, id_apuracao): print( f'Iniciada apuração: {tcr.turnoCargo.cargo.nome} ===========================================================' ) votos = db.query(VotoEncriptado)\ .filter(VotoEncriptado.id_turno_cargo_regiao == tcr.id_turno_cargo_regiao)\ .all() for voto_enc in votos: voto = mf.cria_voto(voto_enc, id_apuracao) db.create(voto) db.commit() sql = '''UPDATE candidato c SET qt_votos = (SELECT count(*) FROM voto_apurado va WHERE id_turno_cargo_regiao = :idTurnoCargoRegiao AND id_apuracao = :idApuracao AND va.id_candidato = c.id_candidato) WHERE c.id_turno_cargo_regiao = :idTurnoCargoRegiao''' db.native(sql, { 'idTurnoCargoRegiao': tcr.id_turno_cargo_regiao, 'idApuracao': id_apuracao }) db.commit() print( f'Finalizada apuração: {tcr.turnoCargo.cargo.nome} =========================================================' )
def cadastrar_coligacao(dados): coligacao = mf.cria_coligacao(dados) validar_coligacao(coligacao) if coligacao.id_coligacao is None: db.create(coligacao) db.commit() return str(coligacao.id_coligacao)
def salvar(dados): eleicao = mf.cria_eleicao(dados) validar_eleicao(eleicao) if eleicao.id_eleicao is None: db.create(eleicao) db.commit() return str(eleicao.id_eleicao)
def insere_apuracao(turno): apuracao = Apuracao() apuracao.id_turno = turno.id_turno apuracao.inicio_apuracao = str(datetime.now()) db.create(apuracao) db.commit() return apuracao.id_apuracao
def votar(user, id_eleicao, votos): valida_credenciais(votos['usuario'], votos['senha'], user.eleitor.id_eleitor, votos['pin']) id_eleitor = c.enc(user.eleitor.id_eleitor) id_turno = valida_usuario_votou_e_retorna_turno_aberto(id_eleicao, user) id_cidade = user.eleitor.id_cidade for voto in votos['votos']: voto_enc = mf.cria_voto_encriptado(voto, id_cidade, id_eleitor) db.create(voto_enc) criar_hash_voto(user, votos['votos'], id_turno) db.commit()
def gerar_pin(user): if db.busca_pin_valido_por_id_eleitor(user.eleitor.id_eleitor) is None: pin = PinEleitor() pin.id_eleitor = user.eleitor.id_eleitor user_pin = senha_util.generate_pin() pin.pin = senha_util.encrypt_md5(user_pin) pin.criacao = datetime.now() db.create(pin) db.commit() msg = f'Seu código para votar é: {user_pin} \nO código é válido por apenas 5 minutos!' email_util.enviar_email(user.email, msg, 'Código para votação')
def cria_pessoa(i): pessoa = Pessoa() pessoa.nome = f'Teste {i}' pessoa.cpf = numero_aleatorio(11) pessoa.email = f'teste{i}[email protected]' eleitor = Eleitor() eleitor.id_cidade = 1 eleitor.zona_eleitoral = numero_aleatorio(3) eleitor.secao = numero_aleatorio(4) eleitor.numero_inscricao = numero_aleatorio(12) pessoa.eleitor = eleitor db.create(pessoa) print(f'Criando pessoa {pessoa.nome}')
def salvar_pessoa(dados): pessoa, senha = mf.cria_pessoa(dados) validar_pessoa(pessoa) if pessoa.id_pessoa is None: db.create(pessoa) db.commit() if senha is not None: corpo_email = f'Parabéns! Agora você pode votar pela internet com as credenciais abaixo:.\n'\ f'Usuário: {pessoa.eleitor.numero_inscricao}\n'\ f'Senha: {senha}\n\n' \ f'Sugerimos que você troque a senha ao entrar.' email_util.enviar_email(pessoa.email, corpo_email, 'Cadastro no Sistema de Votação Online') return str(pessoa.id_pessoa)
def criar_hash_voto(user, votos, id_turno): hash_voto = '' for voto in votos: hash_voto += voto['idCandidato'] hash_voto = senha_util.encrypt_md5(hash_voto) agora = datetime.now() agora_formatado = agora.strftime('%H:%M:%S %d/%m/%Y') eleitor_turno = mf.cria_eleitor_turno(user.eleitor, id_turno, hash_voto, str(agora)) user.eleitor.eleitor_turnos.append(eleitor_turno) db.create(eleitor_turno) msg = f'Voto computado com sucesso às {agora_formatado}!\nA sua hash é: {hash_voto}' email_util.enviar_email(user.email, msg, 'Confirmação do voto')
def cria_candidatos(id_tcr, qt): for i in range(qt): print(f'Criando candidato {i}') candidato = Candidato() candidato.id_pessoa = randint(100, 5002) partido = db.find_partido(randint(1, 18)) candidato.numero = int(str(partido.numero_partido) + numero_aleatorio(2)) candidato.id_partido = partido.id_partido candidato.id_turno_cargo_regiao = id_tcr db.create(candidato) if i % 500 == 0: print(f'Commitando') db.commit() print(f'Commitado') print(f'Commitando') db.commit() print(f'Commitado')
def cadastrar(candidato_json): candidato = mf.cria_candidato(candidato_json) validar_candidato(candidato) verifica_pessoa_ja_candidatada(candidato.id_pessoa, int(candidato_json['idEleicao']), candidato_json['pessoa']['nome']) if candidato.id_candidato is None: db.create(candidato) if 'viceCandidato' in candidato_json: vice = mf.cria_candidato(candidato_json['viceCandidato']) vice.id_turno_cargo_regiao = candidato.id_turno_cargo_regiao candidato.vice = vice validar_candidato(vice) verifica_pessoa_ja_candidatada( vice.id_pessoa, int(candidato_json['idEleicao']), candidato_json['viceCandidato']['pessoa']['nome']) if vice.id_candidato is None: db.create(vice) db.commit()
def cadastrar_partido(dados): partido = mf.cria_partido(dados) validar_partido(partido) if partido.id_partido is None: db.create(partido) db.commit()