Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1326 → Rev 1346

/branches/v3/impl/local-exampleNotInUse.properties
38,3 → 38,11
tomcat.context.path=/baco
tomcat.war.file=baco.war
 
 
#EMAIL SERVER SMTP GOOGLE
email.password=DUMMY_PASSWORD_GMAIL
##Em testes colocar a true
test.control.var=true
 
oracle.siges.username=dummyChangeInLocal
oracle.siges.password=dummyChangeInLocal
/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.
578,7 → 583,9
targetService.pt.estgp.estgweb.services.sigesimports.ImportCourseService=Importação de Cursos
targetService.pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService=Clonagem de Fichas Curriculares
targetService.pt.estgp.estgweb.services.sigesimports.GenerateCourseUnitProgramsService=Gerar PDF's Fichas Curriculares
targetService.pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService=Selecção de Cursos Questionários
 
 
weekday.Mon=Segundas
weekday.Tue=Terças
weekday.Wed=Quartas
1542,6 → 1549,10
task.param.JOB_generateAllPdfs_KEY=Gerar PDFS a Todos
task.param.JOB_validade_KEY=Validar Clonados
task.param.JOB_institution_KEY=Instituição
#questionario
 
task.param.JOB_questionario_courseList_KEY=Lista de Cursos
task.param.JOB_questionario_id_KEY=Questionário ID
################################################################################
#
# Manage Identifiers MESSAGE RESOURCES
1768,10 → 1779,15
error.questionario.p.without.group=Verifique a pergunta {0} nao tem grupo
error.questionario.group.without.p=Verifique o grupo {0} nao tem pergunta
warn.questionario.repeated.in.time=Aviso: Já existe um questionário ({0}) nesse ano e semestre na categoria histórica escolhida
questionario.no.courses.selected=Não seleccionou quaisquer cursos
 
questionario.year.semestre.ok=Ano e Semestre alterados com sucesso
questionarios.choose.courses=Selecção de Cursos
questionarios.choose.courses=Selecção de Cursos para o Periodo {0} de {1}
questionarios.check.courses=Verificação de Questionarios/Tipologias de Cursos para o Periodo {0} de {1}
questionarios.courses.start=Atribuição de Cursos Iniciada
questionario.tipologias.update.success=Tipologias atualizadas com sucesso
 
 
################################################################################
#
# REMINDERS MESSAGE RESOURCES
1872,7 → 1888,7
questionario.historydrive=Categoria Histórica
questionario.answerprocessor=Processador de Respostas
# SERVICE ZONE
survey.admin=Administração de Questionário
survey.admin=Administração do Questionário {0}
surveys=Questionários
survey.newEdit.survey=Formulário do Questionário
survey.create.survey=Criar Questionário
/branches/v3/impl/conf/WEB-INF/struts/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,28 → 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="/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,7 → 75,21
</action>
 
<!--%%%%%%%%%%%%%%%% Pedagogico Alunos Modulo %%%%%%%%%%%%%%%%%%%-->
<action path="/admin/questionarioPedagogicoStartChooseCourses" forward="page.pae.questionario.courses.selection"/>
<action path="/user/questionarioPedagogicoStartChooseCourses" forward="page.pae.questionario.courses.selection"/>
<action path="/user/questionarioPedagogicoStartCheckCourses" forward="page.pae.questionario.courses.check"/>
 
<action path="/user/questionariosPaeSelectCourses"
type="pt.estgp.estgweb.web.controllers.questionarios.QuestionarioCourseSelectionController"
name="QuestionarioForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.pae.questionario.courses.selection">
<forward name="coursesSelection" path="page.pae.questionario.courses.selection"/>
<forward name="coursesCheck" path="page.pae.questionario.courses.check"/>
<forward name="admin" path="page.pae.questionario.admin"/>
</action>
 
<!--%%%%%%%%%%%%%%%% Pedagogico Alunos Modulo %%%%%%%%%%%%%%%%%%%-->
 
 
/branches/v3/impl/conf/log4j.properties
19,6 → 19,14
log4j.appender.hibernate=HibernateAppender
log4j.appender.hibernate.sessionServiceClass=HibernateHelper
log4j.appender.hibernate.loggingEventClass=LogEvent
#log4j.logger.org.hibernate=INFO, hb
#log4j.logger.org.hibernate.SQL=DEBUG
#log4j.logger.org.hibernate.type=TRACE
#log4j.logger.org.hibernate.hql.ast.AST=info
#log4j.logger.org.hibernate.tool.hbm2ddl=warn
#log4j.logger.org.hibernate.hql=debug
#log4j.logger.org.hibernate.cache=info
#log4j.logger.org.hibernate.jdbc=debug
 
# suppress warnings from the SessionImpl (like Narrowing proxy to class com.atlassian.confluence.pages.Page - this operation breaks ==)
log4j.logger.org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog=FATAL
/branches/v3/impl/conf/app.properties
34,7 → 34,7
email.user.sufix=@estgp.pt
email.user.count=10
email.user=bacodev@estgp.pt
email.password=Agreyq54p7870#!
email.password=@email.password@
email.from=bacodev@estgp.pt
email.templates.dir=@email.templates.dir@
#email.server.security=
129,7 → 129,7
#####################################################
##
## Job Deamon seconds
job.deamon.sleep.seconds=30
job.deamon.sleep.seconds=10
 
 
//seconds
653,7 → 653,10
netpa.code.ocup.21.tipo.aula=6
netpa.code.ocup.20.tipo.aula=3
 
baco.tipologia.simples=9999
netpa.tipo.aula.9999=Aulas
 
 
#################
#ORACLE IPP
#################
811,11 → 814,13
questionario.p26=O acompanhamento do orientador interno ou do supervisor da Prática foi adequado.
questionario.p27=O local onde se realizou o Estágio ou o Projeto foi adequado
 
pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.forward=afetacoes.pedagogico.alunos
pt.estgp.estgweb.domain.IAnswersProcessor.1=pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor
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=/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
pt.estgp.estgweb.domain.IAnswersProcessor.1=pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor
#pt.estgp.estgweb.domain.IAnswersProcessor.2=pt.estgp.estgweb.services.questionarios.PedagogicoDocentesProcessor
 
#days until a certificate expire
certificates.expire.in.days=15
/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>
2533,7 → 2558,7
 
<service>
<name>setAnoSemestre</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>setAnoSemestre</defaultMethod>
2572,6 → 2597,70
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
DeleteQuestionario
 
 
<service>
<name>RunJobSelectCourses</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>runJobSelectCourses</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
 
<service>
<name>QuestionarioRevertAllAssignmentsPedagogico</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>revertAllAssignments</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<chain name="AdminsOrQuestionarioAdmins"/>
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
 
<service>
<name>QuestionarioUpdateTipologiasPedagogico</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>updateTipologiasPedagogico</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<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/utils/DatesUtils.java
174,7 → 174,13
}
 
static SimpleDateFormat formatFileSystem = new SimpleDateFormat("yyyyMMdd_HHmmss");
static SimpleDateFormat LogDate = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 
public static String getLogDateNow()
{
return LogDate.format(new Date());
}
 
/**
*
* @param d java.util.Date
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java
426,8 → 426,15
 
 
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");
 
 
public final static int CERTIFICATES_EXPIRTATION_IN_DAYS = ConfigProperties.getIntProperty("certificates.expire.in.days");
 
 
public static final String BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE = ConfigProperties.getProperty("baco.tipologia.simples");
public static final String BACO_TIPOLOGIA_SIMPLES_DS = ConfigProperties.getProperty("netpa.tipo.aula." + BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE);
 
}
/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/jobs/ServiceJob.java
2,6 → 2,7
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import pt.estgp.estgweb.Globals;
30,12 → 31,15
public static final String JOB_generateAllPdfs_KEY = "JOB_generateAllPdfs_KEY";
public static final String JOB_validate_KEY = "JOB_validade_KEY";
public static final String JOB_institution_KEY = "JOB_institution_KEY";
 
public static final String JOB_questionario_courseList_KEY = "JOB_questionario_courseList_KEY";
public static final String JOB_questionario_id_KEY = "JOB_questionario_id_KEY";
/*Log for service run*/
 
protected final Logger serviceLog = Logger.getLogger(ServiceJob.class);
protected final Logger serviceLog = Logger.getLogger("JobServiceTaskLog");
 
/*Class regular log*/
private static final Logger logger = Logger.getLogger("JobServiceTaskLog");
private static final Logger logger = Logger.getLogger(ServiceJob.class);
 
private Map<String,JobServiceTaskParameter> parameters = new HashMap<String, JobServiceTaskParameter>();
protected pt.estgp.estgweb.domain.JobServiceTaskImpl jobServiceTask = null; //to be used in subService in order to update log and check stopRequest
89,18 → 93,33
*/
public void runJob()
{
String msg;
if(jobServiceTask == null)
throw new RuntimeException("This Service as not been initialized to run as JobService");
 
serviceLog.info("STARTING SERVICE");
serviceLog.info("CLASS: " + jobServiceTask.getTargetService());
msg = "STARTING SERVICE";
serviceLog.info(msg);
logger.info(msg);
msg = "CLASS: " + jobServiceTask.getTargetService();
serviceLog.info(msg);
logger.info(msg);
if(jobServiceTask.getCreatedBy() != null)
serviceLog.info("CREATED BY: " + jobServiceTask.getCreatedBy().getUsername() + " - " + jobServiceTask.getCreatedBy().getName());
{
msg = "CREATED BY: " + jobServiceTask.getCreatedBy().getUsername() + " - " + jobServiceTask.getCreatedBy().getName();
serviceLog.info(msg);
logger.info(msg);
}
else
serviceLog.info("CREATED BY: unknown");
{
msg ="CREATED BY: unknown";
serviceLog.info(msg);
logger.info(msg);
}
for(JobServiceTaskParameter parameter: parameters.values())
{
serviceLog.info("PARAMETER: " + parameter.getName() + " : " + parameter.getObject().toString());
msg = "PARAMETER: " + parameter.getName() + " : " + parameter.getObject().toString();
serviceLog.info(msg);
logger.info(msg);
}
logger.info("Starting job service " + getClass().getName() + " more info in serviceLog " + jobServiceTask.getLogFilePath());
jobServiceTask.setProgress(0);
200,4 → 219,10
//serviceLogInfo("Max Memory:" + runtime.maxMemory() / mb);
logger.info("Max Memory:" + runtime.maxMemory() / mb);
}
 
public void serviceLogInfoWithLoggerSource(String message)
{
serviceLogInfo(message);
logger.log(this.getClass().getCanonicalName(), Level.INFO, message, null);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/jobs/JobDeamon.java
25,7 → 25,7
{
try
{
logger.info("Jo bRunner: Waiking up");
logger.info("JobRunner: Waiking up");
AbstractDao.getCurrentSession().beginTransaction();
 
logger.info("JobRunner: Checking scheduler");
56,11 → 56,19
j.setExecuted(true);
DaoFactory.getJobDaoImpl().saveOrUpdate(j);
AbstractDao.getCurrentSession().flush();
try{
AbstractDao.getCurrentSession().getTransaction().commit();
}
catch(HibernateException e)
{
AbstractDao.getCurrentSession().getTransaction().rollback();
logger.error("Need to Rolling back " + e.toString(),e);
}
AbstractDao.getCurrentSession().beginTransaction();
AbstractDao.getCurrentSession().evict(j);
}
catch(Throwable e)
{
 
j.setExecuted(true);
DaoFactory.getJobDaoImpl().saveOrUpdate(j);
AbstractDao.getCurrentSession().flush();
107,29 → 115,7
 
if(isRunnableNow(schedule, last))
{
logger.info("Schedulling one job " + schedule.getTargetService() + " to run");
JobServiceTaskImpl jobServiceTask = DomainObjectFactory.createJobServiceTaskImpl();
jobServiceTask.setStartDate(new Date());
jobServiceTask.setTargetService(schedule.getTargetService());
jobServiceTask.setCreatedBy(schedule.getCreatedBy());
jobServiceTask.setExecuted(false);
jobServiceTask.setDescription("Service:" + schedule.getDescription());
jobServiceTask.setServiceDescription(schedule.getDescription());
jobServiceTask.setSaveDate(new Date());
jobServiceTask.setStatusEnum(JobServiceTaskImpl.JobStatus.PENDING);
jobServiceTask.setRequestStop(false);
jobServiceTask.setOwner(schedule.getCreatedBy());
jobServiceTask.setJobHandler(new SerializableNullJobHandler());
jobServiceTask.setProgress(0);
DaoFactory.getJobServiceTaskDaoImpl().save(jobServiceTask);
schedule.setLastJobServiceTask(jobServiceTask);
try {
String filePath = Class.forName(schedule.getTargetService()).getSimpleName() + "-" + DatesUtils.getFormatedFileSystem(new Date());
jobServiceTask.setLogFilePath( filePath + ".log");
} catch (ClassNotFoundException e) {
logger.fatal(e,e);
continue;
}
 
Set<JobServiceTaskParameter> paramsJob = new HashSet<JobServiceTaskParameter>();
for(JobServiceTaskSchedulerParameter param : schedule.getServiceTaskSchedulerParameters())
{
138,11 → 124,21
paramJob.setDescription(param.getDescription());
paramJob.setObject(param.getObject());
paramsJob.add(paramJob);
paramJob.setJobServiceTask(jobServiceTask);
DaoFactory.getJobServiceTaskParameterDaoImpl().save(paramJob);
}
jobServiceTask.setServiceTaskParameters(paramsJob);
try {
 
JobServiceTaskImpl jobServiceTask = createServiceJob(
Class.forName(schedule.getTargetService()),
schedule.getCreatedBy(),
paramsJob,
"Service:" + schedule.getDescription()
);
schedule.setLastJobServiceTask(jobServiceTask);
} catch (ClassNotFoundException e) {
logger.fatal(e,e);
continue;
}
 
//DaoFactory.getJobServiceTaskDaoImpl().saveOrUpdate(jobServiceTask);
 
//a last schedule date e a hora a que foi marcado para correr a ultima vez
157,6 → 153,38
}
}
 
public static JobServiceTaskImpl createServiceJob(Class targetService, User owner, Set<JobServiceTaskParameter> paramsJob, String description)
{
if(description==null || description.trim().length()==0)
description = targetService.getSimpleName();
logger.info("Schedulling one job " + targetService + " to run");
JobServiceTaskImpl jobServiceTask = DomainObjectFactory.createJobServiceTaskImpl();
jobServiceTask.setStartDate(new Date());
jobServiceTask.setTargetService(targetService.getName());
jobServiceTask.setCreatedBy(owner);
jobServiceTask.setExecuted(false);
jobServiceTask.setDescription(description);
jobServiceTask.setServiceDescription(description);
jobServiceTask.setSaveDate(new Date());
jobServiceTask.setStatusEnum(JobServiceTaskImpl.JobStatus.PENDING);
jobServiceTask.setRequestStop(false);
jobServiceTask.setOwner(owner);
jobServiceTask.setJobHandler(new SerializableNullJobHandler());
jobServiceTask.setProgress(0);
DaoFactory.getJobServiceTaskDaoImpl().save(jobServiceTask);
 
String filePath = targetService.getSimpleName() + "-" + DatesUtils.getFormatedFileSystem(new Date());
jobServiceTask.setLogFilePath( filePath + ".log");
 
for(JobServiceTaskParameter param: paramsJob)
{
param.setJobServiceTask(jobServiceTask);
DaoFactory.getJobServiceTaskParameterDaoImpl().save(param);
}
 
jobServiceTask.setServiceTaskParameters(paramsJob);
return jobServiceTask;
}
private boolean isRunnableNow(JobServiceTaskScheduler schedule,Date lastDate)
{
if(!schedule.isActive())
/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,6 → 172,9
"user.role.worker=Funcionário\n" +
"user.role.invited=Convidado\n" +
"user.role.services=Serviços\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
New file
0,0 → 1,660
package pt.estgp.estgweb.services.questionarios.pedagogico;
 
import com.owlike.genson.TransformationException;
import org.apache.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl;
import pt.estgp.estgweb.services.jobs.JobDeamon;
import pt.estgp.estgweb.services.jobs.ServiceJob;
import pt.estgp.estgweb.services.logresults.ILogMessages;
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.services.questionarios.QuestionariosService;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.IOException;
import java.util.*;
 
 
/**
* Created by jorgemachado on 22/03/16.
*/
public class UpdateCoursesAndUnitsJobService extends ServiceJob implements IService
{
 
public static final Logger logger = Logger.getLogger(UpdateCoursesAndUnitsJobService.class);
 
//return similar questionarios in same year, semestre and history category
public List<QuestionarioImpl> setAnoSemestre(String year, String semestre, long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) throws NotAuthorizedException
{
if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_ANO_SEMESTRE.name()))
{
questionarioCleared.setYear(year);
questionarioCleared.setSemestre(semestre);
questionarioCleared.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED);
List<QuestionarioImpl> similar = DaoFactory.getQuestionarioDaoImpl().findAnoSemestre(year, semestre, questionarioCleared.getQuestionarioHistoryDrive().getId());
new QuestionariosService().loadInit(similar);
return similar;
}
else
throw new NotAuthorizedException("Não pode alterar o formulário porque o questionário está num estado avançado");
}
 
 
public String[] deserializeCoursesList(QuestionarioImpl questionario)
{
JobServiceTaskImpl job = questionario.getCourseSelectionTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(questionario.getCourseSelectionTaskId()) :
null;
if(job == null)
return new String[0];
 
String courses = job.getParameter(ServiceJob.JOB_questionario_courseList_KEY).getObject();
return deserializeCoursesList(courses);
}
 
public List<Course> getCoursesList(String coursesListJson)
{
List<Course> courses = new ArrayList<Course>();
String[] courseIds = deserializeCoursesList(coursesListJson);
for(String courseId: courseIds)
{
try
{
Course c = DaoFactory.getCourseDaoImpl().load(new Long(courseId));
courses.add(c);
}
catch(Throwable e)
{
logger.info("Course not found in course list with id:" + courseId);
}
}
return courses;
}
 
public String[] deserializeCoursesList(String json)
{
try {
 
JSONArray jsonArray = new JSONArray(json);
String[] coursesList = new String[jsonArray.length()];
for(int i=0;i <jsonArray.length();i++)
{
coursesList[i] = ""+ jsonArray.get(i);
}
return coursesList;
} catch (JSONException e) {
logger.error(e,e);
}
return new String[0];
}
 
public QuestionarioImpl runJobSelectCourses(long questionarioId,String[] coursesList,UserSession session,QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
 
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name()))
{
throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos");
}
( questionarioCleared).setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.ASSIGNING_COURSES);
JSONArray jsonArray = new JSONArray();
for(String sele: coursesList)
{
jsonArray.put(new Long(sele));
}
 
Set<JobServiceTaskParameter> paramsJob = new HashSet<JobServiceTaskParameter>();
 
JobServiceTaskParameterImpl paramJobL = DomainObjectFactory.createJobServiceTaskParameterImpl();
paramJobL.setName(ServiceJob.JOB_questionario_courseList_KEY);
paramJobL.setDescription("lista de cursos a associar");
paramJobL.setObject(jsonArray.toString());
paramsJob.add(paramJobL);
 
 
JobServiceTaskParameterImpl paramJob = DomainObjectFactory.createJobServiceTaskParameterImpl();
paramJob.setName(ServiceJob.JOB_questionario_id_KEY);
paramJob.setDescription("ID do questionário");
paramJob.setObject("" + questionarioId);
paramsJob.add(paramJob);
 
JobServiceTask job = JobDeamon.createServiceJob(UpdateCoursesAndUnitsJobService.class, session.getUser(), paramsJob,
"Service: Atribuição de Cursos e Unidades a um questionário Pedagógico");
questionarioCleared.setCourseSelectionTaskId(job.getId());
return questionarioCleared;
}
 
 
/**
*
* @param questionarioId
* @param session
* @param questionarioCleared
* @throws NotAuthorizedException
*
*/
public ILogMessages revertAllAssignments(long questionarioId, UserSession session,QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
 
DefaultLogMessages logMessages = new DefaultLogMessages();
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS.name()))
{
throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos");
}
for(QuestionarioPedagogicoCursoAfeto cu : DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(questionarioId))
{
int unidades = 0;
if(cu.getUnidadesAfetas() != null)
{
unidades = cu.getUnidadesAfetas().size();
for(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta: cu.getUnidadesAfetas())
{
logger.info("Reverting Unidade Curricular Afeta " + unidadeCurricularAfeta.getCodigoUnidade() + " - " + unidadeCurricularAfeta.getNome());
unidadeCurricularAfeta.setCursoAfeto(null);
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().delete(unidadeCurricularAfeta);
if(unidadeCurricularAfeta.getTipologiasRequisitadas() != null && unidadeCurricularAfeta.getTipologiasRequisitadas().size() > 0)
{
String msg = "A unidade tem tipologias requisitadas que tem de ser removidas primeiro, iremos remover todas as tipologias e respostas associadas";
logger.warn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
removeTipologiasERespostasCascade(unidadeCurricularAfeta);
}
}
}
String msg = "Removendo curso afeto:" + cu.getNome() + " e " + unidades + " uniades afetas";
logger.info(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.INFO,msg));
 
cu.setUnidadesAfetas(null);
DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().delete(cu);
}
questionarioCleared.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED);
return logMessages;
}
 
/**
*
*/
private void removeTipologiasERespostasCascade(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta)
{
for(QuestionarioPedagogicoTipologiaRequisitada tr: unidadeAfeta.getTipologiasRequisitadas())
{
logger.warn("deleting: " + tr);
if(tr.getAlunosRequisitados() != null)
{
for(QuestionarioPedagogicoAlunoRequisitado ar: tr.getAlunosRequisitados())
{
logger.warn("deleting: " + ar);
if(ar.getRespostaRequisitada() != null)
{
logger.warn("deleting: Resposta Requisitada " + ar.getRespostaRequisitada().getId());
if(ar.getRespostaRequisitada().getResposta() != null)
{
logger.warn("deleting resposta: " + ar.getRespostaRequisitada().getResposta());
DaoFactory.getQuestionarioRespostaDaoImpl().delete(ar.getRespostaRequisitada().getResposta());
ar.getRespostaRequisitada().setResposta(null);
}
DaoFactory.getQuestionarioRespostaRequisitadaDaoImplImpl().delete(ar.getRespostaRequisitada());
ar.setRespostaRequisitada(null);
}
DaoFactory.getQuestionarioPedagogicoAlunoRequisitadoDaoImpl().delete(ar);
}
tr.setAlunosRequisitados(null);
}
DaoFactory.getQuestionarioPedagogicoTipologiaRequisitadaDaoImpl().delete(tr);
}
unidadeAfeta.setTipologiasRequisitadas(null);
}
 
/**
*
* @return
* @throws Throwable
*/
@Override
protected ILogMessages runJobServiceTask() throws Throwable
{
 
DefaultLogMessages logMessages = new DefaultLogMessages();
long questionarioId = Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_id_KEY).getObject());
QuestionarioImpl q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId);
 
String[] coursesList = deserializeCoursesList(q);
//Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre
 
/**logging**/
String msg = "Starting running service for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle();
serviceLogInfo(msg);
logger.info(msg);
/**logging**/
 
List<String> newCourseCodesList = new ArrayList<String>();
int count = 0;
int totalCourses = coursesList.length;
for(String courseStrId: coursesList)
{
count++;
try{
Long courseLong = Long.parseLong(courseStrId);
/** logging **/
msg = "Loading Course BACO ID: " + courseStrId;
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
 
Course c = DaoFactory.getCourseDaoImpl().load(courseLong);
newCourseCodesList.add(c.getCode());
/** logging **/
msg = "(" + count + " of " + totalCourses + ")-> Course loaded: " + c.getName() + "(" + c.getCode() + ")";
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
 
createCursoAfeto(q, c, logMessages);
 
/** COMMIT OPERATION **/
setProgress((int)((((float)count)/((float)totalCourses))*100.0f));
commitPartially();
DaoFactory.getQuestionarioDaoImpl().update(q);
/** COMMIT OPERATION **/
}
catch(Throwable t)
{
logger.error(t,t);
serviceLogError(t.toString(),t);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.ERROR,t.toString()));
}
 
}
 
removeUnselectedCourses(q, newCourseCodesList);
 
/** COMMIT OPERATION **/
setProgress(100);
commitPartially();
DaoFactory.getQuestionarioDaoImpl().update(q);
/** COMMIT OPERATION **/
 
 
msg = "Set courses state as " + QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.name();
serviceLogInfo(msg);
logger.info(msg);
q.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED);
commitPartially();
 
return logMessages;
}
 
/**
*
* @param q
* @param newCourseCodesList
*/
private void removeUnselectedCourses(QuestionarioImpl q, List<String> newCourseCodesList) {
/** logging **/
String msg = "Removing unselected courses ";
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
List<QuestionarioPedagogicoCursoAfeto> allCoursesInQuestionario = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId());
for(QuestionarioPedagogicoCursoAfeto cursoAfeto: allCoursesInQuestionario)
{
if(!newCourseCodesList.contains(cursoAfeto.getCodigoCurso()))
{
removeCursoAfeto(cursoAfeto);
}
}
}
 
private void removeCursoAfeto(QuestionarioPedagogicoCursoAfeto cursoAfeto) {
String msg; /** logging **/
msg = "Deleting course: " + cursoAfeto.getCodigoCurso();
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
for(QuestionarioPedagogicoUnidadeCurricularAfeta unidade: cursoAfeto.getUnidadesAfetas())
{
/** logging **/
msg = "--->Deleting unit from course: " + unidade.getCodigoUnidade();
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().delete(unidade);
}
cursoAfeto.setUnidadesAfetas(null);
DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().delete(cursoAfeto);
}
 
private void removeUnselectedUnits(QuestionarioPedagogicoCursoAfeto cursoAfetado, List<String> newUnidadesCodesList) {
/** logging **/
String msg = "Removing unselected units from course: " + cursoAfetado.getCodigoCurso();
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
Set<QuestionarioPedagogicoUnidadeCurricularAfeta> allUnidades = cursoAfetado.getUnidadesAfetas();
for(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta: allUnidades)
{
if(!newUnidadesCodesList.contains(unidadeAfeta.getCodigoUnidade()))
{
/** logging **/
msg = "--->Deleting unidade: " + unidadeAfeta.getCodigoUnidade();
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().delete(unidadeAfeta);
}
}
}
 
 
/**
*
* @param q
* @param c
* @throws IOException
* @throws TransformationException
*/
private void createCursoAfeto(QuestionarioImpl q, Course c, DefaultLogMessages logMessages) throws IOException, TransformationException
{
String msg;
QuestionarioPedagogicoCursoAfetoImpl cursoAfeto = null;
//todo fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto
//reativar o set e testar isso
List<QuestionarioPedagogicoCursoAfeto> cursosFound = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId(),c.getCode());
if(cursosFound != null && cursosFound.size() > 1)
{
msg = "Encontrados mais que um curso nos mesmos códigos:" + c.getCode() + " apagando um";
serviceLogWarn(msg);
logger.warn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
cursoAfeto = (QuestionarioPedagogicoCursoAfetoImpl) cursosFound.get(0);
cursosFound.remove(0);
for(QuestionarioPedagogicoCursoAfeto ca: cursosFound)
removeCursoAfeto(ca);
}
else if(cursosFound != null && cursosFound.size() == 1)
{
msg = "Curso " + c.getCode() + " encontrado, vai atualizar";
serviceLogInfo(msg);
logger.info(msg);
cursoAfeto = (QuestionarioPedagogicoCursoAfetoImpl) cursosFound.get(0);
}
else
{
msg = "Criando novo curso para o código " + c.getCode();
serviceLogInfo(msg);
logger.info(msg);
cursoAfeto = DomainObjectFactory.createQuestionarioPedagogicoCursoAfeto();
DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().save(cursoAfeto);
cursoAfeto.setUnidadesAfetas(new HashSet<QuestionarioPedagogicoUnidadeCurricularAfeta>());
}
 
cursoAfeto.resetStats();
 
cursoAfeto.setCourse(c);
cursoAfeto.setCodigoInstituicao(c.getInstitutionalCode());
cursoAfeto.setNomeInstituicao(ConfigProperties.getProperty("institution.code."+c.getInstitutionalCode()));
cursoAfeto.setAno(q.getYear());
cursoAfeto.setCodigoCurso(c.getCode());
cursoAfeto.setNome(c.getName());
cursoAfeto.setQuestionario(q);
cursoAfeto.setSemestre(q.getSemestre());
 
 
 
 
List<String> newUnitCodesList = new ArrayList<String>();
int countUnits = 0;
List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear());
int totalUnits = results.size();
for(CourseUnitDaoImpl.CourseUnitResult cur : results)
{
countUnits++;
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(cur.id);
newUnitCodesList.add(cu.getCode());
/** logging **/
msg = "---->(" + countUnits + " of " + totalUnits +") CourseUnit loaded: " + cu.getName() + "(" + cu.getCode() + ")";
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
createUnidadeAfeta(cursoAfeto, cur,cu, logMessages);
DaoFactory.getCourseUnitDaoImpl().evict(cu);
}
 
removeUnselectedUnits(cursoAfeto,newUnitCodesList);
}
 
/**
*
* @param cursoAfeto
* @param cur
* @throws IOException
* @throws TransformationException
*/
private void createUnidadeAfeta(QuestionarioPedagogicoCursoAfetoImpl cursoAfeto, CourseUnitDaoImpl.CourseUnitResult cur, CourseUnit cu, DefaultLogMessages logMessages) throws IOException, TransformationException {
 
String msg;
QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta = null;
List<QuestionarioPedagogicoUnidadeCurricularAfeta> unidadesFound = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().find(cursoAfeto.getQuestionario().getId(), cursoAfeto.getCodigoCurso(), cu.getCode());
if(unidadesFound != null && unidadesFound.size() > 1)
{
msg = "Encontradas mais que uma unidade nos mesmos códigos: curso:" +cursoAfeto.getCodigoCurso() + ", unidade " + cu.getCode() + " apagando um";
serviceLogWarn(msg);
logger.warn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
unidadeAfeta = (QuestionarioPedagogicoUnidadeCurricularAfetaImpl) unidadesFound.get(0);
unidadesFound.remove(0);
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().delete(unidadesFound);
}
else if(unidadesFound != null && unidadesFound.size() == 1)
{
msg = "Unidade " + cu.getCode() + " encontrada, vai atualizar";
serviceLogInfo(msg);
logger.info(msg);
unidadeAfeta = (QuestionarioPedagogicoUnidadeCurricularAfetaImpl) unidadesFound.get(0);
}
else
{
msg = "Criando nova unidade para o código " + cu.getCode();
serviceLogInfo(msg);
logger.info(msg);
unidadeAfeta = DomainObjectFactory.createQuestionarioPedagogicoUnidadeCurricularAfeta();
unidadeAfeta.setUsar(true);
unidadeAfeta.setVista(false);
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().save(unidadeAfeta);
}
 
unidadeAfeta.resetStats();
unidadeAfeta.setCursoAfeto(cursoAfeto);//so metemos de um dos lados
unidadeAfeta.setCourseUnit(cu);
unidadeAfeta.setCodigoUnidade(cu.getCode());
unidadeAfeta.setObs("");
unidadeAfeta.setNome(cu.getName());
 
unidadeAfeta.setMarked(false);
 
ArrayList<CourseUnitImpl.Tipologia> mergedTipologias = copiarTipologias(cu, unidadeAfeta);
 
 
checkTurmaAndProfs(cu, unidadeAfeta, mergedTipologias);
checkProfs(cur, unidadeAfeta);
checkTurmas(cur, unidadeAfeta);
checkStudents(cur, unidadeAfeta);
 
 
if(unidadeAfeta.isMarked())
cursoAfeto.incMarcadas();
 
 
}
 
/**
*
* @param cur
* @param unidadeAfeta
*/
private void checkTurmas(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
if(cur.turmas == 0)
{
unidadeAfeta.setTurmas(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem turmas");
}
else
unidadeAfeta.setTurmas(cur.turmas);
}
 
/**
*
* @param cur
* @param unidadeAfeta
*/
private void checkProfs(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
if(cur.teachers == 0)
{
unidadeAfeta.setProfs(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem professores");
}
else
unidadeAfeta.setProfs(cur.teachers);
}
 
/**
*
* @param cur
* @param unidadeAfeta
*/
private void checkStudents(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
if(cur.students == 0)
{
unidadeAfeta.setStudents(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem estudantes");
}
else
unidadeAfeta.setStudents(cur.students);
}
 
/**
*
* @param cu
* @param unidadeAfeta
* @return
* @throws IOException
* @throws TransformationException
*/
private ArrayList<CourseUnitImpl.Tipologia> copiarTipologias(CourseUnit cu, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) throws IOException, TransformationException {
try
{
CourseUnitImpl.Tipologias tipologias = ((CourseUnitImpl)cu).getTipologiasClass();
ArrayList<CourseUnitImpl.Tipologia> mergedTipologias = tipologias.obtainMergeTipologias();
unidadeAfeta.setTipologias(mergedTipologias.size());
unidadeAfeta.setTipologiasJson(CourseUnitImpl.Tipologias.serializeMergedList(mergedTipologias));
unidadeAfeta.setAddedTipologias(tipologias.getTipologiasExtraAdicionadas().size());
return mergedTipologias;
}
catch(Throwable e)
{
ArrayList<CourseUnitImpl.Tipologia> tipologias = new ArrayList<CourseUnitImpl.Tipologia>();
unidadeAfeta.setMarked(true);
unidadeAfeta.addObs("Erro a descodificar tipologias");
unidadeAfeta.setTipologiasJson(CourseUnitImpl.Tipologias.serializeMergedList(tipologias));
return tipologias;
}
}
 
/**
*
* @param cu
* @param unidadeAfeta
* @param mergedTipologias
*/
private void checkTurmaAndProfs(CourseUnit cu, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta, ArrayList<CourseUnitImpl.Tipologia> mergedTipologias) {
if(cu.getTeachers() != null)
{
HashMap<String,Boolean> turmaWithProfs = new HashMap<String, Boolean>();
HashMap<String,Boolean> profsWithTurma = new HashMap<String, Boolean>();
for(CourseUnitImpl.Tipologia t: mergedTipologias)
{
turmaWithProfs.put(t.getCdTurma(),true);
profsWithTurma.put(t.getCdDocente(),true);
}
for(Teacher t: cu.getTeachers())
{
if(profsWithTurma.get(""+t.getSigesCode())==null)
{
unidadeAfeta.setProfsWithoutTurma(unidadeAfeta.getProfsWithoutTurma()+1);
unidadeAfeta.setMarked(true);
}
DaoFactory.getTeacherDaoImpl().evict(t);
}
 
for(CourseUnitTurma t: cu.getTurmas())
{
if(turmaWithProfs.get(t.getTurma())==null)
{
unidadeAfeta.setTurmaWithoutProf(unidadeAfeta.getTurmaWithoutProf() + 1);
unidadeAfeta.setMarked(true);
}
DaoFactory.getCourseUnitTurmaDaoImpl().evict(t);
}
}
}
 
 
/**
* SERVIÇO
* @param questionarioId
* @param cursosAfetos
* @param session
* @param questionarioCleared
* @throws IOException
* @throws TransformationException
* @throws NotAuthorizedException
*/
public void updateTipologiasPedagogico(long questionarioId, List<QuestionarioPedagogicoCursoAfeto> cursosAfetos, UserSession session,QuestionarioImpl questionarioCleared) throws IOException, TransformationException, NotAuthorizedException {
 
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name()))
{
throw new NotAuthorizedException("Nao tem autorização para alterar as tipologias");
}
for(QuestionarioPedagogicoCursoAfeto cursoAfeto: cursosAfetos)
{
QuestionarioPedagogicoCursoAfeto cuAfetoPersistent = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().load(cursoAfeto.getId());
if(cuAfetoPersistent.getQuestionario().getId() == questionarioId)
{
cuAfetoPersistent.setUsarTipologias(cursoAfeto.isUsarTipologias());
}
else
logger.warn("Curso pedido no serviço não faz parte do questionario requisitado: " + cursoAfeto.getId() + " " + cursoAfeto.getQuestionario().getId() + " != " + questionarioId);
 
}
 
}
 
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,6 → 1,13
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;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.utils.SimpleClearanceRuledSupport;
import pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService;
import pt.estgp.estgweb.utils.ConfigProperties;
 
/**
10,7 → 17,7
{
 
static String title = ConfigProperties.getProperty("pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.title");
static String forward = ConfigProperties.getProperty("pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.forward");
static String jsp = ConfigProperties.getProperty("pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor.jsp");
 
@Override
public String getHistoryDriveConstraint() {
25,6 → 32,80
@Override
public String getAfetacoesManagementForward()
{
return forward;
return jsp;
}
 
@Override
public void initQuestionarioAfetacoesVariables(QuestionarioImpl questionario)
{
questionario.setAfetacoesVarCoursesSelectionForJob(new UpdateCoursesAndUnitsJobService().deserializeCoursesList(questionario));
}
 
public void startAfetacoes(QuestionarioImpl questionario)
{
questionario.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.START);
}
 
public void initClearances(QuestionarioImpl q, UserSessionImpl usession, SimpleClearanceRuledSupport s)
{
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
{
if(q.getSubStatePedagodigoEnum() == QuestionarioImpl.SubStatePedagogico.START ||
q.getSubStatePedagodigoEnum() == QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED)
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_ANO_SEMESTRE.name(),usession);
}
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.YEAR_SEMESTRE_ASSIGNED.getPosition() &&
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition())
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES.name(),usession);
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN)))
{
if(q.getCourseSelectionTaskId() <= 0)
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SCHEDULLE_SELECT_COURSES.name(),usession);
else
{
JobServiceTask task = DaoFactory.getJobServiceTaskDaoImpl().load(q.getCourseSelectionTaskId());
if(task.isExecuted() || (task.getSaveDate() != null &&
System.currentTimeMillis()-task.getSaveDate().getTime()>1800000)) //half hour blocked
{
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);
}
}
}
}
 
if(q.getSubStatePedagodigoEnum().getPosition() >= QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED.getPosition() &&
q.getSubStatePedagodigoEnum().getPosition() < QuestionarioImpl.SubStatePedagogico.FINNISHED_ANSWERS_GENERATING.getPosition())
{
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_TIPOLOGIAS_ADMIN))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name(),usession);
}
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_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/questionarios/QuestionariosService.java
61,6 → 61,7
if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name()))
{
questionarioCleared.setStateClass(QuestionarioImpl.State.ASSIGNATION_DETAILS);
questionarioCleared.getiAnswersProcessorClass().startAfetacoes(questionarioCleared);
}
else
throw new NotAuthorizedException("Não alterar o questionário para este estado neste momento");
89,33 → 90,21
questionarioCleared.getDescription();//to load proxy just in case
if(questionarioCleared.getQuestionarioHistoryDrive() != null)
questionarioCleared.getQuestionarioHistoryDrive().getCodeName();
IAnswersProcessor processor = questionarioCleared.getiAnswersProcessorClass();
processor.initQuestionarioAfetacoesVariables(questionarioCleared);
return questionarioCleared;
}
private void loadInit(List<QuestionarioImpl> questionarioCleared)
 
public void loadInit(List<QuestionarioImpl> questionarioCleared)
{
for(QuestionarioImpl q: questionarioCleared)
{
q.getDescription();//to load proxy just in case
if(q.getQuestionarioHistoryDrive() != null)
q.getQuestionarioHistoryDrive().getCodeName();
loadInit(q);
}
}
 
//return similar questionarios in same year, semestre and history category
public List<QuestionarioImpl> setAnoSemestre(String year, String semestre, long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) throws NotAuthorizedException
{
if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_ANO_SEMESTRE.name()))
{
questionarioCleared.setYear(year);
questionarioCleared.setSemestre(semestre);
List<QuestionarioImpl> similar = DaoFactory.getQuestionarioDaoImpl().findAnoSemestre(year, semestre, questionarioCleared.getQuestionarioHistoryDrive().getId());
loadInit(similar);
return similar;
}
else
throw new NotAuthorizedException("Não pode alterar o formulário porque o questionário está num estado avançado");
}
 
 
public void deleteQuestionario(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared)
{
if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name()))
/branches/v3/impl/src/java/pt/estgp/estgweb/services/entity/EntityServiceJson.java
New file
0,0 → 1,34
package pt.estgp.estgweb.services.entity;
 
import com.owlike.genson.Genson;
import com.owlike.genson.TransformationException;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.IOException;
import java.io.Serializable;
 
/**
* Created by jorgemachado on 22/03/16.
*/
public class EntityServiceJson implements IService
{
static Genson courseUnitGenson = new Genson.Builder()
.exclude(Object.class)
.include("id", CourseUnit.class)
.include("semestre", CourseUnit.class)
.include("name", CourseUnit.class)
.include("code", CourseUnit.class)
.include("courseName", CourseUnit.class)
.include("courseYear",CourseUnit.class)
.include("importYear", CourseUnit.class)
.include("institutionCode", CourseUnit.class)
 
.create();
 
public String courseUnit(Serializable s) throws IOException, TransformationException {
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().get(s);
return courseUnitGenson.serialize(cu);
}
}
/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/IAnswersProcessor.java
1,5 → 1,7
package pt.estgp.estgweb.domain;
 
import pt.estgp.estgweb.domain.utils.SimpleClearanceRuledSupport;
 
/**
* Created by jorgemachado on 20/03/16.
*/
8,4 → 10,14
public String getHistoryDriveConstraint();
public String getTitle();
public String getAfetacoesManagementForward();
 
/**To be used by load QuestionarioService*/
public void initQuestionarioAfetacoesVariables(QuestionarioImpl questionario);
 
/**To init afetacoes process*/
public void startAfetacoes(QuestionarioImpl questionario);
 
/** to be used on clearances initialization**/
public void initClearances(QuestionarioImpl questionario, UserSessionImpl session, SimpleClearanceRuledSupport s);
 
}
/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/QuestionarioPedagogicoUnidadeCurricularAfetaImpl.java
New file
0,0 → 1,27
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 23/03/16.
*/
public class QuestionarioPedagogicoUnidadeCurricularAfetaImpl extends QuestionarioPedagogicoUnidadeCurricularAfeta {
 
public void addObs(String obs)
{
if(getObs() == null)
setObs("");
 
setObs(getObs() + " ; " + obs);
}
 
public void resetStats() {
setAddedTipologias(0);
setTipologias(0);
setStudents(0);
setProfs(0);
setMarked(false);
setObs("");
setProfsWithoutTurma(0);
setTurmas(0);
setTurmaWithoutProf(0);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
398,4 → 398,17
public static QuestionarioHistoryDriveImpl createQuestionarioHistoryDriveImpl() {
return new QuestionarioHistoryDriveImpl();
}
 
public static QuestionarioPedagogicoCursoAfetoImpl createQuestionarioPedagogicoCursoAfeto() {
return new QuestionarioPedagogicoCursoAfetoImpl();
}
public static QuestionarioPedagogicoUnidadeCurricularAfetaImpl createQuestionarioPedagogicoUnidadeCurricularAfeta() {
return new QuestionarioPedagogicoUnidadeCurricularAfetaImpl();
}
public static QuestionarioPedagogicoTipologiaRequisitadaImpl createQuestionarioPedagogicoTipologiaRequisitadaImpl() {
return new QuestionarioPedagogicoTipologiaRequisitadaImpl();
}
public static QuestionarioPedagogicoAlunoRequisitadoImpl createQuestionarioPedagogicoAlunoRequisitadoImpl() {
return new QuestionarioPedagogicoAlunoRequisitadoImpl();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitadoImpl.java
New file
0,0 → 1,14
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioPedagogicoAlunoRequisitadoImpl extends QuestionarioPedagogicoAlunoRequisitado {
 
@Override
public String toString() {
return "QuestionarioPedagogicoAlunoRequisitado{" +
"aluno=" + (getAluno()!=null? getAluno().getSigesCode():"unknown")+
'}';
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/JobServiceTaskImpl.java
97,4 → 97,14
return "";
return pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDateWithMinutesAndSeconds(getServiceStartDate());
}
 
public JobServiceTaskParameter getParameter(String name)
{
if(getServiceTaskParameters() != null)
for(JobServiceTaskParameter param: getServiceTaskParameters())
if(param.getName().equals(name))
return param;
return null;
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioImpl.java
4,6 → 4,7
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.utils.SimpleClearanceRuledSupport;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.DatesUtils;
 
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
63,12 → 64,55
}
 
 
//QuestionarioPedagogico SubState
public enum SubStatePedagogico
{
START(1),
YEAR_SEMESTRE_ASSIGNED(2),
ASSIGNING_COURSES(3),
COURSES_ASSIGNED(4),
FINNISHED_ANSWERS_GENERATING(5);
 
private int pos = 1;
 
SubStatePedagogico(int pos)
{
this.pos = pos;
}
 
public static SubStatePedagogico parse(String state)
{
for(SubStatePedagogico s: SubStatePedagogico.values())
{
if(s.name().equals(state))
return s;
}
return START;
}
 
 
public int getPosition()
{
return pos;
}
}
 
public SubStatePedagogico getSubStatePedagodigoEnum()
{
return SubStatePedagogico.parse(getSubstate());
}
 
public void setSubStatePedagogicoClass(SubStatePedagogico subState) {
setLogStates(getLogStates()+"\n"+ DatesUtils.getLogDateNow() + " changing substate: " + getState() + " sub:(" + getSubstate() + ") " + " -> " + subState.name());
setSubstate(subState.name());
}
 
 
 
public QuestionarioImpl() {
super();
 
setState(State.CREATED.name());
setStateClass(State.CREATED);
 
SimpleDateFormat sdf = new SimpleDateFormat("MMMM yyyy",new Locale("pt"));
String month = sdf.format(new Date());
150,6 → 194,21
public String getAfetacoesManagementForward() {
return null;
}
 
@Override
public void initQuestionarioAfetacoesVariables(QuestionarioImpl questionario) {
 
}
 
@Override
public void startAfetacoes(QuestionarioImpl questionario) {
 
}
 
@Override
public void initClearances(QuestionarioImpl questionario, UserSessionImpl session, SimpleClearanceRuledSupport s) {
 
}
};
}
 
184,6 → 243,7
}
 
public void setStateClass(State state) {
setLogStates(getLogStates()+"\n"+ DatesUtils.getLogDateNow() + " changing state: " + getState() + " -> " + state.name());
setState(state.name());
}
 
218,23 → 278,44
 
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 ))
{
if(getStateEnum() == QuestionarioImpl.State.CREATED &&
getQuestionarioHistoryDrive() != null &&
getiAnswersProcessorClass() != null)
 
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_FORM.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SEE_ADMIN.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_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);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_ANO_SEMESTRE.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)
{
 
}
}
setClearanceRuledSupport(s);
}
242,12 → 323,23
public static enum QuestionarioClearancesOperation
{
 
QUESTIONARIO_NEW_FORM,
QUESTIONARIO_SAVE_FORM,
QUESTIONARIO_SEE_FORM,
QUESTIONARIO_SEE_ADMIN,
QUESTIONARIO_SAVE_ANSWER_PROCESSOR,
QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS,
QUESTIONARIO_ASSIGNATION_OPERATIONS,
QUESTIONARIO_DELETE,
QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS,
 
/*Pedagogico Cursos*/
QUESTIONARIO_SET_ANO_SEMESTRE,
QUESTIONARIO_DELETE
 
QUESTIONARIO_SCHEDULLE_SELECT_COURSES,
QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES,
QUESTIONARIO_CHANGE_TIPOLOGIES,
QUESTIONARIO_START_ASSIGN_ANSWERS,
QUESTIONARIO_CHANGE_ASSIGNEMENTS,
;
 
public static QuestionarioClearancesOperation parse(String clearance)
262,4 → 354,29
return null;
}
}
 
 
 
 
String[] afetacoesVarCoursesSelectionForJob;
 
/**
* Variaveis especificas do modulo do pedagogico
* ver o PedagogicoAlunosProcessor que implementa o IAnswersProcessor
* que as inicia
*
* @return lista de cursos ids no BACO selecionados na tarefa
*/
public String[] getAfetacoesVarCoursesSelectionForJob() {
return afetacoesVarCoursesSelectionForJob;
}
 
public void setAfetacoesVarCoursesSelectionForJob(String[] afetacoesVarCoursesSelectionForJob) {
this.afetacoesVarCoursesSelectionForJob = afetacoesVarCoursesSelectionForJob;
}
 
 
 
 
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitadaImpl.java
New file
0,0 → 1,7
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 23/03/16.
*/
public class QuestionarioRespostaRequisitadaImpl extends QuestionarioRespostaRequisitada {
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
13,9 → 13,7
 
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.*;
 
/**
* Created by IntelliJ IDEA.
188,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;
464,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;
556,7 → 574,7
}
 
public Integer getOcorrencias() {
return ocorrencias;
return ocorrencias == null ? 0:ocorrencias;
}
 
public void setOcorrencias(Integer ocorrencias) {
572,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
598,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;
}
712,7 → 734,9
ArrayList<Tipologia> tipologiasMarcadas = new ArrayList<Tipologia>();
 
public ArrayList<Tipologia> getTipologiasHorarioReferencia() {
return tipologiasHorarioReferencia;
 
return tipologiasHorarioReferencia == null ? new ArrayList<Tipologia>() : tipologiasHorarioReferencia;
 
}
 
public void setTipologiasHorarioReferencia(ArrayList<Tipologia> tipologiasHorarioReferencia) {
720,7 → 744,7
}
 
public ArrayList<Tipologia> getTipologiasSumarios() {
return tipologiasSumarios;
return tipologiasSumarios == null ? new ArrayList<Tipologia>() : tipologiasSumarios;
}
 
public void setTipologiasSumarios(ArrayList<Tipologia> tipologiasSumarios) {
728,18 → 752,22
}
 
public ArrayList<Tipologia> getTipologiasExtraAdicionadas() {
return tipologiasExtraAdicionadas;
return tipologiasExtraAdicionadas == null ? new ArrayList<Tipologia>() : tipologiasExtraAdicionadas;
}
 
public void setTipologiasExtraAdicionadas(ArrayList<Tipologia> tipologiasExtraAdicionadas) {
this.tipologiasExtraAdicionadas = tipologiasExtraAdicionadas;
}
 
public ArrayList<Tipologia> getTipologiasUsadas() { return tipologiasUsadas; }
public ArrayList<Tipologia> getTipologiasUsadas() {
return tipologiasUsadas == null ? new ArrayList<Tipologia>() : tipologiasUsadas;
}
 
public void setTipologiasUsadas(ArrayList<Tipologia> tipologiasUsadas) { this.tipologiasUsadas = tipologiasUsadas; }
 
public ArrayList<Tipologia> getTipologiasMarcadas() { return tipologiasMarcadas; }
public ArrayList<Tipologia> getTipologiasMarcadas() {
return tipologiasMarcadas == null ? new ArrayList<Tipologia>() : tipologiasMarcadas;
}
 
public void setTipologiasMarcadas(ArrayList<Tipologia> tipologiasMarcadas) { this.tipologiasMarcadas = tipologiasMarcadas; }
 
792,7 → 820,7
public static Tipologias deserialize(String serial) throws IOException, TransformationException
{
if(serial == null)
return null;
return new Tipologias();
try {
return getGenson().deserialize(serial, Tipologias.class);
} catch (TransformationException e) {
810,7 → 838,10
public static String serializeMergedList(ArrayList<Tipologia> tipologias) throws IOException, TransformationException
{
MergedTipologias mergedTipologias = new MergedTipologias();
mergedTipologias.setTipologiasWithMarkedAndUsed(tipologias);
if(tipologias != null)
{
mergedTipologias.setTipologiasWithMarkedAndUsed(tipologias);
}
Genson genson = getGensonMergedTipologiasComplete();
try {
return genson.serialize(mergedTipologias);
823,7 → 854,7
public static ArrayList<Tipologia> deserializeMergedTipologias(String serial) throws IOException, TransformationException
{
if(serial == null)
return null;
return new ArrayList<Tipologia>();
try {
MergedTipologias mergedTipologias = getGensonMergedTipologiasComplete().deserialize(serial, MergedTipologias.class);
if(mergedTipologias.getTipologiasWithMarkedAndUsed() == null)
835,6 → 866,11
throw e;
}
}
public String obtainMergeTipologiasSerialized() throws IOException, TransformationException
{
return serializeMergedList(obtainMergeTipologias());
}
 
public ArrayList<Tipologia> obtainMergeTipologias()
{
ArrayList<Tipologia> merge = new ArrayList<Tipologia>();
900,6 → 936,85
}
 
 
public ArrayList<Tipologia> obtainTipologiasSimples(CourseUnit courseUnit)
{
ArrayList<Tipologia> merge = new ArrayList<Tipologia>();
 
Map<String,Map<String,Tipologia>> docenteTurmas = new HashMap<String,Map<String,Tipologia>>();
 
fullfillTipologiasSimples(getTipologiasSumarios(), docenteTurmas);
fullfillTipologiasSimples(getTipologiasExtraAdicionadas(), docenteTurmas);
fullfillTipologiasSimples(getTipologiasHorarioReferencia(), docenteTurmas);
fullfillTipologiasSimples(getTipologiasMarcadas(), docenteTurmas);
fullfillTipologiasSimples(getTipologiasUsadas(), docenteTurmas);
 
 
if(docenteTurmas.size() == 0)
{
//NAO Há sumários vamos associar todos os docentes a todas as turmas
if(courseUnit.getTurmas() != null && courseUnit.getTeachers() != null)
{
for(CourseUnitTurma turma: courseUnit.getTurmas())
{
for(Teacher t : courseUnit.getTeachers())
{
Tipologia simples = new Tipologia();
simples.setMarkWarning(true);
simples.setCdDocente(""+t.getSigesCode());
simples.setCdTurma(turma.getTurma());
simples.setCdTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE);
simples.setDsTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_DS);
merge.add(simples);
}
}
}
}
else
{
for(Map.Entry<String,Map<String,Tipologia>> docentes: docenteTurmas.entrySet())
{
for(Tipologia tipologia: docentes.getValue().values())
{
merge.add(tipologia);
}
}
}
return merge;
}
 
private void fullfillTipologiasSimples(ArrayList<Tipologia> tipologias, Map<String, Map<String, Tipologia>> docenteTurmas) {
if(tipologias != null)
for(Tipologia tipo: tipologias)
{
Map<String,Tipologia> turmasDocente = docenteTurmas.get(tipo.getCdDocente());
if(turmasDocente == null)
turmasDocente = new HashMap<String,Tipologia>();
docenteTurmas.put(tipo.getCdDocente(),turmasDocente);
Tipologia simples = turmasDocente.get(tipo.getCdTurma());
if(simples==null)
{
simples = new Tipologia();
simples.setCdDocente(tipo.getCdDocente());
simples.setCdTurma(tipo.getCdTurma());
simples.setCdTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE);
simples.setDsTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_DS);
if(tipo.hasOcorrencias())
{
simples.setOcorrencias(tipo.getOcorrencias());
}
turmasDocente.put(tipo.getCdTurma(),simples);
}
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/QuestionarioRespostaRequisitadaDaoImpl.java
New file
0,0 → 1,18
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioRespostaRequisitadaDaoImpl extends QuestionarioRespostaRequisitadaDao
{
private static final Logger logger = Logger.getLogger(QuestionarioRespostaRequisitadaDaoImpl.class);
 
public static QuestionarioRespostaRequisitadaDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioRespostaRequisitadaDaoImpl();
return (QuestionarioRespostaRequisitadaDaoImpl) myInstance;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitTurmaDaoImpl.java
1,5 → 1,11
package pt.estgp.estgweb.domain.dao.impl;
 
import org.hibernate.criterion.Projections;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
14,4 → 20,55
myInstance = new CourseUnitTurmaDaoImpl();
return (CourseUnitTurmaDaoImpl) myInstance;
}
 
/**
* Return pairs [String,Integer,Integer]
* turma,countUnits,students
* @param courseId
* @param importYear
* @return
*/
public List<Object[]> loadByCourse(long courseId, String importYear) {
List o = createCriteria()
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("turma"))
.add(Projections.countDistinct("courseUnit.id"))
.add(Projections.countDistinct("student.id")))
.createAlias("courseUnit", "courseUnit")
.createAlias("students", "student")
.add(eq("courseUnit.importYear", importYear))
.add(eq("courseUnit.course.id", courseId))
.list();
return o;
}
 
/**
* Turma
* Ano
* CourseUnitName
* code
* CourseCode
* CourseName
* Students
* @param courseUnitId
* @return
*/
public List<Object[]> loadByCourseUnit(long courseUnitId) {
List o = createCriteria()
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("turma"))
.add(Projections.property("courseUnit.importYear"))
.add(Projections.property("courseUnit.name"))
.add(Projections.property("courseUnit.courseName"))
.add(Projections.property("courseUnit.courseCode"))
.add(Projections.countDistinct("student.id"))
.add(Projections.property("courseUnit.course.id")))
.createAlias("courseUnit", "courseUnit")
.createAlias("students", "student")
.add(eq("courseUnit.id", courseUnitId))
.list();
return o;
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoCursoAfetoDaoImpl.java
New file
0,0 → 1,72
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;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* Created by jorgemachado on 24/03/16.
*/
public class QuestionarioPedagogicoCursoAfetoDaoImpl extends QuestionarioPedagogicoCursoAfetoDao{
 
public static QuestionarioPedagogicoCursoAfetoDaoImpl getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoCursoAfetoDaoImpl();
return (QuestionarioPedagogicoCursoAfetoDaoImpl) myInstance;
}
 
public List<QuestionarioPedagogicoCursoAfeto> find(long questionarioId,String cursoCode)
{
return createCriteria()
.add(eq("questionario.id", questionarioId))
.add(eq("codigoCurso", cursoCode))
.list();
}
public List<QuestionarioPedagogicoCursoAfeto> find(long questionarioId)
{
return createCriteria()
.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/QuestionarioRespostaDaoImpl.java
New file
0,0 → 1,18
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioRespostaDaoImpl extends QuestionarioRespostaDao
{
private static final Logger logger = Logger.getLogger(QuestionarioRespostaDaoImpl.class);
 
public static QuestionarioRespostaDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioRespostaDaoImpl();
return (QuestionarioRespostaDaoImpl) myInstance;
}
}
/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/QuestionarioPedagogicoAlunoRequisitadoDaoImpl.java
New file
0,0 → 1,18
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioPedagogicoAlunoRequisitadoDaoImpl extends QuestionarioPedagogicoAlunoRequisitadoDao
{
private static final Logger logger = Logger.getLogger(QuestionarioPedagogicoAlunoRequisitadoDaoImpl.class);
 
public static QuestionarioPedagogicoAlunoRequisitadoDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioPedagogicoAlunoRequisitadoDaoImpl();
return (QuestionarioPedagogicoAlunoRequisitadoDaoImpl) myInstance;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java
2,13 → 2,11
 
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.*;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.CourseImpl;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitTurma;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.DaoUtils;
import pt.estgp.estgweb.services.common.SearchTypeEnum;
55,13 → 53,32
 
public int countCoursesUnits(String importYear,long courseId)
{
return createCriteria()
/* return createCriteria()
.createAlias("courseUnits", "c")
.setProjection(Projections.property("c.id"))
.add(eq("c.importYear", importYear))
.add(eq("id", courseId))
.list().size();
}
*/
return (Integer) createCriteria(CourseUnit.class)
.setProjection(Projections.rowCount())
.add(eq("importYear",importYear))
.add(eq("course.id",courseId))
.uniqueResult();
}
 
 
public int countCoursesUnitsTurmas(String importYear,long courseId)
{
return (Integer) createCriteria(CourseUnitTurma.class)
.setProjection(Projections.countDistinct("turma"))
.createAlias("courseUnit", "courseUnit")
.createAlias("students", "student")
.add(eq("courseUnit.importYear",importYear))
.add(eq("courseUnit.course.id",courseId))
.uniqueResult();
}
 
public int countCoursesUnitsNot(String importYear,long courseId)
{
return createCriteria()
184,6 → 201,10
.add(Expression.isNotNull("institutionCode"))
.list();
}
public List<Course> findCoursesWithUnitsIn(String importYear,String institutionCode, String semestre)
{
return findAllOrderByName(importYear,null,null,institutionCode,semestre);
}
public List<Course> findCoursesWithUnitsIn(String importYear,String institutionCode)
{
return findAllOrderByName(importYear,null,null,institutionCode);
196,6 → 217,10
 
public List<Course> findAllOrderByName(String importYear, String area, String type,String institutionCode)
{
return findAllOrderByName(importYear,area,type,institutionCode,null);
}
public List<Course> findAllOrderByName(String importYear, String area, String type,String institutionCode, String semestre)
{
 
String query = "select distinct c from c in class Course join c.courseUnits cu where ";
String logic = " ";
219,6 → 244,11
query += logic + "c.degree = :degree ";
logic = " and ";
}
if (semestre != null && semestre.length() > 0)
{
query += logic + "cu.semestre = :semestre ";
logic = " and ";
}
query += " order by c.name asc";
 
Query q = getCurrentSession().createQuery(query);
238,6 → 268,10
{
q.setString("degree",type);
}
if (semestre != null && semestre.length() > 0)
{
q.setString("semestre",semestre);
}
/* c.setProjection(Projections.projectionList()
.add(Projections.distinct(Projections.id())));*/
return q.list();
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl.java
New file
0,0 → 1,40
package pt.estgp.estgweb.domain.dao.impl;
 
import org.hibernate.Query;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta;
 
import java.util.List;
 
/**
* Created by jorgemachado on 24/03/16.
*/
public class QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl extends QuestionarioPedagogicoUnidadeCurricularAfetaDao
{
public static QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl();
return (QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl) myInstance;
}
 
public List<QuestionarioPedagogicoUnidadeCurricularAfeta> find(long questionarioId, String cursoCode,String codeUnidade)
{//pt.estgp.estgweb.domain.dao.DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().getCurrentSession().createCriteria(QuestionarioPedagogicoUnidadeCurricularAfeta.class).add(eq("cursoAfeto.id","1")).list()
//add(eq("cuA.questionario.id", new Long(20))).add(eq("codigoUnidade","209535")).add(eq("cuA.codigoCurso","9119"))
Query q = getCurrentSession().createQuery("select c from c in class " + QuestionarioPedagogicoUnidadeCurricularAfeta.class.getName() + " " +
" join c.cursoAfeto as curso " +
"where curso.questionario.id = :questionarioId and curso.codigoCurso = :codigoCurso" +
" and c.codigoUnidade = :codigoUnidade");
q.setLong("questionarioId", questionarioId);
q.setString("codigoCurso", cursoCode);
q.setString("codigoUnidade",codeUnidade);
return q.list();
 
/*DaoFactory.getCourseDaoImpl()
 
return createCriteria()
.createAlias("cursoAfeto","cuA")
.add(eq("cuA.questionario.id", questionarioId))
.add(eq("codigoUnidade",codeUnidade))
.add(eq("cuA.codigoCurso",cursoCode))
.list();*/
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
52,6 → 52,17
return createCriteria().add(eq("importYear", importYear)).add(eq("course.id", course)).list();
}
 
public List<CourseUnit> loadByCourseTurma(long courseId, String importYear, String turma) {
List o = createCriteria()
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.createAlias("turmas", "turma")
.add(eq("importYear",importYear))
.add(eq("course.id", courseId))
.add(eq("turma.turma", turma))
.list();
return o;
}
 
public List<CourseUnit> load(String importYear, String semestre)
{
return createCriteria().add(eq("importYear", importYear)).add(eq("semestre", semestre)).list();
274,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: ");
296,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: ");
455,6 → 476,54
}
 
 
public static class CourseUnitResult
{
public long id = 0;
public int students = 0;
public int teachers = 0;
public int turmas = 0;
}
/**
*
* @param courseId
* @param semestre
* @param year
* @return List<CourseUnitResult>
*/
public List<CourseUnitResult> loadCourseUnits(long courseId, String semestre, String year)
{
Criteria c = createCriteria();
 
c.setProjection(Projections.projectionList()
.add(Projections.groupProperty("id"))
.add(Projections.countDistinct("student.id"))
.add(Projections.countDistinct("teacher.id"))
.add(Projections.countDistinct("turma.id")));
c.createAlias("students","student");
c.createAlias("teachers","teacher");
c.createAlias("turmas","turma");
c.createAlias("turma.students","ts");//obrigar a entrar apenas turmas com alunos
if(courseId > 0)
c.add(eq("course.id", courseId));
if(semestre != null && semestre.trim().length() > 0)
c.add(eq("semestre", semestre));
if(year != null && year.trim().length() > 0)
c.add(eq("importYear", year));
List<CourseUnitResult> results = new ArrayList<CourseUnitResult>();
List<Object[]> result = c.list();
for(Object[] r:result)
{
CourseUnitResult cur = new CourseUnitResult();
cur.id = (Long) r[0];
cur.students = (Integer) r[1];
cur.teachers = (Integer) r[2];
cur.turmas = (Integer) r[3];
results.add(cur);
}
return results;
}
 
 
public int countCourseUnits(String query, SearchTypeEnum searchType)
{
Criterion c = DaoUtils.createSearchQuery(query, searchType, "objectives", "name","code");
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoTipologiaRequisitadaDaoImpl.java
New file
0,0 → 1,18
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioPedagogicoTipologiaRequisitadaDaoImpl extends QuestionarioPedagogicoTipologiaRequisitadaDao
{
private static final Logger logger = Logger.getLogger(QuestionarioPedagogicoTipologiaRequisitadaDaoImpl.class);
 
public static QuestionarioPedagogicoTipologiaRequisitadaDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioPedagogicoTipologiaRequisitadaDaoImpl();
return (QuestionarioPedagogicoTipologiaRequisitadaDaoImpl) myInstance;
}
}
/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/domain/dao/DaoFactory.java
379,9 → 379,32
public static QuestionarioDaoImpl getQuestionarioDaoImpl() {
return QuestionarioDaoImpl.getInstance();
}
public static QuestionarioRespostaDaoImpl getQuestionarioRespostaDaoImpl() {
return QuestionarioRespostaDaoImpl.getInstance();
}
public static QuestionarioRespostaRequisitadaDaoImpl getQuestionarioRespostaRequisitadaDaoImplImpl() {
return QuestionarioRespostaRequisitadaDaoImpl.getInstance();
}
 
public static QuestionarioHistoryDriveDaoImpl getQuestionarioHistoryDriveDaoImpl()
{
return QuestionarioHistoryDriveDaoImpl.getInstance();
}
 
public static QuestionarioPedagogicoCursoAfetoDaoImpl getQuestionarioPedagogicoCursoAfetoDaoImpl() {
return QuestionarioPedagogicoCursoAfetoDaoImpl.getInstance();
}
 
public static QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl() {
return QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl.getInstance();
}
 
public static QuestionarioPedagogicoTipologiaRequisitadaDaoImpl getQuestionarioPedagogicoTipologiaRequisitadaDaoImpl() {
return QuestionarioPedagogicoTipologiaRequisitadaDaoImpl.getInstance();
}
 
public static QuestionarioPedagogicoAlunoRequisitadoDaoImpl getQuestionarioPedagogicoAlunoRequisitadoDaoImpl() {
return QuestionarioPedagogicoAlunoRequisitadoDaoImpl.getInstance();
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitadaImpl.java
New file
0,0 → 1,18
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioPedagogicoTipologiaRequisitadaImpl extends QuestionarioPedagogicoTipologiaRequisitada {
 
@Override
public String toString() {
return "QuestionarioPedagogicoTipologiaRequisitada{" +
"cdDocente='" + getCdDocente() + '\'' +
", cdTurma='" + getCdTurma() + '\'' +
", cdTipologia='" + getCdTipologia() + '\'' +
", nomeDocente='" + getNomeDocente() + '\'' +
", dsTipologia='" + getDsTipologia() + '\'' +
'}';
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/utils/SimpleClearanceRuledSupport.java
43,6 → 43,11
return clear;
}
 
@Override
public void initClearances(UserSessionImpl u, boolean force) {
 
}
 
public void addClearance(String op,UserSessionImpl u)
{
if(userSessionClearances == null)
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfetoImpl.java
New file
0,0 → 1,25
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 23/03/16.
*/
public class QuestionarioPedagogicoCursoAfetoImpl extends QuestionarioPedagogicoCursoAfeto {
 
public void addObs(String obs)
{
if(getObs() == null)
setObs("");
 
setObs(getObs() + " ; " + obs);
}
 
public void resetStats()
{
setMarcadas(0);
setObs("");
}
public void incMarcadas()
{
setMarcadas(getMarcadas()+1);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioRespostaImpl.java
New file
0,0 → 1,65
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 23/03/16.
*/
public class QuestionarioRespostaImpl extends QuestionarioResposta {
 
@Override
public String toString() {
return "QuestionarioResposta{" +
"r1='" + getR1() + '\'' +
", r2='" + getR2() + '\'' +
", r3='" + getR3() + '\'' +
", r4='" + getR4() + '\'' +
", r5='" + getR5() + '\'' +
", r6='" + getR6() + '\'' +
", r7='" + getR7() + '\'' +
", r8='" + getR8() + '\'' +
", r9='" + getR9() + '\'' +
", r10='" + getR10() + '\'' +
", r11='" + getR11() + '\'' +
", r12='" + getR12() + '\'' +
", r13='" + getR13() + '\'' +
", r14='" + getR14() + '\'' +
", r15='" + getR15() + '\'' +
", r16='" + getR16() + '\'' +
", r17='" + getR17() + '\'' +
", r18='" + getR18() + '\'' +
", r19='" + getR19() + '\'' +
", r20='" + getR20() + '\'' +
", r21='" + getR21() + '\'' +
", r22='" + getR22() + '\'' +
", r23='" + getR23() + '\'' +
", r24='" + getR24() + '\'' +
", r25='" + getR25() + '\'' +
", r26='" + getR26() + '\'' +
", r27='" + getR27() + '\'' +
", r28='" + getR28() + '\'' +
", r29='" + getR29() + '\'' +
", r30='" + getR30() + '\'' +
", r31='" + getR31() + '\'' +
", r32='" + getR32() + '\'' +
", r33='" + getR33() + '\'' +
", r34='" + getR34() + '\'' +
", r35='" + getR35() + '\'' +
", r36='" + getR36() + '\'' +
", r37='" + getR37() + '\'' +
", r38='" + getR38() + '\'' +
", r39='" + getR39() + '\'' +
", r40='" + getR40() + '\'' +
", rt1='" + getRt1() + '\'' +
", rt2='" + getRt2() + '\'' +
", rt3='" + getRt3() + '\'' +
", rt4='" + getRt4() + '\'' +
", rt5='" + getRt5() + '\'' +
", rt6='" + getRt6() + '\'' +
", rt7='" + getRt7() + '\'' +
", rt8='" + getRt8() + '\'' +
", rt9='" + getRt9() + '\'' +
", rt10='" + getRt10() + '\'' +
", user(id,bi,username)=" + (getUser()!=null?getUser().getId() + "-" + getUser().getBi() + "-" + getUser().getUsername():"unknown") +
(getUser()!=null && getUser() instanceof SigesUser? ", user numero siges='" + ((SigesUser)getUser()).getSigesCode():"") + '\'' +
'}';
}
}
/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/form/questionarios/QuestionarioForm.java
5,9 → 5,13
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.QuestionarioImpl;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfetoImpl;
import pt.estgp.estgweb.utils.DynamicArrayList;
import pt.estgp.estgweb.web.form.ApplicationForm;
 
import javax.servlet.http.HttpServletRequest;
import java.util.List;
 
 
/**
27,7 → 31,16
 
private boolean showQuestionarioForm = false;
 
private String[] coursesSelectedIds;
 
public String[] getCoursesSelectedIds() {
return coursesSelectedIds;
}
 
public void setCoursesSelectedIds(String[] coursesSelectedIds) {
this.coursesSelectedIds = coursesSelectedIds;
}
 
public boolean isShowQuestionarioForm() {
return showQuestionarioForm;
}
36,6 → 49,17
this.showQuestionarioForm = showQuestionarioForm;
}
 
public List<QuestionarioPedagogicoCursoAfeto> cursosAfetos = new DynamicArrayList<QuestionarioPedagogicoCursoAfeto>(QuestionarioPedagogicoCursoAfetoImpl.class);
 
public List<QuestionarioPedagogicoCursoAfeto> getCursosAfetos()
{
return cursosAfetos;
}
 
public void setCursosAfetos(List<QuestionarioPedagogicoCursoAfeto> cursosAfetos) {
this.cursosAfetos = cursosAfetos;
}
 
public QuestionarioForm()
{
 
/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
New file
0,0 → 1,99
package pt.estgp.estgweb.web.controllers.questionarios;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import pt.estgp.estgweb.domain.QuestionarioImpl;
import pt.estgp.estgweb.services.logresults.ILogMessage;
import pt.estgp.estgweb.services.logresults.ILogMessages;
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
import pt.estgp.estgweb.web.form.questionarios.QuestionarioForm;
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 21/03/16.
*/
public class QuestionarioCourseSelectionController extends QuestionarioController
{
 
private static final Logger logger = Logger.getLogger(QuestionarioCourseSelectionController.class);
 
public ActionForward selectCourses(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
QuestionarioForm frm = (QuestionarioForm) form;
 
if(frm.getCoursesSelectedIds() == null)
{
addError(request,"questionario.no.courses.selected");
return mapping.findForward("coursesSelection");
}
 
 
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId","selectedCourses"};
Object[] args = {frm.getQuestionario().getId(),frm.getCoursesSelectedIds()};
 
QuestionarioImpl q = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"RunJobSelectCourses",args,names);
 
frm.setQuestionario(q);
 
addMessage(request,"questionarios.courses.start");
return mapping.findForward("coursesSelection");
}
 
public ActionForward revertAssignements(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
QuestionarioForm frm = (QuestionarioForm) form;
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {frm.getQuestionario().getId()};
 
ILogMessages logMessages = (ILogMessages) sm.execute(RequestUtils.getRequester(request, response),"QuestionarioRevertAllAssignmentsPedagogico",args,names);
 
for(ILogMessage log: logMessages.getLogMessages())
{
if(log.getType() == LogMessageTypeEnum.ERROR || log.getType() == LogMessageTypeEnum.WARNING || log.getType() == LogMessageTypeEnum.FATAL)
addErrorAssString(request,log.getMsg());
else
addMessageAsString(request,log.getMsg());
}
return mapping.findForward("admin");
}
 
public ActionForward updateTipologias(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
QuestionarioForm frm = (QuestionarioForm) form;
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId","cursosAfetos"};
Object[] args = {frm.getQuestionario().getId(),frm.getCursosAfetos()};
 
sm.execute(RequestUtils.getRequester(request, response),"QuestionarioUpdateTipologiasPedagogico",args,names);
 
addMessage(request,"questionario.tipologias.update.success");
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/java/pt/estgp/estgweb/web/controllers/ApplicationDispatchController.java
1,24 → 1,13
package pt.estgp.estgweb.web.controllers;
 
import jomm.utils.MessageResources;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.action.*;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.web.controllers.announcements.AnnouncementsController;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.domain.UserSessionImpl;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
 
import jomm.utils.MessageResources;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
54,6 → 43,13
saveMessages(request,actionMessages);
}
 
public void addMessageAsString(HttpServletRequest request, String message)
{
ActionMessages actionMessages = getMessages(request);
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new StringMessage(message));
saveMessages(request,actionMessages);
}
 
public void addMessage(HttpServletRequest request, String message, String arg0)
{
ActionMessages actionMessages = getMessages(request);
139,6 → 135,13
saveErrors(request,actionMessages);
}
 
public void addErrorAssString(HttpServletRequest request, String message)
{
ActionMessages actionMessages = getErrors(request);
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new StringMessage(message));
saveErrors(request,actionMessages);
}
 
public void addError(HttpServletRequest request, String message, String arg0)
{
ActionMessages actionMessages = getErrors(request);
213,5 → 216,24
saveErrors(request,actionMessages);
}
 
public static class StringMessage extends ActionMessage
{
String message;
public StringMessage(String message)
{
super(message);
this.message = message;
}
 
@Override
public boolean isResource() {
return false;
}
 
@Override
public String toString() {
return message;
}
}
 
}
/branches/v3/impl/src/doc/estgweb.eap
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v3/impl/src/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/OlapQuestionarios.hbm.xml
91,7 → 91,9
</id>
<property name="respondido" type="boolean" index="respondidoIndex"/>
<property name="dataInicio" type="timestamp"/>
<property name="tempoTotal" type="long"/>
<property name="dataFim" type="timestamp"/>
<property name="questionario" type="long"/>
 
<many-to-one name="tipologia" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioTipologia" outer-join="false" lazy="proxy"/>
<many-to-one name="docente" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioDocente" outer-join="false" lazy="proxy"/>
106,14 → 108,16
<many-to-one name="timeLine" class="pt.estgp.estgweb.domain.OlapHistoryDimension" outer-join="false" lazy="proxy"/>
 
<!--Assim e possivel Filtrar por questionario uso a dimensao questionario-->
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<!--<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>-->
</class>
 
<class name="pt.estgp.estgweb.domain.OlapStarQuestionarioAnswer" table="olap_star_quest_answer">
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<property name="data" type="timestamp"/>
<property name="dataEvento" type="timestamp"/>
<property name="tempoLevado" type="long"/>
<property name="ordemResposta" type="int"/>
<property name="intResposta" type="int" index="intResponseIndex"/>
 
<many-to-one name="starQuestionario" class="pt.estgp.estgweb.domain.OlapStarQuestionario" outer-join="false" lazy="proxy"/>
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/Questionarios.hbm.xml
13,8 → 13,10
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="startDate" type="timestamp"/>
<property name="description" type="string"/>
<property name="logStates" type="text">
<column name="logStates" sql-type="MEDIUMTEXT"/>
</property>
<property name="year" type="string"/>
<property name="semestre" type="string"/>
<property name="iAnswersProcessor" type="string"/>
183,7 → 185,18
<property name="state" type="string">
<column name="state" default="'CREATED'"/>
</property>
<property name="substate" type="string"/>
 
<property name="answerGenerationTaskId" type="long">
<column name="answer_generation_task_id" default="0"/>
</property>
 
<!--Modulo de Pedagogico-->
<property name="courseSelectionTaskId" type="long">
<column name="course_selection_task_id" default="0"/>
</property>
<!--Modulo de Pedagogico-->
 
<many-to-one name="questionarioHistoryDrive" class="pt.estgp.estgweb.domain.QuestionarioHistoryDrive" lazy="proxy" outer-join="false"/>
 
<subclass name="pt.estgp.estgweb.domain.QuestionarioImpl" discriminator-value="QuestionarioImpl"/>
203,4 → 216,311
<subclass name="pt.estgp.estgweb.domain.QuestionarioHistoryDriveImpl" discriminator-value="QuestionarioHistoryDriveImpl"/>
</class>
 
 
<class name="pt.estgp.estgweb.domain.QuestionarioRespostaRequisitada" table="questionario_resposta_requisitada" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discriminator"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" lazy="proxy" outer-join="false"/>
<many-to-one name="user" class="pt.estgp.estgweb.domain.User" lazy="proxy" outer-join="false"/>
<many-to-one name="resposta" class="pt.estgp.estgweb.domain.QuestionarioResposta" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.QuestionarioRespostaRequisitadaImpl" discriminator-value="QuestionarioRespostaRequisitadaImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.QuestionarioResposta" table="questionario_resposta" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discriminator"/>
 
<property name="saveDate" type="timestamp"/>
 
<property name="timeStart" type="timestamp"/>
<property name="timeEnd" type="timestamp"/>
<property name="totalTime" type="long"/>
 
 
<property name="r1" type="string"/>
<property name="r2" type="string"/>
<property name="r3" type="string"/>
<property name="r4" type="string"/>
<property name="r5" type="string"/>
<property name="r6" type="string"/>
<property name="r7" type="string"/>
<property name="r8" type="string"/>
<property name="r9" type="string"/>
<property name="r10" type="string"/>
<property name="r11" type="string"/>
<property name="r12" type="string"/>
<property name="r13" type="string"/>
<property name="r14" type="string"/>
<property name="r15" type="string"/>
<property name="r16" type="string"/>
<property name="r17" type="string"/>
<property name="r18" type="string"/>
<property name="r19" type="string"/>
<property name="r20" type="string"/>
<property name="r21" type="string"/>
<property name="r22" type="string"/>
<property name="r23" type="string"/>
<property name="r24" type="string"/>
<property name="r25" type="string"/>
<property name="r26" type="string"/>
<property name="r27" type="string"/>
<property name="r28" type="string"/>
<property name="r29" type="string"/>
<property name="r30" type="string"/>
<property name="r31" type="string"/>
<property name="r32" type="string"/>
<property name="r33" type="string"/>
<property name="r34" type="string"/>
<property name="r35" type="string"/>
<property name="r36" type="string"/>
<property name="r37" type="string"/>
<property name="r38" type="string"/>
<property name="r39" type="string"/>
<property name="r40" type="string"/>
 
<property name="rt1" type="string"/>
<property name="rt2" type="string"/>
<property name="rt3" type="string"/>
<property name="rt4" type="string"/>
<property name="rt5" type="string"/>
<property name="rt6" type="string"/>
<property name="rt7" type="string"/>
<property name="rt8" type="string"/>
<property name="rt9" type="string"/>
<property name="rt10" type="string"/>
 
 
<!--Tempo levado para responder-->
<property name="timeTakenR1" type="long"/>
<property name="timeTakenR2" type="long"/>
<property name="timeTakenR3" type="long"/>
<property name="timeTakenR4" type="long"/>
<property name="timeTakenR5" type="long"/>
<property name="timeTakenR6" type="long"/>
<property name="timeTakenR7" type="long"/>
<property name="timeTakenR8" type="long"/>
<property name="timeTakenR9" type="long"/>
<property name="timeTakenR10" type="long"/>
<property name="timeTakenR11" type="long"/>
<property name="timeTakenR12" type="long"/>
<property name="timeTakenR13" type="long"/>
<property name="timeTakenR14" type="long"/>
<property name="timeTakenR15" type="long"/>
<property name="timeTakenR16" type="long"/>
<property name="timeTakenR17" type="long"/>
<property name="timeTakenR18" type="long"/>
<property name="timeTakenR19" type="long"/>
<property name="timeTakenR20" type="long"/>
<property name="timeTakenR21" type="long"/>
<property name="timeTakenR22" type="long"/>
<property name="timeTakenR23" type="long"/>
<property name="timeTakenR24" type="long"/>
<property name="timeTakenR25" type="long"/>
<property name="timeTakenR26" type="long"/>
<property name="timeTakenR27" type="long"/>
<property name="timeTakenR28" type="long"/>
<property name="timeTakenR29" type="long"/>
<property name="timeTakenR30" type="long"/>
<property name="timeTakenR31" type="long"/>
<property name="timeTakenR32" type="long"/>
<property name="timeTakenR33" type="long"/>
<property name="timeTakenR34" type="long"/>
<property name="timeTakenR35" type="long"/>
<property name="timeTakenR36" type="long"/>
<property name="timeTakenR37" type="long"/>
<property name="timeTakenR38" type="long"/>
<property name="timeTakenR39" type="long"/>
<property name="timeTakenR40" type="long"/>
 
<property name="timeTakenRt1" type="long"/>
<property name="timeTakenRt2" type="long"/>
<property name="timeTakenRt3" type="long"/>
<property name="timeTakenRt4" type="long"/>
<property name="timeTakenRt5" type="long"/>
<property name="timeTakenRt6" type="long"/>
<property name="timeTakenRt7" type="long"/>
<property name="timeTakenRt8" type="long"/>
<property name="timeTakenRt9" type="long"/>
<property name="timeTakenRt10" type="long"/>
 
<!--Hora do Clique-->
<property name="timeEventR1" type="timestamp"/>
<property name="timeEventR2" type="timestamp"/>
<property name="timeEventR3" type="timestamp"/>
<property name="timeEventR4" type="timestamp"/>
<property name="timeEventR5" type="timestamp"/>
<property name="timeEventR6" type="timestamp"/>
<property name="timeEventR7" type="timestamp"/>
<property name="timeEventR8" type="timestamp"/>
<property name="timeEventR9" type="timestamp"/>
<property name="timeEventR10" type="timestamp"/>
<property name="timeEventR11" type="timestamp"/>
<property name="timeEventR12" type="timestamp"/>
<property name="timeEventR13" type="timestamp"/>
<property name="timeEventR14" type="timestamp"/>
<property name="timeEventR15" type="timestamp"/>
<property name="timeEventR16" type="timestamp"/>
<property name="timeEventR17" type="timestamp"/>
<property name="timeEventR18" type="timestamp"/>
<property name="timeEventR19" type="timestamp"/>
<property name="timeEventR20" type="timestamp"/>
<property name="timeEventR21" type="timestamp"/>
<property name="timeEventR22" type="timestamp"/>
<property name="timeEventR23" type="timestamp"/>
<property name="timeEventR24" type="timestamp"/>
<property name="timeEventR25" type="timestamp"/>
<property name="timeEventR26" type="timestamp"/>
<property name="timeEventR27" type="timestamp"/>
<property name="timeEventR28" type="timestamp"/>
<property name="timeEventR29" type="timestamp"/>
<property name="timeEventR30" type="timestamp"/>
<property name="timeEventR31" type="timestamp"/>
<property name="timeEventR32" type="timestamp"/>
<property name="timeEventR33" type="timestamp"/>
<property name="timeEventR34" type="timestamp"/>
<property name="timeEventR35" type="timestamp"/>
<property name="timeEventR36" type="timestamp"/>
<property name="timeEventR37" type="timestamp"/>
<property name="timeEventR38" type="timestamp"/>
<property name="timeEventR39" type="timestamp"/>
<property name="timeEventR40" type="timestamp"/>
 
<property name="timeEventRt1" type="long"/>
<property name="timeEventRt2" type="long"/>
<property name="timeEventRt3" type="long"/>
<property name="timeEventRt4" type="long"/>
<property name="timeEventRt5" type="long"/>
<property name="timeEventRt6" type="long"/>
<property name="timeEventRt7" type="long"/>
<property name="timeEventRt8" type="long"/>
<property name="timeEventRt9" type="long"/>
<property name="timeEventRt10" type="long"/>
 
<many-to-one name="user" class="pt.estgp.estgweb.domain.User" lazy="proxy" outer-join="false"/>
<subclass name="pt.estgp.estgweb.domain.QuestionarioRespostaImpl" discriminator-value="QuestionarioRespostaImpl"/>
</class>
 
<!--PEDAGOGICO QUESTIONARIO ATRIBUICOES-->
 
<class name="pt.estgp.estgweb.domain.QuestionarioPedagogicoTipologiaRequisitada" table="questionario_peda_tipologia_requisitada" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="cdDocente" type="string"/>
<property name="cdTurma" type="string"/>
<property name="cdTipologia" type="string"/>
<property name="nomeDocente" type="string" />
<property name="dsTipologia" type="string"/>
<many-to-one name="unidadeAfeta" class="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" lazy="proxy" outer-join="false" column="unidade_afeta"/>
<set name="alunosRequisitados" lazy="true">
<key column="tipologia_requisitada"/>
<one-to-many class="pt.estgp.estgweb.domain.QuestionarioPedagogicoAlunoRequisitado" />
</set>
<subclass name="pt.estgp.estgweb.domain.QuestionarioPedagogicoTipologiaRequisitadaImpl" discriminator-value="QuestionarioPedagogicoTipologiaRequisitadaImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.QuestionarioPedagogicoAlunoRequisitado" table="questionario_peda_aluno_requisitado" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<many-to-one name="aluno" class="pt.estgp.estgweb.domain.Student" lazy="proxy" outer-join="false"/>
<many-to-one name="tipologiaRequisitada" class="pt.estgp.estgweb.domain.QuestionarioPedagogicoTipologiaRequisitada" lazy="proxy" outer-join="false" column="tipologia_requisitada"/>
<many-to-one name="respostaRequisitada" class="pt.estgp.estgweb.domain.QuestionarioRespostaRequisitada" lazy="proxy" outer-join="false"/>
<subclass name="pt.estgp.estgweb.domain.QuestionarioPedagogicoAlunoRequisitadoImpl" discriminator-value="QuestionarioPedagogicoAlunoRequisitadoImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto" table="questionario_peda_curso_afeto" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="codigoInstituicao" type="string"/>
<property name="nomeInstituicao" type="string"/>
<property name="codigoCurso" type="string" index="codigoCursoIndex"/>
<property name="ano" type="string"/>
<property name="semestre" type="string"/>
<property name="nome" type="string"/>
<property name="marcadas" type="int"/>
<property name="obs" type="string"/>
<property name="usarTipologias" type="boolean">
<column name="usarTipologias" default="false"/>
</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" order-by="nome asc">
<key column="curso_afeto"/>
<one-to-many class="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" />
</set>
<subclass name="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfetoImpl" discriminator-value="QuestionarioPedagogicoCursoAfetoImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta" table="questionario_peda_unidade_afeta" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="codigoUnidade" type="string" index="codigoUnidadeIndex"/>
<property name="nome" type="string"/>
 
<property name="addedTipologias" type="int"/>
 
<property name="marked" type="boolean"/>
 
<property name="profs" type="int"/>
<property name="turmas" type="int"/>
<property name="students" type="int"/>
<property name="turmaWithoutProf" type="int"/>
<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>
<property name="tipologiasJson" type="text">
<column name="tipologias_json" sql-type="MEDIUMTEXT"/>
</property>
<many-to-one name="cursoAfeto" class="pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto" lazy="proxy" outer-join="false" column="curso_afeto"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="proxy" outer-join="false"/>
<set name="tipologiasRequisitadas" lazy="true">
<key column="unidade_afeta"/>
<one-to-many class="pt.estgp.estgweb.domain.QuestionarioPedagogicoTipologiaRequisitada" />
</set>
<subclass name="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfetaImpl" discriminator-value="QuestionarioPedagogicoUnidadeCurricularAfetaImpl"/>
</class>
 
 
 
</hibernate-mapping>
/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/taskLog.jsp
1,6 → 1,7
<%@ page import="jomm.utils.MessageResources" %>
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="jomm.utils.BytesUtils" %>
<%@ 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-logic.tld" prefix="logic" %>
14,11 → 15,91
<jomm:messages/>
<html:errors/>
 
<!--<jsp:include page="/layout/scriptsBootstrapSoft.jsp"/>-->
<%
String logid = "log" + BytesUtils.generateHexKey();
%>
 
<%--
TaskLog styles
normal or nothing in attribute
task-log-xs (only progress bar and log link download url)
task-log-sm (only progress bar,screen log small and log download url)
task-log-md (table info, progress bar, screen log small and log download url)
task-log-lg (panel title, table info, progress bar, screen log small and log download url)
---%>
 
 
<style>
.task-log.task-log-xs *.task-log-panel > .panel-heading,
.task-log.task-log-sm *.task-log-panel > .panel-heading,
.task-log.task-log-md *.task-log-panel > .panel-heading
{
display: none !important;
}
.task-log.task-log-xs *.task-log-table,
.task-log.task-log-sm *.task-log-table
{
display: none !important;
}
.task-log.task-log-sm *.task-log-screens
{
height: 50px !important;
font-size: 0.8em !important;
}
/*.task-log.task-log-sm *.task-log-screens-toogle,
.task-log.task-log-md *.task-log-screens-toogle,
.task-log.task-log-lg *.task-log-screens-toogle
{
display: none !important;
}*/
 
.task-log.task-log-sm *.task-log-screens .screen,
.task-log.task-log-xs *.task-log-screens .screen
{
height: 150px !important;
width: 100%;
font-size: 0.7em !important;
}
.task-log.task-log-sm .fullscreen *.task-log-screens .screen, /*Estilos pra a maximização da janela*/
.task-log.task-log-xs .fullscreen *.task-log-screens .screen
{
height: 300px !important;
width: 100%;
font-size: 0.85em !important;
}
.task-log.task-log-sm *.task-log-screens .header h2, .task-log-sm .task-log-screens .header a,
.task-log.task-log-xs *.task-log-screens .header h2, .task-log-xs .task-log-screens .header a{
font-size: 0.7em !important;
}
</style>
<script>
$(document).ready(function(){
 
 
 
$("*.task-log-screens").addClass("in");
$(".task-log.task-log-xs *.task-log-screens").removeClass("in");
/*
$(".task-log-xs .task-log-panel .panel .panel-heading").remove();
$(".task-log-sm .task-log-panel .panel .panel-heading").remove();
$(".task-log-md .task-log-panel .panel .panel-heading").remove();
$(".task-log-xs .task-log-table").remove();
$(".task-log-sm .task-log-table").remove();
$(".task-log-xs .task-log-screens").remove();
*/
});
</script>
<script>
 
/****START PROGRESS BAR*******/
 
$(document).ready(function(){
updateStatus();
});
 
/****************************/
 
var startStatus = "";
function updateStatus()
{
$.getJSON( "<%=request.getContextPath()%>/admin/schedullerTasksJson?service=loadLog&id=${SchedulleTasksForm.jobServiceTask.id}", function( data ) {
45,13 → 126,19
 
if(data.status == "STARTED" || data.status == "PENDING")
setTimeout("updateStatus()",2000);
 
if(startStatus == "")
startStatus = data.status;
 
if(data.progress >= 100 && startStatus != data.status)
{
window.location.href = $("#<%=logid%>").closest('.task-log').data("href");
}
});
 
}
$(document).ready(function(){
updateStatus();
 
});
 
</script>
 
<%
59,13 → 146,13
%>
 
 
<div class="container-fluid">
<div class="panel panel-default">
 
<div class="panel panel-default task-log-panel" id="task-maximize-panel">
<div class="panel-heading">
<bean:message key="configuration.taskLog"/>
</div>
<div class="panel-body">
<table class="tablesorter tablesortersimple">
<table class="tablesorter tablesortersimple task-log-table">
<thead>
<tr>
<th><bean:message key="configuration.task"/></th>
97,7 → 184,15
<%=ConfigProperties.getProperty("institution.code.prefix." + taskParam.getObject())%>
</logic:equal>
<logic:notEqual value="JOB_institution_KEY" name="taskParam" property="name">
${taskParam.object}
<logic:equal value="JOB_questionario_courseList_KEY" name="taskParam" property="name">
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/cursosJobInfo.jsp?jobId=${SchedulleTasksForm.jobServiceTask.id}" data-title="Listagem de Cursos da Tarefa de Atribuição" data-toggle="modal" data-target="#modalAjaxRequest">
Lista Cursos
</a>
</logic:equal>
<logic:notEqual value="JOB_questionario_courseList_KEY" name="taskParam" property="name">
${taskParam.object}
</logic:notEqual>
 
</logic:notEqual>
</td>
</tr>
120,14 → 215,21
</tbody>
 
</table>
<div class="progress">
<div class="progress task-log-progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="0"
aria-valuemin="0" aria-valuemax="100" style="width:0%">
70%
</div>
</div>
<div id="screens"></div>
<a href="<%=request.getContextPath()%>/logServiceStream/${SchedulleTasksForm.jobServiceTask.logFilePath}">Download Log Completo</a>
 
<div class="task-log-screens-toogle">
<button type="button" class="btn btn-default" data-toggle="collapse" data-target="#<%=logid%>">Mostrar Log</button>
<button class="maximize-button btn btn-default" data-target="#task-maximize-panel" type="button">Maximizar/Minimizar</button>
</div>
<div id="<%=logid%>" class="task-log-screens collapse">
<div id="screens"></div>
<a href="<%=request.getContextPath()%>/logServiceStream/${SchedulleTasksForm.jobServiceTask.logFilePath}">Download Log Completo</a>
</div>
</div>
</div>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/logtailer/logtail.js"></script>
139,6 → 241,9
padding: 0.5em;
font-family: sans-serif;
}
.header h2{
font-size: 1em;
}
 
.header .buttons {
float: right;
188,4 → 293,4
 
 
 
</div>
 
/branches/v3/impl/src/web/admin/configuration/tasks.jsp
145,7 → 145,15
<%=ConfigProperties.getProperty("institution.code.prefix." + taskParam.getObject())%>
</logic:equal>
<logic:notEqual value="JOB_institution_KEY" name="taskParam" property="name">
${taskParam.object}
<logic:equal value="JOB_questionario_courseList_KEY" name="taskParam" property="name">
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/cursosJobInfo.jsp?jobId=${task.id}" data-title="Listagem de Cursos da Tarefa de Atribuição" data-toggle="modal" data-target="#modalAjaxRequest">
Lista Cursos
</a>
</logic:equal>
<logic:notEqual value="JOB_questionario_courseList_KEY" name="taskParam" property="name">
${taskParam.object}
</logic:notEqual>
 
</logic:notEqual>
</td>
</tr>
/branches/v3/impl/src/web/admin/configuration/jobTasks.jsp
62,7 → 62,15
<%=ConfigProperties.getProperty("institution.code.prefix." + taskParam.getObject())%>
</logic:equal>
<logic:notEqual value="JOB_institution_KEY" name="taskParam" property="name">
${taskParam.object}
<logic:equal value="JOB_questionario_courseList_KEY" name="taskParam" property="name">
<a href="#" data-href="<%=request.getContextPath()%>/admin/questionarios/pedagogicoEstudante/cursosJobInfo.jsp?jobId=${task.id}" data-title="Listagem de Cursos da Tarefa de Atribuição" data-toggle="modal" data-target="#modalAjaxRequest">
Lista Cursos
</a>
</logic:equal>
<logic:notEqual value="JOB_questionario_courseList_KEY" name="taskParam" property="name">
${taskParam.object}
</logic:notEqual>
 
</logic:notEqual>
</td>
</tr>
/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/style.css
32,7 → 32,13
margin-bottom: 3px !important;
}
 
.nav-tabs li a
{
text-decoration: none !important;
color: black !important;
}
 
 
 
 
 
/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/js/bootstrap-toggle-master/LICENSE
New file
0,0 → 1,21
The MIT License (MIT)
 
Copyright (c) 2011-2014 Min Hur, The New York Times Company
 
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
 
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/package.json
New file
0,0 → 1,28
{
"name": "bootstrap-toggle",
"description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
"version": "2.2.2",
"main": "js/bootstrap-toggle.js",
"keywords": [
"bootstrap",
"toggle",
"bootstrap-toggle",
"switch",
"bootstrap-switch"
],
"homepage": "http://www.bootstraptoggle.com",
"repository": {
"type": "git",
"url": "https://github.com/minhur/bootstrap-toggle.git"
},
"license": "MIT",
"author": "Min Hur <min.hur@gmail.com>",
"bugs": {
"url": "https://github.com/minhur/bootstrap-toggle/issues"
},
"devDependencies": {
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-cssmin": "^0.10.0",
"grunt-contrib-uglify": "^0.6.0"
}
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/.gitignore
New file
0,0 → 1,2
.DS_Store
node_modules
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/doc/script.js
New file
0,0 → 1,49
+function ($) {
'use strict';
 
$('.example:not(.skip)').each(function() {
// fetch & encode html
var html = $('<div>').text($(this).html()).html()
// find number of space/tabs on first line (minus line break)
var count = html.match(/^(\s+)/)[0].length - 1
// replace tabs/spaces on each lines with
var regex = new RegExp('\\n\\s{'+count+'}', 'g')
var code = html.replace(regex, '\n').replace(/\t/g, ' ').trim()
// other cleanup
code = code.replace(/=""/g,'')
// add code block to dom
$(this).after( $('<code class="highlight html">').html(code) )
});
 
$('code.highlight').each(function() {
hljs.highlightBlock(this)
});
 
}(jQuery);
 
var Demo = function () {}
 
Demo.prototype.init = function(selector) {
$(selector).bootstrapToggle(selector)
}
Demo.prototype.destroy = function(selector) {
$(selector).bootstrapToggle('destroy')
}
Demo.prototype.on = function(selector) {
$(selector).bootstrapToggle('on')
}
Demo.prototype.off = function(selector) {
$(selector).bootstrapToggle('off')
}
Demo.prototype.toggle = function(selector) {
$(selector).bootstrapToggle('toggle')
}
Demo.prototype.enable = function(selector) {
$(selector).bootstrapToggle('enable')
}
Demo.prototype.disable = function(selector) {
$(selector).bootstrapToggle('disable')
}
 
 
demo = new Demo()
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/doc/stylesheet.css
New file
0,0 → 1,112
header, footer {
padding: 20px;
background-image: url('header.png');
background-size: 256px 256px;
}
footer {
color: #fff;
text-align: center;
}
.nyt-logo {
max-height: 40px;
margin-top: 5px;
margin-right: 5px;
}
 
nav.navbar {
margin-bottom: 10px;
background-color: #fff;
border: 0px;
border-radius: 2px;
}
#navbar {
margin: 0px;
}
#navbar .navbar-nav li iframe {
margin-top: 15px;
}
#navbar .navbar-nav li:last-child iframe {
margin-right: 15px;
}
 
@media screen and (max-width: 767px) {
#navbar .navbar-nav li iframe {
display: none;
}
}
 
.mast-head {
margin: 10px 0;
}
.mast-head h1 {
margin-bottom: 15px;
color: #fff;
}
.mast-head p {
color: #fff;
}
 
.mast-links {
padding-top: 10px;
}
 
.mast-links > * {
vertical-align: middle;
margin-bottom: 10px;
}
 
.mast-links > .btn {
margin-right: 30px;
}
main {
margin: 10px 20px;
}
main .container {
margin-bottom: 40px;
}
 
code.hljs {
border: 1px solid #ccc;
padding: 1em;
white-space: pre;
margin-bottom: 10px;
}
 
.example {
position: relative;
border: 1px solid #ccc;
padding: 1em 1em 0.5em 1em;
border-radius: 4px 4px 0 0;
}
 
.example:after {
content: "Example";
position: absolute;
top: 0px;
right: 0px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
background-color: #f5f5f5;
border: 1px solid #ccc;
color: #9da0a4;
border-radius: 0px 4px 0px 4px;
border-width: 0px 0px 1px 1px;
}
 
.example + code.hljs {
border-top: 0;
border-radius: 0px 0px 4px 4px;
}
 
.example > * {
margin-bottom: 10px;
}
 
.example > div.toggle {
margin-right: 10px;
}
 
.table-striped code {
background-color: inherit;
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/doc/nytdev.svg
New file
0,0 → 1,239
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="868.575px" height="186.426px" viewBox="0 0 868.575 186.426" enable-background="new 0 0 868.575 186.426"
xml:space="preserve">
<g>
<path fill="#63BB46" d="M20.116,151.421c-4.572-4.576-5.988-10.257-5.988-22.211v-25.691c0-11.028-1.255-12.916-11.19-16.393
v-4.877c4.892-1.419,7.096-2.684,8.983-5.025c1.896-2.703,2.207-4.421,2.207-11.518V40.188c0-8.038,0.472-11.508,2.046-15.771
c1.89-5.187,6.14-9.44,11.189-11.03c4.876-1.574,8.82-2.03,21.738-2.362v8.366c-10.238,1.888-12.13,4.558-12.13,17.64v27.094
c0,4.407-0.621,9.775-1.423,13.235c-0.94,3.469-2.354,5.363-5.664,7.41c3.31,2.355,4.724,4.097,5.516,7.249
c0.95,3.622,1.571,8.501,1.571,13.234v27.573c0,12.758,1.739,15.122,12.13,17.173v8.351
C30.193,157.873,25.162,156.772,20.116,151.421z"/>
</g>
<g>
<path fill="#63BB46" d="M173.762,158.35v-8.351c10.403-2.051,12.136-4.415,12.136-17.173v-27.573c0-4.733,0.634-9.612,1.573-13.234
c0.791-3.152,2.21-4.893,5.52-7.249c-3.309-2.047-4.729-3.94-5.673-7.41c-0.786-3.459-1.419-8.828-1.419-13.235V37.031
c0-13.082-1.891-15.752-12.136-17.64v-8.366c12.919,0.332,16.867,0.788,21.742,2.362c5.04,1.59,9.294,5.843,11.189,11.03
c1.575,4.263,2.056,7.733,2.056,15.771v25.517c0,7.097,0.301,8.815,2.199,11.518c1.897,2.342,4.096,3.606,8.981,5.025v4.877
c-9.928,3.478-11.18,5.365-11.18,16.393v25.691c0,11.954-1.426,17.636-5.989,22.211
C197.712,156.772,192.675,157.873,173.762,158.35z"/>
</g>
<g>
<path d="M140.865,22.474c3.434,0.283,8.858,2.001,12.916,5.565c4.331,4.19,5.312,10.578,3.803,16.346
c-1.354,5.181-2.864,7.862-8.135,11.416c-5.315,3.62-11.768,3.331-11.768,3.331v22.344l10.886,8.806l-10.886,8.786v30.473
c0,0,10.92-6.273,17.669-20.237c0,0,0.292-0.774,0.924-2.24c0.605,3.788,0.247,11.379-3.995,21.077
c-3.197,7.353-8.994,14.436-16.294,18.47c-12.915,7.137-22.612,7.835-32.986,5.671c-12.148-2.514-23.206-9.305-30.76-21.241
c-5.276-8.391-7.649-18.15-7.435-28.684c0.432-20.613,15.759-38.37,33.463-45.043c2.173-0.801,3.036-1.331,6.077-1.594
c-1.404,0.952-3.025,2.161-5.025,3.49C93.611,63,88.712,70.446,86.645,76.187l34.372-15.319v48.066l-27.714,13.847
c3.158,4.43,12.744,11.035,20.967,11.959c13.941,1.547,22.152-4.545,22.152-4.545l-0.014-31.129l-10.81-8.786l10.824-8.784V59.131
c-5.909-0.708-13.078-2.662-17.276-3.696c-6.167-1.528-26.713-7.286-29.936-7.761c-3.244-0.478-7.222-0.329-9.637,1.809
c-2.418,2.188-3.91,6.007-2.871,9.454c0.573,1.95,1.918,3.096,2.945,4.195c0,0-1.188-0.095-3.364-1.387
c-3.859-2.325-6.821-6.907-7.176-12.535c-0.442-7.318,2.582-13.968,8.649-18.439c5.281-3.378,11.25-5.543,18.193-4.584
c10.116,1.449,23.722,7.205,35.851,10.104c4.693,1.125,8.347,1.497,11.641-0.417c1.542-1.087,4.24-3.943,2.041-7.788
c-2.575-4.436-7.534-4.328-11.731-5.129C137.346,22.212,138.165,22.212,140.865,22.474z M99.996,117.999V71.608l-13.955,6.245
c0,0-3.576,7.958-2.955,19.531c0.48,9.016,5.542,19.823,9.43,24.345L99.996,117.999z"/>
</g>
<g>
<g>
<path d="M264.396,13.138c1.104,0.087,2.844,0.643,4.145,1.792c1.39,1.336,1.708,3.392,1.226,5.247
c-0.439,1.658-0.918,2.527-2.613,3.661c-1.712,1.163-3.779,1.07-3.779,1.07v7.172l3.498,2.827l-3.498,2.827v9.778
c0,0,3.504-2.01,5.674-6.495c0,0,0.092-0.247,0.292-0.717c0.197,1.209,0.083,3.651-1.283,6.764
c-1.019,2.367-2.883,4.638-5.23,5.935c-4.147,2.293-7.259,2.511-10.589,1.817c-3.902-0.81-7.455-2.993-9.877-6.814
c-1.692-2.704-2.459-5.837-2.386-9.217c0.137-6.615,5.058-12.32,10.749-14.464c0.692-0.259,0.971-0.431,1.951-0.509
c-0.452,0.308-0.973,0.697-1.616,1.122c-1.831,1.215-3.404,3.606-4.074,5.444l11.037-4.912v15.437l-8.893,4.444
c1.006,1.425,4.088,3.54,6.728,3.84c4.476,0.495,7.106-1.459,7.106-1.459v-9.993l-3.471-2.827l3.471-2.823v-7.176
c-1.891-0.224-4.192-0.857-5.538-1.186c-1.985-0.491-8.583-2.342-9.617-2.499c-1.037-0.149-2.317-0.103-3.09,0.586
c-0.774,0.702-1.254,1.933-0.925,3.041c0.185,0.621,0.619,0.985,0.947,1.339c0,0-0.379-0.023-1.078-0.435
c-1.237-0.754-2.191-2.225-2.306-4.026c-0.142-2.354,0.833-4.487,2.778-5.924c1.695-1.086,3.612-1.786,5.844-1.473
c3.243,0.468,7.615,2.312,11.514,3.243c1.505,0.365,2.673,0.482,3.735-0.132c0.494-0.35,1.363-1.269,0.65-2.5
c-0.826-1.422-2.416-1.387-3.766-1.647C263.274,13.057,263.533,13.057,264.396,13.138z M251.272,43.819V28.92l-4.479,2.003
c0,0-1.146,2.553-0.947,6.268c0.159,2.902,1.782,6.363,3.025,7.818L251.272,43.819z"/>
</g>
<g>
<path d="M307.204,28.187c0,0-3.373,2.064-5.655,3.409c-2.271,1.344-5.321,2.842-5.321,2.842V48.66l-2.035,1.621l0.272,0.329
l1.984-1.608l6.218,5.62l10.811-8.561l-0.261-0.312l-5.971,4.692l-4.915-4.601v-1.714l9.873-7.251L307.204,28.187z
M307.348,39.936l-5.017,3.668V31.396L307.348,39.936z"/>
</g>
<g>
<path d="M278.875,59.974c1.416,0.348,3.92,0.541,6.933-0.969c3.344-1.672,5.029-5.222,5.003-8.867l0.145-5.156V33.714l2.136-1.633
l-0.25-0.319l-2.104,1.596l-4.851-5.415l-6.226,5.349V15.128l-7.774,6.009c0.338,0.227,1.442,0.424,1.481,1.98v25.451
l-3.306,2.438l0.225,0.341l1.6-1.184l4.429,4.121l6.965-5.549l-0.243-0.325l-1.639,1.302l-1.738-1.716l0.018-14.185l2.03-1.732
l3.028,3.771c0,0-0.006,9.178,0.009,12.231c-0.033,3.243-0.038,7.296-1.741,9.258C281.293,59.314,280.608,59.455,278.875,59.974z"
/>
</g>
<g>
<path d="M327.274,58.695c-2.784-0.33-3.96-2.003-3.925-3.339c0.023-0.865,0.797-2.529,2.489-2.765
c1.688-0.216,3.421,0.568,4.884,2.281l6.433-7.112l-0.307-0.28l-1.728,1.936c-1.758-1.994-4.249-3.25-6.725-3.617V24.126
l16.71,30.454c0,0,0.159,0.341,0.849,0.341c0.589,0.017,0.448-0.48,0.448-0.48l-0.003-30.638c1.362-0.051,3.43-0.805,4.438-1.832
c3.22-3.31,1.906-6.916,1.549-7.27c-0.194,1.586-1.398,3.165-3.425,3.169c-2.66,0.012-4.283-1.943-4.283-1.943l-6.423,7.319
l0.306,0.284l1.837-2.099c2.256,2.072,3.898,2.264,5.597,2.372v17.784l-12.403-22.53c-1.124-1.856-2.823-3.496-5.506-3.515
c-3.084-0.012-5.286,2.697-5.553,5.024c-0.298,2.653,0.041,3.256,0.041,3.256s0.448-2.946,2.268-2.907
c1.631,0.019,2.485,1.522,3.144,2.651v6.524c-1.693,0.126-6.073,0.309-6.35,4.876c-0.015,1.699,1.042,3.481,1.962,4.082
c1.186,0.784,2.11,0.766,2.11,0.766s-1.417-0.763-0.996-2.258c0.382-1.335,3.174-1.548,3.274-0.992v9.203
c-1.348-0.017-5.64,0.137-7.573,3.821c-1.172,2.215-1.1,4.705,0.146,6.464C321.573,57.484,323.667,59.314,327.274,58.695z"/>
</g>
<g>
<path d="M362.58,28.187c0,0-3.385,2.064-5.66,3.409c-2.282,1.344-5.325,2.842-5.325,2.842V48.66l-2.031,1.621l0.266,0.329
l1.99-1.608l6.213,5.62l10.818-8.561l-0.257-0.312l-5.978,4.692l-4.907-4.601v-1.714l9.866-7.251L362.58,28.187z M362.719,39.936
l-5.011,3.668V31.396L362.719,39.936z"/>
</g>
<g>
<path d="M377.687,54.733l-5.297-4.407l-2.331,1.689l-0.231-0.325l2.362-1.73V37.645c0.116-5.069-4.642-3.808-4.384-9.194
c0.115-2.364,2.401-4.154,3.562-4.734c1.228-0.631,2.572-0.631,2.572-0.631s-2.177,1.356-1.647,3.308
c0.812,3.008,5.952,3.272,6.044,7.273v13.976l3.801,3.039l1.001-0.783V34.77l-2.05-2.026l5.271-4.653l4.816,4.263l-1.838,1.981
v13.404l4.504,3.713l0.804-0.499V34.824l-2.058-1.923l5.291-4.827l4.934,4.071l1.976-1.736l0.264,0.304l-4.439,3.897v13.142
l-11.353,7.011l-5.814-4.598L377.687,54.733z"/>
</g>
<g>
<path d="M609.974,28.187c0,0-3.385,2.064-5.653,3.409c-2.271,1.344-5.323,2.842-5.323,2.842V48.66l-2.04,1.621l0.271,0.329
l1.991-1.608l6.214,5.62l10.815-8.561l-0.256-0.312l-5.975,4.692l-4.915-4.601v-1.714l9.87-7.251L609.974,28.187z M610.122,39.936
l-5.02,3.668V31.396L610.122,39.936z"/>
</g>
<g>
<polygon points="559.22,34.144 559.485,34.447 561.521,32.704 564.536,36.121 564.536,47.867 563.083,49.205 567.785,54.535
572.613,49.77 570.631,47.71 570.631,33.497 571.827,32.536 575.18,36.44 575.18,48.155 573.923,49.41 578.358,54.404
583.091,49.654 581.354,47.827 581.308,33.552 582.589,32.522 586.07,36.355 586.07,48.008 584.927,49.155 589.829,54.491
596.401,48.418 596.121,48.118 594.522,49.59 592.073,46.872 592.073,33.569 594.436,31.78 594.187,31.458 591.825,33.248
587.345,28.233 580.956,33.292 576.476,28.422 570.302,33.243 565.778,28.438 "/>
</g>
<g>
<polygon points="545.834,33.78 546.104,34.08 547.822,32.597 550.521,35.784 550.521,49.215 548.618,50.875 548.885,51.181
550.875,49.48 555.219,54.491 561.487,48.888 561.22,48.582 559.375,50.209 556.778,47.222 556.778,34.084 558.972,32.188
558.703,31.88 556.622,33.666 552.051,28.345 "/>
</g>
<g>
<polygon points="547.65,22.656 552.369,18.331 556.207,22.587 551.46,26.896 "/>
</g>
<g>
<path d="M541.291,13.138c1.113,0.087,2.844,0.643,4.153,1.792c1.392,1.336,1.709,3.392,1.217,5.247
c-0.428,1.658-0.919,2.527-2.607,3.661c-1.713,1.163-3.776,1.07-3.776,1.07v7.172l3.499,2.827l-3.499,2.827v9.778
c0,0,3.505-2.01,5.669-6.495c0,0,0.101-0.247,0.296-0.717c0.186,1.209,0.085,3.651-1.277,6.764
c-1.027,2.367-2.893,4.638-5.234,5.935c-4.149,2.293-7.263,2.511-10.595,1.817c-3.905-0.81-7.454-2.993-9.871-6.814
c-1.701-2.704-2.458-5.837-2.393-9.217c0.139-6.615,5.069-12.32,10.759-14.464c0.682-0.259,0.968-0.431,1.947-0.509
c-0.459,0.308-0.967,0.697-1.624,1.122c-1.825,1.215-3.398,3.606-4.064,5.444l11.036-4.912v15.437l-8.902,4.444
c1.011,1.425,4.092,3.54,6.728,3.84c4.485,0.495,7.121-1.459,7.121-1.459v-9.993l-3.478-2.827l3.478-2.823v-7.176
c-1.895-0.224-4.197-0.857-5.548-1.186c-1.984-0.491-8.578-2.342-9.612-2.499c-1.046-0.149-2.32-0.103-3.093,0.586
c-0.778,0.702-1.254,1.933-0.924,3.041c0.186,0.621,0.621,0.985,0.935,1.339c0,0-0.375-0.023-1.058-0.435
c-1.253-0.754-2.212-2.225-2.314-4.026c-0.15-2.354,0.828-4.487,2.776-5.924c1.695-1.086,3.612-1.786,5.843-1.473
c3.245,0.468,7.614,2.312,11.513,3.243c1.513,0.365,2.681,0.482,3.731-0.132c0.5-0.35,1.363-1.269,0.656-2.5
c-0.829-1.422-2.415-1.387-3.763-1.647C540.171,13.057,540.429,13.057,541.291,13.138z M528.174,43.819V28.92l-4.482,2.003
c0,0-1.143,2.553-0.945,6.268c0.157,2.902,1.781,6.363,3.025,7.818L528.174,43.819z"/>
</g>
<g>
<path d="M622.005,56.467c-0.725,0.211-3.821-0.552-4.575-3.781c-0.729-3.128,1.464-5.264,4.749-8.619l-3.894-3.554v-6.796
c0,0,2.866-1.432,5.105-2.827c2.231-1.41,4.536-2.92,4.536-2.92s1.675,2.101,3.56,1.945c2.967-0.261,2.823-2.596,2.738-3.152
c0.509,0.907,1.853,3.587-3.346,9.586l4.235,3.415v8.822c0,0-4.91,2.56-9.569,5.967c0,0-2.601-3.26-4.853-1.701
C619.159,53.905,619.866,55.677,622.005,56.467z M618.344,49.654c0,0,2.231-3.691,6.074-2.892c3.688,0.751,4.964,4.65,4.964,4.65
v-8.962l-2.564-2.232C623.993,43.06,618.972,47.167,618.344,49.654z M624.037,30.947v7.049l2.361,2.06
c0,0,5.103-4.094,6.956-7.878c0,0-2.299,3.116-5.378,2.157C625.386,33.542,624.037,30.947,624.037,30.947z"/>
</g>
<g>
<path d="M463.025,34.058l1.91-1.757l0.272,0.308l-1.859,1.726v14.029c0,0-3.521,1.884-5.983,3.26
c-2.455,1.401-5.102,3.023-5.102,3.023l-6.465-5.46l-1.709,1.505l-0.283-0.321l1.805-1.562V33.718h0.019
c0,0,3.052-1.376,5.635-2.827c2.303-1.298,4.879-2.813,4.879-2.813L463.025,34.058z M451.752,46.418l5.469,4.966V36.222
l-5.469-5.052V46.418z"/>
</g>
<g>
<path d="M475.748,32.644l4.12-4.207c0,0,0.565,0.493,1.101,0.76c0.292,0.143,1.546,0.78,2.685,0.161
c0.623-0.343,0.702-0.435,1.386-1.072c0.138,3.272-1.43,5.563-3.39,6.512c-0.801,0.394-3.134,1.143-5.584-1.848v15.11l2.603,2.291
l2.171-1.794l0.249,0.312l-6.805,5.684l-5.173-4.723l-1.856,1.764l-0.314-0.319l2.836-2.565l0.022-13.029l-2.177-2.884
l-1.865,1.642l-0.271-0.294l6.587-5.934L475.748,32.644z"/>
</g>
<g>
<path d="M493.101,38.941l7.599-11.066c0,0,1.001,1.185,2.752,1.638c2.366,0.623,4.446-1.671,4.446-1.671
c-0.398,2.954-1.903,6.323-4.995,6.83c-2.731,0.453-5.267-1.667-5.267-1.667l-0.487,0.761l10.548,15.94l2.108-1.847l0.286,0.304
l-7.251,6.328L493.101,38.941z"/>
</g>
<g>
<path d="M486.817,24.163c0-2.386-0.977-3.864-2.259-3.766l8.289-5.811v32.969l0,0l2.19,2.308l1.654-1.438l0.271,0.312
l-6.681,5.837l-4.536-4.258l-1.797,1.596l-0.296-0.313l3.164-2.754V24.163z"/>
</g>
<g>
<path d="M417.487,23.613c0-2.215-0.904-3.471-2.371-3.497c-2.104-0.043-2.61,2.929-2.61,2.929s-0.387-2.291,1.539-4.375
c1.076-1.169,3.088-2.79,6.229-2.037c3.251,0.787,4.182,3.302,4.182,5.533v30.677c0,0,1.224,0.151,2.069,0.325
c0.964,0.216,1.894,0.476,1.894,0.476V16.65h0.399v4.99l6.669-5.362l4.873,4.336l2.279-1.977l0.258,0.314l-2.378,2.047v28.52
c-0.12,1.874-0.415,3.768-2.17,4.844c-3.92,2.33-8.652-0.354-12.864-0.965c-3.132-0.463-8.037-1.055-9.254,1.816
c-0.418,0.942-0.387,2.405,1.037,3.34c2.839,1.911,15.508-3.189,19.865-1.16c3.958,1.848,3.941,4.769,3.332,6.757
c-1.032,3.767-5.778,4.419-5.778,4.419s2.32-1.337,1.658-3.568c-0.336-1.139-1.105-1.449-3.592-1.172
c-5.431,0.612-11.92,3.245-16.29,1.422c-2.241-0.94-3.833-3.753-3.681-6.506c0.109-3.979,4.705-5.547,4.705-5.547V38.5
c-0.137-0.583-2.586-0.424-3.122,0.65c-0.811,1.629,1.011,2.393,1.011,2.393s-1.504,0.209-2.779-1.255
c-0.618-0.709-1.907-3.211-0.231-5.526c1.382-1.904,3.03-2.239,5.122-2.476V23.613z M428.817,53.744c0,0,1.944,0.52,3.352-0.638
c1.568-1.293,1.401-3.102,1.401-3.102V38.576c0,0-0.907-1.158-2.354-1.158c-1.438,0-2.399,1.194-2.399,1.194V53.744z
M433.57,23.758l-3.203-2.817l-1.55,1.225v10.588c0,0,0.962,1.204,2.399,1.204c1.446,0,2.354-1.159,2.354-1.159V23.758z
M433.57,33.431c0,0-0.911,1.041-2.362,1.041c-1.435,0-2.391-1.041-2.391-1.041v4.508c0,0,0.956-1.05,2.391-1.05
c1.451,0,2.362,0.998,2.362,0.998V33.431z"/>
</g>
</g>
<g>
<path d="M326.983,117.85c0,5.348-0.836,10.25-2.507,14.707c-1.671,4.457-4.011,8.338-7.019,11.643
c-3.008,3.306-6.648,5.96-10.918,7.966c-4.271,2.005-9.007,3.231-14.205,3.676c-1.709,0.15-3.064,0.261-4.066,0.334
c-1.003,0.075-1.727,0.111-2.173,0.111H243.09v-17.157h7.464V95.345h-7.464V78.188h42.113c3.713,0,7.019,0.242,9.916,0.724
c2.896,0.484,5.719,1.281,8.467,2.396c7.501,2.971,13.275,7.614,17.324,13.926C324.958,101.547,326.983,109.086,326.983,117.85z
M297.459,116.958c0-4.233-0.465-7.78-1.393-10.64c-0.93-2.858-2.47-5.365-4.624-7.521c-1.337-1.41-2.896-2.357-4.679-2.841
c-1.782-0.482-4.233-0.686-7.353-0.613v43.785c3.045,0.075,5.421-0.148,7.13-0.668c1.708-0.519,3.342-1.485,4.902-2.897
C295.454,131.999,297.459,125.798,297.459,116.958z"/>
<path d="M391.6,135.007h-35.094c0.891,6.016,3.972,9.024,9.247,9.024c1.708,0,3.212-0.352,4.512-1.058
c1.298-0.705,2.58-1.912,3.844-3.621H391.6c-1.041,2.601-2.005,4.643-2.896,6.128c-0.891,1.486-1.969,2.86-3.231,4.122
c-2.451,2.451-5.571,4.364-9.358,5.738c-3.788,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.976-2.413-23.174-7.242
c-2.896-2.674-5.163-5.849-6.796-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.742-7.816,2.229-11.197
c1.485-3.379,3.583-6.295,6.294-8.746c2.71-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.854-2.005,12.311-2.005
c3.788,0,7.242,0.501,10.361,1.504c3.119,1.003,6.089,2.582,8.913,4.735c1.633,1.189,3.137,2.637,4.512,4.345
c1.374,1.709,2.543,3.584,3.51,5.626c0.964,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.649,4.551,0.501,6.852L391.6,135.007z
M369.652,125.426c0-6.164-2.192-9.247-6.573-9.247c-2.972,0-4.977,1.412-6.016,4.233c-0.223,0.596-0.373,1.245-0.446,1.95
c-0.075,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
<path d="M448.865,117.293l-18.049,38.994h-18.939l-15.709-38.994h-3.676v-14.484h32.866v14.484h-3.676l6.238,16.154l7.02-16.154
h-4.123v-14.484h20.834v14.484H448.865z"/>
<path d="M512.48,135.007h-35.096c0.893,6.016,3.973,9.024,9.248,9.024c1.707,0,3.211-0.352,4.512-1.058
c1.299-0.705,2.58-1.912,3.844-3.621h17.492c-1.041,2.601-2.006,4.643-2.898,6.128c-0.891,1.486-1.969,2.86-3.23,4.122
c-2.451,2.451-5.57,4.364-9.357,5.738c-3.789,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.975-2.413-23.174-7.242
c-2.896-2.674-5.162-5.849-6.795-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.74-7.816,2.227-11.197
c1.486-3.379,3.584-6.295,6.295-8.746c2.711-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.855-2.005,12.311-2.005
c3.789,0,7.242,0.501,10.361,1.504c3.119,1.003,6.09,2.582,8.914,4.735c1.633,1.189,3.137,2.637,4.512,4.345
c1.373,1.709,2.543,3.584,3.51,5.626c0.963,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.648,4.551,0.502,6.852L512.48,135.007z
M490.531,125.426c0-6.164-2.191-9.247-6.572-9.247c-2.973,0-4.977,1.412-6.018,4.233c-0.223,0.596-0.371,1.245-0.445,1.95
c-0.074,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
<path d="M516.379,156.287v-14.483h4.457V92.671h-4.457V78.188h29.635v63.616h4.568v14.483H516.379z"/>
<path d="M618.654,129.771c0,4.085-0.779,7.818-2.34,11.197c-1.561,3.38-3.77,6.294-6.629,8.746s-6.258,4.345-10.193,5.682
c-3.938,1.337-8.244,2.005-12.924,2.005s-8.988-0.707-12.924-2.117c-3.938-1.41-7.354-3.342-10.25-5.793
c-2.896-2.451-5.164-5.365-6.797-8.746c-1.635-3.379-2.451-7.074-2.451-11.085c0-4.011,0.816-7.724,2.451-11.141
c1.633-3.415,3.9-6.368,6.797-8.857c2.896-2.488,6.312-4.438,10.25-5.849c3.936-1.41,8.205-2.117,12.812-2.117
c4.752,0,9.115,0.688,13.09,2.061c3.973,1.375,7.371,3.287,10.195,5.738c2.82,2.451,5.012,5.403,6.572,8.857
S618.654,125.612,618.654,129.771z M593.475,129.994c0-4.159-0.297-7.056-0.891-8.69c-0.596-1.56-1.449-2.803-2.562-3.732
c-1.113-0.928-2.377-1.393-3.787-1.393c-2.229,0-3.938,1.041-5.125,3.12c-1.189,2.08-1.783,5.125-1.783,9.136
c0,4.456,0.613,7.874,1.838,10.25c1.227,2.378,2.99,3.565,5.293,3.565c1.262,0,2.469-0.463,3.621-1.393
c1.15-0.928,2.021-2.134,2.617-3.621C593.215,135.75,593.475,133.336,593.475,129.994z"/>
<path d="M691.406,129.548c0,4.011-0.613,7.743-1.84,11.197c-1.225,3.454-2.99,6.406-5.291,8.857
c-2.229,2.451-4.83,4.364-7.799,5.738c-2.973,1.373-5.904,2.061-8.803,2.061c-2.377,0-4.809-0.428-7.297-1.281
s-5.441-2.321-8.857-4.401v10.138h6.018v14.484h-35.652v-14.484h4.457v-44.564h-4.457v-14.484h29.635v5.014
c3.268-2.228,6.201-3.805,8.803-4.735c2.598-0.928,5.309-1.393,8.133-1.393c5.496,0,10.174,1.821,14.037,5.459
c2.748,2.601,4.92,5.905,6.518,9.916C690.605,121.081,691.406,125.241,691.406,129.548z M666.227,129.994
c0-1.931-0.074-3.657-0.223-5.181c-0.15-1.521-0.373-2.691-0.668-3.509c-0.596-1.56-1.469-2.803-2.619-3.732
c-1.152-0.928-2.471-1.393-3.955-1.393c-4.828,0-7.242,4.161-7.242,12.478c0,9.062,2.414,13.592,7.242,13.592
c1.484,0,2.822-0.463,4.012-1.393c1.186-0.928,2.078-2.134,2.674-3.621C665.965,135.75,666.227,133.336,666.227,129.994z"/>
<path d="M754.799,135.007h-35.096c0.893,6.016,3.973,9.024,9.248,9.024c1.707,0,3.211-0.352,4.512-1.058
c1.299-0.705,2.58-1.912,3.844-3.621h17.492c-1.041,2.601-2.006,4.643-2.898,6.128c-0.891,1.486-1.969,2.86-3.23,4.122
c-2.451,2.451-5.57,4.364-9.357,5.738c-3.789,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.975-2.413-23.174-7.242
c-2.896-2.674-5.162-5.849-6.795-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.74-7.816,2.227-11.197
c1.486-3.379,3.584-6.295,6.295-8.746c2.711-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.855-2.005,12.311-2.005
c3.789,0,7.242,0.501,10.361,1.504c3.119,1.003,6.09,2.582,8.914,4.735c1.633,1.189,3.137,2.637,4.512,4.345
c1.373,1.709,2.543,3.584,3.51,5.626c0.963,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.648,4.551,0.502,6.852L754.799,135.007z
M732.85,125.426c0-6.164-2.191-9.247-6.572-9.247c-2.973,0-4.977,1.412-6.018,4.233c-0.223,0.596-0.371,1.245-0.445,1.95
c-0.074,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
<path d="M802.258,120.356c-1.635,0.111-3.232,0.354-4.791,0.724c-3.418,0.818-5.906,2.526-7.465,5.125
c-0.521,0.966-0.875,2.155-1.059,3.565c-0.186,1.412-0.279,3.64-0.279,6.685v5.348h6.018v14.483h-35.652v-14.483h4.457v-24.51
h-4.457v-14.484h29.635v8.245c3.121-3.342,6.146-5.811,9.08-7.409c2.934-1.597,6.184-2.284,9.75-2.061l1.893,0.111v18.494
C806.268,120.189,803.891,120.245,802.258,120.356z"/>
<path d="M862.309,139.241c0,2.601-0.521,4.996-1.561,7.186c-1.041,2.191-2.488,4.105-4.346,5.738
c-1.857,1.634-4.104,2.916-6.74,3.844c-2.637,0.928-5.514,1.393-8.633,1.393c-1.412,0-2.73-0.056-3.955-0.167
c-1.227-0.111-2.508-0.316-3.844-0.612c-1.338-0.298-2.77-0.686-4.291-1.17c-1.521-0.482-3.285-1.095-5.291-1.838v2.674h-12.033
v-17.826h11.922c0.742,2.378,1.672,4.161,2.785,5.348c1.113,1.189,2.822,1.783,5.125,1.783c1.707,0,3.064-0.352,4.066-1.059
c1.002-0.705,1.504-1.727,1.504-3.064c0-1.855-1.189-3.304-3.564-4.345l-11.588-4.902c-2.971-1.262-5.219-3.1-6.74-5.515
c-1.523-2.413-2.283-5.031-2.283-7.854c0-2.301,0.518-4.493,1.559-6.573c1.041-2.079,2.488-3.899,4.346-5.459
c1.855-1.56,4.029-2.803,6.518-3.732c2.488-0.928,5.143-1.393,7.967-1.393c2.375,0,4.623,0.261,6.74,0.78
c2.115,0.521,4.473,1.375,7.074,2.562v-2.229h12.143v17.158h-11.141c-0.52-2.674-1.318-4.716-2.395-6.128
c-1.078-1.41-2.619-2.117-4.623-2.117c-1.488,0-2.713,0.39-3.678,1.17c-0.967,0.78-1.447,1.765-1.447,2.952
c0,2.081,1.373,3.677,4.121,4.791l11.365,4.456C858.668,127.915,862.309,132.631,862.309,139.241z"/>
</g>
</svg>
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/doc/header.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
/branches/v3/impl/src/web/js/bootstrap-toggle-master/doc/nyt.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
/branches/v3/impl/src/web/js/bootstrap-toggle-master/bower.json
New file
0,0 → 1,32
{
"name": "bootstrap-toggle",
"description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
"version": "2.2.1",
"keywords": [
"bootstrap",
"toggle",
"bootstrap-toggle",
"switch",
"bootstrap-switch"
],
"homepage": "http://www.bootstraptoggle.com",
"repository": {
"type": "git",
"url": "https://github.com/minhur/bootstrap-toggle.git"
},
"license": "MIT",
"authors": [
"Min Hur <min.hur@gmail.com>"
],
"main": [
"./js/bootstrap-toggle.min.js",
"./css/bootstrap-toggle.min.css"
],
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/css/bootstrap-toggle.css
New file
0,0 → 1,83
/*! ========================================================================
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
 
 
.checkbox label .toggle,
.checkbox-inline .toggle {
margin-left: -20px;
margin-right: 5px;
}
 
.toggle {
position: relative;
overflow: hidden;
}
.toggle input[type="checkbox"] {
display: none;
}
.toggle-group {
position: absolute;
width: 200%;
top: 0;
bottom: 0;
left: 0;
transition: left 0.35s;
-webkit-transition: left 0.35s;
-moz-user-select: none;
-webkit-user-select: none;
}
.toggle.off .toggle-group {
left: -100%;
}
.toggle-on {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 50%;
margin: 0;
border: 0;
border-radius: 0;
}
.toggle-off {
position: absolute;
top: 0;
bottom: 0;
left: 50%;
right: 0;
margin: 0;
border: 0;
border-radius: 0;
}
.toggle-handle {
position: relative;
margin: 0 auto;
padding-top: 0px;
padding-bottom: 0px;
height: 100%;
width: 0px;
border-width: 0 1px;
}
 
.toggle.btn { min-width: 59px; min-height: 34px; }
.toggle-on.btn { padding-right: 24px; }
.toggle-off.btn { padding-left: 24px; }
 
.toggle.btn-lg { min-width: 79px; min-height: 45px; }
.toggle-on.btn-lg { padding-right: 31px; }
.toggle-off.btn-lg { padding-left: 31px; }
.toggle-handle.btn-lg { width: 40px; }
 
.toggle.btn-sm { min-width: 50px; min-height: 30px;}
.toggle-on.btn-sm { padding-right: 20px; }
.toggle-off.btn-sm { padding-left: 20px; }
 
.toggle.btn-xs { min-width: 35px; min-height: 22px;}
.toggle-on.btn-xs { padding-right: 12px; }
.toggle-off.btn-xs { padding-left: 12px; }
 
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/css/bootstrap-toggle.min.css
New file
0,0 → 1,28
/*! ========================================================================
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}
.toggle{position:relative;overflow:hidden}
.toggle input[type=checkbox]{display:none}
.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
.toggle.off .toggle-group{left:-100%}
.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
.toggle.btn{min-width:59px;min-height:34px}
.toggle-on.btn{padding-right:24px}
.toggle-off.btn{padding-left:24px}
.toggle.btn-lg{min-width:79px;min-height:45px}
.toggle-on.btn-lg{padding-right:31px}
.toggle-off.btn-lg{padding-left:31px}
.toggle-handle.btn-lg{width:40px}
.toggle.btn-sm{min-width:50px;min-height:30px}
.toggle-on.btn-sm{padding-right:20px}
.toggle-off.btn-sm{padding-left:20px}
.toggle.btn-xs{min-width:35px;min-height:22px}
.toggle-on.btn-xs{padding-right:12px}
.toggle-off.btn-xs{padding-left:12px}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/css/bootstrap2-toggle.css
New file
0,0 → 1,85
/*! ========================================================================
* Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
 
 
label.checkbox .toggle,
label.checkbox.inline .toggle {
margin-left: -20px;
margin-right: 5px;
}
.toggle {
min-width: 40px;
height: 20px;
position: relative;
overflow: hidden;
}
.toggle input[type="checkbox"] {
display: none;
}
.toggle-group {
position: absolute;
width: 200%;
top: 0;
bottom: 0;
left: 0;
transition: left 0.35s;
-webkit-transition: left 0.35s;
-moz-user-select: none;
-webkit-user-select: none;
}
.toggle.off .toggle-group {
left: -100%;
}
.toggle-on {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 50%;
margin: 0;
border: 0;
border-radius: 0;
}
.toggle-off {
position: absolute;
top: 0;
bottom: 0;
left: 50%;
right: 0;
margin: 0;
border: 0;
border-radius: 0;
}
.toggle-handle {
position: relative;
margin: 0 auto;
padding-top: 0px;
padding-bottom: 0px;
height: 100%;
width: 0px;
border-width: 0 1px;
}
.toggle-handle.btn-mini {
top: -1px;
}
.toggle.btn { min-width: 30px; }
.toggle-on.btn { padding-right: 24px; }
.toggle-off.btn { padding-left: 24px; }
 
.toggle.btn-large { min-width: 40px; }
.toggle-on.btn-large { padding-right: 35px; }
.toggle-off.btn-large { padding-left: 35px; }
 
.toggle.btn-small { min-width: 25px; }
.toggle-on.btn-small { padding-right: 20px; }
.toggle-off.btn-small { padding-left: 20px; }
 
.toggle.btn-mini { min-width: 20px; }
.toggle-on.btn-mini { padding-right: 12px; }
.toggle-off.btn-mini { padding-left: 12px; }
 
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/css/bootstrap2-toggle.min.css
New file
0,0 → 1,28
/*! ========================================================================
* Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
label.checkbox .toggle,label.checkbox.inline .toggle{margin-left:-20px;margin-right:5px}
.toggle{min-width:40px;height:20px;position:relative;overflow:hidden}
.toggle input[type=checkbox]{display:none}
.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
.toggle.off .toggle-group{left:-100%}
.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
.toggle-handle.btn-mini{top:-1px}
.toggle.btn{min-width:30px}
.toggle-on.btn{padding-right:24px}
.toggle-off.btn{padding-left:24px}
.toggle.btn-large{min-width:40px}
.toggle-on.btn-large{padding-right:35px}
.toggle-off.btn-large{padding-left:35px}
.toggle.btn-small{min-width:25px}
.toggle-on.btn-small{padding-right:20px}
.toggle-off.btn-small{padding-left:20px}
.toggle.btn-mini{min-width:20px}
.toggle-on.btn-mini{padding-right:12px}
.toggle-off.btn-mini{padding-left:12px}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/Gruntfile.js
New file
0,0 → 1,37
module.exports = function(grunt) {
'use strict';
 
grunt.initConfig({
clean: ['dist'],
uglify: {
options: {
preserveComments: 'some',
sourceMap: true
},
build: {
expand: true,
cwd: 'js',
src: ['**/*.js', ['!**/*.min.js']],
dest: 'js',
ext: '.min.js',
}
},
cssmin: {
options: {
keepBreaks: true
},
build: {
expand: true,
cwd: 'css',
src: ['**/*.css', ['!**/*.min.css']],
dest: 'css',
ext: '.min.css',
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.registerTask('default', ['clean', 'uglify', 'cssmin']);
 
};
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/index.html
New file
0,0 → 1,449
<!DOCTYPE html>
<html>
<head>
<script> if (window.location.href.indexOf('minhur.github.io') > 0) window.location.replace('http://www.bootstraptoggle.com') </script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="msvalidate.01" content="3638AEFC99423BA5CB586805286C39AA" />
<meta name="description" content="Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles." />
<meta name="keywords" content="bootstrap, toggle, switch, bootstrap-toggle, bootstrap-switch" />
<meta name="author" content="metatags generator">
<meta name="robots" content="index, follow">
<meta name="revisit-after" content="1 month">
<title>Bootstrap Toggle</title>
<link rel="canonical" href="http://www.bootstraptoggle.com">
<link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css" rel="stylesheet" >
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<link href="css/bootstrap-toggle.css" rel="stylesheet">
<link href="doc/stylesheet.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>
<header>
<nav class="navbar navbar-default container" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Bootstrap Toggle</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="#usage">Usage</a></li>
<li><a href="#api">API</a></li>
<li><a href="#events">Events</a></li>
<li><a href="#demos">Demos</a></li>
<li><a href="https://github.com/minhur/bootstrap-toggle/issues">Issues</a></li>
<li><a href="https://github.com/minhur/bootstrap-toggle/archive/master.zip">Download</a></li>
<li>
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch" allowtransparency="true" frameborder="0" scrolling="0" width="62" height="20"></iframe>
</li>
<li>
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork" allowtransparency="true" frameborder="0" scrolling="0" width="53" height="20"></iframe>
</li>
</ul>
</div>
</div>
</nav>
<div class="mast-head">
<div class="container">
<h1>Bootstrap Toggle</h1>
<p>Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles</p>
<div class="mast-links">
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="150" height="30"></iframe>
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="150" height="30"></iframe>
</div>
</div>
</div>
</header>
 
<main>
<div class="container">
<h2>Getting Started</h2>
<hr>
<h3>Installation</h3>
<p>You can <a href="https://github.com/minhur/bootstrap-toggle/archive/master.zip">download</a> the latest version of Bootstrap Toggle or use CDN to load the library.</p>
<p><span class="label label-warning">Warning</span> If you are using Bootstrap v2.3.2, use <code>bootstrap2-toggle.min.js</code> and <code>bootstrap2-toggle.min.css</code> instead.</p>
<code class="highlight">&lt;link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet"&gt;
&lt;script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"&gt;&lt;/script&gt;</code>
 
<h3>Bower Install</h3>
<p></p>
<code class="highlight bash">bower install bootstrap-toggle</code>
</div>
<div id="usage" class="container">
<h2>Usage</h2>
<hr>
 
<h3>Basic example</h3>
<p>Simply add <code>data-toggle="toggle"</code> to convert checkboxes into toggles.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle">
</div>
 
<h3>Stacked checkboxes</h3>
<p>Refer to Bootstrap <a href="http://getbootstrap.com/css/#forms-controls" target="_blank">Form Controls</a> documentation to create stacked checkboxes. Simply add <code>data-toggle="toggle"</code> to convert checkboxes into toggles.</p>
<div class="example">
<div class="checkbox">
<label>
<input type="checkbox" data-toggle="toggle">
Option one is enabled
</label>
</div>
<div class="checkbox disabled">
<label>
<input type="checkbox" disabled data-toggle="toggle">
Option two is disabled
</label>
</div>
</div>
 
<h3>Inline Checkboxes</h3>
<p>Refer to Bootstrap <a href="http://getbootstrap.com/css/#forms-controls" target="_blank">Form Controls</a> documentation to create inline checkboxes. Simply add <code>data-toggle="toggle"</code> to a convert checkboxes into toggles.</p>
<div class="example">
<label class="checkbox-inline">
<input type="checkbox" checked data-toggle="toggle"> First
</label>
<label class="checkbox-inline">
<input type="checkbox" data-toggle="toggle"> Second
</label>
<label class="checkbox-inline">
<input type="checkbox" data-toggle="toggle"> Third
</label>
</div>
</div>
 
<div id="api" class="container">
<h2>API</h2>
<hr>
 
<h3>Initialize by JavaScript</h3>
<p>Initialize toggles with id <code>toggle-one</code> with a single line of JavaScript.</p>
<div class="example">
<input id="toggle-one" checked type="checkbox">
<script>
$(function() {
$('#toggle-one').bootstrapToggle();
})
</script>
</div>
 
<h3>Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-on="Enabled"</code>.</p>
<div class="example">
<input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled">
<input type="checkbox" id="toggle-two">
<script>
$(function() {
$('#toggle-two').bootstrapToggle({
on: 'Enabled',
off: 'Disabled'
});
})
</script>
</div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>on</td>
<td>string | html</td>
<td><code>"On"</code></td>
<td>Text of the <em>on</em> toggle</td>
</tr>
<tr>
<td>off</td>
<td>string | html</td>
<td><code>"Off"</code></td>
<td>Text of the <em>off</em> toggle</td>
</tr>
<tr>
<td>size</td>
<td>string</td>
<td><code>"normal"</code></td>
<td>
Size of the toggle. Possible values are:<code>large</code>,<code>normal</code>,<code>small</code>,<code>mini</code><br>
Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-sizes" target="_blank">Button Sizes</a> documentation for more information.
</td>
</tr>
<tr>
<td>onstyle</td>
<td>string</td>
<td><code>"primary"</code></td>
<td>
Style of the <em>on</em> toggle.<br>Possible values are:<code>default</code>,<code>primary</code>,<code>success</code>,<code>info</code>,<code>warning</code>,<code>danger</code><br>
Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.
</td>
</tr>
<tr>
<td>offstyle</td>
<td>string</td>
<td><code>"default"</code></td>
<td>
Style of the <em>off</em> toggle.<br>Possible values are:<code>default</code>,<code>primary</code>,<code>success</code>,<code>info</code>,<code>warning</code>,<code>danger</code><br>
Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.
</td>
</tr>
<tr>
<td>style</td>
<td>string</td>
<td></td>
<td>
Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
</td>
</tr>
<tr>
<td>width</td>
<td>integer</td>
<td><em>null</em></td>
<td>
Sets the width of the toggle. if set to <em>null</em>, width will be calculated.
</td>
</tr>
<tr>
<td>height</td>
<td>integer</td>
<td><em>null</em></td>
<td>
Sets the height of the toggle. if set to <em>null</em>, height will be calculated.
</td>
</tr>
</tbody>
</table>
</div>
 
<h3>Methods</h3>
<p>Methods can be used to control toggles directly.</p>
<div class="example">
<input id="toggle-demo" type="checkbox" data-toggle="toggle">
</div>
<div class="table-responsive">
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>Method</th>
<th>Example</th>
<th>Description</th>
<th>Demo</th>
</tr>
</thead>
<tbody>
<tr>
<td><em>initialize</em></td>
<td><code>$('#toggle-demo').bootstrapToggle()</code></td>
<td>Initializes the toggle plugin with options</td>
<td><button class="btn btn-default btn-xs" onclick="demo.init('#toggle-demo')">Initialize</button></td>
</tr>
<tr>
<td>destroy</td>
<td><code>$('#toggle-demo').bootstrapToggle('destroy')</code></td>
<td>Destroys the toggle</td>
<td><button class="btn btn-default btn-xs" onclick="demo.destroy('#toggle-demo')">Destroy</button></td>
</tr>
<tr>
<td>on</td>
<td><code>$('#toggle-demo').bootstrapToggle('on')</code></td>
<td>Sets the toggle to 'On' state</td>
<td><button class="btn btn-default btn-xs" onclick="demo.on('#toggle-demo')">On</button></td>
</tr>
<tr>
<td>off</td>
<td><code>$('#toggle-demo').bootstrapToggle('off')</code></td>
<td>Sets the toggle to 'Off' state</td>
<td><button class="btn btn-default btn-xs" onclick="demo.off('#toggle-demo')">Off</button></td>
</tr>
<tr>
<td>toggle</td>
<td><code>$('#toggle-demo').bootstrapToggle('toggle')</code></td>
<td>Toggles the state of the toggle</td>
<td><button class="btn btn-default btn-xs" onclick="demo.toggle('#toggle-demo')">Toggle</button></td>
</tr>
<tr>
<td>enable</td>
<td><code>$('#toggle-demo').bootstrapToggle('enable')</code></td>
<td>Enables the toggle</td>
<td><button class="btn btn-default btn-xs" onclick="demo.enable('#toggle-demo')">Enable</button></td>
</tr>
<tr>
<td>disable</td>
<td><code>$('#toggle-demo').bootstrapToggle('disable')</code></td>
<td>Disables the toggle</td>
<td><button class="btn btn-default btn-xs" onclick="demo.disable('#toggle-demo')">Disable</button></td>
</tr>
</tbody>
</table>
</div>
</div>
 
 
<div id="events" class="container">
<h2>Events</h2>
<hr>
 
<h3>Event Propagation</h3>
<p><span class="label label-primary">Note</span> All events are propagated to and from input element to the toggle. </p>
<p>You should listen to events from the <code>&lt;input type="checkbox"></code> directly rather than look for custom events.</p>
<div class="example">
<input id="toggle-event" type="checkbox" data-toggle="toggle">
<div id="console-event"></div>
<script>
$(function() {
$('#toggle-event').change(function() {
$('#console-event').html('Toggle: ' + $(this).prop('checked'))
})
})
</script>
</div>
 
<h3>API vs Input</h3>
<p>This also means that using the API or Input to trigger events will work both ways.</p>
<div class="example">
<input id="toggle-trigger" type="checkbox" data-toggle="toggle">
<button class="btn btn-success" onclick="toggleOn()">On by API</button>
<button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
<button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button>
<button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button>
<script>
function toggleOn() {
$('#toggle-trigger').bootstrapToggle('on')
}
function toggleOff() {
$('#toggle-trigger').bootstrapToggle('off')
}
function toggleOnByInput() {
$('#toggle-trigger').prop('checked', true).change()
}
function toggleOffByInput() {
$('#toggle-trigger').prop('checked', false).change()
}
</script>
</div>
</div>
 
<div id="demos" class="container">
<h2>Demos</h2>
<hr>
 
<h3>Sizes</h3>
<p>Bootstrap toggle is available in different sizes. Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-sizes" target="_blank">Button Sizes</a> documentation for more information.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-size="large">
<input type="checkbox" checked data-toggle="toggle" data-size="normal">
<input type="checkbox" checked data-toggle="toggle" data-size="small">
<input type="checkbox" checked data-toggle="toggle" data-size="mini">
</div>
<h3>Custom Sizes</h3>
<p>Bootstrap toggle can handle custom sizes by <code>data-width</code> and <code>data-height</code> options.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-width="100" data-height="75">
<input type="checkbox" checked data-toggle="toggle" data-height="75">
<input type="checkbox" checked data-toggle="toggle" data-width="100">
</div>
 
<h3>Colors</h3>
<p>Bootstrap Toggle supports various colors. Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="primary">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="success">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="info">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="warning">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="danger">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="default">
</div>
 
<h3>Colors Mix</h3>
<p>You can style on state as well as the off state.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="success" data-offstyle="danger">
<input type="checkbox" checked data-toggle="toggle" data-onstyle="warning" data-offstyle="info">
</div>
 
<h3>Custom Style</h3>
<p>Customized styles can be applied as easily.</p>
<div class="example">
<style>
.toggle.ios, .toggle-on.ios, .toggle-off.ios { border-radius: 20px; }
.toggle.ios .toggle-handle { border-radius: 20px; }
</style>
<input type="checkbox" checked data-toggle="toggle" data-style="ios">
<style>
.toggle.android { border-radius: 0px;}
.toggle.android .toggle-handle { border-radius: 0px; }
</style>
<input type="checkbox" checked data-toggle="toggle" data-style="android" data-onstyle="info">
</div>
 
<h3>Custom Text</h3>
<p>The text can be changed easily with attributes or options.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger">
</div>
 
<h3>Icons/Html Text</h3>
<p>You can easily add icons or images since html is supported for on/off text.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-on="<i class='fa fa-play'></i> Play" data-off="<i class='fa fa-pause'></i> Pause">
</div>
 
<h3>Multiple Lines of Text</h3>
<p>Toggles with multiple lines will adjust its heights.</p>
<div class="example">
<input type="checkbox" checked data-toggle="toggle" data-on="Hello<br>World" data-off="Goodbye<br>World">
</div>
 
<h3>Animation Speed</h3>
<p>Transition speed can be easily controlled with css <code>transition</code> property on <code>.toggle-group</code>. You can also turn animation off completely.</p>
<div class="example">
<style>
.slow .toggle-group { transition: left 0.7s; -webkit-transition: left 0.7s; }
.fast .toggle-group { transition: left 0.1s; -webkit-transition: left 0.1s; }
.quick .toggle-group { transition: none; -webkit-transition: none; }
</style>
<input type="checkbox" checked data-toggle="toggle" data-style="slow">
<input type="checkbox" checked data-toggle="toggle" data-class="fast">
<input type="checkbox" checked data-toggle="toggle" data-style="quick">
</div>
<div>
</main>
<footer>
<div class="container">
<p>
<img class="nyt-logo" src="doc/nyt.png">
<img class="nyt-logo" src="doc/nytdev.svg">
</p>
<p>Designed and built by <a href="https://github.com/minhur" target="_blank">Min Hur</a> for <a href="http://developers.nytimes.com" target="_blank">The New York Times Company</a></p>
<p>Latest Version: 2.2.0 | Code licensed under MIT</p>
<p>
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="95" height="20"></iframe>
</p>
</div>
</footer>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script>
<script src="doc/script.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="js/bootstrap-toggle.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-55669452-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/README.md
New file
0,0 → 1,175
# Bootstrap Toggle
Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles.
 
Visit http://www.bootstraptoggle.com for demos.
 
## Getting Started
 
### Installation
You can [download](https://github.com/minhur/bootstrap-toggle/archive/master.zip) the latest version of Bootstrap Toggle or use CDN to load the library.
 
`Warning` If you are using Bootstrap v2.3.2, use `bootstrap2-toggle.min.js` and `bootstrap2-toggle.min.css` instead.
 
```html
<link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet">
<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
```
 
### Bower Install
```bash
bower install bootstrap-toggle
```
 
## Usage
 
### Basic example
Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
 
```html
<input type="checkbox" checked data-toggle="toggle">
```
 
### Stacked checkboxes
Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
 
```html
<div class="checkbox">
<label>
<input type="checkbox" data-toggle="toggle">
Option one is enabled
</label>
</div>
<div class="checkbox disabled">
<label>
<input type="checkbox" disabled data-toggle="toggle">
Option two is disabled
</label>
</div>
```
 
### Inline Checkboxes
Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add `data-toggle="toggle"` to a convert checkboxes into toggles.
 
```html
<label class="checkbox-inline">
<input type="checkbox" checked data-toggle="toggle"> First
</label>
<label class="checkbox-inline">
<input type="checkbox" data-toggle="toggle"> Second
</label>
<label class="checkbox-inline">
<input type="checkbox" data-toggle="toggle"> Third
</label>
```
 
## API
 
### Initialize by JavaScript
Initialize toggles with id `toggle-one` with a single line of JavaScript.
 
```html
<input id="toggle-one" checked type="checkbox">
<script>
$(function() {
$('#toggle-one').bootstrapToggle();
})
</script>
```
 
### Options
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-on="Enabled"`.
 
```html
<input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled">
<input type="checkbox" id="toggle-two">
<script>
$(function() {
$('#toggle-two').bootstrapToggle({
on: 'Enabled',
off: 'Disabled'
});
})
</script>
```
 
Name|Type|Default|Description|
---|---|---|---
on|string/html|"On"|Text of the on toggle
off|string/html|"Off"|Text of the off toggle
size|string|"normal"|Size of the toggle. Possible values are `large`, `normal`, `small`, `mini`.
onstyle|string|"primary"|Style of the on toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
offstyle|string|"default"|Style of the off toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
style|string| |Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
width|integer|*null*|Sets the width of the toggle. if set to *null*, width will be calculated.
height|integer|*null*|Sets the height of the toggle. if set to *null*, height will be calculated.
 
### Methods
Methods can be used to control toggles directly.
 
```html
<input id="toggle-demo" type="checkbox" data-toggle="toggle">
```
 
Method|Example|Description
---|---|---
initialize|$('#toggle-demo').bootstrapToggle()|Initializes the toggle plugin with options
destroy|$('#toggle-demo').bootstrapToggle('destroy')|Destroys the toggle
on|$('#toggle-demo').bootstrapToggle('on')|Sets the toggle to 'On' state
off|$('#toggle-demo').bootstrapToggle('off')|Sets the toggle to 'Off' state
toggle|$('#toggle-demo').bootstrapToggle('toggle')|Toggles the state of the toggle
enable|$('#toggle-demo').bootstrapToggle('enable')|Enables the toggle
disable|$('#toggle-demo').bootstrapToggle('disable')|Disables the toggle
 
## Events
 
### Event Propagation
Note All events are propagated to and from input element to the toggle.
 
You should listen to events from the `<input type="checkbox">` directly rather than look for custom events.
 
```html
<input id="toggle-event" type="checkbox" data-toggle="toggle">
<div id="console-event"></div>
<script>
$(function() {
$('#toggle-event').change(function() {
$('#console-event').html('Toggle: ' + $(this).prop('checked'))
})
})
</script>
```
 
### API vs Input
This also means that using the API or Input to trigger events will work both ways.
 
```html
<input id="toggle-trigger" type="checkbox" data-toggle="toggle">
<button class="btn btn-success" onclick="toggleOn()">On by API</button>
<button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
<button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button>
<button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button>
<script>
function toggleOn() {
$('#toggle-trigger').bootstrapToggle('on')
}
function toggleOff() {
$('#toggle-trigger').bootstrapToggle('off')
}
function toggleOnByInput() {
$('#toggle-trigger').prop('checked', true).change()
}
function toggleOffByInput() {
$('#toggle-trigger').prop('checked', false).change()
}
</script>
```
 
### Integration
 
#### [KnockoutJS](http://knockoutjs.com)
 
A binding for knockout is available here: [aAXEe/knockout-bootstrap-toggle](https://github.com/aAXEe/knockout-bootstrap-toggle)
 
## Demos
 
Visit http://www.bootstraptoggle.com for demos.
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/js/bootstrap-toggle.min.js.map
New file
0,0 → 1,0
{"version":3,"file":"bootstrap-toggle.min.js","sources":["bootstrap-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","outerHeight","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":";;;;;;;CASE,SAAUA,GACV,YAoID,SAASC,GAAOC,GACf,MAAOC,MAAKC,KAAK,WAChB,GAAIC,GAAUL,EAAEG,MACZG,EAAUD,EAAMC,KAAK,aACrBC,EAA2B,gBAAVL,IAAsBA,CAEtCI,IAAMD,EAAMC,KAAK,YAAcA,EAAO,GAAIE,GAAOL,KAAMI,IACvC,gBAAVL,IAAsBI,EAAKJ,IAASI,EAAKJ,OAtItD,GAAIM,GAAS,SAAUC,EAASF,GAC/BJ,KAAKO,SAAYV,EAAES,GACnBN,KAAKI,QAAYP,EAAEW,UAAWR,KAAKS,WAAYL,GAC/CJ,KAAKU,SAGNL,GAAOM,QAAW,QAElBN,EAAOO,UACNC,GAAI,KACJC,IAAK,MACLC,QAAS,UACTC,SAAU,UACVC,KAAM,SACNC,MAAO,GACPC,MAAO,KACPC,OAAQ,MAGTf,EAAOgB,UAAUZ,SAAW,WAC3B,OACCI,GAAIb,KAAKO,SAASe,KAAK,YAAcjB,EAAOO,SAASC,GACrDC,IAAKd,KAAKO,SAASe,KAAK,aAAejB,EAAOO,SAASE,IACvDC,QAASf,KAAKO,SAASe,KAAK,iBAAmBjB,EAAOO,SAASG,QAC/DC,SAAUhB,KAAKO,SAASe,KAAK,kBAAoBjB,EAAOO,SAASI,SACjEC,KAAMjB,KAAKO,SAASe,KAAK,cAAgBjB,EAAOO,SAASK,KACzDC,MAAOlB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASM,MAC3DC,MAAOnB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASO,MAC3DC,OAAQpB,KAAKO,SAASe,KAAK,gBAAkBjB,EAAOO,SAASQ,SAI/Df,EAAOgB,UAAUX,OAAS,WACzBV,KAAKuB,SAAW,OAASvB,KAAKI,QAAQW,QACtCf,KAAKwB,UAAY,OAASxB,KAAKI,QAAQY,QACvC,IAAIC,GAA6B,UAAtBjB,KAAKI,QAAQa,KAAmB,SAClB,UAAtBjB,KAAKI,QAAQa,KAAmB,SACV,SAAtBjB,KAAKI,QAAQa,KAAkB,SAC/B,GACCQ,EAAY5B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQS,IACzDc,SAAS3B,KAAKuB,SAAW,IAAMN,GAC7BW,EAAa/B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQU,KAC1Da,SAAS3B,KAAKwB,UAAY,IAAMP,EAAO,WACrCY,EAAgBhC,EAAE,gDACpB8B,SAASV,GACPa,EAAejC,EAAE,8BACnBkC,OAAON,EAAWG,EAAYC,GAC5BG,EAAUnC,EAAE,iDACd8B,SAAU3B,KAAKO,SAAS0B,KAAK,WAAajC,KAAKuB,SAAWvB,KAAKwB,UAAU,QACzEG,SAASV,GAAMU,SAAS3B,KAAKI,QAAQc,MAEvClB,MAAKO,SAAS2B,KAAKF,GACnBnC,EAAEW,OAAOR,MACRgC,QAAShC,KAAKO,SAAS4B,SACvBV,UAAWA,EACXG,WAAYA,EACZE,aAAcA,IAEf9B,KAAKgC,QAAQD,OAAOD,EAEpB,IAAIX,GAAQnB,KAAKI,QAAQe,OAASiB,KAAKC,IAAIZ,EAAUa,aAAcV,EAAWU,cAAeT,EAAcS,aAAa,EACpHlB,EAASpB,KAAKI,QAAQgB,QAAUgB,KAAKC,IAAIZ,EAAUc,cAAeX,EAAWW,cACjFd,GAAUE,SAAS,aACnBC,EAAWD,SAAS,cACpB3B,KAAKgC,QAAQQ,KAAMrB,MAAOA,EAAOC,OAAQA,IACrCpB,KAAKI,QAAQgB,SAChBK,EAAUe,IAAI,cAAef,EAAUL,SAAW,MAClDQ,EAAWY,IAAI,cAAeZ,EAAWR,SAAW,OAErDpB,KAAKyC,QAAO,GACZzC,KAAK0C,SAAQ,IAGdrC,EAAOgB,UAAUsB,OAAS,WACrB3C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKc,MACnCd,KAAKa,MAGXR,EAAOgB,UAAUR,GAAK,SAAU+B,GAC/B,MAAI5C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQa,YAAY7C,KAAKwB,UAAY,QAAQG,SAAS3B,KAAKuB,UAChEvB,KAAKO,SAAS0B,KAAK,WAAW,QACzBW,GAAQ5C,KAAK0C,aAGnBrC,EAAOgB,UAAUP,IAAM,SAAU8B,GAChC,MAAI5C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQa,YAAY7C,KAAKuB,UAAUI,SAAS3B,KAAKwB,UAAY,QAClExB,KAAKO,SAAS0B,KAAK,WAAW,QACzBW,GAAQ5C,KAAK0C,aAGnBrC,EAAOgB,UAAUyB,OAAS,WACzB9C,KAAKgC,QAAQe,WAAW,YACxB/C,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAU2B,QAAU,WAC1BhD,KAAKgC,QAAQV,KAAK,WAAY,YAC9BtB,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAUoB,OAAS,SAAUG,GAC/B5C,KAAKO,SAAS0B,KAAK,YAAajC,KAAKgD,UACpChD,KAAK8C,SACN9C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKa,GAAG+B,GACtC5C,KAAKc,IAAI8B,IAGfvC,EAAOgB,UAAUqB,QAAU,SAAUE,GACpC5C,KAAKO,SAASO,IAAI,oBACb8B,GAAQ5C,KAAKO,SAAS0C,SAC3BjD,KAAKO,SAASM,GAAG,mBAAoBhB,EAAEqD,MAAM,WAC5ClD,KAAKyC,UACHzC,QAGJK,EAAOgB,UAAU8B,QAAU,WAC1BnD,KAAKO,SAASO,IAAI,oBAClBd,KAAK8B,aAAasB,SAClBpD,KAAKO,SAAS8C,WAAW,aACzBrD,KAAKO,SAAS+C,SAiBf,IAAIC,GAAM1D,EAAE2D,GAAGC,eAEf5D,GAAE2D,GAAGC,gBAA8B3D,EACnCD,EAAE2D,GAAGC,gBAAgBC,YAAcrD,EAKnCR,EAAE2D,GAAGb,OAAOgB,WAAa,WAExB,MADA9D,GAAE2D,GAAGC,gBAAkBF,EAChBvD,MAMRH,EAAE,WACDA,EAAE,6CAA6C4D,oBAGhD5D,EAAE+D,UAAU/C,GAAG,kBAAmB,2BAA4B,SAASgD,GACtE,GAAIC,GAAYjE,EAAEG,MAAM+D,KAAK,uBAC7BD,GAAUL,gBAAgB,UAC1BI,EAAEG,oBAGFC"}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/js/bootstrap-toggle.js
New file
0,0 → 1,180
/*! ========================================================================
* Bootstrap Toggle: bootstrap-toggle.js v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
 
 
+function ($) {
'use strict';
 
// TOGGLE PUBLIC CLASS DEFINITION
// ==============================
 
var Toggle = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, this.defaults(), options)
this.render()
}
 
Toggle.VERSION = '2.2.0'
 
Toggle.DEFAULTS = {
on: 'On',
off: 'Off',
onstyle: 'primary',
offstyle: 'default',
size: 'normal',
style: '',
width: null,
height: null
}
 
Toggle.prototype.defaults = function() {
return {
on: this.$element.attr('data-on') || Toggle.DEFAULTS.on,
off: this.$element.attr('data-off') || Toggle.DEFAULTS.off,
onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle,
offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle,
size: this.$element.attr('data-size') || Toggle.DEFAULTS.size,
style: this.$element.attr('data-style') || Toggle.DEFAULTS.style,
width: this.$element.attr('data-width') || Toggle.DEFAULTS.width,
height: this.$element.attr('data-height') || Toggle.DEFAULTS.height
}
}
 
Toggle.prototype.render = function () {
this._onstyle = 'btn-' + this.options.onstyle
this._offstyle = 'btn-' + this.options.offstyle
var size = this.options.size === 'large' ? 'btn-lg'
: this.options.size === 'small' ? 'btn-sm'
: this.options.size === 'mini' ? 'btn-xs'
: ''
var $toggleOn = $('<label class="btn">').html(this.options.on)
.addClass(this._onstyle + ' ' + size)
var $toggleOff = $('<label class="btn">').html(this.options.off)
.addClass(this._offstyle + ' ' + size + ' active')
var $toggleHandle = $('<span class="toggle-handle btn btn-default">')
.addClass(size)
var $toggleGroup = $('<div class="toggle-group">')
.append($toggleOn, $toggleOff, $toggleHandle)
var $toggle = $('<div class="toggle btn" data-toggle="toggle">')
.addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' )
.addClass(size).addClass(this.options.style)
 
this.$element.wrap($toggle)
$.extend(this, {
$toggle: this.$element.parent(),
$toggleOn: $toggleOn,
$toggleOff: $toggleOff,
$toggleGroup: $toggleGroup
})
this.$toggle.append($toggleGroup)
 
var width = this.options.width || Math.max($toggleOn.outerWidth(), $toggleOff.outerWidth())+($toggleHandle.outerWidth()/2)
var height = this.options.height || Math.max($toggleOn.outerHeight(), $toggleOff.outerHeight())
$toggleOn.addClass('toggle-on')
$toggleOff.addClass('toggle-off')
this.$toggle.css({ width: width, height: height })
if (this.options.height) {
$toggleOn.css('line-height', $toggleOn.height() + 'px')
$toggleOff.css('line-height', $toggleOff.height() + 'px')
}
this.update(true)
this.trigger(true)
}
 
Toggle.prototype.toggle = function () {
if (this.$element.prop('checked')) this.off()
else this.on()
}
 
Toggle.prototype.on = function (silent) {
if (this.$element.prop('disabled')) return false
this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle)
this.$element.prop('checked', true)
if (!silent) this.trigger()
}
 
Toggle.prototype.off = function (silent) {
if (this.$element.prop('disabled')) return false
this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off')
this.$element.prop('checked', false)
if (!silent) this.trigger()
}
 
Toggle.prototype.enable = function () {
this.$toggle.removeAttr('disabled')
this.$element.prop('disabled', false)
}
 
Toggle.prototype.disable = function () {
this.$toggle.attr('disabled', 'disabled')
this.$element.prop('disabled', true)
}
 
Toggle.prototype.update = function (silent) {
if (this.$element.prop('disabled')) this.disable()
else this.enable()
if (this.$element.prop('checked')) this.on(silent)
else this.off(silent)
}
 
Toggle.prototype.trigger = function (silent) {
this.$element.off('change.bs.toggle')
if (!silent) this.$element.change()
this.$element.on('change.bs.toggle', $.proxy(function() {
this.update()
}, this))
}
 
Toggle.prototype.destroy = function() {
this.$element.off('change.bs.toggle')
this.$toggleGroup.remove()
this.$element.removeData('bs.toggle')
this.$element.unwrap()
}
 
// TOGGLE PLUGIN DEFINITION
// ========================
 
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.toggle')
var options = typeof option == 'object' && option
 
if (!data) $this.data('bs.toggle', (data = new Toggle(this, options)))
if (typeof option == 'string' && data[option]) data[option]()
})
}
 
var old = $.fn.bootstrapToggle
 
$.fn.bootstrapToggle = Plugin
$.fn.bootstrapToggle.Constructor = Toggle
 
// TOGGLE NO CONFLICT
// ==================
 
$.fn.toggle.noConflict = function () {
$.fn.bootstrapToggle = old
return this
}
 
// TOGGLE DATA-API
// ===============
 
$(function() {
$('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle()
})
 
$(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) {
var $checkbox = $(this).find('input[type=checkbox]')
$checkbox.bootstrapToggle('toggle')
e.preventDefault()
})
 
}(jQuery);
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/js/bootstrap2-toggle.min.js.map
New file
0,0 → 1,0
{"version":3,"file":"bootstrap2-toggle.min.js","sources":["bootstrap2-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":";;;;;;;CASE,SAAUA,GACV,YAoID,SAASC,GAAOC,GACf,MAAOC,MAAKC,KAAK,WAChB,GAAIC,GAAUL,EAAEG,MACZG,EAAUD,EAAMC,KAAK,aACrBC,EAA2B,gBAAVL,IAAsBA,CAEtCI,IAAMD,EAAMC,KAAK,YAAcA,EAAO,GAAIE,GAAOL,KAAMI,IACvC,gBAAVL,IAAsBI,EAAKJ,IAASI,EAAKJ,OAtItD,GAAIM,GAAS,SAAUC,EAASF,GAC/BJ,KAAKO,SAAYV,EAAES,GACnBN,KAAKI,QAAYP,EAAEW,UAAWR,KAAKS,WAAYL,GAC/CJ,KAAKU,SAGNL,GAAOM,QAAW,QAElBN,EAAOO,UACNC,GAAI,KACJC,IAAK,MACLC,QAAS,UACTC,SAAU,UACVC,KAAM,SACNC,MAAO,GACPC,MAAO,KACPC,OAAQ,MAGTf,EAAOgB,UAAUZ,SAAW,WAC3B,OACCI,GAAIb,KAAKO,SAASe,KAAK,YAAcjB,EAAOO,SAASC,GACrDC,IAAKd,KAAKO,SAASe,KAAK,aAAejB,EAAOO,SAASE,IACvDC,QAASf,KAAKO,SAASe,KAAK,iBAAmBjB,EAAOO,SAASG,QAC/DC,SAAUhB,KAAKO,SAASe,KAAK,kBAAoBjB,EAAOO,SAASI,SACjEC,KAAMjB,KAAKO,SAASe,KAAK,cAAgBjB,EAAOO,SAASK,KACzDC,MAAOlB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASM,MAC3DC,MAAOnB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASO,MAC3DC,OAAQpB,KAAKO,SAASe,KAAK,gBAAkBjB,EAAOO,SAASQ,SAI/Df,EAAOgB,UAAUX,OAAS,WACzBV,KAAKuB,SAAW,OAASvB,KAAKI,QAAQW,QACtCf,KAAKwB,UAAY,OAASxB,KAAKI,QAAQY,QACvC,IAAIC,GAA6B,UAAtBjB,KAAKI,QAAQa,KAAmB,YAClB,UAAtBjB,KAAKI,QAAQa,KAAmB,YACV,SAAtBjB,KAAKI,QAAQa,KAAkB,WAC/B,GACCQ,EAAY5B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQS,IACzDc,SAAS3B,KAAKuB,SAAW,IAAMN,GAC7BW,EAAa/B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQU,KAC1Da,SAAS3B,KAAKwB,UAAY,IAAMP,EAAO,WACrCY,EAAgBhC,EAAE,gDACpB8B,SAASV,GACPa,EAAejC,EAAE,8BACnBkC,OAAON,EAAWG,EAAYC,GAC5BG,EAAUnC,EAAE,iDACd8B,SAAU3B,KAAKO,SAAS0B,KAAK,WAAajC,KAAKuB,SAAWvB,KAAKwB,UAAU,QACzEG,SAASV,GAAMU,SAAS3B,KAAKI,QAAQc,MAEvClB,MAAKO,SAAS2B,KAAKF,GACnBnC,EAAEW,OAAOR,MACRgC,QAAShC,KAAKO,SAAS4B,SACvBV,UAAWA,EACXG,WAAYA,EACZE,aAAcA,IAEf9B,KAAKgC,QAAQD,OAAOD,EAEpB,IAAIX,GAAQnB,KAAKI,QAAQe,OAASiB,KAAKC,IAAIZ,EAAUN,QAASS,EAAWT,SAAUU,EAAcS,aAAa,EAC1GlB,EAASpB,KAAKI,QAAQgB,QAAUgB,KAAKC,IAAIZ,EAAUL,SAAUQ,EAAWR,SAC5EK,GAAUE,SAAS,aACnBC,EAAWD,SAAS,cACpB3B,KAAKgC,QAAQO,KAAMpB,MAAOA,EAAOC,OAAQA,IACrCpB,KAAKI,QAAQgB,SAChBK,EAAUc,IAAI,cAAed,EAAUL,SAAW,MAClDQ,EAAWW,IAAI,cAAeX,EAAWR,SAAW,OAErDpB,KAAKwC,QAAO,GACZxC,KAAKyC,SAAQ,IAGdpC,EAAOgB,UAAUqB,OAAS,WACrB1C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKc,MACnCd,KAAKa,MAGXR,EAAOgB,UAAUR,GAAK,SAAU8B,GAC/B,MAAI3C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQY,YAAY5C,KAAKwB,UAAY,QAAQG,SAAS3B,KAAKuB,UAChEvB,KAAKO,SAAS0B,KAAK,WAAW,QACzBU,GAAQ3C,KAAKyC,aAGnBpC,EAAOgB,UAAUP,IAAM,SAAU6B,GAChC,MAAI3C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQY,YAAY5C,KAAKuB,UAAUI,SAAS3B,KAAKwB,UAAY,QAClExB,KAAKO,SAAS0B,KAAK,WAAW,QACzBU,GAAQ3C,KAAKyC,aAGnBpC,EAAOgB,UAAUwB,OAAS,WACzB7C,KAAKgC,QAAQc,WAAW,YACxB9C,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAU0B,QAAU,WAC1B/C,KAAKgC,QAAQV,KAAK,WAAY,YAC9BtB,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAUmB,OAAS,SAAUG,GAC/B3C,KAAKO,SAAS0B,KAAK,YAAajC,KAAK+C,UACpC/C,KAAK6C,SACN7C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKa,GAAG8B,GACtC3C,KAAKc,IAAI6B,IAGftC,EAAOgB,UAAUoB,QAAU,SAAUE,GACpC3C,KAAKO,SAASO,IAAI,oBACb6B,GAAQ3C,KAAKO,SAASyC,SAC3BhD,KAAKO,SAASM,GAAG,mBAAoBhB,EAAEoD,MAAM,WAC5CjD,KAAKwC,UACHxC,QAGJK,EAAOgB,UAAU6B,QAAU,WAC1BlD,KAAKO,SAASO,IAAI,oBAClBd,KAAK8B,aAAaqB,SAClBnD,KAAKO,SAAS6C,WAAW,aACzBpD,KAAKO,SAAS8C,SAiBf,IAAIC,GAAMzD,EAAE0D,GAAGC,eAEf3D,GAAE0D,GAAGC,gBAA8B1D,EACnCD,EAAE0D,GAAGC,gBAAgBC,YAAcpD,EAKnCR,EAAE0D,GAAGb,OAAOgB,WAAa,WAExB,MADA7D,GAAE0D,GAAGC,gBAAkBF,EAChBtD,MAMRH,EAAE,WACDA,EAAE,6CAA6C2D,oBAGhD3D,EAAE8D,UAAU9C,GAAG,kBAAmB,2BAA4B,SAAS+C,GACtE,GAAIC,GAAYhE,EAAEG,MAAM8D,KAAK,uBAC7BD,GAAUL,gBAAgB,UAC1BI,EAAEG,oBAGFC"}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/js/bootstrap-toggle.min.js
New file
0,0 → 1,9
/*! ========================================================================
* Bootstrap Toggle: bootstrap-toggle.js v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-lg":"small"===this.options.size?"btn-sm":"mini"===this.options.size?"btn-xs":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.outerWidth(),d.outerWidth())+e.outerWidth()/2,i=this.options.height||Math.max(c.outerHeight(),d.outerHeight());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery);
//# sourceMappingURL=bootstrap-toggle.min.js.map
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/js/bootstrap2-toggle.js
New file
0,0 → 1,180
/*! ========================================================================
* Bootstrap Toggle: bootstrap2-toggle.js v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
 
 
+function ($) {
'use strict';
 
// TOGGLE PUBLIC CLASS DEFINITION
// ==============================
 
var Toggle = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, this.defaults(), options)
this.render()
}
 
Toggle.VERSION = '2.2.0'
 
Toggle.DEFAULTS = {
on: 'On',
off: 'Off',
onstyle: 'primary',
offstyle: 'default',
size: 'normal',
style: '',
width: null,
height: null
}
 
Toggle.prototype.defaults = function() {
return {
on: this.$element.attr('data-on') || Toggle.DEFAULTS.on,
off: this.$element.attr('data-off') || Toggle.DEFAULTS.off,
onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle,
offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle,
size: this.$element.attr('data-size') || Toggle.DEFAULTS.size,
style: this.$element.attr('data-style') || Toggle.DEFAULTS.style,
width: this.$element.attr('data-width') || Toggle.DEFAULTS.width,
height: this.$element.attr('data-height') || Toggle.DEFAULTS.height
}
}
 
Toggle.prototype.render = function () {
this._onstyle = 'btn-' + this.options.onstyle
this._offstyle = 'btn-' + this.options.offstyle
var size = this.options.size === 'large' ? 'btn-large'
: this.options.size === 'small' ? 'btn-small'
: this.options.size === 'mini' ? 'btn-mini'
: ''
var $toggleOn = $('<label class="btn">').html(this.options.on)
.addClass(this._onstyle + ' ' + size)
var $toggleOff = $('<label class="btn">').html(this.options.off)
.addClass(this._offstyle + ' ' + size + ' active')
var $toggleHandle = $('<span class="toggle-handle btn btn-default">')
.addClass(size)
var $toggleGroup = $('<div class="toggle-group">')
.append($toggleOn, $toggleOff, $toggleHandle)
var $toggle = $('<div class="toggle btn" data-toggle="toggle">')
.addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' )
.addClass(size).addClass(this.options.style)
 
this.$element.wrap($toggle)
$.extend(this, {
$toggle: this.$element.parent(),
$toggleOn: $toggleOn,
$toggleOff: $toggleOff,
$toggleGroup: $toggleGroup
})
this.$toggle.append($toggleGroup)
 
var width = this.options.width || Math.max($toggleOn.width(), $toggleOff.width())+($toggleHandle.outerWidth()/2)
var height = this.options.height || Math.max($toggleOn.height(), $toggleOff.height())
$toggleOn.addClass('toggle-on')
$toggleOff.addClass('toggle-off')
this.$toggle.css({ width: width, height: height })
if (this.options.height) {
$toggleOn.css('line-height', $toggleOn.height() + 'px')
$toggleOff.css('line-height', $toggleOff.height() + 'px')
}
this.update(true)
this.trigger(true)
}
 
Toggle.prototype.toggle = function () {
if (this.$element.prop('checked')) this.off()
else this.on()
}
 
Toggle.prototype.on = function (silent) {
if (this.$element.prop('disabled')) return false
this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle)
this.$element.prop('checked', true)
if (!silent) this.trigger()
}
 
Toggle.prototype.off = function (silent) {
if (this.$element.prop('disabled')) return false
this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off')
this.$element.prop('checked', false)
if (!silent) this.trigger()
}
 
Toggle.prototype.enable = function () {
this.$toggle.removeAttr('disabled')
this.$element.prop('disabled', false)
}
 
Toggle.prototype.disable = function () {
this.$toggle.attr('disabled', 'disabled')
this.$element.prop('disabled', true)
}
 
Toggle.prototype.update = function (silent) {
if (this.$element.prop('disabled')) this.disable()
else this.enable()
if (this.$element.prop('checked')) this.on(silent)
else this.off(silent)
}
 
Toggle.prototype.trigger = function (silent) {
this.$element.off('change.bs.toggle')
if (!silent) this.$element.change()
this.$element.on('change.bs.toggle', $.proxy(function() {
this.update()
}, this))
}
 
Toggle.prototype.destroy = function() {
this.$element.off('change.bs.toggle')
this.$toggleGroup.remove()
this.$element.removeData('bs.toggle')
this.$element.unwrap()
}
 
// TOGGLE PLUGIN DEFINITION
// ========================
 
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.toggle')
var options = typeof option == 'object' && option
 
if (!data) $this.data('bs.toggle', (data = new Toggle(this, options)))
if (typeof option == 'string' && data[option]) data[option]()
})
}
 
var old = $.fn.bootstrapToggle
 
$.fn.bootstrapToggle = Plugin
$.fn.bootstrapToggle.Constructor = Toggle
 
// TOGGLE NO CONFLICT
// ==================
 
$.fn.toggle.noConflict = function () {
$.fn.bootstrapToggle = old
return this
}
 
// TOGGLE DATA-API
// ===============
 
$(function() {
$('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle()
})
 
$(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) {
var $checkbox = $(this).find('input[type=checkbox]')
$checkbox.bootstrapToggle('toggle')
e.preventDefault()
})
 
}(jQuery);
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/js/bootstrap-toggle-master/js/bootstrap2-toggle.min.js
New file
0,0 → 1,9
/*! ========================================================================
* Bootstrap Toggle: bootstrap2-toggle.js v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-large":"small"===this.options.size?"btn-small":"mini"===this.options.size?"btn-mini":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.width(),d.width())+e.outerWidth()/2,i=this.options.height||Math.max(c.height(),d.height());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery);
//# sourceMappingURL=bootstrap2-toggle.min.js.map
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/layout/themes/scripts-default.jsp
4,6 → 4,8
<meta name="viewport" content="width=device-width, initial-scale=1">
 
 
 
 
<%
String bacoTheme = (String) request.getAttribute("pt_estgp_estgweb_theme");
if(bacoTheme == null)
62,6 → 64,37
 
 
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery-2.1.4.min.js"></script>
 
<!--READY FIRST EVENT-->
<script>
$(document).ready(
function()
{
$(".baco-please-wait-target").hide();
$(".baco-please-wait").html(
"<div class=\"panel panel-info\">" +
"<div class=\"panel-body\">" +
"<p>Por favor aguarde um momento, o sistema está a carregar <img src=\"<%=request.getContextPath()%>/imgs/wait.gif\"/></p>" +
"</div>" +
"</div>");
setTimeout("removeBacoWait()", 500);
 
}
);
function removeBacoWait()
{
$(".baco-please-wait").fadeOut(300, function(){ $(this).remove();});
$(".baco-please-wait-target").fadeIn(300, function(){ $(this).show();});
}
</script>
<style>
.baco-please-wait-target
{
display: none;
}
</style>
<!--READY FIRST EVENT-->
 
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/bootstrap/js/bootstrap.js"></script>
77,6 → 110,10
 
 
 
<link href="<%=request.getContextPath()%>/js/bootstrap-toggle-master/css/bootstrap-toggle.min.css" rel="stylesheet">
<script src="<%=request.getContextPath()%>/js/bootstrap-toggle-master/js/bootstrap-toggle.min.js"></script>
 
 
<%--SCRIPTS DO CALENDARIO BOOTSTRAP--%>
<%--<script type="text/javascript" src="/bower_components/jquery/jquery.min.js"></script>--%>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/bower_components/moment/min/moment.min.js"></script>
116,6 → 153,9
 
 
 
 
 
 
$(document).ready(
function(){
$("#network").hide();
186,10 → 226,15
 
);
 
function evaluateTableSorters(){
if($("#myTable"))
function evaluateTableSorters()
{
evaluateTableSortersInside("");
}
function evaluateTableSortersInside(insideDiv)
{
if($(insideDiv + " #myTable"))
{
$("#myTable").tablesorter({
$(insideDiv + " #myTable").tablesorter({
theme: 'blue',
 
 
331,9 → 376,9
);
}
 
if($("#myTable2"))
if($(insideDiv + " #myTable2"))
{
$("#myTable2").tablesorter({
$(insideDiv + " #myTable2").tablesorter({
theme: 'blue',
sortMultiSortKey: 'altKey',
//sortList: [[0,0]],
362,9 → 407,9
);
}
 
if($(".tablesortersimple"))
if($(insideDiv + " .tablesortersimple"))
{
$(".tablesortersimple").tablesorter({
$(insideDiv + " .tablesortersimple").tablesorter({
theme: 'blue',
sortMultiSortKey: 'altKey',
//sortList: [[0,0]],
424,9 → 469,9
}
);
}*/
if($(".tablesorterfiltered"))
if($(insideDiv + " .tablesorterfiltered"))
{
$(".tablesorterfiltered").tablesorter({
$(insideDiv + " .tablesorterfiltered").tablesorter({
theme: 'blue',
 
 
467,7 → 512,7
// External search
// buttons set up like this:
// <button type="button" data-filter-column="4" data-filter-text="2?%">Saved Search</button>
$('button[data-filter-column]').click(function(){
$(insideDiv + 'button[data-filter-column]').click(function(){
/*** first method *** data-filter-column="1" data-filter-text="!son"
add search value to Discount column (zero based index) input */
var filters = [],
477,12 → 522,12
 
filters[col] = txt;
// using "table.hasFilters" here to make sure we aren't targeting a sticky header
if($('#myTable'))
$.tablesorter.setFilters( $('#myTable'), filters, true ); // new v2.9
if($('#myTable2'))
$.tablesorter.setFilters( $('#myTable2'), filters, true ); // new v2.9
if($('.tablesorterfiltered'))
$.tablesorter.setFilters( $('.tablesorterfiltered'), filters, true ); // new v2.9
if($(insideDiv + ' #myTable'))
$.tablesorter.setFilters( $(insideDiv + ' #myTable'), filters, true ); // new v2.9
if($(insideDiv + ' #myTable2'))
$.tablesorter.setFilters( $(insideDiv + ' #myTable2'), filters, true ); // new v2.9
if($(insideDiv + ' .tablesorterfiltered'))
$.tablesorter.setFilters( $(insideDiv + ' .tablesorterfiltered'), filters, true ); // new v2.9
 
/*
if($('.tablesorterfiltered'))
623,6 → 668,7
}
 
</script>
 
<%--O nosso estilo fica aqui para se sobrepor--%>
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/style.css"/>
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/<%=bacoTheme%>/style.css"/>
/branches/v3/impl/src/web/layout/headerTools.jsp
60,8 → 60,30
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));
$(this).find('.ConfirmMessageToUser').html($(e.relatedTarget).data('message'));
});
 
$('.dynamicInfoModal').on('show.bs.modal', function(e)
{
$(this).find('.InfoMessageToUser').html($(e.relatedTarget).data('message'));
});
 
$('.maximize-button').click(function(e)
{
$($(e.currentTarget).data("target")).toggleClass('fullscreen');
});
 
});
</script>
<style>
.fullscreen{
z-index: 9999;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
}
</style>
 
<div class="modal fade confirmModal" id="confirm-ModalGeneric" tabindex="-1" role="dialog" >
<div class="modal-dialog" data-width="450" style="display: block; width: 450px; margin-top: 50px;" aria-hidden="false">
<div class="modal-content">
82,3 → 104,68
</div>
</div>
</div>
 
<div class="modal fade dynamicInfoModal" id="dynamicInfo-ModalGeneric" tabindex="-1" role="dialog" >
<div class="modal-dialog" data-width="450" style="display: block; width: 450px; margin-top: 50px;" aria-hidden="false">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Informação</h4>
</div>
<div class="modal-body">
 
<p class="InfoMessageToUser">
 
</p>
 
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Ok</button>
</div>
</div>
</div>
</div>
 
 
<script>
$(document).ready(function(){
$('#modalAjaxRequest').on('show.bs.modal', function(e)
{
reloadAjaxRequestModal($(e.relatedTarget));
});
});
function reloadAjaxRequestModal(target)
{
$("#modalAjaxRequest .modal-title .title-wrap").html($(target).data('title'));
$("#modalAjaxRequest .contentAjaxRequest").html('Pro favor aguarde ... <img src="<%=request.getContextPath()%>/imgs/wait.gif"/>');
$.post($(target).data('href'), function(data) {
$("#modalAjaxRequest .contentAjaxRequest").html(data);
evaluateTableSortersInside("#modalAjaxRequest");
$('#modalAjaxRequest .reloadAjaxRequestModal').on("click",
function(e){
reloadAjaxRequestModal(e.currentTarget);
}
);
});
}
</script>
 
<div class="modal fade" id="modalAjaxRequest" role="dialog" >
<div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false">
 
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header clearfix">
<h3 class="modal-title">
<label class="title-wrap"></label>
<button type="button" class="btn btn-danger btn-xs pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove small"></span></button>
</h3>
</div>
<div class="modal-body">
<div class="contentAjaxRequest">
 
</div>
<button type="button" class="btn btn-danger" data-dismiss="modal">Sair</button>
</div>
</div>
</div>
</div>
/branches/v3/impl/src/web/layout/errorLayout.jsp
18,26 → 18,20
<jsp:include page="/layout/scripts.jsp"/>
</head>
<body>
<table width="100%">
<tr>
<td align="center">
<div id="body">
<div id="header">
<tiles:insert attribute="header"/>
</div>
<table id="page" width="100%">
<tr>
<td id="content" class="errorPage">
<tiles:insert attribute="body"/>
</td>
</tr>
</table>
<div id="footer">
<tiles:insert attribute="footer"/>
</div>
<tiles:insert attribute="header"/>
<!-- SHORTCUTS MENU -->
 
<div class="container" style="padding-left: 0;padding-right: 0; padding-top: 20px; border-top: 1px solid #323431">
<!-- BODY -->
<div class="panel panel-default">
<div class="panel-body">
<tiles:insert attribute="body"/>
</div>
</td>
</tr>
</table>
</div>
</div>
<!-- FOOTER -->
 
<tiles:insert attribute="footer"/>
 
</body>
</html:html>
/branches/v3/impl/src/web/layout/layout0.jsp
12,19 → 12,19
</head>
<body id="public" onload="horizontal();" >
<!-- HEADER -->
<tiles:insert attribute="header"/>
<!-- SHORTCUTS MENU -->
<tiles:insert attribute="navigationTop"/>
<tiles:insert attribute="header"/>
<!-- SHORTCUTS MENU -->
<tiles:insert attribute="navigationTop"/>
 
<div class="container" style="padding-left: 0;padding-right: 0; padding-top: 20px; border-top: 1px solid #323431">
<!-- TOP NAV -->
<tiles:insert attribute="topnav"/>
<!-- BODY -->
<tiles:insert attribute="body"/>
<div class="container" style="padding-left: 0;padding-right: 0; padding-top: 20px; border-top: 1px solid #323431">
<!-- TOP NAV -->
<tiles:insert attribute="topnav"/>
<!-- BODY -->
<tiles:insert attribute="body"/>
 
</div>
<!-- FOOTER -->
<tiles:insert attribute="footer"/>
</div>
<!-- FOOTER -->
<tiles:insert attribute="footer"/>
 
</body>
</html:html>
/branches/v3/impl/src/web/layout/footer.jsp
1,3 → 1,5
<%@ page contentType="text/html; charset=UTF-8" language="java"%>
<jsp:include page="/layout/setTheme.jsp"/>
<jsp:include page="/layout/themes/${pt_estgp_estgweb_theme}/footer.jsp"/>
<jsp:include page="/layout/themes/${pt_estgp_estgweb_theme}/footer.jsp"/>
 
 
/branches/v3/impl/src/web/layout/pleaseWait.jsp
New file
0,0 → 1,8
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div class="baco-please-wait">
<div class="panel panel-info">
<div class="panel-body">
<p>Por favor aguarde um momento, o sistema está a carregar <img src="<%=request.getContextPath()%>/imgs/wait.gif"/></p>
</div>
</div>
</div>
/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/courseunit.jsp
244,8 → 244,11
<div class="panel panel-default">
<div class="panel-heading">
<bean:message key="courseunit.teachers"/>
<a href="#" data-toggle="modal" data-target="#teachersInfo" class="pull-right">
Mais Info. <span class="glyphicon glyphicon-info-sign"> </span>
<!--<a href="#" data-toggle="modal" data-target="#teachersInfo" class="pull-right">
Mais Info. <span class="glyphicon glyphicon-info-sign"> </span>
</a>-->
<a href="javascript:return false;" class="pull-right" data-href="<%=request.getContextPath()%>/user/courseunits/teachersInfo.jsp?courseUnitId=${CourseUnitView.id}" data-title="<bean:message key="courseunit.teachers"/>" data-toggle="modal" data-target="#modalAjaxRequest">
Mais Info. <span class="glyphicon glyphicon-info-sign small"> </span>
</a>
</div>
<div class="panel-body">
/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/courseunits/teachersInfo.jsp
New file
0,0 → 1,69
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitView" %>
<%@ 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="java.util.Map" %>
<%@ 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 unitId = Long.parseLong(request.getParameter("courseUnitId"));
 
IServiceManager sm = ServiceManager.getInstance();
 
 
String[] names = new String[]{};
Object[] args = new Object[]{unitId, true,false,false};//teachers,students,blog
 
CourseUnitView courseUnitView = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnit", args, names);
request.setAttribute("CourseUnitView",courseUnitView);
%>
 
<div>
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<div class="well well-sm"><bean:message key="courseunit.responsable"/></div>
 
<logic:lessEqual value="0" name="CourseUnitView" property="responsableTeacher.id">
<p> Não existe informação disponivel.</p>
</logic:lessEqual>
<logic:greaterThan value="0" name="CourseUnitView" property="responsableTeacher.id">
<p class="lead"><strong><bean:message key="name"/></strong>: ${CourseUnitView.responsableTeacher.name}</p>
<p><strong><bean:message key="profile.siges.code.public"/></strong>: ${CourseUnitView.responsableTeacher.code}</p>
<p><label class=""><bean:message key="email"/></label>: ${CourseUnitView.responsableTeacher.email}</p>
</logic:greaterThan>
 
<div class="well well-sm"><bean:message key="courseunit.teachers.teaching"/></div>
<logic:iterate id="teacher" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
 
<p class="lead"><strong><bean:message key="name"/></strong>: ${teacher.name}</p>
<p><strong><bean:message key="profile.siges.code.public"/></strong>: ${teacher.code}</p>
<p><label class=""><bean:message key="email"/></label>: ${teacher.email}</p>
<logic:present name="CourseUnitView" property="tipologias">
<%
Map<String,List<String>> mapa = CourseUnitView.getTipologiasTurmas(""+teacher.getCode());
for(Map.Entry<String,List<String>> entry: mapa.entrySet())
{
String tipologia = entry.getKey();
List<String> turmas = entry.getValue();
request.setAttribute("turmas", turmas);
request.setAttribute("tipologia", tipologia);
%>
<p>${tipologia}:
<logic:iterate id="turma" name="turmas" type="java.lang.String" scope="request">
${turma}
</logic:iterate>
</p>
<%
}
%>
 
</logic:present>
</logic:iterate>
</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
11,7 → 11,7
 
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12">
<baco:hasRole role="admin,all,services">
<baco:hasRole role="admin,all,services,questionarios.admin">
<div class="panel panel-primary">
<div class="panel-heading">Ferramentas Académicas (MODO BACO)</div>
<div class="panel-body">
26,12 → 26,12
</baco:hasRole>
</div>
<div class="col-md-6 col-sm-12 col-xs-12">
<baco:hasRole role="admin,all,services">
<baco:hasRole role="admin,all,services,questionarios.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="/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
New file
0,0 → 1,146
package pt.estgp.estgweb.domain;
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* QuestionarioPedagogicoCursoAfeto generated by hbm2java
*/
public abstract class QuestionarioPedagogicoCursoAfeto extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private String codigoInstituicao;
private String nomeInstituicao;
private String codigoCurso;
private String ano;
private String semestre;
private String nome;
private int marcadas;
private String obs;
private boolean usarTipologias;
private Questionario questionario;
private Course course;
private Set<QuestionarioPedagogicoUnidadeCurricularAfeta> unidadesAfetas = new HashSet<QuestionarioPedagogicoUnidadeCurricularAfeta>(0);
 
public QuestionarioPedagogicoCursoAfeto() {
}
 
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getCodigoInstituicao() {
return this.codigoInstituicao;
}
public void setCodigoInstituicao(String codigoInstituicao) {
this.codigoInstituicao = codigoInstituicao;
}
public String getNomeInstituicao() {
return this.nomeInstituicao;
}
public void setNomeInstituicao(String nomeInstituicao) {
this.nomeInstituicao = nomeInstituicao;
}
public String getCodigoCurso() {
return this.codigoCurso;
}
public void setCodigoCurso(String codigoCurso) {
this.codigoCurso = codigoCurso;
}
public String getAno() {
return this.ano;
}
public void setAno(String ano) {
this.ano = ano;
}
public String getSemestre() {
return this.semestre;
}
public void setSemestre(String semestre) {
this.semestre = semestre;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getMarcadas() {
return this.marcadas;
}
public void setMarcadas(int marcadas) {
this.marcadas = marcadas;
}
public String getObs() {
return this.obs;
}
public void setObs(String obs) {
this.obs = obs;
}
public boolean isUsarTipologias() {
return this.usarTipologias;
}
public void setUsarTipologias(boolean usarTipologias) {
this.usarTipologias = usarTipologias;
}
public Questionario getQuestionario() {
return this.questionario;
}
public void setQuestionario(Questionario questionario) {
this.questionario = questionario;
}
public Course getCourse() {
return this.course;
}
public void setCourse(Course course) {
this.course = course;
}
public Set<QuestionarioPedagogicoUnidadeCurricularAfeta> getUnidadesAfetas() {
return this.unidadesAfetas;
}
public void setUnidadesAfetas(Set<QuestionarioPedagogicoUnidadeCurricularAfeta> unidadesAfetas) {
this.unidadesAfetas = unidadesAfetas;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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
New file
0,0 → 1,1272
package pt.estgp.estgweb.domain;
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* QuestionarioResposta generated by hbm2java
*/
public abstract class QuestionarioResposta extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date saveDate;
private Date timeStart;
private Date timeEnd;
private long totalTime;
private String r1;
private String r2;
private String r3;
private String r4;
private String r5;
private String r6;
private String r7;
private String r8;
private String r9;
private String r10;
private String r11;
private String r12;
private String r13;
private String r14;
private String r15;
private String r16;
private String r17;
private String r18;
private String r19;
private String r20;
private String r21;
private String r22;
private String r23;
private String r24;
private String r25;
private String r26;
private String r27;
private String r28;
private String r29;
private String r30;
private String r31;
private String r32;
private String r33;
private String r34;
private String r35;
private String r36;
private String r37;
private String r38;
private String r39;
private String r40;
private String rt1;
private String rt2;
private String rt3;
private String rt4;
private String rt5;
private String rt6;
private String rt7;
private String rt8;
private String rt9;
private String rt10;
private long timeTakenR1;
private long timeTakenR2;
private long timeTakenR3;
private long timeTakenR4;
private long timeTakenR5;
private long timeTakenR6;
private long timeTakenR7;
private long timeTakenR8;
private long timeTakenR9;
private long timeTakenR10;
private long timeTakenR11;
private long timeTakenR12;
private long timeTakenR13;
private long timeTakenR14;
private long timeTakenR15;
private long timeTakenR16;
private long timeTakenR17;
private long timeTakenR18;
private long timeTakenR19;
private long timeTakenR20;
private long timeTakenR21;
private long timeTakenR22;
private long timeTakenR23;
private long timeTakenR24;
private long timeTakenR25;
private long timeTakenR26;
private long timeTakenR27;
private long timeTakenR28;
private long timeTakenR29;
private long timeTakenR30;
private long timeTakenR31;
private long timeTakenR32;
private long timeTakenR33;
private long timeTakenR34;
private long timeTakenR35;
private long timeTakenR36;
private long timeTakenR37;
private long timeTakenR38;
private long timeTakenR39;
private long timeTakenR40;
private long timeTakenRt1;
private long timeTakenRt2;
private long timeTakenRt3;
private long timeTakenRt4;
private long timeTakenRt5;
private long timeTakenRt6;
private long timeTakenRt7;
private long timeTakenRt8;
private long timeTakenRt9;
private long timeTakenRt10;
private Date timeEventR1;
private Date timeEventR2;
private Date timeEventR3;
private Date timeEventR4;
private Date timeEventR5;
private Date timeEventR6;
private Date timeEventR7;
private Date timeEventR8;
private Date timeEventR9;
private Date timeEventR10;
private Date timeEventR11;
private Date timeEventR12;
private Date timeEventR13;
private Date timeEventR14;
private Date timeEventR15;
private Date timeEventR16;
private Date timeEventR17;
private Date timeEventR18;
private Date timeEventR19;
private Date timeEventR20;
private Date timeEventR21;
private Date timeEventR22;
private Date timeEventR23;
private Date timeEventR24;
private Date timeEventR25;
private Date timeEventR26;
private Date timeEventR27;
private Date timeEventR28;
private Date timeEventR29;
private Date timeEventR30;
private Date timeEventR31;
private Date timeEventR32;
private Date timeEventR33;
private Date timeEventR34;
private Date timeEventR35;
private Date timeEventR36;
private Date timeEventR37;
private Date timeEventR38;
private Date timeEventR39;
private Date timeEventR40;
private long timeEventRt1;
private long timeEventRt2;
private long timeEventRt3;
private long timeEventRt4;
private long timeEventRt5;
private long timeEventRt6;
private long timeEventRt7;
private long timeEventRt8;
private long timeEventRt9;
private long timeEventRt10;
private User user;
 
public QuestionarioResposta() {
}
 
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Date getTimeStart() {
return this.timeStart;
}
public void setTimeStart(Date timeStart) {
this.timeStart = timeStart;
}
public Date getTimeEnd() {
return this.timeEnd;
}
public void setTimeEnd(Date timeEnd) {
this.timeEnd = timeEnd;
}
public long getTotalTime() {
return this.totalTime;
}
public void setTotalTime(long totalTime) {
this.totalTime = totalTime;
}
public String getR1() {
return this.r1;
}
public void setR1(String r1) {
this.r1 = r1;
}
public String getR2() {
return this.r2;
}
public void setR2(String r2) {
this.r2 = r2;
}
public String getR3() {
return this.r3;
}
public void setR3(String r3) {
this.r3 = r3;
}
public String getR4() {
return this.r4;
}
public void setR4(String r4) {
this.r4 = r4;
}
public String getR5() {
return this.r5;
}
public void setR5(String r5) {
this.r5 = r5;
}
public String getR6() {
return this.r6;
}
public void setR6(String r6) {
this.r6 = r6;
}
public String getR7() {
return this.r7;
}
public void setR7(String r7) {
this.r7 = r7;
}
public String getR8() {
return this.r8;
}
public void setR8(String r8) {
this.r8 = r8;
}
public String getR9() {
return this.r9;
}
public void setR9(String r9) {
this.r9 = r9;
}
public String getR10() {
return this.r10;
}
public void setR10(String r10) {
this.r10 = r10;
}
public String getR11() {
return this.r11;
}
public void setR11(String r11) {
this.r11 = r11;
}
public String getR12() {
return this.r12;
}
public void setR12(String r12) {
this.r12 = r12;
}
public String getR13() {
return this.r13;
}
public void setR13(String r13) {
this.r13 = r13;
}
public String getR14() {
return this.r14;
}
public void setR14(String r14) {
this.r14 = r14;
}
public String getR15() {
return this.r15;
}
public void setR15(String r15) {
this.r15 = r15;
}
public String getR16() {
return this.r16;
}
public void setR16(String r16) {
this.r16 = r16;
}
public String getR17() {
return this.r17;
}
public void setR17(String r17) {
this.r17 = r17;
}
public String getR18() {
return this.r18;
}
public void setR18(String r18) {
this.r18 = r18;
}
public String getR19() {
return this.r19;
}
public void setR19(String r19) {
this.r19 = r19;
}
public String getR20() {
return this.r20;
}
public void setR20(String r20) {
this.r20 = r20;
}
public String getR21() {
return this.r21;
}
public void setR21(String r21) {
this.r21 = r21;
}
public String getR22() {
return this.r22;
}
public void setR22(String r22) {
this.r22 = r22;
}
public String getR23() {
return this.r23;
}
public void setR23(String r23) {
this.r23 = r23;
}
public String getR24() {
return this.r24;
}
public void setR24(String r24) {
this.r24 = r24;
}
public String getR25() {
return this.r25;
}
public void setR25(String r25) {
this.r25 = r25;
}
public String getR26() {
return this.r26;
}
public void setR26(String r26) {
this.r26 = r26;
}
public String getR27() {
return this.r27;
}
public void setR27(String r27) {
this.r27 = r27;
}
public String getR28() {
return this.r28;
}
public void setR28(String r28) {
this.r28 = r28;
}
public String getR29() {
return this.r29;
}
public void setR29(String r29) {
this.r29 = r29;
}
public String getR30() {
return this.r30;
}
public void setR30(String r30) {
this.r30 = r30;
}
public String getR31() {
return this.r31;
}
public void setR31(String r31) {
this.r31 = r31;
}
public String getR32() {
return this.r32;
}
public void setR32(String r32) {
this.r32 = r32;
}
public String getR33() {
return this.r33;
}
public void setR33(String r33) {
this.r33 = r33;
}
public String getR34() {
return this.r34;
}
public void setR34(String r34) {
this.r34 = r34;
}
public String getR35() {
return this.r35;
}
public void setR35(String r35) {
this.r35 = r35;
}
public String getR36() {
return this.r36;
}
public void setR36(String r36) {
this.r36 = r36;
}
public String getR37() {
return this.r37;
}
public void setR37(String r37) {
this.r37 = r37;
}
public String getR38() {
return this.r38;
}
public void setR38(String r38) {
this.r38 = r38;
}
public String getR39() {
return this.r39;
}
public void setR39(String r39) {
this.r39 = r39;
}
public String getR40() {
return this.r40;
}
public void setR40(String r40) {
this.r40 = r40;
}
public String getRt1() {
return this.rt1;
}
public void setRt1(String rt1) {
this.rt1 = rt1;
}
public String getRt2() {
return this.rt2;
}
public void setRt2(String rt2) {
this.rt2 = rt2;
}
public String getRt3() {
return this.rt3;
}
public void setRt3(String rt3) {
this.rt3 = rt3;
}
public String getRt4() {
return this.rt4;
}
public void setRt4(String rt4) {
this.rt4 = rt4;
}
public String getRt5() {
return this.rt5;
}
public void setRt5(String rt5) {
this.rt5 = rt5;
}
public String getRt6() {
return this.rt6;
}
public void setRt6(String rt6) {
this.rt6 = rt6;
}
public String getRt7() {
return this.rt7;
}
public void setRt7(String rt7) {
this.rt7 = rt7;
}
public String getRt8() {
return this.rt8;
}
public void setRt8(String rt8) {
this.rt8 = rt8;
}
public String getRt9() {
return this.rt9;
}
public void setRt9(String rt9) {
this.rt9 = rt9;
}
public String getRt10() {
return this.rt10;
}
public void setRt10(String rt10) {
this.rt10 = rt10;
}
public long getTimeTakenR1() {
return this.timeTakenR1;
}
public void setTimeTakenR1(long timeTakenR1) {
this.timeTakenR1 = timeTakenR1;
}
public long getTimeTakenR2() {
return this.timeTakenR2;
}
public void setTimeTakenR2(long timeTakenR2) {
this.timeTakenR2 = timeTakenR2;
}
public long getTimeTakenR3() {
return this.timeTakenR3;
}
public void setTimeTakenR3(long timeTakenR3) {
this.timeTakenR3 = timeTakenR3;
}
public long getTimeTakenR4() {
return this.timeTakenR4;
}
public void setTimeTakenR4(long timeTakenR4) {
this.timeTakenR4 = timeTakenR4;
}
public long getTimeTakenR5() {
return this.timeTakenR5;
}
public void setTimeTakenR5(long timeTakenR5) {
this.timeTakenR5 = timeTakenR5;
}
public long getTimeTakenR6() {
return this.timeTakenR6;
}
public void setTimeTakenR6(long timeTakenR6) {
this.timeTakenR6 = timeTakenR6;
}
public long getTimeTakenR7() {
return this.timeTakenR7;
}
public void setTimeTakenR7(long timeTakenR7) {
this.timeTakenR7 = timeTakenR7;
}
public long getTimeTakenR8() {
return this.timeTakenR8;
}
public void setTimeTakenR8(long timeTakenR8) {
this.timeTakenR8 = timeTakenR8;
}
public long getTimeTakenR9() {
return this.timeTakenR9;
}
public void setTimeTakenR9(long timeTakenR9) {
this.timeTakenR9 = timeTakenR9;
}
public long getTimeTakenR10() {
return this.timeTakenR10;
}
public void setTimeTakenR10(long timeTakenR10) {
this.timeTakenR10 = timeTakenR10;
}
public long getTimeTakenR11() {
return this.timeTakenR11;
}
public void setTimeTakenR11(long timeTakenR11) {
this.timeTakenR11 = timeTakenR11;
}
public long getTimeTakenR12() {
return this.timeTakenR12;
}
public void setTimeTakenR12(long timeTakenR12) {
this.timeTakenR12 = timeTakenR12;
}
public long getTimeTakenR13() {
return this.timeTakenR13;
}
public void setTimeTakenR13(long timeTakenR13) {
this.timeTakenR13 = timeTakenR13;
}
public long getTimeTakenR14() {
return this.timeTakenR14;
}
public void setTimeTakenR14(long timeTakenR14) {
this.timeTakenR14 = timeTakenR14;
}
public long getTimeTakenR15() {
return this.timeTakenR15;
}
public void setTimeTakenR15(long timeTakenR15) {
this.timeTakenR15 = timeTakenR15;
}
public long getTimeTakenR16() {
return this.timeTakenR16;
}
public void setTimeTakenR16(long timeTakenR16) {
this.timeTakenR16 = timeTakenR16;
}
public long getTimeTakenR17() {
return this.timeTakenR17;
}
public void setTimeTakenR17(long timeTakenR17) {
this.timeTakenR17 = timeTakenR17;
}
public long getTimeTakenR18() {
return this.timeTakenR18;
}
public void setTimeTakenR18(long timeTakenR18) {
this.timeTakenR18 = timeTakenR18;
}
public long getTimeTakenR19() {
return this.timeTakenR19;
}
public void setTimeTakenR19(long timeTakenR19) {
this.timeTakenR19 = timeTakenR19;
}
public long getTimeTakenR20() {
return this.timeTakenR20;
}
public void setTimeTakenR20(long timeTakenR20) {
this.timeTakenR20 = timeTakenR20;
}
public long getTimeTakenR21() {
return this.timeTakenR21;
}
public void setTimeTakenR21(long timeTakenR21) {
this.timeTakenR21 = timeTakenR21;
}
public long getTimeTakenR22() {
return this.timeTakenR22;
}
public void setTimeTakenR22(long timeTakenR22) {
this.timeTakenR22 = timeTakenR22;
}
public long getTimeTakenR23() {
return this.timeTakenR23;
}
public void setTimeTakenR23(long timeTakenR23) {
this.timeTakenR23 = timeTakenR23;
}
public long getTimeTakenR24() {
return this.timeTakenR24;
}
public void setTimeTakenR24(long timeTakenR24) {
this.timeTakenR24 = timeTakenR24;
}
public long getTimeTakenR25() {
return this.timeTakenR25;
}
public void setTimeTakenR25(long timeTakenR25) {
this.timeTakenR25 = timeTakenR25;
}
public long getTimeTakenR26() {
return this.timeTakenR26;
}
public void setTimeTakenR26(long timeTakenR26) {
this.timeTakenR26 = timeTakenR26;
}
public long getTimeTakenR27() {
return this.timeTakenR27;
}
public void setTimeTakenR27(long timeTakenR27) {
this.timeTakenR27 = timeTakenR27;
}
public long getTimeTakenR28() {
return this.timeTakenR28;
}
public void setTimeTakenR28(long timeTakenR28) {
this.timeTakenR28 = timeTakenR28;
}
public long getTimeTakenR29() {
return this.timeTakenR29;
}
public void setTimeTakenR29(long timeTakenR29) {
this.timeTakenR29 = timeTakenR29;
}
public long getTimeTakenR30() {
return this.timeTakenR30;
}
public void setTimeTakenR30(long timeTakenR30) {
this.timeTakenR30 = timeTakenR30;
}
public long getTimeTakenR31() {
return this.timeTakenR31;
}
public void setTimeTakenR31(long timeTakenR31) {
this.timeTakenR31 = timeTakenR31;
}
public long getTimeTakenR32() {
return this.timeTakenR32;
}
public void setTimeTakenR32(long timeTakenR32) {
this.timeTakenR32 = timeTakenR32;
}
public long getTimeTakenR33() {
return this.timeTakenR33;
}
public void setTimeTakenR33(long timeTakenR33) {
this.timeTakenR33 = timeTakenR33;
}
public long getTimeTakenR34() {
return this.timeTakenR34;
}
public void setTimeTakenR34(long timeTakenR34) {
this.timeTakenR34 = timeTakenR34;
}
public long getTimeTakenR35() {
return this.timeTakenR35;
}
public void setTimeTakenR35(long timeTakenR35) {
this.timeTakenR35 = timeTakenR35;
}
public long getTimeTakenR36() {
return this.timeTakenR36;
}
public void setTimeTakenR36(long timeTakenR36) {
this.timeTakenR36 = timeTakenR36;
}
public long getTimeTakenR37() {
return this.timeTakenR37;
}
public void setTimeTakenR37(long timeTakenR37) {
this.timeTakenR37 = timeTakenR37;
}
public long getTimeTakenR38() {
return this.timeTakenR38;
}
public void setTimeTakenR38(long timeTakenR38) {
this.timeTakenR38 = timeTakenR38;
}
public long getTimeTakenR39() {
return this.timeTakenR39;
}
public void setTimeTakenR39(long timeTakenR39) {
this.timeTakenR39 = timeTakenR39;
}
public long getTimeTakenR40() {
return this.timeTakenR40;
}
public void setTimeTakenR40(long timeTakenR40) {
this.timeTakenR40 = timeTakenR40;
}
public long getTimeTakenRt1() {
return this.timeTakenRt1;
}
public void setTimeTakenRt1(long timeTakenRt1) {
this.timeTakenRt1 = timeTakenRt1;
}
public long getTimeTakenRt2() {
return this.timeTakenRt2;
}
public void setTimeTakenRt2(long timeTakenRt2) {
this.timeTakenRt2 = timeTakenRt2;
}
public long getTimeTakenRt3() {
return this.timeTakenRt3;
}
public void setTimeTakenRt3(long timeTakenRt3) {
this.timeTakenRt3 = timeTakenRt3;
}
public long getTimeTakenRt4() {
return this.timeTakenRt4;
}
public void setTimeTakenRt4(long timeTakenRt4) {
this.timeTakenRt4 = timeTakenRt4;
}
public long getTimeTakenRt5() {
return this.timeTakenRt5;
}
public void setTimeTakenRt5(long timeTakenRt5) {
this.timeTakenRt5 = timeTakenRt5;
}
public long getTimeTakenRt6() {
return this.timeTakenRt6;
}
public void setTimeTakenRt6(long timeTakenRt6) {
this.timeTakenRt6 = timeTakenRt6;
}
public long getTimeTakenRt7() {
return this.timeTakenRt7;
}
public void setTimeTakenRt7(long timeTakenRt7) {
this.timeTakenRt7 = timeTakenRt7;
}
public long getTimeTakenRt8() {
return this.timeTakenRt8;
}
public void setTimeTakenRt8(long timeTakenRt8) {
this.timeTakenRt8 = timeTakenRt8;
}
public long getTimeTakenRt9() {
return this.timeTakenRt9;
}
public void setTimeTakenRt9(long timeTakenRt9) {
this.timeTakenRt9 = timeTakenRt9;
}
public long getTimeTakenRt10() {
return this.timeTakenRt10;
}
public void setTimeTakenRt10(long timeTakenRt10) {
this.timeTakenRt10 = timeTakenRt10;
}
public Date getTimeEventR1() {
return this.timeEventR1;
}
public void setTimeEventR1(Date timeEventR1) {
this.timeEventR1 = timeEventR1;
}
public Date getTimeEventR2() {
return this.timeEventR2;
}
public void setTimeEventR2(Date timeEventR2) {
this.timeEventR2 = timeEventR2;
}
public Date getTimeEventR3() {
return this.timeEventR3;
}
public void setTimeEventR3(Date timeEventR3) {
this.timeEventR3 = timeEventR3;
}
public Date getTimeEventR4() {
return this.timeEventR4;
}
public void setTimeEventR4(Date timeEventR4) {
this.timeEventR4 = timeEventR4;
}
public Date getTimeEventR5() {
return this.timeEventR5;
}
public void setTimeEventR5(Date timeEventR5) {
this.timeEventR5 = timeEventR5;
}
public Date getTimeEventR6() {
return this.timeEventR6;
}
public void setTimeEventR6(Date timeEventR6) {
this.timeEventR6 = timeEventR6;
}
public Date getTimeEventR7() {
return this.timeEventR7;
}
public void setTimeEventR7(Date timeEventR7) {
this.timeEventR7 = timeEventR7;
}
public Date getTimeEventR8() {
return this.timeEventR8;
}
public void setTimeEventR8(Date timeEventR8) {
this.timeEventR8 = timeEventR8;
}
public Date getTimeEventR9() {
return this.timeEventR9;
}
public void setTimeEventR9(Date timeEventR9) {
this.timeEventR9 = timeEventR9;
}
public Date getTimeEventR10() {
return this.timeEventR10;
}
public void setTimeEventR10(Date timeEventR10) {
this.timeEventR10 = timeEventR10;
}
public Date getTimeEventR11() {
return this.timeEventR11;
}
public void setTimeEventR11(Date timeEventR11) {
this.timeEventR11 = timeEventR11;
}
public Date getTimeEventR12() {
return this.timeEventR12;
}
public void setTimeEventR12(Date timeEventR12) {
this.timeEventR12 = timeEventR12;
}
public Date getTimeEventR13() {
return this.timeEventR13;
}
public void setTimeEventR13(Date timeEventR13) {
this.timeEventR13 = timeEventR13;
}
public Date getTimeEventR14() {
return this.timeEventR14;
}
public void setTimeEventR14(Date timeEventR14) {
this.timeEventR14 = timeEventR14;
}
public Date getTimeEventR15() {
return this.timeEventR15;
}
public void setTimeEventR15(Date timeEventR15) {
this.timeEventR15 = timeEventR15;
}
public Date getTimeEventR16() {
return this.timeEventR16;
}
public void setTimeEventR16(Date timeEventR16) {
this.timeEventR16 = timeEventR16;
}
public Date getTimeEventR17() {
return this.timeEventR17;
}
public void setTimeEventR17(Date timeEventR17) {
this.timeEventR17 = timeEventR17;
}
public Date getTimeEventR18() {
return this.timeEventR18;
}
public void setTimeEventR18(Date timeEventR18) {
this.timeEventR18 = timeEventR18;
}
public Date getTimeEventR19() {
return this.timeEventR19;
}
public void setTimeEventR19(Date timeEventR19) {
this.timeEventR19 = timeEventR19;
}
public Date getTimeEventR20() {
return this.timeEventR20;
}
public void setTimeEventR20(Date timeEventR20) {
this.timeEventR20 = timeEventR20;
}
public Date getTimeEventR21() {
return this.timeEventR21;
}
public void setTimeEventR21(Date timeEventR21) {
this.timeEventR21 = timeEventR21;
}
public Date getTimeEventR22() {
return this.timeEventR22;
}
public void setTimeEventR22(Date timeEventR22) {
this.timeEventR22 = timeEventR22;
}
public Date getTimeEventR23() {
return this.timeEventR23;
}
public void setTimeEventR23(Date timeEventR23) {
this.timeEventR23 = timeEventR23;
}
public Date getTimeEventR24() {
return this.timeEventR24;
}
public void setTimeEventR24(Date timeEventR24) {
this.timeEventR24 = timeEventR24;
}
public Date getTimeEventR25() {
return this.timeEventR25;
}
public void setTimeEventR25(Date timeEventR25) {
this.timeEventR25 = timeEventR25;
}
public Date getTimeEventR26() {
return this.timeEventR26;
}
public void setTimeEventR26(Date timeEventR26) {
this.timeEventR26 = timeEventR26;
}
public Date getTimeEventR27() {
return this.timeEventR27;
}
public void setTimeEventR27(Date timeEventR27) {
this.timeEventR27 = timeEventR27;
}
public Date getTimeEventR28() {
return this.timeEventR28;
}
public void setTimeEventR28(Date timeEventR28) {
this.timeEventR28 = timeEventR28;
}
public Date getTimeEventR29() {
return this.timeEventR29;
}
public void setTimeEventR29(Date timeEventR29) {
this.timeEventR29 = timeEventR29;
}
public Date getTimeEventR30() {
return this.timeEventR30;
}
public void setTimeEventR30(Date timeEventR30) {
this.timeEventR30 = timeEventR30;
}
public Date getTimeEventR31() {
return this.timeEventR31;
}
public void setTimeEventR31(Date timeEventR31) {
this.timeEventR31 = timeEventR31;
}
public Date getTimeEventR32() {
return this.timeEventR32;
}
public void setTimeEventR32(Date timeEventR32) {
this.timeEventR32 = timeEventR32;
}
public Date getTimeEventR33() {
return this.timeEventR33;
}
public void setTimeEventR33(Date timeEventR33) {
this.timeEventR33 = timeEventR33;
}
public Date getTimeEventR34() {
return this.timeEventR34;
}
public void setTimeEventR34(Date timeEventR34) {
this.timeEventR34 = timeEventR34;
}
public Date getTimeEventR35() {
return this.timeEventR35;
}
public void setTimeEventR35(Date timeEventR35) {
this.timeEventR35 = timeEventR35;
}
public Date getTimeEventR36() {
return this.timeEventR36;
}
public void setTimeEventR36(Date timeEventR36) {
this.timeEventR36 = timeEventR36;
}
public Date getTimeEventR37() {
return this.timeEventR37;
}
public void setTimeEventR37(Date timeEventR37) {
this.timeEventR37 = timeEventR37;
}
public Date getTimeEventR38() {
return this.timeEventR38;
}
public void setTimeEventR38(Date timeEventR38) {
this.timeEventR38 = timeEventR38;
}
public Date getTimeEventR39() {
return this.timeEventR39;
}
public void setTimeEventR39(Date timeEventR39) {
this.timeEventR39 = timeEventR39;
}
public Date getTimeEventR40() {
return this.timeEventR40;
}
public void setTimeEventR40(Date timeEventR40) {
this.timeEventR40 = timeEventR40;
}
public long getTimeEventRt1() {
return this.timeEventRt1;
}
public void setTimeEventRt1(long timeEventRt1) {
this.timeEventRt1 = timeEventRt1;
}
public long getTimeEventRt2() {
return this.timeEventRt2;
}
public void setTimeEventRt2(long timeEventRt2) {
this.timeEventRt2 = timeEventRt2;
}
public long getTimeEventRt3() {
return this.timeEventRt3;
}
public void setTimeEventRt3(long timeEventRt3) {
this.timeEventRt3 = timeEventRt3;
}
public long getTimeEventRt4() {
return this.timeEventRt4;
}
public void setTimeEventRt4(long timeEventRt4) {
this.timeEventRt4 = timeEventRt4;
}
public long getTimeEventRt5() {
return this.timeEventRt5;
}
public void setTimeEventRt5(long timeEventRt5) {
this.timeEventRt5 = timeEventRt5;
}
public long getTimeEventRt6() {
return this.timeEventRt6;
}
public void setTimeEventRt6(long timeEventRt6) {
this.timeEventRt6 = timeEventRt6;
}
public long getTimeEventRt7() {
return this.timeEventRt7;
}
public void setTimeEventRt7(long timeEventRt7) {
this.timeEventRt7 = timeEventRt7;
}
public long getTimeEventRt8() {
return this.timeEventRt8;
}
public void setTimeEventRt8(long timeEventRt8) {
this.timeEventRt8 = timeEventRt8;
}
public long getTimeEventRt9() {
return this.timeEventRt9;
}
public void setTimeEventRt9(long timeEventRt9) {
this.timeEventRt9 = timeEventRt9;
}
public long getTimeEventRt10() {
return this.timeEventRt10;
}
public void setTimeEventRt10(long timeEventRt10) {
this.timeEventRt10 = timeEventRt10;
}
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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;
11,7 → 11,9
 
 
private long id;
private Date data;
private Date dataEvento;
private long tempoLevado;
private int ordemResposta;
private int intResposta;
private OlapStarQuestionario starQuestionario;
private OlapEntityQuestionarioPerguntaGrupo perguntaGrupo;
28,13 → 30,27
public void setId(long id) {
this.id = id;
}
public Date getData() {
return this.data;
public Date getDataEvento() {
return this.dataEvento;
}
public void setData(Date data) {
this.data = data;
public void setDataEvento(Date dataEvento) {
this.dataEvento = dataEvento;
}
public long getTempoLevado() {
return this.tempoLevado;
}
public void setTempoLevado(long tempoLevado) {
this.tempoLevado = tempoLevado;
}
public int getOrdemResposta() {
return this.ordemResposta;
}
public void setOrdemResposta(int ordemResposta) {
this.ordemResposta = ordemResposta;
}
public int getIntResposta() {
return this.intResposta;
}
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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;
13,7 → 13,9
private long id;
private boolean respondido;
private Date dataInicio;
private long tempoTotal;
private Date dataFim;
private long questionario;
private OlapEntityQuestionarioTipologia tipologia;
private OlapEntityQuestionarioDocente docente;
private OlapEntityQuestionarioTurma turma;
24,7 → 26,6
private OlapEntityQuestionarioPeriodo periodo;
private OlapEntityQuestionarioAno ano;
private OlapHistoryDimension timeLine;
private Questionario questionario;
 
public OlapStarQuestionario() {
}
51,6 → 52,13
public void setDataInicio(Date dataInicio) {
this.dataInicio = dataInicio;
}
public long getTempoTotal() {
return this.tempoTotal;
}
public void setTempoTotal(long tempoTotal) {
this.tempoTotal = tempoTotal;
}
public Date getDataFim() {
return this.dataFim;
}
58,6 → 66,13
public void setDataFim(Date dataFim) {
this.dataFim = dataFim;
}
public long getQuestionario() {
return this.questionario;
}
public void setQuestionario(long questionario) {
this.questionario = questionario;
}
public OlapEntityQuestionarioTipologia getTipologia() {
return this.tipologia;
}
128,13 → 143,6
public void setTimeLine(OlapHistoryDimension timeLine) {
this.timeLine = timeLine;
}
public Questionario getQuestionario() {
return this.questionario;
}
public void setQuestionario(Questionario questionario) {
this.questionario = questionario;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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
New file
0,0 → 1,186
package pt.estgp.estgweb.domain;
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* QuestionarioPedagogicoUnidadeCurricularAfeta generated by hbm2java
*/
public abstract class QuestionarioPedagogicoUnidadeCurricularAfeta extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private String codigoUnidade;
private String nome;
private int addedTipologias;
private boolean marked;
private int profs;
private int turmas;
private int students;
private int turmaWithoutProf;
private int profsWithoutTurma;
private int tipologias;
private boolean vista;
private boolean usar;
private String obs;
private String tipologiasJson;
private QuestionarioPedagogicoCursoAfeto cursoAfeto;
private CourseUnit courseUnit;
private Set<QuestionarioPedagogicoTipologiaRequisitada> tipologiasRequisitadas = new HashSet<QuestionarioPedagogicoTipologiaRequisitada>(0);
 
public QuestionarioPedagogicoUnidadeCurricularAfeta() {
}
 
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getCodigoUnidade() {
return this.codigoUnidade;
}
public void setCodigoUnidade(String codigoUnidade) {
this.codigoUnidade = codigoUnidade;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getAddedTipologias() {
return this.addedTipologias;
}
public void setAddedTipologias(int addedTipologias) {
this.addedTipologias = addedTipologias;
}
public boolean isMarked() {
return this.marked;
}
public void setMarked(boolean marked) {
this.marked = marked;
}
public int getProfs() {
return this.profs;
}
public void setProfs(int profs) {
this.profs = profs;
}
public int getTurmas() {
return this.turmas;
}
public void setTurmas(int turmas) {
this.turmas = turmas;
}
public int getStudents() {
return this.students;
}
public void setStudents(int students) {
this.students = students;
}
public int getTurmaWithoutProf() {
return this.turmaWithoutProf;
}
public void setTurmaWithoutProf(int turmaWithoutProf) {
this.turmaWithoutProf = turmaWithoutProf;
}
public int getProfsWithoutTurma() {
return this.profsWithoutTurma;
}
public void setProfsWithoutTurma(int profsWithoutTurma) {
this.profsWithoutTurma = profsWithoutTurma;
}
public int getTipologias() {
return this.tipologias;
}
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;
}
public void setObs(String obs) {
this.obs = obs;
}
public String getTipologiasJson() {
return this.tipologiasJson;
}
public void setTipologiasJson(String tipologiasJson) {
this.tipologiasJson = tipologiasJson;
}
public QuestionarioPedagogicoCursoAfeto getCursoAfeto() {
return this.cursoAfeto;
}
public void setCursoAfeto(QuestionarioPedagogicoCursoAfeto cursoAfeto) {
this.cursoAfeto = cursoAfeto;
}
public CourseUnit getCourseUnit() {
return this.courseUnit;
}
public void setCourseUnit(CourseUnit courseUnit) {
this.courseUnit = courseUnit;
}
public Set<QuestionarioPedagogicoTipologiaRequisitada> getTipologiasRequisitadas() {
return this.tipologiasRequisitadas;
}
public void setTipologiasRequisitadas(Set<QuestionarioPedagogicoTipologiaRequisitada> tipologiasRequisitadas) {
this.tipologiasRequisitadas = tipologiasRequisitadas;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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
New file
0,0 → 1,72
package pt.estgp.estgweb.domain;
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* QuestionarioPedagogicoAlunoRequisitado generated by hbm2java
*/
public abstract class QuestionarioPedagogicoAlunoRequisitado extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private Student aluno;
private QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada;
private QuestionarioRespostaRequisitada respostaRequisitada;
 
public QuestionarioPedagogicoAlunoRequisitado() {
}
 
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Student getAluno() {
return this.aluno;
}
public void setAluno(Student aluno) {
this.aluno = aluno;
}
public QuestionarioPedagogicoTipologiaRequisitada getTipologiaRequisitada() {
return this.tipologiaRequisitada;
}
public void setTipologiaRequisitada(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada) {
this.tipologiaRequisitada = tipologiaRequisitada;
}
public QuestionarioRespostaRequisitada getRespostaRequisitada() {
return this.respostaRequisitada;
}
public void setRespostaRequisitada(QuestionarioRespostaRequisitada respostaRequisitada) {
this.respostaRequisitada = respostaRequisitada;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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;
13,8 → 13,8
private long id;
private Date updateDate;
private Date saveDate;
private Date startDate;
private String description;
private String logStates;
private String year;
private String semestre;
private String iAnswersProcessor;
140,6 → 140,9
private String group9Code;
private String group10Code;
private String state;
private String substate;
private long answerGenerationTaskId;
private long courseSelectionTaskId;
private QuestionarioHistoryDrive questionarioHistoryDrive;
 
public Questionario() {
167,13 → 170,6
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Date getStartDate() {
return this.startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public String getDescription() {
return this.description;
}
181,6 → 177,13
public void setDescription(String description) {
this.description = description;
}
public String getLogStates() {
return this.logStates;
}
public void setLogStates(String logStates) {
this.logStates = logStates;
}
public String getYear() {
return this.year;
}
1056,6 → 1059,27
public void setState(String state) {
this.state = state;
}
public String getSubstate() {
return this.substate;
}
public void setSubstate(String substate) {
this.substate = substate;
}
public long getAnswerGenerationTaskId() {
return this.answerGenerationTaskId;
}
public void setAnswerGenerationTaskId(long answerGenerationTaskId) {
this.answerGenerationTaskId = answerGenerationTaskId;
}
public long getCourseSelectionTaskId() {
return this.courseSelectionTaskId;
}
public void setCourseSelectionTaskId(long courseSelectionTaskId) {
this.courseSelectionTaskId = courseSelectionTaskId;
}
public QuestionarioHistoryDrive getQuestionarioHistoryDrive() {
return this.questionarioHistoryDrive;
}
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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/dao/impl/RecordDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitSummaryDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RecordOtherDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapHistoryDimensionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserRoleConfigDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitEvaluationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SruSourceDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyStructuralNodeDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioRespostaRequisitadaDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class QuestionarioRespostaRequisitada.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.QuestionarioRespostaRequisitada;
 
 
public class QuestionarioRespostaRequisitadaDao extends AbstractDao<QuestionarioRespostaRequisitada> {
//public class QuestionarioRespostaRequisitadaDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(QuestionarioRespostaRequisitadaDao.class);
 
protected static QuestionarioRespostaRequisitadaDao myInstance = null;
 
protected QuestionarioRespostaRequisitadaDao(){
super();
}
 
public static QuestionarioRespostaRequisitadaDao getInstance() {
if (myInstance == null)
myInstance = new QuestionarioRespostaRequisitadaDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return QuestionarioRespostaRequisitada.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/PageSectionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/PageExternalUrlDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitBlogDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RecordProjectDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioPergunta1_5Dao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioCursoDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapStarQuestionarioAnswerDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationGradesStatusEpocaDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitTurmaDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RecordJobDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ManagedIdentifierCollectionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitAnnouncementDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/JobServiceTaskDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ProcessDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/JobServiceTaskParameterDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/DigitalDeliveryCategoryDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseYearDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ImageDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioCursoDegreeDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ComunicationFolderDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RepositoryFileVersionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AssessmentDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitQuestionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitProgramDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogPostDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioHistoryDriveDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitAssignementDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoCursoAfetoDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class QuestionarioPedagogicoCursoAfeto.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto;
 
 
public class QuestionarioPedagogicoCursoAfetoDao extends AbstractDao<QuestionarioPedagogicoCursoAfeto> {
//public class QuestionarioPedagogicoCursoAfetoDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(QuestionarioPedagogicoCursoAfetoDao.class);
 
protected static QuestionarioPedagogicoCursoAfetoDao myInstance = null;
 
protected QuestionarioPedagogicoCursoAfetoDao(){
super();
}
 
public static QuestionarioPedagogicoCursoAfetoDao getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoCursoAfetoDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return QuestionarioPedagogicoCursoAfeto.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDeliverableDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioRespostaDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class QuestionarioResposta.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.QuestionarioResposta;
 
 
public class QuestionarioRespostaDao extends AbstractDao<QuestionarioResposta> {
//public class QuestionarioRespostaDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(QuestionarioRespostaDao.class);
 
protected static QuestionarioRespostaDao myInstance = null;
 
protected QuestionarioRespostaDao(){
super();
}
 
public static QuestionarioRespostaDao getInstance() {
if (myInstance == null)
myInstance = new QuestionarioRespostaDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return QuestionarioResposta.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioTipologiaDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationGradesEpocaAvaliacaoDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/PageContentDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/JobDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GenericUserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/JobParameterDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyResponseDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/PageRepositoryFileDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoAlunoRequisitadoDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class QuestionarioPedagogicoAlunoRequisitado.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoAlunoRequisitado;
 
 
public class QuestionarioPedagogicoAlunoRequisitadoDao extends AbstractDao<QuestionarioPedagogicoAlunoRequisitado> {
//public class QuestionarioPedagogicoAlunoRequisitadoDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(QuestionarioPedagogicoAlunoRequisitadoDao.class);
 
protected static QuestionarioPedagogicoAlunoRequisitadoDao myInstance = null;
 
protected QuestionarioPedagogicoAlunoRequisitadoDao(){
super();
}
 
public static QuestionarioPedagogicoAlunoRequisitadoDao getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoAlunoRequisitadoDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return QuestionarioPedagogicoAlunoRequisitado.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/JobServiceTaskSchedulerParameterDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioPerguntaGrupoDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ProcessEventFileDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ProcessEventDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserSessionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyQuestionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioUnidadeDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapStarQuestionarioDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioDocenteDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioTurmaDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AssessmentResponseDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyQuestionItemDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyQuestionAnswerDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RecordPaperDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioInstituicaoDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SigesUserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitBlogPostDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyStatsGraphicDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TeacherDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/PageDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioPeriodoDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/JobServiceTaskSchedulerDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AssessmentQuestionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RepositoryFileDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/DigitalDeliveryDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TesteDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/MetaProcessDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/StudentDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/DigitalDeliveryTargetDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioAnoDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoUnidadeCurricularAfetaDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class QuestionarioPedagogicoUnidadeCurricularAfeta.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfeta;
 
 
public class QuestionarioPedagogicoUnidadeCurricularAfetaDao extends AbstractDao<QuestionarioPedagogicoUnidadeCurricularAfeta> {
//public class QuestionarioPedagogicoUnidadeCurricularAfetaDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(QuestionarioPedagogicoUnidadeCurricularAfetaDao.class);
 
protected static QuestionarioPedagogicoUnidadeCurricularAfetaDao myInstance = null;
 
protected QuestionarioPedagogicoUnidadeCurricularAfetaDao(){
super();
}
 
public static QuestionarioPedagogicoUnidadeCurricularAfetaDao getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoUnidadeCurricularAfetaDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return QuestionarioPedagogicoUnidadeCurricularAfeta.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GroupDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationDirectoryDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AssessmentQuestionItemDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUserAssociationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationGradesDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AssessmentQuestionAnswerDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AssessmentQuestionPossibleAnswerDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RecordThesisDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ManagedIdentifierDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitProgramPart2Dao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SurveyQuestionCandidateAnswerDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitGradeDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/RecordEventOrganizationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ReminderDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/PageExternalObjectDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SruSourceCollectionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Mar/2016 21:36:21 by Hibernate Tools 3.2.0.b9
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoTipologiaRequisitadaDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 25/Mar/2016 8:59:00 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class QuestionarioPedagogicoTipologiaRequisitada.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoTipologiaRequisitada;
 
 
public class QuestionarioPedagogicoTipologiaRequisitadaDao extends AbstractDao<QuestionarioPedagogicoTipologiaRequisitada> {
//public class QuestionarioPedagogicoTipologiaRequisitadaDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(QuestionarioPedagogicoTipologiaRequisitadaDao.class);
 
protected static QuestionarioPedagogicoTipologiaRequisitadaDao myInstance = null;
 
protected QuestionarioPedagogicoTipologiaRequisitadaDao(){
super();
}
 
public static QuestionarioPedagogicoTipologiaRequisitadaDao getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoTipologiaRequisitadaDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return QuestionarioPedagogicoTipologiaRequisitada.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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
New file
0,0 → 1,55
package pt.estgp.estgweb.domain;
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* QuestionarioRespostaRequisitada generated by hbm2java
*/
public abstract class QuestionarioRespostaRequisitada extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Questionario questionario;
private User user;
private QuestionarioResposta resposta;
 
public QuestionarioRespostaRequisitada() {
}
 
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Questionario getQuestionario() {
return this.questionario;
}
public void setQuestionario(Questionario questionario) {
this.questionario = questionario;
}
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
public QuestionarioResposta getResposta() {
return this.resposta;
}
public void setResposta(QuestionarioResposta resposta) {
this.resposta = resposta;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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
New file
0,0 → 1,106
package pt.estgp.estgweb.domain;
// Generated 28/Mar/2016 14:15:16 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* QuestionarioPedagogicoTipologiaRequisitada generated by hbm2java
*/
public abstract class QuestionarioPedagogicoTipologiaRequisitada extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private String cdDocente;
private String cdTurma;
private String cdTipologia;
private String nomeDocente;
private String dsTipologia;
private QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta;
private Set<QuestionarioPedagogicoAlunoRequisitado> alunosRequisitados = new HashSet<QuestionarioPedagogicoAlunoRequisitado>(0);
 
public QuestionarioPedagogicoTipologiaRequisitada() {
}
 
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getCdDocente() {
return this.cdDocente;
}
public void setCdDocente(String cdDocente) {
this.cdDocente = cdDocente;
}
public String getCdTurma() {
return this.cdTurma;
}
public void setCdTurma(String cdTurma) {
this.cdTurma = cdTurma;
}
public String getCdTipologia() {
return this.cdTipologia;
}
public void setCdTipologia(String cdTipologia) {
this.cdTipologia = cdTipologia;
}
public String getNomeDocente() {
return this.nomeDocente;
}
public void setNomeDocente(String nomeDocente) {
this.nomeDocente = nomeDocente;
}
public String getDsTipologia() {
return this.dsTipologia;
}
public void setDsTipologia(String dsTipologia) {
this.dsTipologia = dsTipologia;
}
public QuestionarioPedagogicoUnidadeCurricularAfeta getUnidadeAfeta() {
return this.unidadeAfeta;
}
public void setUnidadeAfeta(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta) {
this.unidadeAfeta = unidadeAfeta;
}
public Set<QuestionarioPedagogicoAlunoRequisitado> getAlunosRequisitados() {
return this.alunosRequisitados;
}
public void setAlunosRequisitados(Set<QuestionarioPedagogicoAlunoRequisitado> alunosRequisitados) {
this.alunosRequisitados = alunosRequisitados;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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 21/Mar/2016 21:36:05 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/build.properties
155,6 → 155,9
email.templates.dir.build=${build.dir.classes}${email.templates.dir}
email.templates.dir.conf=${conf.dir}${email.templates.dir}
 
#EMAIL SERVER SMTP GOOGLE
email.password=DUMMY_PASSWORD_GMAIL
 
#email templates
sms.templates.dir=/template/sms
sms.templates.dir.build=${build.dir.classes}${sms.templates.dir}
/branches/v3/impl/etc/bugs/resolved/resolved.txt
1,3 → 1,38
 
SINTOMA
 
Uma classe não grava de maneira nenhuma na base de dados mesmo com um commit logo depois dela
 
Possivel problema
1 - Estamos num ciclo foi feito o load da classe
2 - Foi feito um commit a certa altura
3 - Estamos a alterar propriedades a essa classe depois do commit e do session clear ter sido efetuado
 
Solução
Fazer um reatach da classe antes da alteração
ou um update
 
Exemplo com a classe QuestionarioImpl
 
 
QuestionarioImpl q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId);
while(true)
{
Thread.sleep(5000);
long elapsed = System.currentTimeMillis() - start;
setProgress((int) (((float)elapsed)/((float)total)*100.0f));
commitPartially(); <<<<<COMMIT AQUI
DaoFactory.getQuestionarioDaoImpl().reattach(q); <<< REATACH PARA RESOLVER O PROBLEMA AQUI
if(System.currentTimeMillis() - start > total)
break;
}
setProgress(100);
<<<<ALTERACAO QUE NAO IA PARA A BD
q.setSubStatePedagogicoClass(QuestionarioImpl.SubStatePedagogico.COURSES_ASSIGNED);
commitPartially();
return new DefaultLogMessages();
 
###ANTIGO
2008-05-12 11:23:09,548 ERROR UserSessionFilter:doFilter():86 - java.lang.NullPointerException
java.lang.NullPointerException
at pt.utl.ist.berserk.storage.FilterChainProxy.getExpression(FilterChainProxy.java:194)
28,7 → 63,14
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
 
Resolução:
Filter Chain com nome diferente do especificado no serviço
Resolu��o:
Filter Chain com nome diferente do especificado no servi�o
 
#########################################################################################################################################
#########################################################################################################################################
 
Classes que perderam a referência para outras
 
Possivel causa a mesma da situação do commit e clean da sessão
 
O evict pode retirar um objecto da sessão, quando este volta a ser readmitido, se entretanto já fizemos evict a alguns dos seus
componentes, esses podem passar a null porque sairam da sessão e as referênias perdem-se
/branches/v3/impl/build.xml
465,6 → 465,9
<replacefilter token="@oracle.siges.password@" value="${oracle.siges.password}"/>
 
<!--System instance type specifications-->
 
<replacefilter token="@email.password@" value="${email.password}"/>
<replacefilter token="@test.control.var@" value="${test.control.var}"/>
<replacefilter token="@system.theme@" value="${system.theme}"/>
<replacefilter token="@authentication.policy.service@" value="${authentication.policy.service}"/>
<replacefilter token="@authentication.policy.username.msg.key@" value="${authentication.policy.username.msg.key}"/>