ufjf-dcc / tcc-web

4 stars 12 forks source link

Mensagens na tela de aluno #29

Closed jairofsouza closed 9 years ago

jairofsouza commented 9 years ago

Se o aluno está na fase de projeto de tcc ainda,não tem que aparecer na tela principal dele que falta enviar a data de defesa, etc. Isso só quando ele tiver o projeto de tcc aprovado.

lucaslarcher commented 9 years ago

Primeiro eu tenho que mudar os tipos de prazo em Prazo, adicionando um novo: (linha 29) public static final int ENTREGA_TCC_BANCA = 1, ENTREGA_FORM_BANCA = 2, DEFESA = 3, ENTREGA_FINAL = 4, PRAZO_PROJETO = 0;

em PrazoBussiness mudar o getDescription() para: public String getDescription(int type) { switch (type) { case Prazo.ENTREGA_TCC_BANCA: return "Data limite para entrega da versão do trabalho para a banca"; case Prazo.ENTREGA_FORM_BANCA: return "Data limite para entrega do formulário da banca"; case Prazo.DEFESA: return "Data limite para defesa"; case Prazo.ENTREGA_FINAL: return "Data limite para entrega da ata de defesa e versão final do trabalho"; case Prazo.PRAZO_PROJETO: return "Data limite para entrega da versão do projeto para a coordenação do curso"; }

    return "";
}

e no init() do CadastroPrazosController precisamos mudar o for depois do else

(linha 65) for (int i = 0; i < 5; i++) {

            Prazo aux = new Prazo();
            aux.setCalendarioSemestre(this.calendar);
            aux.setTipo(i);
            switch (i) {
            case Prazo.ENTREGA_TCC_BANCA:
                aux.setDataFinal(finalDate.minusDays(14).toDate());
                break;
            case Prazo.ENTREGA_FORM_BANCA:
                aux.setDataFinal(finalDate.minusDays(14).toDate());
                break;
            case Prazo.DEFESA:
                aux.setDataFinal(finalDate.minusDays(7).toDate());
                break;
            case Prazo.ENTREGA_FINAL:
                aux.setDataFinal(finalDate.toDate());
                break;
            case Prazo.PRAZO_PROJETO:
                DateTime agora = new DateTime();
                agora = agora.now();
                agora = agora.minusDays(-21);
                if(agora.isBefore(finalDate.minusDays(14)))
                    aux.setDataFinal(agora.toDate());
                else
                    aux.setDataFinal(finalDate.minusDays(14).toDate());
                break;
            }
            prazos.add(aux);
        }

Agora todas as datas estão aparecendo, precisamos filtrar:

No HomeAlunoController, na função init(), logo apos verificar se ha um calendario, adicionar o seguinte trecho:

(linha 46) prazos = getCurrentCalendar().getPrazos();

        TCC tccUsuario = (new TCCBusiness()).getCurrentTCCByAuthor(getUsuario(), getCurrentCalendar(getUsuario().getCurso()));
        if(tccUsuario!=null)
        if(tccUsuario.isProjeto())
        {
            for(int i=0;i<prazos.size();i++)
                if(prazos.get(i).getTipo()!=Prazo.PRAZO_PROJETO)
                {
                    prazos.remove(i);
                    i--;
                }
        }
        else
        {
            for(int i=0;i<prazos.size();i++)
                if(prazos.get(i).getTipo()==Prazo.PRAZO_PROJETO)
                {
                    prazos.remove(i);
                    i--;
                }
        }

e em TCCBussines modificar as seguintes funções para ficar da seguinte maneira:

public boolean getMissing(TCC tcc, boolean checkFile){ errors.clear();

    validateOrientador(tcc.getOrientador());
    validateName(tcc.getNomeTCC());
    validateResumo(tcc.getResumoTCC());
    validateData(tcc.getDataApresentacao(),tcc);
    validateSala(tcc.getSalaDefesa(),tcc);
    validateBanca(tcc.getParticipacoes(),tcc);
    if(checkFile)
        validateArquivoBanca(tcc.getArquivoTCCBanca());

    return errors.size() == 0 ? false : true;
}

public void validateData(Timestamp timestamp, TCC tcc) { if(tcc!=null) if (timestamp == null && !tcc.isProjeto()) errors.add("É necessário informar a Data de Apresentação\n");
}

public void validateSala(String sala, TCC tcc) {
    if(tcc!=null)
    if ((sala  == null || sala.trim().length() == 0) && !tcc.isProjeto())
        errors.add("É necessário informar a sala de Apresentação\n");       
}

public void validateBanca(List<Participacao> list, TCC tcc) {
    if(tcc!=null)
    if ((list  == null || list.size() == 0) && !tcc.isProjeto())
        errors.add("É necessário informar a Banca\n");        
}