Commit 3c0e260a authored by Henrique Varella Ehrenfried's avatar Henrique Varella Ehrenfried
Browse files

Merge branch 'fix_nicollas' into 'development'

Fix nicollas

See merge request !87
parents 18b07616 0739324f
......@@ -273,6 +273,8 @@ class AutocompleteApp extends Component {
newData = this.organizeData(res.data)
if (this._mounted) this.setState({ data : newData});
}
if (this.props.whichAutocomplete === 'institution')
this.queryDb()
});
}
}
......@@ -534,7 +536,7 @@ class AutocompleteApp extends Component {
}
}
}else{
newHash['name'] = data.result[i][key] !== null ? data.result[i][key] !== undefined ? data.result[i][key].toUpperCase() : '' : ''
newHash['name'] = data.result[i][key] !== null ? data.result[i][key] !== undefined ? data.result[i]['sgl_ies'] && data.result[i]['sgl_ies'] !== null ? data.result[i]['sgl_ies'].toUpperCase()+' - '+data.result[i][key].toUpperCase() : data.result[i][key].toUpperCase() : '' : ''
array.push(newHash);
newHash = {}
}
......
......@@ -45,7 +45,7 @@ function RacialQuotas() {
const { state, dispatch } = React.useContext(Store);
var states = {
"APRESENTAÇÃO": false,
"EVASÃO": false,
"EVASORES": false,
"CONCLUINTES": false,
"ACESSIBILIDADE PELAS COTAS": false,
'INGRESSO': false,
......@@ -85,7 +85,7 @@ function RacialQuotas() {
<div id="conteudo" />
<Tabs className={`tab-demo tabs-fixed-width z-depth-1 ${contrastString}mainPageGreenTab`} onChange={whereIAm} >
<Tab title="Apresentação" active={states["APRESENTAÇÃO"]}> {states["APRESENTAÇÃO"] ? <QuotasPresentation /> : <div />} </Tab>
<Tab title="EVASÃO" active={states["EVASÃO"]}> {states["EVASÃO"] ? <QuotasEvader /> : <div />} </Tab>
<Tab title="EVASORES" active={states["EVASORES"]}> {states["EVASORES"] ? <QuotasEvader /> : <div />} </Tab>
<Tab title="Concluintes" active={states["CONCLUINTES"]}> {states["CONCLUINTES"] ? <QuotasGraduate /> : <div />} </Tab>
<Tab title="Acessibilidade pelas Cotas" active={states["ACESSIBILIDADE PELAS COTAS"]}> {states["ACESSIBILIDADE PELAS COTAS"] ? <QuotasAcessibility /> : <div />} </Tab>
<Tab title="Ingresso" active={states["INGRESSO"]}> {states["INGRESSO"] ? <QuotasAdmission /> : <div />} </Tab>
......
......@@ -177,8 +177,8 @@ class QuotasAdmission extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de estudantes que ingressaram no curso por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes de todos os cursos que ingressaram pela Lei de Cotas.</li>
<li><b>Total</b>: número total de estudantes (pretos, pardos e indígenas) que ingressaram no curso por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes de todos os cursos que ingressaram pela Lei de Cotas do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -201,8 +201,8 @@ class QuotasAdmission extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de estudantes que ingressaram na instituição por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes de todas as instituições que ingressaram pela Lei de Cotas.</li>
<li><b>Total</b>: número total de estudantes (pretos, pardos e indígenas) que ingressaram na instituição por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes de todas as instituições que ingressaram pela Lei de Cotas do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -292,6 +292,14 @@ class QuotasAdmission extends Component {
document.getElementById(chart+type).parentNode.appendChild(node)
});
}
else if (chart === 'Instituição de Ensino' || chart === 'Curso') {
this._mounted = true;
axios.get(`${serverURL}${defaultData}`)
.then(res => {
const data = res.data.result
if (this._mounted) this.setState({ admissions : data });
});
}
}
createRoute(header) {
......@@ -311,6 +319,12 @@ class QuotasAdmission extends Component {
case 'Sexo':
route = type+"?dims=gender"+filters;
break;
case 'Instituição de Ensino':
route = type+"?filter=min_year:2012";
break;
case 'Curso':
route = type+"?filter=min_year:2012";
break;
case 'Perfil Raça/Cor':
route = type+"?dims=ethnic"+filters;
break;
......
......@@ -181,8 +181,8 @@ class QuotasEvader extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de evasões do curso selecionado (ingressos por meio da Lei de Cotas).</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de evasões (ingressos por meio da Lei de Cotas) de todos os cursos.</li>
<li><b>Total</b>: número total de evasões do curso selecionado (ingressos por meio da Lei de Cotas e pretos, pardos e indígenas).</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de evasões (ingressos por meio da Lei de Cotas) de todos os cursos do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -205,8 +205,8 @@ class QuotasEvader extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de evasões na instituição selecionada (ingressos por meio da Lei de Cotas).</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de evasões (ingressos por meio da Lei de Cotas) de todas as instituições.</li>
<li><b>Total</b>: número total de evasões na instituição selecionada (ingressos por meio da Lei de Cotas e pretos, pardos e indígenas).</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de evasões (ingressos por meio da Lei de Cotas) de todas as instituições do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -298,6 +298,14 @@ class QuotasEvader extends Component {
}
});
}
else if (chart === 'Instituição de Ensino' || chart === 'Curso') {
this._mounted = true;
axios.get(`${serverURL}${defaultData}`)
.then(res => {
const data = res.data.result
if (this._mounted) this.setState({ evaders : data });
});
}
}
createRoute(header) {
......@@ -320,6 +328,12 @@ class QuotasEvader extends Component {
case 'Perfil Raça/Cor':
route = type+"?dims=ethnic"+filters;
break;
case 'Instituição de Ensino':
route = type+"?filter=min_year:2012";
break;
case 'Curso':
route = type+"?filter=min_year:2012";
break;
default:
console.log("404");
}
......
......@@ -171,8 +171,8 @@ class QuotasGraduate extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de estudantes cotistas que concluíram o curso selecionado.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de concluintes de todos os cursos</li>
<li><b>Total</b>: número total de estudantes cotistas (pretos, pardos e indígenas) que concluíram o curso selecionado.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de cotistas concluintes de todos os cursos do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -194,8 +194,8 @@ class QuotasGraduate extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de estudantes cotistas que concluíram algum curso na instituição selecionada.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de concluintes de todas as instituições</li>
<li><b>Total</b>: número total de estudantes cotistas (pretos, pardos e indígenas) que concluíram algum curso na instituição selecionada.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de cotistas concluintes de todas as instituições do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -283,6 +283,14 @@ class QuotasGraduate extends Component {
document.getElementById(chart+type).parentNode.appendChild(node)
});
}
else if (chart === 'Instituição de Ensino' || chart === 'Curso') {
this._mounted = true;
axios.get(`${serverURL}${defaultData}`)
.then(res => {
const data = res.data.result
if (this._mounted) this.setState({ graduates : data });
});
}
}
createRoute(header) {
......@@ -305,6 +313,12 @@ class QuotasGraduate extends Component {
case 'Perfil Raça/Cor':
route = type+"?dims=ethnic"+filters;
break;
case 'Instituição de Ensino':
route = type+"?filter=min_year:2012";
break;
case 'Curso':
route = type+"?filter=min_year:2012";
break;
default:
console.log("404");
}
......
......@@ -44,6 +44,11 @@ const turnoK = {
'null' : 'indefinido',
}
const quota = {
'0': 'Não Cotistas com Apoio',
'1': 'Cotistas com Apoio'
}
/**
* Charts about students admited through racial quotas that recieve some form of social support. Data obtained from INEP from the years 2010 through 2017. <br />
* __Turno__: Stacked bar chart showing the number of students recieving some form of social suport by their shift; <br />
......@@ -58,7 +63,7 @@ class QuotasSocialSupport extends Component {
constructor(props) {
super(props);
this.state = {
charts:{'Turno': null, 'Sexo': null, 'Curso':null, 'Instituição de Ensino': null, 'Perfil Raça/Cor': null, 'Tipo de Apoio': null},
charts:{'Turno': null, 'Sexo': null, 'Curso':null, 'Instituição de Ensino': null, 'Perfil Raça/Cor': null, 'Tipo de Apoio': null, 'Apoio Social para Estudantes': null, 'Apoio Social para Estudantes Cotistas': null},
ddValues:{'regiao': null, 'estado': null},
social_supports:{},
campiList:[],
......@@ -78,6 +83,7 @@ class QuotasSocialSupport extends Component {
this.getCampiFromServer = this.getCampiFromServer.bind(this);
this.saveAutocompleteContent = this.saveAutocompleteContent.bind(this);
this.campiFilter = this.campiFilter.bind(this);
this.MountData = this.MountData.bind(this);
}
componentDidMount() {
......@@ -179,8 +185,8 @@ class QuotasSocialSupport extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de estudantes com apoio social que ingressaram no curso por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes cotistas com apoio social de todos os cursos.</li>
<li><b>Total</b>: número total de estudantes (pretos, pardos e indígenas) com apoio social que ingressaram no curso por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes cotistas com apoio social de todos os cursos do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -202,8 +208,8 @@ class QuotasSocialSupport extends Component {
<div style={{border:"solid 1px gray", padding:5}}>
<b>Legenda:</b>
<ul>
<li><b>Total</b>: número total de estudantes com apoio social que ingressaram na instituição por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes cotistas com apoio social de todas as instituições.</li>
<li><b>Total</b>: número total de estudantes (pretos, pardos e indígenas) com apoio social que ingressaram na instituição por meio da Lei de Cotas.</li>
<li><b>Porcentagem</b>: porcentagem em relação ao total de estudantes cotistas com apoio social de todas as instituições do país ou do estado/região selecionado.</li>
</ul>
</div>
<CardFooter
......@@ -227,6 +233,43 @@ class QuotasSocialSupport extends Component {
data={serverURL + type +'?dims=ethnic&format=csv'} source=" INEP - Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira"
/>
</CollapsibleContainer>
<CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Apoio Social para Estudantes Cotistas'>
<div id={'Apoio Social para Estudantes Cotistas'+type}>
<p> Apresenta-se o número total de estudantes cotistas pretos, pardos e indígenas, com ou sem deficiência, separados de acordo com o recebimento de algum apoio social.</p>
<WhereViewing
region = {this.state.ddValues.regiao}
uf = {this.state.ddValues.estado}
/>
<BuildStackedBar
dataKey='Ano'
data={this.state.charts['Apoio Social para Estudantes Cotistas'] && this.state.charts['Apoio Social para Estudantes Cotistas'][0] && this.state.charts['Apoio Social para Estudantes Cotistas'][0].apoio !== null ? organizeJson(this.state.charts['Apoio Social para Estudantes Cotistas'], "apoio") : []}
/>
</div>
<Loading/>
<CardFooter
data={serverURL + type + '?filter=ethnic:["Preta","Parda","Indígena"],uf&format=csv'}
source=" INEP - Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira"
/>
</CollapsibleContainer>
<CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Apoio Social para Estudantes'>
<div id={'Apoio Social para Estudantes'+type}>
<p> Apresenta-se o número total de estudantes pretos, pardos e indígenas, com ou sem deficiência, que recebem algum apoio social separados de acordo com o modo de ingresso, cotista ou não.</p>
<WhereViewing
region = {this.state.ddValues.regiao}
uf = {this.state.ddValues.estado}
/>
<BuildStackedBar
dataKey='Ano'
data={organizeJson(this.state.charts['Apoio Social para Estudantes'], "reserva_vagas")}
customKeys={quota}
/>
</div>
<Loading/>
<CardFooter
data={serverURL + type + '?filter=ethnic:["Preta","Parda","Indígena"],uf&format=csv'}
source=" INEP - Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira"
/>
</CollapsibleContainer>
<CollapsibleContainer id={`${contrastString}brownCollapsible`} header='Tipo de Apoio'>
<p> Após a busca, apresenta-se o número total de estudantes cotistas pretos, pardos e indígenas, com ou sem deficiência, com os apoios sociais selecionados. Por exemplo, se selecionados os parâmetros "Apoio Moradia" e "Apoio Transporte", o gráfico será referente aos estudantes beneficiados por esses dois apoios ao mesmo tempo. </p>
<div id={'Tipo de Apoio'+type}>
......@@ -297,6 +340,24 @@ class QuotasSocialSupport extends Component {
this.setState({ defaultData : temp });
deactivateLoadingAnimation(chart, type);
}
if (chart === 'Apoio Social para Estudantes Cotistas'){
let route = 'education?filter=min_year:2012,quotas:1,ethnic:["Preta","Parda","Indígena"]'
if (this.state.ddValues.estado !== null) {
route = route + ",uf:" + this.state.ddValues.estado;
} else
if (this.state.ddValues.regiao !== null) {
route = route + ",region:" + this.state.ddValues.regiao;
}
console.log('route',route)
axios.get(`${serverURL}${route}`)
.then(res => {
const data = res.data.result
var temp = this.state.charts
temp['Total Cotistas'] = data
this.setState({ defaultData : temp });
this.MountData(chart)
})
}
})
.catch(error => {
console.log(error)
......@@ -309,6 +370,34 @@ class QuotasSocialSupport extends Component {
document.getElementById(chart+type).parentNode.appendChild(node)
});
}
else if (chart === 'Instituição de Ensino' || chart === 'Curso') {
this._mounted = true;
axios.get(`${serverURL}${defaultData}`)
.then(res => {
const data = res.data.result
if (this._mounted) this.setState({ social_supports : data });
});
}
}
MountData(chart){
var Total = this.state.charts['Total Cotistas']
var Apoio = this.state.charts['Apoio Social para Estudantes Cotistas']
var result = []
for (let i=0; i<Apoio.length; i++){
if (Apoio[i].no_ano_pesquisa === Total[i].no_ano_pesquisa){
result[i*2] = {no_ano_pesquisa: Apoio[i].no_ano_pesquisa, apoio: "Recebe", total: Apoio[i].total }
result[(i*2)+1] = {no_ano_pesquisa: Apoio[i].no_ano_pesquisa, apoio: "Não Recebe", total: Total[i].total-Apoio[i].total }
}
}
const data = result
var temp = this.state.charts
temp['Apoio Social para Estudantes Cotistas'] = data
if (!(Object.values(temp).indexOf(true) > -1)){
this.setState({ defaultData : temp });
deactivateLoadingAnimation('Apoio Social para Estudantes Cotistas', type);
}
}
createRoute(header) {
......@@ -319,17 +408,29 @@ class QuotasSocialSupport extends Component {
if (head === 'Perfil Raça/Cor')
filters = '&filter=min_year:2012'
else
filters = '&filter=ethnic:["Preta","Parda","Indígena"],min_year:2012'
filters = 'filter=ethnic:["Preta","Parda","Indígena"],min_year:2012,quota:1'
switch (head) {
case 'Turno':
route = type+'?dims=shift'+filters;
route = type+'?dims=shift&'+filters;
break;
case 'Sexo':
route = type+"?dims=gender"+filters;
route = type+"?dims=gender&"+filters;
break;
case 'Instituição de Ensino':
route = type+"?filter=min_year:2012,quota:1";
break;
case 'Curso':
route = type+"?filter=min_year:2012,quota:1";
break;
case 'Perfil Raça/Cor':
route = type+"?dims=ethnic"+filters;
route = type+"?dims=ethnic&filter=min_year:2012,quota:1";
break;
case 'Apoio Social para Estudantes Cotistas':
route = type+'?'+filters;
break;
case 'Apoio Social para Estudantes':
route = type+'?dims=quota&filter=ethnic:["Preta","Parda","Indígena"],min_year:2012';
break;
case 'Tipo de Apoio':
route = type+"?dims=food_support,support,work_support,courseware_support,housing_support,transport_support"+filters
......@@ -344,7 +445,7 @@ class QuotasSocialSupport extends Component {
if (this.state.ddValues.regiao !== null) {
route = route + ",region:" + this.state.ddValues.regiao;
}
this.getDataFromServer(route, head);
}
......
......@@ -50,7 +50,9 @@ const patterns = {
"cod_ingressantes" : ["0","1"],
"cod_localizacao_diferenciada" : ["0","1","2","3","4","5","6"],
"etapa_ensino": ['Educação Infantil','Ensino Fundamental de 8 anos','Ensino Fundamental de 9 anos','Ensino Médio','Curso Técnico Integrado','Curso Técnico','EJA (Ensino Fundamental)','EJA (Ensino Médio)','EJA (Curso Técnico Integrado)'],
"abastecimento_agua_rede_publica" : ['true','false']
"abastecimento_agua_rede_publica" : ['true','false'],
"apoio" : ['Recebe','Não Recebe'],
"reserva_vagas" : ['0','1']
}
export function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment