ufjf-dcc / tcc-web

4 stars 12 forks source link

Tela de cadastro de usuário #25

Closed jairofsouza closed 9 years ago

jairofsouza commented 9 years ago

Caso seja um usuário coordenador,

Caso seja um usuário administrador,

Ao cadastrar usuários, fazer com que os campos não editáveis sumam Ao cadastrar usuários, se for um usuário que não é prof ou coord ou aluno, deixar Login no lugar de SIAPE.

lucaslarcher commented 9 years ago

O coordenador pode criar usuários Aluno e Secretaria, então começamos com esse filtro

mudar quais usuários podem ser criados no combobox do gerenciamento-usuario.zul alterando o model e o onchange do combobox

(linha 169) model="@load(vm.tiposUsuarioSelecionado)"

(linha 171) onChange="@command('typeChange', titu=txtTitu, comboc=comboCurso, combod=comboDepartamento, label=login)"

mudar o label para mudar ele depois:

(linha 190) <label id="login" value="Login: " />

em combobox de curso colocar a tag value:

(linha 210) value="@load(vm.usuario.curso.nomeCurso)"

para alimentar isso vamos em GerenciamentoUsuarioController e criamos as funções:

public List getTiposUsuarioSelecionado() { List tipos = tiposUsuario; if(getUsuario().getTipoUsuario().getIdTipoUsuario() == Usuario.COORDENADOR) { for(int i=0;i<tipos.size();i++) { if(tipos.get(i).getIdTipoUsuario() == Usuario.ADMINISTRADOR || tipos.get(i).getIdTipoUsuario() == Usuario.COORDENADOR) { tipos.remove(i); i--; }

        }
    }
    return tipos;
}

public String getCursoAtivo() { if(getUsuario().getTipoUsuario().getIdTipoUsuario() == Usuario.COORDENADOR) { return getUsuario().getCurso().getNomeCurso(); } return "Nenhum"; }

mudar a função TypeChange para o seguinte:

@Command public void typeChange(@BindingParam("titu") Textbox titulacao, @BindingParam("comboc") Combobox cmbCurso, @BindingParam("combod") Combobox cmbDep, @BindingParam("label") Label labelLogin) {

    switch (newUsuario.getTipoUsuario().getIdTipoUsuario()) {
    case Usuario.ALUNO:
        newUsuario.setTitulacao(null);
        titulacao.setReadonly(true);
        titulacao.getParent().setVisible(false);
        if(!(getUsuario().getTipoUsuario().getIdTipoUsuario() == Usuario.COORDENADOR))
        cmbCurso.setDisabled(false);
        cmbCurso.getParent().setVisible(true);
        newUsuario.setDepartamento(null);
        cmbDep.setDisabled(true);
        cmbDep.getParent().setVisible(false);
        labelLogin.setValue("Matricula: ");
        break;
    case Usuario.PROFESSOR:
        titulacao.setReadonly(false);
        titulacao.getParent().setVisible(true);
        newUsuario.setCurso(null);
        cmbCurso.setDisabled(true);
        cmbCurso.getParent().setVisible(false);
        cmbDep.setDisabled(false);
        cmbDep.getParent().setVisible(true);
        labelLogin.setValue("SIAPE: ");
        break;
    case Usuario.COORDENADOR:
        titulacao.setReadonly(false);
        titulacao.getParent().setVisible(true);
        cmbCurso.setDisabled(false);
        cmbCurso.getParent().setVisible(true);
        cmbDep.setDisabled(false);
        cmbDep.getParent().setVisible(true);
        labelLogin.setValue("SIAPE: ");
        break;
    case Usuario.ADMINISTRADOR:
        newUsuario.setTitulacao(null);
        titulacao.getParent().setVisible(false);
        titulacao.setReadonly(true);
        newUsuario.setCurso(null);
        cmbCurso.setDisabled(true);
        cmbCurso.getParent().setVisible(false);
        newUsuario.setDepartamento(null);
        cmbDep.setDisabled(true);
        cmbDep.getParent().setVisible(false);
        labelLogin.setValue("Login: ");
        break;
    case Usuario.SECRETARIA:
        newUsuario.setTitulacao(null);
        titulacao.getParent().setVisible(false);
        if(!(getUsuario().getTipoUsuario().getIdTipoUsuario() == Usuario.COORDENADOR))
        cmbCurso.setDisabled(false);
        cmbCurso.getParent().setVisible(true);
        newUsuario.setDepartamento(null);
        cmbDep.setDisabled(true);
        cmbDep.getParent().setVisible(false);
        labelLogin.setValue("Login: ");

        break;
    }
    BindUtils.postNotifyChange(null, null, this, "newUsuario");
}

No submitUser logo depois do onEvente adionar o codigo

(linha 331) if(getUsuario().getTipoUsuario().getIdTipoUsuario() == Usuario.COORDENADOR) if(newUsuario!=null) newUsuario.setCurso(getUsuario().getCurso());

jairofsouza commented 9 years ago

Nova restrição: coordenador não pode adicionar professores.

lucaslarcher commented 9 years ago

Em GerenciamentoUsuarioController, mudar a função getTiposUsuarioSelecionado mudar o if dentro do for para:

if(tipos.get(i).getIdTipoUsuario() == Usuario.ADMINISTRADOR || tipos.get(i).getIdTipoUsuario() == Usuario.COORDENADOR || tipos.get(i).getIdTipoUsuario() == Usuario.PROFESSOR)