Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1405 → Rev 1406

/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>