Subversion Repositories bacoAlunos

Rev

Rev 1830 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnitGrade" %>
<%@ page import="pt.estgp.estgweb.domain.Student" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitGradeView" %>
<%@ page import="pt.estgp.estgweb.utils.DatesWebUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="CourseUnitEvaluationForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm" scope="request"/>
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<baco:initCourseUnitEvaluationClearances name="CourseUnitView"/>


<script>
    //Manter a sessão activa para os docentes não perderem os dados
    ping();
</script>

<%

%>

<%
    long lastUpdate = 0;

    //ESTAS MAPS DE NOTAS SAO PARA A MODAL
    //OS CALCULOS USADOS SAO FEITOS NOVAMENTE EM BAIXO
    Map<String,List<CourseUnitGrade>> epocaGrades = new HashMap<String, List<CourseUnitGrade>>();
    Map<Integer,CourseUnitGrade> approvedStudents = new HashMap<Integer,CourseUnitGrade>();
    Map<Integer,CourseUnitGrade> finalGrades = new HashMap<Integer, CourseUnitGrade>();

    AbstractDao.getCurrentSession().beginTransaction();
    CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(CourseUnitView.getId());
    for(CourseUnitGrade grade: cu.getCourseUnitGrades())
    {
        if(grade.getUpdateDate().getTime() > lastUpdate)
            lastUpdate = grade.getUpdateDate().getTime();
        CourseUnitGrade gradeA = approvedStudents.get(grade.getStudent().getSigesCode());
        if(gradeA == null || gradeA.getGrade() < grade.getGrade())
        {
            if(grade.getGrade() >= 10)
                approvedStudents.put(grade.getStudent().getSigesCode(),grade);

        }
        CourseUnitGrade gradeF = finalGrades.get(grade.getStudent().getSigesCode());
        if(gradeF == null || gradeF.getGrade() < grade.getGrade())
        {
            finalGrades.put(grade.getStudent().getSigesCode(),grade);
        }

        List<CourseUnitGrade> eg = epocaGrades.get(grade.getDescEpoca());
        if(eg == null)
        {
            eg = new ArrayList<CourseUnitGrade>();
            epocaGrades.put(grade.getDescEpoca(),eg);
        }
        eg.add(grade);
    }



%>


<div class="modal fade" id="modalNotas" role="dialog" >
    <div class="modal-dialog" data-width="90%" style="display: block; width: 90%; margin-top: 50px;" aria-hidden="false">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <h1 class="modal-title">
                    Notas da Unidade Curricular de <%=CourseUnitView.getName()%> / <%=CourseUnitView.getImportYear()%>
                    <button type="button" class="btn btn-danger btn-xs pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove"> </span> </button>
                </h1>
            </div>
            <div class="modal-body">
                <div class="alert alert-info">
                    Esta informação foi sincronizada a partir do sistema central do IPP poderá não estar atualizada.
                    Última atualização a (<%=DatesWebUtils.getStringFromDate(new Date(lastUpdate))%>)
                </div>

                <%
                    int aprovadosNormal20 = 0;
                    int aprovadosRecurso36 = 0;
                    int aprovadosEspecial38 = 0;
                    int aprovados1013 = 0;
                    int aprovados1416 = 0;
                    int aprovados1720 = 0;
                %>

                <div class="panel panel-success">
                    <div class="panel-heading">
                        Pauta Final (Pauta construida com as melhores notas de todos os alunos)
                    </div>
                    <div class="panel-body">

                        <%



                            int inscritosNormal = 0; //igual ao total de inscritos
                            Map<Integer,Integer> studentsBiggerGrades = new HashMap<Integer, Integer>();
                            for(CourseUnitGrade grade: cu.getCourseUnitGrades())
                            {
                                if(grade.getCodigoEpoca().equals("20"))
                                    inscritosNormal++;

                                if(grade.getCodigoEpoca().equals("20")  //normal
                                        || grade.getCodigoEpoca().equals("36") //recurso
                                        || grade.getCodigoEpoca().equals("38")) //especial
                                {
                                    Integer biggerGrade = studentsBiggerGrades.get(grade.getStudent().getSigesCode());
                                    if(biggerGrade == null || biggerGrade < grade.getGrade())
                                    {
                                        studentsBiggerGrades.put(grade.getStudent().getSigesCode(),grade.getGrade());
                                    }
                                }
                                if(grade.getGrade() >= 10)
                                {
                                    if(grade.getCodigoEpoca().equals("20"))
                                        aprovadosNormal20++;
                                    else if(grade.getCodigoEpoca().equals("36"))
                                        aprovadosRecurso36++;
                                    else if(grade.getCodigoEpoca().equals("38"))
                                        aprovadosEspecial38++;
                                }
                            }

                            int inscritos  = inscritosNormal;
                            int aprovados = 0;
                            int reprovados = 0;
                            int semElementos = 0;
                            for(Integer grade: studentsBiggerGrades.values())
                            {
                                if(grade <= 0)
                                    semElementos++;
                                else if(grade < 10)
                                    reprovados++;
                                else
                                {
                                    aprovados++;
                                    if(grade <= 13)
                                        aprovados1013++;
                                    else if(grade <= 16)
                                        aprovados1416++;
                                    else
                                        aprovados1720++;
                                }
                            }

                            float aprovados1013Per = (float) (((float)aprovados1013)/((float)aprovados)*100.0);
                            float aprovados1416Per = (float) (((float)aprovados1416)/((float)aprovados)*100.0);
                            float aprovados1720Per = (float) (((float)aprovados1720)/((float)aprovados)*100.0);


                        %>
                        <div class="col-md-4">
                            <p><strong>Inscritos:</strong> <%=inscritos%> (ign/equi)</p>
                            <p><strong>Aprovados:</strong> <%=aprovados%> </p>
                            <p><strong>Reprovados:</strong>  <%=reprovados%></p>
                            <p><strong>Sem Elementos de Avaliação:</strong>  <%=semElementos%></p>
                            <p><strong>Equivalencias:</strong> <%=finalGrades.size() - inscritos%></p>
                        </div>
                        <div class="col-md-4">
                            <p><strong>Aprovados em Época Normal:</strong> <%=aprovadosNormal20%> </p>
                            <p><strong>Aprovados em Época Recurso:</strong> <%=aprovadosRecurso36%> </p>
                            <p><strong>Aprovados em Época Especial:</strong> <%=aprovadosEspecial38%> </p>
                        </div>
                        <div class="col-md-4">
                            <p><strong>Aprovados entre 10 e 13:</strong> <%=aprovados1013%> (<%=aprovados1013Per%>%) </p>
                            <p><strong>Aprovados entre 14 e 16:</strong> <%=aprovados1416%> (<%=aprovados1416Per%>%)  </p>
                            <p><strong>Aprovados entre 17 e 20:</strong> <%=aprovados1720%> (<%=aprovados1720Per%>%) </p>
                        </div>
                        <table class="tablesorterfiltered" id="pautaFinal">
                            <thead>
                            <tr>
                                <th>
                                    <bean:message key="code"/>
                                </th>
                                <th>
                                    <bean:message key="student"/>
                                </th>
                                <th>
                                    <bean:message key="grade"/>
                                </th>
                                <th>
                                    <bean:message key="date"/>
                                </th>
                                <th>
                                    Epoca de Avaliação
                                </th>
                                <th>
                                    Status de Época
                                </th>
                            </tr>
                            </thead>
                            <tbody>
                            <%
                                for(CourseUnitGrade grade: finalGrades.values())
                                {
                                    request.setAttribute("grade",new CourseUnitGradeView(grade));
                            %>
                            <tr>
                                <td>
                                    ${grade.student.code}
                                </td>
                                <td>
                                    ${grade.student.name}
                                </td>
                                <td>
                                    <logic:greaterThan value="0" name="grade" property="grade">
                                        ${grade.grade}
                                    </logic:greaterThan>
                                    <logic:lessThan value="0" name="grade" property="grade">
                                        S/N
                                    </logic:lessThan>
                                </td>
                                <td>
                                    ${grade.formatedDate}
                                </td>

                                <td>
                                    ${grade.descEpoca}
                                </td>
                                <td>
                                    ${grade.descStatusEpoca}
                                </td>
                            </tr>
                            <%
                                }
                            %>
                            </tbody>
                        </table>

                    </div>
                </div>



                <%
                for(Map.Entry<String,List<CourseUnitGrade>> grades: epocaGrades.entrySet())
                {
                    int reprovadosEp = 0;
                    int semElementosEp = 0;
                    int aprovadosEp = 0;
                    for(CourseUnitGrade grade: grades.getValue())
                    {
                        if(grade.getGrade() >= 10)
                        {
                            aprovadosEp++;
                        }
                        else if(grade.getGrade() > 0)
                        {
                            reprovadosEp++;
                        }
                        else
                            semElementosEp ++;
                    }
                %>
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <%=grades.getKey()%>
                    </div>
                    <div class="panel-body">
                        <p><strong>Aprovados nesta época:</strong> <%=aprovadosEp%> </p>
                        <p><strong>Reprovados nesta época:</strong>  <%=reprovadosEp%></p>
                        <p><strong>Sem Elementos de Avaliação nesta época:</strong>  <%=semElementosEp%></p>
                        <table class="tablesorterfiltered">
                            <thead>
                                <tr>
                                <th>
                                    <bean:message key="code"/>
                                </th>
                                <th>
                                    <bean:message key="student"/>
                                </th>
                                <th>
                                    <bean:message key="grade"/>
                                </th>
                                <th>
                                    <bean:message key="date"/>
                                </th>
                                <th>
                                    Epoca de Avaliação
                                </th>
                                <th>
                                    Status de Época
                                </th>
                            </tr>
                            </thead>
                            <tbody>
                            <%
                            for(CourseUnitGrade grade: grades.getValue())
                            {
                                request.setAttribute("grade",new CourseUnitGradeView(grade));
                            %>
                                <tr>
                                    <td>
                                            ${grade.student.code}
                                    </td>
                                    <td>
                                            ${grade.student.name}
                                    </td>
                                    <td>
                                        <logic:greaterThan value="0" name="grade" property="grade">
                                            ${grade.grade}
                                        </logic:greaterThan>
                                        <logic:lessThan value="0" name="grade" property="grade">
                                            S/N
                                        </logic:lessThan>
                                    </td>
                                    <td>
                                            ${grade.formatedDate}
                                    </td>
                                    <td>
                                            ${grade.descEpoca}
                                    </td>
                                    <td>
                                            ${grade.descStatusEpoca}
                                    </td>
                                </tr>
                            <%
                                }
                            %>
                            </tbody>
                        </table>

                    </div>
                </div>
                <%
                    }
                %>

            </div>
        </div>
    </div>
</div>


<%
    AbstractDao.getCurrentSession().getTransaction().commit();
%>











<div class="panel panel-primary">
    <div class="panel-heading">
        <span class="icon icon-flag"></span> <bean:message key="courseunit.evaluation"/> - <%=CourseUnitView.getName()%> / <%=CourseUnitView.getImportYear()%>


        <%
            if( CourseUnitView.getEvaluationStreamId() !=null ){
        %>
        <span class="badge icon">
            <a href="javascript:invoqueDataVersionForm(${CourseUnitView.evaluationStreamId})"><span class="icon icon-history icon-large"></span></a>
        </span>
        <span class="badge icon">
            <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">
                <span class="icon icon-file-pdf icon-large"/>
            </a>
        </span>
        <%
            }
        %>

    </div>
    <div class="panel-body">

        <html:errors/>
        <jomm:messages/>


        <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE">
            <div class="alert alert-info">
                <bean:message key="courseunit.evaluation.period.inactive"/>
            </div>
        </baco:notClearOperation>
        <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE_SPECIAL_ADMIN">
            <div class="alert alert-warning">
                <bean:message key="courseunit.evaluation.period.admin.active"/>
            </div>
        </baco:clearOperation>
        <logic:equal value="true" name="CourseUnitEvaluationForm" property="courseUnitEvaluationView.fechar">
            <div class="alert alert-success"><bean:message key="courseunit.evaluation.dtp.info"/></div>
        </logic:equal>

        <!-- ESTADOS -->



        <div class="row-centered clearfix">
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_EDIT">
                <div class="alert alert-warning col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-edit"></span> Em edição (Qualquer docente da unidade pode editar e entregar)
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-disabled col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-education"></span> Comissão aguarda entrega do docente
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-disabled col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-flag"></span> <bean:message key="courseunit.evaluation.state.closed"/>
                </div>
            </baco:clearOperation>
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_COMPLETE">
                <div class="alert alert-success col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-edit"></span> Entregue pelo Docente
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-warning col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-education"></span> Em <bean:message key="courseunit.evaluation.state.complete"/> pela comissão
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-disabled col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-flag"></span> <bean:message key="courseunit.evaluation.state.closed"/>
                </div>
            </baco:clearOperation>
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_CLOSED">
                <div class="alert alert-success col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-edit"></span> Entregue pelo Docente
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-success col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-education"></span> Validado pela Comissão
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-success col-md-3 col-sm-3">
                    <span class="glyphicon glyphicon-flag"></span> <bean:message key="courseunit.evaluation.state.closed"/>
                </div>
            </baco:clearOperation>
        </div>


        <div class="row-centered clearfix">
            <div class="col-md-3 col-sm-3">
                <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_EDIT">
                    <html:form action="/user/courseUnitEvaluationController">

                        <input type="hidden" name="dispatch" value="openEvaluation">
                        <html:hidden property="courseUnitView.id"/>
                        <button type="submit" class="btn btn-default">
                            <bean:message key="courseunit.evaluation.transit.to.edition"/>
                        </button>
                    </html:form>
                </baco:clearOperation>
            </div>
            <div class="col-md-1 col-sm-1"></div>
            <div class="col-md-3 col-sm-3">
                <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_COMPLETE">
                    <button type="button" class="btn btn-default" onclick="$('#buttonTeacherCompleteEvaluation').click()">
                        <bean:message key="courseunit.evaluation.transit.to.complete"/>
                    </button>
                </baco:clearOperation>
            </div>
            <div class="col-md-1 col-sm-1"></div>
            <div class="col-md-3 col-sm-3">
                <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE">
                    <button type="button" class="btn btn-default" onclick="$('#buttonPublishEvaluation').click()"><bean:message key="courseunit.evaluation.transit.to.closed"/></button>
                </baco:clearOperation>
            </div>
        </div>






    </div>
    <div class="panel-body">




        <html:form styleId="formEval" styleClass="form-horizontal" action="/user/courseUnitEvaluationControllerWidget">
            <input type="hidden" id="dispatch" name="dispatch" value="saveEvaluation">
            <html:hidden property="id"/>
            <html:hidden property="courseUnitView.id"/>
            <input type="hidden" name="autosave" value="true"/>


            <div class="web-messages"></div>


            <div class="panel panel-default">
                <div class="panel-heading">
                    Dados alterados pelo Docente da Unidade
                </div>
                <div class="panel-body">
                    <div id="autosave"></div>


                    <h3>Dados para confirmar pelo Docente da Unidade

                    <button type="button" data-toggle="modal" data-target="#modalNotas" class="btn btn-info" href="">
                    Consultar Notas
                    <span class="icon icon-table2"> </span> </button>


                    </h3>
                    <table class="tablesorter-blue"   width="100%">
                        <tr>
                            <th rowspan="2">
                                Nº Alunos Inscritos
                            </th>
                            <th rowspan="2">
                                Nº de alunos sem elementos de avaliação
                            </th>
                            <th colspan="5">
                                Nº de alunos aprovados em
                            </th>
                            <th colspan="2">
                                Aprovados com a classificação entre 10 e 13 valores
                            </th>
                            <th colspan="2">
                                Aprovados com a classificação entre 14 e 16 valores
                            </th>
                            <th colspan="2">
                                Aprovados com a classificação entre 17 e 20 valores
                            </th>
                        </tr>
                        <tr>
                            <th>Avaliação de frequência</th>
                            <th>Exame Época Normal</th>
                            <th>Exame Época Recurso</th>
                            <th>Exame Época Especial</th>
                            <th>Total</th>
                            <th>Nº</th>
                            <th>%</th>
                            <th>Nº</th>
                            <th>%</th>
                            <th>Nº</th>
                            <th>%</th>
                        </tr>
                        <tr>
                            <td class="text-center">
                                <html:text styleClass="form-control" style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosInscritos"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosSemElementosAvaliacao"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovFrequencia"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovNormal"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovRecurso"/>
                            </td>
                            <td style="text-align: center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovEspecial"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control" style="margin:auto; width: 50px"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovTotal"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1013"/>
                            </td>
                            <td class="text-center">
                                <html:text readonly="true" styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1013Percent"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1416"/>
                            </td>
                            <td class="text-center">
                                <html:text readonly="true" styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1416Percent"/>
                            </td>
                            <td class="text-center">
                                <html:text styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1720"/>
                            </td>
                            <td class="text-center">
                                <html:text readonly="true" styleClass="form-control"  style="margin:auto; width: 50px" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1720Percent"/>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="13">
                                <div class="alert alert-info">
                                Os dados abaixo são obtidos da sincronização de notas (PODEM ESTAR ERRADOS) (servem apenas como AJUDA para confirmação pelo docente). OS DADOS DE CONSULTA CONTABILIZAM <b><i>EQUIVALÊNCIAS</i></b>, o uso ou não das equivalências nas contagens é da responsabilidade dos docentes e dos orgãos competentes.
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <td class="text-center">
                                <%=inscritos%>
                            </td>
                            <td class="text-center">
                                <%=semElementos%>
                            </td>
                            <td class="text-center">
                                ?
                            </td>
                            <td class="text-center">
                                <%=aprovadosNormal20%>
                            </td>
                            <td class="text-center">
                                <%=aprovadosRecurso36%>
                            </td>
                            <td class="text-center">
                                <%=aprovadosEspecial38%>
                            </td>
                            <td class="text-center">
                                <%=aprovados%>
                            </td>
                            <td class="text-center">
                                <%=aprovados1013%>
                            </td>
                            <td class="text-center">
                                <%=aprovados1013Per%> %
                            </td>
                            <td class="text-center">
                                <%=aprovados1416%>
                            </td>
                            <td class="text-center">
                                <%=aprovados1416Per%> %
                            </td>
                            <td class="text-center">
                                <%=aprovados1720%>
                            </td>
                            <td class="text-center">
                                <%=aprovados1720Per%> %
                            </td>
                        </tr>
                    </table>


                    <h3>Auto-avaliação</h3>
                    <table class="tablesorter-blue" width="100%">
                        <tr>
                            <th>Apreciação dos resultados quantitativos obtidos pelos estudantes</th>
                            <td width="80%">
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoQuantitivos"/>
                            </td>
                        </tr>
                        <tr>
                            <th>Apreciação do funcionamento da UC<br/>
                                (Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.)</th>
                            <td  width="80%">
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoUC"/>
                            </td>
                        </tr>
                        <tr>
                            <th>Apreciação do cumprimento do programa da UC<br/>
                                (Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados)
                            </th>
                            <td  width="80%">
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma"/>
                            </td>
                        </tr>
                        <tr>
                            <th>
                                Conclusões<br/>
                                (Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização)
                            </th>
                            <td  width="80%">
                                <html:textarea styleClass="form-control" style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/>
                            </td>
                        </tr>
                    </table>

                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
                        <button type="button" class="btn btn-default" onclick="submitFormWaitAutoSave(form,'saveEvaluation');"><bean:message key="save"/></button>
                    </baco:clearOperation>

                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_COMPLETE">
                        <button type="button" id="buttonTeacherCompleteEvaluation" class="btn btn-default" onclick="submitFormWaitAutoSave(form,'teacherCompleteEvaluation');"><bean:message key="courseunit.evaluation.transit.to.complete"/></button>
                    </baco:clearOperation>

                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE">
                        <button type="button" id="buttonPublishEvaluation" class="btn btn-default" onclick="submitFormWaitAutoSave(form,'publishEvaluation');"><bean:message key="courseunit.evaluation.transit.to.closed"/></button>
                    </baco:clearOperation>


                </div>
            </div>


        </html:form>


    </div>
</div>





<baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">

    <!-- Modal SAVE -->
    <!-- Modal -->
    <div class="modal fade" id="myModal" role="dialog" >
        <div class="modal-dialog" data-width="760" style="display: block; width: 760px; margin-top: 50px;" aria-hidden="false">

            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header">

                    <h1 class="modal-title"><bean:message key="courseunit.evaluation.sending.report.title"/></h1>
                </div>
                <div class="modal-body">
                    <p>
                        <bean:message key="courseunit.evaluation.sending.report.text"/> <img src="<%=request.getContextPath()%>/imgs/wait.gif"/>
                    </p>
                </div>
                <div class="modal-footer">

                </div>
            </div>

        </div>
    </div>

    <script>


        $( document ).ready(function() {

            <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_ACTIVE">
                $("#formEdit :input").attr("disabled", true);
            </baco:notClearOperation>

            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_CLOSED">
                $("#formEdit :input").attr("disabled", true);
            </baco:clearOperation>

            <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_PERSIST_TEACHER_PART">
                <baco:notClearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_PERSIST_COMISSION_PART">
                    $("#formEdit :input").attr("disabled", true);
                </baco:notClearOperation>
            </baco:notClearOperation>

            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_EDITSAVE">
                setTimeout("autoSaveStart()",5000);
            </baco:clearOperation>

        });


        var stopAutoSave = false;
        function autoSaveStart()
        {
            if(!stopAutoSave)
                sendEvaluation(true,"saveEvaluation");

        }

        function submitFormWaitAutoSave(form,service)
        {
            stopAutoSave = true;
            $('#myModal').modal({
                show: 'true'
            });
            //esperar se houver algum update a executar 1500 segundos é o maximo de espera
            //se a pagina não recarregar e porque a thread parou
            setTimeout("submitForm('" + service + "')",2000);
        }

        function submitForm(service)
        {
            //Para Submeter sem o JSON = true

            sendEvaluation(false,service);
        }





        function sendEvaluation(autosave,service)
        {


            if(autosave)
            {
                $("#dispatch").val("saveEvaluation");
                $("#autosave").html('<div class="alert alert-info">Enviando ...</div>');
                $("#formEval input[name='autosave']").val("true");
            }
            else
                $("#formEval input[name='autosave']").val("false");

            widgetSimpleCall(
                    service,
                    $("#formEval"),
                    function()
                    {
                        $('#myModal').modal("hide");
                        //ok
                        if(autosave)
                        {
                            $("#autosave").html('<div class="alert alert-success">Salvo Automaticamente (Apenas Dados, não gerou PDF, para gerar PDF terá de salvar o docente)</div>');
                        }
                        else
                        {
                            //so passa o URL para reload se correr tudo bem
                            modalWebMessagesGivenContainerAndTarget("Avaliação Salva","#formEval","<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=${CourseUnitView.id}");
                        }
                    },
                    function()
                    {
                        $('#myModal').modal("hide");
                        //nao passa o URL para reload para nao estragar os dados
                        modalWebMessagesGivenContainer("Existem Erros de Validação","#formEval");
                    }
            );
        }

    </script>
</baco:clearOperation>