Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1584 → Rev 1585

/branches/v3/impl/conf/language/MessageResources.properties
116,6 → 116,11
 
 
#roles
user.role.board.institution=Board de Direcção do Instituto
user.role.board.school.estg=Board de Direcção da ESTG
user.role.board.school.esae=Board de Direcção da ESAE
user.role.board.school.esecs=Board de Direcção da ESECS
user.role.board.school.ess=Board de Direcção da ESS
 
user.role.questionarios.tipologias.admin=Questionarios Tipologias
user.role.questionarios.atribuicoes.admin=Questionarios Atribuições
196,6 → 201,9
fail.role=Lamentamos o incómodo, mas necessita de permissões especiais para aceder a esta área.
fail.owner=Lamentamos o incómodo, mas não tem permissões sobre o objecto ao qual tentou aceder.
fail.timer=Lamentamos o incomodo, mas a acção que tentou efectuar não pode ser executada nesta data.
fail.change.pass=As passwords têm de ser iguais e ter mais de 5 caracteres e pelo menos uma letra maiuscula e outra minuscula
fail.request.change.pass=Pedimos desculpa mas não foi possivel identificar nenhum utilizador com esses dados. Tente novamente ou então contacte a administração de sistemas para o pordemos ajudar.
success.change.pass=Password redefinida com sucesso
fail.authenticate=O nome de utilizador ou a palavra passe estão errados. Por favor tente de novo.
dontexist.authenticate=O utilizador já existe na rede interna mas ainda não está disponivel no sistema BACO, por favor dirija-se ao Centro Informático.
 
/branches/v3/impl/conf/WEB-INF/struts/struts-pae.xml
29,7 → 29,29
 
<action path="/WelcomePedagogicSurvey" forward="page.welcome.pae"/>
 
<action path="/user/ChangePassword" forward="page.change.password.pae"/>
<action path="/requestChangePassword" forward="page.request.change.password.pae"/>
<action path="/user/changeMyPassword"
type="pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController"
name="EmptyForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.change.password.pae">
<forward name="success" path="page.pae.separators.home"/>
<forward name="fail.change.pass" path="page.change.password.pae"/>
</action>
<action path="/requestChangeMyPassword"
type="pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController"
name="EmptyForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.change.password.pae">
<forward name="success" path="request.change.pass.response"/>
</action>
 
 
<!--Authentication-->
<action path="/authenticatePae"
type="pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController"
/branches/v3/impl/conf/WEB-INF/struts/tiles-pae.xml
20,8 → 20,21
<put name="footer" value="/layout/footer.jsp" />
</definition>
 
<definition name="page.change.password.pae" extends="base.definition.pae.public">
<put name="body" value="/user/auth/changepassword.jsp" />
</definition>
 
<definition name="page.request.change.password.pae" extends="base.definition.pae.public">
<put name="body" value="/auth/lostPass.jsp" />
</definition>
 
<definition name="request.change.pass.response" extends="base.definition.pae.public">
<put name="body" value="/auth/requestChangePassResponse.jsp" />
</definition>
 
 
 
 
<definition name="page.welcome.pae" extends="base.definition.pae.auth">
<put name="body" value="/auth/index.jsp" />
</definition>
/branches/v3/impl/conf/app.properties
831,6 → 831,12
institution.code.prefix.5=ESE PG
institution.code.prefix.6=IPP
 
institution.board.role=board.institution
school.board.role.1=board.school.estg
school.board.role.2=board.school.esae
school.board.role.3=board.school.esecs
school.board.role.4=board.school.ess
 
institution.code.prefix.inverse.ESTG=1
institution.code.prefix.inverse.ESAE=2
institution.code.prefix.inverse.ESECS=3
/branches/v3/impl/conf/berserk/sd.xml
45,6 → 45,28
</filterChains>
</service>
<service>
<name>ChangePassword</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
<description>Authenticates a User</description>
<isTransactional>true</isTransactional>
<defaultMethod>changePassword</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
 
<service>
<name>RequestChangePassword</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
<description>Authenticates a User</description>
<isTransactional>true</isTransactional>
<defaultMethod>requestChangePassword</defaultMethod>
<filterChains>
<chain name="Logger"/>
</filterChains>
</service>
<service>
<name>Logout</name>
<implementationClass>pt.estgp.estgweb.services.authenticate.LogoutService</implementationClass>
<description>Logout a User</description>
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java
465,6 → 465,17
 
public static final String ROLE_PRESIDENTE_CONCELHO_PEDAGOGICO = "pedagogicCouncil.president";
 
public static final String ROLE_BOARD_INSTITUTION = ConfigProperties.getProperty("institution.board.role");
public static final String ROLE_BOARD_SCHOOL_ESTG = ConfigProperties.getProperty("school.board.role." + ConfigProperties.getProperty("institution.code.prefix.inverse.ESTG"));
public static final String ROLE_BOARD_SCHOOL_ESAE = ConfigProperties.getProperty("school.board.role." + ConfigProperties.getProperty("institution.code.prefix.inverse.ESAE"));
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 String ROLE_BOARD_SCHOOL(String institutionCode)
{
return ConfigProperties.getProperty("school.board.role." + institutionCode);
}
 
public static final boolean USE_XSL_CACHE =ConfigProperties.getBooleanProperty("xsl.use.cache");
 
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
343,6 → 343,29
}
}
 
/**
* Envio de Notificação aos operadores do CI
* @param subject
* @param cause
*/
public static void sendNotificationAdmin(String subject, String cause)
{
List<String> emails = ConfigProperties.getListValues("admin.email");
for(String email:emails)
{
logger.warn(">>>>>>>>ENVIANDO NOTIFICACAO A ADMINISTRACAO: " + email);
}
List<String> arguments = new ArrayList<String>();
arguments.add(cause.replace("\n","<br/>"));
Email email = new Email(subject,emails,Globals.SYSTEM_EMAIL_BOX,"messageToAdmin_pt.txt",arguments);
email.setHtml(true);
try {
new SendEmailService().sendEmail(email);
} catch (ServiceException e) {
e.printStackTrace();
}
}
 
public static class SendTo
{
public String name;
450,6 → 473,21
return email;
}
 
 
/**
* PRIMARY ENTRY SERVICE
*
* Create an EMAIL TO SEND IN NAME OF PAE WITH A TEMPLATE READY FOR CERTIFICATE AND USER TARGETING
* @param fromEmail
* @param from
* @param subject
* @param text
* @param user only used to get email from if not defined
* @param userIds
* @param url
* @return
*/
 
public EmailPersonalizedCertificated getMessageEmailAdulteredFromEmailIppCertificated(
String fromEmail, String from, String subject,String text, User user,
List<Long> userIds,
/branches/v3/impl/src/java/pt/estgp/estgweb/services/email/SimpleSendEmailInterface.java
New file
0,0 → 1,61
package pt.estgp.estgweb.services.email;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.services.jobs.JobScheduleService;
import pt.estgp.estgweb.utils.EmailPersonalizedCertificated;
 
import java.util.ArrayList;
import java.util.List;
 
/**
* Created by jorgemachado on 31/12/16.
*/
public class SimpleSendEmailInterface
{
public static void createCertificatedEmailJobAndScheculleToSend(User u,
String from,
String subject,
String text,
String urlWithoutCertificate,
String jobLogDescription) {
List<Long> userIds = new ArrayList<Long>();
userIds.add(u.getId());
SendEmailService sendEmailService = new SendEmailService();
EmailPersonalizedCertificated email = sendEmailService.getMessageEmailAdulteredFromEmailIppCertificated(
Globals.ADMIN_EMAIL, //Apenas para ir no email como referência o sistema manda sempre das caixas proxy
from,
subject,
text,
u,
userIds,
urlWithoutCertificate);
email.setHtml(true);
EMAILJobPersonalizedCertificated emailJob = new EMAILJobPersonalizedCertificated(email);
JobScheduleService.getInstance().scheduleNow(emailJob,jobLogDescription,null);
}
 
public static void createCertificatedEmailJobAndSendNow(User u,
String from,
String subject,
String text,
String urlWithoutCertificate,
String jobLogDescription) {
List<Long> userIds = new ArrayList<Long>();
userIds.add(u.getId());
SendEmailService sendEmailService = new SendEmailService();
EmailPersonalizedCertificated email = sendEmailService.getMessageEmailAdulteredFromEmailIppCertificated(
Globals.ADMIN_EMAIL, //Apenas para ir no email como referência o sistema manda sempre das caixas proxy
from,
subject,
text,
u,
userIds,
urlWithoutCertificate);
email.setHtml(true);
EMAILJobPersonalizedCertificated emailJob = new EMAILJobPersonalizedCertificated(email);
//Sending right now
emailJob.runJob();
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/users/UserRoleConfigService.java
239,6 → 239,12
"user.role.courseValidateProgramTGI=Comissão de Curso de TGI\n" +
"user.role.courseValidateProgramRU=Comissão de Curso de RU\n" +
"user.role.courseValidateProgramCF=Comissão de Curso de Contabilidade e Finanças\n" +
"user.role.courseValidateProgramTPB=Comissão de Curso de Tecnologias de Produção de Biocombustíveis\n";
"user.role.courseValidateProgramTPB=Comissão de Curso de Tecnologias de Produção de Biocombustíveis\n"+
"user.role.board.institution=Board de Direcção do Instituto Politecnico\n"+
"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.roleboard.school.ess=Board de Direcção da ESS\n"
;
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/OlapGenerationProcessor.java
546,6 → 546,8
olapEntityQuestionarioUnidade.setPeriodoPlanoS1T8(cuImpl.getPeriodoPlanoFromStudiesPlan());
olapEntityQuestionarioUnidade.setSemestrePlanoAbsoluto1ou2(cuImpl.getSemestrePlanoAbsoluto());
olapEntityQuestionarioUnidade.setPeriodoSigesS1ouS2ouAouT1aT4(cuImpl.getSemestre());
//Semestre S1 a T8 ainda nao sao usados em lado nenhum neste sistema, era pensado para se usar nas estatisticas
//de forma a juntar unidades nos mesmos semestres mas ainda nao esta em uso
if(olapEntityQuestionarioUnidade.getPeriodoPlanoS1T8() == null)
{
unidadesSemPeriodoNoPlano++;
557,8 → 559,20
else
{
olapEntityQuestionarioUnidade.setAnoPlano1a4(cuImpl.getAnoPlanoFromStudiesPlan());
//tem de ser igual ao semestre.getId() todo rever situação com um if e warn se falhar
if(olapEntityQuestionarioUnidade.getAnoPlano1a4() <= 0)
{
msg = "!!! A unidade " + cuImpl.getCode() + " tem periodo atribuido no Plano MAS O ANO ESTA MAL";
serviceLogWarn(msg);
logger.warn(msg);
}
//tem de ser igual ao semestre.getId() rever situação com um if e warn se falhar
olapEntityQuestionarioUnidade.setSemestrePlanoConvertido1a6(cuImpl.getSemestrePlanoConvertido());
if(olapEntityQuestionarioUnidade.getSemestrePlanoConvertido1a6() <= 0)
{
msg = "!!! A unidade " + cuImpl.getCode() + " tem getPeriodoPlanoS1T8 atribuido no Plano MAS ESTA MAL";
serviceLogWarn(msg);
logger.warn(msg);
}
}
DaoFactory.getOlapEntityQuestionarioUnidadeDaoImpl().save(olapEntityQuestionarioUnidade);
return olapEntityQuestionarioUnidade;
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/UpdateCoursesAndUnitsJobService.java
316,6 → 316,7
throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos num questioário com respostas");
}
 
//aqui sacamos os cursos seleccionados que sao serializados em JSON no Questionario e sao necessários como parametro ao serviço
String[] coursesList = deserializeCoursesList(q);
//Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre
 
457,8 → 458,13
{
String msg;
QuestionarioPedagogicoCursoAfetoImpl cursoAfeto = null;
//todo fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto
//esta aqui um to_do mas foi revisto e nao aparenta haver problemas
// As unidades do curso sao carregadas mais abaixo e são adicionadas,
// Todas as não adicionadas são removidas seguidamente usando a lista de adicionadas.
// to_do antigo: fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto
//reativar o set e testar isso
 
//isto serve para o caso do curso ter sido afeto mais que uma vez, tem de se remover as afetacoes e deixar apenas uma
List<QuestionarioPedagogicoCursoAfeto> cursosFound = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId(),c.getCode());
if(cursosFound != null && cursosFound.size() > 1)
{
504,6 → 510,7
 
List<Long> newUnitCodesList = new ArrayList<Long>();
int countUnits = 0;
//vai buscar todas as unidades da base de dados que fazem match as necessidades
List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear());
int totalUnits = results.size();
for(CourseUnitDaoImpl.CourseUnitResult cur : results)
516,10 → 523,14
serviceLogInfo(msg);
logger.info(msg);
/** logging **/
//este metodo procura a unidade primeiro e apenas a cria se ela ainda nao existir como afeta
createUnidadeAfeta(cursoAfeto, cur,cu, logMessages);
DaoFactory.getCourseUnitDaoImpl().evict(cu);
}
 
//o problema poderia dar-se se uma unidade desaparece da base de dados, nesse caso ela já era afeta e o sistema nao a iria remover
//porque apesar de nao estar na nova lista de codigos, tb nao esta no curso afeto, mas o sistema
//o que faz é carregar todas as afetas e remover todas as que nao estejam na lista de novas
removeUnselectedUnits(cursoAfeto,newUnitCodesList);
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/DocenteReportGenerator.java
166,25 → 166,25
docenteReport.setSemestres(ReportUtils.getFormatedSemestres(periodos));
docenteReport.setDegrees(ReportUtils.getFormatedDegrees(degrees));
 
//Conta ja o numero de respostas todo falta fazer nos cursos
if(AlunosQueryDao.countAlunosQueResponderamAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees)
== 0)
return null;
 
/*if(docenteReport.getInquiridosTotal() == 0 || docenteReport.getAlunosComResposta() == 0)
int responderam = AlunosQueryDao.countAlunosQueResponderamAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
//if(responderam == 0)
// return null;
QuestionariosQueryDao.countQuestionariosRespostasAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
if(responderam > 0)
{
return null;
}*/
QuestionariosQueryDao.countQuestionariosRespostasAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
AlunosQueryDao.countTiposAlunosComRespostasAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
AlunosQueryDao.countIdadesAlunosComRespostasAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
AlunosQueryDao.countTiposAlunosComRespostasAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
AlunosQueryDao.countIdadesAlunosComRespostasAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
 
//TABELAS
QuestionariosQueryDao.createDataTableIdades(docenteReport, "Alunos");
QuestionariosQueryDao.createDataTableLocalidadesAoDocente(docenteReport, teacherCode, anoLectivo, periodos, degrees, "Alunos");
//TABELAS
QuestionariosQueryDao.createDataTableIdades(docenteReport, "Alunos");
QuestionariosQueryDao.createDataTableLocalidadesAoDocente(docenteReport, teacherCode, anoLectivo, periodos, degrees, "Alunos");
}
UnidadesQueryDao.createTableTaxaRespostaUnidadeAoDocente(docenteReport, teacherCode, anoLectivo, periodos, degrees);
 
 
if(responderam > 0)
{
List<String> codigosCurso = QueryDaoUtils.getCodigosCursoDocente(teacherCode, anoLectivo, periodos, degrees);
List<String> codigosEscola = QueryDaoUtils.getCodigosEscolaDocente(teacherCode, anoLectivo, periodos, degrees);
 
281,16 → 281,16
0, periodos, degrees, docenteReport.getUnidadesStats());
 
 
criaExtremeCharts(docenteReport);
criaExtremeCharts(docenteReport);
 
criarProgressoesCharts(docenteReport,codigosCurso,codigosEscola,degrees,periodos);
criarProgressoesCharts(docenteReport,codigosCurso,codigosEscola,degrees,periodos);
 
criarAnaliseConjuntaDeUnidades(docenteReport);
criarAnaliseConjuntaDeUnidades(docenteReport);
 
criarAnaliseDimensionalGeral(docenteReport);
criarAnaliseDimensionalGeral(docenteReport);
 
criarAvaliacaoGuiaoDesempenho(docenteReport);
 
criarAvaliacaoGuiaoDesempenho(docenteReport);
}
//AbstractDao.getCurrentSession().getTransaction().commit();
 
 
814,8 → 814,10
int docentesProcessados = 0;
int docentesFalhados = 0;
int docentesSemRespostas = 0;
int docentesSemUnidadesAfetas = 0;
int docentesComRespostas = 0;
 
QuestionarioReportFileGroupDocentesAnoImpl reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoImpl().load(questionarioReportId);
QuestionarioReportFileGroupDocentesAnoImpl reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(questionarioReportId);
 
anoLectivo = reportGroup.getImportYear();
periodos = reportGroup.getPeriodosArray();
826,13 → 828,16
logger.info(msg);
 
 
List<Integer> teacherCodes = DaoFactory.getTeacherDaoImpl().findAllSigesCodesYear(reportGroup.getImportYear());
List<String> teacherCodes = QuestionariosQueryDao.findTeachersSigesCodes(reportGroup.getImportYear(),periodos,degrees);
 
msg = "Vai processar " + teacherCodes.size() + " Docentes ";
serviceLogInfo(msg);
logger.info(msg);
 
for(Integer sigesCode: teacherCodes)
//todo tirar isto
teacherCodes.add(0,"20083");
 
for(String sigesCode: teacherCodes)
{
if(sigesCode == null)
{
849,90 → 854,103
/** COMMIT OPERATION **/
 
try{
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(sigesCode);
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(Integer.parseInt(sigesCode));
msg = "(" + docentesEncontrados + "/" + teacherCodes.size() + ") Found Teacher sigesCode: " + sigesCode + " " + t.getName() + " will start process";
serviceLogInfo(msg);
logger.info(msg);
DocenteReport docenteReport = processTeacher("" + sigesCode);
 
 
if(docenteReport == null)
 
String tmpPath = docenteReport.getPathGeneratedPdfTemp();
//todo criar o docente report File e colocar no repositorio digit
QuestionarioReportDocenteFile q = DaoFactory.getQuestionarioReportDocenteFileDaoImpl().findBySigesCode(sigesCode,reportGroup.getId());
if(q == null)
{
q = new QuestionarioReportDocenteFileImpl();
q.setReportGroup(reportGroup);
q.setEntityCode("" + sigesCode);
q.setEntityName(t.getName());
//q.setTeacher(t);
DaoFactory.getQuestionarioReportDocenteFileDaoImpl().save(q);
}
 
q.setInquiridos(docenteReport.getInquiridosTotal());
q.setInquiridosComResposta(docenteReport.getInquiridosComResposta());
q.setRespostasRequisitadas(docenteReport.getQuestionariosReqTotal());
q.setRespostas(docenteReport.getQuestionariosReqRespondidos());
q.setUnidades(docenteReport.getUnidadesRequisitadas());
 
//STATS
if(q.getInquiridos() == 0)
docentesSemUnidadesAfetas++;
else if(q.getRespostas() == 0)
docentesSemRespostas++;
else{
String tmpPath = docenteReport.getPathGeneratedPdfTemp();
//todo criar o docente report File e colocar no repositorio digit
QuestionarioReportDocenteFile q = DaoFactory.getQuestionarioReportDocenteFileDaoImpl().findBySigesCode(sigesCode,reportGroup.getId());
if(q == null)
else
docentesComRespostas++;
 
/* if(q.getCourseUnits() == null)
q.setCourseUnits(new HashSet<CourseUnit>());
else if(q.getCourseUnits().size() > 0)
{
Iterator<CourseUnit> units = q.getCourseUnits().iterator();
while(units.hasNext())
{
q = new QuestionarioReportDocenteFileImpl();
q.setReportGroup(reportGroup);
q.setEntityCode("" + sigesCode);
q.setEntityName(t.getName());
q.setTeacher(t);
DaoFactory.getQuestionarioReportDocenteFileDaoImpl().save(q);
units.next();
units.remove();
}
if(q.getCourseUnits() == null)
q.setCourseUnits(new HashSet<CourseUnit>());
else if(q.getCourseUnits().size() > 0)
}
 
for(UnidadeStats unidadeStats: docenteReport.getUnidadesStats())
{
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode(
unidadeStats.getCodigoUnidade(),
unidadeStats.getCodigoCurso(),
unidadeStats.getSemestre(),
anoLectivo);
if(courseUnits==null || courseUnits.size() == 0)
{
Iterator<CourseUnit> units = q.getCourseUnits().iterator();
while(units.hasNext())
{
units.next();
units.remove();
}
msg = "Unidade nao encontrada para associar ao file report :" + unidadeStats.getCodigoUnidade() + " (curso: " + unidadeStats.getCodigoCurso() + ")" + unidadeStats.getSemestre() + " " + anoLectivo;
logger.warn(msg);
serviceLogWarn(msg);
}
 
for(UnidadeStats unidadeStats: docenteReport.getUnidadesStats())
else if(courseUnits!=null && courseUnits.size() > 1)
{
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode(
unidadeStats.getCodigoUnidade(),
unidadeStats.getCodigoCurso(),
unidadeStats.getSemestre(),
anoLectivo);
if(courseUnits==null || courseUnits.size() == 0)
{
msg = "Unidade nao encontrada para associar ao file report :" + unidadeStats.getCodigoUnidade() + " (curso: " + unidadeStats.getCodigoCurso() + ")" + unidadeStats.getSemestre() + " " + anoLectivo;
logger.warn(msg);
serviceLogWarn(msg);
}
else if(courseUnits!=null && courseUnits.size() > 1)
{
msg = "Unidade duplicada para associar ao file report (vai associar a primeira id: " + courseUnits.get(0).getId() + ") :" + unidadeStats.getCodigoUnidade() + " (curso: " + unidadeStats.getCodigoCurso() + ")" + unidadeStats.getSemestre() + " " + anoLectivo;
logger.warn(msg);
serviceLogWarn(msg);
}
q.getCourseUnits().add(courseUnits.get(0));
msg = "Unidade duplicada para associar ao file report (vai associar a primeira id: " + courseUnits.get(0).getId() + ") :" + unidadeStats.getCodigoUnidade() + " (curso: " + unidadeStats.getCodigoCurso() + ")" + unidadeStats.getSemestre() + " " + anoLectivo;
logger.warn(msg);
serviceLogWarn(msg);
}
q.getCourseUnits().add(courseUnits.get(0));
}*/
 
 
File tmpFile = new File(tmpPath);
if(q.getRepositoryStream() == null || q.getRepositoryStream().trim().length() == 0)
{
String repositoryStreamCode = new RepositoryService().storeRepositoryFile(
new FileInputStream(tmpPath),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
"reports.QuestionarioReportDocenteFile docente: " + t.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
ResourceAccessControlEnum.questionariosReportDocente,
t);
q.setRepositoryStream(repositoryStreamCode);
}
else
{
new RepositoryService().updateRepositoryFile(
q.getRepositoryStream(),
new FileInputStream(tmpPath),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
"reports.QuestionarioReportDocenteFile docente: " + t.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
ResourceAccessControlEnum.questionariosReportDocente);
}
File tmpFile = new File(tmpPath);
if(q.getRepositoryStream() == null || q.getRepositoryStream().trim().length() == 0)
{
String repositoryStreamCode = new RepositoryService().storeRepositoryFile(
new FileInputStream(tmpPath),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
"reports.QuestionarioReportDocenteFile docente: " + t.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
ResourceAccessControlEnum.questionariosReportDocente,
t);
q.setRepositoryStream(repositoryStreamCode);
}
else
{
new RepositoryService().updateRepositoryFile(
q.getRepositoryStream(),
new FileInputStream(tmpPath),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
"reports.QuestionarioReportDocenteFile docente: " + t.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
ResourceAccessControlEnum.questionariosReportDocente);
}
 
//Final
docentesProcessados++;
}catch(Throwable e)
948,16 → 966,27
serviceLogInfo("######################################");
serviceLogInfo("#Docentes Encontrados:" + docentesEncontrados);
serviceLogInfo("#Docentes Processados:" + docentesProcessados);
serviceLogInfo("#Docentes Com Resposta:" + docentesComRespostas);
serviceLogInfo("#Docentes Sem Respostas:" + docentesSemRespostas);
serviceLogInfo("#Docentes Sem Unidades Afetas:" + docentesSemUnidadesAfetas);
serviceLogInfo("#Docentes Falhados:" + docentesFalhados);
 
logger.info("######################################");
logger.info("######################################");
logger.info("#Docentes Encontrados:" + docentesEncontrados);
logger.info("#Docentes Processados:" + docentesProcessados);
logger.info("#Docentes Falhados:" + docentesFalhados);
logger.info("#Docentes Com Resposta:" + docentesComRespostas);
logger.info("#Docentes Sem Respostas:" + docentesSemRespostas);
logger.info("#Docentes Falhados:" + docentesFalhados);
logger.info("#Docentes Sem Unidades Afetas:" + docentesSemUnidadesAfetas);
 
reportGroup.setEntidadesEncontradas(docentesEncontrados);
reportGroup.setEntidadesProcessadas(docentesProcessados);
reportGroup.setEntidadesFalhadas(docentesFalhados);
reportGroup.setEntidadesComRespostas(docentesComRespostas);
reportGroup.setEntidadesSemRespostas(docentesSemRespostas);
reportGroup.setEntidadesSemUnidadesAfetas(docentesSemUnidadesAfetas);
 
logger.info("terminating docente reports generation");
serviceLogInfo("terminating docente reports generation");
logMessages.addMessage(new DefaultLogMessage("report.docente.gen.terminating", LogMessageTypeEnum.INFO));
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/reportdomains/QuestionariosAlunosReport.java
40,6 → 40,8
 
public ArrayList<ParticipacaoUnidade> participacoesUnidades = new ArrayList<ParticipacaoUnidade>();
 
public int unidadesRequisitadas;
 
public ArrayList<TabelaPerguntaComparativosUnidades> listaUnidadesComprativasPergunta = new ArrayList<TabelaPerguntaComparativosUnidades>();
public ArrayList<TabelaPerguntaComparativosUnidades> listaUnidadesComprativasPerguntaSalas = new ArrayList<TabelaPerguntaComparativosUnidades>();
 
59,6 → 61,14
this.listaUnidadesComprativasPergunta = listaUnidadesComprativasPergunta;
}
 
public int getUnidadesRequisitadas() {
return unidadesRequisitadas;
}
 
public void setUnidadesRequisitadas(int unidadesRequisitadas) {
this.unidadesRequisitadas = unidadesRequisitadas;
}
 
//MEDIAS GLOBAIS
//Preenchidas no UnidadeQueryDao durante o preenchimento das unidadesCurriculares porque sao necessarias as
//medias dos grupos e das perguntas nas escolas e nos cursos das perguntas
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/CursoPublicReportGenerator.java
1,19 → 1,25
package pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors;
 
import jomm.dao.impl.AbstractDao;
import jomm.utils.PdfUtils;
import org.apache.fop.apps.FOPException;
import org.apache.log4j.Logger;
import org.dom4j.DocumentException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.QuestionarioReportCursoFile;
import pt.estgp.estgweb.domain.QuestionarioReportCursoFileImpl;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAnoImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.jobs.ServiceJob;
import pt.estgp.estgweb.services.logresults.ILogMessages;
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.*;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.CursoPublicReport;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.EntityEvaluated;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.*;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.*;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.DatesUtils;
23,6 → 29,7
import javax.xml.transform.dom.DOMSource;
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
61,16 → 68,16
super(anoLectivo, periodos, degrees);
}
 
public void processCourse(String courseCode) throws IOException, DocumentException, TransformerException, FOPException
public CursoPublicReport processCourse(String courseCode) throws IOException, DocumentException, TransformerException, FOPException
{
 
 
//todo ver se ha ocorrencias de respostas do docente neste ano se não houver devolver questionario com info de nao haver resultados para este docente
CursoPublicReport cursoReport = getCoursePublicReport(courseCode);
if(cursoReport == null)
{
System.out.println(" Curso " + courseCode + " nao tem respostas nestas condições ");
return;
String msg = " Curso " + courseCode + " nao tem respostas nestas condições ";
logger.warn(msg);
serviceLogWarn(msg);
System.out.println();
return cursoReport;
}
 
ChartBuilderUtil.createChartTiposAlunos(cursoReport, "tiposAlunosTmp");
80,6 → 87,8
 
 
String path = generatePdfReport(cursoReport);
cursoReport.setPathGeneratedPdfTemp(path);
return cursoReport;
 
}
 
110,7 → 119,7
 
private CursoPublicReport getCoursePublicReport(String courseCode) throws IOException {
 
AbstractDao.getCurrentSession().beginTransaction();
//AbstractDao.getCurrentSession().beginTransaction();
 
Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
 
136,20 → 145,26
 
 
 
AlunosQueryDao.countAlunosQueResponderamAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
if(cursoReport.getInquiridosTotal() == 0)
//Caso nao haja respostas
//este metodo preenche todas as questões relativas a respostas e generos m/f e idades, mas
// devolve total de respostas para ser usada aqui como verificacao
int respostas = AlunosQueryDao.countAlunosQueResponderamAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
QuestionariosQueryDao.countQuestionariosRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
//todo testar curso sem respostas
if(respostas > 0)
{
return null;
AlunosQueryDao.countTiposAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
AlunosQueryDao.countIdadesAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
 
//TABELAS
QuestionariosQueryDao.createDataTableIdades(cursoReport, "Alunos");
QuestionariosQueryDao.createDataTableLocalidadesAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees, "Alunos");
}
QuestionariosQueryDao.countQuestionariosRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
AlunosQueryDao.countTiposAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
AlunosQueryDao.countIdadesAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
 
//TABELAS
QuestionariosQueryDao.createDataTableIdades(cursoReport, "Alunos");
QuestionariosQueryDao.createDataTableLocalidadesAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees, "Alunos");
UnidadesQueryDao.createTableTaxaRespostaUnidadeAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees);
 
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);
174,8 → 189,12
cursoReport.getCursoStats().setDocentesDoCurso((int) QueryDaoUtils.countDocentesNosCursos(courseCode, anoLectivo, periodos, degrees));
cursoReport.getCursoStats().setDocentesDaEscola((int) QueryDaoUtils.countDocentesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
 
//todo 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 ão se puxou para o QuestionarioAlunos
// @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));
231,32 → 250,32
periodos, degrees, false);
 
 
UnidadesQueryDao.criarTabelasCadeirasCurso(courseCode,
anoLectivo,
cursoReport,
0, periodos, degrees,cursoReport.getCursoStats().getUnidadesStats());
 
UnidadesQueryDao.criarTabelasCadeirasCurso(courseCode,
anoLectivo,
cursoReport,
0, periodos, degrees,cursoReport.getCursoStats().getUnidadesStats());
 
ChartWithDataTable analiseConjuntaChartWithTable = criarAnaliseConjuntaDeUnidades(cursoReport.getCursoStats().getUnidadesStats());
cursoReport.setAnaliseConjuntaChartWithTable(analiseConjuntaChartWithTable);
ChartWithDataTable analiseConjuntaChartWithTable = criarAnaliseConjuntaDeUnidades(cursoReport.getCursoStats().getUnidadesStats());
cursoReport.setAnaliseConjuntaChartWithTable(analiseConjuntaChartWithTable);
 
String pathOrdenadaMediaUnidades = criarAnaliseConjuntaDeUnidadesOrdenadaMediaUnidades(cursoReport.getCursoStats().getUnidadesStats());
cursoReport.setAnaliseConjuntaChartOrderMediaUnidades(pathOrdenadaMediaUnidades);
String pathOrdenadaMediaUnidades = criarAnaliseConjuntaDeUnidadesOrdenadaMediaUnidades(cursoReport.getCursoStats().getUnidadesStats());
cursoReport.setAnaliseConjuntaChartOrderMediaUnidades(pathOrdenadaMediaUnidades);
 
String pathOrdenadaMediaSalas = criarAnaliseConjuntaDeUnidadesOrdenadaMediaSalas(cursoReport.getCursoStats().getUnidadesStats());
cursoReport.setAnaliseConjuntaChartOrderMediaSalas(pathOrdenadaMediaSalas);
String pathOrdenadaMediaSalas = criarAnaliseConjuntaDeUnidadesOrdenadaMediaSalas(cursoReport.getCursoStats().getUnidadesStats());
cursoReport.setAnaliseConjuntaChartOrderMediaSalas(pathOrdenadaMediaSalas);
 
ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPergunta = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null);
cursoReport.setListaUnidadesComprativasPergunta(listaTabelasComparativasUnidadesPergunta);
ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPergunta = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null);
cursoReport.setListaUnidadesComprativasPergunta(listaTabelasComparativasUnidadesPergunta);
 
ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPerguntaSalas = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null);
cursoReport.setListaUnidadesComprativasPerguntaSalas(listaTabelasComparativasUnidadesPerguntaSalas);
ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPerguntaSalas = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null);
cursoReport.setListaUnidadesComprativasPerguntaSalas(listaTabelasComparativasUnidadesPerguntaSalas);
 
DataTable dataTableTodasAsUndiadesTodasPerguntas = criarTabelaComRespostasATodasAsPerguntas(cursoReport);
cursoReport.setTodasAsRespostasMediasGruposUnidadesESalas(dataTableTodasAsUndiadesTodasPerguntas);
DataTable dataTableTodasAsUndiadesTodasPerguntas = criarTabelaComRespostasATodasAsPerguntas(cursoReport);
cursoReport.setTodasAsRespostasMediasGruposUnidadesESalas(dataTableTodasAsUndiadesTodasPerguntas);
 
 
AbstractDao.getCurrentSession().getTransaction().commit();
}
//AbstractDao.getCurrentSession().getTransaction().commit();
return cursoReport;
}
 
632,11 → 651,160
return tableEvolucaoRespostas;
}
 
@Override
 
protected ILogMessages runJobServiceTask() throws Throwable
{
long questionarioReportId = Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_report_id_KEY).getObject());
DefaultLogMessages logMessages = new DefaultLogMessages();
 
int cursosEncontrados = 0;
int cursosProcessados = 0;
int cursosFalhados = 0;
int cursosSemRespostas = 0;
int cursosSemUnidadesAfetas = 0;
int cursosComRespostas = 0;
 
QuestionarioReportFileGroupCursosAnoImpl reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
 
anoLectivo = reportGroup.getImportYear();
periodos = reportGroup.getPeriodosArray();
degrees = reportGroup.getDegreesArray();
 
String msg = "Starting process for Report Cursos (" + questionarioReportId + "): " + reportGroup.getTitle();
serviceLogInfo(msg);
logger.info(msg);
 
 
List<String> courseCodes = QuestionariosQueryDao.findCoursesSigesCodes(reportGroup.getImportYear(), periodos, degrees);
 
msg = "Vai processar " + courseCodes.size() + " Cursos ";
serviceLogInfo(msg);
logger.info(msg);
for(String sigesCode: courseCodes)
{
if(sigesCode == null)
{
msg = "Found Course with siges code null, not known but has units in " + reportGroup.getImportYear();
serviceLogInfo(msg);
logger.info(msg);
continue;
}
cursosEncontrados++;
 
/** COMMIT OPERATION **/
setProgress((int)((((float)cursosEncontrados)/((float)courseCodes.size()))*100.0f));
commitPartially();
/** COMMIT OPERATION **/
 
try{
Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(""+sigesCode);
msg = "(" + cursosEncontrados + "/" + courseCodes.size() + ") Found Course sigesCode: " + sigesCode + " " + c.getName() + " will start process";
serviceLogInfo(msg);
logger.info(msg);
CursoPublicReport cursoReport = processCourse("" + sigesCode);
 
 
if(cursoReport == null)
cursosSemRespostas++;
else{
String tmpPath = cursoReport.getPathGeneratedPdfTemp();
 
QuestionarioReportCursoFile q = DaoFactory.getQuestionarioReportCursoFileDaoImpl().findBySigesCode(Integer.parseInt(sigesCode),reportGroup.getId());
if(q == null)
{
q = new QuestionarioReportCursoFileImpl();
q.setReportGroup(reportGroup);
q.setEntityCode("" + sigesCode);
q.setEntityName(c.getName());
//q.setCourse(c);
DaoFactory.getQuestionarioReportCursoFileDaoImpl().save(q);
}
 
q.setInquiridos(cursoReport.getInquiridosTotal());
q.setInquiridosComResposta(cursoReport.getInquiridosComResposta());
q.setRespostasRequisitadas(cursoReport.getQuestionariosReqTotal());
q.setRespostas(cursoReport.getQuestionariosReqRespondidos());
q.setUnidades(cursoReport.getUnidadesRequisitadas());
 
 
//STATS
if(q.getInquiridos() == 0)
cursosSemUnidadesAfetas++;
else if(q.getRespostas() == 0)
cursosSemRespostas++;
else
cursosComRespostas++;
 
 
File tmpFile = new File(tmpPath);
if(q.getRepositoryStream() == null || q.getRepositoryStream().trim().length() == 0)
{
String repositoryStreamCode = new RepositoryService().storeRepositoryFile(
new FileInputStream(tmpPath),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
"reports.QuestionarioReportCursoFile course: " + c.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
ResourceAccessControlEnum.authenticatedDomain,//Este relatório de curso é publico
DaoFactory.getUserDaoImpl().load(new Long(1)));
q.setRepositoryStream(repositoryStreamCode);
}
else
{
new RepositoryService().updateRepositoryFile(
q.getRepositoryStream(),
new FileInputStream(tmpPath),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
"reports.QuestionarioReportCursoFile curso: " + c.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
ResourceAccessControlEnum.authenticatedDomain);
}
}
//Final
cursosProcessados++;
}catch(Throwable e)
{
msg = "FAIL - Teacher with siges: " + sigesCode;
serviceLogError(msg,e);
logger.error(msg,e);
cursosFalhados++;
}
}
 
serviceLogInfo("######################################");
serviceLogInfo("######################################");
serviceLogInfo("#Cursos Encontrados:" + cursosEncontrados);
serviceLogInfo("#Cursos Processados:" + cursosProcessados);
serviceLogInfo("#Cursos Com Resposta:" + cursosComRespostas);
serviceLogInfo("#Cursos Sem Respostas:" + cursosSemRespostas);
serviceLogInfo("#Cursos Sem Unidades Afetas:" + cursosSemUnidadesAfetas);
serviceLogInfo("#Cursos Falhados:" + cursosFalhados);
 
logger.info("######################################");
logger.info("######################################");
logger.info("#Cursos Encontrados:" + cursosEncontrados);
logger.info("#Cursos Processados:" + cursosProcessados);
logger.info("#Cursos Falhados:" + cursosFalhados);
logger.info("#Cursos Com Resposta:" + cursosComRespostas);
logger.info("#Cursos Sem Respostas:" + cursosSemRespostas);
logger.info("#Cursos Sem Unidades Afetas:" + cursosSemUnidadesAfetas);
 
reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
reportGroup.setEntidadesEncontradas(cursosEncontrados);
reportGroup.setEntidadesProcessadas(cursosProcessados);
reportGroup.setEntidadesFalhadas(cursosFalhados);
reportGroup.setEntidadesComRespostas(cursosComRespostas);
reportGroup.setEntidadesSemRespostas(cursosSemRespostas);
reportGroup.setEntidadesSemUnidadesAfetas(cursosSemUnidadesAfetas);
 
logger.info("terminating docente reports generation");
serviceLogInfo("terminating docente reports generation");
logMessages.addMessage(new DefaultLogMessage("report.docente.gen.terminating", LogMessageTypeEnum.INFO));
setProgress(100);
commitPartially();
return logMessages;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/queries/QuestionariosQueryDao.java
97,13 → 97,24
query.setString("ano",anoLectivo);
Object[] result2 = (Object[]) query.uniqueResult();
 
//O docente nao tinha quaisquer respostas requisitadas
if(result2[0] == null || result2[1] == null)
{
docenteReport.questionariosReqRespondidos = 0;
docenteReport.questionariosReqNaoRespondidos = 0;
docenteReport.questionariosReqTotal = 0;
docenteReport.questionariosReqRespondidosPercentagem = 0;
}
else
{
docenteReport.questionariosReqRespondidos = ((Long) result2[0]).intValue();
docenteReport.questionariosReqNaoRespondidos = ((Long) result2[1]).intValue();
docenteReport.questionariosReqTotal = docenteReport.questionariosReqRespondidos + docenteReport.questionariosReqNaoRespondidos;
docenteReport.questionariosReqRespondidosPercentagem = (int)(((float)docenteReport.questionariosReqRespondidos/(float)docenteReport.questionariosReqTotal)*100.f);
}
 
docenteReport.questionariosReqRespondidos = ((Long) result2[0]).intValue();
docenteReport.questionariosReqNaoRespondidos = ((Long) result2[1]).intValue();
docenteReport.questionariosReqTotal = docenteReport.questionariosReqRespondidos + docenteReport.questionariosReqNaoRespondidos;
docenteReport.questionariosReqRespondidosPercentagem = (int)(((float)docenteReport.questionariosReqRespondidos/(float)docenteReport.questionariosReqTotal)*100.f);
docenteReport.questionariosReqRespondidosPercentagemColor = DataTable.getColorGradientForPercentage(((double)docenteReport.questionariosReqRespondidosPercentagem)/100.0);
//docenteReport.questionariosReqRespondidosPercentagem =53;
 
}
 
public static void createDataTableLocalidadesAoDocente(QuestionariosReport report, String teacherCode, String anoLectivo, String[] periodos, String[] degrees,
274,4 → 285,45
}
 
 
public static List<String> findCoursesSigesCodes(String importYear,String[] periodos, String[] degrees) {
String periodosQuery = QueryDaoUtils.createPeriodosQuery(periodos, "quest", true);
String degreesQuery = QueryDaoUtils.createDegreesQuery(degrees, "curso", true);
 
Query query = AbstractDao.getCurrentSession().createQuery(
"select distinct curso.codigoCurso from " + OlapStarFactQuestionario.class.getName() + " fc " +
"JOIN fc.olapQuestionario quest " +
"JOIN fc.olapTipologia tipo " +
"JOIN fc.olapPerfilUser user " +
"JOIN fc.olapCurso curso " +
"JOIN fc.olapTimeLine timeLine " +
"where " +
"quest.ano = :ano " +
"and fc.respondido = true " +
"and timeLine.nome = '" + PedagogicoAlunosProcessor.getHistoryDriveConstraintStatic() + "' " +
periodosQuery +
degreesQuery);
query.setString("ano",importYear);
return query.list();
}
 
public static List<String> findTeachersSigesCodes(String importYear,String[] periodos, String[] degrees) {
String periodosQuery = QueryDaoUtils.createPeriodosQuery(periodos, "quest", true);
String degreesQuery = QueryDaoUtils.createDegreesQuery(degrees, "curso", true);
 
Query query = AbstractDao.getCurrentSession().createQuery(
"select distinct tipo.codigoSiges from " + OlapStarFactQuestionario.class.getName() + " fc " +
"JOIN fc.olapQuestionario quest " +
"JOIN fc.olapTipologia tipo " +
"JOIN fc.olapPerfilUser user " +
"JOIN fc.olapCurso curso " +
"JOIN fc.olapTimeLine timeLine " +
"where " +
"quest.ano = :ano " +
"and fc.respondido = true " +
"and timeLine.nome = '" + PedagogicoAlunosProcessor.getHistoryDriveConstraintStatic() + "' " +
periodosQuery +
degreesQuery);
query.setString("ano",importYear);
return query.list();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/queries/UnidadesQueryDao.java
572,7 → 572,9
query.setString("ano",anoLectivo);
List<Object[]> result = (List<Object[]>) query.list();
 
report.setUnidadesRequisitadas(result.size());
 
 
DataTable dTableOrderByNome = criarTabelaTaxas(report,result,report.getQuestionariosReqRespondidos(),true);
 
report.setTabelaTaxaRespostaUnidade( dTableOrderByNome);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/queries/AlunosQueryDao.java
253,12 → 253,12
* @param codes
* @param entityEvaluated
* @param anoLectivo
* @param docenteReport
* @param report
* @param periodos
* @param degrees
* @return
*/
public static int countAlunosQueResponderamGen(String[] codes,EntityEvaluated entityEvaluated, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees) {
public static int countAlunosQueResponderamGen(String[] codes,EntityEvaluated entityEvaluated, String anoLectivo, QuestionariosAlunosReport report, String[] periodos, String[] degrees) {
 
String periodosQuery = QueryDaoUtils.createPeriodosQuery(periodos, "quest", true);
String degreesQuery = QueryDaoUtils.createDegreesQuery(degrees, "curso", true);
288,7 → 288,7
//query.setString("codigoSiges",code);
query.setString("ano",anoLectivo);
Object result = query.uniqueResult();
docenteReport.masculinoComResposta = ((Long) result).intValue();
report.masculinoComResposta = ((Long) result).intValue();
 
query = AbstractDao.getCurrentSession().createQuery("" +
"SELECT " +
309,12 → 309,12
//query.setString("codigoSiges",code);
query.setString("ano",anoLectivo);
result = query.uniqueResult();
docenteReport.femininoComResposta = ((Long) result).intValue();
report.femininoComResposta = ((Long) result).intValue();
 
//BASTA TER UMA RESPOSTA CONSIDERA-SE QUE RESPONDEU AOS QUESTIONARIOS
docenteReport.inquiridosComResposta = docenteReport.masculinoComResposta + docenteReport.femininoComResposta;
docenteReport.masculinoComRespostaPercent = (int)((((float)docenteReport.masculinoComResposta) / ((float) docenteReport.inquiridosComResposta)) * 100.0);
docenteReport.femininoComRespostaPercent = (int)((((float)docenteReport.femininoComResposta) / ((float) docenteReport.inquiridosComResposta)) * 100.0);
report.inquiridosComResposta = report.masculinoComResposta + report.femininoComResposta;
report.masculinoComRespostaPercent = (int)((((float)report.masculinoComResposta) / ((float) report.inquiridosComResposta)) * 100.0);
report.femininoComRespostaPercent = (int)((((float)report.femininoComResposta) / ((float) report.inquiridosComResposta)) * 100.0);
 
/*TAXA DE RESPOSTA NAO SE PODE RETIRAR OS ALUNOS SEM RESPOSTA PORQUE PODEM REPETIR NO CASO DE TEREM RESPONDIDO A UMAS E NAO A OUTRAS*/
query = AbstractDao.getCurrentSession().createQuery("" +
334,10 → 334,10
//query.setString("codigoSiges",code);
query.setString("ano",anoLectivo);
result = query.uniqueResult();
docenteReport.inquiridosTotal = ((Long) result).intValue();
docenteReport.inquiridosNaoResponderam = docenteReport.inquiridosTotal - docenteReport.inquiridosComResposta;
report.inquiridosTotal = ((Long) result).intValue();
report.inquiridosNaoResponderam = report.inquiridosTotal - report.inquiridosComResposta;
 
return docenteReport.inquiridosComResposta;
return report.inquiridosComResposta;
}
 
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
10,6 → 10,8
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.common.CommonServicesManager;
import pt.estgp.estgweb.services.email.SendEmailService;
import pt.estgp.estgweb.services.email.SimpleSendEmailInterface;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.ftpservices.FtpService;
import pt.estgp.estgweb.utils.ConfigProperties;
279,6 → 281,57
return userSession;
}
 
 
public UserSession changePassword(String password, UserSession userSession) throws ServiceException
{
userSession.getUser().setPassword(password);
CommonServicesManager.getInstance().adviseUpdate(userSession.getUser());
userSession.getUser().setPassword(jomm.utils.BytesUtils.getDigestMD5Hex(password));
return userSession;
}
 
public User requestChangePassword(String identifier) throws ServiceException
{
 
List<User> users = DaoFactory.getUserDaoImpl().loadBySigesCodeUsernameEmailsBiSiges(identifier);
if(users.size() == 0)
return null;
else if(users.size() > 1)
{
String subject = "DANGER two or more users sharing identifier property " + identifier;
logger.warn(subject);
String msg = "";
for(User u: users)
{
logger.warn(u.getId() + " " + u.getUsername() + " " + u.getEmail());
msg += " ( " + u.getId() + " " + u.getUsername() + " " + u.getEmail() + " )";
}
new SendEmailService().sendNotificationAdmin(msg,"Ao tentar recuperar password idenficamos mais de um caso com o mesmo identificador:" + msg);
return null;
}
else
{
User u = users.get(0);
logger.info("User " + u.getId() + " " + u.getName() + " identificado vamos criar um certificado e enviar um email para reposição de password");
 
String text = "Caro " + u.getName() + " vimos por este meio informá-lo que já pode redifinir a sua password no seguinte endereço web. " +
"Este endereço expira em " +
+Globals.CERTIFICATES_EXPIRTATION_IN_DAYS + " dias. Se por algum motivo for alheio a este pedido por favor ignore este email. " +
"A sua password no PAE será mantida.";
 
SimpleSendEmailInterface.createCertificatedEmailJobAndSendNow(u,
"Sistema de Recuperação de Passwords PAE-IPP",
"Pedido de Recuperação de Password",
text,
Globals.SITE_URL + "/user/ChangePassword.do",
"Message Email (request change password from user with id " + u.getId()
);
return u;
}
 
}
 
 
public UserSession loginCertificate(String certificate, UserSession userSession) throws ServiceException
{
if(userSession.getUser() != null)
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
148,7 → 148,7
return userSession.getUser()!= null &&
(((UserImpl) userSession.getUser()).isTeacherOfCourseUnit(getId(), true)
|| (getResponsableTeacher() != null && getResponsableTeacher().getId() == userSession.getUser().getId())
|| userSession.getUser().hasRole(getCourse().getValidationRole())
|| ((CourseImpl)getCourse()).isFromCourseCommission(userSession)
);
}
 
371,7 → 371,8
Teacher t = ((Teacher)(usession.getUser()));
boolean teacher = ((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true);
boolean responsable = c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId();
boolean isCoordinator = (c.getCourse().getCoordinator() != null && t.getId() == c.getCourse().getCoordinator().getId()) || (c.getCourse().getValidationRole() != null && t.hasRole(c.getCourse().getValidationRole()));
boolean isCoordinator = ((CourseImpl) DaoFactory.getCourseDaoImpl().narrow(c.getCourse())).isFromCourseCommission(t);
 
if(teacher)
{
s.addClearance(CourseUnitClearancesOperation.EVALUATION_INFO_USER_TEACHER.name(), usession);
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UserDaoImpl.java
5,6 → 5,7
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import pt.estgp.estgweb.domain.Teacher;
275,6 → 276,22
return (User) createCriteria().add(eq("sigesCode", sigesCode)).uniqueResult();
}
 
public List<User> loadBySigesCodeUsernameEmailsBiSiges(String identifier)
{
Query q = getCurrentSession().createQuery(
"select u from u in class " + User.class.getName() + " " +
"where " +
"u.username = :identifier or " +
"u.bi = :identifier or " +
"u.email = :identifier or " +
"u.outEmail = :identifier or " +
"u.preferrefEmail = :identifier or " +
"u.sigesCode = :identifier");
q.setString("identifier",identifier);
 
return q.list();
}
 
public List<User> loadByCertificate(String certificate)
{
return createCriteria()
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioReportDocenteFileDaoImpl.java
27,18 → 27,18
* @param reportGroupId
* @return null if does not exist yet
*/
public QuestionarioReportDocenteFile findBySigesCode(Integer sigesCode, long reportGroupId) {
public QuestionarioReportDocenteFile findBySigesCode(String sigesCode, long reportGroupId) {
List<QuestionarioReportDocenteFile>
reportDocenteFiles = createCriteria()
.add(eq("entityCode", "" + sigesCode))
.add(eq("reportGroup.id",reportGroupId)).list();
.add(eq("reportGroup.id", reportGroupId)).list();
if(reportDocenteFiles== null || reportDocenteFiles.size() == 0)
return null;
return
reportDocenteFiles.get(0);
}
 
public QuestionarioReportDocenteFile findByReposritory(String stream) {
public QuestionarioReportDocenteFile findByRepository(String stream) {
List<QuestionarioReportDocenteFile>
reportDocenteFiles = createCriteria()
.add(eq("repositoryStream", stream)).list();
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioReportCursoFileDaoImpl.java
1,7 → 1,7
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.QuestionarioReportDocenteFile;
import pt.estgp.estgweb.domain.QuestionarioReportCursoFile;
 
import java.util.List;
 
27,14 → 27,25
* @param reportGroupId
* @return
*/
public QuestionarioReportDocenteFile findBySigesCode(Integer sigesCode, long reportGroupId) {
List<QuestionarioReportDocenteFile>
reportDocenteFiles = createCriteria()
.add(eq("entityCode", sigesCode))
public QuestionarioReportCursoFile findBySigesCode(Integer sigesCode, long reportGroupId) {
List<QuestionarioReportCursoFile>
reportCursoFiles = createCriteria()
.add(eq("entityCode", ""+ sigesCode))
.add(eq("reportGroup.id",reportGroupId)).list();
if(reportDocenteFiles== null || reportDocenteFiles.size() == 0)
if(reportCursoFiles== null || reportCursoFiles.size() == 0)
return null;
return
reportDocenteFiles.get(0);
reportCursoFiles.get(0);
}
 
public QuestionarioReportCursoFile findByRepository(String stream) {
List<QuestionarioReportCursoFile>
reportCursoFiles = createCriteria()
.add(eq("repositoryStream", stream)).list();
 
if(reportCursoFiles== null || reportCursoFiles.size() == 0)
return null;
return
reportCursoFiles.get(0);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
147,6 → 147,10
.add(eq("responsableTeacher.id", teacherId)).addOrder(Order.asc("importYear")).addOrder(Order.asc("name")).list();
}
 
public List<CourseUnit> loadTeachedImportYearSemestreUnits(long teacherId, String importYear)
{
return loadTeachedImportYearSemestreUnits(teacherId, importYear,null);
}
public List<CourseUnit> loadTeachedImportYearSemestreUnits(long teacherId, String importYear, String semestre)
{
Criteria c =createCriteria()
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
401,7 → 401,7
return QuestionarioReportDocenteFileDaoImpl.getInstance();
}
 
public static QuestionarioReportFileGroupDocentesAnoDao getQuestionarioReportFileGroupDocentesAnoImpl() {
public static QuestionarioReportFileGroupDocentesAnoDao getQuestionarioReportFileGroupDocentesAnoDaoImpl() {
return QuestionarioReportFileGroupDocentesAnoDao.getInstance();
}
 
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/CourseImpl.java
30,10 → 30,20
 
public boolean isFromCourseCommission(UserSession userSession)
{
return userSession.getUser()!= null &&
userSession.getUser().hasRole(getValidationRole());
return isFromCourseCommission(userSession.getUser());
}
 
public boolean isFromCourseCommission(User user)
{
return user != null &&
(
user.hasRole(getValidationRole())
||
(getDirector() != null && user.getId() == getDirector().getId())
||
(getCoordinator() != null && user.getId() == getCoordinator().getId()));
}
 
public String getDegreeForJsonApi()
{
return ConfigProperties.getProperty("course." + getDegree());
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioReportFileAnoImpl.java
New file
0,0 → 1,7
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 31/12/16.
*/
public class QuestionarioReportFileAnoImpl extends QuestionarioReportFileAno {
}
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/chains/ResourceAccessControlEnum.java
23,7 → 23,8
 
processDomain("resource.access.process", new ResourceAccessControlProcessDomainFilter()),
 
questionariosReportDocente("resource.access.questionariosReportDocente", new ResourceAccessControlQuestionariosReportDocenteFilter());
questionariosReportDocente("resource.access.questionariosReportDocente", new ResourceAccessControlQuestionariosReportDocenteFilter()),
questionariosReportCurso("resource.access.questionariosReportCurso", new ResourceAccessControlQuestionariosReportCursoFilter());
 
private String key;
private ResourceAccessControlFilter filter;
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/CanEditCourseUnitProgramFilter.java
2,6 → 2,7
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseImpl;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.UserSession;
36,10 → 37,10
//ok
}
else if(usession.getUser() instanceof Teacher
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole())
||
((usession.getUser()) == c.getCourse().getCoordinator()))
)
&&
(
((CourseImpl)DaoFactory.getCourseDaoImpl().narrow(c.getCourse())).isFromCourseCommission(usession)
))
{
//ok
}
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlPrivateDomainFilter.java
1,13 → 1,9
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.RepositoryFile;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.utl.ist.berserk.ServiceRequest;
import pt.utl.ist.berserk.ServiceResponse;
import pt.utl.ist.berserk.logic.filterManager.FilterParameters;
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
 
/**
* @author Jorge Machado
19,6 → 15,8
public boolean canAccessResource(UserSession userSession, String identifier)
{
RepositoryFile repositoryFile = DaoFactory.getRepositoryFileDaoImpl().loadByIdentifier(identifier);
return userSession.getUser() != null && userSession.getUser().getId() == repositoryFile.getOwner().getId();
return userSession.getUser() != null &&
repositoryFile.getOwner() != null &&
userSession.getUser().getId() == repositoryFile.getOwner().getId();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlQuestionariosReportDocenteFilter.java
1,11 → 1,12
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.domain.QuestionarioReportDocenteFile;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
21,10 → 22,41
int code = t.getSigesCode();
 
QuestionarioReportDocenteFile q =
DaoFactory.getQuestionarioReportDocenteFileDaoImpl().findByReposritory(identifier);
DaoFactory.getQuestionarioReportDocenteFileDaoImpl().findByRepository(identifier);
 
QuestionarioReportFileGroupDocentesAno questionarioReportFileGroupDocentesAno = (QuestionarioReportFileGroupDocentesAno) q.getReportGroup();
 
if(q.getEntityCode().equals(""+code))
return true;
else if(userSession.getUser().hasRole(Globals.ROLE_PRESIDENTE_CONCELHO_PEDAGOGICO)
||
userSession.getUser().hasRole(Globals.INTRANET_DTP_INQUERITO_PEDAGOGICO_ROLE)
||
userSession.getUser().hasRole(Globals.ROLE_BOARD_INSTITUTION))
return true;
else
{
//CHECK IF THERE IS ANY UNIT IN SCHOLL AND IF THIS USER IS FROM THE BOARD OF THAT SCHOOL
if(userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE) ||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE) ||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE) ||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL_ESAE))
{
List <CourseUnit> courseUnitList = DaoFactory
.getCourseUnitDaoImpl()
.loadTeachedImportYearSemestreUnits(t.getId(), questionarioReportFileGroupDocentesAno.getImportYear());
 
for(CourseUnit cu : courseUnitList)
{
String instituionCode = cu.getCourse().getInstitutionalCode();
if(userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL(instituionCode)))
{
return true;
}
}
}
}
 
return false;
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlQuestionariosReportCursoFilter.java
New file
0,0 → 1,41
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseImpl;
import pt.estgp.estgweb.domain.QuestionarioReportCursoFile;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlQuestionariosReportCursoFilter extends ResourceAccessControlFilter
{
public boolean canAccessResource(UserSession userSession, String identifier)
{
if(userSession.getUser() != null && userSession.getUser() instanceof Teacher)
{
QuestionarioReportCursoFile q =
DaoFactory.getQuestionarioReportCursoFileDaoImpl().findByRepository(identifier);
 
CourseImpl course = DaoFactory.getCourseDaoImpl().findCourseByCode(q.getEntityCode());
if(course.isFromCourseCommission(userSession))
{
return true;
}
else if(userSession.getUser().hasRole(Globals.ROLE_PRESIDENTE_CONCELHO_PEDAGOGICO)
||
userSession.getUser().hasRole(Globals.INTRANET_DTP_INQUERITO_PEDAGOGICO_ROLE)
||
userSession.getUser().hasRole(Globals.ROLE_BOARD_INSTITUTION)
||
userSession.getUser().hasRole(Globals.ROLE_BOARD_SCHOOL(course.getInstitutionalCode())))
return true;
}
return false;
}
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/questionarios/QuestionarioCourseSelectionController.java
91,7 → 91,7
for(ILogMessage log: logMessages.getLogMessages())
{
if(log.getType() == LogMessageTypeEnum.ERROR || log.getType() == LogMessageTypeEnum.WARNING || log.getType() == LogMessageTypeEnum.FATAL)
addErrorAssString(request,log.getMsg());
addErrorAsString(request, log.getMsg());
else
addMessageAsString(request,log.getMsg());
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/ApplicationDispatchController.java
135,7 → 135,7
saveErrors(request,actionMessages);
}
 
public void addErrorAssString(HttpServletRequest request, String message)
public void addErrorAsString(HttpServletRequest request, String message)
{
ActionMessages actionMessages = getErrors(request);
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new StringMessage(message));
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/authenticate/AuthenticateController.java
1,23 → 1,24
package pt.estgp.estgweb.web.controllers.authenticate;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.*;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.profile.ProfileForm;
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
 
/**
79,6 → 80,7
return mapping.findForward("error500");
}
 
 
public ActionForward checkin(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
168,4 → 170,104
}
return mapping.findForward("error500");
}
 
 
public ActionForward changePassword(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
 
String password = request.getParameter("password");
String password2 = request.getParameter("password2");
 
if(password == null || password2 == null || password.trim().length() < 5 || !password.equals(password2))
{
addError(request, "fail.change.pass");
return mapping.findForward("fail.change.pass");
}
else{
boolean okBig = false;
boolean okSmall = false;
for(char c: password.toCharArray())
{
if(c >= 'A' && c <='Z')
{
okBig = true;
 
}
if(c >= 'a' && c <='z')
{
okSmall = true;
}
}
if(!okBig || !okSmall)
{
addError(request, "fail.change.pass");
return mapping.findForward("fail.change.pass");
}
else
{
try
{
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{password};
sm.execute(RequestUtils.getRequester(request, response),"ChangePassword",args);
addError(request, "success.change.pass");
return mapping.findForward("success");
}
catch (AuthenticateException e)
{
ActionMessages actionMessages = new ActionMessages();
actionMessages.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage(e.getMessage()));
saveErrors(request, actionMessages);
return mapping.getInputForward();
}
catch (Throwable e)
{
if(e instanceof NoCookiesException)
return mapping.findForward("errorNoCookies");
logger.fatal(e,e);
}
}
 
}
 
return mapping.findForward("error500");
}
 
public ActionForward requestChangePassword(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
 
String identifier = request.getParameter("identifier");
 
try
{
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{identifier};
User u = (User) sm.execute(RequestUtils.getRequester(request, response),"RequestChangePassword",args);
if(u == null)
{
addError(request,"fail.request.change.pass");
}
request.setAttribute("UserRequesterPasswordChange",u);
return mapping.findForward("success");
}
catch (Throwable e)
{
if(e instanceof NoCookiesException)
return mapping.findForward("errorNoCookies");
logger.fatal(e,e);
}
 
 
return mapping.findForward("error500");
}
 
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/examples/jsonwidget/WidgetFileUploadExampleController.java
47,7 → 47,7
else
{
System.out.println("FAIL: file is not in tmp: " + f.getFileName() + " in tmp : " + f.getTmpName());
addErrorAssString(request,"Ficheiro " + f.getFileName() + " falhou a importação");
addErrorAsString(request, "Ficheiro " + f.getFileName() + " falhou a importação");
return false;
}
}
96,7 → 96,7
else
{
readedFile.put("upload","fail");
addErrorAssString(request,"Ficheiro " + f.getFileName() + " falhou a importação");
addErrorAsString(request, "Ficheiro " + f.getFileName() + " falhou a importação");
}
f.setTmpName(null);
f.setRepositoryStream("999999");
/branches/v3/impl/src/updates/version/updateDimensoesPaeQuestionarios
26,4 → 26,16
update questionario_peda_curso_afeto set nomeInstituicao = "Escola Superior de Educação e Ciências Sociais" where nomeInstituicao = "Escola Superior de Educação";
 
FEITO PAE
ESTG NAO NECESSITA
ESTG NAO NECESSITA
ATE AQUI IGNORAR
 
>>>>>
 
ALTER TABLE user DROP INDEX emailIndex;
alter table user ADD INDEX `emailIndex` (`email` ASC);
SHOW INDEX FROM user;
##NOVO APENAS NA ESTG
 
>>>>NO PAE CORRER AINDA
CORRER A ACTULIZAÇAO DE ROLES NA INTERFACE
 
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/GenericUser.hbm.xml
17,7 → 17,7
<property name="username" type="string" unique="true" length="50" index="usernameIndex"/>
<property name="name" type="string" index="nameIndex"/>
<property name="email" type="string" index="emailIndex"/>
<property name="preferrefEmail" type="string" index="emailIndex"/>
<property name="preferrefEmail" type="string"/>
<property name="roles" type="string">
<column name="roles" sql-type="TEXT"/>
</property>
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
167,10 → 167,10
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitGrade"/>
</set>
 
<set name="questionarioReportsDocentes" lazy="true" order-by="id asc" table="questionario_report_file_docente_units">
<!--<set name="questionarioReportsDocentes" lazy="true" order-by="id asc" table="questionario_report_file_docente_units">
<key column="courseunit"/>
<many-to-many class="pt.estgp.estgweb.domain.QuestionarioReportDocenteFile" column="reportdocentefile" />
</set>
</set>-->
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/>
</class>
 
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/Questionarios.hbm.xml
736,6 → 736,24
<property name="importYear" type="string"/>
<property name="periodos" type="string"/>
<property name="degrees" type="string"/>
<property name="entidadesEncontradas" type="int">
<column name="entidadesEncontradas" default="0"/>
</property>
<property name="entidadesProcessadas" type="int">
<column name="entidadesProcessadas" default="0"/>
</property>
<property name="entidadesFalhadas" type="int">
<column name="entidadesFalhadas" default="0"/>
</property>
<property name="entidadesComRespostas" type="int">
<column name="entidadesComRespostas" default="0"/>
</property>
<property name="entidadesSemRespostas" type="int">
<column name="entidadesSemRespostas" default="0"/>
</property>
<property name="entidadesSemUnidadesAfetas" type="int">
<column name="entidadesSemUnidadesAfetas" default="0"/>
</property>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAnoImpl">
<meta attribute="scope-class">public abstract</meta>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAno">
766,20 → 784,43
<many-to-one name="reportGroup" class="pt.estgp.estgweb.domain.QuestionarioReportFileGroup" lazy="proxy" outer-join="false" column="questionario_report_file_group"/>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileImpl">
<meta attribute="scope-class">public abstract</meta>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportCursoFile">
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileAno">
<meta attribute="scope-class">public abstract</meta>
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="proxy" outer-join="false"/>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportCursoFileImpl" discriminator-value="QuestionarioReportCursoFileImpl"/>
<property name="inquiridos" type="int">
<column name="inquiridos" default="0" />
</property>
<property name="inquiridosComResposta" type="int">
<column name="inquiridosComResposta" default="0"/>
</property>
<property name="respostasRequisitadas" type="int">
<column name="respostasRequisitadas" default="0"/>
</property>
<property name="respostas" type="int">
<column name="respostas" default="0"/>
</property>
<property name="unidades" type="int">
<column name="unidades" default="0"/>
</property>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileAnoImpl">
<meta attribute="scope-class">public abstract</meta>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportCursoFile">
<meta attribute="scope-class">public abstract</meta>
<!--<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="proxy" outer-join="false"/>-->
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportCursoFileImpl" discriminator-value="QuestionarioReportCursoFileImpl"/>
</subclass>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportDocenteFile">
<meta attribute="scope-class">public abstract</meta>
 
<!--
<many-to-one name="teacher" class="pt.estgp.estgweb.domain.Teacher" lazy="proxy" outer-join="false"/>
<set name="courseUnits" lazy="true" table="questionario_report_file_docente_units">
<key column="reportdocentefile"/>
<many-to-many class="pt.estgp.estgweb.domain.CourseUnit" column="courseunit" />
</set>-->
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportDocenteFileImpl" discriminator-value="QuestionarioReportDocenteFileImpl"/>
</subclass>
</subclass>
</subclass>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportDocenteFile">
<meta attribute="scope-class">public abstract</meta>
<many-to-one name="teacher" class="pt.estgp.estgweb.domain.Teacher" lazy="proxy" outer-join="false"/>
<set name="courseUnits" lazy="true" table="questionario_report_file_docente_units">
<key column="reportdocentefile"/>
<many-to-many class="pt.estgp.estgweb.domain.CourseUnit" column="courseunit" />
</set>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportDocenteFileImpl" discriminator-value="QuestionarioReportDocenteFileImpl"/>
</subclass>
</subclass>
</class>
 
/branches/v3/impl/src/web/auth/requestChangePassResponse.jsp
New file
0,0 → 1,66
<%@ page import="pt.estgp.estgweb.domain.User" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
 
<div class="panel panel-default">
<div class="panel-heading">Pedido de Alteração de Password</div>
<div class="panel-body">
 
<html:errors/>
<jomm:messages/>
 
<%
User u = (User) request.getAttribute("UserRequesterPasswordChange");
if(u != null)
{
%>
<p>Caro <%=u.getName()%> foram enviados emails de reposição de password para os seguintes endereços:</p>
<ul>
<%
if(u.getEmail() != null && u.getEmail().length() > 0)
{
%>
<li>
<%=u.getEmail()%>
</li>
<%
}
if(u.getOutEmail() != null && u.getOutEmail().length() > 0)
{
%>
<li>
<%=u.getOutEmail()%>
</li>
<%
}
if(u.getPreferrefEmail() != null && u.getPreferrefEmail().length() > 0)
{
%>
<li>
<%=u.getPreferrefEmail()%>
</li>
<%
}
%>
</ul>
<%
}
else
{
%>
<p>
Contacto da administração de sistemas:
</p>
<ul>
<li><%=ConfigProperties.getProperty("admin.email")%></li>
<li><%=ConfigProperties.getProperty("admin.email.2")%></li>
</ul>
<%
}
%>
</div>
</div>
/branches/v3/impl/src/web/auth/index.jsp
15,27 → 15,35
</div>
</logic:notEmpty>
<div class="row">
<div class="col-sm-12">
<div class="col-md-6">
<html:errors/>
<jomm:messages/>
<form role="form" action="<%=request.getContextPath()%><%=Globals.SYSTEM_REDIRECTIONS_POLICY_AUTHENTICATION_ACTION%>" method="post">
<input type="hidden" name="dispatch" value="login">
<div class="form-group clearfix" >
<label class="col-sm-12" for="login" style="margin-bottom: 10px"><jomm:messageConfigKey config="authentication.policy.username.msg.key"/></label>
<div class="col-sm-6">
<label class="col-md-12" for="login" style="margin-bottom: 10px"><jomm:messageConfigKey config="authentication.policy.username.msg.key"/></label>
<div class="col-md-6">
<input type="text" class="form-control" id="login" name="username"/>
</div>
</div>
<div class="form-group clearfix">
<label class="col-sm-12" for="pwd" style="margin-bottom: 10px"><jomm:messageConfigKey config="authentication.policy.password.msg.key"/></label>
<div class="col-sm-6">
<label class="col-md-12" for="pwd" style="margin-bottom: 10px"><jomm:messageConfigKey config="authentication.policy.password.msg.key"/></label>
<div class="col-md-6">
<input type="password" class="form-control" id="pwd" name="password"/>
</div>
</div>
<div class="col-sm-12 clearfix">
<button type="submit" class="btn btn-default"><bean:message key="submit"/></button>
<button type="submit" class="btn btn-success"><bean:message key="submit"/></button>
</div>
</form>
</div>
<div class="col-md-6">
<h2>Esqueci a password</h2>
<div class="col-sm-12">
<p><a class="btn btn-default" href="<%=request.getContextPath()%>/requestChangePassword.do">Perdi a minha password e desejo receber um email para a redefinir</a></p>
</div>
</div>
 
</div>
 
</div>
/branches/v3/impl/src/web/auth/lostPass.jsp
New file
0,0 → 1,28
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
 
<div class="panel panel-default">
<div class="panel-heading">Perdi a minha password</div>
<div class="panel-body">
 
<html:errors/>
<jomm:messages/>
<p>Para receber um email de reposição de password introduza uma das informações requisitadas para podermos proceder à sua identificação</p>
<form class="form-vertical" action="<%=request.getContextPath()%>/requestChangeMyPassword.do" method="post">
<input type="hidden" name="dispatch" value="requestChangePassword">
<div class="form-group col-md-12">
<label class="col-md-12">Nome de Utilizador / Email / Número de Cartão de Cidadão / Número de Aluno / Número de Docente</label>
<div class="col-md-4">
<label class="control-label">
<input class="form-control" type="text" name="identifier">
</label>
</div>
</div>
<button class="btn btn-success" type="submit">Enviar um Email para poder alterar a minha Password</button>
</form>
</div>
</div>
/branches/v3/impl/src/web/errors/401.jsp
1,3 → 1,4
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
25,7 → 26,11
<li><bean:message key="error.401.item.3"/></li>
<li><bean:message key="error.401.item.4"/></li>
</ul>
<p><bean:message key="admin.contact"/> ci [AT] estgp [DOT] pt</p>
<p><bean:message key="admin.contact"/></p>
<ul>
<li><%=ConfigProperties.getProperty("admin.email")%></li>
<li><%=ConfigProperties.getProperty("admin.email.2")%></li>
</ul>
<baco:isNotAuthenticated>
<jsp:include page="/auth/index.jsp"/>
</baco:isNotAuthenticated>
/branches/v3/impl/src/web/errors/500.jsp
1,3 → 1,4
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
10,5 → 11,10
 
<div class="container-fluid">
<div class="alert alert-danger"><bean:message key="error.500"/></div>
<div class="alert alert-info"><bean:message key="admin.contact"/> ci [AT] estgp [DOT] pt</div>
<div class="alert alert-info"><bean:message key="admin.contact"/>
<ul>
<li><%=ConfigProperties.getProperty("admin.email")%></li>
<li><%=ConfigProperties.getProperty("admin.email.2")%></li>
</ul>
</div>
</div>
/branches/v3/impl/src/web/errors/404.jsp
1,3 → 1,4
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
16,7 → 17,12
<li><bean:message key="error.404.item.3"/></li>
<li><bean:message key="error.404.item.4"/></li>
</ul>
<p><bean:message key="admin.contact"/> ci [AT] estgp [DOT] pt</p>
<p><bean:message key="admin.contact"/>
<ul>
<li><%=ConfigProperties.getProperty("admin.email")%></li>
<li><%=ConfigProperties.getProperty("admin.email.2")%></li>
</ul>
</p>
</div>
 
 
/branches/v3/impl/src/web/errors/503.jsp
1,3 → 1,4
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
9,5 → 10,10
%>
<div class="container-fluid">
<div class="alert alert-danger"><bean:message key="error.503"/></div>
<div class="alert alert-info"><bean:message key="admin.contact"/> ci [AT] estgp [DOT] pt</div>
<div class="alert alert-info"><bean:message key="admin.contact"/>
<ul>
<li><%=ConfigProperties.getProperty("admin.email")%></li>
<li><%=ConfigProperties.getProperty("admin.email.2")%></li>
</ul>
</div>
</div>
/branches/v3/impl/src/web/errors/408.jsp
1,3 → 1,4
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
10,4 → 11,9
<h3 class="statusWARNING"><bean:message key="error.404"/></h3>
<p><bean:message key="error.408.explain"/></p>
 
<p><bean:message key="admin.contact"/> ci [AT] estgp [DOT] pt</p>
<p><bean:message key="admin.contact"/>
<ul>
<li><%=ConfigProperties.getProperty("admin.email")%></li>
<li><%=ConfigProperties.getProperty("admin.email.2")%></li>
</ul>
</p>
/branches/v3/impl/src/web/user/home/panels/emailSet.jsp
78,18 → 78,37
 
<div class="panel panel-default">
<div class="panel-body">
<div class="form-horizontal">
<div class="form-vertical">
<div class="form-group">
<label class="control-label col-sm-4" for="preferido">Email Preferido:</label>
<div class="col-sm-8">
<label class="control-label col-md-12" for="preferido">Email Preferido:</label>
<div class="col-md-12">
<input id="preferido" class="form-control" type="text" name="preferredEmail"/>
</div>
</div>
<button id="preferidoBtn" type="button" class="btn btn-success">Modificar Preferido</button>
<div class="form-group">
<label class="control-label col-md-12"></label>
<div class="col-md-12">
<button id="preferidoBtn" type="button" class="btn btn-success">Modificar Preferido</button>
</div>
</div>
 
</div>
</div>
</div>
 
<div class="panel panel-default">
<div class="panel-body">
<div class="form-vertical">
<div class="form-group">
<label class="control-label col-md-12" for="preferido">Alterar a minha password:</label>
<div class="col-md-12">
<html:link styleClass="btn btn-warning" action="/user/ChangePassword">Iniciar Alteração</html:link>
</div>
</div>
</div>
</div>
</div>
 
</div>
</div>
 
/branches/v3/impl/src/web/user/home/userPae.jsp
12,6 → 12,7
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12">
<jsp:include page="panels/questionarios.jsp"/>
<jsp:include page="panels/emailSet.jsp"/>
<jsp:include page="panels/docs.jsp"/>
</div>
<div class="col-md-6 col-sm-12 col-xs-12">
/branches/v3/impl/src/web/user/auth/changepassword.jsp
New file
0,0 → 1,48
<%@ page import="pt.estgp.estgweb.domain.UserSession" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<div class="panel panel-default">
<div class="panel-heading">Alterar a Minha Password</div>
<div class="panel-body">
<%=UserSession.getUser().getName()%> - Bem vindo à alteração de password
 
<html:errors/>
<jomm:messages/>
<form class="form-horizontal" action="<%=request.getContextPath()%>/user/changeMyPassword.do" method="post">
<input type="hidden" name="dispatch" value="changePassword">
 
 
<div class="form-group col-md-12">
<label class="control-label col-md-2">Nome de utilizador</label>
<div class="col-md-4">
<label class="control-label">
<%=UserSession.getUser().getUsername()%>
</label>
</div>
</div>
 
<div class="form-group col-md-12">
<label class="control-label col-md-2">Palavra passe</label>
<div class="col-md-4">
<input class="form-control" type="password" name="password">
</div>
</div>
 
<div class="form-group col-md-12">
<label class="control-label col-md-2">Repita a Palavra passe</label>
<div class="col-md-4">
<input class="form-control" type="password" name="password2">
</div>
</div>
<button class="btn btn-default" type="submit">Alterar Password</button>
</form>
</div>
</div>
 
/branches/v3/impl/src/web/user/questionarios/reports/showReportsPedagogicoEstudante.jsp
New file
0,0 → 1,44
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="org.hibernate.Query" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAno" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.web.utils.DatesUtils" %>
<%@ page import="jomm.utils.StringsUtils" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<h1>Consulta de Relatórios de Respostas aos Inquéritos Pedagógicos</h1>
 
 
 
<%
AbstractDao.getCurrentSession().beginTransaction();
 
Query q = AbstractDao.getCurrentSession().createQuery("" +
"select distinct importYear from " + QuestionarioReportFileGroupAno.class + " " +
"");
 
List<String> importYears = q.list();
 
for(String importYear: importYears)
{
%>
<div class="panel panel-default">
<h2>Ano <%=pt.estgp.estgweb.utils.DatesUtils.getImportYearFormatted(importYear)%></h2>
<div class="panel-body">
 
</div>
</div>
 
<%
}
 
AbstractDao.getCurrentSession().getTransaction().commit();
%>
 
</ul>
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportDocenteFile.java
1,37 → 1,19
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
import java.util.Set;
 
/**
* QuestionarioReportDocenteFile generated by hbm2java
*/
public abstract class QuestionarioReportDocenteFile extends pt.estgp.estgweb.domain.QuestionarioReportFileImpl implements java.io.Serializable {
public abstract class QuestionarioReportDocenteFile extends pt.estgp.estgweb.domain.QuestionarioReportFileAnoImpl implements java.io.Serializable {
 
 
private Teacher teacher;
private Set<CourseUnit> courseUnits = new HashSet<CourseUnit>(0);
 
public QuestionarioReportDocenteFile() {
}
 
public Teacher getTeacher() {
return this.teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
public Set<CourseUnit> getCourseUnits() {
return this.courseUnits;
}
public void setCourseUnits(Set<CourseUnit> courseUnits) {
this.courseUnits = courseUnits;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioCursoDao.java
2,18 → 2,16
// Generated 21/Dez/2016 17:38:33 by Hibernate Tools 3.2.0.b9
 
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.OlapEntityQuestionarioCurso;
 
/**
* Home object for domain model class OlapEntityQuestionarioCurso.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.OlapEntityQuestionarioCurso;
 
 
public class OlapEntityQuestionarioCursoDao extends AbstractDao<OlapEntityQuestionarioCurso> {
//public class OlapEntityQuestionarioCursoDao extends AbstractDao implements IDomainObjectDao {
 
34,6 → 32,8
protected Class getReferenceClass() {
return OlapEntityQuestionarioCurso.class;
}
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapStarFactQuestionarioCursoDao.java
34,6 → 34,8
protected Class getReferenceClass() {
return OlapStarFactQuestionarioCurso.class;
}
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
75,7 → 75,6
private Set<CourseUnitSummary> summaries = new HashSet<CourseUnitSummary>(0);
private Set<CourseUnitTurma> turmas = new HashSet<CourseUnitTurma>(0);
private Set<CourseUnitGrade> courseUnitGrades = new HashSet<CourseUnitGrade>(0);
private Set<QuestionarioReportDocenteFile> questionarioReportsDocentes = new HashSet<QuestionarioReportDocenteFile>(0);
 
public CourseUnit() {
}
522,13 → 521,6
public void setCourseUnitGrades(Set<CourseUnitGrade> courseUnitGrades) {
this.courseUnitGrades = courseUnitGrades;
}
public Set<QuestionarioReportDocenteFile> getQuestionarioReportsDocentes() {
return this.questionarioReportsDocentes;
}
public void setQuestionarioReportsDocentes(Set<QuestionarioReportDocenteFile> questionarioReportsDocentes) {
this.questionarioReportsDocentes = questionarioReportsDocentes;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportCursoFile.java
1,27 → 1,19
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* QuestionarioReportCursoFile generated by hbm2java
*/
public abstract class QuestionarioReportCursoFile extends pt.estgp.estgweb.domain.QuestionarioReportFileImpl implements java.io.Serializable {
public abstract class QuestionarioReportCursoFile extends pt.estgp.estgweb.domain.QuestionarioReportFileAnoImpl implements java.io.Serializable {
 
 
private Course course;
 
public QuestionarioReportCursoFile() {
}
 
public Course getCourse() {
return this.course;
}
public void setCourse(Course course) {
this.course = course;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroup.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileAno.java
New file
0,0 → 1,63
package pt.estgp.estgweb.domain;
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* QuestionarioReportFileAno generated by hbm2java
*/
public abstract class QuestionarioReportFileAno extends pt.estgp.estgweb.domain.QuestionarioReportFileImpl implements java.io.Serializable {
 
 
private int inquiridos;
private int inquiridosComResposta;
private int respostasRequisitadas;
private int respostas;
private int unidades;
 
public QuestionarioReportFileAno() {
}
 
public int getInquiridos() {
return this.inquiridos;
}
public void setInquiridos(int inquiridos) {
this.inquiridos = inquiridos;
}
public int getInquiridosComResposta() {
return this.inquiridosComResposta;
}
public void setInquiridosComResposta(int inquiridosComResposta) {
this.inquiridosComResposta = inquiridosComResposta;
}
public int getRespostasRequisitadas() {
return this.respostasRequisitadas;
}
public void setRespostasRequisitadas(int respostasRequisitadas) {
this.respostasRequisitadas = respostasRequisitadas;
}
public int getRespostas() {
return this.respostas;
}
public void setRespostas(int respostas) {
this.respostas = respostas;
}
public int getUnidades() {
return this.unidades;
}
public void setUnidades(int unidades) {
this.unidades = unidades;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
 
12,6 → 12,12
private String importYear;
private String periodos;
private String degrees;
private int entidadesEncontradas;
private int entidadesProcessadas;
private int entidadesFalhadas;
private int entidadesComRespostas;
private int entidadesSemRespostas;
private int entidadesSemUnidadesAfetas;
 
public QuestionarioReportFileGroupAno() {
}
38,6 → 44,48
public void setDegrees(String degrees) {
this.degrees = degrees;
}
public int getEntidadesEncontradas() {
return this.entidadesEncontradas;
}
public void setEntidadesEncontradas(int entidadesEncontradas) {
this.entidadesEncontradas = entidadesEncontradas;
}
public int getEntidadesProcessadas() {
return this.entidadesProcessadas;
}
public void setEntidadesProcessadas(int entidadesProcessadas) {
this.entidadesProcessadas = entidadesProcessadas;
}
public int getEntidadesFalhadas() {
return this.entidadesFalhadas;
}
public void setEntidadesFalhadas(int entidadesFalhadas) {
this.entidadesFalhadas = entidadesFalhadas;
}
public int getEntidadesComRespostas() {
return this.entidadesComRespostas;
}
public void setEntidadesComRespostas(int entidadesComRespostas) {
this.entidadesComRespostas = entidadesComRespostas;
}
public int getEntidadesSemRespostas() {
return this.entidadesSemRespostas;
}
public void setEntidadesSemRespostas(int entidadesSemRespostas) {
this.entidadesSemRespostas = entidadesSemRespostas;
}
public int getEntidadesSemUnidadesAfetas() {
return this.entidadesSemUnidadesAfetas;
}
public void setEntidadesSemUnidadesAfetas(int entidadesSemUnidadesAfetas) {
this.entidadesSemUnidadesAfetas = entidadesSemUnidadesAfetas;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 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 30/Dez/2016 18:00:19 by Hibernate Tools 3.2.0.b9
// Generated 31/Dez/2016 12:41:13 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;