/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/AnswersAlunosProcessor.java |
---|
115,8 → 115,9 |
logger.info(msg); |
serviceLogInfo(msg); |
if(unidadeCurricularAfeta.getCodigoUnidade().equals("704342")) |
System.out.println(""); |
if(!unidadeCurricularAfeta.isUsar()) |
{ |
unidadesNaoUtilizadas++; |
137,11 → 138,11 |
//TODO ALTERAR QUANDO GERIRMOS USADAS PARA JA SO SE USAM SUMARIOS |
for(CourseUnitImpl.Tipologia tMerge: tipologias) |
{ |
if(tMerge.isSumario()) |
{ |
tMerge.setUse(true); |
break; |
} |
//if(tMerge.isSumario()) |
//{ |
tMerge.setUse(true); |
// break; |
//} |
} |
} |
else |
267,23 → 268,23 |
tipo.setCdTurma(cdTurma); |
tipo.setDsTipologia(dsTipologia); |
tipo.setUnidadeAfeta(unidadeCurricularAfeta); |
CourseUnitImpl.TipologiaPersistent tMergePersistente = cuImpl.loadPersistent(tMerge); |
if(tMergePersistente == null) |
{ |
msg = "Tipologia não devolve persistente falha no professor ou na turma (docente:" + tMerge.getCdDocente() + ", turma: " + tMerge.getCdTurma() + ") para a unidade: " + unidadeCurricularAfeta.getCodigoUnidade() + " " + unidadeCurricularAfeta.getNome(); |
serviceLogError(msg); |
logger.error(msg); |
logMessages.addMessage(new DefaultLogMessage("questionario.answers.assigning", LogMessageTypeEnum.ERROR,msg)); |
} |
else |
{ |
try{ |
CourseUnitImpl.TipologiaPersistent tMergePersistente = cuImpl.loadPersistent(tMerge); |
tipo.setNomeDocente(tMergePersistente.getTeacher().getName()); |
tipo.setDocenteAfeto(tMergePersistente.getTeacher()); |
tipo.setTurmaAfeta(tMergePersistente.getCourseUnitTurma()); |
DaoFactory.getQuestionarioPedagogicoTipologiaRequisitadaDaoImpl().save(tipo); |
criarAlunosRequisitados(q, tipo, tMergePersistente.getCourseUnitTurma(),unidadeCurricularAfeta,cursoAfeto); |
} |
catch(CourseUnitImpl.TipologiaLoadExeption exp) |
{ |
msg = "Tipologia não devolve persistente " + exp.getMessage() + " (docente:" + tMerge.getCdDocente() + ", turma: " + tMerge.getCdTurma() + ") para a unidade: " + unidadeCurricularAfeta.getCodigoUnidade() + " " + unidadeCurricularAfeta.getNome() + " do curso de " + cursoAfeto.getNome() + "(" + cursoAfeto.getCodigoCurso() +")"; |
serviceLogError(msg); |
logger.error(msg); |
logMessages.addMessage(new DefaultLogMessage("questionario.answers.assigning", LogMessageTypeEnum.ERROR,msg)); |
} |
//Depois o home tem de procurar respostas requisitadas sem resposta |
//para cada uma vai pelo aluno requisitado buscar a turma o docente e pela |
//unidade afeta a unidade e o curso |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
511,8 → 511,36 |
setTipologias(tipologias.serialize()); |
} |
public TipologiaPersistent loadPersistent(Tipologia myTipo) |
public static class TipologiaLoadExeption extends Exception |
{ |
boolean teacherFail = false; |
boolean turmaFail = false; |
public TipologiaLoadExeption(boolean teacherFail, boolean turmaFail) { |
this.teacherFail = teacherFail; |
this.turmaFail = turmaFail; |
} |
public boolean isTeacherFail() { |
return teacherFail; |
} |
public boolean isTurmaFail() { |
return turmaFail; |
} |
@Override |
public String getMessage() { |
return "Professor: " + (teacherFail? "Falhou" : "OK") + " Turma: " + (turmaFail? "Falhou" : "OK"); |
} |
} |
/** |
* |
* @param myTipo |
* @return |
*/ |
public TipologiaPersistent loadPersistent(Tipologia myTipo) throws TipologiaLoadExeption |
{ |
TipologiaPersistent tipologiaPersistent = new TipologiaPersistent(); |
tipologiaPersistent.setHorRef(myTipo.isHorRef()); |
tipologiaPersistent.setExtra(myTipo.isExtra()); |
526,7 → 554,7 |
if(tipologiaPersistent.getCourseUnitTurma() == null || tipologiaPersistent.getTeacher() == null) |
{ |
logger.error("Turma ou professor nao encontrados enquanto fazia uma tipologia persistente: turma:" + myTipo.getCdTurma() + " teacher code: " + myTipo.getCdDocente()); |
return null; |
throw new TipologiaLoadExeption(tipologiaPersistent.getTeacher() == null,tipologiaPersistent.getCourseUnitTurma() == null); |
} |
return tipologiaPersistent; |
} |
/branches/v3/impl/src/web/user/home/panels/emailSetService.jsp |
---|
New file |
0,0 → 1,26 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.User" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="org.json.JSONObject" %> |
<%@ page contentType="application/json;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"/> |
<% |
String email = request.getParameter("preferredEmail"); |
AbstractDao.getCurrentSession().beginTransaction(); |
User u = DaoFactory.getUserDaoImpl().load(UserSession.getUser().getId()); |
u.setPreferrefEmail(email); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
JSONObject jsonObject = new JSONObject(); |
jsonObject.put("result","OK"); |
out.print(jsonObject.toString()); |
%> |
/branches/v3/impl/src/web/user/home/panels/emailSet.jsp |
---|
2,6 → 2,8 |
<%@ page import="pt.estgp.estgweb.domain.User" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.SigesUser" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ 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" %> |
23,7 → 25,7 |
<div class="panel panel-default"> |
<div class="panel-heading">Preferências</div> |
<div class="panel-body"> |
<div class="alert alert-info">${UserSession.shortName} neste momento as informações que temos para ti são enviadas para os seguintes emails, se preferires receber noutro endereço endereço diz-nos qual para que possamos informar-te sempre que haja novidades. Obrigado</div> |
<div class="alert alert-info">${UserSession.shortName} neste momento as informações que temos para <%=UserSession.getUser() instanceof Teacher?"si":"ti"%> são enviadas para os seguintes emails, se preferires receber noutro endereço endereço diz-nos qual para que possamos informar-te sempre que haja novidades. Obrigado</div> |
<div class="panel panel-default"> |
<div class="panel-heading">Emails por onde te contactamos:</div> |
46,7 → 48,7 |
if(u.getPreferrefEmail() != null && u.getPreferrefEmail().trim().length() > 0) |
{ |
%> |
<div class="list-group-item"><%=u.getPreferrefEmail()%> <span class="glyphicon glyphicon-asterisk"></span> preferido</div> |
<div class="list-group-item"><%=u.getPreferrefEmail()%> <i class="badge">preferido</i></div> |
<% |
} |
%> |
54,18 → 56,39 |
</div> |
</div> |
<script> |
$(document).ready( |
function(){ |
$("#preferidoBtn").on("click",function(){ |
email = $("#preferido").val(); |
if(email == "") |
alert("Por favor coloque um endereço de email antes de confirmar"); |
else |
{ |
$.getJSON('<%=request.getContextPath()%>/user/home/panels/emailSetService.jsp',{"preferredEmail":email}, |
function(data){ |
if(data.result=="OK") |
{ |
window.location = "<%=request.getContextPath()%>/user/homePae.do" |
} |
}); |
} |
}) |
} |
); |
</script> |
<div class="panel panel-default"> |
<div class="panel-body"> |
<form class="form-horizontal"> |
<div class="form-horizontal"> |
<div class="form-group"> |
<label class="control-label col-sm-4" for="preferido">Email Preferido:</label> |
<div class="col-sm-8"> |
<input id="preferido" class="form-control" type="text" name="preferredEmail"/> |
</div> |
</div> |
<button class="btn btn-success">Modificar Preferido</button> |
</form> |
<button id="preferidoBtn" type="button" class="btn btn-success">Modificar Preferido</button> |
</div> |
</div> |
</div> |
/branches/v3/impl/src/web/user/home/teacherPae.jsp |
---|
12,30 → 12,32 |
<%--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>--%> |
<logic:notMatch value="TeacherImpl" name="UserSession" property="user.class.name"> |
<div class="alert alert-warning"> |
<bean:message key="profile.bad.profile.teacher.iregular.user.class"/> |
</div> |
</logic:notMatch> |
<logic:notMatch value="TeacherImpl" name="UserSession" property="user.class.name"> |
<div class="alert alert-warning"> |
<bean:message key="profile.bad.profile.teacher.iregular.user.class"/> |
</div> |
</logic:notMatch> |
<jsp:include page="todosAfazer.jsp"/> |
<%--<jsp:include page="todosAfazer.jsp"/>--%> |
<div class="row"> |
<jsp:include page="/user/questionarios/pedagogicoEstudante/questionariosDocenteAbertos.jsp"/> |
<jsp:include page="panels/emailSet.jsp"/> |
<div class="row"> |
<baco:hasRole role="admin,all,questionarios.gerais,questionarios.admin"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<jsp:include page="panels/configsInfo.jsp"/> |
<jsp:include page="panels/docs.jsp"/> |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<jsp:include page="panels/questionarios.jsp"/> |
<jsp:include page="panels/configsGeraisSistema.jsp"/> |
<jsp:include page="panels/academicTools.jsp"/> |
</div> |
</baco:hasRole> |
</div> |
</div> |
/branches/v3/impl/src/web/user/home/studentPae.jsp |
---|
8,10 → 8,7 |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<div class="row"> |
</div> |
<jsp:include page="/user/questionarios/respostasRequisitadas.jsp"/> |
<jsp:include page="panels/emailSet.jsp"/> |
/branches/v3/impl/src/web/user/questionarios/respostasRequisitadas.jsp |
---|
5,103 → 5,4 |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.*" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
Query q = AbstractDao.getCurrentSession().createQuery( |
"select a from a in class " + QuestionarioPedagogicoAlunoRequisitado.class.getName() + |
" join a.aluno u " + |
" where a.respostaRequisitada.resposta is null and u.id = " + UserSession.getUser().getId() + " and " + |
" (a.respostaRequisitada.questionario.state = :s1 OR a.respostaRequisitada.questionario.state = :s2)" |
); |
q.setString("s1","PROCESSING_WITH_ANSWERS"); |
q.setString("s2","PROCESSING"); |
List<QuestionarioPedagogicoAlunoRequisitado> alunosRequisitados = q.list(); |
if(alunosRequisitados.size() == 0) |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="alert alert-success">Olá ${UserSession.shortName} não existem quaisquer questionários ativos em falta da tua parte.</div> |
<div class="alert alert-success">Vai consultando o sistema pois poderemos ativar algum questionário e a tua opinião é muito importante para nós. Obrigado</div> |
</div> |
<% |
} |
else if(alunosRequisitados.size() > 0) |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="panel panel-info"> |
<div class="panel-heading">Olá ${UserSession.shortName}. Tens questinários por responder <span class="glyphicon glyphicon-alert"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<% |
HashMap<Questionario,List<QuestionarioPedagogicoAlunoRequisitado>> alunosOrdenados = new HashMap<Questionario, List<QuestionarioPedagogicoAlunoRequisitado>>(); |
for(QuestionarioPedagogicoAlunoRequisitado alunosRequisitado: alunosRequisitados) |
{ |
List<QuestionarioPedagogicoAlunoRequisitado> alunos = alunosOrdenados.get(alunosRequisitado.getRespostaRequisitada().getQuestionario()); |
if(alunos == null) |
{ |
alunos = new ArrayList<QuestionarioPedagogicoAlunoRequisitado>(); |
alunosOrdenados.put(alunosRequisitado.getRespostaRequisitada().getQuestionario(),alunos); |
} |
alunos.add(alunosRequisitado); |
} |
for(Questionario questionario: alunosOrdenados.keySet()) |
{ |
%> |
<h2><%=questionario.getDescription()%></h2> |
<% |
HashMap<QuestionarioPedagogicoCursoAfeto,Boolean> cursosAfetoHashMap = new HashMap<QuestionarioPedagogicoCursoAfeto, Boolean>(); |
for(QuestionarioPedagogicoAlunoRequisitado alunoRequisitado: alunosOrdenados.get(questionario)) |
{ |
cursosAfetoHashMap.put(alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto(),true); |
} |
if(cursosAfetoHashMap.size() == 1) |
{ |
%> |
<div class="alert alert-info">${UserSession.shortName} tens mais que um curso, isto pode acontecer por teres unidades extra-curriculares, deves responder a todos os questionários mesmo os que não são do teu curso</div> |
<% |
} |
for(QuestionarioPedagogicoCursoAfeto cursoAfeto: cursosAfetoHashMap.keySet()) |
{ |
%> |
<h3><%=cursoAfeto.getNome()%></h3> |
<div class="list-group"> |
<% |
for(QuestionarioPedagogicoAlunoRequisitado alunoRequisitado: alunosOrdenados.get(questionario)) |
{ |
if(alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto() == cursoAfeto) |
{ |
%> |
<div class="list-group-item"> |
<a href="#"> |
<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getNome()%> |
(<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCodigoUnidade()%>) |
</a> |
<label class="label label-pill label-info" style="font-size: 1.2em"><%=alunoRequisitado.getTipologiaRequisitada().getNomeDocente()%></label> |
<label class="badge badge-info" style="font-size: 1.1em"><%=alunoRequisitado.getTipologiaRequisitada().getDsTipologia()%></label> |
</div> |
<% |
} |
} |
%> |
</div> |
<% |
} |
} |
%> |
</div> |
</div> |
</div> |
</div> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
<jsp:include page="pedagogicoEstudante/respostasRequisitadas.jsp"/> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteAssignAnswers.jsp |
---|
103,7 → 103,8 |
schedulleTasksForm.setId(job.getId()); |
request.setAttribute("SchedulleTasksForm",schedulleTasksForm); |
if(job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FAILED || |
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR) |
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR || |
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FINISHED_ERRORS ) |
{ |
%> |
<div class="alert alert-danger"><%=MessageResources.getInstance(request).getMessage("job.status."+job.getStatus())%>, Consulte o Log</div> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionariosDocenteAbertos.jsp |
---|
New file |
0,0 → 1,110 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="org.hibernate.Query" %> |
<%@ page import="java.util.ArrayList" %> |
<%@ page import="java.util.HashMap" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.*" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
Query q = AbstractDao.getCurrentSession().createQuery( |
"select t from t in class " + QuestionarioPedagogicoTipologiaRequisitada.class.getName() + |
" where t.docenteAfeto.id = " + UserSession.getUser().getId() + " and " + |
" (t.unidadeAfeta.cursoAfeto.questionario.state = :s1 OR t.unidadeAfeta.cursoAfeto.questionario.state = :s2)" |
); |
q.setString("s1","PROCESSING_WITH_ANSWERS"); |
q.setString("s2","PROCESSING"); |
List<QuestionarioPedagogicoTipologiaRequisitada> tipologiaRequisitadas = q.list(); |
if(tipologiaRequisitadas.size() == 0) |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="alert alert-success">Olá ${UserSession.shortName} não existem quaisquer questionários ativos nos quais esteja a ser avaliado.</div> |
<div class="alert alert-success">Vá consultando o sistema pois poderemos ativar algum questionário e poderá saber por aqui se os seus alunos estão a responder. Obrigado</div> |
</div> |
<% |
} |
else if(tipologiaRequisitadas.size() > 0) |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="panel panel-info"> |
<div class="panel-heading">Olá ${UserSession.shortName}. Existem questinários onde está a ser avaliado <span class="glyphicon glyphicon-alert"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<% |
HashMap<Questionario,List<QuestionarioPedagogicoTipologiaRequisitada>> tipologiasOrdenadas = new HashMap<Questionario, List<QuestionarioPedagogicoTipologiaRequisitada>>(); |
for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiaRequisitadas) |
{ |
List<QuestionarioPedagogicoTipologiaRequisitada> tipologias = tipologiasOrdenadas.get(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto().getQuestionario()); |
if(tipologias == null) |
{ |
tipologias = new ArrayList<QuestionarioPedagogicoTipologiaRequisitada>(); |
tipologiasOrdenadas.put(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto().getQuestionario(),tipologias); |
} |
tipologias.add(tipologiaRequisitada); |
} |
for(Questionario questionario: tipologiasOrdenadas.keySet()) |
{ |
%> |
<h2><%=questionario.getDescription()%></h2> |
<% |
HashMap<QuestionarioPedagogicoCursoAfeto,Boolean> cursosAfetoHashMap = new HashMap<QuestionarioPedagogicoCursoAfeto, Boolean>(); |
for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiasOrdenadas.get(questionario)) |
{ |
cursosAfetoHashMap.put(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto(),true); |
} |
for(QuestionarioPedagogicoCursoAfeto cursoAfeto: cursosAfetoHashMap.keySet()) |
{ |
%> |
<h3><%=cursoAfeto.getNome()%></h3> |
<div class="list-group"> |
<div class="list-group-item list-group-item-heading clearfix"> |
Unidade Curricular (Código da Unidade) <label class="label label-pill label-success" style="font-size: 1em">Questionários Preenchidos</label> de <label class="label label-pill label-info" style="font-size: 1em">Número de Solicitados</label> <label class="badge badge-info">Tipologia de Aula</label> |
</div> |
<% |
for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: tipologiasOrdenadas.get(questionario)) |
{ |
if(tipologiaRequisitada.getUnidadeAfeta().getCursoAfeto() == cursoAfeto) |
{ |
%> |
<div class="list-group-item clearfix" > |
<%=tipologiaRequisitada.getUnidadeAfeta().getNome()%> |
(<%=tipologiaRequisitada.getUnidadeAfeta().getCodigoUnidade()%>) |
<label class="label label-pill label-success" style="font-size: 1em"> |
<%=tipologiaRequisitada.getAlunosRequisitados().size()%> |
</label> |
de |
<label class="label label-pill label-info" style="font-size: 1em"> |
<%=tipologiaRequisitada.getAlunosRequisitados().size()%> |
</label> |
<label class="badge badge-info"><%=tipologiaRequisitada.getDsTipologia()%></label> |
</div> |
<% |
} |
} |
%> |
</div> |
<% |
} |
} |
%> |
</div> |
</div> |
</div> |
</div> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesSelection.jsp |
---|
276,7 → 276,8 |
schedulleTasksForm.setId(job.getId()); |
request.setAttribute("SchedulleTasksForm",schedulleTasksForm); |
if(job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FAILED || |
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR) |
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR || |
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FINISHED_ERRORS ) |
{ |
%> |
<div class="alert alert-danger"><%=MessageResources.getInstance(request).getMessage("job.status."+job.getStatus())%>, Consulte o Log</div> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/respostasRequisitadas.jsp |
---|
New file |
0,0 → 1,110 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="org.hibernate.Query" %> |
<%@ page import="java.util.ArrayList" %> |
<%@ page import="java.util.HashMap" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.*" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
Query q = AbstractDao.getCurrentSession().createQuery( |
"select a from a in class " + QuestionarioPedagogicoAlunoRequisitado.class.getName() + |
" join a.aluno u " + |
" where a.respostaRequisitada.resposta is null and u.id = " + UserSession.getUser().getId() + " and " + |
" (a.respostaRequisitada.questionario.state = :s1 OR a.respostaRequisitada.questionario.state = :s2)" |
); |
q.setString("s1","PROCESSING_WITH_ANSWERS"); |
q.setString("s2","PROCESSING"); |
List<QuestionarioPedagogicoAlunoRequisitado> alunosRequisitados = q.list(); |
if(alunosRequisitados.size() == 0) |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="alert alert-success">Olá ${UserSession.shortName} não existem quaisquer questionários ativos em falta da tua parte.</div> |
<div class="alert alert-success">Vai consultando o sistema pois poderemos ativar algum questionário e a tua opinião é muito importante para nós. Obrigado</div> |
</div> |
<% |
} |
else if(alunosRequisitados.size() > 0) |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="panel panel-info"> |
<div class="panel-heading">Olá ${UserSession.shortName}. Tens questinários por responder <span class="glyphicon glyphicon-alert"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<% |
HashMap<Questionario,List<QuestionarioPedagogicoAlunoRequisitado>> alunosOrdenados = new HashMap<Questionario, List<QuestionarioPedagogicoAlunoRequisitado>>(); |
for(QuestionarioPedagogicoAlunoRequisitado alunoRequisitado: alunosRequisitados) |
{ |
List<QuestionarioPedagogicoAlunoRequisitado> alunos = alunosOrdenados.get(alunoRequisitado.getRespostaRequisitada().getQuestionario()); |
if(alunos == null) |
{ |
alunos = new ArrayList<QuestionarioPedagogicoAlunoRequisitado>(); |
alunosOrdenados.put(alunoRequisitado.getRespostaRequisitada().getQuestionario(),alunos); |
} |
alunos.add(alunoRequisitado); |
} |
for(Questionario questionario: alunosOrdenados.keySet()) |
{ |
%> |
<h2><%=questionario.getDescription()%></h2> |
<% |
HashMap<QuestionarioPedagogicoCursoAfeto,Boolean> cursosAfetoHashMap = new HashMap<QuestionarioPedagogicoCursoAfeto, Boolean>(); |
for(QuestionarioPedagogicoAlunoRequisitado alunoRequisitado: alunosOrdenados.get(questionario)) |
{ |
cursosAfetoHashMap.put(alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto(),true); |
} |
if(cursosAfetoHashMap.size() == 1) |
{ |
%> |
<div class="alert alert-info">${UserSession.shortName} tens mais que um curso, isto pode acontecer por teres unidades extra-curriculares, deves responder a todos os questionários mesmo os que não são do teu curso</div> |
<% |
} |
for(QuestionarioPedagogicoCursoAfeto cursoAfeto: cursosAfetoHashMap.keySet()) |
{ |
%> |
<h3><%=cursoAfeto.getNome()%></h3> |
<div class="list-group"> |
<div class="list-group-item list-group-item-heading clearfix"> |
Unidade Curricular (Código da Unidade) <label class="label label-pill label-info" style="font-size: 1em">Professor</label> <label class="badge badge-info">Tipologia de Aula</label> |
</div> |
<% |
for(QuestionarioPedagogicoAlunoRequisitado alunoRequisitado: alunosOrdenados.get(questionario)) |
{ |
if(alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCursoAfeto() == cursoAfeto) |
{ |
%> |
<div class="list-group-item clearfix" > |
<a href="#"> |
<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getNome()%> |
(<%=alunoRequisitado.getTipologiaRequisitada().getUnidadeAfeta().getCodigoUnidade()%>) |
</a> |
<label class="label label-pill label-info" style="font-size: 1em"><%=alunoRequisitado.getTipologiaRequisitada().getNomeDocente()%></label> |
<label class="badge badge-info"><%=alunoRequisitado.getTipologiaRequisitada().getDsTipologia()%></label> |
</div> |
<% |
} |
} |
%> |
</div> |
<% |
} |
} |
%> |
</div> |
</div> |
</div> |
</div> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckUnidadeAfeta.jsp |
---|
53,13 → 53,53 |
<tbody> |
<logic:iterate id="tipologia" name="tipologias" type="pt.estgp.estgweb.domain.CourseUnitImpl.Tipologia"> |
<% |
CourseUnitImpl.TipologiaPersistent tipoPersistente = courseUnit.loadPersistent(tipologia); |
if(tipoPersistente == null) |
try |
{ |
CourseUnitImpl.TipologiaPersistent tipoPersistente = courseUnit.loadPersistent(tipologia); |
request.setAttribute("tipoPersistente",tipoPersistente); |
%> |
<tr> |
<td>${tipologia.cdDocente}</td> |
<td>${tipoPersistente.teacher.name}</td> |
<td>${tipologia.dsTipologia}</td> |
<td>${tipologia.ocorrencias}</td> |
<td>${tipologia.cdTurma}</td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}&filterTurma=${tipologia.cdTurma}" data-title="Alunos da turma ${tipologia.cdTurma} da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${unidade.cursoAfeto.nome} (${unidade.cursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=tipoPersistente.getCourseUnitTurma().getStudents().size()%> |
</a> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="extra"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="horRef"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="sumario"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="sumario"> |
<span class="glyphicon glyphicon-ok"></span> |
</logic:equal> |
</td> |
</tr> |
<% |
} |
catch(CourseUnitImpl.TipologiaLoadExeption exp) |
{ |
unidade.setMarked(true); |
if(unidade.getObs() != null && unidade.getObs().indexOf("Tipologia inexistente")<0) |
((QuestionarioPedagogicoUnidadeCurricularAfetaImpl)unidade).addObs( |
"Tipologia inexistente nesta unidade, possivelmente foi devida a sumários de uma turma paralela noutro curso Verificar: " + tipologia.getCdTurma() + " verificar se esta turma ou par sua têm curso associado. " |
"Tipologia falhou " + exp.getMessage() + " nesta unidade, possivelmente foi devida a sumários de uma turma paralela noutro curso Verificar: " + tipologia.getCdTurma() + " verificar se esta turma ou par sua têm curso associado. " |
+ tipologia.getCdDocente() + " " + tipologia.getDsTipologia()); |
%> |
<script> |
100,47 → 140,10 |
</td> |
</tr>--%> |
<% |
} |
else |
{ |
request.setAttribute("tipoPersistente",tipoPersistente); |
%> |
<tr> |
<td>${tipologia.cdDocente}</td> |
<td>${tipoPersistente.teacher.name}</td> |
<td>${tipologia.dsTipologia}</td> |
<td>${tipologia.ocorrencias}</td> |
<td>${tipologia.cdTurma}</td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}&filterTurma=${tipologia.cdTurma}" data-title="Alunos da turma ${tipologia.cdTurma} da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${unidade.cursoAfeto.nome} (${unidade.cursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=tipoPersistente.getCourseUnitTurma().getStudents().size()%> |
</a> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="extra"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="horRef"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="sumario"> |
<span class="glyphicon glyphicon-asterisk"></span> |
</logic:equal> |
</td> |
<td> |
<logic:equal value="true" name="tipologia" property="sumario"> |
<span class="glyphicon glyphicon-ok"></span> |
</logic:equal> |
</td> |
</tr> |
<% |
} |
DaoFactory.getCourseUnitDaoImpl().evict(unidade.getCourseUnit()); |
%> |
</logic:iterate> |