Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1337 → Rev 1346

/branches/v3/impl/conf/language/MessageResources.properties
3,6 → 3,7
# DEFAULT MESSAGE RESOURCES
#
################################################################################
user.error.invalid.id=O id de utilizador tem de ser superior a ZERO.
# -- standard errors --
#errors.header=<UL class="statusWARNING">
#errors.prefix=<LI>
105,7 → 106,10
 
#roles
 
user.role.questionarios.admin=Administração de Questionarios
user.role.questionarios.tipologias.admin=Questionarios Tipologias
user.role.questionarios.atribuicoes.admin=Questionarios Atribuições
user.role.questionarios.admin=Administrador de Questionarios
 
user.role.all=Todos
user.role.admin=Administrador
user.role.student=Estudante
515,6 → 519,7
configuration.roles=Configurar Papeis Institucionais
configuration.roles.saved=Papeis salvos com sucesso
configuration.role.saved=Papel {0} salvo com sucesso
configuration.role.refreshed=Papeis standard refrescados, encontrados {0} novos.
 
directories.removed.leaf=Nó {0} removido com sucesso. Necessita de gravar as alterações para tornar a operação definitiva.
directories.add.leaf=Nó {0} adicionado com sucesso. Necessita de gravar as alterações para tornar a operação definitiva.
/branches/v3/impl/conf/WEB-INF/struts/struts-intranet.xml
7,7 → 7,7
<struts-config>
 
<form-beans>
<form-bean type="pt.estgp.estgweb.web.form.CertificadoForm" name="CertificadoForm"/>
</form-beans>
 
<global-exceptions>
21,6 → 21,22
 
<action-mappings>
 
 
 
<action path="/admin/criarCertificado" forward="page.certificado"/>
 
<action path="/admin/criarCertificadoController"
name="CertificadoForm"
type="pt.estgp.estgweb.web.controllers.CertificadoController"
scope="request"
parameter="dispatch"
validate="true"
input="page.certificado">
<forward name="criado" path="page.separators.home"/>
</action>
 
 
 
<action path="/user/startHome" forward="/user/home.do"/>
<action path="/user/home" forward="page.separators.home"/>
/branches/v3/impl/conf/WEB-INF/struts/tiles-pae-questionarios.xml
9,33 → 9,33
 
<definition name="page.pae.questionario.list" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/admin/questionarios/topnavQuestionarioList.jsp"/>
<put name="body" value="/admin/questionarios/questionariosList.jsp"/>
<put name="topnav" value="/user/questionarios/topnavQuestionarioList.jsp"/>
<put name="body" value="/user/questionarios/questionariosList.jsp"/>
</definition>
 
<definition name="page.pae.questionario.newEdit" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/admin/questionarios/topnavQuestionarioNewEdit.jsp"/>
<put name="body" value="/admin/questionarios/questionarioNewEdit.jsp"/>
<put name="topnav" value="/user/questionarios/topnavQuestionarioNewEdit.jsp"/>
<put name="body" value="/user/questionarios/questionarioNewEdit.jsp"/>
</definition>
 
<definition name="page.pae.questionario.admin" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/admin/questionarios/topnavQuestionarioAdmin.jsp"/>
<put name="body" value="/admin/questionarios/questionarioAdmin.jsp"/>
<put name="topnav" value="/user/questionarios/topnavQuestionarioAdmin.jsp"/>
<put name="body" value="/user/questionarios/questionarioAdmin.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"/>
<put name="topnav" value="/admin/questionarios/pedagogicoEstudante/topnavQuestionarioPedagogicoCoursesAdmin.jsp"/>
<put name="body" value="/admin/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesSelection.jsp"/>
<put name="topnav" value="/user/questionarios/pedagogicoEstudante/topnavQuestionarioPedagogicoCoursesAdmin.jsp"/>
<put name="body" value="/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesSelection.jsp"/>
</definition>
<definition name="page.pae.questionario.courses.check" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/admin/questionarios/pedagogicoEstudante/topnavQuestionarioPedagogicoCoursesCheck.jsp"/>
<put name="body" value="/admin/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesCheck.jsp"/>
<put name="topnav" value="/user/questionarios/pedagogicoEstudante/topnavQuestionarioPedagogicoCoursesCheck.jsp"/>
<put name="body" value="/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesCheck.jsp"/>
</definition>
 
</tiles-definitions>
/branches/v3/impl/conf/WEB-INF/struts/tiles-intranet.xml
25,6 → 25,11
<put name="admin" value="/layout/topnavempty.jsp"/>
</definition>
 
<!--EngSoft Exemplos-->
<definition name="page.certificado" extends="base.separators.semleft">
<put name="body" value="/admin/certificate.jsp"/>
</definition>
 
<definition name="page.separators.home" extends="base.separators.semleft">
<put name="separator" value="1" type="string"/>
<put name="body" value="/user/home.jsp"/>
/branches/v3/impl/conf/WEB-INF/struts/struts-pae-questionarios.xml
30,15 → 30,15
 
 
 
<action path="/admin/startNewQuestionario" forward="/admin/questionariosPaeNoValidation.do?dispatch=startNew"/>
<action path="/admin/listQuestionarios" forward="page.pae.questionario.list"/>
<action path="/admin/adminQuestionario" forward="page.pae.questionario.admin"/>
<action path="/admin/formQuestionariosPae" forward="/admin/questionariosPaeNoValidation.do?dispatch=form"/>
<action path="/admin/deleteQuestionario" forward="/admin/questionariosPaeNoValidation.do?dispatch=deleteQuestionario"/>
<action path="/user/startNewQuestionario" forward="/user/questionariosPaeNoValidation.do?dispatch=startNew"/>
<action path="/user/listQuestionarios" forward="page.pae.questionario.list"/>
<action path="/user/adminQuestionario" forward="page.pae.questionario.admin"/>
<action path="/user/formQuestionariosPae" forward="/user/questionariosPaeNoValidation.do?dispatch=form"/>
<action path="/user/deleteQuestionario" forward="/user/questionariosPaeNoValidation.do?dispatch=deleteQuestionario"/>
 
<action path="/admin/questionariosPaeStartAfectacoes" forward="/admin/questionariosPaeNoValidation.do?dispatch=startAfetacoes"/>
<action path="/user/questionariosPaeStartAfectacoes" forward="/user/questionariosPaeNoValidation.do?dispatch=startAfetacoes"/>
 
<action path="/admin/questionariosPaeNoValidation"
<action path="/user/questionariosPaeNoValidation"
type="pt.estgp.estgweb.web.controllers.questionarios.QuestionarioController"
name="QuestionarioForm"
scope="request"
50,7 → 50,7
<forward name="admin" path="page.pae.questionario.admin"/>
</action>
<!--Authentication-->
<action path="/admin/questionariosPae"
<action path="/user/questionariosPae"
type="pt.estgp.estgweb.web.controllers.questionarios.QuestionarioController"
name="QuestionarioForm"
scope="request"
62,7 → 62,7
</action>
 
 
<action path="/admin/questionariosPaeYearSemestre"
<action path="/user/questionariosPaeYearSemestre"
type="pt.estgp.estgweb.web.controllers.questionarios.QuestionarioYearSemestreController"
name="QuestionarioForm"
scope="request"
75,10 → 75,10
</action>
 
<!--%%%%%%%%%%%%%%%% Pedagogico Alunos Modulo %%%%%%%%%%%%%%%%%%%-->
<action path="/admin/questionarioPedagogicoStartChooseCourses" forward="page.pae.questionario.courses.selection"/>
<action path="/admin/questionarioPedagogicoStartCheckCourses" forward="page.pae.questionario.courses.check"/>
<action path="/user/questionarioPedagogicoStartChooseCourses" forward="page.pae.questionario.courses.selection"/>
<action path="/user/questionarioPedagogicoStartCheckCourses" forward="page.pae.questionario.courses.check"/>
 
<action path="/admin/questionariosPaeSelectCourses"
<action path="/user/questionariosPaeSelectCourses"
type="pt.estgp.estgweb.web.controllers.questionarios.QuestionarioCourseSelectionController"
name="QuestionarioForm"
scope="request"
/branches/v3/impl/conf/app.properties
815,11 → 815,11
questionario.p27=O local onde se realizou o Estágio ou o Projeto foi adequado
 
pt.estgp.estgweb.domain.IAnswersProcessor.1=pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor
pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.jsp=/admin/questionarios/pedagogicoEstudante/questionarioAdminPanel.jsp
pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.jsp=/user/questionarios/pedagogicoEstudante/questionarioAdminPanel.jsp
pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.title=Processador de Respostas para Questionários de Avaliação Pedagógica para Estudantes
 
#pt.estgp.estgweb.domain.IAnswersProcessor.2=pt.estgp.estgweb.services.questionarios.PedagogicoDocentesProcessor
pt.estgp.estgweb.services.questionarios.PedagogicoDocentesProcessor.jsp=/admin/questionarios/pedagogicoDocente/questionarioAdminPanel.jsp
pt.estgp.estgweb.services.questionarios.PedagogicoDocentesProcessor.jsp=/user/questionarios/pedagogicoDocente/questionarioAdminPanel.jsp
pt.estgp.estgweb.services.questionarios.PedagogicoDocentesProcessor.title=Processador de Respostas para Questionários de Avaliação Pedagógica para Docentes
 
#days until a certificate expire
/branches/v3/impl/conf/berserk/sd.xml
33,6 → 33,18
</filterChains>
</service>
<service>
<name>CreateCertificate</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
<description>Create a certificate for a User id</description>
<isTransactional>true</isTransactional>
<defaultMethod>createCertificateForId</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<!--<chain name="Admins"/>-->
</filterChains>
</service>
<service>
<name>Logout</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.LogoutService</implementationClass>
<description>Logout a User</description>
2437,6 → 2449,19
</service>
 
<service>
<name>RefreshNewStandardRoles</name>
<implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>checkIfAreNewStandardRoles</defaultMethod>
<filterChains>
<!--<chain name="Logger"/>-->
<chain name="Session"/>
<chain name="Admins"/>
</filterChains>
</service>
 
<service>
<name>AddUpdateDirtyRolesTranslation</name>
<implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
<description></description>
2613,13 → 2638,29
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<chain name="AdminsOrQuestionarioAdmins"/>
<chain name="AdminsOrQuestionarioUsers"/>
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
 
 
<service>
<name>QuestionarioUpdateCheckVarPedagogico</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>updateCheckVarPedagogico</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<chain name="AdminsOrQuestionarioUsers"/>
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
 
 
 
 
 
</serviceDefinitions>
/branches/v3/impl/conf/berserk/fcd.xml
476,6 → 476,14
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
<filterChain>
<name>AdminsOrQuestionarioUsers</name>
<expression>AuthenticatedUsers &amp;&amp; (RoleUsers("admin") || RoleUsers("questionarios.admin") || RoleUsers("questionarios.tipologias.admin") || RoleUsers("questionarios.atribuicoes.admin"))</expression>
<description>Admins Control Chain</description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.AdminControlFilter</filterClass>
</filterChain>
 
<filterChain>
<name>AdminsOrQuestionarioAdmins</name>
<expression>AuthenticatedUsers &amp;&amp; (RoleUsers("admin") || RoleUsers("questionarios.admin"))</expression>
<description>Admins Control Chain</description>
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java
426,6 → 426,8
 
 
public static final String QUESTIONARIOS_ADMIN = "questionarios.admin";
public static final String QUESTIONARIOS_ASSIGNEMENTS_ADMIN = "questionarios.atribuicoes.admin";
public static final String QUESTIONARIOS_TIPOLOGIAS_ADMIN = "questionarios.tipologias.admin";
public static final boolean USE_XSL_CACHE =ConfigProperties.getBooleanProperty("xsl.use.cache");
 
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java
60,6 → 60,7
int unitsAddedToStudents = 0;
int alunosErasmusCadeirasEcontradas = 0;
int turmaMoreThanOneRegularCourse = 0;
int unidadesProcuradasNumCursoAleatorio = 0;
List<String> turmasMoreThanOneCourse = new ArrayList<String>();
int turmasWrongSubscriptions = 0;
int estudantesDesaparecidosDoSigesNesteAno = 0;
100,6 → 101,7
estudantesComCadeirasSemTurma = 0;
turmasComCodigoNullRemovidas = 0;
unidadesSoComAlunosExtra = 0;
unidadesProcuradasNumCursoAleatorio = 0;
ImportCourseService.resetCourseYearTurmaPolicy();
 
 
149,6 → 151,8
}
 
Aluno alunoSiges = service.loadInscrito(c,institutionCode, year,conn);
if(alunoSiges.getCodigo()==15726)
System.out.println("");
Student s = loadStudent(alunoSiges);
boolean newUser = false;
if(s.getId() <= 0)
260,6 → 264,8
serviceLogInfo("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded);
serviceLogInfo("#Alunos com Unidades repetidas: " + unitsRepeated);
serviceLogInfo("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
if(unidadesProcuradasNumCursoAleatorio > 0)
serviceLogInfo("######!!!!!Unidades atribuidas com curso aleatoriamente escolhido derivado a duvidas: " + unidadesProcuradasNumCursoAleatorio + " (procurar por \"tem mais de um curso vamos procurar num qualquer\")");
if(turmaMoreThanOneRegularCourse > 0)
{
serviceLogWarn("#########!!!!!!!ATENÇÃO TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse);
319,6 → 325,9
logger.info("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded);
logger.info("#Alunos com Unidades repetidas: " + unitsRepeated);
logger.info("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
if(unidadesProcuradasNumCursoAleatorio > 0)
logger.warn("######!!!!!Unidades atribuidas com curso aleatoriamente escolhido derivado a duvidas: " + unidadesProcuradasNumCursoAleatorio + " (procurar por \"tem mais de um curso vamos procurar num qualquer\")");
 
if(turmaMoreThanOneRegularCourse > 0)
{
logger.warn("#########!!!!!!!ATENÇÃO TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse);
709,17 → 718,11
logger.warn(msg);
serviceLogWarn(msg);
}
sendNotificationAdmin("Atenção existe um caso de dúvida nas inscrições",msgAdmin);
sendNotificationAdmin("Atenção existe um caso de dúvida nas inscrições vamos devolver código invalido de curso para o sistema atribuir o primeiro onde a unidade se encontre",msgAdmin);
return -1;
}
if(cursos.size() > 0)
else if(cursos.size() == 1)
{
/**Para garantir que se atribui sempre o mesmo curso em mais que uma iteração**/
Collections.sort(cursos,new Comparator<Integer>() {
@Override
public int compare(Integer integer, Integer integer2) {
return integer - integer2;
}
});
return cursos.get(0);
}
else
950,13 → 953,11
}
else if(turmasAfectadas.get(turma) == null)
{
 
//Este caso nao devera acontecer mas fica aqui a seguranca
String msg = "Atenção turma com código " + turma.getTurma() + " nao existe nas afetadas e nao e' local unit:" + turma.getCourseUnit().getCode() + " aluno:" + student.getSigesCode();
String msg = "Atenção turma com código " + turma.getTurma() + " nao existe nas afetadas e vai ser removida ao aluno e nao e' local unit:" + turma.getCourseUnit().getCode() + " aluno:" + student.getSigesCode();
serviceLogError(msg);
logger.error(msg);
}
else
{
iter.remove();
turma.getStudents().remove(student);
}
1126,11 → 1127,21
logger.info(msg);
}
codigoDoCurso = getRealCourse(disciplina.getCdTurma(),year,institutionCode,disciplina.getCdDuracao(),logMessages);
 
if(codigoDoCurso != null)
{
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCurso;
serviceLogInfo(msg);
logger.info(msg);
if(codigoDoCurso < 0)
{
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " turma: " + disciplina.getCdTurma() + " tem mais de um curso vamos procurar num qualquer curso onde exista ";
serviceLogInfo(msg);
logger.info(msg);
}
else
{
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCurso;
serviceLogInfo(msg);
logger.info(msg);
}
}
else
{
1149,12 → 1160,34
//Politica de separação de turmas em unidades independentes neste curso
boolean separateTurmas = ImportCourseService.loadCourseYearTurmasPolicy(codigoDoCurso, year, logMessages, this);
List<CourseUnit> courseUnits;
if(separateTurmas)
courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueWithTurma("" + disciplina.getCodigo(), "" + codigoDoCurso, disciplina.getCdDuracao(), disciplina.getCdLectivo(), disciplina.getCdTurma());
 
/*BLOCO DE LOAD DAS UNIDADES*/
if(codigoDoCurso <= 0) //O curso encontrado foi mais que um vamos fazer o melhor esforço e atribuir um que dê isto apenas deverá acontecer com erasmus e em turmas com mais que um curso
{
unidadesProcuradasNumCursoAleatorio++;
if(separateTurmas)
courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueWithTurmaIgnoreCourse("" + disciplina.getCodigo(), disciplina.getCdDuracao(), disciplina.getCdLectivo(), disciplina.getCdTurma());
else
courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueIgnoreCourse("" + disciplina.getCodigo(),disciplina.getCdDuracao(),disciplina.getCdLectivo());
if(courseUnits.size() > 0)
{
//Neste caso adicionamos apenas a primeira
CourseUnit cu = courseUnits.get(0);
courseUnits = new ArrayList<CourseUnit>();
courseUnits.add(cu);
}
}
else
courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCurso,disciplina.getCdDuracao(),disciplina.getCdLectivo());
{
if(separateTurmas)
courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueWithTurma("" + disciplina.getCodigo(), "" + codigoDoCurso, disciplina.getCdDuracao(), disciplina.getCdLectivo(), disciplina.getCdTurma());
else
courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCurso,disciplina.getCdDuracao(),disciplina.getCdLectivo());
}
/*BLOCO DE LOAD DAS UNIDADES*/
 
 
 
if(courseUnits != null && courseUnits.size() > 1 )
{
studentComUnidadesRepetidas=true;
1347,7 → 1380,7
System.out.println("YEAR:" + year);
if(args != null && args.length > 0)
year = args[0];
String institutionCode = "1";
String institutionCode = "3";
if(args != null && args.length > 1)
institutionCode = args[1];
AbstractDao.getCurrentSession().beginTransaction();
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/AlunoDao.java
126,15 → 126,21
ArrayList<Disciplina> disciplinas = new ArrayList<Disciplina>();
Connection conn = getCurrentConnection();
PreparedStatement catCMD = conn.prepareStatement("SELECT " +
"CSE.T_INSCRI.CD_TIPDIS AS CD_TIPDIS, " +
"CSE.T_INSCRI.CD_DISCIP AS CD_DISCIP, " +
"CSE.T_INSCRI.CD_DURACAO AS CD_DURACAO, " +
"CSE.T_INSCRI.CD_CURSO AS CD_CURSO, " +
"CSE.T_INSCRI.CD_TURMA_T AS CD_TURMA, " +
"CSE.T_INSCRI.CD_TURMA_P, " +
"CSE.T_INSCRI.CD_TURMA_L, " +
"CSE.T_INSCRI.CD_TURMA_TP " +
"FROM CSE.T_ALUNOS INNER JOIN (CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP = CSE.T_TBDISCIP.CD_DISCIP) ON CSE.T_ALUNOS.CD_ALUNO = CSE.T_INSCRI.CD_ALUNO WHERE CSE.T_ALUNOS.CD_ALUNO = " + codigo + " AND (((CSE.T_TBDISCIP.CD_INSTITUIC)=" + codigoInstituicao + ") AND ((CSE.T_INSCRI.CD_LECTIVO)='" + ano + "') AND ((CSE.T_ALUNOS.CD_SITUA_PAR)=1) AND ((CSE.T_INSCRI.CD_STATUS)<>5) AND (CSE.T_INSCRI.CD_TIPDIS = 2 OR CSE.T_INSCRI.CD_TIPDIS = 1 OR CSE.T_INSCRI.CD_TIPDIS = 6))");
" CSE.T_INSCRI.CD_TIPDIS AS CD_TIPDIS, " +
" CSE.T_INSCRI.CD_DISCIP AS CD_DISCIP, " +
" CSE.T_INSCRI.CD_DURACAO AS CD_DURACAO, " +
" CSE.T_INSCRI.CD_CURSO AS CD_CURSO, " +
" CSE.T_INSCRI.CD_TURMA_T AS CD_TURMA, " +
" CSE.T_INSCRI.CD_TURMA_P, " +
" CSE.T_INSCRI.CD_TURMA_L, " +
" CSE.T_INSCRI.CD_TURMA_TP " +
" FROM CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP = CSE.T_TBDISCIP.CD_DISCIP" +
" WHERE CSE.T_INSCRI.CD_ALUNO = " + codigo + " " +
" AND" +
" CSE.T_TBDISCIP.CD_INSTITUIC= " + codigoInstituicao + " AND " +
" CSE.T_INSCRI.CD_LECTIVO='" + ano + "' AND " +
" CSE.T_INSCRI.CD_STATUS<>5 AND " +
" (CSE.T_INSCRI.CD_TIPDIS = 2 OR CSE.T_INSCRI.CD_TIPDIS = 1 OR CSE.T_INSCRI.CD_TIPDIS = 6) ");
//CD_TIPDISC = 1 Inscricoes normais
//CD_TIPDISC = 2 Nao conta para media
//CD_TIPDISC = 3 Qualitativa
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/DisciplinaDao.java
116,8 → 116,11
while (aReader.next())
{
Disciplina d = getDisciplina(aReader);
d.setCdDuracao(semestre);
d.setCdLectivo(ano);
d.setTipologiasHorario(loadTipologiasHorario(ano,semestre,d.getCodigoCurso(),d.getCodigo(),conn));
d.setTipologiasSumario(loadTipologiasSumarios(ano,semestre,d.getCodigoCurso(),d.getCodigo(),conn));
d.setTipologiasHorarioTrabalho(loadTipologiasHorarioTrabalho(ano,semestre,d.getCodigoCurso(),d.getCodigo(),conn));
disciplinas.add(d);
}
//close the reader
263,5 → 266,89
ps.close();
return tipologiasSumario;
}
 
 
/**
* So muda do de cima porque usa a entrada TipoDeOcupação do Horario de Trabalho
* @param ano
* @param semestre
* @param codigoCurso
* @param codigoDisciplina
* @param conn
* @return
* @throws SQLException
*/
private TipologiasSumario loadTipologiasHorarioTrabalho(String ano,
String semestre,
Integer codigoCurso,
Integer codigoDisciplina,
Connection conn) throws SQLException {
TipologiasSumario tipologiasSumario = new TipologiasSumario();
tipologiasSumario.setTipologias(new ArrayList<TipologiasSumario.TipologiaSumario>());
PreparedStatement ps = conn.prepareStatement(
"SELECT COUNT( DISTINCT (CD_SUMARIO)) AS OCURR, " +
" CSH.T_DETALHE_AULA.CD_TURMA AS DA_CD_TURMA , " +
" CSH.T_OCUPACOES.CD_TIPO_OCUPACAO AS CD_TIPO_OCUPACAO," +//CAMPO TIPO OCUP
" CSH.T_DETALHE_AULA.CD_DOCENTE AS DA_CD_DOCENTE " +
"FROM " +
" ((((CSH.T_OCUPACOES LEFT OUTER JOIN CSH.T_DETALHE_OCUPACAO ON " +
" CSH.T_DETALHE_OCUPACAO.CAMPO_REFERENCIA = CSH.T_OCUPACOES.CAMPO_REFERENCIA " +
" AND " +
" CSH.T_DETALHE_OCUPACAO.DT_OCUPACAO = CSH.T_OCUPACOES.DT_OCUPACAO " +
" AND " +
" CSH.T_DETALHE_OCUPACAO.NR_OCUPACAO = CSH.T_OCUPACOES.NR_OCUPACAO " +
" ) " +
" LEFT OUTER JOIN CSH.T_DETALHE_AULA ON " +
" CSH.T_DETALHE_AULA.CAMPO_REFERENCIA = CSH.T_OCUPACOES.CAMPO_REFERENCIA " +
" AND " +
" CSH.T_DETALHE_AULA.DT_OCUPACAO = CSH.T_OCUPACOES.DT_OCUPACAO " +
" AND " +
" CSH.T_DETALHE_AULA.NR_OCUPACAO = CSH.T_OCUPACOES.NR_OCUPACAO " +
" ) " +
" LEFT OUTER JOIN CSD.T_SUMARIOS_AULAS ON " +
" CSD.T_SUMARIOS_AULAS.CD_SUMARIO = CSH.T_DETALHE_AULA.CD_SUMARIO " +
" ) " +
" LEFT OUTER JOIN CSE.T_TURMA ON " +
" CSH.T_DETALHE_AULA.CD_TURMA = CSE.T_TURMA.CD_TURMA " +
" AND " +
" CSH.T_DETALHE_AULA.CD_LECTIVO = CSE.T_TURMA.CD_LECTIVO " +
" AND " +
" CSH.T_DETALHE_AULA.CD_PERIODO = CSE.T_TURMA.CD_DURACAO " +
" AND " +
" CSH.T_DETALHE_AULA.CD_DISCIP = CSE.T_TURMA.CD_DISCIP " +
" ) " +
" WHERE " +
" CSH.T_DETALHE_AULA.CD_LECTIVO = ? " +
" AND CSH.T_DETALHE_AULA.CD_PERIODO = ? " +
" AND CSH.T_DETALHE_AULA.CD_DISCIP= ? " +
" AND (CSE.T_TURMA.CD_CURSO = ? OR CSE.T_TURMA.CD_CURSO is NULL) " +
" AND CSD.T_SUMARIOS_AULAS.CD_ESTADO is not null " +
" GROUP BY " +
" CSH.T_DETALHE_AULA.CD_TURMA, " +
" CSH.T_OCUPACOES.CD_TIPO_OCUPACAO, " +
" CSH.T_DETALHE_AULA.CD_DOCENTE ");
ps.setString(1,ano);
ps.setString(2,semestre);
ps.setInt(3,codigoDisciplina);
ps.setInt(4,codigoCurso);
 
ResultSet rs = ps.executeQuery();
 
while(rs.next())
{
TipologiasSumario.TipologiaSumario th = new TipologiasSumario.TipologiaSumario();
th.setCdTurma(getString("DA_CD_TURMA",rs));
th.setCdDocente(getDecimal("DA_CD_DOCENTE", rs));
th.setCdTipoAula(getDecimal("CD_TIPO_OCUPACAO", rs));
th.setNumeroOcorrencias(getDecimal("OCURR",rs));
if(th.getCdTurma() != null && th.getCdDocente() > 0 && th.getCdTipoAula() > 0)
tipologiasSumario.getTipologias().add(th);
else
logger.error("Tipologia de sumario invalida encontrada na disciplina: (" + codigoDisciplina + "): " + th.toString());
}
rs.close();
ps.close();
return tipologiasSumario;
}
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/domain/Disciplina.java
56,6 → 56,7
 
public TipologiasHorario tipologiasHorario;
public TipologiasSumario tipologiasSumario;
public TipologiasSumario tipologiasHorarioTrabalho;
 
public Disciplina()
{
122,6 → 123,14
this.tipologiasSumario = tipologiasSumario;
}
 
public TipologiasSumario getTipologiasHorarioTrabalho() {
return tipologiasHorarioTrabalho;
}
 
public void setTipologiasHorarioTrabalho(TipologiasSumario tipologiasHorarioTrabalho) {
this.tipologiasHorarioTrabalho = tipologiasHorarioTrabalho;
}
 
public Integer getCodigo() {
return codigo;
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
303,7 → 303,12
Disciplina inCache = disciplinasMap.get(getDisciplinaUniqueRef(d,year,logMessages));
 
if (inCache != null
// && !turmasSeparatedPolicy // Com politica de turmas separadas no curso a repeticao é normal uma por turma
// && !turmasSeparatedPolicy // Com politica de turmas separadas no curso a repeticao NÃO é normal
//A disciplina em cache significa que já foi importada da lista do SIGES uma disciplina
//com o mesmo código unico
//No caso dos cursos normais onde se encontram varias turmas é normal aparecerem aqui repetições
// nesses casos apenas uma vai para o Mapa, o que acontece é que precisamos de uma entrada por turma
//para os casos dos cursos de turmas separadas
)
{
logMessages.addMessage(new DefaultLogMessage("import.semestre." + semestre, LogMessageTypeEnum.INFO,"Other turma for a unit in " + semestre + ":" + d.getCodigo().intValue() + " -> " + d.getCdTurma()));
480,6 → 485,27
}
 
}
for(TipologiasSumario.TipologiaSumario tipologiaHorarioTrabalho : d.getTipologiasHorarioTrabalho().getTipologias())
{
CourseUnitImpl.Tipologia tipoSum = new CourseUnitImpl.Tipologia();
String codigoCorrespondenteTipoAula =
ConfigProperties.getProperty("netpa.code.ocup." + tipologiaHorarioTrabalho.getCdTipoAula() + ".tipo.aula");
if(codigoCorrespondenteTipoAula != null && codigoCorrespondenteTipoAula.length() > 0)
{
tipoSum.setOcorrencias(null);
tipoSum.setDsTipologia(ConfigProperties.getProperty("netpa.tipo.aula." + codigoCorrespondenteTipoAula));
tipoSum.setCdTipologia("" + codigoCorrespondenteTipoAula);
tipoSum.setCdTurma(tipologiaHorarioTrabalho.getCdTurma());
tipoSum.setCdDocente("" + tipologiaHorarioTrabalho.getCdDocente());
if(!t.getTipologiasHorarioReferencia().contains(tipoSum))
t.getTipologiasHorarioReferencia().add(tipoSum);
}
else
{
System.out.println("Tipologia: cd tipo ocup ignorado:" + tipologiaHorarioTrabalho.getCdTipoAula());
}
 
}
c.setTipologiasClass(t);
} catch (Exception e) {
logger.error(e, e);
644,7 → 670,7
public static void main(String[] args) throws ServiceException
{
String year = DaoFactory.getConfigurationDaoImpl().getImportsDefaultImportYearCreateTransaction();
int institutionCode = DaoFactory.getConfigurationDaoImpl().getInstitutionCodeCreateTransaction();
int institutionCode = 3;// DaoFactory.getConfigurationDaoImpl().getInstitutionCodeCreateTransaction();
if(args != null && args.length > 0)
year = args[0];
if(args != null && args.length > 1)
/branches/v3/impl/src/java/pt/estgp/estgweb/services/users/UserRoleConfigService.java
121,6 → 121,36
return roles;
}
 
public Integer checkIfAreNewStandardRoles(UserSession userSession)
{
int totalNew = 0;
BufferedReader reader = new BufferedReader(new StringReader(INIT_ROLES));
String roleSpec = null;
try {
while((roleSpec = reader.readLine()) != null)
{
 
String[] fields = roleSpec.split("=");
String role = fields[0].substring("user.role.".length());
String desc = fields[1];
 
UserRoleConfigImpl userRoleConfig = DaoFactory.getUserRoleConfigDaoImpl().findByRole(role);
if(userRoleConfig == null)
{
totalNew++;
userRoleConfig = DomainObjectFactory.createUserRoleConfigImpl();
userRoleConfig.setRole(role.trim());
userRoleConfig.setValue(desc);
userRoleConfig.setValid(true);
DaoFactory.getUserRoleConfigDaoImpl().save(userRoleConfig);
}
}
} catch (IOException e) {
logger.error(e,e);
}
return totalNew;
}
 
private static final String INIT_ROLES = "user.role.all=Todos\n" +
"user.role.admin=Administrador\n" +
"user.role.student=Estudante\n" +
142,7 → 172,9
"user.role.worker=Funcionário\n" +
"user.role.invited=Convidado\n" +
"user.role.services=Serviços\n" +
"questionarios.admin=Administração de Questionários\n" +
"user.role.questionarios.tipologias.admin=Questionarios Tipologias\n" +
"user.role.questionarios.atribuicoes.admin=Questionarios Atribuições\n" +
"user.role.questionarios.admin=Administração de Questionários\n" +
"user.role.servicesPrograms=Gestão de Programas Curriculares\n" +
"user.role.administrativeCouncil=Membro da Direcção\n" +
"user.role.administrativeCouncil.director=Director\n" +
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/UpdateCoursesAndUnitsJobService.java
463,6 → 463,8
serviceLogInfo(msg);
logger.info(msg);
unidadeAfeta = DomainObjectFactory.createQuestionarioPedagogicoUnidadeCurricularAfeta();
unidadeAfeta.setUsar(true);
unidadeAfeta.setVista(false);
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().save(unidadeAfeta);
}
 
483,6 → 485,7
checkTurmas(cur, unidadeAfeta);
checkStudents(cur, unidadeAfeta);
 
 
if(unidadeAfeta.isMarked())
cursoAfeto.incMarcadas();
 
633,4 → 636,25
}
 
}
 
public void updateCheckVarPedagogico(long questionarioId,long unidadeAfetaId, String op,String val,UserSession session, QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
 
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name()) && !questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name()))
{
throw new NotAuthorizedException("Nao tem autorização para alterar as tipologias");
}
QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidade = (QuestionarioPedagogicoUnidadeCurricularAfetaImpl) DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().load(unidadeAfetaId);
if(op.equals("usar"))
{
unidade.setUsar(Boolean.parseBoolean(val));
}
else if(op.equals("vista"))
{
unidade.setVista(Boolean.parseBoolean(val));
}
else if(op.equals("observacoes"))
{
unidade.setObs(val);
}
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/PedagogicoAlunosProcessor.java
1,5 → 1,6
package pt.estgp.estgweb.services.questionarios;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.IAnswersProcessor;
import pt.estgp.estgweb.domain.JobServiceTask;
import pt.estgp.estgweb.domain.QuestionarioImpl;
47,28 → 48,36
 
public void initClearances(QuestionarioImpl q, UserSessionImpl usession, SimpleClearanceRuledSupport s)
{
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().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
{
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(q.getCourseSelectionTaskId() <= 0)
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name(),usession);
else
 
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
if(q.getCourseSelectionTaskId() <= 0)
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
{
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);
}
}
}
76,9 → 85,27
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition() &&
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition())
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_ASSIGN_ANSWERS.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS.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_ADMIN))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name(),usession);
}
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_ASSIGN_ANSWERS.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS.name(),usession);
}
}
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
324,10 → 324,10
* @param userId
* @return the certificate string to use in URL
*/
public String createCertificate(long userId)
public String createCertificateForId(long userId, UserSession usersession)
{
User u = DaoFactory.getUserDaoImpl().load(userId);
return createCertificate(u);
return createCertificate(u, usersession);
}
/**
* Create a new Certificate for usage in URL auto login
335,7 → 335,7
* @param user to crate certificate
* @return the certificate string
*/
public String createCertificate(User user)
public String createCertificate(User user, UserSession usersession)
{
String certificate = user.getId()
+ "-" + System.currentTimeMillis()
352,7 → 352,7
public static void main(String [] args)
{
AbstractDao.getCurrentSession().beginTransaction();
String certificate = new AuthenticateService().createCertificate(1691);
String certificate = new AuthenticateService().createCertificateForId(1691,null);
AbstractDao.getCurrentSession().getTransaction().commit();
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java
47,6 → 47,7
private CourseUnit courseUnit;
private UserView responsableTeacher;
private Set<UserView> teachers;
private Set<UserView> studentsWithoutTurma;
private Set<UserView> students;
private List<UserView> studentsOrderedByName;
private List<UserView> studentsOrderedByNumber;
173,6 → 174,7
this.id = courseUnit.getId();
teachers = new HashSet<UserView>();
students = new HashSet<UserView>();
studentsWithoutTurma = new HashSet<UserView>();
if(initTeachers && courseUnit.getTeachers() != null)
{
responsableTeacher = new UserView(courseUnit.getResponsableTeacher());
203,7 → 205,28
turmas.add(tv);
}
}
else
logger.error("Unidade sem turmas: " + courseUnit.getName() + " (" + courseUnit.getCode() + ")");
}
 
if(students.size() != courseUnit.getStudents().size())
{
for(Student s: courseUnit.getStudents())
{
boolean found = false;
for(UserView uv : students)
{
if(uv.getId() == s.getId())
{
found = true;
break;
}
}
if(!found)
studentsWithoutTurma.add(new UserView(s));
}
}
 
if(initBlog)
{
blog = new BlogView(((CourseUnitImpl)courseUnit).getUnitBlog(),this);
221,6 → 244,10
courseView = new CourseView(courseUnit.getCourse(),false);
}
 
public Set<UserView> getStudentsWithoutTurma() {
return studentsWithoutTurma;
}
 
public String getEvaluationStreamId() {
return evaluationStreamId;
}
327,6 → 354,68
return 0;
}
 
public int getStudentsTurmaSize(String turma)
{
for(CourseUnitTurmaView turmaView : turmas)
{
if(turmaView.getTurma().equals(turma))
return turmaView.getStudents().size();
}
return 0;
}
 
public List<UserView> getStudentsTurmaOrderedByName(String turma)
{
ArrayList<UserView> studentsOrderedByName = new ArrayList<UserView>();
for(CourseUnitTurmaView turmaView : turmas)
{
if(turmaView.getTurma().equals(turma))
studentsOrderedByName.addAll(turmaView.getStudents());
}
Collections.sort(studentsOrderedByName,new Comparator<UserView>()
{
 
public int compare(UserView o1, UserView o2)
{
if(o1 == null || o1.getName() == null)
return 1;
if(o2 == null || o2.getName() == null)
return -1;
return o1.getName().compareTo(o2.getName());
}
}
);
 
return studentsOrderedByName;
}
 
public List<UserView> getStudentsTurmaOrderedByNumber(String turma)
{
ArrayList<UserView> studentsOrderedByName = new ArrayList<UserView>();
for(CourseUnitTurmaView turmaView : turmas)
{
if(turmaView.getTurma().equals(turma))
studentsOrderedByName.addAll(turmaView.getStudents());
}
Collections.sort(studentsOrderedByName,new Comparator<UserView>()
{
 
public int compare(UserView o1, UserView o2)
{
if(o1 == null || o1.getCode() == 0)
return 1;
if(o2 == null || o2.getCode() == 0)
return -1;
return o1.getCode() - o2.getCode();
}
}
);
 
return studentsOrderedByName;
}
 
 
 
public void setCourseUnitAssignements(List<CourseUnitAssignementView> courseUnitAssignements)
{
this.courseUnitAssignements = courseUnitAssignements;
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioImpl.java
278,28 → 278,39
 
SimpleClearanceRuledSupport s = new SimpleClearanceRuledSupport();
 
if((usession.getUser().isSuperuserOrAdmin() || usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_ADMIN)
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_TIPOLOGIAS_ADMIN ))
{
 
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_FORM.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_ADMIN.name(),usession);
if(getStateEnum() == QuestionarioImpl.State.CREATED &&
getQuestionarioHistoryDrive() != null &&
getiAnswersProcessorClass() != null)
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_ANSWER_PROCESSOR.name(),usession);
if(getStateEnum() == QuestionarioImpl.State.CREATED &&
getQuestionarioHistoryDrive() != null &&
getiAnswersProcessorClass() != null)
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_ANSWER_PROCESSOR.name(),usession);
}
}
//ANO SEMESTRE ESPECIFICO apenas neste estado, em atribuição de respostas e respostas atribuidas já não permite
if(getStateEnum() == QuestionarioImpl.State.ASSIGNATION_DETAILS)
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name(),usession);
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name(),usession);
}
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_ASSIGNATION_OPERATIONS.name(),usession);
 
getiAnswersProcessorClass().initClearances(this,usession,s);
 
 
}
if(getStateEnum() == State.ASSIGNING_ANSWERS_PROCESSEMENT)
{
312,6 → 323,7
public static enum QuestionarioClearancesOperation
{
 
QUESTIONARIO_NEW_FORM,
QUESTIONARIO_SAVE_FORM,
QUESTIONARIO_SEE_FORM,
QUESTIONARIO_SEE_ADMIN,
327,6 → 339,7
QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES,
QUESTIONARIO_CHANGE_TIPOLOGIES,
QUESTIONARIO_START_ASSIGN_ANSWERS,
QUESTIONARIO_CHANGE_ASSIGNEMENTS,
;
 
public static QuestionarioClearancesOperation parse(String clearance)
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
186,7 → 186,27
", " + getSemestre() + " of " + getImportYear() + " - " + getName() + " Turma - " + getCdTurma();
}
 
public int studentsSize()
{
if(getStudents() !=null)
return getStudents().size();
return 0;
}
 
public int studentsTurmaSize()
{
int countTotalStudentsTurmas = 0;
if(getTurmas() == null)
return 0;
for(CourseUnitTurma turma: getTurmas())
{
if(turma.getStudents() != null)
countTotalStudentsTurmas+=turma.getStudents().size();
}
return countTotalStudentsTurmas;
}
 
 
public boolean hasStudent(long studentId, boolean transaction)
{
Set<StudentImpl> students;
462,7 → 482,7
tipologiaPersistent.setCourseUnitTurma(findTurma(myTipo.getCdTurma()));
if(tipologiaPersistent.getCourseUnitTurma() == null || tipologiaPersistent.getTeacher() == null)
{
logger.error("Turma ou professor nao encontrados enquanto fazia uma tipologia persistente");
logger.error("Turma ou professor nao encontrados enquanto fazia uma tipologia persistente: turma:" + myTipo.getCdTurma() + " teacher code: " + myTipo.getCdDocente());
return null;
}
return tipologiaPersistent;
554,7 → 574,7
}
 
public Integer getOcorrencias() {
return ocorrencias;
return ocorrencias == null ? 0:ocorrencias;
}
 
public void setOcorrencias(Integer ocorrencias) {
570,7 → 590,7
protected String cdTurma;
protected String cdTipologia;
protected String dsTipologia;
protected Integer ocorrencias; // apenas faz sentido nos sumarios. no horario ref nao.
protected Integer ocorrencias = 0; // apenas faz sentido nos sumarios. no horario ref nao.
 
protected boolean use; //campo auxiliar para marcar se vai ser ou não usada nas afetacoes especificas
//por omissão apenas as que têm sumários
596,9 → 616,13
}
 
public Integer getOcorrencias() {
return ocorrencias;
return ocorrencias == null ? 0:ocorrencias;
}
 
public boolean hasOcorrencias() {
return ocorrencias != null && ocorrencias > 0;
}
 
public void setOcorrencias(Integer ocorrencias) {
this.ocorrencias = ocorrencias;
}
974,14 → 998,16
simples.setCdTurma(tipo.getCdTurma());
simples.setCdTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE);
simples.setDsTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_DS);
if(tipo.getOcorrencias() > 0)
if(tipo.hasOcorrencias())
{
simples.setOcorrencias(tipo.getOcorrencias());
}
turmasDocente.put(tipo.getCdTurma(),simples);
}
if(tipo.getOcorrencias() > 0)
if(tipo.hasOcorrencias())
{
if(simples.getOcorrencias() == null)
simples.setOcorrencias(0);
simples.setOcorrencias(simples.getOcorrencias()+tipo.getOcorrencias());
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoCursoAfetoDaoImpl.java
1,5 → 1,7
package pt.estgp.estgweb.domain.dao.impl;
 
import jomm.dao.impl.AbstractDao;
import org.hibernate.Query;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto;
 
import java.util.List;
30,4 → 32,41
.add(eq("questionario.id", questionarioId))
.list();
}
 
 
 
 
public static class CourseStatsVars
{
public long unidades;
public long marcadas;
public long observadas;
public long porVer;
public long naoUsadas;
}
 
public CourseStatsVars loadStats(long cursoAfetoId)
{
CourseStatsVars courseStatsVars = new CourseStatsVars();
Query q = AbstractDao.getCurrentSession().createQuery("SELECT " +
" sum (case when u.vista = false then 1 else 0 end) AS porVer " +
",sum (case when u.usar = false then 1 else 0 end) AS naoUsadas " +
",sum (case when u.marked = true then 1 else 0 end) AS marked " +
",sum (case when u.obs is not NULL and u.obs != '' then 1 else 0 end) AS observadas " +
",count(distinct u.id) AS unidades " +
"from " + QuestionarioPedagogicoCursoAfeto.class.getName() + " c " +
"JOIN c.unidadesAfetas u " +
"WHERE c.id = :id " +
"GROUP BY c.id");
 
q.setLong("id",cursoAfetoId);
Object[] results = (Object[]) q.uniqueResult();
courseStatsVars.porVer = (Long) results[0];
courseStatsVars.naoUsadas = (Long) results[1];
courseStatsVars.marcadas = (Long) results[2];
courseStatsVars.observadas = (Long) results[3];
courseStatsVars.unidades = (Long) results[4];
 
return courseStatsVars;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationDaoImpl.java
27,6 → 27,7
"0," + //Erasmus ESTG
"4," + //Disciplinas Avulso ESTG
"5," + //Disciplinas Avulso ESAE
"6," + //Disciplinas Avulso ESE
"7," + //Erasmus ESAE
"19," +//Vasco da Gama
"22," +//Disciplinas Avulso ESS
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
285,18 → 285,24
.list();
}
 
public List<CourseUnit> loadBySigesCodeUniqueIgnoreCourse(String sigesCode, String semestre, String year)
{
return loadBySigesCodeUnique(sigesCode,null,semestre,year);
}
//TODO Na actualizacao de uma cadeira para o curso de TESTE mudar o coursecode para o o coursecode desse curso para nao deixar os dados duplicados e mal
//se nao a carregar unidades vai buscar a errada
public List<CourseUnit> loadBySigesCodeUnique(String sigesCode, String courseCode, String semestre, String year)
{
List<CourseUnit> cus =
createCriteria()
.add(eq("code", sigesCode))
.add(eq("courseCode", courseCode))
.add(eq("semestre", semestre))
.add(eq("importYear", year))
//not any more .add(eq("cdTurma", turma))
.list();
Criteria c = createCriteria();
if(courseCode != null)
c.add(eq("courseCode", courseCode));
 
c.add(eq("code", sigesCode))
.add(eq("semestre", semestre))
.add(eq("importYear", year));
//not any more .add(eq("cdTurma", turma))
 
List<CourseUnit> cus = c.list();
if(cus.size() > 1)
{
logger.warn("WARNING WARNING ####Two units found for: ");
307,16 → 313,20
return cus;
}
 
public List<CourseUnit> loadBySigesCodeUniqueWithTurmaIgnoreCourse(String sigesCode, String semestre, String year,String turma){
return loadBySigesCodeUniqueWithTurma(sigesCode,null,semestre,year,turma);
}
public List<CourseUnit> loadBySigesCodeUniqueWithTurma(String sigesCode, String courseCode, String semestre, String year,String turma)
{
List<CourseUnit> cus =
createCriteria()
.add(eq("code", sigesCode))
.add(eq("courseCode", courseCode))
.add(eq("semestre", semestre))
.add(eq("importYear", year))
.add(eq("cdTurma", turma))
.list();
Criteria c = createCriteria();
if(courseCode != null)
c.add(eq("courseCode", courseCode));
 
c.add(eq("code", sigesCode))
.add(eq("semestre", semestre))
.add(eq("importYear", year))
.add(eq("cdTurma", turma));
List<CourseUnit> cus = c.list();
if(cus.size() > 1)
{
logger.warn("WARNING WARNING ####Two units found for: ");
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UserRoleConfigDaoImpl.java
1,7 → 1,13
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.UserRoleConfig;
import pt.estgp.estgweb.domain.UserRoleConfigImpl;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* Created by IntelliJ IDEA.
* User: Filipe Matos
14,10 → 20,20
private static final Logger logger = Logger.getLogger(UserRoleConfigDaoImpl.class);
 
protected static UserRoleConfigDaoImpl myInstance = null;
 
public static UserRoleConfigDaoImpl getInstance() {
if (myInstance == null || !(myInstance instanceof UserRoleConfigDaoImpl))
myInstance = new UserRoleConfigDaoImpl();
return myInstance;
}
 
public UserRoleConfigImpl findByRole(String role){
List<UserRoleConfig> userRoleConfigList = createCriteria().add(eq("role", role)).list();
if(userRoleConfigList.size() > 0)
{
return (UserRoleConfigImpl) userRoleConfigList.get(0);
}
return null;
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/RoleUsers.java
43,7 → 43,7
if(RoleManager.hasRole(userSession.getUser(),roleStr))
return;
}
logger.warn(userSession.getUser().getUsername() + ": try access restricted area");
//logger.warn(userSession.getUser().getUsername() + ": try access restricted area");
throw new AccessDeniedOperationException("fail.role");
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/tags/ClearOperationTag.java
61,7 → 61,15
{
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest((HttpServletRequest) pageContext.getRequest());
ClearanceRuled ruledObj = (ClearanceRuled) RequestUtils.lookup(pageContext, name, property, null);
return ruledObj.isClear(userSession,op);
String[] ops = op.split(",");
for(String opSub: ops)
{
if(ruledObj.isClear(userSession,opSub))
{
return true;
}
}
return false;
}
 
public int doEndTag() throws JspException
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/CertificadoForm.java
New file
0,0 → 1,33
package pt.estgp.estgweb.web.form;
 
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
 
import javax.servlet.http.HttpServletRequest;
 
/**
* Created by jorgemachado on 05/04/16.
*/
public class CertificadoForm extends ApplicationForm
{
private long userId;
 
public long getUserId() {
return userId;
}
 
public void setUserId(long userId) {
this.userId = userId;
}
 
@Override
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors= new ActionErrors();
 
if(userId <= 0)
{
addMessage(errors,request,"user.error.invalid.id");
}
return errors;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/profile/ProfileForm.java
151,7 → 151,8
{
addMessageWithKeys(errors, httpServletRequest, "errors.required","username");
}
if(userView.getEmail() == null || userView.getEmail().length() == 0)
if((userView.getOutEmail() == null || userView.getOutEmail().length() == 0) &&
(userView.getEmail() == null || userView.getEmail().length() == 0))
{
addMessageWithKeys(errors, httpServletRequest, "errors.required","email");
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/profile/ProfileController.java
214,7 → 214,9
ProfileForm pF = (ProfileForm) form;
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(request, response);
long userToLoad;
if (pF.getUserView().getId() > 0)
if (request.getParameter("id")!=null)
userToLoad = Long.parseLong(request.getParameter("id"));
else if (pF.getUserView() != null && pF.getUserView().getId() > 0)
userToLoad = pF.getUserView().getId();
else
userToLoad = userSession.getUser().getId();
243,8 → 245,12
{
ProfileForm pF = (ProfileForm) form;
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(request, response);
String id = request.getParameter("id");
long userToLoad;
if (pF.getUserView().getId() > 0)
 
if (id != null)
userToLoad = Long.valueOf(id);
else if (pF.getUserView().getId() > 0)
userToLoad = pF.getUserView().getId();
else
userToLoad = userSession.getUser().getId();
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/CertificadoController.java
New file
0,0 → 1,40
package pt.estgp.estgweb.web.controllers;
 
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.web.form.CertificadoForm;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
* Created by jorgemachado on 05/04/16.
*/
public class CertificadoController extends ApplicationDispatchController
{
 
public ActionForward criarCertificadoPeloId(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable {
 
CertificadoForm frm = (CertificadoForm) form;
 
System.out.println("USER PEDIDO=" + frm.getUserId());
 
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{frm.getUserId()};
String certificado = (String) sm.execute(
RequestUtils.getRequester(request, response),"CreateCertificate",args);
 
System.out.println("Cetificado Criado=" + certificado);
 
return mapping.findForward("criado");
 
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/questionarios/QuestionarioCourseSelectionController.java
94,4 → 94,6
return mapping.findForward("coursesCheck");
}
 
 
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/configuration/UserRolesController.java
129,6 → 129,35
return mapping.findForward("userRoles");
}
 
public ActionForward checkNewRoles(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable {
 
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
 
try
{
Integer newRoles = (Integer) sm.execute(RequestUtils.getRequester(request, response), "RefreshNewStandardRoles", args, names);
addMessage(request, "configuration.role.refreshed",""+newRoles);
UserRoleProxy.setDirty();
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e, e);
throw e;
}
return mapping.findForward("userRoles");
}
 
 
 
}
/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/doc/siges/ModeloDeInformacaoPAE.docx
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/Questionarios.hbm.xml
469,7 → 469,7
</property>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" lazy="proxy" outer-join="false"/>
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="proxy" outer-join="false"/>
<set name="unidadesAfetas" lazy="true">
<set name="unidadesAfetas" lazy="true" order-by="nome asc">
<key column="curso_afeto"/>
<one-to-many class="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" />
</set>
499,6 → 499,13
<property name="profsWithoutTurma" type="int"/>
<property name="tipologias" type="int"/>
 
<property name="vista" type="boolean">
<column name="vista" default="false"/>
</property>
<property name="usar" type="boolean">
<column name="usar" default="true"/>
</property>
 
<property name="obs" type="text">
<column name="obs" sql-type="TEXT"/>
</property>
/branches/v3/impl/src/web/admin/profile/menu.jsp
32,16 → 32,19
<html:link action="/user/startProfile"><bean:message key="profile.home"/></html:link>
</li>
<li>
<html:link action="/user/startChangeProfile"><bean:message key="profile.personal.data"/></html:link>
<baco:hasRole role="admin,services">
<html:link action="/user/startChangeProfile?id=${ProfileForm.userView.id}"><bean:message key="profile.personal.data"/></html:link>
</baco:hasRole>
</li>
<baco:isModuleOn module="profile">
<logic:equal value="${ProfileForm.userView.id}" name="UserSession" property="user.id">
<li>
<html:link action="/user/startProfileCurriculum"><bean:message key="profile.curriculum"/></html:link>
</li>
 
</logic:equal>
</baco:isModuleOn>
<baco:isModuleOn module="courseunits">
<%--Se for aluno so ve o link se forem as suas se for Admin mete-se o link do profileId em uso--%>
<!--Se for aluno so ve o link se forem as suas se for Admin mete-se o link do profileId em uso-->
<baco:hasRole role="student">
<logic:equal value="${ProfileForm.userView.id}" name="UserSession" property="user.id">
<li>
73,12 → 76,16
<html:link action="/user/startProfile"><bean:message key="profile.home"/></html:link>
</div>
<div class="col-sm-4">
<html:link action="/user/startChangeProfile"><bean:message key="profile.personal.data"/></html:link>
<baco:hasRole role="admin,services">
<html:link action="/user/startChangeProfile?id=${ProfileForm.userView.id}"><bean:message key="profile.personal.data"/></html:link>
</baco:hasRole>
</div>
<baco:isModuleOn module="profile">
<div class="col-sm-4">
<html:link action="/user/startProfileCurriculum"><bean:message key="profile.curriculum"/></html:link>
</div>
<logic:equal value="${ProfileForm.userView.id}" name="UserSession" property="user.id">
<div class="col-sm-4">
<html:link action="/user/startProfileCurriculum"><bean:message key="profile.curriculum"/></html:link>
</div>
</logic:equal>
</baco:isModuleOn>
<baco:isModuleOn module="courseunits">
<%--Se for aluno so ve o link se forem as suas se for Admin mete-se o link do profileId em uso--%>
/branches/v3/impl/src/web/admin/profile/profilePersonalData.jsp
469,7 → 469,12
</baco:isNotAdmin>
<label class="control-label col-sm-2" ><bean:message key="email.institucion2"/></label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="userView.email" maxlength="250" readonly="true"/>
<baco:hasRole role="all,admin">
<html:text styleClass="form-control" property="userView.email" maxlength="250"/>
</baco:hasRole>
<baco:hasNotRole role="all,admin">
<html:text styleClass="form-control" property="userView.email" maxlength="250" readonly="true"/>
</baco:hasNotRole>
</div>
</div>
<div class="form-group">
/branches/v3/impl/src/web/admin/configuration/userRoles.jsp
99,6 → 99,8
 
<button style="float: right" class="btn btn-success" onclick="this.form.op.value='addNew';set(this.form,'addNew');this.form.submit()">Adicionar Novo</button>
 
<button style="float: right" class="btn btn-default" onclick="this.form.op.value='checkNewRoles';set(this.form,'checkNewRoles');this.form.submit()">Carregar Novos Pepeis</button>
 
<button type="button" class="btn btn-info" onclick="$('.transl').toggle();toogleFiltersTransl();">Mostrar Traduções</button>
</div>
<div class="panel-body">
/branches/v3/impl/src/web/admin/certificate.jsp
New file
0,0 → 1,22
<%@ 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" %>
 
<html:errors/>
<html:form action="/admin/criarCertificadoController">
<input type="hidden" name="dispatch" value="criarCertificadoPeloId"/>
<div class="form-group">
<label>Id do user</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="userId"/>
</div>
</div>
 
<html:submit/>
 
</html:form>
/branches/v3/impl/src/web/css/ipp/style.css
27,7 → 27,22
width: 1%;
}
 
h1 {
font-size: 1.3em !important;
margin: 5;
color: #808081;
}
 
h3 {
font-size: 1.1em !important;
 
}
h2 {
font-size: 1.2em !important;
 
}
 
 
/*********************************************************************************/
 
/****************** topnav **********************/
321,7 → 336,66
 
 
 
.listClean UL, .files UL /*Lista sem nada*/
{
LIST-STYLE-TYPE: none;
padding: 0;
/*margin-left: 5px;*/
}
 
.linkMenuBlock .linkLeftMenu li
{
border-bottom: 1px solid #808081;
}
.linkMenuBlock
{
margin-top: 15px;
}
.linkMenuBlock .linkLeftMenu{
 
border-left: 1px solid #808081;
}
.linkMenuBlockRight {
margin-top: 15px;
border-right: 1px solid #808081;
color:#323431;
}
 
.linkMenuBlock .linkMenuBlockTitle
{
border-top-left-radius: 4px !important;
border-right: 0 !important;
}
.linkMenuBlock .linkMenuBlockTitle, .linkMenuBlockRight .linkMenuBlockTitle {
border-bottom: 0px solid #323431;
background-color: #faf2cc;
color: #323431;
white-space: nowrap;
text-align: right;
padding: 4px;
margin: 0;
border: 1px solid #808081;
}
 
.linkLeftMenu ul,.linkRightMenu ul {
margin:0;
LIST-STYLE-TYPE: none;
}
 
.linkLeftMenu
{
margin-bottom:15px;
border-bottom: 1px solid #808081;
}
.linkLeftMenu li, .linkRightMenu li {
border-bottom: 1px solid #FFFFFF;
white-space: nowrap;
padding:5px;
margin:0;
}
 
 
 
/*************************************************
BOOTSTRAP OVERRIDES
*************************************************/
/branches/v3/impl/src/web/js/logtailer/logtail.js
87,8 → 87,8
self.repaint();
}
 
if (o.l){
self.idx = o.l;
if (o.lines){
self.idx = o.lines.length;
}
 
if (!self.paused){
/branches/v3/impl/src/web/public/profile/profileGrades.jsp
13,8 → 13,11
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<jsp:useBean id="ProfileForm" type="pt.estgp.estgweb.web.form.profile.ProfileForm" scope="request"/>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<div id="contentIntranet">
<div id="contentPane">
<div class="panel panel-default">
<div class="panel-heading">
<bean:message key="profile.grades"/>
</div>
<div class="panel-body">
 
<jomm:messages/>
<%--<jsp:useBean id="ProfileForm" class="pt.estgp.estgweb.web.form.profile.ProfileForm"/>--%>
/branches/v3/impl/src/web/user/courseunits/listStudentsService.jsp
New file
0,0 → 1,48
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ 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" %>
<%
if(request.getAttribute("CourseUnitView") != null)
{
%>
<jsp:include page="students.jsp"/>
<%
}
else
{
long courseUnitId = 0;
if(request.getParameter("courseUnitId")!=null)
courseUnitId = Long.parseLong(request.getParameter("courseUnitId"));
else if(request.getParameter("courseUnitView.id")!=null)
courseUnitId = Long.parseLong(request.getParameter("courseUnitView.id"));
else if(request.getParameter("courseUnit.id")!=null)
courseUnitId = Long.parseLong(request.getParameter("courseUnit.id"));
 
if(courseUnitId == 0)
{
response.sendError(404);
}
else
{
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{courseUnitId,false,true,false};//unitId,teachers,students,blog
 
pt.estgp.estgweb.domain.views.CourseUnitView courseUnitView = (pt.estgp.estgweb.domain.views.CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnit", args, names);
request.setAttribute("CourseUnitView",courseUnitView);
%>
<jsp:include page="students.jsp"/>
<%
}
 
 
}
%>
/branches/v3/impl/src/web/user/courseunits/students.jsp
1,3 → 1,5
<%@ page import="pt.estgp.estgweb.domain.views.UserView" %>
<%@ 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" %>
9,6 → 11,10
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
 
<%
String turma = request.getParameter("filterTurma");
if(turma == null && request.getAttribute("filterTurma")!=null)
turma = (String) request.getAttribute("filterTurma");
 
String fromAction = "";
String user = "";
if (request.getParameter("from") != null)
24,15 → 30,37
request.setAttribute("fromAction", fromAction);
 
String orderBy = request.getParameter("order");
if(orderBy != null && orderBy.equals("byNumber"))
request.setAttribute("students",CourseUnitView.getStudentsOrderedByNumber());
 
List<UserView> students = null;
if(turma != null)
{
if(orderBy != null && orderBy.equals("byNumber"))
students = CourseUnitView.getStudentsTurmaOrderedByNumber(turma);
else
students = CourseUnitView.getStudentsTurmaOrderedByName(turma);
}
else
request.setAttribute("students",CourseUnitView.getStudentsOrderedByName());
{
if(orderBy != null && orderBy.equals("byNumber"))
students = CourseUnitView.getStudentsOrderedByNumber();
else
students = CourseUnitView.getStudentsOrderedByName();
}
 
request.setAttribute("turma",turma);
request.setAttribute("students",students);
request.setAttribute("studentsSize",students.size());
 
 
%>
<div class="panel panel-default">
<div class="panel-body">
<p><bean:message key="courseunit.students.count"/>: ${CourseUnitView.studentsSize}</p>
<p>
<logic:notEmpty name="turma">
(${turma})
</logic:notEmpty>
<bean:message key="courseunit.students.count"/>: ${studentsSize}
</p>
<table id="myTable" class="tablesorterfiltered">
<thead>
<tr>
60,13 → 88,23
${student.code}
</td>
<td>
<logic:notEmpty name="fromAction">
<html:link action="${user}/startLoadStudentCourseUnit${fromAction}?code=${student.code}&courseUnitView.id=${CourseUnitView.id}">${student.name}</html:link>
</logic:notEmpty>
<logic:empty name="fromAction">
<html:link target="_blank" action="/user/startProfileFromHome.do?userView.id=${student.id}">${student.name}</html:link>
</logic:empty>
</td>
<td>
${student.username}
</td>
<td>
<logic:empty name="UserSession" property="user">
${student.safeEmail}
</logic:empty>
<logic:notEmpty name="UserSession" property="user">
${student.email}
</logic:notEmpty>
</td>
<baco:hasRole role="teacher">
<td>${student.phonenumber} </td>
79,4 → 117,76
</tbody>
</table>
</div>
</div>
</div>
 
 
<%
if(CourseUnitView.getStudentsWithoutTurma() != null && CourseUnitView.getStudentsWithoutTurma().size() > 0)
{
request.setAttribute("students",CourseUnitView.getStudentsWithoutTurma());
request.setAttribute("studentsSize",CourseUnitView.getStudentsWithoutTurma().size());
%>
<h2>Estudantes MAL ATRIBUIDOS, SEM TURMA, contactar a administração do sistema informático</h2>
<div class="panel panel-default">
<div class="panel-body">
<p>
<logic:notEmpty name="turma">
(${turma})
</logic:notEmpty>
<bean:message key="courseunit.students.count"/>: ${studentsSize}
</p>
<table class="tablesorterfiltered">
<thead>
<tr>
<%/*<th><html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}&order=byNumber"><bean:message key="number"/></html:link></th>
<th><html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}&order=byName"><bean:message key="name"/></html:link></th>
*/%>
<th><bean:message key="number"/></th>
<th><bean:message key="name"/></th>
 
<th><bean:message key="user"/></th>
 
<th><bean:message key="email"/></th>
 
<baco:hasRole role="teacher">
<th><bean:message key="phone.number"/></th>
</baco:hasRole>
</tr>
</thead>
<tbody>
<logic:iterate id="student" name="students" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<td>
${student.code}
</td>
<td>
<logic:notEmpty name="fromAction">
<html:link action="${user}/startLoadStudentCourseUnit${fromAction}?code=${student.code}&courseUnitView.id=${CourseUnitView.id}">${student.name}</html:link>
</logic:notEmpty>
<logic:empty name="fromAction">
<html:link target="_blank" action="/user/startProfileFromHome.do?userView.id=${student.id}">${student.name}</html:link>
</logic:empty>
</td>
<td>
${student.username}
</td>
<td>
<logic:empty name="UserSession" property="user">
${student.safeEmail}
</logic:empty>
<logic:notEmpty name="UserSession" property="user">
${student.email}
</logic:notEmpty>
</td>
<baco:hasRole role="teacher">
<td>${student.phonenumber} </td>
</baco:hasRole>
</tr>
</logic:iterate>
</tbody>
</table>
</div>
</div>
<%
}
%>
/branches/v3/impl/src/web/user/home/teacherPae.jsp
130,6 → 130,17
</div>
<div class="col-md-6 col-sm-12 col-xs-12">
 
<baco:hasRole role="admin,all,services,questionarios.admin,questionarios.tipologias.admin,questionarios.atribuicoes.admin">
<div class="panel panel-primary">
<div class="panel-heading">Questionários Pedagógicos</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>
<div class="list-group-item"><html:link action="/user/configurationSchedulleTasks.do">Consulta de Resultados</html:link></div>
</div>
</div>
</div>
</baco:hasRole>
 
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div>
/branches/v3/impl/src/web/user/home/userPae.jsp
31,7 → 31,7
<div class="panel-heading">Questionários Pedagógicos</div>
<div class="panel-body">
<div class="list-group">
<div class="list-group-item"><html:link action="/admin/listQuestionarios">Administração de Questionários</html:link></div>
<div class="list-group-item"><html:link action="/user/listQuestionarios">Administração de Questionários</html:link></div>
<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/questionarios/questionarioStateASSIGNATION_DETAILS.jsp
New file
0,0 → 1,24
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" %>
<%@ 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="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/>
 
<jsp:include page="${Questionario.iAnswersProcessorClass.afetacoesManagementForward}"/>
 
 
 
 
 
 
 
 
 
 
/branches/v3/impl/src/web/user/questionarios/topnavQuestionarioNewEdit.jsp
New file
0,0 → 1,12
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/listQuestionarios.do", "surveys");
topNav.addNavPlace(null, "survey.newEdit.survey");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/questionarioAdmin.jsp
New file
0,0 → 1,276
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ 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" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
 
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
qId = request.getParameter("questionario.id");
long questionarioId = Long.parseLong(qId);
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);
request.setAttribute("Questionario", questionario);
%>
<div class="container-fluid">
<div class="panel panel-default">
<div class="panel-heading">
Questionário (Número Controlo - ${Questionario.id})
<a class="pull-right" href="javascript:$('#diagrama').animate({height:'toggle'},200);">Ver Diagrama de Estados dos Questionários</a>
</div>
 
 
<div class="panel-body" id="diagrama" style="display: none">
<html:errors/>
<jomm:messages/>
<div class="panel panel-default">
<div class="panel-body">
<div class="row-centered">
<!--<div class="alert alert-warning">
ATENÇÃO: A alteração dos códigos dos grupos vai afetar os resultados históricos e o processamento de resultados. Não altere os códigos dos grupos
já existentes sem coordenação com a equipa de desenvolvimento.
</div>-->
 
<img src="<%=request.getContextPath()%>/user/questionarios/QuestionarioState.bmp"/>
</div>
</div>
</div>
</div>
<div class="panel-body">
<div class="panel panel-default">
<div class="panel-heading">Dados Administrativos</div>
<div class="panel-body">
<p><strong>Descrição:</strong> ${Questionario.description}</p>
<p><strong>Categoria Histórica:</strong> <span class="bg-info"> ${Questionario.questionarioHistoryDrive.description}</span></p>
<p><strong>Processador de Respostas:</strong> <span class="bg-primary">${Questionario.iAnswersProcessorClass.title}</span></p>
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/questionarioLogState.jsp?questionarioId=${Questionario.id}" data-title="Registo de mudanças de estado do questionario ${Questionario.id}" data-toggle="modal" data-target="#modalAjaxRequest">
Registo de Mudanças de Estado
</a>
</div>
 
</div>
</div>
<div class="panel-body">
<div class="container">
<div class="panel panel-success">
<div class="panel-heading">Tarefas Realizadas</div>
<div class="panel-body">
 
<%
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.CREATED.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.CREATED"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.ASSIGNATION_DETAILS.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.ASSIGNATION_DETAILS"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.ASSIGNING_ANSWERS_PROCESSEMENT.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.ASSIGNING_ANSWERS_PROCESSEMENT"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.ASSIGNED_ANSWERS.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.ASSIGNED_ANSWERS"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.PROCESSING.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.PROCESSING"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.PROCESSING_WITH_ANSWERS.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.PROCESSING_WITH_ANSWERS"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.CLOSED.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.CLOSED"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.PROCESSING_OLAP.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.PROCESSING_OLAP"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() > QuestionarioImpl.State.OLAP.getPosition())
{
%>
<div class="alert alert-success col-md-2 col-sm-2">
<bean:message key="questionario.state.OLAP"/>
</div>
<%
}
%>
</div>
</div>
 
<%
String alert = "alert-warning";
if(questionario.getStateEnum() == QuestionarioImpl.State.STOPED_WITH_ANSWERS)
{
alert = "alert-danger";
}
%>
 
<a name="NOWTASK"> </a>
<div class="panel panel-primary">
<div class="panel-heading">
Tarefas Disponiveis
 
<label class="alert <%=alert%> alert-small">
<bean:message key="questionario.state.${Questionario.state}"/>
</label>
 
</div>
<div class="panel-body">
<html:errors/>
<jomm:messages/>
<jsp:include page="questionarioState${Questionario.state}.jsp"/>
</div>
</div>
 
 
<div class="panel panel-default">
<div class="panel-heading">Tarefas por Realizar</div>
<div class="panel-body">
 
 
<%
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.CREATED.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.CREATED"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.ASSIGNATION_DETAILS.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.ASSIGNATION_DETAILS"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.ASSIGNING_ANSWERS_PROCESSEMENT.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.ASSIGNING_ANSWERS_PROCESSEMENT"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.ASSIGNED_ANSWERS.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.ASSIGNED_ANSWERS"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.PROCESSING.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.PROCESSING"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.PROCESSING_WITH_ANSWERS.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.PROCESSING_WITH_ANSWERS"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.CLOSED.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.CLOSED"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.PROCESSING_OLAP.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.PROCESSING_OLAP"/>
</div>
<div class="col-md-1 col-sm-1 vcenter alert hidden-xs"><span class="glyphicon glyphicon-chevron-right"/></div>
<%
}
if( questionario.getStateEnum().getPosition() < QuestionarioImpl.State.OLAP.getPosition())
{
%>
<div class="alert alert-disabled col-md-2 col-sm-2">
<bean:message key="questionario.state.OLAP"/>
</div>
<%
}
%>
</div>
</div>
</div>
<html:link styleClass="btn btn-danger" action="/user/listQuestionarios">Voltar</html:link>
</div>
</div>
</div>
/branches/v3/impl/src/web/user/questionarios/questionarioStatePROCESSING_OLAP.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado processando OLAP disponiveis
/branches/v3/impl/src/web/user/questionarios/questionarioStateOLAP.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Cubos OLAP terminados
/branches/v3/impl/src/web/user/questionarios/questionarioStateSTOPED_WITH_ANSWERS.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Parado para responder com Respostas
/branches/v3/impl/src/web/user/questionarios/questionariosList.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.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" %>
 
 
 
 
 
<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>
</div>
<div class="panel-body">
<html:errors/>
<jomm:messages/>
<table class="tablesortersimple">
<thead>
<tr>
<th>Num. Control</th>
<th>Ano</th>
<th>Semestre</th>
<th>Administrar</th>
<th>Formulário</th>
<th>Estado</th>
<th>Alterado a</th>
<th>Apagar</th>
</tr>
</thead>
<tbody>
<%
AbstractDao.getCurrentSession().beginTransaction();
List<QuestionarioImpl> questionarios = DaoFactory.getQuestionarioDaoImpl().findSortedBy(0, 10, "id");
 
//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.year}</td>
<td>${q.semestre}</td>
<td>
<baco:clearOperation name="q" op="QUESTIONARIO_SEE_ADMIN">
<html:link styleClass="btn btn-default" action="/user/adminQuestionario?questionario.id=${q.id}">Admin</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">Editar</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>
<td>
<baco:clearOperation name="q" op="QUESTIONARIO_DELETE">
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/deleteQuestionario.do?questionario.id=${q.id}" data-message="Tem a certeza que deseja eliminar o questionário ${q.id}?" data-toggle="modal" data-target="#confirm-ModalGeneric">
<span class="glyphicon glyphicon-remove small"> </span>
</button>
</baco:clearOperation>
 
</td>
</tr>
<%
}
AbstractDao.getCurrentSession().getTransaction().commit();
%>
</tbody>
</table>
</div>
 
</div>
 
</div>
/branches/v3/impl/src/web/user/questionarios/questionarioNewEdit.jsp
New file
0,0 → 1,482
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.IAnswersProcessor" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioHistoryDrive" %>
<%@ 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" %>
 
<html:form styleClass="form-horizontal" action="/user/questionariosPae" enctype="multipart/form-data" onsubmit="updateIntroHtml()">
<input type="hidden" name="dispatch" value="save">
<html:hidden property="questionario.id"/>
<jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/>
<script>
function submitQuestionarioForm(form)
{
updateIntroHtml();
form.submit();
}
function updateIntroHtml()
{
$('#introHtml').val($('#editor').html());
}
$(document).ready(
function(){
 
setText();
$(".perguntaGroup").each(
function(){
if($(this).val() == "")
{
$(this).css({
"background-color":"orange"
});
}
}
);
}
);
 
function setText()
{
$("#editor").html('<bean:write name="QuestionarioForm" property="questionario.introHtml" filter="false"/>');
}
 
</script>
 
<style>
.dropable
{
border: 1px dashed blue;
}
.dropable .toDrop
{
border: 2px solid blue !important;
}
</style>
 
 
 
 
<div class="panel panel-default">
<div class="panel-heading">
<logic:lessEqual name="QuestionarioForm" property="questionario.id" value="0">
Novo Questionário
</logic:lessEqual>
<logic:notEqual name="QuestionarioForm" property="questionario.id" value="0">
Questionário (Número Controlo - ${QuestionarioForm.questionario.id})
</logic:notEqual>
<a class="pull-right" href="javascript:$('#diagrama').animate({height:'toggle'},200);">Ver Diagrama de Estados dos Questionários</a>
</div>
<div class="panel-body">
 
<%--##################################################--%>
<%--################ INPUT START #############--%>
<%--##################################################--%>
<div id="allInputs">
 
<html:errors/>
<jomm:messages/>
 
 
 
<div id="diagrama" style="display: none" class="panel panel-default">
<div class="panel-body">
<div class="row-centered">
<img src="<%=request.getContextPath()%>/user/questionarios/QuestionarioState.bmp"/>
</div>
</div>
</div>
 
 
<div class="panel panel-primary">
<div class="panel-heading">
Dados Administrativos
</div>
<div class="panel-body">
 
 
<baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
<div class="alert alert-warning">
Formulário Trancado - Estado do Questionário ${QuestionarioForm.questionario.state}
</div>
</baco:notClearOperation>
 
<%
List<IAnswersProcessor> answersProcessors = QuestionarioImpl.getIAnswerProcessors();
request.setAttribute("answersProcessors",answersProcessors);
 
AbstractDao.getCurrentSession().beginTransaction();
List<QuestionarioHistoryDrive> historyDrives = DaoFactory.getQuestionarioHistoryDriveDaoImpl().getHistoryDrivesList();
request.setAttribute("historyDrives",historyDrives);
AbstractDao.getCurrentSession().getTransaction().commit();
%>
<script>
$(document).ready( function()
{
<logic:lessEqual value="0" name="QuestionarioForm" property="questionario.id">
$("#answProc").val("pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor");
</logic:lessEqual>
 
<baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_ANSWER_PROCESSOR">
$("#histDrives").prop( "disabled", true );
$("#histDrivesHidden").prop( "disabled", false );
$("#answProc").prop( "disabled", true );
$("#answProcHidden").prop( "disabled", false );
</baco:notClearOperation>
 
//set history allays after answerproc defined
setHistoryDrive($("#answProc").val());
 
<baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
$('#allInputs').find('input, textarea, button, select, #editor').attr('disabled','disabled');
</baco:notClearOperation>
}
);
 
//Metodo para alterar a History dado o AnswerProcessor
//Usa o Answer Processor Contraint
function setHistoryDrive(answerProcessor)
{
<baco:clearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_ANSWER_PROCESSOR">
 
$("#histDrivesHidden").prop( "disabled", true );
$("#histDrives").removeAttr( "disabled");
$("#histDrives").val("");
<%
for(IAnswersProcessor iAnswersProcessor: answersProcessors)
{
if(iAnswersProcessor.getHistoryDriveConstraint() != null)
{
for(QuestionarioHistoryDrive hD: historyDrives)
{
if(hD.getCodeName().equals(iAnswersProcessor.getHistoryDriveConstraint()))
{
%>
if(answerProcessor == '<%=iAnswersProcessor.getClass().getName()%>')
{
$("#histDrives").val('<%=hD.getId()%>');
$("#histDrivesHidden").val('<%=hD.getId()%>');
$("#histDrives").prop("disabled",true);
$("#histDrivesHidden").prop( "disabled", false );
}
<%
break;
}
}
}
}
%>
</baco:clearOperation>
}
</script>
 
<baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_ANSWER_PROCESSOR">
<p>
Estado: <label class="alert alert-warning alert-small">
<bean:message key="questionario.state.${QuestionarioForm.questionario.state}"/>
</label>
</p>
<div class="alert alert-danger alert-small">A alteração do processador de respostas está trancado devido ao estado em que o questionário se encontra</div>
</baco:notClearOperation>
 
<div class="form-group">
<label class="control-label col-sm-2">Processador de Respostas</label>
<div class="col-sm-10">
<html:hidden styleId="answProcHidden" styleClass="form-control" property="questionario.iAnswersProcessor" disabled="true"/>
<html:select styleId="answProc" styleClass="form-control" property="questionario.iAnswersProcessor" onchange="setHistoryDrive($(this).val());">
<option value=""></option>
<html:optionsCollection name="answersProcessors" label="title" value="class.name"/>
</html:select>
</div>
</div>
 
<div class="form-group">
<label class="control-label col-sm-2">Categoria Histórica de Análise de Dados</label>
<div class="col-sm-10">
<html:hidden styleId="histDrivesHidden" styleClass="form-control" property="questionario.questionarioHistoryDrive.id" disabled="true"/>
<html:select styleId="histDrives" styleClass="form-control" property="questionario.questionarioHistoryDrive.id">
<option value=""></option>
<html:optionsCollection name="historyDrives" label="codeName" value="id"/>
</html:select>
</div>
</div>
 
<div class="form-group">
<label class="control-label col-sm-2">Descrição Administrativa</label>
<div class="col-sm-10">
<html:textarea styleClass="form-control" property="questionario.description"/>
</div>
</div>
 
<h3><a href="javascript:$('#groupAdmin').animate({height:'toggle'},200);">Administração de Grupos</a></h3>
<div id="groupAdmin" style="display: none" class="panel panel-default">
<div class="panel-body">
<div class="alert alert-warning">
ATENÇÃO: A alteração dos códigos dos grupos vai afetar os resultados históricos e o processamento de resultados. Não altere os códigos dos grupos
já existentes sem coordenação com a equipa de desenvolvimento.
</div>
<button type="button" class="btn btn-warning" onclick="$('.textGroupDisab').removeAttr('disabled');$(this).hide()">Ativar edição de códigos</button>
<%
for(int g = 1; g <= 10; g ++)
{
request.setAttribute("g",g);
%>
<div class="form-group">
<label class="control-label col-sm-2" for="g${g}">Grupo ${g}:</label>
<div class="col-sm-10">
<html:text styleClass="form-control" property="questionario.group${g}Title" styleId="g${p}" onchange="set(this.form,'refresh');submitQuestionarioForm(form);"/>
</div>
<label class="control-label col-sm-2" for="g${g}">Código do Grupo ${g}:</label>
<div class="col-sm-4">
<html:text styleClass="form-control textGroupDisab" disabled="true" property="questionario.group${g}Code" onchange="set(this.form,'refresh');submitQuestionarioForm(form);"/>
</div>
</div>
<%
}
%>
</div>
</div>
</div>
</div>
 
 
<div class="form-group row">
 
<div class="col-sm-12">
 
<h3>Texto Introdutório do Questionário</h3>
<baco:notClearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
<div style="border:1px solid gray">
${QuestionarioForm.questionario.introHtml}
</div>
</baco:notClearOperation>
<baco:clearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor">
<!-- <div class="btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" title="Font"><i class="aweicon-font"></i><b class="caret"></b></a>
<ul class="dropdown-menu">
</ul>
</div>-->
<div class="btn-group">
<a class="btn btn-default" data-toggle="dropdown" title="Font Size"><i class="aweicon-text-height"></i>&nbsp;<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a data-edit="fontSize 5"><font size="5">Grande</font></a></li>
<li><a data-edit="fontSize 4"><font size="4">Maior</font></a></li>
<li><a data-edit="fontSize 3"><font size="3">Normal</font></a></li>
<li><a data-edit="fontSize 2"><font size="2">Menor</font></a></li>
<li><a data-edit="fontSize 1"><font size="1">Pequeno</font></a></li>
</ul>
</div>
<div class="btn-group">
<a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="aweicon-bold"></i></a>
<a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="aweicon-italic"></i></a>
<a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="aweicon-strikethrough"></i></a>
<a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="aweicon-underline"></i></a>
</div>
<div class="btn-group">
<a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="aweicon-list-ul"></i></a>
<a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="aweicon-list-ol"></i></a>
<a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="aweicon-indent-left"></i></a>
<a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="aweicon-indent-right"></i></a>
</div>
<div class="btn-group">
<a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="aweicon-align-left"></i></a>
<a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="aweicon-align-center"></i></a>
<a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="aweicon-align-right"></i></a>
<a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="aweicon-align-justify"></i></a>
</div>
<div class="btn-group">
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="aweicon-link"></i></a>
<div class="dropdown-menu input-append">
<input class="span2" placeholder="URL" type="text" data-edit="createLink"/>
<button class="btn" type="button">Add</button>
</div>
<a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="aweicon-cut"></i></a>
 
</div>
 
<div class="btn-group">
<a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"><i class="aweicon-picture"></i></a>
<input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" />
</div>
<div class="btn-group">
<a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="aweicon-undo"></i></a>
<a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="aweicon-repeat"></i></a>
</div>
 
<!--
<div class="btn-group">
<img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate" template-target="template1"/>
<img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate" template-target="template2"/>
<img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate" template-target="template3"/>
<img style="width:20px" draggable="true" src="<%=request.getContextPath()%>/imgs/grafico.gif" class="bacoTemplate" template-target="template4"/>
</div>-->
<!-- <script>
var emEdicao;
function setupPalete()
{
$(".meupanel").click(
function(){
emEdicao = this;
$(emEdicao).css({border:"3px solid yellow"});
}
);
}
$(document).ready(function(){
 
$(".bacoTemplate").on("dragstart",
function(e){
e.originalEvent.dataTransfer.setData("template", $(e.target).attr("template-target"));
}
);
 
 
 
});
</script>-->
 
</div>
<div id="editor" class="dropable">
</div>
</baco:clearOperation>
</div>
</div>
 
<html:hidden styleId="introHtml" property="questionario.introHtml"/>
 
 
<hr/>
<%
 
for(int i = 1; i <= 40; i ++)
{
request.setAttribute("p",i);
request.setAttribute("pBefore",i-1);
 
%>
 
 
<logic:present name="QuestionarioForm" property="questionario.p${p}Group">
<logic:equal value="1" name="p">
<h3>
<logic:equal value="1" name="QuestionarioForm" property="questionario.p${p}Group">
1 - ${QuestionarioForm.questionario.group1Title}
</logic:equal>
<logic:equal value="2" name="QuestionarioForm" property="questionario.p${p}Group">
2 - ${QuestionarioForm.questionario.group2Title}
</logic:equal>
<logic:equal value="3" name="QuestionarioForm" property="questionario.p${p}Group">
3 - ${QuestionarioForm.questionario.group3Title}
</logic:equal>
<logic:equal value="4" name="QuestionarioForm" property="questionario.p${p}Group">
4 - ${QuestionarioForm.questionario.group4Title}
</logic:equal>
<logic:equal value="5" name="QuestionarioForm" property="questionario.p${p}Group">
5 - ${QuestionarioForm.questionario.group5Title}
</logic:equal>
<logic:equal value="6" name="QuestionarioForm" property="questionario.p${p}Group">
6 - ${QuestionarioForm.questionario.group6Title}
</logic:equal>
<logic:equal value="7" name="QuestionarioForm" property="questionario.p${p}Group">
7 - ${QuestionarioForm.questionario.group7Title}
</logic:equal>
<logic:equal value="8" name="QuestionarioForm" property="questionario.p${p}Group">
8 - ${QuestionarioForm.questionario.group8Title}
</logic:equal>
<logic:equal value="9" name="QuestionarioForm" property="questionario.p${p}Group">
9 - ${QuestionarioForm.questionario.group9Title}
</logic:equal>
<logic:equal value="10" name="QuestionarioForm" property="questionario.p${p}Group">
10 - ${QuestionarioForm.questionario.group10Title}
</logic:equal>
</h3>
</logic:equal>
<logic:greaterThan value="1" name="p">
<jomm:notEqualBeans name1="QuestionarioForm" property1="questionario.p${p}Group" name2="QuestionarioForm" property2="questionario.p${pBefore}Group">
<hr/>
<h3>
<logic:equal value="1" name="QuestionarioForm" property="questionario.p${p}Group">
1 - ${QuestionarioForm.questionario.group1Title}
</logic:equal>
<logic:equal value="2" name="QuestionarioForm" property="questionario.p${p}Group">
2 - ${QuestionarioForm.questionario.group2Title}
</logic:equal>
<logic:equal value="3" name="QuestionarioForm" property="questionario.p${p}Group">
3 - ${QuestionarioForm.questionario.group3Title}
</logic:equal>
<logic:equal value="4" name="QuestionarioForm" property="questionario.p${p}Group">
4 - ${QuestionarioForm.questionario.group4Title}
</logic:equal>
<logic:equal value="5" name="QuestionarioForm" property="questionario.p${p}Group">
5 - ${QuestionarioForm.questionario.group5Title}
</logic:equal>
<logic:equal value="6" name="QuestionarioForm" property="questionario.p${p}Group">
6 - ${QuestionarioForm.questionario.group6Title}
</logic:equal>
<logic:equal value="7" name="QuestionarioForm" property="questionario.p${p}Group">
7 - ${QuestionarioForm.questionario.group7Title}
</logic:equal>
<logic:equal value="8" name="QuestionarioForm" property="questionario.p${p}Group">
8 - ${QuestionarioForm.questionario.group8Title}
</logic:equal>
<logic:equal value="9" name="QuestionarioForm" property="questionario.p${p}Group">
9 - ${QuestionarioForm.questionario.group9Title}
</logic:equal>
<logic:equal value="10" name="QuestionarioForm" property="questionario.p${p}Group">
10 - ${QuestionarioForm.questionario.group10Title}
</logic:equal>
</h3>
</jomm:notEqualBeans>
</logic:greaterThan>
</logic:present>
 
<div class="form-group">
<label class="control-label col-sm-2" for="p${p}">Pergunta ${p}:</label>
<div class="col-sm-8">
<html:textarea styleClass="form-control" property="questionario.p${p}" styleId="p${p}"/>
</div>
<div class="col-sm-2">
<html:select styleClass="form-control perguntaGroup" property="questionario.p${p}Group" onchange="set(this.form,'refresh');submitQuestionarioForm(form);">
<html:option value="">Nenhum</html:option>
<%
for(int a = 1;a<10;a++)
{
request.setAttribute("a",a);
 
%>
<logic:notEmpty name="QuestionarioForm" property="questionario.group${a}Title">
<html:option value="${a}"><bean:write name="QuestionarioForm" property="questionario.group${a}Title"/></html:option>
</logic:notEmpty>
<%
}
%>
</html:select>
</div>
</div>
<%
}
%>
</div>
 
 
<baco:clearOperation name="QuestionarioForm" property="questionario" op="QUESTIONARIO_SAVE_FORM">
<button type="button" class="btn btn-success" onclick="submitQuestionarioForm(form);"><bean:message key="confirm"/></button>
</baco:clearOperation>
<html:link action="/user/listQuestionarios" styleClass="btn btn-danger"><bean:message key="cancel"/></html:link>
</div>
 
</div>
</html:form>
 
 
 
 
 
/branches/v3/impl/src/web/user/questionarios/questionarioStateASSIGNED_ANSWERS.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Respostas Atribuidas Tarefas disponiveis
/branches/v3/impl/src/web/user/questionarios/QuestionarioState.bmp
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/branches/v3/impl/src/web/user/questionarios/topnavQuestionarioList.jsp
New file
0,0 → 1,11
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace(null, "surveys");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/questionarioPedagodigoDetails.jsp
New file
0,0 → 1,90
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<html:form styleClass="form-horizontal" action="/user/questionariosPae" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="saveDetails">
<html:hidden property="questionario.id"/>
<jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/>
<html:errors/>
<jomm:messages/>
<h3>Questionário (Número Controlo - ${QuestionarioForm.questionario.id})</h3>
<!-- Modal content-->
 
 
 
 
<h3><a href="javascript:$('#diagrama').animate({height:'toggle'},200);">Ver Diagrama de Estados dos Questionários</a></h3>
 
<div id="diagrama" style="display: none" class="panel panel-default">
<div class="panel-body">
<!--<div class="alert alert-warning">
ATENÇÃO: A alteração dos códigos dos grupos vai afetar os resultados históricos e o processamento de resultados. Não altere os códigos dos grupos
já existentes sem coordenação com a equipa de desenvolvimento.
</div>-->
 
<img src="<%=request.getContextPath()%>/user/questionarios/QuestionarioState.bmp"/>
</div>
</div>
 
 
 
<div class="form-group">
<label class="control-label col-sm-2" for="year">Categoria Histórica</label>
<div class="col-sm-10">
<html:select styleClass="form-control" styleId="year" property="questionarioHistoryDriveId">
<html:optionsCollection name="historyDrives" label="codeName" value="id"/>
</html:select>
</div>
</div>
 
<div class="form-group">
<label class="control-label col-sm-2" for="year">Processador de Respostas</label>
<div class="col-sm-10">
<html:select styleClass="form-control" styleId="year" property="questionarioHistoryDriveId">
<html:optionsCollection name="historyDrives" label="codeName" value="id"/>
</html:select>
</div>
</div>
 
 
<div class="form-group">
<label class="control-label col-sm-2" for="year"><bean:message key="course.importYear"/></label>
<div class="col-sm-10">
<%
List<String> years = DatesUtils.getImportYears(10);
%>
<html:select styleClass="form-control" styleId="year" property="questionario.year">
<html:option value="">Escolha Ano</html:option>
<%
for(String year:years)
{
request.setAttribute("year",year);
%>
<html:option value="${year}">${year}</html:option>
<%
}
%>
</html:select>
</div>
</div>
 
 
<div class="form-group">
<label class="control-label col-sm-2" for="semestre">Semestre:</label>
<div class="col-sm-10">
<html:select styleClass="form-control" styleId="semestre" property="questionario.semestre">
<html:option value="">Escolha semestre</html:option>
<html:option value="A">Anual</html:option>
<html:option value="S1">Semestre 1</html:option>
<html:option value="S2">Semestre 2</html:option>
<html:option value="T1">Trimestre 1</html:option>
<html:option value="T2">Trimestre 2</html:option>
<html:option value="T3">Trimestre 3</html:option>
<html:option value="T4">Trimestre 4</html:option>
</html:select>
</div>
</div>
 
 
</html:form>
/branches/v3/impl/src/web/user/questionarios/questionarioStateCREATED.jsp
New file
0,0 → 1,18
<%@ 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="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/>
<p>${Questionario.iAnswersProcessorClass.title}:</p>
<p>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS">
<html:link styleClass="btn btn-default" action="/user/questionariosPaeStartAfectacoes?questionario.id=${Questionario.id}">
Iniciar Afectações Especificas <span class="glyphicon glyphicon-wrench"/>
</html:link>
</baco:clearOperation>
</p>
 
/branches/v3/impl/src/web/user/questionarios/questionarioStateCLOSED.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Fechado
/branches/v3/impl/src/web/user/questionarios/questionarioStatePROCESSING_WITH_ANSWERS.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Aberto para Responder com Respostas
/branches/v3/impl/src/web/user/questionarios/questionarioStateASSIGNING_ANSWERS_PROCESSEMENT.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Atribuindo Respostas Tarefas disponiveis
/branches/v3/impl/src/web/user/questionarios/questionarioStatePROCESSING.jsp
New file
0,0 → 1,9
<%@ 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" %>
Estado Aberto para Responder
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/cursosJobInfo.jsp
New file
0,0 → 1,50
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.services.jobs.ServiceJob" %>
<%@ page import="pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ 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" %>
<table class="tablesorterfiltered">
<thead>
<tr>
<th class="filter-name filter-select">Instituição</th>
<th class="filter-true">Código</th>
<th class="filter-true">Nome</th>
<th class="filter-name filter-select">Tipo</th>
</tr>
</thead>
<tbody>
<%
long jobId = Long.parseLong(request.getParameter("jobId"));
AbstractDao.getCurrentSession().beginTransaction();
 
JobServiceTaskImpl job = (JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(jobId);
String coursesList = job.getParameter(ServiceJob.JOB_questionario_courseList_KEY).getObject();
List<Course> courses = new UpdateCoursesAndUnitsJobService().getCoursesList(coursesList);
 
for(Course c: courses)
{
request.setAttribute("c",c);
%>
<tr>
<td><%=ConfigProperties.getProperty("institution.code." + c.getInstitutionalCode())%></td>
<td>${c.code}</td>
<td>${c.name}</td>
<td><bean:message key="course.${c.degree}"/></td>
</tr>
<%
}
AbstractDao.getCurrentSession().getTransaction().commit();
%>
</tbody>
</table>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionarioLogState.jsp
New file
0,0 → 1,23
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ 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" %>
<%
long questionarioId = Long.parseLong(request.getParameter("questionarioId"));
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);
request.setAttribute("Questionario", questionario);
%>
<pre>
${Questionario.logStates}
</pre>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesSelection.jsp
New file
0,0 → 1,309
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" %>
<%@ page import="pt.estgp.estgweb.domain.*" %>
<%@ page import="pt.estgp.estgweb.services.jobs.ServiceJob" %>
<%@ page import="pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService" %>
<%@ page import="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" %>
<%@ 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" %>
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
qId = request.getParameter("questionario.id");
Long questionarioId = Long.parseLong(qId);
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);
 
 
request.setAttribute("Questionario", questionario);
 
 
AbstractDao.getCurrentSession().beginTransaction();
JobServiceTaskImpl job = questionario.getCourseSelectionTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(questionario.getCourseSelectionTaskId()) :
null;
request.setAttribute("Job", job);
 
List<String> institutionCodes = ConfigProperties.getListValues("questionario.instituition.");
 
%>
 
 
 
<html:form action="/user/questionariosPaeSelectCourses">
<jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/>
<%
//Variavel iniciada no serviço de load por chamada do IAnswerProcessor respectivo para inicializar
//as variaveis especificas
QuestionarioForm.setCoursesSelectedIds(questionario.getAfetacoesVarCoursesSelectionForJob());
%>
<div class="container-fluid">
<script>
$(document).ready(
function()
{
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
$(".courseCheck").attr("data-toogle","toggle");
$('.courseCheck').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
$('.checkAll').bootstrapToggle({
on: 'Sim',
off: 'Não'
});
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
$('.courseCheck').bootstrapToggle('disable');
$('.checkAll').bootstrapToggle('disable');
</baco:notClearOperation>
 
}
 
);
 
function selectAll(code,source)
{
 
$('#institution' + code).find('.courseCheck').each(
function()
{
if($(source).prop("checked"))
$(this).bootstrapToggle('on');
else
$(this).bootstrapToggle('off');
});
}
</script>
 
<div class="panel panel-primary">
<div class="panel-heading">
Selecção de Cursos para o Questionário ${Questionario.id} - Periodo: ${Questionario.semestre} de ${Questionario.year}
</div>
<div class="panel-body">
<html:errors/>
<jomm:messages/>
 
<div class="baco-please-wait">
 
</div>
<div class="baco-please-wait-target">
 
<ul class="nav nav-tabs">
<li id="institutionsSeparatorsGerarFinal"><a href="javascript:showInstitutionCode('GerarFinal')"><strong><u>Operações</u></strong></a></li>
<%
for(String institutionCode: institutionCodes)
{
String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
%>
<li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li>
<%
}
%>
 
</ul>
<script>
$(document).ready(
function(){
showInstitutionCode('GerarFinal');
}
);
 
 
function showInstitutionCode(institutionCode)
{
<%
for(String institutionCode: institutionCodes)
{
%>
if(institutionCode == '<%=institutionCode%>')
{
$("#institution<%=institutionCode%>").show();
$("#institutionsSeparators<%=institutionCode%>").addClass("active");
}
else
{
$("#institution<%=institutionCode%>").hide();
$("#institutionsSeparators<%=institutionCode%>").removeClass("active");
}
<%
}
%>
if(institutionCode == 'GerarFinal')
{
$("#institutionGerarFinal").show();
$("#institutionsSeparatorsGerarFinal").addClass("active");
}
else
{
$("#institutionGerarFinal").hide();
$("#institutionsSeparatorsGerarFinal").removeClass("active");
}
}
</script>
 
<%
for(String institutionCode: institutionCodes)
{
String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
List<Course> courses = DaoFactory.getCourseDaoImpl().findCoursesWithUnitsIn(questionario.getYear(),institutionCode,questionario.getSemestre());
%>
<div class="panel panel-default" id="institution<%=institutionCode%>" style="display: none">
<div class="panel-heading">
Cursos da <%=institutionName%>
</div>
<div class="panel-body">
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Codigo</th>
<th>Tipo de Curso</th>
<th>Curso</th>
<th>Papel Comissão Curso</th>
<th>Unidades</th>
<th>Turmas</th>
<th class="filter-false" data-sorter="false">
<input class="checkAll" type="checkbox" onchange="selectAll('<%=institutionCode%>',this)">
</th>
</tr>
</thead>
<tbody>
<%
for(Course course: courses)
{
int unitsSize=DaoFactory.getCourseDaoImpl().countCoursesUnits(questionario.getYear(), course.getId());
int turmasSize = DaoFactory.getCourseDaoImpl().countCoursesUnitsTurmas(questionario.getYear(), course.getId());
CourseView cv = new CourseView(course);
request.setAttribute("CourseView",cv);
%>
<tr>
<td>${CourseView.code}</td>
<td><bean:message key="course.${CourseView.degreeCleanCode}"/></td>
<td>${CourseView.name}</td>
<td>
<logic:notEmpty name="CourseView" property="validationRole">
<bean:message key="user.role.${CourseView.validationRole}"/>
</logic:notEmpty>
<logic:empty name="CourseView" property="validationRole">
Papel não atribuido (Corrigir Situação)
</logic:empty>
</td>
<td>
<a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnits.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Unidades do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=unitsSize%>
</a>
</td>
<td>
<a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnitsTurmas.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Turmas do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=turmasSize%>
</a>
</td>
<td>
<html:multibox property="coursesSelectedIds" value="${CourseView.id}" styleClass="courseCheck"/>
</td>
</tr>
<%
}
%>
</tbody>
</table>
</div>
</div>
<%
}
%>
 
 
<div class="panel panel-primary" id="institutionGerarFinal">
<div class="panel-heading">
Atribuição de Cursos e Unidades ao Questionário
</div>
<div class="panel-body">
 
 
<div class="col-sm-6">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
<div class="alert alert-warning">Esta operação vai associar todos os cursos seleccionados e respectivas unidades curriculares
ao questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div>
<div class="alert alert-info alert-small">Esta operação poderá ser revertida ou então repetida para atualizar os cursos alvo do questionário</div>
<div class="alert alert-info alert-small">Esta operação poderá demorar alguns instantes</div>
<html:hidden property="questionario.id" value="${Questionario.id}"/>
<input type="hidden" name="questionarioId" value="${Questionario.id}"/>
<input type="hidden" name="dispatch" value="selectCourses"/>
</baco:clearOperation>
 
 
 
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
<button class="btn btn-warning" type="button" onclick="this.form.submit()">Associar Cursos e Unidades Curriculares</button>
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SELECT_COURSES">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
<div class="alert alert-warning">O sistema agendou a atribuição de cursos e unidades ao questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}. Veja o progresso em baixo, caso não termine no final de 30 minutos esta tarefa ficará de novo disponivel</div>
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
<div class="alert alert-warning">Não têm autorização para ver esta secção</div>
</baco:notClearOperation>
 
</baco:notClearOperation>
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/questionarioLogState.jsp?questionarioId=${Questionario.id}" data-title="Registo de mudanças de estado do questionario ${Questionario.id}" data-toggle="modal" data-target="#modalAjaxRequest">
Registo de Mudanças de Estado
</a>
</div>
<div class="col-sm-6">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
<%
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
schedulleTasksForm.setJobServiceTask(job);
schedulleTasksForm.setId(job.getId());
request.setAttribute("SchedulleTasksForm",schedulleTasksForm);
%>
<div class="task-log task-log-xs" data-href="<%=request.getContextPath()%>/user/questionarioPedagogicoStartChooseCourses.do?questionarioId=${Questionario.id}">
<jsp:include page="/admin/configuration/taskLog.jsp"/>
</div>
<%
}
else
{
%>
<div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
<%
}
%>
</baco:clearOperation>
</div>
 
 
</div>
 
</div>
<div class="col-sm-12">
<html:link action="/user/adminQuestionario?questionario.id=${Questionario.id}#NOWTASK" styleClass="btn btn-danger">Voltar à administração</html:link>
</div>
</div>
</div>
</div>
</div>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
 
</html:form>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionarioObsEdit.jsp
New file
0,0 → 1,54
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.services.jobs.ServiceJob" %>
<%@ page import="pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" %>
<%@ 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" %>
<%
long unidadeAfetaId = Long.parseLong(request.getParameter("unidadeAfetaId"));
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().load(unidadeAfetaId);
String targetSetVarId = request.getParameter("targetSetVarId");
long cursoAfetoId=unidadeAfeta.getCursoAfeto().getId();
%>
<script>
$(document).ready(
function(){
$("#setObsUnidade<%=unidadeAfetaId%>").on("click",function(){
var val = $('#setObsUnidade<%=unidadeAfetaId%>Val').val();
if($.trim(val) != "")
$('#<%=targetSetVarId%>').addClass("obsContent");
else
$('#<%=targetSetVarId%>').removeClass("obsContent");
 
setUnidadeAfetaVar('<%=cursoAfetoId%>','<%=unidadeAfetaId%>','observacoes',val,$('#<%=targetSetVarId%>'));
 
});
}
);
</script>
<form role="form">
<div class="form-group">
<label class="control-label col-sm-2">Observações</label>
<div class="col-sm-10">
<textarea class="form-control" rows="10" name="val" id="setObsUnidade<%=unidadeAfetaId%>Val"><%=unidadeAfeta.getObs()%></textarea>
</div>
 
</div>
<button type="button" id="setObsUnidade<%=unidadeAfetaId%>" class="btn btn-success pull-right" data-dismiss="modal">Salvar</button>
<button style="margin-right:10px" type="button" onclick="$(this.form).find('textarea').html('')" class="btn btn-warning pull-right">Clear</button>
</form>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/topnavQuestionarioPedagogicoCoursesCheck.jsp
New file
0,0 → 1,27
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
qId = request.getParameter("questionario.id");
Long questionarioId = Long.parseLong(qId);
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);
 
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/listQuestionarios.do", "surveys");
topNav.addNavPlace("/user/adminQuestionario.do?questionario.id=" + questionarioId, "survey.admin",""+questionarioId);
topNav.addNavPlace(null, "questionarios.check.courses",questionario.getSemestre(),questionario.getYear());
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/setUnidadeAfetaVar.jsp
New file
0,0 → 1,34
<%@ page import="org.json.JSONObject"%><%@ page import="pt.estgp.estgweb.web.utils.RequestUtils"%><%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager"%><%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager"%><%@ page contentType="application/json;charset=UTF-8" language="java" %>
<%
try{
 
 
String questionarioId = request.getParameter("questionarioId");
String unidadeAfetaId = request.getParameter("unidadeAfetaId");
String op = request.getParameter("op");
String val = request.getParameter("val");
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId","cursosAfetos"};
Object[] args = {Long.parseLong(questionarioId),Long.parseLong(unidadeAfetaId),op,val};
 
sm.execute(RequestUtils.getRequester(request, response),"QuestionarioUpdateCheckVarPedagogico",args,names);
 
 
JSONObject json = new JSONObject();
 
json.put("ok","ok");
out.print(json.toString());
}catch(Throwable e)
{
JSONObject json = new JSONObject();
 
if(e.getCause() != null)
json.put("error",e.toString() + " - causa: " + e.getCause().toString());
else
json.put("error",e.toString());
 
out.print(json.toString());
}
%>
 
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/courseInfoJson.jsp
New file
0,0 → 1,20
<%@ page import="jomm.dao.impl.AbstractDao"%><%@ page import="org.hibernate.Query"%><%@ page import="org.json.JSONObject"%><%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto"%><%@ page import="java.util.List"%><%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory"%><%@ page import="pt.estgp.estgweb.domain.dao.impl.QuestionarioPedagogicoCursoAfetoDaoImpl"%><%@ page contentType="application/json;charset=UTF-8" language="java" %>
<%
long cursoAfetoId = Long.parseLong(request.getParameter("cursoAfetoId"));
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioPedagogicoCursoAfetoDaoImpl.CourseStatsVars stats = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().loadStats(cursoAfetoId);
 
 
JSONObject json = new JSONObject();
 
json.put("porVer",stats.porVer);
json.put("naoUsadas",stats.naoUsadas);
json.put("marcadas",stats.marcadas);
json.put("observadas",stats.observadas);
json.put("unidades",stats.unidades);
 
out.print(json.toString());
AbstractDao.getCurrentSession().getTransaction().commit();
 
 
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/topnavQuestionarioPedagogicoCoursesAdmin.jsp
New file
0,0 → 1,27
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
qId = request.getParameter("questionario.id");
Long questionarioId = Long.parseLong(qId);
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);
 
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/listQuestionarios.do", "surveys");
topNav.addNavPlace("/user/adminQuestionario.do?questionario.id=" + questionarioId, "survey.admin",""+questionarioId);
topNav.addNavPlace(null, "questionarios.choose.courses",questionario.getSemestre(),questionario.getYear());
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/listCunitTurmas.jsp
New file
0,0 → 1,69
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnitTurma" %>
<%@ 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" %>
<%
Long courseUnitId = Long.parseLong(request.getParameter("courseUnitId"));
 
 
AbstractDao.getCurrentSession().beginTransaction();
List<Object[]> turmas = DaoFactory.getCourseUnitTurmaDaoImpl().loadByCourseUnit(courseUnitId);
 
/**
* .add(Projections.groupProperty("turma"))
.add(Projections.groupProperty("courseUnit.importYear"))
.add(Projections.groupProperty("courseUnit.name"))
.add(Projections.groupProperty("courseUnit.courseName"))
.add(Projections.groupProperty("courseUnit.courseCode"))
.add(Projections.countDistinct("student.id"))
.add(Projections.countDistinct("courseUnit.course.id")))
*/
 
%>
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Turma</th>
<th>Ano</th>
<th>Students</th>
</tr>
</thead>
<tbody>
<%
 
for(Object[] cturma : turmas)
{
String turma = (String) cturma[0];
String importYear = (String) cturma[1];
String unidade = (String) cturma[2];
String courseName = (String) cturma[3];
String courseCode = (String) cturma[4];
Integer students = (Integer) cturma[5];
Long courseId = (Long) cturma[6];
 
%>
<tr>
<td>
<a href="#" class="reloadAjaxRequestModal" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listTurmasCourseUnits.jsp?importYear=<%=importYear%>&courseId=<%=courseId%>&turma=<%=turma%>" data-title="Unidades com a turma <%=turma%> do Curso de <%=courseName%> (<%=courseCode%>)">
<%=turma%>
</a>
</td>
<td><%=importYear%></td>
<td><%=students%></td>
</tr>
<%
}
%>
</tbody>
</table>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/listCourseUnitsTurmas.jsp
New file
0,0 → 1,57
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ 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" %>
<%
long courseId = Long.parseLong(request.getParameter("courseId"));
String importYear = request.getParameter("importYear");
 
 
AbstractDao.getCurrentSession().beginTransaction();
List<Object[]> courseUnitTurmas = DaoFactory.getCourseUnitTurmaDaoImpl().loadByCourse(courseId, importYear);
Course course = DaoFactory.getCourseDaoImpl().load(courseId);
%>
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Ano</th>
<th>Turma</th>
<th>Unidades</th>
<th>Estudantes</th>
</tr>
</thead>
<tbody>
<%
for(Object[] pair : courseUnitTurmas)
{
String turma = (String) pair[0];
Integer count = (Integer) pair[1];
Integer students = (Integer) pair[2];
%>
<tr>
<td><%=importYear%></td>
<td><%=turma%></td>
<td>
<a href="#" class="reloadAjaxRequestModal" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listTurmasCourseUnits.jsp?importYear=<%=importYear%>&courseId=<%=courseId%>&turma=<%=turma%>" data-title="Unidades com a turma <%=turma%> do Curso de <%=course.getName()%> (<%=course.getCode()%>)">
<%=count%>
</a>
 
</td>
<td><%=students%></td>
</tr>
<%
}
%>
</tbody>
</table>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/listTurmasCourseUnits.jsp
New file
0,0 → 1,59
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnitTurma" %>
<%@ 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" %>
<%
long courseId = Long.parseLong(request.getParameter("courseId"));
String importYear = request.getParameter("importYear");
String turma = request.getParameter("turma");
 
AbstractDao.getCurrentSession().beginTransaction();
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourseTurma(courseId, importYear,turma);
request.setAttribute("courseUnits",courseUnits);
%>
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Codigo</th>
<th>Nome</th>
<th>Semestre</th>
<th>Curso</th>
<th>Codigo Curso</th>
<th>Turmas</th>
</tr>
</thead>
<tbody>
<logic:iterate id="courseUnit" name="courseUnits" type="pt.estgp.estgweb.domain.CourseUnit">
<tr>
<td>${courseUnit.code}</td>
<td>
<a target="_blank" href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=${courseUnit.id}">${courseUnit.name}</a>
</td>
<td>${courseUnit.semestre}</td>
<td>
<a class="reloadAjaxRequestModal" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnitsTurmas.jsp?importYear=${courseUnit.importYear}&courseId=<%=courseId%>" data-title="Turmas do Curso de ${courseUnit.courseName} (${courseUnit.courseCode})">
${courseUnit.courseName}
</a>
</td>
<td>${courseUnit.courseCode}</td>
<td>
<a class="reloadAjaxRequestModal" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCunitTurmas.jsp?courseUnitId=${courseUnit.id}" data-title="Turmas da Unidade ${courseUnit.name} (${courseUnit.code}) do curso de ${courseUnit.courseName} (${courseUnit.courseCode})">
<%=courseUnit.getTurmas().size()%>
</a>
</td>
</tr>
</logic:iterate>
</tbody>
</table>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckCursoAfeto.jsp
New file
0,0 → 1,243
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="pt.estgp.estgweb.domain.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
 
<%
long cursoAfetoId = Long.parseLong(request.getParameter("cursoAfetoId"));
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioPedagogicoCursoAfeto cursoAfeto = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().load(cursoAfetoId);
cursoAfeto = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().narrow(cursoAfeto);
request.setAttribute("CursoAfeto",cursoAfeto);
Questionario q = cursoAfeto.getQuestionario();
q = DaoFactory.getQuestionarioDaoImpl().narrow(q);
((QuestionarioImpl)q).initClearances((UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest(request),false);
request.setAttribute("Questionario",q);
%>
<jsp:useBean id="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/>
<script>
$(document).ready(
 
function()
{
$("#cursoAfetoTable${CursoAfeto.id} .usarCheck").each(function()
{
if($(this).prop("checked"))
{
$(this).closest("td").addClass("usarChecked");
$(this).closest("td").removeClass("usarNotChecked");
}
else
{
$(this).closest("td").removeClass("usarChecked");
$(this).closest("td").addClass("usarNotChecked");
}
}
);
$("#cursoAfetoTable${CursoAfeto.id} .vistaCheck").each(function()
{
if($(this).prop("checked"))
{
$(this).closest("td").addClass("vistaChecked");
$(this).closest("td").removeClass("vistaNotChecked");
}
else
{
$(this).closest("td").removeClass("vistaChecked");
$(this).closest("td").addClass("vistaNotChecked");
}
});
 
$("#cursoAfetoTable${CursoAfeto.id} .usarCheck").on("change",function()
{
if($(this).prop("checked"))
{
$(this).closest("td").addClass("usarChecked");
$(this).closest("td").removeClass("usarNotChecked");
}
else
{
$(this).closest("td").removeClass("usarChecked");
$(this).closest("td").addClass("usarNotChecked");
}
});
 
$("#cursoAfetoTable${CursoAfeto.id} .vistaCheck").on("change",function()
{
if($(this).prop("checked"))
{
$(this).closest("td").addClass("vistaChecked");
$(this).closest("td").removeClass("vistaNotChecked");
}
else
{
$(this).closest("td").removeClass("vistaChecked");
$(this).closest("td").addClass("vistaNotChecked");
}
});
}
);
</script>
<table id="cursoAfetoTable${CursoAfeto.id}" class="tablesorter-blue">
<thead>
<tr>
<th></th>
<th>Codigo</th>
<th>Nome</th>
<%--<th>Tipologias Manuais</th>--%>
<th>Turmas</th>
<th>Docentes</th>
<th>Estudantes</th>
<th>Alertas</th>
<th>Docentes s/ sumario</th>
<th>Turmas s/ sumario</th>
<th>Usar</th>
<th>Vista</th>
<th>Obs.</th>
</tr>
</thead>
<tbody>
<logic:iterate id="unidade" name="CursoAfeto" property="unidadesAfetas" type="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfetaImpl">
<tr id="unidadeAfetaRow${unidade.id}">
<td>
<script>
$(document).ready(
function()
{
$('#tipologias${unidade.id}').on('shown.bs.collapse', function () {
$("#tipologias${unidade.id}Button .glyphicon").removeClass("glyphicon-zoom-in").addClass("glyphicon-zoom-out");
});
$('#tipologias${unidade.id}').on('hidden.bs.collapse', function () {
$("#tipologias${unidade.id}Button .glyphicon").removeClass("glyphicon-zoom-out").addClass("glyphicon-zoom-in");
});
 
$("#unidadeAfetaRow${unidade.id} .usarCheck").on("change",function(){
var val =$(this).prop("checked") ? "true" : "false";
var op = "usar";
setUnidadeAfetaVar('${CursoAfeto.id}','${unidade.id}',op,val,$(this).closest("td"));
});
$("#unidadeAfetaRow${unidade.id} .vistaCheck").on("change",function()
{
var val =$(this).prop("checked") ? "true" : "false";
var op = "vista";
setUnidadeAfetaVar('${CursoAfeto.id}','${unidade.id}',op,val,$(this).closest("td"));
});
}
 
);
</script>
<button id="tipologias${unidade.id}Button" class="btn btn-default btn-small" type="button" data-toggle="collapse" data-target="#tipologias${unidade.id}"><span class="glyphicon glyphicon-zoom-in"></span></button>
<script>
$(document).ready(
function(){
$.post("<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckUnidadeAfeta.jsp?unidadeAfetaId=${unidade.id}", function(data) {
$("#tipologias${unidade.id} .tipologias")
.html(data);
evaluateTableSortersInside("#tipologias${unidade.id} .tipologias");
});
}
);
</script>
</td>
<td>${unidade.codigoUnidade}</td>
<td>
<html:link target="_blank" action="/user/startLoadCourseUnitFromHome.do?id=${unidade.courseUnit.id}">
${unidade.nome}
</html:link>
</td>
<%-- <td>${unidade.addedTipologias}</td>--%>
<td>
<a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCunitTurmas.jsp?courseUnitId=${unidade.courseUnit.id}" data-title="Turmas da Unidade ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest">
${unidade.turmas}
</a>
<td>
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/teachersInfo.jsp?courseUnitId=${unidade.courseUnit.id}" data-title="Docentes da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest">
${unidade.profs}
</a>
 
</td>
<td>
 
<%
CourseUnitImpl courseUnitImpl = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidade.getCourseUnit());
int students = courseUnitImpl.studentsSize();
int studentsTurmasSize = courseUnitImpl.studentsTurmaSize();
if(students != studentsTurmasSize)
{
unidade.setMarked(true);
if(unidade.getObs() != null && unidade.getObs().indexOf("Nº Estudantes")< 0)
unidade.setObs("Nº Estudantes diferente Somatorio Estudantes das turmas");
%>
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}" data-title="Alunos da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=students%>
</a>
!=
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}" data-title="Alunos da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=studentsTurmasSize%>
</a>
<span class="glyphicon glyphicon-alert"></span>
 
<%
}
else
{
%>
<a href="#" data-href="<%=request.getContextPath()%>/user/courseunits/listStudentsService.jsp?courseUnitView.id=${unidade.courseUnit.id}" data-title="Alunos da unidade de ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=students%>
</a>
<%
}
%>
 
</td>
<td>
<logic:equal value="true" name="unidade" property="marked">
<span class="glyphicon glyphicon-alert"></span>
</logic:equal>
</td>
<td>${unidade.profsWithoutTurma}</td>
<td>${unidade.turmaWithoutProf}</td>
<td>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_ASSIGNEMENTS">
<html:checkbox styleClass="usarCheck" name="unidade" property="usar"/>
</baco:clearOperation>
</td>
<td>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_ASSIGNEMENTS">
<html:checkbox styleClass="vistaCheck" name="unidade" property="vista"/>
</baco:clearOperation>
</td>
<td id="editObsTd${unidade.id}" <%=unidade.getObs() != null && unidade.getObs().trim().length() > 0 ? "class=\"obsContent\"":""%>>
<button class="btn btn-warning btn-small" type="button" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/questionarioObsEdit.jsp?unidadeAfetaId=${unidade.id}&targetSetVarId=editObsTd${unidade.id}" data-title="Observações para a unidade ${unidade.nome} (${unidade.codigoUnidade}) do curso de ${CursoAfeto.nome} (${CursoAfeto.codigoCurso})" data-toggle="modal" data-target="#modalAjaxRequest"><span class="glyphicon glyphicon-pencil"></span></button>
</td>
</tr>
<tr class="collapse" id="tipologias${unidade.id}">
<td></td>
<td colspan="10" class="tipologias" style="padding-left: 25px">
 
<div class="panel panel-default">
<div class="panel-body">
<p>Por favor aguarde um momento, o sistema está a carregar as tipologias <img src="<%=request.getContextPath()%>/imgs/wait.gif"/></p>
</div>
</div>
</td>
</tr>
<%
//DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().evict(unidade);
%>
</logic:iterate>
</tbody>
</table>
 
<%
DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().evict(cursoAfeto);
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckUnidadeAfeta.jsp
New file
0,0 → 1,154
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnitImpl" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfetaImpl" %>
<%@ 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" %>
<%
long unidadeAfetaId = Long.parseLong(request.getParameter("unidadeAfetaId"));
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioPedagogicoUnidadeCurricularAfeta unidade = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().load(unidadeAfetaId);
unidade = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().narrow(unidade);
request.setAttribute("unidade",unidade);
%>
 
<%
CourseUnitImpl courseUnit = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidade.getCourseUnit());
List<CourseUnitImpl.Tipologia> tipologias;
 
if(unidade.getCursoAfeto().isUsarTipologias())
{
tipologias = courseUnit.getTipologiasClass().obtainMergeTipologias();
}
else
{
tipologias = courseUnit.getTipologiasClass().obtainTipologiasSimples(courseUnit);
}
request.setAttribute("tipologias",tipologias);
 
%>
<table class="tablesorterfiltered">
<thead>
<tr>
<th class="filter-name filter-select">Código Docente</th>
<th class="filter-name filter-select">Docente</th>
<th class="filter-name filter-select">Tipologia</th>
<th>Sumariadas</th>
<th class="filter-name filter-select">Turma</th>
<th>Estudantes</th>
<th>Tip. Manual</th>
<th>Tip. Horário Ref.</th>
<th>Tip. Sumário</th>
<th>Usar</th>
</tr>
</thead>
<tbody>
<logic:iterate id="tipologia" name="tipologias" type="pt.estgp.estgweb.domain.CourseUnitImpl.Tipologia">
<%
CourseUnitImpl.TipologiaPersistent tipoPersistente = courseUnit.loadPersistent(tipologia);
if(tipoPersistente == null)
{
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.getCdDocente() + " " + tipologia.getDsTipologia());
%>
<script>
$(document).ready(
function(){
$("#editObsTd${unidade.id}").removeClass("obsContent");
$("#editObsTd${unidade.id}").addClass("obsContent");
}
);
</script>
<%--<tr>
<td>${tipologia.cdDocente}</td>
<td>ERRO PROFESSOR NAO SINCRONIZADO</td>
<td>${tipologia.dsTipologia}</td>
<td>${tipologia.ocorrencias}</td>
<td>${tipologia.cdTurma}</td>
<td>ERRO TURMA NAO SINCRONIZADA TENTE CORRER AS IMPORTACOES ALUNOS E DOCENTES</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>--%>
<%
}
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>
</tbody>
</table>
 
 
<%
//DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().evict(unidade);
AbstractDao.getCurrentSession().getTransaction().commit();
 
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionarioAdminPanel.jsp
New file
0,0 → 1,174
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ 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="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/>
 
<baco:clearOperation name="Questionario" op="QUESTIONARIO_ASSIGNATION_OPERATIONS">
sdfsadfasdf
<div class="row">
<logic:empty name="Questionario" property="year">
<script>
$(document).ready(
function(){
$("#yearSemestreForm").show();
}
);
</script>
</logic:empty>
<logic:notEmpty name="Questionario" property="year">
<div class="col-md-3 col-sm-3" id="yearSemestreInfo">
<div class="list-group">
<div class="list-group-item">
<bean:message key="survey.list.form.year"/>: ${Questionario.year}
</div>
<div class="list-group-item">
Semestre: ${Questionario.semestre}
</div>
</div>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SET_ANO_SEMESTRE">
<button class="btn btn-default" type="button" onclick="$('#yearSemestreForm').show();$('#yearSemestreInfo').hide()">Modificar</button>
</baco:clearOperation>
</div>
</logic:notEmpty>
 
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SET_ANO_SEMESTRE">
<div class="col-md-6" style="display: none" id="yearSemestreForm">
<div class="panel panel-default">
<div class="panel-body">
 
<html:form styleClass="form-horizontal" action="/user/questionariosPaeYearSemestre">
<%
QuestionarioForm qFr = (QuestionarioForm) request.getAttribute("QuestionarioForm");
if(qFr.getQuestionario().getId() <= 0)
qFr.setQuestionario(Questionario);
%>
<input type="hidden" name="dispatch" value="setYearSemestre"/>
<html:hidden property="questionario.id"/>
<div class="form-group">
<label class="control-label col-sm-2" for="year"><bean:message key="survey.list.form.year"/></label>
<div class="col-sm-10">
<%
List<String> years = DatesUtils.getImportYears(10);
%>
<html:select styleClass="form-control" styleId="year" property="questionario.year">
<html:option value="">Escolha Ano</html:option>
<%
for(String year:years)
{
request.setAttribute("year",year);
%>
<html:option value="${year}">${year}</html:option>
<%
}
%>
</html:select>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="semestre">Semestre:</label>
<div class="col-sm-10">
<html:select styleClass="form-control" styleId="semestre" property="questionario.semestre">
<html:option value="">Escolha semestre</html:option>
<html:option value="A">Anual</html:option>
<html:option value="S1">Semestre 1</html:option>
<html:option value="S2">Semestre 2</html:option>
<html:option value="T1">Trimestre 1</html:option>
<html:option value="T2">Trimestre 2</html:option>
<html:option value="T3">Trimestre 3</html:option>
<html:option value="T4">Trimestre 4</html:option>
</html:select>
</div>
</div>
<button class="btn btn-default" type="button" onclick="this.form.action = this.form.action + '#NOWTASK';this.form.submit();"><bean:message key="confirm"/></button>
</html:form>
</div>
</div>
</div>
</baco:clearOperation>
<hr class="visible-xs"/>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
<div class="col-md-3 col-sm-3">
<div class="list-group">
 
<%
if(Questionario.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition())
request.setAttribute("classAssignCourses","btn-success");
else
request.setAttribute("classAssignCourses","btn-warning");
%>
<div class="list-group-item">
<html:link styleClass="btn ${classAssignCourses}" action="/user/questionarioPedagogicoStartChooseCourses?questionarioId=${Questionario.id}">
Selecção de Cursos
</html:link>
</div>
 
<logic:equal value="ASSIGNING_COURSES" name="Questionario" property="substate">
<div class="list-group-item">
<div class="alert alert-warning alert-small">
Os cursos estão em atribuição
</div>
</div>
</logic:equal>
<%
if(Questionario.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition())
{
%>
<div class="list-group-item">
<a href="#" class="btn btn-info btn-sm" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/cursosJobInfo.jsp?jobId=${Questionario.courseSelectionTaskId}" data-title="Listagem de Cursos da Tarefa de Atribuição" data-toggle="modal" data-target="#modalAjaxRequest">
Cursos Atribuidos <span class="glyphicon glyphicon-list-alt"> </span>
</a>
</div>
<%
}
%>
 
</div>
 
</div>
</baco:clearOperation>
<hr class="visible-xs"/>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES,QUESTIONARIO_CHANGE_ASSIGNEMENTS">
<div class="col-md-3 col-sm-3">
<div class="list-group">
<div class="list-group-item">
<html:link styleClass="btn btn-warning" action="/user/questionarioPedagogicoStartCheckCourses?questionarioId=${Questionario.id}">
Verificar Atribuições
</html:link>
</div>
</div>
</div>
</baco:clearOperation>
<hr class="visible-xs"/>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_START_ASSIGN_ANSWERS">
<div class="col-md-3 col-sm-3">
<div class="list-group">
<div class="list-group-item">
<html:link styleClass="btn btn-warning" action="/user/questionarioPedagogicoStartChooseCourses?questionarioId=${Questionario.id}">
Iniciar Atribuição de Respostas
</html:link>
</div>
</div>
</div>
</baco:clearOperation>
</div>
<hr/>
<div class="row">
<div class="col-md-12 col-sm-12">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS">
<button class="btn btn-danger" type="button" data-toggle="modal" data-target="#confirm-ModalGeneric" data-message="Esta operação irá anular os cursos e unidades atribuidos anteriormente!! Tem a certeza que deseja prosseguir?" data-href="<%=request.getContextPath()%>/user/questionariosPaeSelectCourses.do?dispatch=revertAssignements&questionario.id=${Questionario.id}#NOWTASK">Anular Atribuições</button>
</baco:clearOperation>
</div>
</div>
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_ASSIGNATION_OPERATIONS">
Não pode aceder a esta area, não está autorizado a efetuar operações de atribuição.
</baco:notClearOperation>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/listCourseUnits.jsp
New file
0,0 → 1,51
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
<%@ 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" %>
<%
long courseId = Long.parseLong(request.getParameter("courseId"));
String importYear = request.getParameter("importYear");
 
AbstractDao.getCurrentSession().beginTransaction();
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(courseId,importYear);
request.setAttribute("courseUnits",courseUnits);
%>
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Codigo</th>
<th>Nome</th>
<th class="filter-name filter-select">Semestre</th>
<th>Curso</th>
<th>Codigo Curso</th>
<th>Turmas</th>
</tr>
</thead>
<tbody>
<logic:iterate id="courseUnit" name="courseUnits" type="pt.estgp.estgweb.domain.CourseUnit">
<tr>
<td>${courseUnit.code}</td>
<td><a target="_blank" href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=${courseUnit.id}">${courseUnit.name}</a></td>
<td>${courseUnit.semestre}</td>
<td>${courseUnit.courseName}</td>
<td>${courseUnit.courseCode}</td>
<td>
<a class="reloadAjaxRequestModal" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCunitTurmas.jsp?courseUnitId=${courseUnit.id}" data-title="Turmas da Unidade ${courseUnit.name} (${courseUnit.code}) do curso de ${courseUnit.courseName} (${courseUnit.courseCode})">
<%=courseUnit.getTurmas().size()%>
</a>
</td>
</tr>
</logic:iterate>
</tbody>
</table>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesCheck.jsp
New file
0,0 → 1,467
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnitImpl" %>
<%@ 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.views.CourseView" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.utils.DynamicArrayList" %>
<%@ 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" %>
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
qId = request.getParameter("questionario.id");
Long questionarioId = Long.parseLong(qId);
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
QuestionarioImpl questionario = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"loadQuestionarioAdmin",args,names);
 
 
request.setAttribute("Questionario", questionario);
 
List<String> institutionCodes = ConfigProperties.getListValues("questionario.instituition.");
 
AbstractDao.getCurrentSession().beginTransaction();
 
 
%>
<jsp:useBean id="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/>
 
 
<jsp:include page="/layout/pleaseWait.jsp"/>
 
<html:form action="/user/questionariosPaeSelectCourses">
<html:hidden property="questionario.id" value="${Questionario.id}"/>
<input type="hidden" name="dispatch" value="updateTipologias"/>
 
<jsp:useBean id="QuestionarioForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioForm" scope="request"/>
<%
//Variavel iniciada no serviço de load por chamada do IAnswerProcessor respectivo para inicializar
//as variaveis especificas
List<QuestionarioPedagogicoCursoAfeto> cursosAfetados = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(questionario.getId());
QuestionarioForm.setCursosAfetos(cursosAfetados);
%>
<div class="container-fluid">
 
<style>
td.unidades
{
background-color: dimgray !important;
}
 
td.tipologias
{
background-color: #baffdc !important;
}
 
td.obsContent
{
background-color: #ffda48 !important;
}
td.vistaChecked
{
background-color: #20ff05 !important;
}
td.vistaNotChecked
{
background-color: gray !important;
}
td.usarNotChecked
{
background-color: red !important;
}
td.usarChecked
{
 
}
 
 
@keyframes waitPost {
from { opacity: 1; }
to { opacity: 0; }
}
td.waitPost
{
background-color: yellow !important;
animation: waitPost 0.5s cubic-bezier(.2, 0, 1, 1) infinite alternate;
 
/*
-webkit-animation-name: waitPost !important;
-webkit-animation-iteration-count: infinite !important;
-webkit-animation-timing-function: cubic-bezier(.5, 0, 1, 1) !important;
-webkit-animation-duration: 1.7s !important;*/
 
}
 
</style>
 
<div class="panel panel-primary">
<div class="panel-heading">
Selecção de Cursos para o Questionário ${Questionario.id} - Periodo: ${Questionario.semestre} de ${Questionario.year}
</div>
<div class="panel-body">
<html:errors/>
<jomm:messages/>
 
 
<div class="baco-please-wait-target">
 
<ul class="nav nav-tabs">
<li id="institutionsSeparatorsGerarFinal"><a href="javascript:showInstitutionCode('GerarFinal')"><strong><u>Operações</u></strong></a></li>
<%
for(String institutionCode: institutionCodes)
{
String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
%>
<li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li>
<%
}
%>
 
</ul>
<script>
$(document).ready(
function(){
showInstitutionCode('GerarFinal');
 
 
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES">
$(".checkAll").remove();
</baco:notClearOperation>
 
$(".courseCheck").attr("data-toogle","toggle");
$('.courseCheck').bootstrapToggle({
on: 'Tipologias',
off: 'Simples'
});
 
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES">
$('.checkAll').bootstrapToggle({
on: 'Tipologias',
off: 'Simples'
});
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES">
$(".courseCheck").prop("disabled",true);
$("#updateTipologiasButton").prop("disabled",true);
</baco:notClearOperation>
}
 
 
);
 
function selectAll(code,source)
{
 
$('#institution' + code).find('.courseCheck').each(
function()
{
if($(source).prop("checked"))
$(this).bootstrapToggle('on');
else
$(this).bootstrapToggle('off');
});
}
 
 
function showInstitutionCode(institutionCode)
{
<%
for(String institutionCode: institutionCodes)
{
%>
if(institutionCode == '<%=institutionCode%>')
{
$("#institution<%=institutionCode%>").show();
$("#institutionsSeparators<%=institutionCode%>").addClass("active");
}
else
{
$("#institution<%=institutionCode%>").hide();
$("#institutionsSeparators<%=institutionCode%>").removeClass("active");
}
<%
}
%>
if(institutionCode == 'GerarFinal')
{
$("#institutionGerarFinal").show();
$("#institutionsSeparatorsGerarFinal").addClass("active");
}
else
{
$("#institutionGerarFinal").hide();
$("#institutionsSeparatorsGerarFinal").removeClass("active");
}
}
 
 
function setUnidadeAfetaVar(cursoAfetoId,unidadeAfetaId,op,val,targetObject)
{
$(targetObject).addClass("waitPost");
$.post("<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/setUnidadeAfetaVar.jsp",
{
"questionarioId" : ${Questionario.id},
"unidadeAfetaId":unidadeAfetaId,
"op":op,
"val": val
},
function(data, textStatus)
{
if(data.error)
{
alert(data.error);
}
else if(data.ok == "ok")
{
$(targetObject).removeClass("waitPost");
reloadCursoStats(cursoAfetoId);
}
},
"json");
}
function reloadCursoStats(cursoAfetoId)
{
 
$.getJSON("<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/courseInfoJson.jsp?cursoAfetoId="+cursoAfetoId,
function(dataJson)
{
 
var porVer = dataJson.porVer + " ";
if(dataJson.porVer > 0)
{
porVer += "<span class=\"glyphicon glyphicon-alert\"></span>";
}
$("#cursoAfetoRow" + cursoAfetoId + " .porVerCount").html(porVer);
 
var marcadas = dataJson.marcadas + " ";
if(dataJson.marcadas > 0)
{
marcadas += "<span class=\"glyphicon glyphicon-alert\"></span>";
}
$("#cursoAfetoRow" + cursoAfetoId + " .marcadasCount").html(marcadas);
 
var observadas = dataJson.observadas + " ";
if(dataJson.observadas > 0)
{
observadas += "<span class=\"glyphicon glyphicon-alert\"></span>";
}
$("#cursoAfetoRow" + cursoAfetoId + " .observadasCount").html(observadas);
 
var naoUsadas = dataJson.naoUsadas + " ";
if(dataJson.naoUsadas > 0)
{
naoUsadas += "<span class=\"glyphicon glyphicon-alert\"></span>";
}
$("#cursoAfetoRow" + cursoAfetoId + " .naoUsadasCount").html(naoUsadas)
 
$("#cursoAfetoRow" + cursoAfetoId + " .unidadesCount").html(dataJson.unidades);
 
}
);
}
 
</script>
 
<%
for(String institutionCode: institutionCodes)
{
String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode);
 
%>
 
 
<div class="panel panel-default" id="institution<%=institutionCode%>" style="display: none">
<div class="panel-heading">
Cursos da <%=institutionName%>
</div>
<div class="panel-body">
<table class="tablesorter-blue">
<thead>
<tr>
<th></th>
<th>Codigo</th>
<th>Tipo de Curso</th>
<th>Curso</th>
<th>Papel Comissão Curso</th>
<th>Unidades</th>
<th>Alertas </th>
<th>Por Ver</th>
<th>Não Usadas</th>
<th>Observadas</th>
<th>Turmas</th>
 
<th class="filter-false" data-sorter="false">
<input class="checkAll" type="checkbox" onchange="selectAll('<%=institutionCode%>',this)">
</th>
 
</tr>
</thead>
<tbody>
<nested:iterate id="cursoAfeto" name="QuestionarioForm" property="cursosAfetos" type="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfetoImpl" scope="request">
<%
if(cursoAfeto.getCodigoInstituicao().equals(institutionCode))
{
int turmasSize = DaoFactory.getCourseDaoImpl().countCoursesUnitsTurmas(questionario.getYear(), cursoAfeto.getCourse().getId());
CourseView cv = new CourseView(cursoAfeto.getCourse());
request.setAttribute("CourseView",cv);
request.setAttribute("CursoAfeto",cursoAfeto);
 
%>
<tr id="cursoAfetoRow${cursoAfeto.id}">
<td>
<script>
$(document).ready(
 
function(){
reloadCursoStats("${cursoAfeto.id}");
 
$('#${CursoAfeto.codigoCurso}unidades').on('shown.bs.collapse', function (e) {
if ($(this).is(e.target)) {
$("#${CursoAfeto.codigoCurso}unidadesButton .glyphicon").removeClass("glyphicon-folder-close").addClass("glyphicon-folder-open");
}
});
$('#${CursoAfeto.codigoCurso}unidades').on('hidden.bs.collapse', function (e) {
if ($(this).is(e.target)) {
$("#${CursoAfeto.codigoCurso}unidadesButton .glyphicon").removeClass("glyphicon-folder-open").addClass("glyphicon-folder-close");
}
});
}
);
</script>
<button id="${CursoAfeto.codigoCurso}unidadesButton" class="btn btn-default btn-small" type="button" data-toggle="collapse" data-target="#${CursoAfeto.codigoCurso}unidades"><span class="glyphicon glyphicon-folder-close"></span></button>
<script>
$(document).ready(
function(){
$.post("<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckCursoAfeto.jsp?cursoAfetoId=${CursoAfeto.id}", function(data) {
$("#${CursoAfeto.codigoCurso}unidades .unidades")
.html(data);
evaluateTableSortersInside("#${CursoAfeto.codigoCurso}unidades .unidades");
});
}
);
</script>
</td>
<td>
<nested:hidden property="id"/>
${CourseView.code}
</td>
<td><bean:message key="course.${CourseView.degreeCleanCode}"/></td>
<td>${CourseView.name}</td>
<td>
<logic:notEmpty name="CourseView" property="validationRole">
<bean:message key="user.role.${CourseView.validationRole}"/>
</logic:notEmpty>
<logic:empty name="CourseView" property="validationRole">
Papel não atribuido (Corrigir Situação)
</logic:empty>
</td>
<td class="unidadesCount">
<a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnits.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Unidades do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=cursoAfeto.getUnidadesAfetas().size()%>
</a>
</td>
<td class="marcadasCount">
${CursoAfeto.marcadas}
<logic:greaterThan value="0" name="CursoAfeto" property="marcadas">
<span class="glyphicon glyphicon-alert"></span>
</logic:greaterThan>
</td>
<td class="porVerCount"> ... </td>
<td class="naoUsadasCount"> ... </td>
<td class="observadasCount"> ... </td>
<td>
<a href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/listCourseUnitsTurmas.jsp?importYear=${CourseView.importYear}&courseId=${CourseView.id}" data-title="Turmas do Curso de ${CourseView.name} (${CourseView.code})" data-toggle="modal" data-target="#modalAjaxRequest">
<%=turmasSize%>
</a>
</td>
 
<td>
<nested:checkbox property="usarTipologias" styleClass="courseCheck"/>
</td>
</tr>
<tr id="${CursoAfeto.codigoCurso}unidades" class="collapse">
<td></td>
<td colspan="11" class="unidades" style="padding-left: 25px">
<div class="panel panel-default">
<div class="panel-body">
<p>Por favor aguarde um momento, o sistema está a carregar as unidades curriculares <img src="<%=request.getContextPath()%>/imgs/wait.gif"/></p>
</div>
</div>
</td>
</tr>
<%
}
//DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().evict(cursoAfeto);
%>
</nested:iterate>
</tbody>
</table>
</div>
</div>
<%
}
%>
 
 
<div class="panel panel-primary" id="institutionGerarFinal">
<div class="panel-heading">
Verificação de Atribuições
</div>
<div class="panel-body">
 
 
<div class="col-sm-6">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES">
<div class="alert alert-warning">Está neste momento no painel de verificações do questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div>
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_TIPOLOGIES">
<div class="alert alert-warning">Não tem permissão para verificar atribuições no questionário ${Questionario.id} criado para o periodo ${Questionario.semestre} de ${Questionario.year}</div>
</baco:notClearOperation>
 
<a class="btn btn-default" href="#" data-href="<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/questionarioLogState.jsp?questionarioId=${Questionario.id}" data-title="Registo de mudanças de estado do questionario ${Questionario.id}" data-toggle="modal" data-target="#modalAjaxRequest">
Registo de Mudanças de Estado
</a>
</div>
<div class="col-sm-6">
 
</div>
 
 
</div>
 
</div>
<div class="col-sm-12">
 
<button id="updateTipologiasButton" class="btn btn-success">Atualizar Tipologias</button>
<html:link action="/user/adminQuestionario?questionario.id=${Questionario.id}#NOWTASK" styleClass="btn btn-danger">Voltar à administração</html:link>
</div>
</div>
 
 
</div>
</div>
</div>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
 
 
</html:form>
/branches/v3/impl/src/web/user/questionarios/topnavQuestionarioAdmin.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/listQuestionarios.do", "surveys");
topNav.addNavPlace(null, "survey.admin",""+questionarioId);
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/Directory.java
2,7 → 2,7
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/RightsT.java
2,7 → 2,7
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/package-info.java
2,7 → 2,7
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.estgp.pt/baco/directory/", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/GroupDeclarationT.java
2,7 → 2,7
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/NodeT.java
2,7 → 2,7
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/LeafT.java
2,17 → 2,22
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
 
package pt.estgp.estgweb.services.directories.xsd;
 
import javax.xml.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
import java.util.List;
 
 
/**
/branches/v3/impl/gen/java/pt/estgp/estgweb/services/directories/xsd/ObjectFactory.java
2,7 → 2,7
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.02.25 at 10:30:52 AM WET
// Generated on: 2016.03.28 at 02:59:42 PM WEST
//
 
 
37,59 → 37,59
}
 
/**
* Create an instance of {@link RightsT.Right }
* Create an instance of {@link GroupDeclarationT.Group }
*
*/
public RightsT.Right createRightsTRight() {
return new RightsT.Right();
public GroupDeclarationT.Group createGroupDeclarationTGroup() {
return new GroupDeclarationT.Group();
}
 
/**
* Create an instance of {@link LeafT }
* Create an instance of {@link GroupDeclarationT }
*
*/
public LeafT createLeafT() {
return new LeafT();
public GroupDeclarationT createGroupDeclarationT() {
return new GroupDeclarationT();
}
 
/**
* Create an instance of {@link NodeT }
* Create an instance of {@link Directory }
*
*/
public NodeT createNodeT() {
return new NodeT();
public Directory createDirectory() {
return new Directory();
}
 
/**
* Create an instance of {@link GroupDeclarationT }
* Create an instance of {@link RightsT.Right }
*
*/
public GroupDeclarationT createGroupDeclarationT() {
return new GroupDeclarationT();
public RightsT.Right createRightsTRight() {
return new RightsT.Right();
}
 
/**
* Create an instance of {@link Directory }
* Create an instance of {@link RightsT }
*
*/
public Directory createDirectory() {
return new Directory();
public RightsT createRightsT() {
return new RightsT();
}
 
/**
* Create an instance of {@link RightsT }
* Create an instance of {@link NodeT }
*
*/
public RightsT createRightsT() {
return new RightsT();
public NodeT createNodeT() {
return new NodeT();
}
 
/**
* Create an instance of {@link GroupDeclarationT.Group }
* Create an instance of {@link LeafT }
*
*/
public GroupDeclarationT.Group createGroupDeclarationTGroup() {
return new GroupDeclarationT.Group();
public LeafT createLeafT() {
return new LeafT();
}
 
}
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgramPart2.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlog.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Reminder.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordEventOrganization.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordPaper.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Configuration.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageContent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarQuestionarioAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ComunicationFolder.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Student.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgram.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Survey.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionPossibleAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordThesis.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageSection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.ArrayList;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionCandidateAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageExternalObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioInstituicao.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordJob.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitTurma.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesStatusEpoca.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyResponse.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageRepositoryFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Record.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitSummary.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEventFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Blog.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFileVersion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Assessment.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UserRoleConfig.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarQuestionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SruSource.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfeta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
25,6 → 25,8
private int turmaWithoutProf;
private int profsWithoutTurma;
private int tipologias;
private boolean vista;
private boolean usar;
private String obs;
private String tipologiasJson;
private QuestionarioPedagogicoCursoAfeto cursoAfeto;
126,6 → 128,20
public void setTipologias(int tipologias) {
this.tipologias = tipologias;
}
public boolean isVista() {
return this.vista;
}
public void setVista(boolean vista) {
this.vista = vista;
}
public boolean isUsar() {
return this.usar;
}
public void setUsar(boolean usar) {
this.usar = usar;
}
public String getObs() {
return this.obs;
}
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Course.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageExternalUrl.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitGrade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionItem.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentResponse.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTurma.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta1_5.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Page.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitado.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Process.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Image.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Questionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionItem.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioDocente.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAssignement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioHistoryDrive.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitada.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesEpocaAvaliacao.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitada.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Job.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifierCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAnnouncement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPeriodo.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskScheduler.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaGrupo.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryCategory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordOther.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDelivery.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCursoDegree.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitEvaluation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStructuralNode.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGrades.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 27/Mar/2016 11:21:50 by Hibernate Tools 3.2.0.b9
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;