Skip to content
Snippets Groups Projects
Commit 815ddba6 authored by Lucas Eduardo Schoenfelder's avatar Lucas Eduardo Schoenfelder
Browse files

trabalhando pag 2

parent abf323c0
Branches
Tags
4 merge requests!57Merge of develop into master,!56Fixed buttons reportar, seguir, compartilhar, guardar and entrar (in comments...,!18Branch do lucas,!17Branch do lucas
......@@ -12,7 +12,7 @@ import {ButtonCancelar} from './PartTwo.js'
import axios from 'axios'
import FormInput from '../FormInput.js'
function sortDict (dict) {
export function sortDict (dict) {
const newDict = dict.sort((a, b) => (a.name) > (b.name) ? 1 : -1)
return newDict
......@@ -31,7 +31,9 @@ export default function PartOne (props) {
const [uf, setUF] = useState(
{
algumFoiEscolhido : false,
value : ''
selected : '', //id
name : '',
abbreviation : ''
}
)
......@@ -39,14 +41,15 @@ export default function PartOne (props) {
const [municipio, setMunicipio] = useState(
{
algumFoiEscolhido : false,
value : ''
selected : '',
name : ''
}
)
const [codigoINEP, setCodigoINEP] = useState(
{
codigoInvalido : false,
value : ''
selected : ''
}
)
const handleCodigoINEP = (event) => {
......@@ -54,12 +57,12 @@ export default function PartOne (props) {
setCodigoINEP({...codigoINEP,
codigoInvalido : false,
value : code
selected : code
})
}
const validateINEP = () => {
const code = codigoINEP.value
const code = codigoINEP.selected
axios.get(('https://www.simcaq.c3sl.ufpr.br/api/v1/portal_mec_inep?filter=school_cod:' + code)
).then( (response) => {
......@@ -67,14 +70,15 @@ export default function PartOne (props) {
}, (error) => {
setCodigoINEP({...codigoINEP,
codigoInvalido : true,
value : ''
selected : ''
})
}
)
}
const handleSubmit = () => {
props.handleBuscar(uf.value, municipio.value, codigoINEP.value)
console.log('handle submit : ', uf.abbreviation, uf.selected, municipio.name, municipio.selected, codigoINEP.value)
props.handleBuscar(uf.abbreviation, uf.selected, municipio.name, municipio.selected, codigoINEP.value)
}
//on render component, call simcaq api and update ufList
......@@ -87,10 +91,14 @@ export default function PartOne (props) {
}, [])
const handleChooseUF = (event) => {
const ufID = event.target.value
const ufID = event.target.value.ufID
const ufAbbreviation = event.target.value.abbreviation
const ufName = event.target.value.name
setUF({...uf,
algumFoiEscolhido : true,
value : ufID
selected : ufID,
name : ufName,
abbreviation : ufAbbreviation
}
)
......@@ -102,10 +110,12 @@ export default function PartOne (props) {
}
const handleChooseCity = (event) => {
const cityID = event.target.value
const cityID = event.target.value.id
const cityName = event.target.value.name
setMunicipio({...municipio,
algumFoiEscolhido : true,
value : cityID
selected : cityID,
name : cityName
}
)
}
......@@ -123,12 +133,12 @@ export default function PartOne (props) {
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={uf.value}
value={uf.name}
onChange={handleChooseUF}
>
{
ufList.map( (ufs)=>
<MenuItem value={ufs.id}>{ufs.name}</MenuItem>
<MenuItem key={ufs.id} value={{abbreviation : ufs.abbreviation, ufID : ufs.id, name : ufs.name}}>{ufs.name}</MenuItem>
)
}
</Select>
......@@ -138,12 +148,12 @@ export default function PartOne (props) {
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={municipio.value}
value={municipio.name}
onChange={handleChooseCity}
>
{
municipioList.map( (cidades)=>
<MenuItem value={cidades.id}>{cidades.name}</MenuItem>
<MenuItem value={{id : cidades.id, name : cidades.name}}>{cidades.name}</MenuItem>
)
}
</Select>
......@@ -169,7 +179,7 @@ export default function PartOne (props) {
<FormInput
inputType={'text'}
name={'Código INEP'}
value={codigoINEP.value}
value={codigoINEP.selected}
handleChange = {handleCodigoINEP}
placeholder={'Código INEP'}
required={true}
......@@ -188,7 +198,7 @@ export default function PartOne (props) {
</Content>
<Divider/>
<ButtonsArea>
<ButtonCancelar>CANCELAR VERIFICAÇÃO</ButtonCancelar>
<ButtonCancelar onClick={props.handleCancelar}>CANCELAR VERIFICAÇÃO</ButtonCancelar>
</ButtonsArea>
</>
)
......
......@@ -9,11 +9,33 @@ import styled from 'styled-components'
import {Button} from '@material-ui/core'
export default function PartThree (props) {
const [phoneNumber, setPhoneNumber] = useState('')
const handleChangePhoneNumber = (event) => {setPhoneNumber(event.target.value)}
const [phoneNumber, setPhoneNumber] = useState(
{
flagInvalid : false,
number : ''
}
)
const handleChangePhoneNumber = (event) => {
const input = event.target.value.replace(/\D/,'')
setPhoneNumber({...phoneNumber,
flagInvalid : (input.length > 9 ? true : false),
number : (input.length > 9 ? phoneNumber.number : input),
})
}
const [cpf, setCpf] = useState( {
flagInvalid : false,
number : ''
})
const handleChangeCpf = (event) => {
const input = event.target.value.replace(/\D/,'')
setCpf({...cpf,
flagInvalid : (input.length > 11 ? true : false),
number : (input.length > 11 ? cpf.number : input),
})
}
const [cpf, setCpf] = useState('')
const handleChangeCpf = (event) => {setCpf(event.target.value)}
return (
<>
<Content>
......@@ -25,10 +47,12 @@ export default function PartThree (props) {
<p>Inserir o telefone da escola:</p>
<FormInput
inputType={'text'}
pattern="[0-9]"
name={'DDD e Número'}
placeholder={'DDD e Número'}
value={phoneNumber}
value={phoneNumber.number}
handleChange={handleChangePhoneNumber}
error={phoneNumber.flagInvalid}
>
</FormInput>
</FormControl>
......@@ -38,7 +62,7 @@ export default function PartThree (props) {
inputType={'text'}
name={'11 dígitos'}
placeholder={'11 dígitos'}
value={cpf}
value={cpf.number}
handleChange={handleChangeCpf}
mask={'999.999.999-99'}
>
......@@ -49,7 +73,8 @@ export default function PartThree (props) {
<ButtonConfirmar onClick={props.handleBuscar}>BUSCAR</ButtonConfirmar>
</div>
<div style={{display:"flex", justifyContent:"center"}}>
<ButtonGrey>VOLTAR</ButtonGrey><ButtonCancelar>CANCELAR</ButtonCancelar>
<ButtonGrey onClick={() => props.goBack(false, true, false)}>VOLTAR</ButtonGrey>
<ButtonCancelar onClick={props.handleCancelar}>CANCELAR</ButtonCancelar>
</div>
</div>
</form>
......
import React from 'react'
import React, {useState, useEffect} from 'react'
import {Content, ButtonsArea} from './PartOne.js'
import Divider from '@material-ui/core/Divider';
import Stepper from '../Stepper.js'
import CustomizedTables from '../Table.js'
import styled from 'styled-components'
import {Button} from '@material-ui/core'
import axios from 'axios'
import {simcaqAPIurl} from '../../env'
import {sortDict} from './PartOne.js'
export default function PartTwo (props) {
const [htttpRequestDone, setDone] = useState(false)
const [schoolList, setSchoolList] = useState([])
useEffect ( () => {
const code = (props.info.inep_code || '')
const uf = (props.info.school_uf.id || '')
const municipio = (props.info.school_City.id || '')
console.log(code, uf, municipio)
//if user searched by inep code
if (code != '') {
axios.get((`${simcaqAPIurl}/portal_mec_inep?filter=school_cod:` + code)
).then ((response) => {
console.log(response.data.result)
setSchoolList(response.data.result)
setDone(true)
}, (error) => console.log('erro ao dar get na escola por inep code')
)}
else if (uf != '' && municipio != '') {
axios.get((`${simcaqAPIurl}/school?filter=state:"` + uf + '",city_name:"' + municipio + '"')
). then((response)=> {
console.log(response.data.result)
setSchoolList(sortDict(response.data.result))
setDone(true)
}, (error) => console.log('erro ao dar get na escola por uf e municipio', code, uf, municipio)
)}
}, [])
return (
<>
{console.log(props.info)}
{console.log(props)}
<Content>
<h4>Vamos localizar o seu cadastro:</h4>
<Stepper items={props.stepper}/>
......@@ -17,12 +49,18 @@ export default function PartTwo (props) {
<Content>
<InputContainer>
<p>Selecione a sua escola:</p>
<CustomizedTables onClick={props.onClickTable}/>
<CustomizedTables onClick={props.onClickTable}
columns={['Codigo INEP', 'Escola', 'UF', 'Cidade']}
rows={schoolList}
/>
</InputContainer>
</Content>
<Divider/>
<ButtonsArea>
<ButtonGrey>VOLTAR</ButtonGrey><ButtonCancelar>CANCELAR VERIFICAÇÃO</ButtonCancelar>
<ButtonGrey onClick={() => props.goBack(true, false, false)}>VOLTAR</ButtonGrey>
<ButtonCancelar onClick={props.handleCancelar}>CANCELAR VERIFICAÇÃO</ButtonCancelar>
</ButtonsArea>
</>
)
......
......@@ -31,17 +31,6 @@ const StyledTableRow = withStyles(theme => ({
},
}))(TableRow);
function createData(name, calories, fat, carbs) {
return { name, calories, fat, carbs};
}
const rows = [
createData('Frozen yoghurt', 159, 6.0, 24),
createData('Ice cream sandwich', 237, 9.0, 37),
createData('Eclair', 262, 16.0, 24),
createData('Cupcake', 305, 3.7, 67),
createData('Gingerbread', 356, 16.0, 49),
];
const useStyles = makeStyles({
table: {
......@@ -53,29 +42,33 @@ export default function CustomizedTables(props) {
const classes = useStyles();
return (
<>
{console.log(props)}
<TableContainer component={Paper}>
<Table className={classes.table} aria-label="customized table">
<TableHead>
<TableRow>
<StyledTableCell>Codigo INEP</StyledTableCell>
<StyledTableCell align="right">Escola</StyledTableCell>
<StyledTableCell align="right">UF</StyledTableCell>
<StyledTableCell align="right">Cidade</StyledTableCell>
{
props.columns.map( (column)=>
<StyledTableCell align="left">{column}</StyledTableCell>
)
}
</TableRow>
</TableHead>
<TableBody>
{rows.map(row => (
<StyledTableRow key={row.name}>
{props.rows.map(row => (
<StyledTableRow onClick={props.onClick} key={row.id}>
<StyledTableCell component="th" scope="row">
{row.name}
{row.id}
</StyledTableCell>
<StyledTableCell align="right" onClick={props.onClick}>{row.calories}</StyledTableCell>
<StyledTableCell align="right">{row.fat}</StyledTableCell>
<StyledTableCell align="right">{row.carbs}</StyledTableCell>
<StyledTableCell align="left">{row.name}</StyledTableCell>
<StyledTableCell align="left">{row.state_name}</StyledTableCell>
<StyledTableCell align="left">{row.city_name}</StyledTableCell>
</StyledTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</>
);
}
......@@ -18,8 +18,14 @@ export default function PageProfessor (props) {
teacher_cpf: '',
school_phone: '',
school_name: '',
school_City: '', // perguntar se aqui é o id ou o nome
school_uf : '', //perguntar se aqui é o id ou o nome
school_City : {
id : '',
name : ''
},
school_uf : {
id : '',
abbreviation : ''
},
inep_code: ''
}
)
......@@ -37,13 +43,20 @@ export default function PageProfessor (props) {
)
}
const handleBuscar = (uf, municipio, inep) => {
const handleBuscar = (ufAbbreviation, ufID, nomeMunicipio, idMunicipio, inep) => {
console.log(ufAbbreviation, ufID, nomeMunicipio, idMunicipio, inep)
setRegisterInformation({...registerInformation,
school_uf : uf,
school_City : municipio,
inep_code : inep
school_uf : {
id : (ufID ? ufID : ''),
abbreviation: (ufAbbreviation ? ufAbbreviation : '')
},
school_City : {
id : (idMunicipio ? idMunicipio : ''),
name : (nomeMunicipio ? nomeMunicipio : '')
},
inep_code : (inep ? inep : '')
})
toggleStepper(false, true, false)
toggleStepper(false, false, true)
}
const handleCancelar = () => {
......@@ -69,8 +82,17 @@ export default function PageProfessor (props) {
handleCancelar={handleCancelar}
/>
}
{stepper[1].selected && <PartTwo stepper={stepper} onClickTable={onClickTable} info={registerInformation}/>}
{stepper[2].selected && <PartThree stepper={stepper}/>}
{stepper[1].selected &&
<PartTwo stepper={stepper} onClickTable={onClickTable}
info={registerInformation} goBack={toggleStepper}
handleCancelar={handleCancelar}
/>
}
{stepper[2].selected &&
<PartThree stepper={stepper} goBack={toggleStepper}
handleCancelar={handleCancelar}
/>
}
</div>
</Paper>
</div>
......
......@@ -17,9 +17,14 @@ You should have received a copy of the GNU Affero General Public License
along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/
var apiDomain = 'https://api.portalmec.c3sl.ufpr.br/',
var apiDomain = 'https://api.portalmec.c3sl.ufpr.br',
apiVersion = 'v1',
apiUrl = apiDomain + '/' + apiVersion;
var simcaqAPIDomain = 'https://www.simcaq.c3sl.ufpr.br',
apiVersion = 'v1',
simcaqAPIurl = simcaqAPIDomain + '/' + apiVersion
export {apiUrl};
export {apiDomain};
export {simcaqAPIurl}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment