Commit 9d5441c6 authored by Odair M.'s avatar Odair M.

Refatora usuário

parent e5823eb8
......@@ -139,7 +139,7 @@ export function Options(props) {
const salasIcon = <Brightness1Icon style={{fontSize:"20px"}} />
const professoresIcon = <PersonAddIcon style={{fontSize:"20px"}} />
var list_options = []
switch (role) {
switch (role) {
case 'admin':
list_options = [
{"icon":locationIcon,"text":"Gerenciamento de Turmas", "link":"/gerenciaturma" },
......@@ -188,6 +188,7 @@ export function Options(props) {
]
break;
default:
}
......
......@@ -16,6 +16,7 @@ import Add from '@material-ui/icons/Add';
import AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';
import DeleteOutline from '@material-ui/icons/DeleteOutline'
import api from '../api'
import {getUserId} from '../services/auth'
import {CustTable} from '../components/table/Table';
import {Toast} from '../components/toast/Toast';
import Typography from '@material-ui/core/Typography';
......@@ -232,7 +233,6 @@ export function InputField(props) {
function createDisciplinaList(Id,departamentoCod,codigo,curso,nome,tipodesalaId,duracao,carga_horaria,equivalencias,_id) {
return {Id,departamentoCod,codigo,nome,tipodesalaId,duracao,carga_horaria,equivalencias,_id};
}
export function ListDisciplina(props) {
const classes = useStyles();
const disciplinas = props.disciplinas
......@@ -240,7 +240,13 @@ export function ListDisciplina(props) {
const [data, setData] = useState([]);
const [ver,setVer] = useState(false)
// const header_list = [
// { id: 'a', numeric: false, disablePadding: false, label: "Id"},
// { id: 'codigo', numeric: false, disablePadding: false, label: "Código"},
// { id: 'nome', numeric: false, disablePadding: false, label: "Nome"},
// { id: 'duracao', numeric: false, disablePadding: false, label: "Duração"},
// { id: 'carga_horaria', numeric: false, disablePadding: false, label: "Carga horária"}
// ];
const header_list = [
{ field: 'Id', title: "Id", filtering: false, hidden: true},
{field: 'departamentoCod', title: 'dpto', filtering: false, hidden: true},
......@@ -322,6 +328,7 @@ export function ListDisciplina(props) {
}
const result = api.post("disciplinas",newData);
setData(data => [...data,newData])
// console.log(result)
// setMessage("Disciplina criada ou atualizada com sucesso")
// setMessageActive(true)
} catch (e) {
......@@ -386,9 +393,6 @@ export function Disciplina(props) {
fetchData();},[dpt_code])
return (
<Grid container justify="flex-end">
<Grid item sm={12}>
<HeaderDisciplina nome_curso={departamento.nome}></HeaderDisciplina>
</Grid>
<Grid item sm={12}>
<ListDisciplina disciplinas={Object.values(disciplinas)} departamento={departamento.nome}/>
</Grid>
......@@ -577,14 +581,50 @@ export function GerenciarDisciplina (props) {
var [departamentos, setDepartamentos] = useState([])
var [dpts, setDpts] = useState({})
var [disciplina_select, setDisciplinaSelect] = useState({});
var [sec,setSec] = useState(false)
const [disciplinas, setDisciplinas] = useState({});
//get data from api
useEffect(() => {
const fetchData = async () => {
const result = await api.get(`departamentos?filter${query}`,);
setDepartamentos(result.data);
const _user = await getUserId()
var user = null
if(_user) {
const user_result = await api.get(`usuarios/${_user}`)
const role_result = await api.get(`usuarios/${_user}/role`)
user = user_result.data
const role = role_result.data
if(role.role == "secretario_dpto" && user._secretario && user._secretario.valor_vinculo) {
console.log("[where][codigo]="+user._secretario.valor_vinculo)
setSec(true)
set_query_cache("departamento_disciplina",user._secretario.valor_vinculo);
setQuery("[where][codigo]="+user._secretario.valor_vinculo)
}
}
const result = await api.get(`departamentos?filter${query}`,);
console.log("Result aaaaaaaaa:", result.data,query)
setDepartamentos(result.data);
};
fetchData();},[])
fetchData();},[query])
useEffect(()=>{
const fetchData = async () => {
const _user = await getUserId()
var user = null
if(_user) {
const user_result = await api.get(`usuarios/${_user}`)
const role_result = await api.get(`usuarios/${_user}/role`)
user = user_result.data
const role = role_result.data
if(role.role == "secretario_dpto" && user._secretario && user._secretario.valor_vinculo) {
console.log("[where][codigo]="+user._secretario.valor_vinculo)
setSec(true)
set_query_cache("departamento_disciplina",user._secretario.valor_vinculo);
setQuery("[where][codigo]="+user._secretario.valor_vinculo)
}
}
}})
useEffect(() => {
const fetchData = async () => {
var _dpts = {}
......@@ -612,6 +652,7 @@ export function GerenciarDisciplina (props) {
<Grid item xs={12}>
<Typography color="#707070" className={classes.header} >Gerenciar Disciplinas</Typography>
</Grid>
{ !sec &&
<Grid item xs={3}>
<SelectField suggestions={Object.values(dpts)}
label="Filtrar por departamento"
......@@ -622,6 +663,7 @@ export function GerenciarDisciplina (props) {
defaultValue={dpts[query]}
/>
</Grid>
}
</Grid>
<Grid container direction="row" spacing={1} >
<Grid item xs={12} md={12} lg={12} >
......
......@@ -745,14 +745,33 @@ export function Menu(props) {
const {message,setMessage} = React.useContext(Messages);
async function salvahandle(evt) {
evt.preventDefault();
var t = turma_select
// cria ou atualiza turma
try {
console.log("turma a ser submetida: ",t)
const response = await api.put("turmas/create_turma",{"turma":t});
setMessage("Turma enviada com sucesso");
setMessageActive(true);
try {
var t = turma_select
// cria ou atualiza turma
try {
const response = await api.put("turmas/create_turma",{"turma":t});
setMessage("Turma enviada com sucesso");
setMessageActive(true);
} catch (e) {
setMessage("Erro ao submeter turma: "+e);
setMessageActive(true);
/* handle error */
}
// cria ou atualiza os horarios da turma
for(var i=0; i < t.horarios.length; i++) {
var horario = t.horarios[i]
var _response = send_horario(t,horario);
if (_response) {
setMessage("Erro ao submeter horario, verifique o formulário ou entre em contato com os desenvolvedores");
setMessageActive(true);
} else {
setMessage("Horario submetido com sucesso");
setMessageActive(true);
}
}
} catch (e) {
setMessage("Erro ao submeter turma: "+e);
setMessageActive(true);
......@@ -836,6 +855,20 @@ export function GerenciarTurma (props) {
set_query_cache("departamento_turma",dptoCod);
setChange(!change)
}
function search_disc(value) {
let query = {}
query["where"] = {}
query["where"]["and"] = []
query["where"]["and"][0] = {}
query["where"]["and"][0]["departamentoCod"] = dptoCod
query["where"]["and"][1] = {}
query["where"]["and"][1]["or"] = value.map((disc) =>{
return {"codigo": disc}
})
setQuery("="+JSON.stringify(query))
set_query_cache("departamento_turma",dptoCod);
setChange(!change)
}
useEffect(() => {
const fetchData = async () => {
const result = await api.get(`departamentos`,);
......
This diff is collapsed.
......@@ -62,7 +62,63 @@ export function SalaSearch(props) {
// plota uma tabela com as informacoes de uma turma. recebe como entrada uma
// lista de turmas. com o seguinte formato:
/*
* [ {
turma: {
codigo: "A"
data_inicio: "2019-12-15T00:00:00.000Z"
data_fim: "2019-12-15T00:00:00.000Z"
merged: false
organizador: "Administrador do Sistema"
vagas: 7
ano: 2020
periodo: "1"
id: 2129
disciplinaCod: "ci204"
mergedCod: null
departamentoCod: "informatica"
cursoCod: "96A"
turmaId: null
professorCod: null
semestre: "2020/2"
}
horarios: [
{dia: 5, horario_inicial: "19:30:00", horario_final: "21:30:00", livre: false, motivo: "aula", …}
{dia: 3, horario_inicial: "19:30:00", horario_final: "21:30:00", livre: false, motivo: "aula", …}
]
[
curso: {
nome: "Informatica Biomedica"
codigo: "96A"
_id: 35
localizacao: null
secretarioId: null
blocoCod: "pa"
setorCod: null
},
curso: {
nome: "Ciencia da computacao"
codigo: "21A"
_id: 35
localizacao: null
secretarioId: null
blocoCod: "pa"
setorCod: null
},
]
disciplina: {
codigo: "ci204"
nome: "ADMINISTRACAO DE INFORMATICA"
carga_horaria: 0
duracao: "semestral"
modalidade: "presencial"
_id: 471
tipodesalaId: null
departamentoCod: "informatica"
}
} ]
*/
export function TurmaTable(props) {
const [rows,setRows] = React.useState([])
React.useEffect(()=>{
......
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