/branches/v3/impl/conf/language/MessageResources.properties |
---|
1912,6 → 1912,7 |
questionario.answerprocessor=Processador de Respostas |
# SERVICE ZONE |
survey.admin=Administração do Questionário {0} |
survey.see=Acompanhar Questionário {0} |
surveys=Questionários |
survey.newEdit.survey=Formulário do Questionário |
survey.create.survey=Criar Questionário |
/branches/v3/impl/conf/WEB-INF/struts/tiles-pae-questionarios.xml |
---|
13,6 → 13,12 |
<put name="body" value="/user/questionarios/questionariosList.jsp"/> |
</definition> |
<definition name="page.pae.see.questionarios" extends="page.pae.separators.home"> |
<put name="separator" value="1" type="string"/> |
<put name="topnav" value="/user/questionarios/topnavQuestionarioList.jsp"/> |
<put name="body" value="/user/questionarios/questionariosSee.jsp"/> |
</definition> |
<definition name="page.pae.questionario.newEdit" extends="page.pae.separators.home"> |
<put name="separator" value="1" type="string"/> |
<put name="topnav" value="/user/questionarios/topnavQuestionarioNewEdit.jsp"/> |
26,6 → 32,13 |
</definition> |
<definition name="page.pae.questionario.see" extends="page.pae.separators.home"> |
<put name="separator" value="1" type="string"/> |
<put name="topnav" value="/user/questionarios/topnavQuestionarioSee.jsp"/> |
<put name="body" value="/user/questionarios/pedagogicoEstudante/questionarioDashBoard.jsp"/> |
</definition> |
<!-- Modulo do Pedagogico Estudantes --> |
<definition name="page.pae.questionario.courses.selection" extends="page.pae.separators.home"> |
<put name="separator" value="1" type="string"/> |
/branches/v3/impl/conf/WEB-INF/struts/struts-pae-questionarios.xml |
---|
33,7 → 33,9 |
<action path="/user/startNewQuestionario" forward="/user/questionariosPaeNoValidation.do?dispatch=startNew"/> |
<action path="/user/listQuestionarios" forward="page.pae.questionario.list"/> |
<action path="/user/seeQuestionarios" forward="page.pae.see.questionarios"/> |
<action path="/user/adminQuestionario" forward="page.pae.questionario.admin"/> |
<action path="/user/seeQuestionario" forward="page.pae.questionario.see"/> |
<action path="/user/formQuestionariosPae" forward="/user/questionariosPaeNoValidation.do?dispatch=form"/> |
<action path="/user/deleteQuestionario" forward="/user/questionariosPaeNoValidation.do?dispatch=deleteQuestionario"/> |
<action path="/user/startRespostaQuestionario" forward="page.pae.questionario.resposta.questionario"/> |
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
435,6 → 435,9 |
public static final String QUESTIONARIOS_ASSIGNEMENTS_CHECK_STUDENTS_ADMIN = "questionarios.atribuicoes.admin"; |
public static final String QUESTIONARIOS_ASSIGNEMENTS_CHECK_TEACHERS_ADMIN = "questionarios.atribuicoes.check_teachers"; |
public static final String QUESTIONARIOS_TIPOLOGIAS_ADMIN = "questionarios.tipologias.admin"; |
public static final String ROLE_PRESIDENTE_CONCELHO_PEDAGOGICO = "pedagogicCouncil.president"; |
public static final boolean USE_XSL_CACHE =ConfigProperties.getBooleanProperty("xsl.use.cache"); |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/PedagogicoAlunosProcessor.java |
---|
47,110 → 47,129 |
questionario.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.START); |
} |
public void initClearances(QuestionarioImpl q, UserSessionImpl usession, SimpleClearanceRuledSupport s) |
{ |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
if(q.getStateEnum() == QuestionarioImpl.State.ASSIGNATION_DETAILS) |
assignationDetailsClearances(q, usession, s); |
if(q.getStateEnum() == QuestionarioImpl.State.STOPED_WITH_ANSWERS || q.getStateEnum() == QuestionarioImpl.State.PROCESSING || q.getStateEnum() == QuestionarioImpl.State.PROCESSING_WITH_ANSWERS) |
{ |
if(q.getSubStatePedagodigoEnum() == QuestionarioImpl.SubStatePedagogico.START || |
q.getSubStatePedagodigoEnum() == QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED) |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_ANO_SEMESTRE.name(),usession); |
if(usession.getUser().hasRole(Globals.ROLE_PRESIDENTE_CONCELHO_PEDAGOGICO)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_DASHBOARD.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_FORM.name(),usession); |
} |
} |
} |
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED.getPosition() && |
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition()) |
private void assignationDetailsClearances(QuestionarioImpl q, UserSessionImpl usession, SimpleClearanceRuledSupport s) { |
if(q.getStateEnum() == QuestionarioImpl.State.ASSIGNATION_DETAILS) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES.name(),usession); |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
{ |
if(q.getCourseSelectionTaskId() <= 0 || q.getSubStatePedagodigoEnum().getPosition() == QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition()) |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name(),usession); |
else |
if(q.getSubStatePedagodigoEnum() == QuestionarioImpl.SubStatePedagogico.START || |
q.getSubStatePedagodigoEnum() == QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED) |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_ANO_SEMESTRE.name(),usession); |
} |
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED.getPosition() && |
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition()) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES.name(),usession); |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
{ |
JobServiceTask task = DaoFactory.getJobServiceTaskDaoImpl().load(q.getCourseSelectionTaskId()); |
if(task.isExecuted() || (task.getSaveDate() != null && |
System.currentTimeMillis()-task.getSaveDate().getTime()>1800000)) //half hour blocked, 30 minutos |
if(q.getCourseSelectionTaskId() <= 0 || q.getSubStatePedagodigoEnum().getPosition() == QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition()) |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name(),usession); |
else |
{ |
if(!task.isExecuted() && System.currentTimeMillis()-task.getSaveDate().getTime()>1800000) |
JobServiceTask task = DaoFactory.getJobServiceTaskDaoImpl().load(q.getCourseSelectionTaskId()); |
if(task.isExecuted() || (task.getSaveDate() != null && |
System.currentTimeMillis()-task.getSaveDate().getTime()>1800000)) //half hour blocked, 30 minutos |
{ |
q.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED);//rolling back to year semestre assigned |
if(!task.isExecuted() && System.currentTimeMillis()-task.getSaveDate().getTime()>1800000) |
{ |
q.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED);//rolling back to year semestre assigned |
} |
task.setExecuted(true); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name(),usession); |
} |
task.setExecuted(true); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name(),usession); |
} |
} |
} |
} |
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition() && |
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition()) |
{ |
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition() && |
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition()) |
{ |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_TIPOLOGIAS_ADMIN)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name(),usession); |
} |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_TIPOLOGIAS_ADMIN)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name(),usession); |
} |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_STUDENTS_ADMIN)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name(),usession); |
//s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name(),usession); |
} |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_STUDENTS_ADMIN)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name(),usession); |
//s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name(),usession); |
} |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_TEACHERS_ADMIN)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name(),usession); |
} |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_TEACHERS_ADMIN)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name(),usession); |
} |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
{ |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_START_ASSIGN_ANSWERS.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_START_ASSIGN_ANSWERS.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS.name(),usession); |
//ATRIBUIR RESPOSTAS MAS SO DEPOIS DE CURSOS ATRIBUIDOS |
if(q.getAnswerGenerationTaskId() <= 0 || q.getSubStatePedagodigoEnum().getPosition() == QuestionarioImpl.SubStatePedagogico.ANSWERS_ASSIGNED.getPosition()) |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_ASSIGN_ANSWERS.name(),usession); |
else |
{ |
JobServiceTask task = DaoFactory.getJobServiceTaskDaoImpl().load(q.getAnswerGenerationTaskId()); |
if(task.isExecuted() || (task.getSaveDate() != null && |
System.currentTimeMillis()-task.getSaveDate().getTime()>1800000)) //half hour blocked, 30 minutos |
//ATRIBUIR RESPOSTAS MAS SO DEPOIS DE CURSOS ATRIBUIDOS |
if(q.getAnswerGenerationTaskId() <= 0 || q.getSubStatePedagodigoEnum().getPosition() == QuestionarioImpl.SubStatePedagogico.ANSWERS_ASSIGNED.getPosition()) |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_ASSIGN_ANSWERS.name(),usession); |
else |
{ |
if(!task.isExecuted() && System.currentTimeMillis()-task.getSaveDate().getTime()>1800000) |
JobServiceTask task = DaoFactory.getJobServiceTaskDaoImpl().load(q.getAnswerGenerationTaskId()); |
if(task.isExecuted() || (task.getSaveDate() != null && |
System.currentTimeMillis()-task.getSaveDate().getTime()>1800000)) //half hour blocked, 30 minutos |
{ |
q.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED);//rolling back to courses assigned |
if(!task.isExecuted() && System.currentTimeMillis()-task.getSaveDate().getTime()>1800000) |
{ |
q.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED);//rolling back to courses assigned |
} |
task.setExecuted(true); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_ASSIGN_ANSWERS.name(),usession); |
} |
task.setExecuted(true); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_ASSIGN_ANSWERS.name(),usession); |
} |
} |
} |
} |
if(q.getSubStatePedagodigoEnum().getPosition() == QuestionarioImpl.SubStatePedagogico.ANSWERS_ASSIGNED.getPosition()) |
{ |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
if(q.getSubStatePedagodigoEnum().getPosition() == QuestionarioImpl.SubStatePedagogico.ANSWERS_ASSIGNED.getPosition()) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_PUT_ANSWERS_ASSIGNED.name(),usession); |
if((usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_PUT_ANSWERS_ASSIGNED.name(),usession); |
} |
} |
} |
} |
@Override |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioImpl.java |
---|
330,9 → 330,21 |
if(getStateEnum() == QuestionarioImpl.State.ASSIGNATION_DETAILS) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_ASSIGNATION_OPERATIONS.name(),usession); |
getiAnswersProcessorClass().initClearances(this,usession,s); |
} |
if(getStateEnum() == QuestionarioImpl.State.STOPED_WITH_ANSWERS || getStateEnum() == QuestionarioImpl.State.PROCESSING || getStateEnum() == QuestionarioImpl.State.PROCESSING_WITH_ANSWERS) |
{ |
if(usession.getUser().isSuperuserOrAdmin() |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN) |
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_GERAIS)) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_DASHBOARD.name(),usession); |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_FORM.name(),usession); |
} |
} |
} |
//AS CLEARANCES SAO VERIFICADAS LA DENTRO PARA TODOS OS ESTADOS |
getiAnswersProcessorClass().initClearances(this,usession,s); |
setClearanceRuledSupport(s); |
} |
367,6 → 379,8 |
QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS, |
QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT, |
QUESTIONARIO_SEE_DASHBOARD |
; |
public static QuestionarioClearancesOperation parse(String clearance) |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioDaoImpl.java |
---|
10,10 → 10,11 |
import pt.estgp.estgweb.domain.QuestionarioImpl; |
import pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto; |
import pt.estgp.estgweb.domain.QuestionarioResposta; |
import pt.estgp.estgweb.domain.QuestionarioRespostaRequisitada; |
import java.util.List; |
import static org.hibernate.criterion.Restrictions.eq; |
import static org.hibernate.criterion.Restrictions.*; |
/** |
* @author Jorge Machado |
67,7 → 68,37 |
} |
} |
public List<QuestionarioImpl> findProcessing() |
{ |
try |
{ |
Criteria criteria = createCriteria(); |
criteria.add(or(eq("state",QuestionarioImpl.State.PROCESSING.name()),eq("state",QuestionarioImpl.State.PROCESSING_WITH_ANSWERS.name()))); |
return criteria.list(); |
} |
catch (HibernateException e) |
{ |
throw new DaoException(e); |
} |
} |
public List<QuestionarioImpl> findNotClosed() |
{ |
try |
{ |
Criteria criteria = createCriteria(); |
criteria.add(not(or(or(eq("state",QuestionarioImpl.State.CLOSED.name()),eq("state",QuestionarioImpl.State.PROCESSING_OLAP.name())), |
eq("state",QuestionarioImpl.State.OLAP.name())))) |
.addOrder(Order.desc("id")); |
return criteria.list(); |
} |
catch (HibernateException e) |
{ |
throw new DaoException(e); |
} |
} |
public long getNumeroRespostas(long questionarioId) |
{ |
Query q = getCurrentSession().createQuery |
83,7 → 114,22 |
return 0; |
} |
public long getNumeroRespostasRequisitadas(long questionarioId) |
{ |
Query q = getCurrentSession().createQuery |
("select count(r.id) from r in class " + QuestionarioRespostaRequisitada.class.getName() + " " + |
" JOIN r.questionario q " + |
" where q.id = " + questionarioId); |
Object result = q.uniqueResult(); |
if(result != null && ((Long)result) > 0) |
{ |
return (Long)result; |
} |
else |
return 0; |
} |
public static class QuestionarioStatsVars |
{ |
public long cursos; |
95,6 → 141,8 |
public long profsDeUsadas; |
public long unidadesUsadas; |
public long profsTimeStudents; |
public long respostasRequisitadas; |
public long respostasObtidas; |
} |
117,6 → 165,7 |
"from " + QuestionarioPedagogicoCursoAfeto.class.getName() + " c " + |
"JOIN c.questionario q " + |
"JOIN c.unidadesAfetas u " + |
"WHERE q.id = :id " + |
"GROUP BY q.id"); |
137,6 → 186,8 |
if(((Long) results[8]) != questionarioStatsVars.unidades) |
logger.error("TEM UM ERRO NA QUERY, a contagem de usadas com o distinct da diferente de com o SUM"); |
questionarioStatsVars.profsTimeStudents = (Long) results[9]; |
questionarioStatsVars.respostasRequisitadas = getNumeroRespostasRequisitadas(questionarioId); |
questionarioStatsVars.respostasObtidas = getNumeroRespostas(questionarioId); |
} |
return questionarioStatsVars; |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/authenticate/AuthenticateController.java |
---|
139,7 → 139,7 |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
if(userSession.getUser() == null) |
return mapping.findForward("welcome"); |
return mapping.findForward(Globals.SYSTEM_REDIRECTIONS_POLICY_INDEX_WELCOME); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{}; |
//to send good by message |
/branches/v3/impl/src/doc/estgweb.eap |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v3/impl/src/web/css/ipp/style.css |
---|
1,4 → 1,5 |
/****************************Text Size*************************************************/ |
@font-face { |
6,13 → 7,16 |
src: url("../EM-Decima.Pro/OTF/Decima%20Pro.otf") format("opentype"); |
} |
body{ |
background-color: #FDFBF5 !important; |
} |
#header |
{ |
height: 60px; |
background-color: white; |
border-bottom: 1px solid #8a6100; |
padding: 3px; |
} |
#header .logo |
{ |
98,6 → 102,7 |
PADDING-TOP: 5px; |
text-align: center; |
margin-top:5px; |
background-color: white; |
} |
187,8 → 192,21 |
.navbar-collapse { |
max-height:none !important; |
} |
.logoIpp |
{ |
height: 45px; |
} |
.navbar-brand |
{ |
padding:2px; |
margin-right: 25px; |
} |
.navbar-brand-2 |
{ |
padding:15px; !important |
margin-right: 25px; !important |
} |
/** LIST ITEM INFO PARECIDO AO WARNING ANTIGO PRIMARY |
.list-group-item-info { |
color: #8a6100 !important; |
/branches/v3/impl/src/web/layout/themes/ipp/separators.jsp |
---|
101,7 → 101,12 |
<span class="icon-bar"></span> |
<span class="icon-bar"></span> |
</button> |
<a class="navbar-brand" href="#"> PAE v1</a> |
<a class="navbar-brand" href="#"> |
<img class="logoIpp" src="<%=request.getContextPath()%>/layout/themes/ipp/logo.png"/> |
</a> |
<a class="navbar-brand navbar-brand-2"> |
PAE v1 |
</a> |
</div> |
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> |
<ul class="nav navbar-nav"> |
/branches/v3/impl/src/web/user/home/panels/questionarios.jsp |
---|
6,12 → 6,17 |
<%@ 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" %> |
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin"> |
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin,pedagogicCouncil.president"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Questionários Pedagógicos</div> |
<div class="panel-heading">Questionários</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item"><html:link action="/user/listQuestionarios">Administração de Questionários</html:link></div> |
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin"> |
<div class="list-group-item"><html:link action="/user/listQuestionarios">Administração de Questionários</html:link></div> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin,pedagogicCouncil.president"> |
<div class="list-group-item"><html:link action="/user/seeQuestionarios">Acompanhamento de Questionários</html:link></div> |
</baco:hasRole> |
<%-- <div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do">Consulta de Resultados</html:link></div>--%> |
</div> |
</div> |
/branches/v3/impl/src/web/user/home/panels/emailSet.jsp |
---|
19,7 → 19,7 |
%> |
<div class="col-md-4 col-sm-12 col-xs-12"> |
<div class="panel panel-default"> |
<div class="panel-heading">Preferências</div> |
<div class="panel-body"> |
92,7 → 92,6 |
</div> |
</div> |
</div> |
<% |
/branches/v3/impl/src/web/user/home/teacherPae.jsp |
---|
20,24 → 20,32 |
<%--<jsp:include page="todosAfazer.jsp"/>--%> |
<jsp:include page="/user/questionarios/pedagogicoEstudante/questionariosDocenteAbertos.jsp"/> |
<jsp:include page="panels/emailSet.jsp"/> |
<div class="row"> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<jsp:include page="/user/questionarios/pedagogicoEstudante/questionariosDocenteAbertos.jsp"/> |
<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> |
<jsp:include page="panels/academicTools.jsp"/> |
</baco:hasRole> |
</div> |
<div class="col-md-4 col-sm-12 col-xs-12"> |
<baco:hasRole role="admin,all,questionarios.gerais,questionarios.admin,pedagogicCouncil.president"> |
<jsp:include page="panels/questionarios.jsp"/> |
</baco:hasRole> |
<jsp:include page="panels/emailSet.jsp"/> |
</div> |
/branches/v3/impl/src/web/user/home/studentPae.jsp |
---|
9,6 → 9,9 |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jsp:include page="/user/questionarios/respostasRequisitadas.jsp"/> |
<jsp:include page="panels/emailSet.jsp"/> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<jsp:include page="/user/questionarios/respostasRequisitadas.jsp"/> |
</div> |
<div class="col-md-4 col-sm-12 col-xs-12"> |
<jsp:include page="panels/emailSet.jsp"/> |
</div> |
/branches/v3/impl/src/web/user/questionarios/questionariosList.jsp |
---|
49,7 → 49,7 |
<tbody> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
List<QuestionarioImpl> questionarios = DaoFactory.getQuestionarioDaoImpl().findSortedBy(0, 10, "id"); |
List<QuestionarioImpl> questionarios = DaoFactory.getQuestionarioDaoImpl().findSortedBy(0, 30, "id"); |
//As transacoes tem de estar fechadas para se chamar a tag initClearances |
for(QuestionarioImpl q: questionarios) |
/branches/v3/impl/src/web/user/questionarios/questionariosSee.jsp |
---|
New file |
0,0 → 1,117 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Questionario" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.List" %> |
<%@ 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:include page="headerQuestionarios.jsp"/> |
<div class="container-fluid" style="margin-top: 10px"> |
<div class="panel panel-primary"> |
<div class="panel-heading clearfix"> |
Questionários |
<baco:hasRole role="questionarios.admin,all,admin"> |
<html:link styleClass="btn btn-default btn-sm pull-right" action="/user/startNewQuestionario">Criar Novo <span class="glyphicon glyphicon-plus"> </span></html:link> |
</baco:hasRole> |
<a class="btn btn-default" href="#" data-toggle="modal" data-target="#modalHelpQuestionario"> |
<span class="glyphicon glyphicon-question-sign"></span> Ajuda sobre Processo dos Questionários |
</a> |
</div> |
<div class="panel-body"> |
<html:errors/> |
<jomm:messages/> |
<table class="tablesortersimple"> |
<thead> |
<tr> |
<th>Num. Control</th> |
<th>Descrição</th> |
<th>Ano</th> |
<th>Semestre</th> |
<th>Acompanhar</th> |
<th>Formulário</th> |
<th>Estado</th> |
<th>Alterado a</th> |
</tr> |
</thead> |
<tbody> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
List<QuestionarioImpl> questionarios = DaoFactory.getQuestionarioDaoImpl().findNotClosed(); |
//As transacoes tem de estar fechadas para se chamar a tag initClearances |
for(QuestionarioImpl q: questionarios) |
{ |
request.setAttribute("q",q); |
%> |
<baco:initClearances name="q"/> |
<tr> |
<td>${q.id}</td> |
<td>${q.description}</td> |
<td>${q.year}</td> |
<td>${q.semestre}</td> |
<td> |
<baco:clearOperation name="q" op="QUESTIONARIO_SEE_DASHBOARD"> |
<html:link styleClass="btn btn-default" action="/user/seeQuestionario?questionarioId=${q.id}">Acompanhar</html:link></td> |
</baco:clearOperation> |
<td> |
<baco:clearOperation name="q" op="QUESTIONARIO_SEE_FORM"> |
<% |
if(q.getStateEnum().getPosition() < QuestionarioImpl.State.PROCESSING.getPosition()) |
{ |
%> |
<html:link action="/user/formQuestionariosPae?questionario.id=${q.id}" styleClass="btn btn-default">Folumário</html:link> |
<% |
} |
else if (q.getStateEnum().getPosition() < QuestionarioImpl.State.OLAP.getPosition()) |
{ |
%> |
<html:link action="/user/formQuestionariosPae?questionario.id=${q.id}" styleClass="btn btn-warning">Trancado</html:link> |
<% |
} |
else |
{ |
%> |
<html:link action="/user/formQuestionariosPae?questionario.id=${q.id}" styleClass="btn btn-success">Terminado</html:link> |
<% |
} |
%> |
</baco:clearOperation> |
</td> |
<td> |
<logic:equal name="q" property="state" value="OLAP"> |
<div class="alert alert-success alert-small" > |
<bean:message key="questionario.state.${q.state}"/> |
</div> |
</logic:equal> |
<logic:notEqual name="q" property="state" value="OLAP"> |
<div class="alert alert-warning alert-small"> |
<bean:message key="questionario.state.${q.state}"/> |
</div> |
</logic:notEqual> |
</td> |
<td><%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(q.getUpdateDate())%></td> |
</tr> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</tbody> |
</table> |
</div> |
</div> |
</div> |
/branches/v3/impl/src/web/user/questionarios/respostaQuestionario.jsp |
---|
71,7 → 71,8 |
<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()%> |
83,6 → 84,7 |
<html:form action="/user/questionariosPaeResposta" styleId="respostaForm"> |
<input type="hidden" name="dispatch" value="submitResposta"/> |
<div class="panel panel-default"> |
<div class="panel-heading">1 - Identificação da Unidade Curricular</div> |
<div class="panel-body"> |
/branches/v3/impl/src/web/user/questionarios/topnavQuestionarioSee.jsp |
---|
New file |
0,0 → 1,17 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
String qId = request.getParameter("questionarioId"); |
if(qId == null) |
qId = request.getParameter("questionario.id"); |
Long questionarioId = Long.parseLong(qId); |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back"); |
topNav.addNavPlace("/user/seeQuestionarios.do", "surveys"); |
topNav.addNavPlace(null, "survey.see",""+questionarioId); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/branches/v3/impl/src/web/user/questionarios/questionarioStatePROCESSING.jsp |
---|
13,81 → 13,4 |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<jsp:useBean id="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/> |
<div class="col-sm-6"> |
<div class="alert alert-info"> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
long respostas = DaoFactory.getQuestionarioDaoImpl().getNumeroRespostas(Questionario.getId()); |
QuestionarioDaoImpl.QuestionarioStatsVars questionarioStatsVars = DaoFactory.getQuestionarioDaoImpl().loadQuestionarioStatsPedagogico(Questionario.getId()); |
%> |
<%=respostas%> Respostas |
</div> |
</div> |
<div class="col-sm-6"> |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_STOP_PROCESSEMENT"> |
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#confirm-ModalGeneric" data-message="Esta operação irá parar o questionário e os alunos não poderão responder!! Tem a certeza que deseja prosseguir?" data-href="<%=request.getContextPath()%>/user/questionariosPaeYearSemestre.do?dispatch=stopProcessement&questionarioId=${Questionario.id}"><span class="icon icon-stop"> </span> Parar Questionário</button> |
</baco:clearOperation> |
</div> |
<div class="col-sm-12"> |
<table class="tablesorter-blue"> |
<thead> |
<th>Cursos Selecionados</th> |
<th>Total de Unidades</th> |
<th>Unidades Não Selecionadas</th> |
<th>Unidades Selecionadas</th> |
<th>Turmas Selecionadas</th> |
<th>Alunos Selecionados</th> |
<th>Professores Selecionados</th> |
</thead> |
<tbody> |
<td><%=questionarioStatsVars.cursos%></td> |
<td><%=questionarioStatsVars.unidades%></td> |
<td><%=questionarioStatsVars.unidades - questionarioStatsVars.unidadesUsadas%></td> |
<td><%=questionarioStatsVars.unidadesUsadas%></td> |
<td><%=questionarioStatsVars.turmas%></td> |
<td><%=questionarioStatsVars.alunosDeUsadas%></td> |
<td><%=questionarioStatsVars.profsDeUsadas%></td> |
</tbody> |
</table> |
</div> |
<div class="col-sm-12"> |
<table class="tablesorterfiltered"> |
<thead> |
<th class="filter-name filter-select">Instituição</th> |
<th>Código</th> |
<th>Curso</th> |
<th>Unidades</th> |
<th>Respondidos</th> |
<th>Por Responder</th> |
<th>Total</th> |
</thead> |
<tbody> |
<% |
List<Long> cursos = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().findCursosAfetosIds(Questionario.getId()); |
for(Long cursoId: cursos) |
{ |
QuestionarioPedagogicoCursoAfeto cursoAfeto = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().load(cursoId); |
long respostasCurso = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().countRespostas(cursoId); |
%> |
<tr> |
<td><%=cursoAfeto.getNomeInstituicao()%></td> |
<td><%=cursoAfeto.getCodigoCurso()%></td> |
<td><%=cursoAfeto.getNome()%></td> |
<td><%=cursoAfeto.getUnidadesAfetas().size()%></td> |
<td><%=respostasCurso%></td> |
<td><%=cursoAfeto.getStatRespostasRequisitadas() - respostasCurso%></td> |
<td><%=cursoAfeto.getStatRespostasRequisitadas()%></td> |
</tr> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</tbody> |
</table> |
</div> |
<jsp:include page="pedagogicoEstudante/questionarioDashBoard.jsp"/> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionariosDocenteAbertos.jsp |
---|
22,7 → 22,7 |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="col-md-12 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> |
33,7 → 33,7 |
{ |
%> |
<div class="col-md-8 col-sm-12 col-xs-12"> |
<div class="col-md-12 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"> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionarioDashBoard.jsp |
---|
New file |
0,0 → 1,121 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Questionario" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.impl.QuestionarioDaoImpl" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.web.exceptions.NotAuthorizedException" %> |
<%@ 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"/> |
<% |
String questionarioIdStr = request.getParameter("questionarioId"); |
long questionarioId = Long.parseLong(questionarioIdStr); |
AbstractDao.getCurrentSession().beginTransaction(); |
QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId); |
questionario.initClearances(UserSession,true); |
request.setAttribute("Questionario",questionario); |
if(!questionario.isClear(UserSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_DASHBOARD.name())) |
{ |
return; //NAO PODE VER O PAINEL |
} |
else |
{ |
QuestionarioDaoImpl.QuestionarioStatsVars questionarioStatsVars = DaoFactory.getQuestionarioDaoImpl().loadQuestionarioStatsPedagogico(questionarioId); |
%> |
<div class="col-sm-6"> |
<div class="alert alert-info"> |
<%=questionarioStatsVars.respostasObtidas%> respostas obtidas de <%=questionarioStatsVars.respostasRequisitadas%> possiveis |
</div> |
</div> |
<div class="col-sm-6"> |
<baco:clearOperation name="Questionario" op="QUESTIONARIO_STOP_PROCESSEMENT"> |
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#confirm-ModalGeneric" data-message="Esta operação irá parar o questionário e os alunos não poderão responder!! Tem a certeza que deseja prosseguir?" data-href="<%=request.getContextPath()%>/user/questionariosPaeYearSemestre.do?dispatch=stopProcessement&questionarioId=${Questionario.id}"><span class="icon icon-stop"> </span> Parar Questionário</button> |
</baco:clearOperation> |
</div> |
<div class="col-sm-12"> |
<table class="tablesorter-blue"> |
<thead> |
<th>Cursos Selecionados</th> |
<th>Total de Unidades</th> |
<th>Unidades Não Selecionadas</th> |
<th>Unidades Selecionadas</th> |
<th>Turmas Selecionadas</th> |
<th>Alunos Selecionados</th> |
<th>Professores Selecionados</th> |
<th>Respondidos</th> |
<th>Por Responder</th> |
<th>Respostas Requisitadas</th> |
</thead> |
<tbody> |
<td><%=questionarioStatsVars.cursos%></td> |
<td><%=questionarioStatsVars.unidades%></td> |
<td><%=questionarioStatsVars.unidades - questionarioStatsVars.unidadesUsadas%></td> |
<td><%=questionarioStatsVars.unidadesUsadas%></td> |
<td><%=questionarioStatsVars.turmas%></td> |
<td><%=questionarioStatsVars.alunosDeUsadas%></td> |
<td><%=questionarioStatsVars.profsDeUsadas%></td> |
<td><label class="label label-success" style="font-size: 1em"><%=questionarioStatsVars.respostasObtidas%></label></td> |
<td><label class="label label-danger" style="font-size: 1em"><%=(questionarioStatsVars.respostasRequisitadas-questionarioStatsVars.respostasObtidas)%></label></td> |
<td><label class="label label-info" style="font-size: 1em"><%=questionarioStatsVars.respostasRequisitadas%></label></td> |
</tbody> |
</table> |
</div> |
<div class="col-sm-12"> |
<table class="tablesorterfiltered"> |
<thead> |
<th class="filter-name filter-select">Instituição</th> |
<th>Código</th> |
<th>Curso</th> |
<th>Unidades</th> |
<th>Respondidos</th> |
<th>Por Responder</th> |
<th>Total</th> |
</thead> |
<tbody> |
<% |
List<Long> cursos = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().findCursosAfetosIds(questionarioId); |
for(Long cursoId: cursos) |
{ |
QuestionarioPedagogicoCursoAfeto cursoAfeto = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().load(cursoId); |
long respostasCurso = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().countRespostas(cursoId); |
request.setAttribute("cursoAfeto",cursoAfeto); |
%> |
<tr> |
<td><%=cursoAfeto.getNomeInstituicao()%></td> |
<td><%=cursoAfeto.getCodigoCurso()%></td> |
<td><%=cursoAfeto.getNome()%></td> |
<td> |
<a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/questionarioCourseDashBoard.jsp?cursoAfetoId=${cursoAfeto.id}" data-title="Acompanhamento de questionários do curso (${cursoAfeto.codigoCurso}) ${cursoAfeto.nome} da ${cursoAfeto.nomeInstituicao})" data-toggle="modal" data-target="#modalAjaxRequest"> |
<%=cursoAfeto.getUnidadesAfetas().size()%> |
</a> |
</td> |
<td><label class="label label-success" style="font-size: 1em"><%=respostasCurso%></label></td> |
<td><label class="label label-danger" style="font-size: 1em"><%=cursoAfeto.getStatRespostasRequisitadas() - respostasCurso%></label></td> |
<td><label class="label label-info" style="font-size: 1em"><%=cursoAfeto.getStatRespostasRequisitadas()%></label></td> |
</tr> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</tbody> |
</table> |
</div> |
<% |
}//FIM DE PAINEL CLEARED |
%> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionarioCourseDashBoard.jsp |
---|
New file |
0,0 → 1,102 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="org.hibernate.Query" %> |
<%@ page import="pt.estgp.estgweb.domain.Questionario" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto" %> |
<%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.List" %> |
<%@ 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"/> |
<% |
String cursoAfetoId = request.getParameter("cursoAfetoId"); |
AbstractDao.getCurrentSession().beginTransaction(); |
QuestionarioPedagogicoCursoAfeto cursoAfeto = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().load(Long.parseLong(cursoAfetoId)); |
Questionario questionarioV = cursoAfeto.getQuestionario(); |
QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().narrow(questionarioV); |
questionario.initClearances(UserSession,true); |
request.setAttribute("Questionario",questionario); |
if(!questionario.isClear(UserSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_DASHBOARD.name())) |
{ |
return; //NAO PODE VER O PAINEL |
} |
else |
{ |
Query q = AbstractDao.getCurrentSession().createQuery( |
"select " + |
" u.codigoUnidade " + |
",u.nome " + |
",t.cdDocente " + |
",t.nomeDocente " + |
",t.dsTipologia " + |
",t.cdTurma " + |
",sum (case when u.usar = true AND rR.resposta is null then 1 else 0 end) AS porResponder " + |
",sum (case when u.usar = true AND rR.resposta is null then 0 else 1 end) AS respostasObtidas " + |
",count(distinct a.aluno)" + |
" from u in class " + QuestionarioPedagogicoUnidadeCurricularAfeta.class.getName() + " " + |
" join u.cursoAfeto c " + |
" join u.tipologiasRequisitadas t " + |
" join t.alunosRequisitados a " + |
" join a.respostaRequisitada rR " + |
" left join rR.resposta r " + |
" where c.id = :id group by t.id order by u.nome asc"); |
q.setLong("id",cursoAfeto.getId()); |
List<Object[]> tipologias = q.list(); |
%> |
<div class="col-sm-12"> |
<table class="tablesorterfiltered"> |
<thead> |
<th>Código</th> |
<th>Unidade</th> |
<th>Código Docente</th> |
<th class="filter-name filter-select">Docente</th> |
<th>Tipologia</th> |
<th>Turma</th> |
<th>Por Responder</th> |
<th>Respondidos</th> |
<th>Estudantes</th> |
</thead> |
<tbody> |
<% |
for(Object[] tipologia: tipologias) |
{ |
%> |
<tr> |
<td><%=tipologia[0]%></td> |
<td><%=tipologia[1]%></td> |
<td><%=tipologia[2]%></td> |
<td><%=tipologia[3]%></td> |
<td><%=tipologia[4]%></td> |
<td><%=tipologia[5]%></td> |
<td><label class="label label-danger" style="font-size: 1em"><%=tipologia[6]%></label></td> |
<td><label class="label label-success" style="font-size: 1em"><%=tipologia[7]%></label></td> |
<td><label class="label label-info" style="font-size: 1em"><%=tipologia[8]%></label></td> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
}//FIM DE PAINEL CLEARED |
%> |