Subversion Repositories bacoAlunos

Rev

Rev 1572 | 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.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.web.form.questionarios.QuestionarioRespostaForm" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.domain.*" %>
<%@ 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="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/>
<%
    QuestionarioRespostaForm form = (QuestionarioRespostaForm) request.getAttribute("QuestionarioRespostaForm");
    long alunoRequesitadoId;
    if(form != null)
    {
        alunoRequesitadoId = form.getAlunoRequesitadoId();
    }
    else
    {
        alunoRequesitadoId = Long.parseLong(request.getParameter("alunoRequisitadoId"));
    }



    request.setAttribute("alunoRequisitadoId",alunoRequesitadoId);


    AbstractDao.getCurrentSession().beginTransaction();

    //todo MUDAR AQUI QUANDO HOUVER OUTROS TIPOS DE QUESTIONARIOS ASSIM CARREGA O ALUNO
    //NAO DEVE SER PRECISO PORQUE A LISTAGEM E ESPECIFICA DO PEDAGOGICO

    QuestionarioPedagogicoAlunoRequisitado alunoRequisitado
            = DaoFactory.getQuestionarioPedagogicoAlunoRequisitadoDaoImpl().load(alunoRequesitadoId);
    QuestionarioRespostaRequisitada respostaRequisitada
            = alunoRequisitado.getRespostaRequisitada();
    
    Questionario qLoad = respostaRequisitada.getQuestionario();
    QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().narrow(qLoad);

    request.setAttribute("questionario",questionario);
    
    if(respostaRequisitada.getUser().getId() != UserSession.getUser().getId() || (questionario.getStateEnum() != QuestionarioImpl.State.PROCESSING &&
            questionario.getStateEnum() != QuestionarioImpl.State.PROCESSING_WITH_ANSWERS))
    {
%>
        <div class="panel panel-danger">
            <div class="panel-heading">ATENÇÃO</div>
            <div class="panel-body">
                <div class="alert alert-danger">Lamentamos mas o questionário ao qual está a tentar responder não lhe pertence!</div>
            </div>
        </div>
<%
    }
    else if(respostaRequisitada.getResposta() != null)
    {
%>
        <div class="panel panel-info">
            <div class="panel-heading">ATENÇÃO</div>
            <div class="panel-body">
                <div class="alert alert-info">O questionário que está a tentar responder já está entregue. Obrigado!</div>
            </div>
        </div>
<%
    }
    else
    {
%>

        <style>
            .questionarioTable
            {
                width: 100%;
            }
            .questionarioTable .pergunta
            {
                width: 60%;
            }
            .questionarioTable td
            {
                padding: 10px;

            }
            .questionarioTable input[type=radio]
            {
                margin-right: 4px;

            }
            .questionarioTable tr
            {
                border-bottom: 1px solid #939393;
            }
            .questionarioTable tr.nao-respondida
            {

            }
            .questionarioTable tr.respondida
            {

                background-color: #e2ffef;
            }

        </style>
        <script>
            //START SERVICE PING


            var lastEvent = 0;
            var lastDiferentElementEvent = 0;
            var lastDiferentElement;
            function addEvent(targetElementId,targetDurationElementId)
            {
                $("#"+targetElementId).closest("tr").removeClass("alert-warning");
                $("#"+targetElementId).closest("tr").removeClass("nao-respondida");
                $("#"+targetElementId).closest("tr").addClass("respondida");

                if(targetElementId != lastDiferentElement)
                {
                    lastDiferentElementEvent = lastEvent;
                    lastDiferentElement = targetElementId;
                    var eventTime = new Date().getTime();
                    $("#" + targetElementId).val(""+eventTime);
                    $("#" + targetDurationElementId).val(""+(eventTime-lastEvent));
                    lastEvent = eventTime;
                }
                else
                {
                    var eventTime = new Date().getTime();
                    $("#" + targetElementId).val(""+eventTime);
                    $("#" + targetDurationElementId).val(""+(eventTime-lastDiferentElementEvent));
                    lastEvent = eventTime;
                }
            }
            $(document).ready(
                    function()
                    {
                        ping();
                        var startTime = new Date().getTime();
                        $("#timeStart").val(startTime+"");
                        lastDiferentElementEvent = startTime;
                        lastEvent = startTime;
                        lastDiferentElement = null;

                        $("#submeterBtn").on("click",function()
                        {
                            var end = new Date().getTime();
                            $("#timeEnd").val(end+"");
                            $("#totalTime").val((end-startTime)+"");
                            $("#respostaForm").submit();
                        });

                        <%
                            if(request.getAttribute("respostasVazias")!= null)
                            {
                                List<String> respostasVazias = (List<String>) request.getAttribute("respostasVazias");
                               for(String resposta: respostasVazias)
                                {
                        %>
                                $("#pergunta<%=resposta%>").removeClass("nao-respondida").addClass("alert-warning");
                        <%
                                }
                            }
                        %>
                    }
            );


        </script>

        <div class="panel panel-default">
            <div class="panel-heading">Resposta ao Questionário de
                <label class="label label-pill label-default" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getNome()%></label>
                (<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCodigoUnidade()%>)
                de <%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto().getNome()%>
                (<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto().getCodigoCurso()%>)
                Periodo lectivo (<%=questionario.getYear()%> - <%=questionario.getSemestre()%>)
                <br/>
                Docente: <label class="label label-pill label-info" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getNomeDocente()%> (<%=alunoRequisitado.getTipologiaRequisitada().getCdDocente()%>)</label>
                /
                <label class="label label-pill label-default" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getDsTipologia()%>
            </div>
            <div class="panel-body">
                <html:errors/>
                <jomm:messages/>
                <div class="panel panel-default">
                    <div class="panel-body">
                        <%=qLoad.getIntroHtml()%>
                    </div>
                    <div class="panel-body">
                        <p class="lead">Nas suas respostas deverá considerar 1 para nada satisfeito e 5 para muito satisfeito, exceptuando os casos de questões de esforço que estão mensuradas em horas.</p>
                    </div>
                </div>


                <html:form action="/user/questionariosPaeResposta" styleId="respostaForm">
                    <input type="hidden" name="dispatch" value="submitResposta"/>
                    <html:hidden styleId="timeStart" property="resposta.timeStart"/>
                    <html:hidden styleId="timeEnd" property="resposta.timeEnd"/>
                    <html:hidden styleId="totalTime" property="resposta.totalTime"/>
                    <html:hidden property="alunoRequesitadoId" value="${alunoRequisitadoId}"/>
                    <html:hidden property="resposta.questionario.id" value="${questionario.id}"/>
                    <jsp:useBean id="QuestionarioRespostaForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioRespostaForm" scope="request"/>
                    <div class="panel panel-primary">
                        <div class="panel-heading">Identificação da Unidade Curricular</div>
                        <div class="panel-body">
                            <p>Curso: <label class="label label-pill label-default" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto().getNome()%></label> (<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto().getCodigoCurso()%>)</p>
                            <p>Unidade Curricular: <label class="label label-pill label-default" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getNome()%></label> (<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCodigoUnidade()%>)</p>
                            <p>Docente em Avaliação: <label class="label label-pill label-default" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getNomeDocente()%></label> (<%=alunoRequisitado.getTipologiaRequisitada().getCdDocente()%>)</p>
                            <p>Tipologia de Aulas: <label class="label label-pill label-default" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getDsTipologia()%></label> </p>
                        </div>
                    </div>
                    <%
                        for(int i = 1;i<=10;i++)
                        {
                            String titulo = (String) QuestionarioImpl.class.getMethod("getGroup" + i + "Title").invoke(questionario);
                            String groupCodeComplete = (String) QuestionarioImpl.class.getMethod("getGroup" + i + "Code").invoke(questionario);
                            String groupNumber = ""+i;
                            if(groupCodeComplete != null && !groupCodeComplete.startsWith("D_") && titulo != null && titulo.trim().length() > 0)
                            {
                    %>
                                <div class="panel panel-default">
                                    <div class="panel-heading">
                                        <%=(i)%> - <%=titulo%>
                                    </div>
                                    <div class="panel-body">
                                        <table class="questionarioTable">
                                    <%
                                        for(int p = 1; p <= 40; p++)
                                        {
                                            request.setAttribute("p",p);
                                            String pGroup = (String) QuestionarioImpl.class.getMethod("getP" + p + "Group").invoke(questionario);
                                            if(pGroup.equals(groupNumber))
                                            {
                                                String pergunta = (String) QuestionarioImpl.class.getMethod("getP" + p).invoke(questionario);

                                                String resposta = (String) QuestionarioResposta.class.getMethod("getR" + p).invoke(QuestionarioRespostaForm.getResposta());

                                                String naoRespondida = resposta != null && Long.parseLong(resposta) > 0 ? "respondida":" nao-respondida";
                                    %>
                                            <tr id="pergunta${p}" class="pergunta <%=naoRespondida%>">
                                                <td>

                                                    <%=pergunta%>
                                                    <html:hidden property="resposta.timeEventR${p}" styleId="timeEventR${p}"/>
                                                    <html:hidden property="resposta.timeTakenR${p}" styleId="timeTakenR${p}"/>
                                                </td>
                                                <td style="padding-left: 10px"><html:radio property="resposta.r${p}" value="1" onclick="addEvent('timeEventR${p}','timeTakenR${p}');">1</html:radio></td>
                                                <td style="padding-left: 10px"><html:radio property="resposta.r${p}" value="2" onclick="addEvent('timeEventR${p}','timeTakenR${p}');">2</html:radio></td>
                                                <td style="padding-left: 10px"><html:radio property="resposta.r${p}" value="3" onclick="addEvent('timeEventR${p}','timeTakenR${p}');">3</html:radio></td>
                                                <td style="padding-left: 10px"><html:radio property="resposta.r${p}" value="4" onclick="addEvent('timeEventR${p}','timeTakenR${p}');">4</html:radio></td>
                                                <td style="padding-left: 10px"><html:radio property="resposta.r${p}" value="5" onclick="addEvent('timeEventR${p}','timeTakenR${p}');">5</html:radio></td>

                                            </tr>
                                    <%

                                            }
                                        }
                                    %>

                                            <!-- GRUPO PERGUNTAS "e" esforço e1, e2, etc-->
                                    <%
                                        boolean umaQuestão = false;
                                        for(int e = 1; e <= 10; e++)
                                        {
                                            request.setAttribute("e",e);
                                            Object eGroupObj = QuestionarioImpl.class.getMethod("getE" + e + "Group").invoke(questionario);
                                            if(eGroupObj == null)
                                                continue;
                                            String eGroup = (String) eGroupObj;

                                            if(eGroup.equals(groupNumber))
                                            {
                                                if(!umaQuestão)
                                                {
                                                    umaQuestão = true;
                                            %>
                                                <tr>
                                                    <th colspan="6">
                                                        Questões relativas a esforço mensuradas em horas de dedicação
                                                    </th>
                                                </tr>
                                            <%
                                                }
                                                String pergunta = (String) QuestionarioImpl.class.getMethod("getE" + e).invoke(questionario);

                                                String resposta = (String) QuestionarioResposta.class.getMethod("getRe" + e).invoke(QuestionarioRespostaForm.getResposta());

                                                String naoRespondida = resposta != null && Long.parseLong(resposta) > 0 ? "respondida":" nao-respondida";

                                                //TODO VER AQUI O pergunta
                                    %>
                                                <tr id="perguntaE${e}" class="pergunta <%=naoRespondida%>">
                                                    <td>

                                                        <%=pergunta%>
                                                        <html:hidden property="resposta.timeEventRe${e}" styleId="timeEventRe${e}"/>
                                                        <html:hidden property="resposta.timeTakenRe${e}" styleId="timeTakenRe${e}"/>
                                                    </td>
                                                    <td style="padding-left: 10px"><html:radio property="resposta.re${e}" value="1" onclick="addEvent('timeEventRe${e}','timeTakenRe${e}');">menos de 1 hora</html:radio></td>
                                                    <td style="padding-left: 10px"><html:radio property="resposta.re${e}" value="1" onclick="addEvent('timeEventRe${e}','timeTakenRe${e}');">1 a 5 horas</html:radio></td>
                                                    <td style="padding-left: 10px"><html:radio property="resposta.re${e}" value="2" onclick="addEvent('timeEventRe${e}','timeTakenRe${e}');">5 a 10 horas</html:radio></td>
                                                    <td style="padding-left: 10px"><html:radio property="resposta.re${e}" value="3" onclick="addEvent('timeEventRe${e}','timeTakenRe${e}');">10 a 15 horas</html:radio></td>
                                                    <td style="padding-left: 10px"><html:radio property="resposta.re${e}" value="4" onclick="addEvent('timeEventRe${e}','timeTakenRe${e}');">mais de 15 horas</html:radio></td>


                                                </tr>
                                    <%

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

                        }
                    %>


                    <button class="btn btn-success" type="button" id="submeterBtn">Submeter</button>
                </html:form>
            </div>
        </div>
<%
    }
    AbstractDao.getCurrentSession().getTransaction().commit();
%>

Generated by GNU Enscript 1.6.5.2.