Skip to content

Commit 1c66506

Browse files
authored
Merge pull request #18 from larc-logs-transparentes/primeiroturno
Primeiroturno
2 parents ae3e3ab + fa23771 commit 1c66506

File tree

16 files changed

+439
-109
lines changed

16 files changed

+439
-109
lines changed

bu_backend/src/models/bu.model.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const mongoose = require("mongoose");
22

33
const candidato_identificavel = new mongoose.Schema({ //subSchema para os candidatos
4+
cargo: {type: String,},
45
partido: {type: Number,},
56
codigo: {type: Number,},
67
votos: {type: Number,},

bu_frontend/src/api/merkletree_InfoBUs.api.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ export function getSumOfVotes_infoBUs(infoBUs){
110110
const candidatos = infoBUs[i].votos_validos;
111111
for (let j = 0; j < candidatos.length; j++) {
112112
const element = candidatos[j];
113-
let aux = ret.findIndex(candidato => candidato.codigo === element.codigo)
113+
console.log(infoBUs)
114+
let aux = ret.findIndex(candidato => candidato.codigo === element.codigo && candidato.cargo === element.cargo)
114115

115116
if(aux !== -1) //se encontrado candidato no array
116117
ret[aux].votos += element.votos //soma os votos

bu_frontend/src/views/elements/MostrarBU.js

+47-26
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import {
44
Col,
55
Card,
66
CardHeader,
7-
CardBody,
7+
CardBody, Button,
88
CardText,
99
Label,
1010

1111
} from 'reactstrap';
12-
//import DeleteIcon from '@mui/icons-material/Delete';
13-
//import IconButton from '@mui/material/IconButton';
14-
//import Tooltip from '@mui/material/Tooltip';
12+
13+
import { Link } from 'react-router-dom';
14+
1515
import { verify } from '../../api/merkletree.api'
1616
import cadVerde from '../../assets/images/cad-verde.png';
1717
import cadVermelho from '../../assets/images/cad-vermelho.png';
@@ -32,6 +32,7 @@ class MostrarBU extends Component {
3232
root: [],
3333
fullproof: [],
3434
mostrarProva: false,
35+
id:[]
3536
}
3637

3738
this.mostraProva = this.mostraProva.bind(this);
@@ -42,48 +43,55 @@ class MostrarBU extends Component {
4243
const { id } = this.props.match.params;
4344
// console.log("id=" + id)
4445
this.axios.get(`${this.bu_api_url}/bu/${id}`)
45-
.then(response => this.setState({ bu: response.data, votos: response.data.votos }))
46-
46+
.then(response => this.setState({ bu: response.data, votos: response.data.votos,id:response.data.id }))
4747
var retVerify = verify(id)
4848
retVerify.then( value => {
4949
this.setState({ prova: value })
5050
this.setState({ root: this.state.prova.root })
5151
this.setState({ fullproof: this.state.prova.fullproof })
5252
})
53+
5354
}
5455

5556
mostraProva() {
5657
this.setState({mostrarProva: !this.state.mostrarProva})
5758
// (this.state.mostrarProva)
5859
}
60+
handleConsultar(e) {
61+
e.preventDefault()
62+
var url = "/elements/mostrarbuprova/" + this.state.id
63+
console.log(url)
64+
window.location.href = url
65+
}
5966

6067
render() {
61-
var bu = this.state.bu
68+
var bu=this.state.bu
6269
var prova = this.state.prova
63-
// console.log(this.state.prova)
64-
// console.log("fullProof")
65-
// console.log(prova.fullproof)
66-
// console.log("root")
67-
// console.log(prova.root)
6870

6971

70-
console.log(JSON.stringify(this.state.prova))
72+
console.log(this.state.votos)
73+
7174
var mostrar = this.state.mostrarProva
72-
// var raizArr = (this.state.root===undefined)? [] : Array.from(this.state.root)
73-
// var fullproofArr = (this.state.fullproof===undefined)? [] : Array.from(this.state.fullproof)
7475

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

77-
78-
79-
// var votos = Array.from(bu.votos)
80-
// console.log(bu.votos)
81-
78+
const groupByCargo = votosArr.reduce((acc, curr) => {
79+
if (!acc[curr.cargo]) {
80+
acc[curr.cargo] = [];
81+
}
82+
acc[curr.cargo].push(curr);
83+
return acc;
84+
}, {});
8285
return (
8386
<Col>
84-
<Col md={5}>
87+
<Col md={6}>
8588
<Card>
86-
<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>
89+
<CardHeader>Consultar Boletins de Urna - Turno<button className="btn float-right" onClick={() => this.handleConsultar.bind(this)}>
90+
<Link to={`/elements/mostrarbuprova/${this.state.id}` } target='_blank'>
91+
<img src={(prova.isTrue===true)? cadVerde : cadVermelho} alt="estado"/>
92+
</Link>
93+
</button>
94+
</CardHeader>
8795
<CardBody>
8896
<Label>Detalhes</Label>
8997
<CardBody>
@@ -108,10 +116,23 @@ class MostrarBU extends Component {
108116
</CardBody>
109117
<CardBody>
110118
<Label>Votos</Label>
111-
<CardText><ul>
112-
{votosArr.map(item => {
113-
return <li>{"Partido: " + item.partido + " ; Código: " + item.codigo + " ; Votos: " + item.votos}</li>
114-
})}</ul>
119+
<CardText>
120+
<div style={{ display: "flex" }}>
121+
{Object.entries(groupByCargo).map(([cargo, items]) => (
122+
<div style={{ columnCount: 1, marginRight: "30px" }}>
123+
<div style={{ fontWeight: "bold", fontSize: "1.2rem" }}>
124+
{cargo}
125+
</div>
126+
{items.map((item) => (
127+
<div>
128+
<div>Partido: {item.partido}</div>
129+
<div>Código: {item.codigo}</div>
130+
<div>Votos: {item.votos}</div>
131+
</div>
132+
))}
133+
</div>
134+
))}
135+
</div>
115136
</CardText>
116137
</CardBody>
117138
</CardBody>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
import React, { Component } from 'react';
2+
import {
3+
Row,
4+
Col,
5+
Card,
6+
CardHeader,
7+
CardBody,
8+
CardText,
9+
Label,
10+
11+
} from 'reactstrap';
12+
import { verify } from '../../api/merkletree.api'
13+
import cadVerde from '../../assets/images/cad-verde.png';
14+
import cadVermelho from '../../assets/images/cad-vermelho.png';
15+
import ReactJson from 'react-json-view'
16+
17+
class MostrarBUProva extends Component {
18+
axios = require('axios')
19+
bu_api_url = require('../../config.json').bu_api_url
20+
// bu_api_url = "http://172.20.11.11:8080"
21+
22+
23+
24+
constructor(props) {
25+
super(props)
26+
this.state = {bu: [],
27+
prova: [],
28+
votos: [],
29+
root: [],
30+
fullproof: [],
31+
mostrarProva: false,
32+
}
33+
34+
this.mostraProva = this.mostraProva.bind(this);
35+
36+
}
37+
38+
componentDidMount() {
39+
const { id } = this.props.match.params;
40+
this.axios.get(`${this.bu_api_url}/bu/${id}`)
41+
.then(response => this.setState({ bu: response.data, votos: response.data.votos }))
42+
var retVerify = verify(id)
43+
retVerify.then( value => {
44+
this.setState({ prova: value })
45+
this.setState({ root: this.state.prova.root })
46+
this.setState({ fullproof: this.state.prova.fullproof })
47+
})
48+
49+
}
50+
51+
mostraProva() {
52+
this.setState({mostrarProva: !this.state.mostrarProva})
53+
}
54+
55+
render() {
56+
var bu = this.state.bu
57+
var prova = this.state.prova
58+
59+
60+
return (
61+
<Col>
62+
<Col style={{width:"40vw"}}>
63+
{prova.isTrue === true && (<Col md={4}>
64+
<Card style={{width:"60vw"}}>
65+
<CardHeader >Este BU foi devidamente verificado nos sistemas da Justiça Federal</CardHeader>
66+
<CardBody style={{overflowX:"scroll"}}>
67+
<CardBody>
68+
<Label>Prova</Label>
69+
<ReactJson collapsed displayDataTypes={false} src={this.state.prova} />
70+
</CardBody>
71+
</CardBody>
72+
</Card>
73+
</Col>)}
74+
{prova.isTrue === false && (<Col md={4}>
75+
<Card>
76+
<CardHeader>ATENÇÃO: Este BU não pode ser verificado ou foi ALTERADO</CardHeader>
77+
<CardBody style={{overflowX:"scroll"}}>
78+
<CardBody>
79+
<Label>Prova</Label>
80+
<ReactJson collapsed displayDataTypes={false} src={this.state.prova} />
81+
</CardBody>
82+
</CardBody>
83+
</Card>
84+
</Col>)}
85+
</Col>
86+
</Col>
87+
);
88+
}
89+
}
90+
91+
export default MostrarBUProva;

bu_frontend/src/views/elements/consultar_bu.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@ class Consultar_BU extends Component {
5454
var form = this.state.formulario
5555
var len = lista.length
5656
var i=0
57+
console.log(form)
58+
console.log(lista)
5759
while (i<len) {
5860
if ( form.turno === lista[i].turno && form.uf === lista[i].UF
59-
&& form.zona === lista[i].zona && form.secao === lista[i].secao) {
61+
&& parseInt(form.zona) === lista[i].zona && parseInt(form.secao) === lista[i].secao) {
6062
break
6163
}
6264
i++

bu_frontend/src/views/index.js

+21
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import Dashboard from './pages/Dashboard';
22
import MostrarBU from './elements/MostrarBU';
3+
import MostrarBUProva from './elements/MostrarBUProva';
34
import Retotalizar from './pages/Monitorar/Recontabilizar/Retotalizar.js';
45
import Raizassinada from './pages/Monitorar/Raiz/RaizAssinada.js';
56
import Mapa from './pages/Monitorar/Mapa/Mapa.js';
7+
import MapaProva from './pages/Monitorar/Mapa/MapaProva.js';
68
import Root from './elements/Root';
79
import VerificacaoCompleta from './pages/Monitorar/VerificacaoCompleta/VerificacaoCompleta.js';
810
import Consultar_BU from './elements/consultar_bu';
@@ -39,11 +41,25 @@ const pageList = [
3941
// text: 'NEW',
4042
//},
4143
},
44+
{
45+
name: 'Mapa Prova',
46+
path: '/mapa/provaparcial/:id_inicial/:id_final',
47+
component: MapaProva,
48+
49+
//badge: {
50+
// text: 'NEW',
51+
//},
52+
},
4253
{
4354
name: 'Verificação completa de resultado da cidade',
4455
path: '/mapa/verificacaoCompleta/:id_inicial/:id_final',
4556
component: VerificacaoCompleta
4657
},
58+
{
59+
name:'Verificação completa Prova',
60+
path:'/elements/verificacaoCompletaprova/:id_inicial/:id_final',
61+
component: MostrarBUProva,
62+
},
4763
{
4864
name: 'Ver mais', //Raiz assinada
4965
path: '/tree/root',
@@ -63,6 +79,11 @@ const pageList = [
6379
path:'/elements/mostrarbu/:id',
6480
component: MostrarBU,
6581
},
82+
{
83+
name:'Boletim de Urna - Resultado da Consulta',
84+
path:'/elements/mostrarbuprova/:id',
85+
component: MostrarBUProva,
86+
},
6687
];
6788

6889
export default pageList;

bu_frontend/src/views/pages/Monitorar/Mapa/Mapa.js

+10-17
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,18 @@ async componentDidUpdate(prevProps, prevState) {
5050
var url = `/mapa/verificacaoCompleta/${id_inicial}/${id_final}`
5151
window.location.href = url
5252
}
53+
redirecionaParaProvaParcial(e) {
54+
e.preventDefault()
55+
const id_inicial = this.state.id_inicial
56+
const id_final = this.state.id_final
57+
var url = `/mapa/provaparcial/${id_inicial}/${id_final}`
58+
window.location.href = url
59+
}
5360

5461
render() {
5562
return (
5663
<Row>
57-
<Col md={6}>
64+
<Col md={12}>
5865
<Card>
5966
<CardHeader>Selecionar Cidade</CardHeader>
6067
<CardBody>
@@ -64,28 +71,14 @@ async componentDidUpdate(prevProps, prevState) {
6471
/>
6572
</CardBody>
6673
</Card>
67-
<Card>
68-
<ResultadoEleicao
74+
<Card style={{padding:"3vw"}} >
75+
<ResultadoEleicao style={{overflowX:"scroll"}}
6976
votos_cidade={this.state.votos_cidade}
7077
id_inicial={this.state.id_inicial}
7178
id_final={this.state.id_final}
7279
/>
7380
</Card>
7481
</Col>
75-
76-
<Col md={6}>
77-
<Card>
78-
<CardHeader>Verificação resumida</CardHeader>
79-
<CardBody>
80-
<ProvaParcial
81-
mostrarProvaParcial={this.state.mostrarProvaParcial}
82-
resultadoProvaParcial={this.state.resultadoProvaParcial}
83-
dadosProvaParcial={this.state.dadosProvaParcial}
84-
/>
85-
</CardBody>
86-
</Card>
87-
88-
</Col>
8982
</Row>
9083

9184
);

0 commit comments

Comments
 (0)