Subversion Repositories bacoAlunos

Rev

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

<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="pt.estgp.estgweb.domain.Teacher" %>
<%@ page import="pt.estgp.estgweb.domain.ConfigurationImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ 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="CourseUnitProgramView" type="pt.estgp.estgweb.domain.views.CourseUnitProgramView" scope="request"/>--%>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<baco:initCourseUnitEvaluationClearances name="CourseUnitView"/>

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

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

<%
    IServiceManager sm = ServiceManager.getInstance();

    /*List<pt.estgp.estgweb.domain.views.CourseUnitView> otherYearUnits;
    otherYearUnits = new ArrayList<pt.estgp.estgweb.domain.views.CourseUnitView>();
    try{

        String[] names = new String[]{};
        Object[] args = new Object[]{new Long(CourseUnitView.getId())};
        otherYearUnits =
                (List<pt.estgp.estgweb.domain.views.CourseUnitView>)
                        sm.execute(RequestUtils.getRequester(request, response), "LoadUnitOtherYearsWithProgram", args, names);
        request.setAttribute("OtherYearUnits", otherYearUnits);


        names = new String[]{};
        args = new Object[]{};
        List<Teacher> teachers = (List<Teacher>)
                        sm.execute(RequestUtils.getRequester(request, response), "LoadTeachers", args, names);
        request.setAttribute("teachers", teachers);
    }catch(Exception e)
    {
        System.err.print(e.toString());
        e.printStackTrace();
    }*/

    /*
    boolean closed = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isClosed();
    boolean teacherComplete = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isTeacherComplete();
    String activeYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYearCreateTransaction();
    List<String> activeDegrees = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveDegreesCreateTransaction();
    List<Long> activeCourseIds = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveCourseIdsCreateTransaction();

    boolean isActiveYear = activeYear != null && CourseUnitView.getImportYear().equals(activeYear);
    boolean isActiveDegree = activeDegrees!=null && activeDegrees.contains(CourseUnitView.getCourseView().getDegree());
    boolean isActiveCourseId = activeCourseIds!=null && activeCourseIds.contains(CourseUnitView.getCourseView().getId());

    boolean activePeriod = CourseUnitView.isEvaluationOpenByAdmin() || (isActiveYear && (isActiveCourseId || isActiveDegree));
    boolean activePeriodRegular = (isActiveYear && (isActiveCourseId || isActiveDegree));


    boolean editCoordinatorPart = false;
    boolean editTeacherPart = false;

    pt.estgp.estgweb.domain.User u = UserSession.getUser();
    if(u.isSuperuserOrAdmin())
    {
        editCoordinatorPart = true;
        editTeacherPart = true;
    }
    else
    {
        if(u instanceof pt.estgp.estgweb.domain.Teacher)
        {
            pt.estgp.estgweb.domain.Teacher t = (pt.estgp.estgweb.domain.Teacher) u;
            if(t.isTeacherOfCourseUnit(CourseUnitView.getId()) || (CourseUnitView.getResponsableTeacher() != null && CourseUnitView.getResponsableTeacher().getId() == t.getId()))
            {
                editTeacherPart = true;
            }
            if(CourseUnitView.getCourseView().getCoordinator() != null && (t.getId() == CourseUnitView.getCourseView().getCoordinator().getId() || t.hasRole(CourseUnitView.getCourseView().getValidationRole())))
            {
                editCoordinatorPart = true;
            }
        }
    }
*/

%>
<%--
MAIS INFO
<p>Caro <%=UserSession.getName()%>, membro da <bean:message key="user.role.${CourseUnitView.courseView.validationRole}"/>,
                            está autorizado a reabrir o relatório de avaliação para o corpo docente da unidade de ${CourseUnitView.name} poder editar.</p>

<h2>Formulário em estado <label style="background-color: red">NÃO ENTREGUE</label> para edição</h2>
--%>
<div class="panel panel-primary">
    <div class="panel-heading">
        <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">
        <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>

        <div class="row-centered">
            <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_INFO_STATE_EDIT">
                <div class="alert alert-info col-md-3 col-sm-3">
                    <bean:message key="courseunit.evaluation.state.edit"/>
                </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">
                    <bean:message key="courseunit.evaluation.state.complete"/>
                </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">
                    <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-info col-md-3 col-sm-3">
                    <bean:message key="courseunit.evaluation.state.edit"/>
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-info col-md-3 col-sm-3">
                    <bean:message key="courseunit.evaluation.state.complete"/>
                </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">
                    <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-info col-md-3 col-sm-3">
                    <bean:message key="courseunit.evaluation.state.edit"/>
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-info col-md-3 col-sm-3">
                    <bean:message key="courseunit.evaluation.state.complete"/>
                </div>
                <div class="col-md-1 col-sm-1 vcenter alert"><span class="glyphicon glyphicon-chevron-right"/></div>
                <div class="alert alert-info col-md-3 col-sm-3">
                    <bean:message key="courseunit.evaluation.state.closed"/>
                </div>
            </baco:clearOperation>
        </div>

        <div class="row-centered">
            <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">
                        <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">
                        <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/courseUnitEvaluationController">
            <input type="hidden" id="dispatch" name="dispatch" value="saveEvaluation">
            <html:hidden property="id"/>
            <html:hidden property="courseUnitView.id"/>



            <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 alterados pelo Docente da Unidade</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 rowspan="2">
                                Aprovados com a classificação entre 10 e 13 valores (%)
                            </th>
                            <th rowspan="2">
                                Aprovados com a classificação entre 14 e 16 valores (%)
                            </th>
                            <th rowspan="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>
                        </tr>
                        <tr>
                            <td align="center">
                                <html:text styleClass="form-control" size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosInscritos"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosSemElementosAvaliacao"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovFrequencia"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovNormal"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovRecurso"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovEspecial"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprovTotal"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1013"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1416"/>
                            </td>
                            <td align="center">
                                <html:text styleClass="form-control"  size="4" property="courseUnitEvaluationView.courseUnitEvaluation.numAlunosAprov1720"/>
                            </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="set(form,'saveEvaluation');submitFormWaitAutoSave(form);"><bean:message key="save"/></button>
                    </baco:clearOperation>

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

                    <baco:clearOperation name="CourseUnitView" property="courseUnit" op="EVALUATION_TRANSITATE_TO_CLOSE">
                        <button type="button" class="btn btn-default" onclick="set(form,'publishEvaluation');submitFormWaitAutoSave(form);">VALIDAR e FECHAR pela Comissão de Curso</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>
        function submitFormWaitAutoSave()
        {
            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()",40000);
        }

        function submitForm()
        {
            $("#formEdit").submit();
        }

        $( 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("serData()",5000);
            </baco:clearOperation>

        });

        var stopAutoSave = false;

        function serData()
        {
            if(stopAutoSave)
            {
                $("#formEval").submit();
                return;
            }
            else
            {
                $("#dispatch").val("saveEvaluation");
                var data = $("#formEval").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
                //alert(data);

                //alert($("#dispatch").val())
                $("#autosave").html('<div class="alert alert-info">Enviando ...</div>');
                $.ajax({
                    url: "<%=request.getContextPath()%>/user/courseUnitEvaluationController.do",
                    type: "POST",
                    data: data + "&json=true",
                    dataType: "json",
                    success: function(resposta) {
                        if(resposta.service && resposta.service == "ok")
                            $("#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
                            $("#autosave").html('<div class="alert alert-warning">Deve salvar o seu relatório periodicamente</div>');
                        setTimeout("serData()",5000);
                    },
                    error: function() {
                        $("#autosave").html('<div class="alert alert-danger">Erro de comunicação, tentando novamente em 5 segundos</div>');
                        setTimeout("serData()",5000);
                    }
                });
            }
        }

    </script>
</baco:clearOperation>