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.