Skip to content

Commit

Permalink
Merge pull request #18 from larc-logs-transparentes/primeiroturno
Browse files Browse the repository at this point in the history
Primeiroturno
  • Loading branch information
Ga4breu committed May 12, 2023
2 parents ae3e3ab + fa23771 commit 1c66506
Show file tree
Hide file tree
Showing 16 changed files with 439 additions and 109 deletions.
1 change: 1 addition & 0 deletions bu_backend/src/models/bu.model.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const mongoose = require("mongoose");

const candidato_identificavel = new mongoose.Schema({ //subSchema para os candidatos
cargo: {type: String,},
partido: {type: Number,},
codigo: {type: Number,},
votos: {type: Number,},
Expand Down
3 changes: 2 additions & 1 deletion bu_frontend/src/api/merkletree_InfoBUs.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ export function getSumOfVotes_infoBUs(infoBUs){
const candidatos = infoBUs[i].votos_validos;
for (let j = 0; j < candidatos.length; j++) {
const element = candidatos[j];
let aux = ret.findIndex(candidato => candidato.codigo === element.codigo)
console.log(infoBUs)
let aux = ret.findIndex(candidato => candidato.codigo === element.codigo && candidato.cargo === element.cargo)

if(aux !== -1) //se encontrado candidato no array
ret[aux].votos += element.votos //soma os votos
Expand Down
73 changes: 47 additions & 26 deletions bu_frontend/src/views/elements/MostrarBU.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import {
Col,
Card,
CardHeader,
CardBody,
CardBody, Button,
CardText,
Label,

} from 'reactstrap';
//import DeleteIcon from '@mui/icons-material/Delete';
//import IconButton from '@mui/material/IconButton';
//import Tooltip from '@mui/material/Tooltip';

import { Link } from 'react-router-dom';

import { verify } from '../../api/merkletree.api'
import cadVerde from '../../assets/images/cad-verde.png';
import cadVermelho from '../../assets/images/cad-vermelho.png';
Expand All @@ -32,6 +32,7 @@ class MostrarBU extends Component {
root: [],
fullproof: [],
mostrarProva: false,
id:[]
}

this.mostraProva = this.mostraProva.bind(this);
Expand All @@ -42,48 +43,55 @@ class MostrarBU extends Component {
const { id } = this.props.match.params;
// console.log("id=" + id)
this.axios.get(`${this.bu_api_url}/bu/${id}`)
.then(response => this.setState({ bu: response.data, votos: response.data.votos }))

.then(response => this.setState({ bu: response.data, votos: response.data.votos,id:response.data.id }))
var retVerify = verify(id)
retVerify.then( value => {
this.setState({ prova: value })
this.setState({ root: this.state.prova.root })
this.setState({ fullproof: this.state.prova.fullproof })
})

}

mostraProva() {
this.setState({mostrarProva: !this.state.mostrarProva})
// (this.state.mostrarProva)
}
handleConsultar(e) {
e.preventDefault()
var url = "/elements/mostrarbuprova/" + this.state.id
console.log(url)
window.location.href = url
}

render() {
var bu = this.state.bu
var bu=this.state.bu
var prova = this.state.prova
// console.log(this.state.prova)
// console.log("fullProof")
// console.log(prova.fullproof)
// console.log("root")
// console.log(prova.root)


console.log(JSON.stringify(this.state.prova))
console.log(this.state.votos)

var mostrar = this.state.mostrarProva
// var raizArr = (this.state.root===undefined)? [] : Array.from(this.state.root)
// var fullproofArr = (this.state.fullproof===undefined)? [] : Array.from(this.state.fullproof)

var votosArr = (this.state.votos===undefined)? [] : Array.from(this.state.votos)



// var votos = Array.from(bu.votos)
// console.log(bu.votos)

const groupByCargo = votosArr.reduce((acc, curr) => {
if (!acc[curr.cargo]) {
acc[curr.cargo] = [];
}
acc[curr.cargo].push(curr);
return acc;
}, {});
return (
<Col>
<Col md={5}>
<Col md={6}>
<Card>
<CardHeader>Consultar Boletins de Urna - Turno<button className="btn float-right" onClick={() => this.mostraProva()}><img src={(prova.isTrue===true)? cadVerde : cadVermelho} alt="estado" /></button></CardHeader>
<CardHeader>Consultar Boletins de Urna - Turno<button className="btn float-right" onClick={() => this.handleConsultar.bind(this)}>
<Link to={`/elements/mostrarbuprova/${this.state.id}` } target='_blank'>
<img src={(prova.isTrue===true)? cadVerde : cadVermelho} alt="estado"/>
</Link>
</button>
</CardHeader>
<CardBody>
<Label>Detalhes</Label>
<CardBody>
Expand All @@ -108,10 +116,23 @@ class MostrarBU extends Component {
</CardBody>
<CardBody>
<Label>Votos</Label>
<CardText><ul>
{votosArr.map(item => {
return <li>{"Partido: " + item.partido + " ; Código: " + item.codigo + " ; Votos: " + item.votos}</li>
})}</ul>
<CardText>
<div style={{ display: "flex" }}>
{Object.entries(groupByCargo).map(([cargo, items]) => (
<div style={{ columnCount: 1, marginRight: "30px" }}>
<div style={{ fontWeight: "bold", fontSize: "1.2rem" }}>
{cargo}
</div>
{items.map((item) => (
<div>
<div>Partido: {item.partido}</div>
<div>Código: {item.codigo}</div>
<div>Votos: {item.votos}</div>
</div>
))}
</div>
))}
</div>
</CardText>
</CardBody>
</CardBody>
Expand Down
91 changes: 91 additions & 0 deletions bu_frontend/src/views/elements/MostrarBUProva.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import React, { Component } from 'react';
import {
Row,
Col,
Card,
CardHeader,
CardBody,
CardText,
Label,

} from 'reactstrap';
import { verify } from '../../api/merkletree.api'
import cadVerde from '../../assets/images/cad-verde.png';
import cadVermelho from '../../assets/images/cad-vermelho.png';
import ReactJson from 'react-json-view'

class MostrarBUProva extends Component {
axios = require('axios')
bu_api_url = require('../../config.json').bu_api_url
// bu_api_url = "http://172.20.11.11:8080"



constructor(props) {
super(props)
this.state = {bu: [],
prova: [],
votos: [],
root: [],
fullproof: [],
mostrarProva: false,
}

this.mostraProva = this.mostraProva.bind(this);

}

componentDidMount() {
const { id } = this.props.match.params;
this.axios.get(`${this.bu_api_url}/bu/${id}`)
.then(response => this.setState({ bu: response.data, votos: response.data.votos }))
var retVerify = verify(id)
retVerify.then( value => {
this.setState({ prova: value })
this.setState({ root: this.state.prova.root })
this.setState({ fullproof: this.state.prova.fullproof })
})

}

mostraProva() {
this.setState({mostrarProva: !this.state.mostrarProva})
}

render() {
var bu = this.state.bu
var prova = this.state.prova


return (
<Col>
<Col style={{width:"40vw"}}>
{prova.isTrue === true && (<Col md={4}>
<Card style={{width:"60vw"}}>
<CardHeader >Este BU foi devidamente verificado nos sistemas da Justiça Federal</CardHeader>
<CardBody style={{overflowX:"scroll"}}>
<CardBody>
<Label>Prova</Label>
<ReactJson collapsed displayDataTypes={false} src={this.state.prova} />
</CardBody>
</CardBody>
</Card>
</Col>)}
{prova.isTrue === false && (<Col md={4}>
<Card>
<CardHeader>ATENÇÃO: Este BU não pode ser verificado ou foi ALTERADO</CardHeader>
<CardBody style={{overflowX:"scroll"}}>
<CardBody>
<Label>Prova</Label>
<ReactJson collapsed displayDataTypes={false} src={this.state.prova} />
</CardBody>
</CardBody>
</Card>
</Col>)}
</Col>
</Col>
);
}
}

export default MostrarBUProva;
4 changes: 3 additions & 1 deletion bu_frontend/src/views/elements/consultar_bu.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,11 @@ class Consultar_BU extends Component {
var form = this.state.formulario
var len = lista.length
var i=0
console.log(form)
console.log(lista)
while (i<len) {
if ( form.turno === lista[i].turno && form.uf === lista[i].UF
&& form.zona === lista[i].zona && form.secao === lista[i].secao) {
&& parseInt(form.zona) === lista[i].zona && parseInt(form.secao) === lista[i].secao) {
break
}
i++
Expand Down
21 changes: 21 additions & 0 deletions bu_frontend/src/views/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import Dashboard from './pages/Dashboard';
import MostrarBU from './elements/MostrarBU';
import MostrarBUProva from './elements/MostrarBUProva';
import Retotalizar from './pages/Monitorar/Recontabilizar/Retotalizar.js';
import Raizassinada from './pages/Monitorar/Raiz/RaizAssinada.js';
import Mapa from './pages/Monitorar/Mapa/Mapa.js';
import MapaProva from './pages/Monitorar/Mapa/MapaProva.js';
import Root from './elements/Root';
import VerificacaoCompleta from './pages/Monitorar/VerificacaoCompleta/VerificacaoCompleta.js';
import Consultar_BU from './elements/consultar_bu';
Expand Down Expand Up @@ -39,11 +41,25 @@ const pageList = [
// text: 'NEW',
//},
},
{
name: 'Mapa Prova',
path: '/mapa/provaparcial/:id_inicial/:id_final',
component: MapaProva,

//badge: {
// text: 'NEW',
//},
},
{
name: 'Verificação completa de resultado da cidade',
path: '/mapa/verificacaoCompleta/:id_inicial/:id_final',
component: VerificacaoCompleta
},
{
name:'Verificação completa Prova',
path:'/elements/verificacaoCompletaprova/:id_inicial/:id_final',
component: MostrarBUProva,
},
{
name: 'Ver mais', //Raiz assinada
path: '/tree/root',
Expand All @@ -63,6 +79,11 @@ const pageList = [
path:'/elements/mostrarbu/:id',
component: MostrarBU,
},
{
name:'Boletim de Urna - Resultado da Consulta',
path:'/elements/mostrarbuprova/:id',
component: MostrarBUProva,
},
];

export default pageList;
27 changes: 10 additions & 17 deletions bu_frontend/src/views/pages/Monitorar/Mapa/Mapa.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,18 @@ async componentDidUpdate(prevProps, prevState) {
var url = `/mapa/verificacaoCompleta/${id_inicial}/${id_final}`
window.location.href = url
}
redirecionaParaProvaParcial(e) {
e.preventDefault()
const id_inicial = this.state.id_inicial
const id_final = this.state.id_final
var url = `/mapa/provaparcial/${id_inicial}/${id_final}`
window.location.href = url
}

render() {
return (
<Row>
<Col md={6}>
<Col md={12}>
<Card>
<CardHeader>Selecionar Cidade</CardHeader>
<CardBody>
Expand All @@ -64,28 +71,14 @@ async componentDidUpdate(prevProps, prevState) {
/>
</CardBody>
</Card>
<Card>
<ResultadoEleicao
<Card style={{padding:"3vw"}} >
<ResultadoEleicao style={{overflowX:"scroll"}}
votos_cidade={this.state.votos_cidade}
id_inicial={this.state.id_inicial}
id_final={this.state.id_final}
/>
</Card>
</Col>

<Col md={6}>
<Card>
<CardHeader>Verificação resumida</CardHeader>
<CardBody>
<ProvaParcial
mostrarProvaParcial={this.state.mostrarProvaParcial}
resultadoProvaParcial={this.state.resultadoProvaParcial}
dadosProvaParcial={this.state.dadosProvaParcial}
/>
</CardBody>
</Card>

</Col>
</Row>

);
Expand Down

0 comments on commit 1c66506

Please sign in to comment.