Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1625 → Rev 1626

/branches/v3/impl/conf/WEB-INF/struts/struts-courses.xml
119,6 → 119,11
</action>
 
 
<!--CourseDepartments-->
 
<action path="/user/adminDepartments" forward="page.admin.course.departments"/>
 
 
</action-mappings>
 
</struts-config>
/branches/v3/impl/conf/WEB-INF/struts/tiles-courses.xml
129,4 → 129,11
<put name="body" value="/user/courses/studiesPlansAdministrationEdit.jsp"/>
</definition>
 
<!--Course Departments-->
<definition name="page.admin.course.departments" extends="page.pae.separators.home">
<put name="title" value="Edição de Departamentos"/>
<put name="topnav" value="/user/courses/topnavDepartmentsEdit.jsp"/>
<put name="body" value="/user/courses/departments.jsp"/>
</definition>
 
</tiles-definitions>
/branches/v3/impl/conf/WEB-INF/struts/tiles-configuration.xml
18,7 → 18,7
<put name="body" value="/admin/configuration/configs.jsp"/>
</definition>
 
<definition name="page.configuration.userRoles" extends="page.separators.serviceZone">
<definition name="page.configuration.userRoles" extends="page.pae.separators.home">
<put name="title" value="Configuração Papeis Institucionais"/>
<put name="topnav" value="/user/serviceZone/topnavConfigurationUserRoles.jsp"/>
<put name="body" value="/admin/configuration/userRoles.jsp"/>
/branches/v3/impl/conf/berserk/sd.xml
3075,7 → 3075,22
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
 
<service>
<name>QuestionarioUpdateCheckVarExcludedPedagogico</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>updateCheckVarExcludedPedagogico</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<!--<chain name="AdminsOrQuestionarioUsers"/> E verificado no servico-->
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
<service>
<name>QuestionarioSalvarResposta</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
<description></description>
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java
482,6 → 482,32
public static final String ROLE_BOARD_SCHOOL_ESECS = ConfigProperties.getProperty("school.board.role." + ConfigProperties.getProperty("institution.code.prefix.inverse.ESECS"));
public static final String ROLE_BOARD_SCHOOL_ESS = ConfigProperties.getProperty("school.board.role." + ConfigProperties.getProperty("institution.code.prefix.inverse.ESS"));
 
public static final String INSTITUTIONAL_NAME_ESTG = getInstitutionalName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESTG"));
public static final String INSTITUTIONAL_NAME_ESAE = getInstitutionalName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESAE"));
public static final String INSTITUTIONAL_NAME_ESECS = getInstitutionalName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESECS"));
public static final String INSTITUTIONAL_NAME_ESS = getInstitutionalName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESSS"));
 
public static final String INSTITUTIONAL_SMALL_NAME_ESTG = getInstitutionalSmallName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESTG"));
public static final String INSTITUTIONAL_SMALL_NAME_ESAE = getInstitutionalSmallName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESAE"));
public static final String INSTITUTIONAL_SMALL_NAME_ESECS = getInstitutionalSmallName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESECS"));
public static final String INSTITUTIONAL_SMALL_NAME_ESS = getInstitutionalSmallName(ConfigProperties.getProperty("institution.code.prefix.inverse.ESS"));
 
public static final String INSTITUTIONAL_CODE_ESTG = ConfigProperties.getProperty("institution.code.prefix.inverse.ESTG");
public static final String INSTITUTIONAL_CODE_ESAE = ConfigProperties.getProperty("institution.code.prefix.inverse.ESAE");
public static final String INSTITUTIONAL_CODE_ESECS = ConfigProperties.getProperty("institution.code.prefix.inverse.ESECS");
public static final String INSTITUTIONAL_CODE_ESS = ConfigProperties.getProperty("institution.code.prefix.inverse.ESS");
 
 
public static String getInstitutionalSmallName(String institutionalCode)
{
return ConfigProperties.getProperty("institution.code.prefix." + institutionalCode);
}
 
public static String getInstitutionalName(String institutionalCode)
{
return ConfigProperties.getProperty("institution.code." + institutionalCode);
}
 
public static String ROLE_BOARD_SCHOOL(String institutionCode)
{
return ConfigProperties.getProperty("school.board.role." + institutionCode);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
419,7 → 419,7
else
c.setCdTurma("");
DaoFactory.getCourseUnitDaoImpl().save(c);
logMessages.addMessage(new DefaultLogMessage("import.error", "New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso() + " turma(" + d.getCdTurma() + ")", "see log for details", LogMessageTypeEnum.INFO));
logMessages.addMessage(new DefaultLogMessage("import.warning", "New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso() + " turma(" + d.getCdTurma() + ")", "see log for details", LogMessageTypeEnum.INFO));
logger.info(logMessages.getLastMessage());
serviceLogInfo(logMessages.getLastMessage());
newUnits++;
447,15 → 447,20
checkOrCreateCourseYear(logMessages, year, c.getCourseCode(), this);
//Obter as tipologias de sumarios e aulas e colocar na unidade
fillTipologias(d, (CourseUnitImpl) c);
c.setLastImportDate(new Date());
}
}
}
 
private void fillTipologias(Disciplina d, CourseUnitImpl c) {
try {
CourseUnitImpl.Tipologias t = c.getTipologiasClass();
CourseUnitImpl.Tipologias tipologiasAntes = c.getTipologiasClass();
 
//novo
/*CourseUnitImpl.Tipologias t = c.getTipologiasClass();
if(t == null)
t = new CourseUnitImpl.Tipologias();
t = new CourseUnitImpl.Tipologias();*/
CourseUnitImpl.Tipologias t = new CourseUnitImpl.Tipologias();
 
t.setTipologiasTdocTurma(new ArrayList<CourseUnitImpl.Tipologia>());
for(TipologiasTurma.TipologiaTurma tipologiaTurma : d.getTipologiasTdocTurma().getTipologias())
522,6 → 527,14
}
 
}
/*
* Consiste as exluidas todas das velhas para as novas
*/
consistirTipologiasNovaseAntigas(t.getTipologiasTdocTurma(),tipologiasAntes.getTipologiasTdocTurma());
consistirTipologiasNovaseAntigas(t.getTipologiasSumarios(),tipologiasAntes.getTipologiasSumarios());
consistirTipologiasNovaseAntigas(t.getTipologiasHorarioReferencia(),tipologiasAntes.getTipologiasHorarioReferencia());
if(c.getId() == 938)
System.out.println();
c.setTipologiasClass(t);
} catch (Exception e) {
logger.error(e, e);
529,6 → 542,28
}
}
 
/**
* Copia a propriedade de Exclusão para as Novas
* @param tNovas
* @param tVelhas
*/
private void consistirTipologiasNovaseAntigas(ArrayList<CourseUnitImpl.Tipologia> tNovas,ArrayList<CourseUnitImpl.Tipologia> tVelhas)
{
if(tNovas != null && tVelhas!=null)
{
for(CourseUnitImpl.Tipologia tipoTdocTurmaNova: tNovas)
{
for(CourseUnitImpl.Tipologia tipoTdocTurmaVelha: tVelhas)
{
if(tipoTdocTurmaNova.equals(tipoTdocTurmaVelha))
{
tipoTdocTurmaNova.setExclude(tipoTdocTurmaVelha.isExclude());
}
}
}
}
}
 
private void consistirUnidadesEmCursosTurmasSeparadas(String semestre, DefaultLogMessages logMessages, Disciplina d, List<CourseUnit> cus) {
Iterator<CourseUnit> iterUnits = cus.iterator();
//Retira todas as unidades com código de turma preenchido e diferente
/branches/v3/impl/src/java/pt/estgp/estgweb/services/users/UserRoleConfigService.java
257,7 → 257,30
"user.role.board.school.estg=Board de Direcção da ESTG\n"+
"user.role.board.school.esae=Board de Direcção da ESAE\n"+
"user.role.board.school.esecs=Board de Direcção da ESECS\n"+
"user.role.board.school.ess=Board de Direcção da ESS\n"
"user.role.board.school.ess=Board de Direcção da ESS\n"+
//ESAE
"user.role.department.board.agric.recurs.nat=Departamento Direção - Agricultura e Recursos Naturais\n" +
"user.role.department.board.cienc.tecnol.ani=Departamento Direção - Ciência e Tecnologia Animal\n" +
"user.role.department.diretor.agric.recurs.nat=Departamento Diretor - Agricultura e Recursos Naturais\n" +
"user.role.department.diretor.cienc.tecnol.ani=Departamento Diretor - Ciência e Tecnologia Animal\n" +
//ESECS
"user.role.department.board.comun.artes.tecn=Departamento Direção - Comunicação, Artes e Tecnologias\n" +
"user.role.department.board.educac.formac=Departamento Direção - Educação e Formação\n" +
"user.role.department.board.inter.des.soc=Departamento Direção - Intervenção e Desenvolvimento Social\n" +
"user.role.department.diretor.comun.artes.tecn=Departamento Diretor - Comunicação, Artes e Tecnologias\n" +
"user.role.department.diretor.educac.formac=Departamento Diretor - Educação e Formação\n" +
"user.role.department.diretor.inter.des.soc=Departamento Diretor - Intervenção e Desenvolvimento Social\n" +
//ESS
"user.role.department.board.cienc.tec.saude=Departamento Direção - Ciências e Tecnologias da Saúde\n" +
"user.role.department.diretor.cienc.tec.saude=Departamento Diretor - Ciências e Tecnologias da Saúde\n" +
//ESTG
"user.role.department.board.cienc.empre.sh=Departamento Direção - Ciências Empresariais, Sociais e Humanas\n" +
"user.role.department.board.tecnolo.design=Departamento Direção - Tecnologias e Design\n" +
"user.role.department.diretor.cienc.empre.sh=Departamento Diretor - Ciências Empresariais, Sociais e Humanas\n" +
"user.role.department.diretor.tecnolo.design=Departamento Diretor - Tecnologias e Design\n"
;
 
 
 
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/AnswersAlunosProcessor.java
1,5 → 1,6
package pt.estgp.estgweb.services.questionarios.pedagogico;
 
import com.owlike.genson.TransformationException;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
11,6 → 12,7
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
 
import java.io.IOException;
import java.util.*;
 
 
145,9 → 147,15
//TODO ALTERAR QUANDO GERIRMOS USADAS PARA JA SO SE USAM SUMARIOS
for(CourseUnitImpl.Tipologia tMerge: tipologias)
{
//AQUI E QUE SE TEM DE TER CUIDADO
//TEMOS DE OLHAR PARA AS MARCADAS PRA NAO USAR E AQUI USA-SE ISSO
//COMO TESTE
//if(tMerge.isSumario())
//{
tMerge.setUse(true);
if(!tMerge.isExclude())
tMerge.setUse(true);
else
tMerge.setUse(false);
// break;
//}
}
158,7 → 166,12
//TODO ALTERAR QUANDO GERIRMOS USADAS PARA JA SO SE USAM SUMARIOS
for(CourseUnitImpl.Tipologia tMerge: tipologias)
{
tMerge.setUse(true);
if(!tMerge.isExclude())
{
tMerge.setUse(true);
}
else
tMerge.setUse(false);
}
}
 
254,8 → 267,24
return logMessages;
}
 
public static boolean canUse(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada,CourseUnitImpl cuImpl) throws IOException, TransformationException
{
ArrayList<CourseUnitImpl.Tipologia> tipologiasMerged = cuImpl.getTipologiasClass().obtainMergeTipologias();
for(CourseUnitImpl.Tipologia tipologia: tipologiasMerged)
{
CourseUnitImpl.Tipologia proto = new CourseUnitImpl.Tipologia();
proto.setCdDocente(tipologiaRequisitada.getCdDocente());
proto.setCdTurma(tipologiaRequisitada.getCdTurma());
proto.setCdTipologia(tipologiaRequisitada.getCdTipologia());
if(proto.equals(tipologia))
{
if(tipologia.isExclude())
return false;
}
}
return true;
}
 
 
private List<CourseUnitImpl.Tipologia> criarTipologiasRequisitadasSimplesParaProfsForaDasTurmasPorFaltaDeSumarios(DefaultLogMessages logMessages, QuestionarioImpl q, QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta, CourseUnitImpl cuImpl, Map<String, Teacher> teachersAffected) {
String msg;
List<CourseUnitImpl.Tipologia> tipologias = new ArrayList<CourseUnitImpl.Tipologia>();
307,6 → 336,7
CourseUnitImpl cuImpl,
CourseUnitImpl.Tipologia tMerge) {
String msg;
//NESTE MOMENTO ELE MARCA TUDO COMO REQUISITADA NA LINHA
if(tMerge.isUse())
{
//todo Criar Tipologia Requisitada
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/OlapGenerationProcessor.java
30,6 → 30,7
 
int unidadesNaoUtilizadas = 0;
int unidadesUtilizadas = 0;
int tipologiasExcluidas = 0;
//int unidadesMarcadas = 0;
//int unidadesNaoVistasProf = 0;
//int unidadesNaoVistasAlunos = 0;
203,7 → 204,18
serviceLogInfo(msg);
logger.info(msg);
 
if(!AnswersAlunosProcessor.canUse(tipologiaRequisitada,cuImpl))
{
tipologiasExcluidas ++;
msg ="------###### Tipologia Excluida do processamento " + tipologiaRequisitada.getDsTipologia() + " " + tipologiaRequisitada.getCdTipologia()
+ " docente: " + tipologiaRequisitada.getCdDocente() + "(" + tipologiaRequisitada.getNomeDocente() + ")"
+ " turma: " + tipologiaRequisitada.getCdTurma();
serviceLogInfo(msg);
logger.info(msg);
continue;
}
 
 
//TODO CRIANDO ENTIDADE OLAP TIPOLOGIA
int respostasCandidatasTipologia = tipologiaRequisitada.getAlunosRequisitados().size();
int respostasObtidasTipologia = 0;
336,10 → 348,21
 
serviceLogInfo("######################################");
serviceLogInfo("######################################");
serviceLogInfo("#unidadesNaoUtilizadas:" + unidadesNaoUtilizadas);
serviceLogInfo("#unidadesUtilizadas:" + unidadesUtilizadas);
serviceLogInfo("#tipologiasExcluidas:" + tipologiasExcluidas);
serviceLogInfo("#cursosSemDepartamento:" + cursosSemDepartamento);
serviceLogInfo("#unidadesSemPeriodoNoPlano:" + unidadesSemPeriodoNoPlano);
serviceLogInfo("#cursosUtilizados:" + cursosUtilizados);
 
 
logger.info("######################################");
logger.info("######################################");
logger.info("#unidadesNaoUtilizadas:" + unidadesNaoUtilizadas);
logger.info("#unidadesUtilizadas:" + unidadesUtilizadas);
logger.info("#tipologiasExcluidas:" + tipologiasExcluidas);
logger.info("#cursosSemDepartamento:" + cursosSemDepartamento);
logger.info("#unidadesSemPeriodoNoPlano:" + unidadesSemPeriodoNoPlano);
logger.info("#cursosUtilizados:" + cursosUtilizados);
}
catch(Throwable e)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/UpdateCoursesAndUnitsJobService.java
4,6 → 4,7
import org.apache.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl;
584,19 → 585,49
 
unidadeAfeta.setMarked(false);
 
ArrayList<CourseUnitImpl.Tipologia> mergedTipologias = copiarTipologias(cu, unidadeAfeta);
 
CourseUnitImpl.Tipologias tipologias = ((CourseUnitImpl)cu).getTipologiasClass();
ArrayList<CourseUnitImpl.Tipologia> mergedTipologias = tipologias.obtainMergeTipologias();
 
checkTurmaAndProfs(cu, unidadeAfeta, mergedTipologias);
//Apenas por uma questão de ficar tudo atualizado, porque os contadores vao ser atualizados linha
//a linha quando a pagina de cursos for carregada nas atribuicoes
updateCountersUnidadeAfeta(tipologias, cur, cu, unidadeAfeta, mergedTipologias);
 
}
 
public static void updateCountersUnidadeAfeta(QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta)
{
try
{
CourseUnitImpl cuImpl = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidadeAfeta.getCourseUnit());
CourseUnitImpl.Tipologias tipologias = cuImpl.getTipologiasClass();
ArrayList<CourseUnitImpl.Tipologia> mergedTipologias = tipologias.obtainMergeTipologias();
updateCountersUnidadeAfeta(tipologias,null,unidadeAfeta.getCourseUnit(),unidadeAfeta,mergedTipologias);
} catch (Throwable e) {
logger.error(e, e);
}
}
 
public static void updateCountersUnidadeAfeta(CourseUnitImpl.Tipologias tipologias,QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta, ArrayList<CourseUnitImpl.Tipologia> mergedTipologias) {
updateCountersUnidadeAfeta(tipologias,null,unidadeAfeta.getCourseUnit(),unidadeAfeta,mergedTipologias);
}
 
private static void updateCountersUnidadeAfeta(CourseUnitImpl.Tipologias tipologias,CourseUnitDaoImpl.CourseUnitResult cur, CourseUnit cu, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta, ArrayList<CourseUnitImpl.Tipologia> mergedTipologias) {
 
unidadeAfeta.setLastTipologiasUpdateDate(new Date());
unidadeAfeta.setAddedTipologias(tipologias.getTipologiasExtraAdicionadas().size()); //novo aqui
unidadeAfeta.setTipologias(mergedTipologias.size());
 
checkTurmaAndProfsSumarios(cu, unidadeAfeta, mergedTipologias);
checkProfs(cur, unidadeAfeta);
checkTurmas(cur, unidadeAfeta);
checkStudents(cur, unidadeAfeta);
//calculo das excluidas requer analise se usamos simples ou merged
 
checkExcluidas(unidadeAfeta, mergedTipologias,tipologias);
 
if(unidadeAfeta.isMarked())
cursoAfeto.incMarcadas();
 
 
((QuestionarioPedagogicoCursoAfetoImpl)unidadeAfeta.getCursoAfeto()).incMarcadas();
}
 
/**
604,31 → 635,54
* @param cur
* @param unidadeAfeta
*/
private void checkTurmas(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
if(cur.turmas == 0)
private static void checkTurmas(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
 
int turmas = 0;
if(cur == null)
{
turmas = unidadeAfeta.getCourseUnit().getTurmas().size();
}
else
{
turmas = cur.turmas;
}
if(turmas == 0)
{
unidadeAfeta.setTurmas(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem turmas");
}
else
unidadeAfeta.setTurmas(cur.turmas);
unidadeAfeta.setTurmas(turmas);
}
 
/**
*
* @param cur
* @param unidadeAfeta
* @param mergedTipologias
* @param tipologiasOriginais
*/
private void checkProfs(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
if(cur.teachers == 0)
 
private static void checkExcluidas(QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta,ArrayList<CourseUnitImpl.Tipologia> mergedTipologias, CourseUnitImpl.Tipologias tipologiasOriginais) {
int excluidas = 0;
 
if(unidadeAfeta.getCursoAfeto().isUsarTipologias())
{
unidadeAfeta.setProfs(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem professores");
for(CourseUnitImpl.Tipologia t: mergedTipologias)
{
if(t.isExclude())
excluidas++;
}
}
else
unidadeAfeta.setProfs(cur.teachers);
{
for(CourseUnitImpl.Tipologia t: tipologiasOriginais.obtainTipologiasSimples(unidadeAfeta.getCourseUnit()))
{
if(t.isExclude())
excluidas++;
}
}
unidadeAfeta.setExcludedTipologias(excluidas);
}
 
/**
636,47 → 690,51
* @param cur
* @param unidadeAfeta
*/
private void checkStudents(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
if(cur.students == 0)
private static void checkProfs(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
 
int teachers = 0;
if(cur == null)
{
unidadeAfeta.setStudents(0);
teachers = unidadeAfeta.getCourseUnit().getTeachers().size();
}
else
{
teachers = cur.teachers;
}
if(teachers == 0)
{
unidadeAfeta.setProfs(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem estudantes");
unidadeAfeta.addObs("Não tem professores");
}
else
unidadeAfeta.setStudents(cur.students);
unidadeAfeta.setProfs(teachers);
}
 
/**
*
* @param cu
* @param cur
* @param unidadeAfeta
* @return
* @throws IOException
* @throws TransformationException
*/
private ArrayList<CourseUnitImpl.Tipologia> copiarTipologias(CourseUnit cu, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) throws IOException, TransformationException {
try
private static void checkStudents(CourseUnitDaoImpl.CourseUnitResult cur, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta) {
int students = 0;
if(cur == null)
{
CourseUnitImpl.Tipologias tipologias = ((CourseUnitImpl)cu).getTipologiasClass();
//OBTEM-SE TODAS E DEPOIS QUANDO SE GERAREM AS RESPOSTAS VAO-SE OBTER ENTAO SIMPLES OU COMPLEXAS
//if(cu.getCode().equals("100595"))
// System.out.println();
 
ArrayList<CourseUnitImpl.Tipologia> mergedTipologias = tipologias.obtainMergeTipologias();
unidadeAfeta.setTipologias(mergedTipologias.size());
unidadeAfeta.setTipologiasJson(CourseUnitImpl.Tipologias.serializeMergedList(mergedTipologias));
unidadeAfeta.setAddedTipologias(tipologias.getTipologiasExtraAdicionadas().size());
return mergedTipologias;
students = unidadeAfeta.getCourseUnit().getStudents().size();
}
catch(Throwable e)
else
{
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;
students = cur.students;
}
 
if(students == 0)
{
unidadeAfeta.setStudents(0);
unidadeAfeta.setMarked(true); //WARNING
unidadeAfeta.addObs("Não tem estudantes");
}
else
unidadeAfeta.setStudents(students);
}
 
/**
685,7 → 743,7
* @param unidadeAfeta
* @param mergedTipologias
*/
private void checkTurmaAndProfs(CourseUnit cu, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta, ArrayList<CourseUnitImpl.Tipologia> mergedTipologias) {
private static void checkTurmaAndProfsSumarios(CourseUnit cu, QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta, ArrayList<CourseUnitImpl.Tipologia> mergedTipologias) {
/*
<td>${unidade.profsWithoutTurma}</td><%--PROFS SEM SUMARIO--%>
<td>${unidade.turmaWithoutProf}</td><%--TURMAS SEM SUMARIO--%>
724,7 → 782,43
}
}
 
/**
*
* @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();
//OBTEM-SE TODAS E DEPOIS QUANDO SE GERAREM AS RESPOSTAS VAO-SE OBTER ENTAO SIMPLES OU COMPLEXAS
//if(cu.getCode().equals("100595"))
// System.out.println();
 
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;
}
}
*/
 
 
 
/**
* SERVIÇO
* @param questionarioId
783,4 → 877,28
}
}
 
public void updateCheckVarExcludedPedagogico(long questionarioId,long unidadeAfetaId,String docente,String turma,String tipologia, String op,String val,UserSession session, QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
 
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name()) &&
!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS.name()) &&
!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name()) &&
!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name()))
{
if(!session.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN) && !session.getUser().isSuperuserOrAdmin())
throw new NotAuthorizedException("Nao tem autorização para alterar as tipologias");
}
QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidade = (QuestionarioPedagogicoUnidadeCurricularAfetaImpl) DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().load(unidadeAfetaId);
if(op.equals("excludeTipologia"))
{
CourseUnitImpl cuImpl = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidade.getCourseUnit());
cuImpl.setExcludedTipologia(Boolean.parseBoolean(val),docente,tipologia,turma);
try {
CourseUnitImpl.Tipologias tipologias = cuImpl.getTipologiasClass();
checkExcluidas(unidade,tipologias.obtainMergeTipologias(),tipologias);
} catch (Throwable e) {
logger.error(e,e);
}
}
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/utils/ChartBuilderUtil.java
319,7 → 319,7
for(QuestionariosAlunosReport.ParticipacaoUnidade p: questionariosReport.getParticipacoesUnidades())
{
if(p.getPercentagemContribuicaoDaUnidadeNoUniversoUnidades() > 0)
data.setValue(p.getNomeUnidade() + " " + p.getPercentagemContribuicaoDaUnidadeNoUniversoUnidadesPrint() + "%", new Double(p.getParticiparam()));
data.setValue(p.getNomeUnidade() + " " + p.getPercentagemContribuicaoDaUnidadeNoUniversoUnidadesPrint() + "%", new Double(p.getRespostas()));
}
 
JFreeChart chart = ChartFactory.createRingChart(null, data, false, true, false);
607,8 → 607,8
}
}
 
static DecimalFormat df2 = new DecimalFormat("#.##");
static DecimalFormat df1 = new DecimalFormat("#.#");
static DecimalFormat df2 = new DecimalFormat("#,##0.00");
static DecimalFormat df1 = new DecimalFormat("#,#0.0");
static DecimalFormat df0 = new DecimalFormat("#");
public static double getPercentagem(int parcela, int total)
{
708,7 → 708,7
"Helvetica", Font.BOLD, 55));
((CategoryPlot) chart.getPlot()).getRenderer().setBaseItemLabelFont(new Font(
"Helvetica", Font.PLAIN, 55));
DecimalFormat dfKey = new DecimalFormat("#.##");
DecimalFormat dfKey = new DecimalFormat("#,##0.00");
barChartPlot.getRenderer().setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",dfKey));
 
((BarRenderer)barChartPlot.getRenderer()).setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3, TextAnchor.CENTER_LEFT));
838,7 → 838,7
barChartPlot.getRangeAxis().setVisible(false);
 
 
DecimalFormat dfKey = new DecimalFormat("#.##");
DecimalFormat dfKey = new DecimalFormat("#,##0.00");
barChartPlot.getRenderer().setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",dfKey));
(((CategoryPlot) chart.getPlot()).getRangeAxis()).setTickLabelFont(new Font(
"Helvetica", Font.PLAIN, 65));
1019,7 → 1019,7
renderer.setSeriesStroke(1,new BasicStroke(20.0f));
 
 
DecimalFormat dfKey = new DecimalFormat("#.##");
DecimalFormat dfKey = new DecimalFormat("#,##0.00");
 
StandardXYItemLabelGenerator labelGenerator = new StandardXYItemLabelGenerator("{2}", dfKey, dfKey);
 
1246,7 → 1246,7
renderer.setSeriesStroke(1,new BasicStroke(20.0f));
 
 
DecimalFormat dfKey = new DecimalFormat("#.##");
DecimalFormat dfKey = new DecimalFormat("#,##0.00");
 
StandardXYItemLabelGenerator labelGenerator = new StandardXYItemLabelGenerator("{2}", dfKey, dfKey);
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/utils/RespostasAgregadasGrupoStats.java
8,6 → 8,7
public class RespostasAgregadasGrupoStats
{
 
boolean valid = false;
String grupo;
String subGrupo;
 
26,6 → 27,14
mediasGrupo = new MediasGrupo(grupo,subGrupo);
}
 
public boolean isValid() {
return valid;
}
 
public void setValid(boolean valid) {
this.valid = valid;
}
 
public String getSubGrupo() {
return subGrupo;
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/utils/MediasGrupo.java
15,8 → 15,14
public double mediaGlobalNosCursos;
public double mediaGlobalNasEscolas;
String colorMedia;
int total;
int respostas; //total de respostas
int inscritos; //total de inscritos
int respostasEsperadas; //respostas Esperadas
int percentagemArredondadaRespostas; //percentagem Calculada
int docentes;
 
 
 
DataTable mediasGlobaisTable;
 
public MediasGrupo(String grupo,String subGrupo) {
24,14 → 30,46
this.subGrupo = subGrupo;
}
 
public int getTotal() {
return total;
public int getInscritos() {
return inscritos;
}
 
public void setTotal(int total) {
this.total = total;
public void setInscritos(int inscritos) {
this.inscritos = inscritos;
}
 
public int getRespostasEsperadas() {
return respostasEsperadas;
}
 
public void setRespostasEsperadas(int respostasEsperadas) {
this.respostasEsperadas = respostasEsperadas;
}
 
public int getPercentagemArredondadaRespostas() {
return percentagemArredondadaRespostas;
}
 
public void setPercentagemArredondadaRespostas(int percentagemArredondadaRespostas) {
this.percentagemArredondadaRespostas = percentagemArredondadaRespostas;
}
 
public int getDocentes() {
return docentes;
}
 
public void setDocentes(int docentes) {
this.docentes = docentes;
}
 
public int getRespostas() {
return respostas;
}
 
public void setRespostas(int respostas) {
this.respostas = respostas;
}
 
public String getPercentAvaliacaoMediaForTables()
{
return "" + ((int)(100.0*(avaliacaoMedia/5.0)));
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/utils/UnidadeStats.java
21,8 → 21,11
int inscritos;
int respostas;
 
int respostasEsperadas;
int docentes;
 
 
 
UnidadeStatsGrupo unidadeStatsGrupoDocente;
UnidadeStatsGrupo unidadeStatsGrupoUnidade;
UnidadeStatsGrupo unidadeStatsGrupoDrelDocenteAluno;
34,7 → 37,7
 
public String getTaxaRespostaPrint0Slots()
{
return ChartBuilderUtil.getPercentagemPrint0Slots(respostas,inscritos);
return ChartBuilderUtil.getPercentagemPrint0Slots(respostas,respostasEsperadas);
}
 
public String getNomeCursoAbreviado()
174,6 → 177,22
return nomeUnidade + "(" + getNomeCursoAbreviado() + ")";
}
 
public int getRespostasEsperadas() {
return respostasEsperadas;
}
 
public void setRespostasEsperadas(int respostasEsperadas) {
this.respostasEsperadas = respostasEsperadas;
}
 
public int getDocentes() {
return docentes;
}
 
public void setDocentes(int docentes) {
this.docentes = docentes;
}
 
public void setNomeUnidade(String nomeUnidade) {
this.nomeUnidade = nomeUnidade;
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/DocenteReportGenerator.java
61,15 → 61,34
public static void main(String[] args) throws IOException, DocumentException, TransformerException, FOPException
{
 
AbstractDao.getCurrentSession().beginTransaction();
//String teacherCode = "44451";
//String teacherCode = "20122";
//String teacherCode = "22169";
String teacherCode = "20128";
String anoLectivo = "201516";
//String[] periodos = new String[]{"S2","T3","T4","A"};
String[] periodos = new String[]{"S1"};
String[] periodos = new String[]{"S2","T3","T4","A"};
//String[] periodos = new String[]{"S2,A,T3,T4"};
String[] degrees = new String[]{"L","M","T","E"};
 
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
 
/*
teacherCode = "66587";
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
 
teacherCode = "44451";
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
 
teacherCode = "20115";
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
 
teacherCode = "66623";
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
 
teacherCode = "22179";
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
*/
//teacherCode = "20122";
 
//processTeacher(teacherCode,anoLectivo,periodos,degrees);
84,7 → 103,7
 
//teacherCode = "20114";
//processTeacher(teacherCode,anoLectivo,periodos,degrees);
 
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
/**
130,7 → 149,8
{
reportDocenteFolder.mkdirs();
}
String path = reportDocenteFolder.getAbsolutePath() + File.separator + "reportDocente" + docenteReport.getNumeroDocente() + ".pdf";
String startPath = reportDocenteFolder.getAbsolutePath() + File.separator + "reportDocente" + docenteReport.getNumeroDocente();
String path = startPath+ ".pdf";
 
FileOutputStream out = new FileOutputStream(path);
Map<String,Object> params = new HashMap<String,Object>();
139,7 → 159,8
 
 
org.w3c.dom.Document dom2 = docenteReport.serialize();
Dom4jUtil.writeSout(dom2);
//Dom4jUtil.writeSout(dom2);
Dom4jUtil.write(dom2,new java.io.File(startPath + ".xml"));
 
PdfUtils.setAuthority("Relatório de Avaliação Pedagógica - Relatório Docente - " +
docenteReport.getNomeDocente() + " (" + docenteReport.getNumeroDocente() + " ) " +
210,6 → 231,7
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS, null,
periodos, degrees, true);
 
/*
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
222,6 → 244,7
docenteReport.getRespostasAgregadasGrupoDocente(),
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,null,
periodos,degrees,false);
*/
 
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
236,19 → 259,63
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null,
periodos,degrees,true);
 
/*NOVO**/
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
anoLectivo,
docenteReport,
codigosCurso,
codigosEscola,
0,
docenteReport.getRespostasAgregadasGrupoSalas().getRespostasAgregadasChartTable(),
docenteReport.getRespostasAgregadasGrupoSalas(),
PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null,
periodos,degrees,true);
 
/*
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
anoLectivo,
docenteReport,
codigosCurso,
codigosEscola,
0,
docenteReport.getRespostasAgregadasGrupoProjetoEstagio().getRespostasAgregadasChartTable(),
docenteReport.getRespostasAgregadasGrupoProjetoEstagio(),
PerguntasGrupoQueryDao.GRUPO_ESTAGIO_CODE_PERGUNTAS,null,
periodos,degrees,true);
 
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
anoLectivo,
docenteReport,
codigosCurso,
codigosEscola,
0,
docenteReport.getRespostasAgregadasGrupoEnsinoClinico().getRespostasAgregadasChartTable(),
docenteReport.getRespostasAgregadasGrupoEnsinoClinico(),
PerguntasGrupoQueryDao.GRUPO_ENSINO_CLINICO_CODE_PERGUNTAS,null,
periodos,degrees,true);
*/
 
/*
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
anoLectivo,
docenteReport,
codigosCurso,
codigosEscola,
2000,
docenteReport.getRespostasAgregadasGrupoUnidade().getRespostasAgregadasChartTable2Secs(),
docenteReport.getRespostasAgregadasGrupoUnidade(),
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null,
periodos,degrees,false);
 
*/
/*
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
275,8 → 342,8
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,
PerguntasGrupoQueryDao.GRUPO_DOCENTE_PROFISSIONALISMO_DOCENTE_CODE_PERGUNTAS,periodos,degrees,true);
 
*/
 
 
UnidadesQueryDao.criarTabelasCadeirasDocente(teacherCode,
anoLectivo,
docenteReport,
321,7 → 388,7
report.getRespostasAgregadasGrupoDdocenteProf().getMediasGrupo().getMediaGlobalNosCursos() }
};
 
DecimalFormat df =new DecimalFormat("#.##");
DecimalFormat df =new DecimalFormat("#,##0.00");
DataTable tabelaDimensoesGeral = new DataTable();
DataTable.Row header = tabelaDimensoesGeral.addRowHeader();
 
410,6 → 477,7
new Color[]{Color.black, Color.black}
);
 
/*
String relDocenteProfDocentePath = criarChartETabelaMediaGruposPorUnidade(
400,
40,
424,6 → 492,7
new Color[]{Color.black, Color.black}
 
);
*/
 
report.setUnidadesAnalGrDocenteGrUnidadeChartAndTable(
new ChartWithDataTable(
431,11 → 500,13
"Docente VS Unidade",
docenteUnidadePath,
tabelaDocenteUnidade));
/*
report.setUnidadesAnalGrRelAlunoGrProfDoceChartAndTable(
new ChartWithDataTable("Analise Conjunta de Unidades",
grupoRelAlunoLabel + "VS" + grupoProfDocenteLabel,
relDocenteProfDocentePath,
tabelaRelDocenteProfDocente));
*/
 
} catch (IOException e) {
e.printStackTrace();
459,7 → 530,7
rowHeader.addColTextCenter("Ano");
rowHeader.addColTextCenter("Periodo");
rowHeader.addColTextCenter("resposta média (RM)");
rowHeader.addColTextCenter("Número de inscritos");
rowHeader.addColTextCenter("Número de inscritos");//aqui em vez de inscritos deveria ser respostas esperadas quando houver tipologias
rowHeader.addColTextCenter("Número de respostas");
rowHeader.addColTextCenter("Taxa de resposta (TR)");
rowHeader.addColTextCenter("Taxa de resposta (RMxTR)");
482,7 → 553,20
 
for(UnidadeStats stats: unidadeStatses)
{
double TR = (((double)stats.getRespostas()/(double)stats.getInscritos()));
//aqui é igual usar inscritos ou respostas esperadas porque como é apenas para um
//docente é esperado que os inscritos do docente sejam os mesmos que as respostas esperadas
//no curso é que pode ser diferente por causa de haver vários docentes
//caso se use tipologias temos de rever isto porque ai nesse caso o docente pode ter mais que
//uma resposta por aluno
if(stats.getInscritos() != stats.getRespostasEsperadas())
{
//todo Retirar System.exit
logger.warn("PROVISORIO #################Docente$$$$$$$$$$$$$$$$$ repostas Esperadas != Inscritos");
logger.warn("#################Docente$$$$$$$$$$$$$$$$$ repostas Esperadas != Inscritos");
logger.warn("#################Docente$$$$$$$$$$$$$$$$$ repostas " + stats.getRespostasEsperadas() + " != " + stats.getInscritos());
System.exit(-1);
}
double TR = (((double)stats.getRespostas()/(double)stats.getRespostasEsperadas()));
double RM = stats.getUnidadeStatsGrupoDocente().getMediasGrupo().getAvaliacaoMedia();
double RMTR = RM * TR;
sumRMTR += RMTR;
495,7 → 579,7
rowUnit.addColTextCenter(docenteReport.getAnoLectivo());
rowUnit.addColTextCenter(stats.getSemestre());
rowUnit.addColNumberRight(df.format(RM));
rowUnit.addColNumberRight("" + stats.getInscritos());
rowUnit.addColNumberRight("" + stats.getRespostasEsperadas());//ou inscritos se nao houver tipologias
rowUnit.addColNumberRight("" + stats.getRespostas());
rowUnit.addColNumberRight(df.format(TR));
rowUnit.addColNumberRight(df.format(RMTR));
762,8 → 846,8
try {
if(perguntaDiffMax != null)
{
String pathExtremePerguntaMaxDocente = ChartBuilderUtil.createChartRingOneDimension(perguntaDiffMax.getParticiparam(),perguntaDiffMax.getInscritos(),true,true,false,"extremeParticipacaoMax");
String pathExtremePerguntaMinDocente = ChartBuilderUtil.createChartRingOneDimension(perguntaDiffMin.getParticiparam(),perguntaDiffMin.getInscritos(),true,true,false,"extremeParticipacaoMin");
String pathExtremePerguntaMaxDocente = ChartBuilderUtil.createChartRingOneDimension(perguntaDiffMax.getRespostas(),perguntaDiffMax.getInscritos(),true,true,false,"extremeParticipacaoMax");
String pathExtremePerguntaMinDocente = ChartBuilderUtil.createChartRingOneDimension(perguntaDiffMin.getRespostas(),perguntaDiffMin.getInscritos(),true,true,false,"extremeParticipacaoMin");
 
ChartWithTitleTemp chartPerguntaMaxDocente = new ChartWithTitleTemp(perguntaDiffMax.getNomeUnidade() + " (inscritos: " + perguntaDiffMax.getInscritos() + ")","",pathExtremePerguntaMaxDocente);
ChartWithTitleTemp chartPerguntaMinDocente = new ChartWithTitleTemp(perguntaDiffMin.getNomeUnidade() + " (inscritos: " + perguntaDiffMin.getInscritos() + ")","",pathExtremePerguntaMinDocente);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/ReportAlunosGenerator.java
53,7 → 53,7
* @param anoLectivo
* @param report
*/
public static void criarGraficosRespostasAgregadas(String[] codes,
public static boolean criarGraficosRespostasAgregadas(String[] codes,
EntityEvaluated entityEvaluated,
String anoLectivo,
QuestionariosAlunosReport report,
120,7 → 120,13
query.setDouble("tempoLevado",tempoMinimo);
}
 
List<Object[]> resultsTest = query.list();
if(resultsTest == null || resultsTest.size() == 0)
{
return false;
}
 
 
DataTable tableRespostasAgregadas = new DataTable();
 
 
128,7 → 134,9
DataTable.Row header = tableRespostasAgregadas.addRowHeader();
header.addColTextCenter("Questão");
header.addColTextCenter("Resps.");
header.addColTextCenter("Tempo Médio de Resposta (seg.)");
header.addColTextCenter("Resps. Esperadas");
//header.addColTextCenter("Tempo Médio de Resposta (seg.)");
header.addColTextCenter("% Resp.");
header.addColTextCenter("Nada Satisf. %");
header.addColTextCenter("Pouco Satisf. %");
header.addColTextCenter("Satisf. %");
156,7 → 164,10
 
 
 
List<Object[]> resultsTest = query.list();
PerguntasGrupoQueryDao.getMediasGrupo(codes, entityEvaluated, anoLectivo, report, codigosCurso, codigosEscola, grupo, subGrupo, respostasAgregadasGrupo.getMediasGrupo(), periodos, degrees);
 
 
//Um ciclo por pergunta numero
for(Object[] resultTest : resultsTest)
{
Double tempoMedioLevado = (Double) resultTest[10];
166,7 → 177,7
double min = mediaDocente - (desvio*2);
double max = mediaDocente + (desvio*2);
if(max > 5) max = 5;
DecimalFormat df = new DecimalFormat("#.##");
DecimalFormat df = new DecimalFormat("#,##0.00");
 
String questao = resultTest[8].toString();
String numero = resultTest[9].toString();
175,7 → 186,9
DataTable.Row rowUnidade = tableRespostasAgregadas.addRowNormal();
rowUnidade.addColLabelCenter(questao);
rowUnidade.addColTextCenter(""+total);
rowUnidade.addColTextCenter(df.format(tempoMedioLevado/1000.0));
rowUnidade.addColTextCenter("" + report.getQuestionariosReqTotal());
//rowUnidade.addColTextCenter(df.format(tempoMedioLevado/1000.0));
rowUnidade.addColPercentageCenter(ChartBuilderUtil.getPercentagemPrint0Slots(total, report.getQuestionariosReqTotal()), true);
DataTable.Row.Col colResposta1 = rowUnidade.addColTextCenter(resultTest[1].toString());
DataTable.Row.Col colResposta2 = rowUnidade.addColTextCenter(resultTest[2].toString());
DataTable.Row.Col colResposta3 = rowUnidade.addColTextCenter(resultTest[3].toString());
277,21 → 290,21
 
respostasAgregadasChartTable.getRespostasAgregadasCharts().addChart(perguntaStatsAndChart);
respostasAgregadasChartTable.setRespostasTable(tableRespostasAgregadas);
 
//Adicionar o Grafico ao perguntaStats deste grupo
if(tempoMinimo <= 0)
{
//adicionada segunda vez para ficar na classe de agregação de respostas e medias
//legadamente ja estavam no chart mas metem-se aqui tambem pois estavam em rows e afins
respostasAgregadasGrupo.getPerguntasStats().add(perguntaStatsAndChart);
PerguntasGrupoQueryDao.getMediasGrupo(codes,entityEvaluated, anoLectivo, report, codigosCurso, codigosEscola, grupo, subGrupo, respostasAgregadasGrupo.getMediasGrupo(), periodos, degrees);
}
 
} catch (IOException e) {
logger.error(e,e);
}
}
respostasAgregadasGrupo.setValid(true);
return true;
 
 
}
 
 
353,7 → 366,7
String [] categories = new String[unidadesStats.size()];
int i = 0;
 
DecimalFormat df =new DecimalFormat("#.##");
DecimalFormat df =new DecimalFormat("#,##0.00");
for(UnidadeStats unidadeStats : unidadesStats)
{
UnidadeStats.UnidadeStatsGrupo unidadeStatsGrupo1 = unidadeStats.findUnidadeStatsGrupo(grupo1,subgrupo1);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/reportdomains/QuestionariosAlunosReport.java
170,6 → 170,19
return participacoesUnidades;
}
 
public ParticipacaoUnidade getParticipacaoUnidade(String sigesCode,String codigoCurso,String codigoSemestre)
{
if(participacoesUnidades != null)
{
for(ParticipacaoUnidade p: participacoesUnidades)
{
if(p.getCodigoUnidade().equals(sigesCode) && p.getCodigoCurso().equals(codigoCurso) && p.getCodigoSemestre().equals(codigoSemestre))
return p;
}
}
return null;
}
 
public void setParticipacoesUnidades(ArrayList<ParticipacaoUnidade> participacoesUnidades) {
this.participacoesUnidades = participacoesUnidades;
}
300,22 → 313,59
 
public static class ParticipacaoUnidade
{
int participaram;
 
int inscritos;
int participaramPercentagem;
int docentes;
int respostasEsperadas;
int respostas;
int respostasPercentagem;
String nomeUnidade;
String codigoUnidade;
String codigoCurso;
String codigoSemestre;
double percentagemContribuicaoDaUnidadeNoUniversoUnidades;
String percentagemContribuicaoDaUnidadeNoUniversoUnidadesPrint;
 
public int getParticiparam() {
return participaram;
public String getCodigoCurso() {
return codigoCurso;
}
 
public void setParticiparam(int participaram) {
this.participaram = participaram;
public void setCodigoCurso(String codigoCurso) {
this.codigoCurso = codigoCurso;
}
 
public String getCodigoSemestre() {
return codigoSemestre;
}
 
public void setCodigoSemestre(String codigoSemestre) {
this.codigoSemestre = codigoSemestre;
}
 
public int getDocentes() {
return docentes;
}
 
public void setDocentes(int docentes) {
this.docentes = docentes;
}
 
public int getRespostasEsperadas() {
return respostasEsperadas;
}
 
public void setRespostasEsperadas(int respostasEsperadas) {
this.respostasEsperadas = respostasEsperadas;
}
 
public int getRespostas() {
return respostas;
}
 
public void setRespostas(int respostas) {
this.respostas = respostas;
}
 
public int getInscritos() {
return inscritos;
}
324,12 → 374,12
this.inscritos = inscritos;
}
 
public int getParticiparamPercentagem() {
return participaramPercentagem;
public int getRespostasPercentagem() {
return respostasPercentagem;
}
 
public void setParticiparamPercentagem(int participaramPercentagem) {
this.participaramPercentagem = participaramPercentagem;
public void setRespostasPercentagem(int respostasPercentagem) {
this.respostasPercentagem = respostasPercentagem;
}
 
public String getNomeUnidade() {
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/reportdomains/DocenteReport.java
26,6 → 26,10
public RespostasAgregadasGrupoStats respostasAgregadasGrupoDrelDocenteAluno = new RespostasAgregadasGrupoStats(PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,PerguntasGrupoQueryDao.GRUPO_DOCENTE_REL_ALUNO_CODE_PERGUNTAS);
public RespostasAgregadasGrupoStats respostasAgregadasGrupoDdocenteProf = new RespostasAgregadasGrupoStats(PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,PerguntasGrupoQueryDao.GRUPO_DOCENTE_PROFISSIONALISMO_DOCENTE_CODE_PERGUNTAS);
 
public RespostasAgregadasGrupoStats respostasAgregadasGrupoSalas = new RespostasAgregadasGrupoStats(PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null);
public RespostasAgregadasGrupoStats respostasAgregadasGrupoProjetoEstagio = new RespostasAgregadasGrupoStats(PerguntasGrupoQueryDao.GRUPO_ESTAGIO_CODE_PERGUNTAS,null);
public RespostasAgregadasGrupoStats respostasAgregadasGrupoEnsinoClinico = new RespostasAgregadasGrupoStats(PerguntasGrupoQueryDao.GRUPO_ENSINO_CLINICO_CODE_PERGUNTAS,null);
 
//Respostas por unidade com medias de Grupo
//Cada cadeira tem as perguntas todas numa lista de PerguntaStats
public ArrayList<UnidadeStats> unidadesStats = new ArrayList<UnidadeStats>();
86,11 → 90,30
public String progressaoAgregadasDocentesDprofDocenteVsCurso;
 
 
public RespostasAgregadasGrupoStats getRespostasAgregadasGrupoSalas() {
return respostasAgregadasGrupoSalas;
}
 
public void setRespostasAgregadasGrupoSalas(RespostasAgregadasGrupoStats respostasAgregadasGrupoSalas) {
this.respostasAgregadasGrupoSalas = respostasAgregadasGrupoSalas;
}
 
public RespostasAgregadasGrupoStats getRespostasAgregadasGrupoProjetoEstagio() {
return respostasAgregadasGrupoProjetoEstagio;
}
 
public void setRespostasAgregadasGrupoProjetoEstagio(RespostasAgregadasGrupoStats respostasAgregadasGrupoProjetoEstagio) {
this.respostasAgregadasGrupoProjetoEstagio = respostasAgregadasGrupoProjetoEstagio;
}
 
public RespostasAgregadasGrupoStats getRespostasAgregadasGrupoEnsinoClinico() {
return respostasAgregadasGrupoEnsinoClinico;
}
 
public void setRespostasAgregadasGrupoEnsinoClinico(RespostasAgregadasGrupoStats respostasAgregadasGrupoEnsinoClinico) {
this.respostasAgregadasGrupoEnsinoClinico = respostasAgregadasGrupoEnsinoClinico;
}
 
public ChartWithDataTable getDimensoesGeralChartAndTable() {
return dimensoesGeralChartAndTable;
}
793,7 → 816,7
Collections.sort(participacoes, new Comparator<ParticipacaoUnidade>() {
@Override
public int compare(ParticipacaoUnidade o1, ParticipacaoUnidade o2) {
return o2.getParticiparamPercentagem() - o1.getParticiparamPercentagem();
return o2.getRespostasPercentagem() - o1.getRespostasPercentagem();
}
});
return participacoes;
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/xsl/docenteReportGuiaoAvaliacaoDesempenho.fo.xsl
14,7 → 14,7
<xsl:template name="CAP_guiao_avaliacao_desempenho">
<fo:block-container id="capGuiaoAvaliacaoDesempenho" padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccao">
<xsl:with-param name="text">9 - Análise da qualidade do desempenho docente baseada no Guião da Avaliação do desempenho do pessoal docente do IPPortalegre </xsl:with-param>
<xsl:with-param name="text">7 - Análise da qualidade do desempenho docente baseada no Guião da Avaliação do desempenho do pessoal docente do IPPortalegre </xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">teacherGuiao2.png</xsl:with-param>
</xsl:call-template>
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/xsl/docenteReport.fo.xsl
135,34 → 135,66
</fo:basic-link>
</fo:block>
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capQuestoes">
<fo:basic-link internal-destination="capQuestoesDocente">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">3</fo:inline>
<xsl:text> </xsl:text>
Análise das questões sobre o Docente
Análise das questões Agregadas por Grupo Dimênsional
<fo:leader leader-pattern="dots" />
<fo:page-number-citation ref-id="capQuestoes" />
<fo:page-number-citation ref-id="capQuestoesDocente" />
</fo:basic-link>
</fo:block>
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capQuestoesUnidades">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">4</fo:inline>
<xsl:text> </xsl:text>
Análise das questões sobre as Unidades do docente
<fo:leader leader-pattern="dots" />
<fo:page-number-citation ref-id="capQuestoesUnidades" />
</fo:basic-link>
</fo:block>
 
 
<xsl:if test="//respostasAgregadasGrupoDocente/valid/text() = 'true'">
<xsl:call-template name="subIndexEntry">
<xsl:with-param name="sectionNumber">3.1</xsl:with-param>
<xsl:with-param name="sectionTitle">Questões Agregadas do Grupo Docente</xsl:with-param>
<xsl:with-param name="id">capQuestoesDocente</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="//respostasAgregadasGrupoUnidade/valid/text() = 'true'">
<xsl:call-template name="subIndexEntry">
<xsl:with-param name="sectionNumber">3.2</xsl:with-param>
<xsl:with-param name="sectionTitle">Questões Agregadas do Grupo Unidade Curricular</xsl:with-param>
<xsl:with-param name="id">capQuestoesUnidade</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="//respostasAgregadasGrupoSalas/valid/text() = 'true'">
<xsl:call-template name="subIndexEntry">
<xsl:with-param name="sectionNumber">3.3</xsl:with-param>
<xsl:with-param name="sectionTitle">Questões Agregadas do Grupo Instalações</xsl:with-param>
<xsl:with-param name="id">capQuestoesSalas</xsl:with-param>
</xsl:call-template>
</xsl:if>
<!--
<xsl:if test="//respostasAgregadasGrupoProjetoEstagio/valid/text() = 'true'">
<xsl:call-template name="subIndexEntry">
<xsl:with-param name="sectionNumber">3.4</xsl:with-param>
<xsl:with-param name="sectionTitle">Questões Agregadas do Grupo Projeto/Estágio</xsl:with-param>
<xsl:with-param name="id">capQuestoesProjetoEstagio</xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//respostasAgregadasGrupoEnsinoClinico/valid/text() = 'true'">
<xsl:call-template name="subIndexEntry">
<xsl:with-param name="sectionNumber">3.5</xsl:with-param>
<xsl:with-param name="sectionTitle">Questões Agregadas do Grupo Ensino Clínico</xsl:with-param>
<xsl:with-param name="id">capQuestoesEnsinoClinico</xsl:with-param>
</xsl:call-template>
</xsl:if>
-->
 
 
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capUnidades">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">5</fo:inline>
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">4</fo:inline>
<xsl:text> </xsl:text>
Análise das questões em cada Unidade do Docente
<fo:leader leader-pattern="dots" />
<fo:page-number-citation ref-id="capUnidades" />
</fo:basic-link>
</fo:block>
 
<!--
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capDimensoes">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">6</fo:inline>
171,11 → 203,11
<fo:leader leader-pattern="dots" />
<fo:page-number-citation ref-id="capDimensoes" />
</fo:basic-link>
</fo:block>
</fo:block>-->
 
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capProgressoes">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">7</fo:inline>
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">5</fo:inline>
<xsl:text> </xsl:text>
Análise da Progressão do Docente
<fo:leader leader-pattern="dots" />
187,7 → 219,7
 
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capForcasFraquezas">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">8</fo:inline>
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">6</fo:inline>
<xsl:text> </xsl:text>
Análise dos Desempenhos Máximos e Mínimos
<fo:leader leader-pattern="dots" />
197,7 → 229,7
 
<fo:block font-size="14px" text-align-last="justify" margin-top="5px">
<fo:basic-link internal-destination="capGuiaoAvaliacaoDesempenho">
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">9</fo:inline>
<fo:inline font-weight="bold" padding-top="3px" padding-bottom="2px" padding-left="3px" padding-right="3px" margin-right="10px" border-bottom="1px solid #58585A" font-size="16px" color="white" background-color="#FFCA44">7</fo:inline>
<xsl:text> </xsl:text>
Cálculos da qualidade do desempenho docente baseada no Guião da Avaliação do desempenho do pessoal docente do IPPortalegre
<fo:leader leader-pattern="dots" />
260,9 → 292,16
 
<xsl:call-template name="CAP_analise_questoes_UNIDADE"/>
 
<xsl:call-template name="CAP_analise_questoes_SALAS"/>
 
<!--
<xsl:call-template name="CAP_analise_questoes_PROJETO"/>
-->
<xsl:call-template name="CAP_analise_unidades_INDIVIDUALMENTE"/>
 
<!--
<xsl:call-template name="CAP_analise_DIMENSOES"/>
-->
 
<xsl:call-template name="CAP_progressoes"/>
 
459,7 → 498,7
</xsl:call-template>
<fo:block text-align="center" margin-left="10px" font-size="10" font-weight="normal" margin-right="10px">
<xsl:apply-templates select="//tabelaTaxaRespostaUnidade" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">35%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
</fo:table-cell>
612,39 → 651,54
<!-- ############################################################# -->
 
<xsl:template name="CAP_analise_questoes_DOCENTE">
<fo:block-container padding="0" margin="0" id="capQuestoes" page-break-before="always">
<xsl:call-template name="seccaoBlue">
<xsl:with-param name="text">3 - Análise das Questões sobre o Docente</xsl:with-param>
<fo:block-container padding="0" margin="0" id="capQuestoesDocente" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoBlue">
<xsl:with-param name="text">3.1 - Gráficos de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="text">3.1 - Agregações do grupo Docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccaoBlue">
<xsl:with-param name="text">Gráficos de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">0px</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:apply-templates select="//respostasAgregadasGrupoDocente/respostasAgregadasChartTable/respostasAgregadasCharts/chartsRow" mode="graficosPerguntas"/>
 
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoBlue">
<xsl:with-param name="text">3 - Análise das Questões sobre o Docente</xsl:with-param>
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoBlue">
<xsl:with-param name="text">3.1 - Agregações do grupo Docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:call-template name="subSeccaoBlue">
<xsl:with-param name="text">3.2 - Tabela de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:call-template name="subSubSeccaoBlue">
<xsl:with-param name="text">Tabela de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
 
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="//respostasAgregadasGrupoDocente/respostasAgregadasChartTable/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">30%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$BLUE_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block>
<fo:block text-align="right" margin-top="10px" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
657,10 → 711,12
<fo:block-container margin-top="20px" margin-bottom="5px">
<xsl:apply-templates select="//respostasAgregadasGrupoDocente/mediasGrupo" mode="mediasGrupo">
<xsl:with-param name="objetoAvaliacao">do docente</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$BLUE_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block-container>
 
<!--Considerando Respostas Superiores a 2 segindos-->
<!--
<fo:block-container background-color="#aaaaaa" padding="5px" margin="0" margin-top="20px">
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccao">
670,10 → 726,11
 
<fo:block text-align="center" margin-left="10px" font-size="10" font-weight="normal" margin-right="10px">
<xsl:apply-templates select="//respostasAgregadasGrupoDocente/respostasAgregadasChartTable2Secs/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">30%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
</fo:block-container>
-->
 
</xsl:template>
 
681,44 → 738,61
 
 
<!-- ############################################################# -->
<!-- 4 - CAPITULO ANALISE QUESTOES AGREGADAS DAS UNIDADES CURRICULARES -->
<!-- 3.2 - CAPITULO ANALISE QUESTOES AGREGADAS DAS UNIDADES CURRICULARES -->
<!-- ############################################################# -->
 
<xsl:template name="CAP_analise_questoes_UNIDADE">
 
<fo:block-container padding="0" margin="0" id="capQuestoesUnidades" page-break-before="always">
<xsl:call-template name="seccaoGreen">
<xsl:with-param name="text">4 - Análise das questões sobre as Unidades do docente</xsl:with-param>
<fo:block-container padding="0" margin="0" id="capQuestoesUnidade" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">cadeiraConteudos.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:call-template name="subSeccaoGreen">
<xsl:with-param name="text">4.1 - Gráficos de respostas agregadas de todas as unidades</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoGreen">
<xsl:with-param name="text">3.2 - Agregações do grupo Unidade</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccaoGreen">
<xsl:with-param name="text">Gráficos de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">0px</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:apply-templates select="//respostasAgregadasGrupoUnidade/respostasAgregadasChartTable/respostasAgregadasCharts/chartsRow" mode="graficosPerguntas"/>
 
 
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoGreen">
<xsl:with-param name="text">4 - Análise das questões sobre as Unidades do docente</xsl:with-param>
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">cadeiraConteudos.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:call-template name="subSeccaoGreen">
<xsl:with-param name="text">4.2 - Tabela de respostas agregadas de todas as unidades do docente</xsl:with-param>
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoGreen">
<xsl:with-param name="text">3.2 - Agregações do grupo Unidade</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:call-template name="subSubSeccaoGreen">
<xsl:with-param name="text">Tabela de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
 
 
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="//respostasAgregadasGrupoUnidade/respostasAgregadasChartTable/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$GREEN_COLOR_SECTION"/>
</xsl:apply-templates>
</fo:block>
 
732,10 → 806,12
<fo:block-container margin-top="20px" margin-bottom="5px">
<xsl:apply-templates select="//respostasAgregadasGrupoUnidade/mediasGrupo" mode="mediasGrupo">
<xsl:with-param name="objetoAvaliacao">das unidades</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$GREEN_COLOR_SECTION"/>
</xsl:apply-templates>
</fo:block-container>
 
<!--Considerando Respostas Superiores a 2 segindos-->
<!--
<fo:block-container background-color="#aaaaaa" padding="5px" margin="0" margin-top="20px">
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccao">
750,12 → 826,164
</xsl:apply-templates>
</fo:block>
</fo:block-container>
-->
</xsl:template>
 
<!-- ############################################################# -->
<!-- 3.3 - CAPITULO ANALISE QUESTOES AGREGADAS DAS SALAS -->
<!-- ############################################################# -->
 
<xsl:template name="CAP_analise_questoes_SALAS">
 
<fo:block-container padding="0" margin="0" id="capQuestoesSalas" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoRose">
<xsl:with-param name="text">3.3 - Agregações do grupo Instalações</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccaoRose">
<xsl:with-param name="text">Gráficos de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">0px</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:apply-templates select="//respostasAgregadasGrupoSalas/respostasAgregadasChartTable/respostasAgregadasCharts/chartsRow" mode="graficosPerguntas"/>
 
 
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoRose">
<xsl:with-param name="text">3.3 - Agregações do grupo Instalações</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">cadeiraCadeira.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:call-template name="subSeccaoRose">
<xsl:with-param name="text">Tabela de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
 
 
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="//respostasAgregadasGrupoSalas/respostasAgregadasChartTable/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$ROSE_COLOR_SECTION"/>
</xsl:apply-templates>
</fo:block>
 
<fo:block text-align="right" margin-top="10px" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
Unidades avaliadas nos cursos onde o docente leciona: <xsl:value-of select="//unidadesNosCursos"/>
</fo:block>
<fo:block text-align="right" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
Unidades avaliadas nas escolas onde o docente leciona: <xsl:value-of select="//unidadesNasEscolas"/>
</fo:block>
 
<fo:block-container margin-top="20px" margin-bottom="5px">
<xsl:apply-templates select="//respostasAgregadasGrupoSalas/mediasGrupo" mode="mediasGrupo">
<xsl:with-param name="objetoAvaliacao">das unidades</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$ROSE_COLOR_SECTION"/>
</xsl:apply-templates>
</fo:block-container>
 
</xsl:template>
 
 
 
<!-- ############################################################# -->
<!-- 3.4 - CAPITULO ANALISE QUESTOES AGREGADAS DO GRUPO PROJETO -->
<!-- ############################################################# -->
 
<xsl:template name="CAP_analise_questoes_PROJETO">
 
<fo:block-container padding="0" margin="0" id="capQuestoesProjetoEstagio" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoRose">
<xsl:with-param name="text">3.4 - Agregações do grupo Projeto/Estágio</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<!--<xsl:with-param name="icon">teacherIcon.png</xsl:with-param>-->
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccaoRose">
<xsl:with-param name="text">Gráficos de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">0px</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<xsl:apply-templates select="//respostasAgregadasGrupoProjetoEstagio/respostasAgregadasChartTable/respostasAgregadasCharts/chartsRow" mode="graficosPerguntas"/>
 
 
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoGen">
<xsl:with-param name="text">3 - Análise das Questões Agregadas</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSeccaoGen">
<xsl:with-param name="text">3.4 - Agregações do grupo Projeto/Estágio</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<!--<xsl:with-param name="icon">cadeiraCadeira.png</xsl:with-param>-->
</xsl:call-template>
</fo:block-container>
 
<xsl:call-template name="subSeccaoGen">
<xsl:with-param name="text">Tabela de respostas agregadas de todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
 
 
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="//respostasAgregadasGrupoProjetoEstagio/respostasAgregadasChartTable/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
 
<fo:block text-align="right" margin-top="10px" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
Unidades avaliadas nos cursos onde o docente leciona: <xsl:value-of select="//unidadesNosCursos"/>
</fo:block>
<fo:block text-align="right" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
Unidades avaliadas nas escolas onde o docente leciona: <xsl:value-of select="//unidadesNasEscolas"/>
</fo:block>
 
<fo:block-container margin-top="20px" margin-bottom="5px">
<xsl:apply-templates select="//respostasAgregadasGrupoProjetoEstagio/mediasGrupo" mode="mediasGrupo">
<xsl:with-param name="objetoAvaliacao">das unidades</xsl:with-param>
</xsl:apply-templates>
</fo:block-container>
 
</xsl:template>
 
 
 
 
 
<!-- ############################################################# -->
<!-- 5 - CAPITULO ANALISE UNIDADES INDIVIDUALMENTE -->
<!-- ############################################################# -->
 
771,7 → 999,7
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:if test="$cursoPos = 1 and position()=1"><xsl:attribute name="id">capUnidades</xsl:attribute></xsl:if>
<xsl:call-template name="seccaoGreen">
<xsl:with-param name="text">5 - Análise das questões em cada unidade do docente</xsl:with-param>
<xsl:with-param name="text">4 - Análise das questões em cada unidade do docente</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">class.png</xsl:with-param>
</xsl:call-template>
779,19 → 1007,21
 
 
<xsl:call-template name="subSeccao">
<xsl:with-param name="text">5.<xsl:value-of select="$cursoPos"/> - <xsl:value-of select="nomeCurso/text()"/> (<xsl:value-of select="//unidadesStats/unidadeStats[nomeCurso=nomeCurso/text()]/codigoCurso[1]/text()"/>) </xsl:with-param>
<xsl:with-param name="text">4.<xsl:value-of select="$cursoPos"/> - <xsl:value-of select="nomeCurso/text()"/> (<xsl:value-of select="//unidadesStats/unidadeStats[nomeCurso=nomeCurso/text()]/codigoCurso[1]/text()"/>) </xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="marginBottom">2px</xsl:with-param>
</xsl:call-template>
 
 
<xsl:call-template name="subSubSeccao">
<xsl:with-param name="text">5.<xsl:value-of select="$cursoPos"/>.<xsl:value-of select="position()"/> - <xsl:value-of select="nomeUnidade/text()"/> (<xsl:value-of select="codigoUnidade/text()"/>) </xsl:with-param>
<xsl:with-param name="text">4.<xsl:value-of select="$cursoPos"/>.<xsl:value-of select="position()"/> - <xsl:value-of select="nomeUnidade/text()"/> (<xsl:value-of select="codigoUnidade/text()"/>) </xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="fontSize">12pt</xsl:with-param>
<xsl:with-param name="fontWeight">bold</xsl:with-param>
</xsl:call-template>
 
 
<!--DOCENTE-->
<xsl:call-template name="subSubSubSeccaoBlue">
<xsl:with-param name="text">Respostas ao grupo de questões sobre o Docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
801,7 → 1031,7
<fo:block-container padding="0" margin-left="15px" margin="0" margin-bottom="5px">
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="unidadeStatsGrupoDocente/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">30%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$BLUE_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block>
824,6 → 1054,7
</fo:block-container>
 
 
<!--UNIDADES-->
<xsl:call-template name="subSubSubSeccaoGreen">
<xsl:with-param name="text">Respostas ao grupo de questões sobre a Unidade</xsl:with-param>
<xsl:with-param name="marginTop">20px</xsl:with-param>
833,7 → 1064,7
<fo:block-container padding="0" margin-left="15px" margin="0" margin-bottom="5px">
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="unidadeStatsGrupoUnidade/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">30%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$GREEN_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block>
855,13 → 1086,76
</xsl:apply-templates>
</fo:block>
</fo:block-container>
 
 
 
 
 
<!--SALAS HEADER-->
 
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoGreen">
<xsl:with-param name="text">4 - Análise das questões em cada unidade do docente</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">class.png</xsl:with-param>
</xsl:call-template>
</fo:block-container>
 
 
<xsl:call-template name="subSeccao">
<xsl:with-param name="text">4.<xsl:value-of select="$cursoPos"/> - <xsl:value-of select="nomeCurso/text()"/> (<xsl:value-of select="//unidadesStats/unidadeStats[nomeCurso=nomeCurso/text()]/codigoCurso[1]/text()"/>) </xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="marginBottom">2px</xsl:with-param>
</xsl:call-template>
 
 
<xsl:call-template name="subSubSeccao">
<xsl:with-param name="text">4.<xsl:value-of select="$cursoPos"/>.<xsl:value-of select="position()"/> - <xsl:value-of select="nomeUnidade/text()"/> (<xsl:value-of select="codigoUnidade/text()"/>) </xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="fontSize">12pt</xsl:with-param>
<xsl:with-param name="fontWeight">bold</xsl:with-param>
</xsl:call-template>
<!--SALAS-->
<xsl:call-template name="subSubSubSeccaoRose">
<xsl:with-param name="text">Respostas ao grupo de questões sobre as Instalações/Equipamentos/Outros Recursos</xsl:with-param>
<xsl:with-param name="marginTop">20px</xsl:with-param>
<xsl:with-param name="icon">cadeiraCadeira.png</xsl:with-param>
</xsl:call-template>
 
<fo:block-container padding="0" margin-left="15px" margin="0" margin-bottom="5px">
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="unidadeStatsGrupoSalas/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">26%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$ROSE_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block>
 
<fo:block text-align="right" margin-top="10px" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
Unidades consideradas no curso de <xsl:value-of select="nomeCurso"/>: <xsl:value-of select="unidadeStatsGrupoSalas/unidadesNoCurso"/>
</fo:block>
<fo:block text-align="right" margin-left="10px" font-size="6.5pt" font-weight="normal" margin-right="10px">
Unidades consideradas na <xsl:value-of select="nomeEscola"/>: <xsl:value-of select="unidadeStatsGrupoSalas/unidadesNaEscola"/>
</fo:block>
 
<fo:block padding="0" margin="0" margin-top="5px">
<xsl:apply-templates select="unidadeStatsGrupoSalas/mediasGrupo" mode="mediasGrupo">
<xsl:with-param name="objetoAvaliacao">do docente</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$ROSE_COLOR_SUB_SECTION"/>
<xsl:with-param name="smileHeight">15</xsl:with-param>
<xsl:with-param name="fontSize">6pt</xsl:with-param>
<xsl:with-param name="fontSizeMedias">7pt</xsl:with-param>
</xsl:apply-templates>
</fo:block>
</fo:block-container>
 
 
</xsl:for-each>
</xsl:for-each>
 
 
<fo:block-container padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccaoGreen">
<xsl:with-param name="text">5 - Análise das questões em cada unidade do docente</xsl:with-param>
<xsl:with-param name="text">4 - Análise das questões em cada unidade do docente</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">class.png</xsl:with-param>
</xsl:call-template>
869,7 → 1163,7
 
 
<xsl:call-template name="subSeccao">
<xsl:with-param name="text">5.<xsl:value-of select="$sizeCursos+1"/>
<xsl:with-param name="text">4.<xsl:value-of select="$sizeCursos+1"/>
- Análise conjunta de todas as unidades curriculares</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="marginBottom">5px</xsl:with-param>
878,7 → 1172,7
<!-- Tabela com todas as Medias de Grupo de todas as unidades -->
 
<xsl:call-template name="subSubSeccao">
<xsl:with-param name="text">5.<xsl:value-of select="$sizeCursos+1"/>.1
<xsl:with-param name="text">4.<xsl:value-of select="$sizeCursos+1"/>.1
- Análise do grupo de questões relativas ao docente versus questões relativas às unidades para todas as unidades do docente</xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="marginBottom">2px</xsl:with-param>
890,7 → 1184,7
</fo:block>
 
<xsl:call-template name="subSubSeccao">
<xsl:with-param name="text">5.<xsl:value-of select="$sizeCursos+1"/>.2
<xsl:with-param name="text">4.<xsl:value-of select="$sizeCursos+1"/>.2
- Tabela com médias de curso e de escola na agregação das questões</xsl:with-param>
<xsl:with-param name="marginTop">10px</xsl:with-param>
<xsl:with-param name="marginBottom">5px</xsl:with-param>
1067,7 → 1361,7
 
<fo:block-container id="capProgressoes" padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccao">
<xsl:with-param name="text">7 - Progressão do Docente</xsl:with-param>
<xsl:with-param name="text">5 - Progressão do Docente</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">teacherProgression.png</xsl:with-param>
</xsl:call-template>
1147,7 → 1441,7
 
 
 
 
<!--
<fo:table-row>
<fo:table-cell padding="0" margin="0">
<fo:block margin="0" padding="0" margin-top="20px">
1223,8 → 1517,10
</fo:block>
</fo:table-cell>
</fo:table-row>
-->
</fo:table-body>
</fo:table>
 
</xsl:template>
 
 
1240,7 → 1536,7
 
<fo:block-container id="capForcasFraquezas" padding="0" margin="0" page-break-before="always">
<xsl:call-template name="seccao">
<xsl:with-param name="text">8 - Desempenhos Máximos e Mínimos</xsl:with-param>
<xsl:with-param name="text">6 - Desempenhos Máximos e Mínimos</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
<xsl:with-param name="icon">forcasFraquezasTeacher.png</xsl:with-param>
</xsl:call-template>
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/xsl/utilsReports.fo.xsl
1090,6 → 1090,9
<xsl:param name="fourthColPercentSize"></xsl:param>
<xsl:param name="fifthColPercentSize"></xsl:param>
<xsl:param name="sixthColPercentSize"></xsl:param>
<xsl:param name="seventhColPercentSize"></xsl:param>
<xsl:param name="eighthColPercentSize"></xsl:param>
 
<xsl:param name="ignoreColumns">false</xsl:param>
<xsl:param name="backgroundHeader"><xsl:value-of select="$backgroundHeader"/></xsl:param>
<xsl:param name="backgroundFooter"><xsl:value-of select="$backgroundFooter"/></xsl:param>
1120,6 → 1123,12
<xsl:when test="$sixthColPercentSize != '' and position() = 6">
<fo:table-column column-width="{$sixthColPercentSize}"/>
</xsl:when>
<xsl:when test="$seventhColPercentSize != '' and position() = 7">
<fo:table-column column-width="{$seventhColPercentSize}"/>
</xsl:when>
<xsl:when test="$eighthColPercentSize != '' and position() = 8">
<fo:table-column column-width="{$eighthColPercentSize}"/>
</xsl:when>
<xsl:when test="width and width != ''">
<xsl:variable name="width" select="width"/>
<fo:table-column column-width="{$width}"/>
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/xsl/cursoPublicReport.fo.xsl
477,8 → 477,9
 
<fo:block text-align="center" margin-top="10px" margin-left="10px" font-weight="normal" margin-right="10px">
<xsl:apply-templates select="//tabelaTaxaRespostaUnidade" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
<xsl:with-param name="fontSize">12pt</xsl:with-param>
<xsl:with-param name="firstColPercentSize">30%</xsl:with-param>
<xsl:with-param name="sixthColPercentSize">20%</xsl:with-param>
<xsl:with-param name="fontSize">10pt</xsl:with-param>
</xsl:apply-templates>
</fo:block>
 
489,15 → 490,15
</xsl:call-template>
</fo:block-container>
<xsl:call-template name="subSeccao">
<xsl:with-param name="text">2.1 - Taxas de resposta ordenadas por participação</xsl:with-param>
<xsl:with-param name="text">2.2 - Taxas de resposta ordenadas por participação</xsl:with-param>
<xsl:with-param name="marginTop">0</xsl:with-param>
</xsl:call-template>
 
<fo:block text-align="center" margin-top="10px" margin-left="10px" font-weight="normal" margin-right="10px">
<xsl:apply-templates select="//tabelaTaxaRespostaUnidadeOrderTaxa" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
<xsl:with-param name="fourthColPercentSize">40%</xsl:with-param>
<xsl:with-param name="fontSize">12pt</xsl:with-param>
<xsl:with-param name="firstColPercentSize">30%</xsl:with-param>
<xsl:with-param name="sixthColPercentSize">20%</xsl:with-param>
<xsl:with-param name="fontSize">10pt</xsl:with-param>
</xsl:apply-templates>
</fo:block>
</xsl:template>
569,7 → 570,7
 
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="//cursoStats/respostasAgregadasGrupoUnidade/respostasAgregadasChartTable/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">35%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
 
587,6 → 588,7
</fo:block-container>
 
<!--Considerando Respostas Superiores a 2 segindos-->
<!--
<fo:block-container background-color="#aaaaaa" padding="5px" margin="0" margin-top="20px">
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccao">
600,7 → 602,7
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
</fo:block-container>
</fo:block-container>-->
</xsl:template>
 
<!-- ############################################################# -->
642,7 → 644,7
 
<fo:block text-align="center" margin="0" font-size="10" font-weight="normal" >
<xsl:apply-templates select="//cursoStats/respostasAgregadasGrupoSalas/respostasAgregadasChartTable/respostasTable" mode="DataTable">
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">35%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
 
660,6 → 662,7
</fo:block-container>
 
<!--Considerando Respostas Superiores a 2 segindos-->
<!--
<fo:block-container background-color="#aaaaaa" padding="5px" margin="0" margin-top="20px">
<fo:block-container padding="0" margin="0">
<xsl:call-template name="subSubSeccao">
673,7 → 676,7
<xsl:with-param name="firstColPercentSize">40%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
</fo:block-container>
</fo:block-container>-->
</xsl:template>
 
<!-- ############################################################# -->
776,7 → 779,7
</xsl:call-template>
 
<fo:block font-weight="bolder" margin-bottom="5px">
Questão: "<xsl:value-of select="pergunta"/>"
Questão <xsl:value-of select="perguntaNumero"/>: "<xsl:value-of select="pergunta"/>"
</fo:block>
 
 
784,7 → 787,7
<xsl:apply-templates select="tabelaComparativaUnidades" mode="DataTable">
<xsl:with-param name="firstColPercentSize">15%</xsl:with-param>
<xsl:with-param name="secondColPercentSize">15%</xsl:with-param>
<xsl:with-param name="sixthColPercentSize">30%</xsl:with-param>
<xsl:with-param name="eighthColPercentSize">30%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$GREEN_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block>
810,7 → 813,7
 
 
<fo:block font-weight="bolder" margin-bottom="5px">
Questão: "<xsl:value-of select="pergunta"/>"
Questão <xsl:value-of select="perguntaNumero"/>: "<xsl:value-of select="pergunta"/>"
</fo:block>
 
<!--
823,7 → 826,7
<xsl:apply-templates select="tabelaComparativaUnidades" mode="DataTable">
<xsl:with-param name="firstColPercentSize">15%</xsl:with-param>
<xsl:with-param name="secondColPercentSize">15%</xsl:with-param>
<xsl:with-param name="sixthColPercentSize">30%</xsl:with-param>
<xsl:with-param name="eighthColPercentSize">30%</xsl:with-param>
<xsl:with-param name="backgroundHeader" select="$ROSE_COLOR_SUB_SECTION"/>
</xsl:apply-templates>
</fo:block>
843,8 → 846,8
 
<fo:block margin="0" padding="0" text-align="center">
<xsl:apply-templates select="//todasAsRespostasMediasGruposUnidadesESalas" mode="DataTable">
<xsl:with-param name="firstColPercentSize">15%</xsl:with-param>
<xsl:with-param name="secondColPercentSize">15%</xsl:with-param>
<xsl:with-param name="firstColPercentSize">10%</xsl:with-param>
<xsl:with-param name="secondColPercentSize">10%</xsl:with-param>
</xsl:apply-templates>
</fo:block>
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/TIPOLOGIAS_ASSOCIACAO_README.txt
New file
0,0 → 1,85
 
No ficheiro AnswersAlunosProcessor
 
São adicionadas as tipologias obtidas do obtainTipologiasSimples()
 
tipologias = cuImpl.getTipologiasClass().obtainTipologiasSimples(unidadeCurricularAfeta.getCourseUnit());
 
Apenas as sumariadas vêm, as que não são sumariadas não vêm
Tem de passar a vir
Porque o que está a ser feito no Answers processor tem de passar a ser feito no próprio metodo das obtain simples
ou então alterar no JSP para validar isso e meter as que faltam
"pedagogicoCourseCheckUnidadeAfeta.jsp"
 
Este método cria para todos os do docentes na unidade caso o não haja nenhuma sumariada
 
Tem de passar a criar para todos e acabou-se
 
 
FALTA FAZER :
FALTA GARANTIR QUE SO USA AS MARCADAS PARA USAR
QUANDO ATRIBUI RESPOSTAS E QUANDO GERA OS OLAPS VOLTA A VERIFICAR
E TEMOS DE ARRANJAR FORMA DE AS DESMARCAR
TER CUIDADO QUE NO AnswersAlunosProcessor ele marca-as todas para usar
isso tem de ser diferente.
 
LINHA AnswersAlunosProcessor 148 ele marca-as como sendo para usar aqui tem de ver se foi marcada para não usar
por alguma razão e deixa-se de usar o USE uma vez que é adulterado em todo lado
LINHA 314 é onde verifica que deve ou nao ser usada
 
Funcionamento Final das Tipologias
 
1 - Na importação em ImportCourseService para a courseUnit são iportadas as novas tipologias e ignoradas as Velhas
1.1 Após a importação de Tipologias:
- TDocTurma
- Sumario
- Horario + HorarioTrabalho
são consistidos os estados de exlusão das novas com as antigas
 
 
M - No JSP de Apresentação de Tipologias pedagogicoCourseCheckUnidadeAfeta.jsp
- As tipologias são sempre obtidas da CourseUnit directamente caso a data de ultima importacao da unidade
seja superior a data da ultima sincronização do serviço de selecção de cursos dos questionarios
que afeta a data de ultima update de sincronizacao de todas as unidades que afetar
Usa-se o obtainSimple ou o obtainMerged consoante estamos a usar ou nao as tipologias
Chamava-se o método UpdateCoursesAndUnitsJobService que agora é chamado antes no JSP de curso afeto
UpdateCoursesAndUnitsJobService.updateCountersUnidadeAfeta(unidade,tipologias);
para atualizar os alertas de profs e alunos e sumarios
 
todos os counters da Unidade são atualizados quando se gera a Linha da Unidade no JSP de cursosAfetos
estando já atualizados no JSP de unidade afeta, são também atualizados no momento da Selecção de cursos.
A atualização de Counters é sempre feita com base nas Tipologias Merged e não nas simple
 
O - A obtenção de Tipologias para apresentar na pagina pode ser feita de duas maneiras:
- CourseUnitImpl.obtainTipologiasSimples
Obtem todos os tipos de Tipologia na classe de Tipologias e no metodo fullfillTipologiasSimples
coloca-as num MAPA de Unicas considerando apenas a Turma e o Docente
Tem o cuidado de passar o parametro de Excluida true/false
No entanto o tipo será
simples.setCdTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE);
simples.setDsTipologia(Globals.BACO_TIPOLOGIA_SIMPLES_DS);
mas mantem as informações de se é de horario de ref ou se é extra ou TDocTurma
isSumário é auto pelas ocorrecnias
 
- CourseUnitImpl.obtainMergeTipologias
adiciona todas as tipologias das lista do Merge dos Sumarios, Horarios e T_DOC_TURMA
Faz um merge das Tipologias todas das várias listas presentes preservando os marcadores
de presença nos Horarios, Extra, tdocturma - isSumário é auto pelas ocorrecnias
o Exclude nao é passado porque supostamente já está marcado em todas as Tipologias
que fazem match com a simples caso tenha sido marcada como excluida nas simples ou
caso tenha sido marcada como excluida no modo merged tem de marcar como excluidas todas
as ocorrências em todas as listas
P - Criado um metodo de set Exclude na CourseUnitImpl que altera o parametro exclude em todas as listas na CourseUnitImpl
usa o equals que compara o CDDocente CDTurma e o CDTipologia
sendo que se for simples esta ultima clausula dá sempre verdadeira.
O metodo é chamado pelo serviço de updateVar do Serviço de UpdateCoursesAndUnitsJobService
que depois de afetar as excluidas recalcula o counter de excluidas na unidade
 
 
N - Na criação das respostas esperadas todas as Tipologias não marcadas como Excluded São usadas
marcando-se com use = True
AnswersAlunosProcessor.runJobServiceTask()
Linha : procurar por if(!tMerge.isExclude())
 
Z - Na Geração OLAP volta-se a confirmar se se pode usar a Tipologia
public boolean canUse(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada,CourseUnitImpl cuImpl)
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/CursoPublicReportGenerator.java
50,7 → 50,7
AbstractDao.getCurrentSession().beginTransaction();
//String teacherCode = "44451";
//String teacherCode = "20122";
String courseCode = "7175";
String courseCode = "6914";
//String courseCode = "9104";
String anoLectivo = "201516";
String[] periodos = new String[]{"S2","T3","T4","A"};
174,89 → 174,89
 
if(respostas > 0)
{
//EVOLUCAO DAS RESPOSTAS
List<Object[]> semanaContagemCurso = QuestionariosQueryDao.obtainEvolucaoRespostas(new String[]{courseCode}, EntityEvaluated.CURSO,anoLectivo,periodos,degrees);
List<Object[]> semanaContagemEscola = QuestionariosQueryDao.obtainEvolucaoRespostas(new String[]{cursoReport.getCursoStats().getCodigoInstituicao()},EntityEvaluated.ESCOLA,anoLectivo,periodos,degrees);
String distRespostas = ChartBuilderUtil.createTimeSeriesCursoRepostas("distribuicaoRespostasSemanal",cursoReport.getCursoStats().getNomeCurso(),cursoReport.getCursoStats().getAbreviaturaInstituicao(),semanaContagemCurso,semanaContagemEscola);
cursoReport.setPathDistribuicaoRespostasSemanalChart(distRespostas);
//EVOLUCAO DAS RESPOSTAS
List<Object[]> semanaContagemCurso = QuestionariosQueryDao.obtainEvolucaoRespostas(new String[]{courseCode}, EntityEvaluated.CURSO,anoLectivo,periodos,degrees);
List<Object[]> semanaContagemEscola = QuestionariosQueryDao.obtainEvolucaoRespostas(new String[]{cursoReport.getCursoStats().getCodigoInstituicao()},EntityEvaluated.ESCOLA,anoLectivo,periodos,degrees);
String distRespostas = ChartBuilderUtil.createTimeSeriesCursoRepostas("distribuicaoRespostasSemanal",cursoReport.getCursoStats().getNomeCurso(),cursoReport.getCursoStats().getAbreviaturaInstituicao(),semanaContagemCurso,semanaContagemEscola);
cursoReport.setPathDistribuicaoRespostasSemanalChart(distRespostas);
 
DataTable tableEvolucaoRespostas = criarEvolucaoTaxasRespostas(semanaContagemCurso,cursoReport.getQuestionariosReqTotal());
cursoReport.setTabelaEvolucaoRespostas(tableEvolucaoRespostas);
DataTable tableEvolucaoRespostas = criarEvolucaoTaxasRespostas(semanaContagemCurso,cursoReport.getQuestionariosReqTotal());
cursoReport.setTabelaEvolucaoRespostas(tableEvolucaoRespostas);
 
 
//Os cursos na Escola são todos os cursos, na pratica nao serve para nada porque
//A media de todos os cursos na escola é a media da escola considerando a restricao de graus e periodos
//media nas Escolas por pergunta e media nos Cursos por pergunta é igual
//A media da entidade neste caso é a do curso
List<String> codigosTodosCursosDaEscola = QueryDaoUtils.getCodigosCursosEscola(cursoReport.getCursoStats().getCodigoInstituicao(),anoLectivo, periodos, degrees);
//Os cursos na Escola são todos os cursos, na pratica nao serve para nada porque
//A media de todos os cursos na escola é a media da escola considerando a restricao de graus e periodos
//media nas Escolas por pergunta e media nos Cursos por pergunta é igual
//A media da entidade neste caso é a do curso
List<String> codigosTodosCursosDaEscola = QueryDaoUtils.getCodigosCursosEscola(cursoReport.getCursoStats().getCodigoInstituicao(),anoLectivo, periodos, degrees);
 
//List<String> codigosEscola = QueryDaoUtils.getCodigosEscolaDocente(teacherCode, anoLectivo, periodos, degrees);
List<String> codigosEscola = new ArrayList<String>();
codigosEscola.add(cursoReport.getCursoStats().getCodigoInstituicao());
//List<String> codigosEscola = QueryDaoUtils.getCodigosEscolaDocente(teacherCode, anoLectivo, periodos, degrees);
List<String> codigosEscola = new ArrayList<String>();
codigosEscola.add(cursoReport.getCursoStats().getCodigoInstituicao());
 
 
cursoReport.getCursoStats().setDocentesDoCurso((int) QueryDaoUtils.countDocentesNosCursos(courseCode, anoLectivo, periodos, degrees));
cursoReport.getCursoStats().setDocentesDaEscola((int) QueryDaoUtils.countDocentesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
cursoReport.getCursoStats().setDocentesDoCurso((int) QueryDaoUtils.countDocentesNosCursos(courseCode, anoLectivo, periodos, degrees));
cursoReport.getCursoStats().setDocentesDaEscola((int) QueryDaoUtils.countDocentesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
 
// @todoRefactor
// O DocenteReport tem as unidades na escola e as unidades no curso
// O CursoReport nao tem, estao antes no CursoStats
// Uma vez que sao usados em todos os reports de Alunos poderiam ser colocados no QuestionarioAlunos não é problematico
// vai buscar às cadeiras temos de fazer override do metodo e puxa-lo para o QuestionarioAlunos
//ou nao porque o UnidadesDaEscola foi introduzido dentro do Curso não se puxou para o QuestionarioAlunos
//o xsl vai ter de usar este caso o use
cursoReport.getCursoStats().setUnidadesDoCurso((int) QueryDaoUtils.countUnidadesNosCursos(courseCode, anoLectivo, periodos, degrees));
cursoReport.getCursoStats().setUnidadesDaEscola((int) QueryDaoUtils.countUnidadesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
// @todoRefactor
// O DocenteReport tem as unidades na escola e as unidades no curso
// O CursoReport nao tem, estao antes no CursoStats
// Uma vez que sao usados em todos os reports de Alunos poderiam ser colocados no QuestionarioAlunos não é problematico
// vai buscar às cadeiras temos de fazer override do metodo e puxa-lo para o QuestionarioAlunos
//ou nao porque o UnidadesDaEscola foi introduzido dentro do Curso não se puxou para o QuestionarioAlunos
//o xsl vai ter de usar este caso o use
cursoReport.getCursoStats().setUnidadesDoCurso((int) QueryDaoUtils.countUnidadesNosCursos(courseCode, anoLectivo, periodos, degrees));
cursoReport.getCursoStats().setUnidadesDaEscola((int) QueryDaoUtils.countUnidadesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
 
 
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
0,
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getRespostasAgregadasChartTable(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade(),
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS, null,
periodos, degrees, true);
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
0,
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getRespostasAgregadasChartTable(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade(),
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS, null,
periodos, degrees, true);
 
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
4000,
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getRespostasAgregadasChartTable2Secs(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade(),
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS, null,
periodos, degrees, false);
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
2000,
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getRespostasAgregadasChartTable2Secs(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade(),
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS, null,
periodos, degrees, false);
 
 
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
0,
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas().getRespostasAgregadasChartTable(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas(),
PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS, null,
periodos, degrees, true);
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
0,
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas().getRespostasAgregadasChartTable(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas(),
PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS, null,
periodos, degrees, true);
 
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
9000,
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas().getRespostasAgregadasChartTable2Secs(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas(),
PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS, null,
periodos, degrees, false);
ReportAlunosGenerator.criarGraficosRespostasAgregadas(new String[]{courseCode},
EntityEvaluated.CURSO,
anoLectivo,
cursoReport,
codigosTodosCursosDaEscola,
codigosEscola,
2000,
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas().getRespostasAgregadasChartTable2Secs(),
cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas(),
PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS, null,
periodos, degrees, false);
 
 
UnidadesQueryDao.criarTabelasCadeirasCurso(courseCode,
324,7 → 324,7
for(PerguntaStats perguntaStats : perguntaStatsesUnidadeHeader)
{
headerHidden.addColTextCenter("Inv " + perguntaStats.getNumero());
header.addColTextCenter(perguntaStats.getNumero()).setBackgroundColor(ChartBuilderUtil.getRgbXslColor(ChartBuilderUtil.COLOR_SECTION_GREEN));
header.addColTextCenter("Q" + perguntaStats.getNumero()).setBackgroundColor(ChartBuilderUtil.getRgbXslColor(ChartBuilderUtil.COLOR_SECTION_GREEN));
}
}
 
343,8 → 343,8
});
for(PerguntaStats perguntaStats : perguntaStatsesSalasHeader)
{
header.addColTextCenter(perguntaStats.getNumero());
headerHidden.addColTextCenter("Inv " + perguntaStats.getNumero()).setBackgroundColor(ChartBuilderUtil.getRgbXslColor(ChartBuilderUtil.COLOR_SECTION_ROSE));
header.addColTextCenter("Q" + perguntaStats.getNumero());
headerHidden.addColTextCenter("Inv Q" + perguntaStats.getNumero()).setBackgroundColor(ChartBuilderUtil.getRgbXslColor(ChartBuilderUtil.COLOR_SECTION_ROSE));
}
}
 
355,10 → 355,22
headerHidden.addColTextCenter("Inv Insc.");
headerGroups.addColInvisible();
 
header.addColTextCenter("Docen.");
headerHidden.addColTextCenter("Inv Docentes");
headerGroups.addColInvisible();
 
header.addColTextCenter("Resp. Esp.");
headerHidden.addColTextCenter("Inv Resp. Esperadas");
headerGroups.addColInvisible();
 
headerHidden.addColTextCenter("Inv Resps.");
header.addColTextCenter("Resps.");
headerGroups.addColInvisible();
 
headerHidden.addColTextCenter("Inv % Resps.");
header.addColTextCenter("% Resps.");
headerGroups.addColInvisible();
 
for(UnidadeStats unidadeStats: cursoReport.getCursoStats().getUnidadesStats())
{
DataTable.Row unidadeRow = tabelaComRespostasATodasAsPerguntasUnidadesSalas.addRowNormal();
418,7 → 430,11
 
 
unidadeRow.addColTextCenter("" + unidadeStats.getInscritos());
unidadeRow.addColTextCenter("" + unidadeStats.getDocentes());
unidadeRow.addColTextCenter("" + unidadeStats.getRespostasEsperadas());
unidadeRow.addColTextCenter("" + unidadeStats.getRespostas());
unidadeRow.addColPercentageCenter(unidadeStats.getTaxaRespostaPrint0Slots(),true);
 
}
return tabelaComRespostasATodasAsPerguntasUnidadesSalas;
}
441,9 → 457,21
}
ArrayList<TabelaPerguntaComparativosUnidades> tabelas = new ArrayList<TabelaPerguntaComparativosUnidades>();
 
 
for(String pergunta: unidadesPerguntas.keySet())
List<Map.Entry<String, List<UnidadePergunta>>> entradas = new ArrayList<Map.Entry<String, List<UnidadePergunta>>>(unidadesPerguntas.entrySet());
Collections.sort(entradas,new Comparator<Map.Entry<String, List<UnidadePergunta>>>() {
@Override
public int compare(Map.Entry<String, List<UnidadePergunta>> o1, Map.Entry<String, List<UnidadePergunta>> o2) {
List<UnidadePergunta> o1UP = o1.getValue();
List<UnidadePergunta> o2UP = o2.getValue();
int numeroPergunta1 = Integer.parseInt(o1UP.get(0).getPerguntaStats().getNumero());
int numeroPergunta2 = Integer.parseInt(o2UP.get(0).getPerguntaStats().getNumero());
return numeroPergunta1 - numeroPergunta2;
}
});
for(Map.Entry<String, List<UnidadePergunta>> entrada : entradas)
//for(String pergunta: unidadesPerguntas.keySet())
{
String pergunta = entrada.getKey();
TabelaPerguntaComparativosUnidades tabelaPerguntaComparativosUnidades = new TabelaPerguntaComparativosUnidades();
tabelas.add(tabelaPerguntaComparativosUnidades);
tabelaPerguntaComparativosUnidades.setPergunta(pergunta);
454,8 → 482,10
header.addColTextCenter("Unidade Curricular");
header.addColTextCenter("Curso");
header.addColTextCenter("Insc.");
header.addColTextCenter("Resp.");
header.addColTextCenter("% Resposta");
header.addColTextCenter("Docentes.");/*Novo*/
header.addColTextCenter("Resp. Esperadas");/*Novo*/
header.addColTextCenter("Resp. Fornecidas");
header.addColTextCenter("% Respostas");
header.addColTextCenter("Média");
header.addColTextCenter("Desvio");
 
483,9 → 513,12
rowUnidade.addColLabelCenter(unidadePergunta.getUnidadeStats().getNomeUnidade());
rowUnidade.addColLabelCenter(unidadePergunta.getUnidadeStats().getNomeCurso());
rowUnidade.addColTextRight("" + unidadePergunta.getUnidadeStats().getInscritos());
rowUnidade.addColTextRight("" + unidadePergunta.getUnidadeStats().getDocentes());
rowUnidade.addColTextRight("" + unidadePergunta.getUnidadeStats().getRespostasEsperadas());
rowUnidade.addColTextRight("" + unidadePergunta.getUnidadeStats().getRespostas());
rowUnidade.addColTextRight("" + unidadePergunta.getUnidadeStats().getTaxaRespostaPrint0Slots());
rowUnidade.addColPercentageDefinedCenter("" + unidadePergunta.getPerguntaStats().getMediaEntidadeEmAvaliacaoPrint(), unidadePergunta.getPerguntaStats().getPercentMediaEntidadeEmAvaliacao(), true);
//rowUnidade.addColTextRight("" + unidadePergunta.getUnidadeStats().getTaxaRespostaPrint0Slots());
rowUnidade.addColPercentageDefinedCenter("" + unidadePergunta.getUnidadeStats().getTaxaRespostaPrint0Slots(), unidadePergunta.getUnidadeStats().getTaxaRespostaPrint0Slots(), true);
rowUnidade.addColPercentageCenter(unidadePergunta.getPerguntaStats().getPercentMediaEntidadeEmAvaliacao(), true);
rowUnidade.addColTextRight(unidadePergunta.getPerguntaStats().getDesvio());
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/queries/PerguntasGrupoQueryDao.java
2,9 → 2,9
 
import jomm.dao.impl.AbstractDao;
import org.hibernate.Query;
import pt.estgp.estgweb.domain.OlapStarFactQuestionario;
import pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswer;
import pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.DocenteReport;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.EntityEvaluated;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.QuestionariosAlunosReport;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.ChartBuilderUtil;
50,11 → 50,60
String degreesQuery = QueryDaoUtils.createDegreesQuery(degrees, "curso", true);
String whereFragmentEntity = QuestionariosQueryDao.getWhereEntityCodesFragment(codes,entityEvaluated);
 
 
query = AbstractDao.getCurrentSession().createQuery("" +
"SELECT " +
"sum(case when fc.respondido = true then 1 else 0 end) as respondido, " +
"sum(case when fc.respondido = false then 1 else 0 end) as naoRespondido, " +
"count(distinct user.sigesCode) as inscritos, " + //colocado DISTINCT correcao
"count(distinct tipo.codigoSiges) as docentes " +
//"count(fc.id) as total " + //Este total esta errado nao da o total de questionarios respondidos dá multiplicado pelas perguntas porque nao usa group by nem desagrega em perguntas
 
"FROM " + OlapStarFactQuestionario.class.getName() + " fc " +
"JOIN fc.olapTipologia tipo " +
"JOIN fc.olapQuestionario quest " +
"JOIN fc.olapCurso curso " +
"JOIN fc.olapTimeLine timeLine " +
"JOIN fc.olapPerfilUser user " +
 
"where " +
" quest.ano = :ano " +
whereFragmentEntity +
"and timeLine.nome = '" + PedagogicoAlunosProcessor.getHistoryDriveConstraintStatic() + "' " +
periodosQuery +
degreesQuery
//(grupo == null ? "" : " and prgp.grupoCode = :grupoCode ") +
//(subGrupo == null ? "" : " and prgp.subGrupoCode = :subGrupoCode ")
);
 
//O numero de respostas do Medis grupo quer aqui quer na ParticipacaoUnidade calculada em UnidadeQueryDao.criarTabelaTaxas(
//nao considera o grupo, é o melhor que se consegue fazer, vai dar o numero de questinarios respondidos
/*if(grupo != null)
query.setString("grupoCode",grupo);
if(subGrupo != null)
query.setString("subGrupoCode",subGrupo);*/
//query.setString("codigoSiges",teacherCode);
query.setString("ano",anoLectivo);
 
Object[] questionarioStatsObject = (Object[]) query.uniqueResult();
Long respondidos = (Long) questionarioStatsObject[0];
Long naoRespondidos = (Long) questionarioStatsObject[1];
Long inscritos = (Long) questionarioStatsObject[2];
Long docentes = (Long) questionarioStatsObject[3];
int respondidosInt = respondidos == null ? 0 : respondidos.intValue();
int naoRespondidosInt = naoRespondidos == null ? 0 : naoRespondidos.intValue();
int respostasEsperadasInt = naoRespondidosInt + respondidosInt;
int inscritosInt = inscritos == null ? 0 : inscritos.intValue();
int docentesInt = docentes == null ? 0 : docentes.intValue();
int percentagemRespostas = (int) ChartBuilderUtil.getPercentagem(respondidosInt, respostasEsperadasInt);
 
 
 
query = AbstractDao.getCurrentSession().createQuery("" +
"SELECT " +
"avg(fc.intResposta) as media," +
"std(fc.intResposta) as desvio," +
"count(fc.id) as total " +
"std(fc.intResposta) as desvio " +
//"count(fc.id) as total " + //Este total esta errado nao da o total de questionarios respondidos dá multiplicado pelas perguntas porque nao usa group by nem desagrega em perguntas
 
"FROM " + OlapStarFactQuestionarioAnswer.class.getName() + " fc " +
"JOIN fc.olapTipologia tipo " +
84,6 → 133,7
 
DataTable.Row header = mediasGlobaisTable.addRowHeader();
header.addColTextCenter("Resps.");
header.addColTextCenter("% Resps.");
header.addColTextCenter("Média");
header.addColTextCenter("Desvio Padrão");
header.addColTextCenter("95% Resps no intervalo");
108,15 → 158,16
 
Double mediaGrupo = (Double) result[0];
Double desvio = (Double) result[1];
long total = report.getInquiridosComResposta();
//long total = report.getInquiridosComResposta(); //total vai buscar ao relatorio porque estava mal
double min = mediaGrupo - (desvio*2);
double max = mediaGrupo + (desvio*2);
if(max > 5) max = 5;
DecimalFormat df = new DecimalFormat("#.##");
DecimalFormat df2 = new DecimalFormat("#.#");
DecimalFormat df = new DecimalFormat("#,##0.00");
DecimalFormat df2 = new DecimalFormat("#,#0.0");
 
DataTable.Row row = mediasGlobaisTable.addRowNormal();
row.addColTextCenter(""+total);
row.addColTextCenter(""+respondidosInt);
row.addColPercentageCenter(""+percentagemRespostas,true);
row.addColPercentageDefinedCenter(df.format(mediaGrupo),"" + ((int)((mediaGrupo/5.0)*100.0)), true);
row.addColTextCenter(df.format(desvio));
row.addColTextCenter("[" + df2.format(min) + "<->" + df2.format(max) + "]");
148,7 → 199,12
medias.setDesvioPadrao(desvio);
medias.setMediaGlobalNasEscolas(mediaEscolas);
medias.setMediaGlobalNosCursos(mediaCursos);
medias.setTotal((int) total);
//medias.setTotal((int) total);
medias.setInscritos(inscritosInt);
medias.setRespostasEsperadas(respostasEsperadasInt);
medias.setDocentes(docentesInt);
medias.setRespostas(respondidosInt);
medias.setPercentagemArredondadaRespostas(percentagemRespostas);
 
medias.setMediasGlobaisTable(mediasGlobaisTable);
 
167,7 → 223,7
 
 
 
public static void getMediasGrupo(String teacherCode,
/*public static void getMediasGrupo(String teacherCode,
String anoLectivo,
DocenteReport docenteReport,
List<String> codigosCurso,
233,8 → 289,8
double min = mediaGrupo - (desvio*2);
double max = mediaGrupo + (desvio*2);
if(max > 5) max = 5;
DecimalFormat df = new DecimalFormat("#.##");
DecimalFormat df2 = new DecimalFormat("#.#");
DecimalFormat df = new DecimalFormat("#,##0.00");
DecimalFormat df2 = new DecimalFormat("#,#0.0");
 
DataTable.Row row = mediasGlobaisTable.addRowNormal();
row.addColTextCenter(""+total);
271,7 → 327,7
medias.setColorMedia(ChartBuilderUtil.COLOR_4_HEX);
else if(medias.getAvaliacaoMediaArredondada() == 5)
medias.setColorMedia(ChartBuilderUtil.COLOR_5_HEX);
}
}*/
 
public static MediaGlobalCursoPergunta getMediaCursoPergunta(QuestionariosAlunosReport report,String codigoCurso, String anoLectivo, String numeroPergunta,String[] periodos)
{
333,7 → 389,7
mediaGlobalCursoPergunta.nomeCurso = (String) result[5];
mediaGlobalCursoPergunta.media = (Double) result[0];
mediaGlobalCursoPergunta.desvio = (Double) result[1];
mediaGlobalCursoPergunta.total = ((Long) result[2]).intValue();
mediaGlobalCursoPergunta.totalRespostaGraoPergunta = ((Long) result[2]).intValue();
mediaGlobalCursoPergunta.tempoLevadoMedia = (Double) result[3];
mediaGlobalCursoPergunta.numeroUnidades = ((Long) result[6]).intValue();
 
402,7 → 458,7
mediaGlobalCursoGrupo.nomeCurso = (String) result[4];
mediaGlobalCursoGrupo.media = (Double) result[0];
mediaGlobalCursoGrupo.desvio = (Double) result[1];
mediaGlobalCursoGrupo.total = ((Long) result[2]).intValue();
mediaGlobalCursoGrupo.totalRespostaGraoPergunta = ((Long) result[2]).intValue();
mediaGlobalCursoGrupo.tempoLevadoMedia = (Double) result[3];
mediaGlobalCursoGrupo.numeroUnidades = ((Long) result[5]).intValue();
 
467,7 → 523,7
mediaGlobalEscolaPergunta.nomeDaEscola = (String) result[4];
mediaGlobalEscolaPergunta.media = (Double) result[0];
mediaGlobalEscolaPergunta.desvio = (Double) result[1];
mediaGlobalEscolaPergunta.total = ((Long) result[2]).intValue();
mediaGlobalEscolaPergunta.totalRespostaGraoPergunta = ((Long) result[2]).intValue();
mediaGlobalEscolaPergunta.tempoLevadoMedia = (Double) result[3];
mediaGlobalEscolaPergunta.numeroUnidades = ((Long) result[6]).intValue();
 
532,7 → 588,7
mediaGlobalEscolaGrupo.nomeDaEscola = (String) result[4];
mediaGlobalEscolaGrupo.media = (Double) result[0];
mediaGlobalEscolaGrupo.desvio = (Double) result[1];
mediaGlobalEscolaGrupo.total = ((Long) result[2]).intValue();
mediaGlobalEscolaGrupo.totalRespostaGraoPergunta = ((Long) result[2]).intValue();
mediaGlobalEscolaGrupo.tempoLevadoMedia = (Double) result[3];
mediaGlobalEscolaGrupo.numeroUnidades = ((Long) result[5]).intValue();
 
583,7 → 639,7
{
public double media;
public double desvio;
public int total;
public int totalRespostaGraoPergunta;
public double tempoLevadoMedia;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/queries/UnidadesQueryDao.java
50,8 → 50,8
query = AbstractDao.getCurrentSession().createQuery("" +
"SELECT " +
"avg(fc.intResposta) as media," +
"std(fc.intResposta) as desvio," +
"count(distinct perfil.id) as total " +
"std(fc.intResposta) as desvio " +
//"count(fc.id) as total " + Nao se pode calcular aqui, vai dar sempre multiplicado por N perguntas
 
"FROM " + OlapStarFactQuestionarioAnswer.class.getName() + " fc " +
"JOIN fc.olapTipologia tipo " +
88,6 → 88,7
 
DataTable.Row header = mediasGlobaisTable.addRowHeader();
header.addColTextCenter("Resps.");
header.addColTextCenter("% Resps.");
header.addColTextCenter("Média");
header.addColTextCenter("Desvio Padrão");
header.addColTextCenter("95% Resps no intervalo");
109,22 → 110,16
return;
}
Double desvio = (Double) result[1];
long total = (Long) result[2];
//long total = (Long) result[2];
double min = mediaGrupo - (desvio*2);
double max = mediaGrupo + (desvio*2);
if(max > 5) max = 5;
DecimalFormat df = new DecimalFormat("#.##");
DecimalFormat df2 = new DecimalFormat("#.#");
DecimalFormat df4 = new DecimalFormat("#.####");
DecimalFormat df = new DecimalFormat("#,##0.00");
DecimalFormat df2 = new DecimalFormat("#,#0.0");
//DecimalFormat df4 = new DecimalFormat("#.####");
 
DataTable.Row row = mediasGlobaisTable.addRowNormal();
row.addColTextCenter(""+total);
row.addColPercentageDefinedCenter(df4.format(mediaGrupo),"" + ((int)((mediaGrupo/5.0)*100.0)), true);
row.addColTextCenter(df.format(desvio));
row.addColTextCenter("[" + df2.format(min) + "<->" + df2.format(max) + "]");
 
 
 
PerguntasGrupoQueryDao.MediaGlobalEscolaGrupo mediaGlobalEscolaGrupo = PerguntasGrupoQueryDao.getMediaEscolaGrupo(report, codigoInstituicao, anoLectivo, grupo, subGrupo, periodos, degrees);
PerguntasGrupoQueryDao.MediaGlobalCursoGrupo mediaGlobalCursoGrupo = PerguntasGrupoQueryDao.getMediaCursoGrupo(report, codigoCurso, anoLectivo, grupo, subGrupo, periodos);
medias.setAvaliacaoMediaArredondada((int) ReportUtils.round(mediaGrupo, 0));
133,8 → 128,24
 
medias.setMediaGlobalNosCursos(mediaGlobalCursoGrupo.media);
medias.setMediaGlobalNasEscolas(mediaGlobalEscolaGrupo.media);
medias.setTotal((int) total);
 
QuestionariosAlunosReport.ParticipacaoUnidade p = report.getParticipacaoUnidade(codigoUnidade,codigoCurso,semestre);
medias.setRespostas(p.getRespostas()); //Total Medias Globais vai buscar às participações já preenchidas
medias.setDocentes(p.getDocentes());
medias.setRespostasEsperadas(p.getRespostasEsperadas());
medias.setInscritos(p.getInscritos());
 
medias.setPercentagemArredondadaRespostas((int)ChartBuilderUtil.getPercentagem(medias.getRespostas(),p.getRespostasEsperadas()));
 
DataTable.Row row = mediasGlobaisTable.addRowNormal();
row.addColTextCenter(""+p.getRespostas());
row.addColPercentageCenter(""+medias.getPercentagemArredondadaRespostas(),true);
row.addColPercentageDefinedCenter(df.format(mediaGrupo),"" + ((int)((mediaGrupo/5.0)*100.0)), true);
row.addColTextCenter(df.format(desvio));
row.addColTextCenter("[" + df2.format(min) + "<->" + df2.format(max) + "]");
 
 
 
row.addColPercentageDefinedCenter(df.format(mediaGlobalCursoGrupo.media),"" + ((int)((mediaGlobalCursoGrupo.media/5.0)*100.0)), true);
row.addColPercentageDefinedCenter(df.format(mediaGlobalEscolaGrupo.media),"" + ((int)((mediaGlobalEscolaGrupo.media/5.0)*100.0)), true);
 
193,8 → 204,8
"curso.nomeInstituicao, " +
"sum(case when fc.respondido = true then 1 else 0 end) as respondido, " +
"sum(case when fc.respondido = false then 1 else 0 end) as naoRespondido, " +
"count(user.sigesCode) " +
 
"count(distinct user.sigesCode), " + //colocado DISTINCT correcao
"count(distinct tipo.codigoSiges) as docentes " +
"from " + OlapStarFactQuestionario.class.getName() + " fc " +
"JOIN fc.olapQuestionario quest " +
"JOIN fc.olapTipologia tipo " +
223,10 → 234,17
String nomeCurso = (String) cadeira[4];
String codigoInstituicao = (String) cadeira[5];
String nomeInstituicao = (String) cadeira[6];
Long respostas = (Long) cadeira[7];
Long respondidos = (Long) cadeira[7];
Long naoRespondidos = (Long) cadeira[8];
Long inscritos = (Long) cadeira[9];
Long docentes = (Long) cadeira[10];
int respondidosInt = respondidos == null ? 0 : respondidos.intValue();
int naoRespondidosInt = naoRespondidos == null ? 0 : naoRespondidos.intValue();
int respostasEsperadasInt = naoRespondidosInt + respondidosInt;
int docentesInt = docentes == null ? 0 : docentes.intValue();
 
 
 
logger.info("Encontrada cadeira: " + nomeUnidade + " de " + nomeCurso + " (" + codigoUnidade + ";" + semestreUnidade + ";" + codigoCurso + ")");
 
UnidadeStats statsUnidade = new UnidadeStats();
238,7 → 256,9
statsUnidade.setNomeEscola(nomeInstituicao);
statsUnidade.setCodigoEscola(codigoInstituicao);
statsUnidade.setInscritos(inscritos.intValue());
statsUnidade.setRespostas(respostas.intValue());
statsUnidade.setRespostas(respondidos.intValue());
statsUnidade.setRespostasEsperadas(respostasEsperadasInt);
statsUnidade.setDocentes(docentesInt);
 
 
if(entityEvaluated == EntityEvaluated.DOCENTE)
251,6 → 271,7
PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null,
codigoUnidade,codigoCurso,semestreUnidade,codigoInstituicao,periodos,degrees);
 
/* se começar a usar descomentar em procurar por: (esta comentado em 2 sitios )report.setUnidadesAnalGrRelAlunoGrProfDoceChartAndTable
UnidadeStats.UnidadeStatsGrupo dataDrelDocenteAluno = criarTabelasRespostasCadeira(codes,entityEvaluated,anoLectivo,report,tempoLevadoMinimo,
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,
PerguntasGrupoQueryDao.GRUPO_DOCENTE_REL_ALUNO_CODE_PERGUNTAS,
260,6 → 281,14
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,
PerguntasGrupoQueryDao.GRUPO_DOCENTE_PROFISSIONALISMO_DOCENTE_CODE_PERGUNTAS,
codigoUnidade,codigoCurso,semestreUnidade,codigoInstituicao,periodos,degrees);
*/
 
UnidadeStats.UnidadeStatsGrupo dataSalas = criarTabelasRespostasCadeira(codes,entityEvaluated,anoLectivo,report,tempoLevadoMinimo,
PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null,
codigoUnidade,codigoCurso,semestreUnidade,codigoInstituicao,periodos,degrees);
 
/*
 
UnidadeStats.UnidadeStatsGrupo dataEstagio = criarTabelasRespostasCadeira(codes,entityEvaluated,anoLectivo,report,tempoLevadoMinimo,
PerguntasGrupoQueryDao.GRUPO_ESTAGIO_CODE_PERGUNTAS,null,
codigoUnidade,codigoCurso,semestreUnidade,codigoInstituicao,periodos,degrees);
267,12 → 296,18
UnidadeStats.UnidadeStatsGrupo dataEnsinoClinico = criarTabelasRespostasCadeira(codes,entityEvaluated,anoLectivo,report,tempoLevadoMinimo,
PerguntasGrupoQueryDao.GRUPO_ENSINO_CLINICO_CODE_PERGUNTAS,null,
codigoUnidade,codigoCurso,semestreUnidade,codigoInstituicao,periodos,degrees);
*/
statsUnidade.setUnidadeStatsGrupoDocente(dataDocente);
statsUnidade.setUnidadeStatsGrupoUnidade(dataUnidade);
/*
statsUnidade.setUnidadeStatsGrupoDrelDocenteAluno(dataDrelDocenteAluno);
statsUnidade.setUnidadeStatsGrupoDdocenteProf(dataDdocenteProf);
*/
statsUnidade.setUnidadeStatsGrupoSalas(dataSalas);
/*
statsUnidade.setUnidadeStatsGrupoEstagio(dataEstagio);
statsUnidade.setUnidadeStatsGrupoPraticaEnsinoClinico(dataEnsinoClinico);
*/
}else if(entityEvaluated == EntityEvaluated.CURSO)
{
UnidadeStats.UnidadeStatsGrupo dataSalas = criarTabelasRespostasCadeira(codes,entityEvaluated,anoLectivo,report,tempoLevadoMinimo,
352,7 → 387,7
"sum(case when fc.intResposta = 4 then 1 else 0 end) as r4," +
"sum(case when fc.intResposta = 5 then 1 else 0 end) as r5," +
"std(fc.intResposta) as desvio," +
"count(fc.id) as total, " +
"count(fc.id) as total, " + //aqui o total esta correcto porque separa o grao das perguntas
"prgp.pergunta as pergunta, " +
"prgp.numero as numero, " +
"avg(fc.tempoLevado) as tempoMedioLevado " +
403,7 → 438,9
DataTable.Row header = tableRespostasAgregadas.addRowHeader();
header.addColTextCenter("Questão");
header.addColTextCenter("Resps.");
header.addColTextCenter("Tempo Médio de Resposta (seg.)");
header.addColTextCenter("Resps. Esperadas");
//header.addColTextCenter("Tempo Médio de Resposta (seg.)");
header.addColTextCenter("% Resps.");
header.addColTextCenter("Nada Satisf. %");
header.addColTextCenter("Pouco Satisf. %");
header.addColTextCenter("Satisf. %");
423,19 → 460,36
Double tempoMedioLevado = (Double) resultTest[10];
Double mediaDocente = (Double) resultTest[0];
Double desvio = (Double) resultTest[6];
Long total = (Long) resultTest[7];
Long total = (Long) resultTest[7]; //aqui o total esta correcto porque separa o grao das perguntas
double min = mediaDocente - (desvio*2);
double max = mediaDocente + (desvio*2);
if(max > 5) max = 5;
DecimalFormat df = new DecimalFormat("#.##");
DecimalFormat df = new DecimalFormat("#,##0.00");
String pergunta = resultTest[8].toString();
String numero = resultTest[9].toString();
 
 
DataTable.Row rowUnidade = tableRespostasAgregadas.addRowNormal();
rowUnidade.addColLabelCenter(pergunta);
rowUnidade.addColTextCenter(""+total);
rowUnidade.addColTextCenter(df.format(tempoMedioLevado/1000.0));
rowUnidade.addColTextCenter(""+total); //aqui o total esta correcto porque separa o grao das perguntas
//rowUnidade.addColTextCenter(df.format(tempoMedioLevado/1000.0));
QuestionariosAlunosReport.ParticipacaoUnidade p = docenteReport.getParticipacaoUnidade(codigoUnidade,codigoCurso,semestre);
rowUnidade.addColTextCenter(""+p.getRespostasEsperadas());
if(p == null)
{
//todo tirar system exit
logger.error("############################");
logger.error("Provisorio: Novo modulo de obtenção de participação por unidade não devolve a Participação");
rowUnidade.addColPercentageCenter("0",false);
System.exit(-1);
}
else
{
//aqui o total esta correcto porque separa o grao das perguntas
rowUnidade.addColPercentageCenter(ChartBuilderUtil.getPercentagemPrint0Slots(total,p.getRespostasEsperadas()) ,true);
}
 
 
DataTable.Row.Col colResposta1 = rowUnidade.addColTextCenter(resultTest[1].toString());
DataTable.Row.Col colResposta2 = rowUnidade.addColTextCenter(resultTest[2].toString());
DataTable.Row.Col colResposta3 = rowUnidade.addColTextCenter(resultTest[3].toString());
549,8 → 603,11
"unidade.nome, " +
"sum(case when fc.respondido = true then 1 else 0 end) as respondido, " +
"sum(case when fc.respondido = false then 1 else 0 end) as naoRespondido, " +
"count(user.sigesCode), " +
"unidade.codigo " +
"count(distinct user.sigesCode) as inscritos, " +
"unidade.codigo, " +
"count(distinct tipo.codigoSiges ) as docentesAvaliados, " +
"quest.semestre, " +
"curso.codigoCurso " +
 
"FROM " + OlapStarFactQuestionario.class.getName() + " fc " +
"JOIN fc.olapQuestionario quest " +
575,8 → 632,9
report.setUnidadesRequisitadas(result.size());
 
 
DataTable dTableOrderByNome = criarTabelaTaxas(report,result,report.getQuestionariosReqRespondidos(),true);
 
DataTable dTableOrderByNome = criarTabelaTaxas(entityEvaluated,report,result,report.getQuestionariosReqRespondidos(),true);
 
report.setTabelaTaxaRespostaUnidade( dTableOrderByNome);
 
Collections.sort(result,new Comparator<Object[]>() {
584,22 → 642,26
public int compare(Object[] o1, Object[] o2)
{
Long respondidos2 = (Long) o2[1];
Long inscritos2 = (Long) o2[3];
Long naoRespondidos2 = (Long) o2[2];
 
int respondidosInt2 = respondidos2 != null ? ((Long) respondidos2).intValue() : 0;
int inscritosInt2 = inscritos2 != null ? ((Long) inscritos2).intValue() : 0;
int naoRespondidosInt2 = naoRespondidos2 != null ? ((Long) naoRespondidos2).intValue() : 0;
int totalRespostasReq2 = respondidosInt2 + naoRespondidosInt2;
 
Long respondidos1 = (Long) o1[1];
Long inscritos1 = (Long) o1[3];
Long naoRespondidos1 = (Long) o1[2];
 
int respondidosInt1 = respondidos1 != null ? ((Long) respondidos1).intValue() : 0;
int inscritosInt1 = inscritos1 != null ? ((Long) inscritos1).intValue() : 0;
int naoRespondidosInt1 = naoRespondidos1 != null ? ((Long) naoRespondidos1).intValue() : 0;
int totalRespostasReq1 = respondidosInt1 + naoRespondidosInt1;
 
int percentage1 = (int)(((float)(respondidosInt1) / ((float)inscritosInt1) * 100.0));
int percentage2 = (int)(((float)(respondidosInt2) / ((float)inscritosInt2) * 100.0));
int percentage1 = (int)(((float)(respondidosInt1) / ((float)totalRespostasReq1) * 100.0));
int percentage2 = (int)(((float)(respondidosInt2) / ((float)totalRespostasReq2) * 100.0));
 
return percentage2 - percentage1;
}
});
DataTable dTableOrderByTaxa = criarTabelaTaxas(report,result,report.getQuestionariosReqRespondidos(),false);
DataTable dTableOrderByTaxa = criarTabelaTaxas(entityEvaluated,report,result,report.getQuestionariosReqRespondidos(),false);
 
report.setTabelaTaxaRespostaUnidadeOrderTaxa(dTableOrderByTaxa);
 
607,19 → 669,32
 
/**REFATORIZAR ISTO, este metodo não precisa de uma query pode perfeitamente usar a lista de UnitStats*/
 
private static DataTable criarTabelaTaxas(QuestionariosAlunosReport alunosReport, List<Object[]> result,int totalRespondidosCadeirasTodas,boolean fillParticipacoesEmUnidades)
private static DataTable criarTabelaTaxas(EntityEvaluated entityEvaluated, QuestionariosAlunosReport alunosReport, List<Object[]> result,int totalRespondidosCadeirasTodas,boolean fillParticipacoesEmUnidades)
{
 
DataTable tableTaxaRespostaUnidade = new DataTable();
DataTable.Row header = tableTaxaRespostaUnidade.addRowHeader();
header.addColTextCenter("Unidade Curricular");
header.addColTextCenter("Insc.");
header.addColTextCenter("Resp.");
if(entityEvaluated != EntityEvaluated.DOCENTE)
header.addColTextCenter("Docentes.");
header.addColTextCenter("Resp. Esperadas");
header.addColTextCenter("Resp. Fornecidas");
header.addColTextCenter("% Respostas");
int totalParticiparam = 0;
int totalInscritos = 0;
//int totalParticiparam = 0;
//int totalInscritos = 0;
for(Object[] unidade: result)
{
/**
* SELECT " +
"unidade.nome, " +
"sum(case when fc.respondido = true then 1 else 0 end) as respondido, " +
"sum(case when fc.respondido = false then 1 else 0 end) as naoRespondido, " +
"count(distinct user.sigesCode) as inscritos, " +
"unidade.codigo, " +
"count(distinct tipo.codigoSiges ) as docentesAvaliados " +
 
*/
 
DataTable.Row rowUnidade = tableTaxaRespostaUnidade.addRowNormal();
String unidadeNome = (String) unidade[0];
627,30 → 702,46
Long naoRespondidos = (Long) unidade[2];
Long inscritos = (Long) unidade[3];
String codigo = (String) unidade[4];
Long docentes = (Long) unidade[5];
String codigoSemestre = (String) unidade[6];
String codigoCurso = (String) unidade[7];
 
 
 
int respondidosInt = respondidos != null ? ((Long) respondidos).intValue() : 0;
int naoRespondidosInt = naoRespondidos != null ? ((Long) naoRespondidos).intValue() : 0;
int inscritosInt = inscritos != null ? ((Long) inscritos).intValue() : 0;
int docentesInt = docentes != null ? ((Long) docentes).intValue() : 0;
 
totalInscritos += inscritosInt;
totalParticiparam += respondidosInt;
int respostasEsperadasInt = respondidosInt + naoRespondidosInt;
 
//totalInscritos += inscritosInt;
//totalParticiparam += respondidosInt;
 
rowUnidade.addColLabelCenter(unidadeNome);
rowUnidade.addColTextCenter(""+inscritosInt);
if(entityEvaluated != EntityEvaluated.DOCENTE)
rowUnidade.addColTextCenter(""+docentesInt);
rowUnidade.addColTextCenter(""+respostasEsperadasInt);
rowUnidade.addColTextCenter(""+respondidosInt);
 
int percentage = (int)(((float)(respondidosInt) / ((float)inscritosInt) * 100.0));
int percentage = (int)(((float)(respondidosInt) / ((float)respostasEsperadasInt) * 100.0));
rowUnidade.addColPercentageCenter("" + percentage,true);
 
if(fillParticipacoesEmUnidades)
{
QuestionariosAlunosReport.ParticipacaoUnidade participacoesUnidades = new QuestionariosAlunosReport.ParticipacaoUnidade();
participacoesUnidades.setCodigoUnidade(codigo);
participacoesUnidades.setCodigoCurso(codigoCurso);
participacoesUnidades.setCodigoSemestre(codigoSemestre);
participacoesUnidades.setNomeUnidade(unidadeNome);
participacoesUnidades.setInscritos(inscritosInt);
participacoesUnidades.setParticiparam(respondidosInt);
participacoesUnidades.setParticiparamPercentagem(percentage);
participacoesUnidades.setDocentes(docentesInt);
participacoesUnidades.setRespostasEsperadas(respostasEsperadasInt);
 
participacoesUnidades.setRespostas(respondidosInt);
participacoesUnidades.setRespostasPercentagem(percentage);
 
participacoesUnidades
.setPercentagemContribuicaoDaUnidadeNoUniversoUnidades(
ChartBuilderUtil.getPercentagem(
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
542,14 → 542,8
public TipologiaPersistent loadPersistent(Tipologia myTipo) throws TipologiaLoadExeption
{
TipologiaPersistent tipologiaPersistent = new TipologiaPersistent();
tipologiaPersistent.setHorRef(myTipo.isHorRef());
tipologiaPersistent.setExtra(myTipo.isExtra());
tipologiaPersistent.tipologiaOriginal = myTipo;
tipologiaPersistent.setTeacher(DaoFactory.getTeacherDaoImpl().loadBySigesCode(Integer.parseInt(myTipo.getCdDocente())));
tipologiaPersistent.setCdTipologia(myTipo.getCdTipologia());
tipologiaPersistent.setOcorrencias(myTipo.getOcorrencias());
tipologiaPersistent.setMarkWarning(myTipo.isMarkWarning());
tipologiaPersistent.setUse(myTipo.isUse());
 
tipologiaPersistent.setCourseUnitTurma(findTurma(myTipo.getCdTurma()));
if(tipologiaPersistent.getCourseUnitTurma() == null || tipologiaPersistent.getTeacher() == null)
{
576,48 → 570,51
{
private Teacher teacher;
private CourseUnitTurma courseUnitTurma;
private String cdTipologia;
Tipologia tipologiaOriginal;
 
/*private String cdTipologia;
private Integer ocorrencias = 0;
protected boolean extra;
protected boolean horRef;
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
protected boolean markWarning; //camp
protected boolean markWarning; //camp*/
 
 
public boolean isUse() {
return use;
return tipologiaOriginal.isUse();
}
 
public void setUse(boolean use) {
this.use = use;
tipologiaOriginal.use = use;
}
 
public boolean isMarkWarning() {
return markWarning;
return tipologiaOriginal.markWarning;
}
 
public void setMarkWarning(boolean markWarning) {
this.markWarning = markWarning;
tipologiaOriginal.markWarning = markWarning;
}
 
public boolean isExtra() {
return extra;
return tipologiaOriginal.extra;
}
 
public boolean isHorRef() {
return horRef;
return tipologiaOriginal.horRef;
}
 
public boolean isSumario() {
return ocorrencias != null && ocorrencias > 0;
return tipologiaOriginal.ocorrencias != null && tipologiaOriginal.ocorrencias > 0;
}
 
public void setExtra(boolean extra) {
this.extra = extra;
tipologiaOriginal.extra = extra;
}
 
public void setHorRef(boolean horRef) {
this.horRef = horRef;
tipologiaOriginal.horRef = horRef;
}
 
public Teacher getTeacher() {
637,20 → 634,28
}
 
public String getCdTipologia() {
return cdTipologia;
return tipologiaOriginal.cdTipologia;
}
 
public void setCdTipologia(String cdTipologia) {
this.cdTipologia = cdTipologia;
tipologiaOriginal.cdTipologia = cdTipologia;
}
 
public Integer getOcorrencias() {
return ocorrencias == null ? 0:ocorrencias;
return tipologiaOriginal.ocorrencias == null ? 0:tipologiaOriginal.ocorrencias;
}
 
public void setOcorrencias(Integer ocorrencias) {
this.ocorrencias = ocorrencias;
tipologiaOriginal.ocorrencias = ocorrencias;
}
 
public boolean isExclude() {
return tipologiaOriginal.exclude;
}
 
public void setExclude(boolean exclude) {
tipologiaOriginal.exclude = exclude;
}
}
/**
* Os codigos de tipologia devem ser limitados a T TP OT etc
671,6 → 676,9
protected boolean horRef;
protected boolean tdocturma = false;
 
//NOVO
protected boolean exclude = false;
 
public boolean isTdocturma() {
return tdocturma;
}
683,6 → 691,14
return use;
}
 
public boolean isExclude() {
return exclude;
}
 
public void setExclude(boolean exclude) {
this.exclude = exclude;
}
 
public void setUse(boolean use) {
this.use = use;
}
756,22 → 772,33
@Override
public boolean equals(Object o)
{
return o instanceof Tipologia &&
((((Tipologia)o).getCdTurma() == null && getCdTurma() == null)
||
(((Tipologia)o).getCdTurma().equals(getCdTurma())))
&&
if(o instanceof Tipologia){
boolean equalTurma = (
(((Tipologia)o).getCdTurma() == null && getCdTurma() == null)
||
(((Tipologia)o).getCdTurma().equals(getCdTurma()))
);
boolean equalDocente = (
(((Tipologia)o).getCdDocente() == null && getCdDocente() == null)
||
(((Tipologia)o).getCdDocente().equals(getCdDocente()))
);
if(equalTurma && equalDocente)
{
 
(
(((Tipologia)o).getCdDocente() == null && getCdDocente() == null)
if(((Tipologia)o).getCdTipologia() == null && getCdTipologia() == null)
return true;
if(((Tipologia)o).getCdTipologia().equals(getCdTipologia()))
return true;
//Se uma das tipologias é simples virtual tem de ser sempre igual à outra seja ela qual for
//pois a simples tem de fazer match em todas
if(((Tipologia)o).getCdTipologia().equals(Globals.BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE)
||
(((Tipologia)o).getCdDocente().equals(getCdDocente())))
&&
 
(
(((Tipologia)o).getCdTipologia() == null && getCdTipologia() == null)
||
(((Tipologia)o).getCdTipologia().equals(getCdTipologia())));
getCdTipologia().equals(Globals.BACO_TIPOLOGIA_SIMPLES_VIRTUAL_CODE))
return true;
}
}
return false;
}
 
public boolean equalsIncDsFields(Object o)
793,6 → 820,65
}
}
 
public void canUse(String cdDocente,String cdTipologia,String cdTurma)
{
 
}
/**
* Marca uma tipologia como excluida em todas as Listas
* @param cdDocente
* @param cdTipologia
* @param cdTurma
*/
public void setExcludedTipologia(boolean excluded, String cdDocente,String cdTipologia,String cdTurma)
{
try {
Tipologias tipoClass = getTipologiasClass();
 
Tipologia proto = new Tipologia();
proto.setCdDocente(cdDocente);
proto.setCdTipologia(cdTipologia);
proto.setCdTurma(cdTurma);
if(tipoClass.getTipologiasSumarios() != null)
for(Tipologia tipo: tipoClass.getTipologiasSumarios())
{
if(tipo.equals(proto))
{
tipo.setExclude(excluded);
}
}
if(tipoClass.getTipologiasHorarioReferencia() != null)
for(Tipologia tipo: tipoClass.getTipologiasHorarioReferencia())
{
if(tipo.equals(proto))
{
tipo.setExclude(excluded);
}
}
if(tipoClass.getTipologiasExtraAdicionadas() != null)
for(Tipologia tipo: tipoClass.getTipologiasExtraAdicionadas())
{
if(tipo.equals(proto))
{
tipo.setExclude(excluded);
}
}
if(tipoClass.getTipologiasTdocTurma() != null)
for(Tipologia tipo: tipoClass.getTipologiasTdocTurma())
{
if(tipo.equals(proto))
{
tipo.setExclude(excluded);
}
}
 
setTipologiasClass(tipoClass);
 
} catch (Throwable e) {
logger.error(e,e);
}
}
 
public static class MergedTipologias
{
ArrayList<Tipologia> tipologiasWithMarkedAndUsed = new ArrayList<Tipologia>();
873,6 → 959,7
.include("dsTipologia",Tipologia.class)
.include("ocorrencias", Tipologia.class)
.include("tdocturma", Tipologia.class)
.include("exclude", Tipologia.class)
.create();
return genson;
}
888,6 → 975,7
.include("dsTipologia",Tipologia.class)
.include("ocorrencias", Tipologia.class)
.include("horRef", Tipologia.class)
.include("exclude", Tipologia.class)
.include("extra", Tipologia.class)
.include("use", Tipologia.class)
.include("tdocturma", Tipologia.class)
962,10 → 1050,12
}
 
 
 
 
/**
* Junta todas as tipologias obtidas dos
* sumarios, horario(ref+trab) + extra + tdoc turma
* As restantes listas são as marcadas e as usadas q
* As restantes listas são as marcadas e as usadas
* que apenas estarão disponiveis quando houver gestão de marcação de tipologias
* e coloca todas numa lista de unicas
* Marca-as com isHorario, isSumario, isExtra
1058,6 → 1148,7
}
}
}
//NAO SERVE PARA NADA
if(getTipologiasTdocTurma() != null)
for(Tipologia t: getTipologiasTdocTurma())
{
1187,18 → 1278,31
simples.setOcorrencias(tipo.getOcorrencias());
}
turmasDocente.put(tipo.getCdTurma(), simples);
if(tipo.isHorRef())
simples.horRef = true;
if(tipo.isExtra())
simples.extra = true;
if(tipo.isTdocturma())
simples.setTdocturma(true);
if(tipo.isExclude())
simples.setExclude(true);
}
//se for tDocturma e ja tiver entrado como sumário nao entra aqui sequer
//Nunca entra primeiro como TDOC Turma se já entrou como sumário
else if(tipo.hasOcorrencias())
{
if(tipo.isHorRef())
simples.horRef = true;
if(tipo.isExtra())
simples.extra = true;
if(simples.getOcorrencias() == null)
simples.setOcorrencias(0);
simples.setOcorrencias(simples.getOcorrencias()+tipo.getOcorrencias());
if(tipo.isTdocturma())
simples.setTdocturma(true);
//Nao devera fazer falta porque quando excluimos uma simples excluimos todas
if(tipo.isExclude())
simples.setExclude(true);
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfetaImpl.java
36,4 → 36,13
 
public void incStatTipologiasRequisitadas(){ setStatTipologiasRequisitadas(getStatTipologiasRequisitadas()+1);}
public void incStatRespostasRequisitadas(){ setStatRespostasRequisitadas(getStatRespostasRequisitadas() + 1);}
 
public boolean checkSincronizationDirty() {
return getLastTipologiasUpdateDate() == null
||
(getLastTipologiasUpdateDate() != null && getCourseUnit().getLastImportDate() !=null
&& getLastTipologiasUpdateDate().getTime() < getCourseUnit().getLastImportDate().getTime())
;
 
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseDepartmentImpl.java
1,8 → 1,12
package pt.estgp.estgweb.domain;
 
import com.owlike.genson.Genson;
import com.owlike.genson.TransformationException;
import pt.estgp.estgweb.utils.ConfigProperties;
 
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
 
/**
* Created by jorgemachado on 14/09/16.
17,4 → 21,26
{
return ConfigProperties.getProperty("institution.code.prefix." + getInstitutionalCode());
}
 
static Genson courseDepartmentGenson = new Genson.Builder()
.exclude(Object.class)
.include(CourseDepartment.class)
.include("id", CourseDepartment.class)
.include("active", CourseDepartment.class)
.include("institutionalCode", CourseDepartment.class)
.include("name", CourseDepartment.class)
.include("nameEn", CourseDepartment.class)
.include("nameEs", CourseDepartment.class)
.include("nameFr",CourseDepartment.class)
.create();
 
public String getJson() throws IOException, TransformationException
{
return courseDepartmentGenson.serialize(this);
}
 
public static String getJson(ArrayList<CourseDepartment> departments) throws IOException, TransformationException
{
return courseDepartmentGenson.serialize(departments);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/courses/CourseDepartmentForm.java
New file
0,0 → 1,24
package pt.estgp.estgweb.web.form.courses;
 
import pt.estgp.estgweb.domain.CourseDepartment;
import pt.estgp.estgweb.domain.CourseDepartmentImpl;
import pt.estgp.estgweb.utils.DynamicArrayList;
import pt.estgp.estgweb.web.form.ApplicationForm;
 
import java.util.List;
 
/**
* Created by jorgemachado on 21/01/17.
*/
public class CourseDepartmentForm extends ApplicationForm
{
private List<CourseDepartment> departamentos = new DynamicArrayList<CourseDepartment>(CourseDepartmentImpl.class);
 
public List<CourseDepartment> getDepartamentos() {
return departamentos;
}
 
public void setDepartamentos(List<CourseDepartment> departamentos) {
this.departamentos = departamentos;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CourseDepartmentController.java
New file
0,0 → 1,11
package pt.estgp.estgweb.web.controllers.courses;
 
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController;
 
/**
* Created by jorgemachado on 21/01/17.
*/
public class CourseDepartmentController extends AbstractWidgetAjaxController
{
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/filters/UserRoleProxy.java
57,6 → 57,22
return rolesStr;
}
 
public static List<String> getUserRolesByPrefix(String prefix)
{
List<UserRoleConfig> roles = new ArrayList<UserRoleConfig>(userRoleConfigs.values());
Collections.sort(roles,new Comparator<UserRoleConfig>() {
@Override
public int compare(UserRoleConfig userRoleConfig, UserRoleConfig userRoleConfig2) {
return userRoleConfig.getValue().compareTo(userRoleConfig2.getValue());
}
});
List<String> rolesStr = new ArrayList<String>();
for(UserRoleConfig r: roles)
if(r.isValid() && r.getRole().startsWith(prefix))
rolesStr.add(r.getRole());
return rolesStr;
}
 
public UserRoleProxy()
{
}
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml
124,6 → 124,8
<property name="nameEn" type="string"/>
<property name="nameEs" type="string"/>
<property name="nameFr" type="string"/>
<property name="directorRole" type="string"/>
<property name="boardRole" type="string"/>
<!--Todo colocar aqui o director e vice director de departamento Remover do Curso ou no proprio curso afeta aqui-->
<subclass name="pt.estgp.estgweb.domain.CourseDepartmentImpl" discriminator-value="CourseDepartmentImpl"/>
</class>
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
13,6 → 13,7
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="lastImportDate" type="timestamp"/>
<property name="semestre" type="string" index="semestreIndex"/>
<property name="name" type="string" index="nameIndex"/>
<property name="code" type="string" index="codeIndex"/>
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/Questionarios.hbm.xml
842,13 → 842,16
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="lastTipologiasUpdateDate" 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="excludedTipologias" type="int">
<column name="excludedTipologias" default="0"/>
</property>
<property name="profs" type="int"/>
<property name="turmas" type="int"/>
<property name="students" type="int"/>
873,10 → 876,11
<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>
 
-->
<!--STATS-->
 
<property name="statTipologiasRequisitadas" type="int">
/branches/v3/impl/src/web/user/courses/topnavDepartmentsEdit.jsp
New file
0,0 → 1,14
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.dao.impl.AbstractDao"%>
<%@ 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, "departamentos");
 
 
 
%>
<jsp:include page="/layout/topnav.jsp"/>
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/web/user/courses/departments.jsp
New file
0,0 → 1,140
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.CourseDepartment" %>
<%@ page import="pt.estgp.estgweb.domain.CourseDepartmentImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ 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-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
AbstractDao.getCurrentSession().beginTransaction();
ArrayList<CourseDepartment> departments = (ArrayList<CourseDepartment>) DaoFactory.getCourseDepartmentDaoImpl().findAll();
String jsonArrayDepartments = CourseDepartmentImpl.getJson(departments);
request.setAttribute("jsonArrayDepartments",jsonArrayDepartments);
request.setAttribute("departments",departments);
 
List<String> rolesBoardDepartamento = UserRoleProxy.getUserRolesByPrefix("department.board");
List<String> rolesDiretorDepartamento = UserRoleProxy.getUserRolesByPrefix("department.diretor");
request.setAttribute("rolesBoardDepartamento",rolesBoardDepartamento);
request.setAttribute("rolesDiretorDepartamento",rolesDiretorDepartamento);
 
%>
 
 
<div baco-model-class="pt.estgp.estgweb.domain.CourseDepartmentImpl"
id="departmentsModule"
ng-app="departmentsModule"
ng-controller="departmentsModuleController">
 
<script>
//DECLARACAO DA APLICACAO LOCAL EM ANGULAR
var departmentsModule = angular.module('departmentsModule', []);
GLOBAL_BacoAngularAppDependencies.push('departmentsModule');
 
departmentsModule.controller('departmentsModuleController', function($scope) {
$scope.departments = ${jsonArrayDepartments};
});
</script>
 
 
 
<p><label class="label-info">Papeis dos Departamentos:</label> Os papeis de departamento são escolhidos da lista de papeis do sistema considerando-se todos os papeis com os prefixos:</p>
<ul>
<li>department.board: para membros da direcção</li>
<li>department.diretor: para diretores direcção</li>
</ul>
<p>Caso seja necessário um novo papel deverá administrar os papeis institucionais dirija-se <html:link action="/user/configurationUserRoles">Aqui</html:link></p>
<div class="form-horizontal">
 
<table class="tablesorter-blue">
<thead>
<tr>
<th>Ativo</th>
<th>Instituição</th>
<th>Nome</th>
<th>Nome En</th>
<th>Nome Es</th>
<th>Nome Fr</th>
<th>Papel para Membro da Direcao</th>
<th>Papel para Director</th>
<th></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="d in departments | orderBy:institutionalCode:false">
<td>
<select class="chosenOff" ng-model="d.active">
<option ng-value="true" ng-selected="d.active == true">Ativo</option>
<option ng-value="false" ng-selected="d.active == false">Inativo</option>
</select>
</td>
<td>
<select class="chosenOff" ng-model="d.institutionalCode">
<option value="<%=Globals.INSTITUTIONAL_CODE_ESTG%>"><%=Globals.INSTITUTIONAL_SMALL_NAME_ESTG%></option>
<option value="<%=Globals.INSTITUTIONAL_CODE_ESAE%>"><%=Globals.INSTITUTIONAL_SMALL_NAME_ESAE%></option>
<option value="<%=Globals.INSTITUTIONAL_CODE_ESECS%>"><%=Globals.INSTITUTIONAL_SMALL_NAME_ESECS%></option>
<option value="<%=Globals.INSTITUTIONAL_CODE_ESS%>"><%=Globals.INSTITUTIONAL_SMALL_NAME_ESS%></option>
</select>
</td>
<td>
<input class="form-control" type="text" ng-model="d.name">
</td>
<td>
<input class="form-control" type="text" ng-model="d.nameEn">
</td>
<td>
<input class="form-control" type="text" ng-model="d.nameEs">
</td>
<td>
<input class="form-control" type="text" ng-model="d.nameFr">
</td>
<td>
<select class="chosenOff" ng-model="d.boardRole">
<option value="">Escolha</option>
<logic:iterate id="role" name="rolesBoardDepartamento">
<option value="${role}"><bean:message key="user.role.${role}"/></option>
</logic:iterate>
</select>
</td>
<td>
<select class="chosenOff" ng-model="d.directorRole">
<option value="">Escolha</option>
<logic:iterate id="role" name="rolesDiretorDepartamento">
<option value="${role}"><bean:message key="user.role.${role}"/></option>
</logic:iterate>
</select>
</td>
<td>
<button type="button" class="btn btn-danger btn-xs">
<span class="glyphicon glyphicon-remove"/>
</button>
</td>
 
 
 
</tr>
</tbody>
</table>
<%--
<model:id name="department" property="id"/>
<model:field name="department" property="name"/>
<model:field name="department" property="nameEn"/>
<model:field name="department" property="nameEs"/>
<model:field name="department" property="nameFr"/>
<model:remove name="department"/>
--%>
</div>
 
 
</div>
Teste
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/serviceZone/topnavConfigurationUserRoles.jsp
4,7 → 4,7
<%@ page import="jomm.web.utils.TopNav" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace(null, "configuration.userRoles");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/profile/roleUsers.jsp
1,10 → 1,8
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ page import="pt.estgp.estgweb.domain.User" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html; charset=UTF-8" language="java"%>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
165,6 → 163,38
 
<div class="panel panel-default">
<div class="panel-heading">
<a data-toggle="collapse" data-parent="#accordion" href="#departamentos">
Departamentos
</a>
</div>
<div id="departamentos" class="panel-collapse collapse">
<div class="panel-body">
<%
 
List<String> rolesBoardDepartamento = UserRoleProxy.getUserRolesByPrefix("department.board");
List<String> rolesDiretorDepartamento = UserRoleProxy.getUserRolesByPrefix("department.diretor");
request.setAttribute("rolesBoardDepartamento",rolesBoardDepartamento);
request.setAttribute("rolesDiretorDepartamento",rolesDiretorDepartamento);
%>
<h3 class="well">Diretores</h3>
<logic:iterate id="role" name="rolesDiretorDepartamento">
<bacoTags:printRoleGroup role="${role}" transactional="true"/>
</logic:iterate>
<h3 class="well">Restantes Membros das Direcções</h3>
<logic:iterate id="role" name="rolesBoardDepartamento">
<bacoTags:printRoleGroup role="${role}" transactional="true"/>
</logic:iterate>
<%
 
%>
</div>
</div>
</div>
 
 
 
<div class="panel panel-default">
<div class="panel-heading">
<a name="comissoes" data-toggle="collapse" data-parent="#accordion" href="#coordenacoes">
Coordenações de Curso
</a>
/branches/v3/impl/src/web/user/questionarios/reports/reportsHelp.jsp
54,6 → 54,7
<th>Docente</th>
<th>Coord. Curso</th>
<th>Direção Escola</th>
<th>Departamento</th>
<th>Alunos</th>
</tr>
</thead>
65,6 → 66,7
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td></td>
<td></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td></td>
</tr>
76,6 → 78,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
 
89,6 → 92,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
<tr>
99,6 → 103,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
 
112,6 → 117,7
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
</tr>
<tr>
<th>Inativo</th>
121,6 → 127,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
<tr>
132,6 → 139,7
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
</tr>
 
<tr>
142,7 → 150,7
<td></td>
<td></td>
<td></td>
 
<td></td>
</tr>
 
 
152,9 → 160,11
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td></td>
<td></td>
<td></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td></td>
 
</tr>
<tr>
<th>Inativo</th>
164,6 → 174,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
 
177,6 → 188,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
<tr>
187,6 → 199,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
 
199,6 → 212,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th>Inativo</th>
208,6 → 222,7
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
 
</tbody>
/branches/v3/impl/src/web/user/questionarios/headerQuestionarios.jsp
171,6 → 171,15
<li>Caso algum professor não tenha qualquer tipologia associada é criada uma tipologia Simples no processo de atribuição de respostas de forma a contemplar esse professor nas avaliações.
Essa entrada é criada para todas as turmas da unidade em questão.</li>
</ul>
 
<h3>Questões relativas a Exclusões e Actualizações</h3>
<ul>
<li>As tipologias são atualizadas todos os dias desde o dia 22 de Janeiro de 2017</li>
<li>As tipologias podem ser excluidas pelas pessoas dos académicos com papel de Verificação de Professores durante a fase de afetacções.</li>
<li>Podem ainda ser excluidas pelos administradores em qualquer fase do processo</li>
<li>A exclusão de uma tipologia antes da fase de respostas evita a criação de respostas requisitadas</li>
<li>A exclusão de uma tipologia após as respostas dos alunos afeta a geração dos Cubos OLAP pelo que terão de ser gerados novamente antes de gerar Relatórios</li>
</ul>
</div>
 
<button type="button" class="btn btn-success" data-dismiss="modal">Voltar</button>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/setUnidadeAfetaVar.jsp
9,12 → 9,27
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);
 
if(op.equals("excludeTipologia"))
{
String docente = request.getParameter("docente");
String turma = request.getParameter("turma");
String cdTipologia = request.getParameter("cdTipologia");
 
String[] names = {"questionarioId","unidadeAfeta","docente","turma","cdTipologia"};
Object[] args = {Long.parseLong(questionarioId),Long.parseLong(unidadeAfetaId),docente,turma,cdTipologia,op,val};
sm.execute(RequestUtils.getRequester(request, response),"QuestionarioUpdateCheckVarExcludedPedagogico",args,names);
}
else
{
String[] names = {"questionarioId","unidadeAfeta"};
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");
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckUnidadeAfeta.jsp
1,9 → 1,9
<%@ 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.*" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="java.util.ArrayList" %>
<%@ 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" %>
15,23 → 15,32
<%
long unidadeAfetaId = Long.parseLong(request.getParameter("unidadeAfetaId"));
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioPedagogicoUnidadeCurricularAfeta unidade = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().load(unidadeAfetaId);
unidade = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().narrow(unidade);
QuestionarioPedagogicoUnidadeCurricularAfeta unidadeG = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().load(unidadeAfetaId);
QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidade = (QuestionarioPedagogicoUnidadeCurricularAfetaImpl) DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().narrow(unidadeG);
request.setAttribute("unidade",unidade);
Questionario q = unidade.getCursoAfeto().getQuestionario();
q = DaoFactory.getQuestionarioDaoImpl().narrow(q);
((QuestionarioImpl)q).initClearances((UserSessionImpl) UserSessionProxy.loadUserSessionFromRequest(request),false);
request.setAttribute("Questionario",q);
%>
 
<%
CourseUnitImpl courseUnit = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidade.getCourseUnit());
List<CourseUnitImpl.Tipologia> tipologias;
ArrayList<CourseUnitImpl.Tipologia> tipologias;
 
CourseUnitImpl.Tipologias tipologiasClass=courseUnit.getTipologiasClass();
if(unidade.getCursoAfeto().isUsarTipologias())
{
tipologias = courseUnit.getTipologiasClass().obtainMergeTipologias();
tipologias = tipologiasClass.obtainMergeTipologias();
}
else
{
tipologias = courseUnit.getTipologiasClass().obtainTipologiasSimples(courseUnit);
tipologias = tipologiasClass.obtainTipologiasSimples(courseUnit);
}
//UPDATE VARS CHECK PROF; TURMAS; STUDENTS Esta em duplicado, aqui e na selecção de cursos do UpdateCoursesAndUnitsJobService
// Foi chamado um update no JSP anterior a este onde apresenta o Curso
//UpdateCoursesAndUnitsJobService.updateCountersUnidadeAfeta(tipologiasClass,unidade,tipologias);
 
request.setAttribute("tipologias",tipologias);
if(tipologias.size() == 0)
{
43,6 → 52,51
{
%>
<%=tipologias.size()%>
 
<script>
$(document).ready(
 
function()
{
$("#tipologias${unidade.id} .excludeTipologia").each(function()
{
if($(this).prop("checked"))
{
$(this).closest("td").removeClass("vistaChecked");
$(this).closest("td").addClass("usarNotChecked");
}
else
{
$(this).closest("td").removeClass("usarNotChecked");
$(this).closest("td").addClass("vistaChecked");
}
}
);
$("#tipologias${unidade.id} .excludeTipologia").on("change",function()
{
if($(this).prop("checked"))
{
$(this).closest("td").removeClass("vistaChecked");
$(this).closest("td").addClass("usarNotChecked");
}
else
{
$(this).closest("td").removeClass("usarNotChecked");
$(this).closest("td").addClass("vistaChecked");
}
});
 
/*
$("#tipologias${unidade.id} .excludeTipologia").on("change",function()
{
var val =$(this).prop("checked") ? "true" : "false";
var op = "excludeTipologia";
setUnidadeAfetaVar('${CursoAfeto.id}','${unidade.id}',tipologiaTeacher,,op,val,$(this).closest("td"));
});*/
});
 
 
</script>
<table class="tablesorterfiltered">
<thead>
<tr>
56,7 → 110,7
<th>Tip. Manual</th>
<th>Tip. Horário Ref.</th>
<th>Tip. Sumário</th>
<th>Tip. Req.</th>
<th>Excluir</th>
</tr>
</thead>
<tbody>
100,12 → 154,18
<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>
<baco:hasRole role="questionarios.admin,admin,super">
<html:checkbox onchange="setTipologiaAfetaVar($(this),'${unidade.cursoAfeto.id}','${unidade.id}','${tipologia.cdDocente}','${tipologia.cdTurma}','${tipologia.cdTipologia}')" styleClass="excludeTipologia" name="tipologia" property="exclude"/>
</baco:hasRole>
<baco:hasNotRole role="questionarios.admin,admin,super">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS">
<html:checkbox onchange="setTipologiaAfetaVar($(this),'${unidade.cursoAfeto.id}','${unidade.id}','${tipologia.cdDocente}','${tipologia.cdTurma}','${tipologia.cdTipologia}')" styleClass="excludeTipologia" name="tipologia" property="exclude"/>
</baco:clearOperation>
<baco:notClearOperation name="Questionario" op="QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS">
<html:checkbox disabled="true" styleClass="excludeTipologia" name="tipologia" property="exclude"/>
</baco:notClearOperation>
</baco:hasNotRole>
</td>
</tr>
<%
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoCourseCheckCursoAfeto.jsp
2,6 → 2,7
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="pt.estgp.estgweb.domain.*" %>
<%@ page import="pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService" %>
<%@ 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" %>
42,6 → 43,7
}
}
);
 
$("#cursoAfetoTable${CursoAfeto.id} .vistaCheck").each(function()
{
if($(this).prop("checked"))
126,6 → 128,7
<th>Alertas</th>
<th>Docentes s/ sumario</th>
<th>Turmas s/ sumario</th>
<th>Escluidas</th>
<th>Usar</th>
<th>Alunos OK</th>
<th>Profs OK</th>
136,6 → 139,12
</thead>
<tbody>
<logic:iterate id="unidade" name="CursoAfeto" property="unidadesAfetas" type="pt.estgp.estgweb.domain.QuestionarioPedagogicoUnidadeCurricularAfetaImpl">
<%
if(unidade.checkSincronizationDirty())
{
UpdateCoursesAndUnitsJobService.updateCountersUnidadeAfeta(unidade);
}
%>
<tr id="unidadeAfetaRow${unidade.id}">
<td>
<script>
204,6 → 213,7
<td>
 
<%
try{
CourseUnitImpl courseUnitImpl = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidade.getCourseUnit());
int students = courseUnitImpl.studentsSize();
int studentsTurmasSize = courseUnitImpl.studentsTurmaSize();
223,15 → 233,16
<span class="glyphicon glyphicon-alert"></span>
 
<%
}
else
{
}
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>
<%
}
}catch(Throwable e){e.printStackTrace();System.out.println(e.toString());}
%>
 
</td>
240,8 → 251,9
<span class="glyphicon glyphicon-alert"></span>
</logic:equal>
</td>
<td>${unidade.profsWithoutTurma}</td>
<td>${unidade.turmaWithoutProf}</td>
<td>${unidade.profsWithoutTurma}</td><%--PROFS SEM SUMARIO--%>
<td>${unidade.turmaWithoutProf}</td><%--Turmas Sem Sumario--%>
<td>${unidade.excludedTipologias}</td>
<td>
<baco:clearOperation name="Questionario" op="QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT">
<html:checkbox styleClass="usarCheck" name="unidade" property="usar"/>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesCheck.jsp
244,6 → 244,39
},
"json");
}
 
//TODO AQUI tirar o metodo daqui e meter no pedagogicoCoursesCheck
function setTipologiaAfetaVar(checkObj,cursoAfetoId,unidadeAfetaId,docente,turma,cdTipo)
{
targetObject = $(checkObj).closest("td");
var val =$(checkObj).prop("checked") ? "true" : "false";
var op = "excludeTipologia";
$(targetObject).addClass("waitPost");
$.post("<%=request.getContextPath()%>/user/questionarios/pedagogicoEstudante/setUnidadeAfetaVar.jsp",
{
"questionarioId" : ${Questionario.id},
"unidadeAfetaId":unidadeAfetaId,
"docente":docente,
"turma":turma,
"cdTipologia":cdTipo,
"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)
{
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Pagina.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.ArrayList;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupDocentesAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/EventGeneric.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupCursosAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgram.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordThesis.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionPossibleAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageSection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/EventClass.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordJob.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageRepositoryFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitSummary.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Record.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportDocenteFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfeta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
15,10 → 15,12
private long id;
private Date updateDate;
private Date saveDate;
private Date lastTipologiasUpdateDate;
private String codigoUnidade;
private String nome;
private int addedTipologias;
private boolean marked;
private int excludedTipologias;
private int profs;
private int turmas;
private int students;
30,7 → 32,6
private boolean usar;
private boolean usarOlap;
private String obs;
private String tipologiasJson;
private int statTipologiasRequisitadas;
private int statRespostasRequisitadas;
private QuestionarioPedagogicoCursoAfeto cursoAfeto;
62,6 → 63,13
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Date getLastTipologiasUpdateDate() {
return this.lastTipologiasUpdateDate;
}
public void setLastTipologiasUpdateDate(Date lastTipologiasUpdateDate) {
this.lastTipologiasUpdateDate = lastTipologiasUpdateDate;
}
public String getCodigoUnidade() {
return this.codigoUnidade;
}
90,6 → 98,13
public void setMarked(boolean marked) {
this.marked = marked;
}
public int getExcludedTipologias() {
return this.excludedTipologias;
}
public void setExcludedTipologias(int excludedTipologias) {
this.excludedTipologias = excludedTipologias;
}
public int getProfs() {
return this.profs;
}
167,13 → 182,6
public void setObs(String obs) {
this.obs = obs;
}
public String getTipologiasJson() {
return this.tipologiasJson;
}
public void setTipologiasJson(String tipologiasJson) {
this.tipologiasJson = tipologiasJson;
}
public int getStatTipologiasRequisitadas() {
return this.statTipologiasRequisitadas;
}
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Page.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseStudiesPlan.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitado.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/PageText.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Questionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaEsforco.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionItem.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
15,6 → 15,7
private long id;
private Date updateDate;
private Date saveDate;
private Date lastImportDate;
private String semestre;
private String name;
private String code;
101,6 → 102,13
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Date getLastImportDate() {
return this.lastImportDate;
}
public void setLastImportDate(Date lastImportDate) {
this.lastImportDate = lastImportDate;
}
public String getSemestre() {
return this.semestre;
}
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitada.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAnnouncement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifierCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryCategory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportCursoFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroup.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgramPart2.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioCurso.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlog.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordEventOrganization.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordPaper.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/EventFormacoes.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ComunicationFolder.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioTipologia.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyResponse.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioUnidade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentResponse.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/EventUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswerEsforco.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAssignement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitada.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskScheduler.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/EventGenericRecord.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 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 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseDepartment.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
19,6 → 19,8
private String nameEn;
private String nameEs;
private String nameFr;
private String directorRole;
private String boardRole;
 
public CourseDepartment() {
}
91,6 → 93,20
public void setNameFr(String nameFr) {
this.nameFr = nameFr;
}
public String getDirectorRole() {
return this.directorRole;
}
public void setDirectorRole(String directorRole) {
this.directorRole = directorRole;
}
public String getBoardRole() {
return this.boardRole;
}
public void setBoardRole(String boardRole) {
this.boardRole = boardRole;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStructuralNode.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Seccao.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGrades.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 19/Jan/2017 8:47:29 by Hibernate Tools 3.2.0.b9
// Generated 22/Jan/2017 19:13:28 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;