Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1582 → Rev 1608

/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.
 
1961,6 → 1969,9
surveys=Questionários
surveys.reports=Relatórios de Questionários
surveys.reports.admin=Administração de Relatório
surveys.reports.pedagogico=Relatórios dos Inquéritos Pedagógicos aos Estudante
surveys.reports.pedagogico.curso=Relatórios de Curso Públicos
surveys.reports.pedagogico.docente=Relatórios de Docentes
survey.newEdit.survey=Formulário do Questionário
survey.create.survey=Criar Questionário
survey.list.surveys=Listar Questionários
/branches/v3/impl/conf/WEB-INF/struts/tiles-pae-questionarios.xml
89,4 → 89,23
<put name="body" value="/user/questionarios/reports/adminReport.jsp"/>
</definition>
 
 
<definition name="page.pae.questionario.reports.pedagogico.estudante" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/user/questionarios/reports/topnavReportPedagogicoEstudante.jsp"/>
<put name="body" value="/user/questionarios/reports/showReportsPedagogicoEstudante.jsp"/>
</definition>
 
<definition name="page.pae.questionario.reports.pedagogico.estudante.curso" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/user/questionarios/reports/topnavReportPedagogicoEstudanteCurso.jsp"/>
<put name="body" value="/user/questionarios/reports/showReportsPedagogicoEstudanteCurso.jsp"/>
</definition>
 
<definition name="page.pae.questionario.reports.pedagogico.estudante.docente" extends="page.pae.separators.home">
<put name="separator" value="1" type="string"/>
<put name="topnav" value="/user/questionarios/reports/topnavReportPedagogicoEstudanteDocente.jsp"/>
<put name="body" value="/user/questionarios/reports/showReportsPedagogicoEstudanteDocente.jsp"/>
</definition>
 
</tiles-definitions>
/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/WEB-INF/struts/struts-pae-questionarios.xml
185,7 → 185,11
input="page.widget.json.fail.validations">
</action>
 
<action path="/user/reportsPedagogicoEstudante" forward="page.pae.questionario.reports.pedagogico.estudante"/>
<action path="/user/reportsPedagogicoEstudanteCurso" forward="page.pae.questionario.reports.pedagogico.estudante.curso"/>
<action path="/user/reportsPedagogicoEstudanteDocente" forward="page.pae.questionario.reports.pedagogico.estudante.docente"/>
 
 
<!--%%%%%%%%%%%%%%%% Reports Modulo %%%%%%%%%%%%%%%%%%%-->
 
 
/branches/v3/impl/conf/WEB-INF/tags/repositoryFile.tag
New file
0,0 → 1,109
<%@ tag import="jomm.dao.impl.AbstractDao" %>
<%@ tag import="pt.estgp.estgweb.filters.filters.ResourceAccessControl" %>
<%@ tag import="pt.estgp.estgweb.services.data.IRepositoryFile" %>
<%@ tag import="pt.estgp.estgweb.services.data.RepositoryService" %>
<%@ tag import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@tag description="Repository File Tag for Download" pageEncoding="UTF-8"%>
<%@attribute name="transactional" type="java.lang.Boolean" required="true" %>
<%@attribute name="repositoryStream" type="java.lang.String" required="false"%>
<%@attribute name="badge" type="java.lang.Boolean" required="false" %>
<%@attribute name="label" type="java.lang.String" required="false" %>
<%@attribute name="downloadIcon" type="java.lang.Boolean" required="false" %>
<%
if(repositoryStream != null && repositoryStream.length() > 0)
{
if(!transactional.booleanValue())
{
AbstractDao.getCurrentSession().beginTransaction();
}
boolean canAccess = ResourceAccessControl.canAccessResource(repositoryStream,request);
IRepositoryFile repositoryFile = new RepositoryService().load(repositoryStream, UserSessionProxy.loadUserSessionFromRequest(request));
String iconFile = "icon-file-text";
if(repositoryFile != null)
{
if(downloadIcon != null && downloadIcon)
{
iconFile = "glyphicon glyphicon-download-alt";
}else if(repositoryFile.getExtension().equals("pdf"))
{
iconFile = "icon icon-file-pdf icon-large";
}else if(repositoryFile.getExtension().equals("xls") || repositoryFile.getExtension().equals("xlsx") || repositoryFile.getExtension().equals("csv"))
{
iconFile = "icon icon-file-excel icon-large";
}else if(repositoryFile.getExtension().equals("doc") || repositoryFile.getExtension().equals("docx"))
{
iconFile = "icon icon-file-word icon-large";
}else if(repositoryFile.getExtension().equals("zip") || repositoryFile.getExtension().equals("tgz") || repositoryFile.getExtension().equals("gz")
|| repositoryFile.getExtension().equals("rar") || repositoryFile.getExtension().equals("7z") || repositoryFile.getExtension().equals("7zip"))
{
iconFile = "icon icon-file-zip icon-large";
}
}
%>
 
 
 
<%
if(badge != null && badge)
{
if(canAccess)
{
if(label != null)
{
%>
${label}
<%
}
%>
 
<span class="badge icon">
<a href="javascript:invoqueDataVersionForm(${repositoryStream})"><span class="icon icon-history icon-large"></span></a>
</span>
<span class="badge icon">
<a href="<%=request.getContextPath()%>/repositoryStream/${repositoryStream}"><span class="<%=iconFile%>"></span></a>
</span>
<%
}
else
{
%>
<!--
<span class="icon icon-history icon-large"></span>
<span class="icon <%=iconFile%> icon-large"></span>-->
<%
}
}
else
{
if(canAccess)
{
 
%>
<div style="display: inline-block">
<%
if(label != null)
{
%>
<label>${label}</label>
<%
}
%>
<a class="btn btn-small btn-default" href="<%=request.getContextPath()%>/repositoryStream/${repositoryStream}"><span class="<%=iconFile%>"></span></a>
<a class="btn btn-small btn-default" href="javascript:invoqueDataVersionForm(${repositoryStream})"><span class="icon icon-history icon-large"></span></a>
</div>
<%
}
else
{
%>
<!--<span class="icon <%=iconFile%> icon-large"></span>-->
<%
}
}
 
if(!transactional.booleanValue())
{
AbstractDao.getCurrentSession().getTransaction().commit();
}
}
%>
/branches/v3/impl/conf/WEB-INF/tags/schedulleTaskProgress.tag
New file
0,0 → 1,68
<%@ tag import="jomm.utils.MessageResources" %>
<%@ tag import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ tag import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ tag import="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" %>
<%@ tag import="jomm.dao.impl.AbstractDao" %>
<%@tag description="Body Tag Page template" pageEncoding="UTF-8"%>
<%@attribute name="taskId" type="java.lang.Long" required="false" %> <!-- Task ID to get the JOB from database -->
<%@attribute name="transactional" type="java.lang.Boolean" required="true" %> <!-- Define if tag should open database transaction -->
<%@attribute name="job" type="pt.estgp.estgweb.domain.JobServiceTaskImpl" required="false"%> <!-- If job defined TaskId is not used -->
<%@attribute name="targetUrlWithOutContextPath" type="java.lang.String" required="true" %> <!-- Task ID to get the JOB from database -->
<%@attribute name="logSizeXs" type="java.lang.Boolean" required="false" %> <!-- Task Log Size -->
 
<div class="col-md-12">
<%
 
if(!transactional.booleanValue())
{
AbstractDao.getCurrentSession().beginTransaction();
}
 
if(logSizeXs == null)
logSizeXs = Boolean.FALSE;
 
if(taskId != null)
{
job = taskId.longValue() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(taskId) :
null;
}
else
{
//do nothing job is already loaded
}
 
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
schedulleTasksForm.setJobServiceTask(job);
schedulleTasksForm.setId(new Long(job.getId()));
request.setAttribute("SchedulleTasksForm",schedulleTasksForm);
if(job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FAILED ||
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR ||
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FINISHED_ERRORS )
{
%>
<div class="alert alert-danger"><%=MessageResources.getInstance(request).getMessage("job.status."+job.getStatus())%>, Consulte o Log</div>
<%
}
request.setAttribute("logSize",(logSizeXs.booleanValue() ? "task-log-xs" : ""));
%>
<div class="task-log ${logSize}" data-href="<%=request.getContextPath()%>${targetUrlWithOutContextPath}">
<jsp:include page="/admin/configuration/taskLog.jsp"/>
</div>
<%
}
else
{
%>
<div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
<%
}
 
if(!transactional.booleanValue())
{
AbstractDao.getCurrentSession().getTransaction().commit();
}
%>
</div>
/branches/v3/impl/conf/WEB-INF/tags/reports/progressPercent.tag
New file
0,0 → 1,31
<%@ tag import="pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.ChartBuilderUtil" %>
<%@ tag import="org.hibernate.type.DoubleType" %>
<%@ tag import="pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.DataTable" %>
<%@tag description="Progress Report Legenda Tag" pageEncoding="UTF-8"%>
<%@attribute name="parcel" type="java.lang.String" required="true" %>
<%@attribute name="total" type="java.lang.String" required="true" %>
<%@attribute name="isUserType" type="java.lang.Boolean" required="false" %>
<%@attribute name="isFilesType" type="java.lang.Boolean" required="false" %>
 
<%-- THIS TAG FULL FILL THE ATTRIBUTE percentageColor in Request for out use --%>
<%
int percentagem = (int) (100.0*(((double)Integer.parseInt(parcel))/((double)Integer.parseInt(total))));
String percentageColor = "danger";
if(percentagem < 20)
percentageColor = "danger";
else if(percentagem < 40)
percentageColor = "warning";
else if(percentagem < 60)
percentageColor = "info";
else
percentageColor = "success";
request.setAttribute("percentageColor",percentageColor);
%>
<div class="progress">
<div class="progress-bar progress-bar-<%=percentageColor%>" role="progressbar" aria-valuenow="0"
aria-valuemin="0" aria-valuemax="100" style="width:<%=percentagem%>%">
<%=percentagem%>%
<% if(isUserType != null && isUserType){%><span class="icon icon-users"> </span><%}%>
<% if(isFilesType != null && isFilesType){%><span class="icon icon-files-empty"> </span><%}%>
</div>
</div>
/branches/v3/impl/conf/WEB-INF/tags/reports/reportEstudanteAnoDegrees.tag
New file
0,0 → 1,13
<%@tag description="Degrees Report Tag" pageEncoding="UTF-8"%>
<%@attribute name="report" type="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAnoImpl" required="true" %>
<%@attribute name="fontSize" type="java.lang.String" required="true" %>
<table class="periodosTable" cellspancing="0" cellspading="0">
<tr>
<td style="font-size: ${fontSize}" class="isGrau${report.licenciaturas}">Licenciaturas</td>
<td style="font-size: ${fontSize}" class="isGrau${report.mestrados}">Mestrados</td>
</tr>
<tr>
<td style="font-size: ${fontSize}" class="isGrau${report.tesps}">CTesP</td>
<td style="font-size: ${fontSize}" class="isGrau${report.cets}">CET</td>
</tr>
</table>
/branches/v3/impl/conf/WEB-INF/tags/reports/reportEstudanteAnoLegenda.tag
New file
0,0 → 1,11
<%@tag description="Periodos Report Legenda Tag" pageEncoding="UTF-8"%>
<table>
<tr>
<td class="isAnuaistrue" style="width: 100px"></td>
<td style="padding-left: 5px">Tipo/Período considerado</td>
</tr>
<tr>
<td class="isAnuaisfalse" style="width: 100px;padding: 2px"></td>
<td style="padding-left: 5px">Tipo/Período NÃO considerado</td>
</tr>
</table>
/branches/v3/impl/conf/WEB-INF/tags/reports/reportGroupPanel.tag
New file
0,0 → 1,82
<%@ tag import="pt.estgp.estgweb.domain.QuestionarioReportFileGroup" %>
<%@tag description="Report Group Panel Tag" pageEncoding="UTF-8"%>
<%@ 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" %>
<%@taglib prefix="reports" tagdir="/WEB-INF/tags/reports" %>
<%@taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %>
<%@attribute name="reportGroup" type="pt.estgp.estgweb.domain.QuestionarioReportFileGroup" required="true" %>
<%@attribute name="title" type="java.lang.String" required="true" %>
<jsp:useBean id="reportGroup" type="pt.estgp.estgweb.domain.QuestionarioReportFileGroup" scope="request"/>
 
 
<div class="panel panel-primary">
<div class="panel-heading">
${title}
<span class="badge"> Número de Controlo ${reportGroup.id} </span>
</div>
<div class="panel-body">
<%
 
if(!reportGroup.isActive())
{
%>
<div class="col-md-12">
<label class="alert alert-danger">Este report está de momento inactivo, não é visivel aos utilizadores</label>
</div>
<%
}
%>
<baco:hasRole role="admin,super,questionarios.admin">
<div class="col-md-12">
<reports:updateReportGroupForm reportGroup="${reportGroup}"/>
</div>
</baco:hasRole>
<baco:hasNotRole role="admin,super,questionarios.admin">
<div class="col-md-6"><h2>${reportGroup.title}</h2></div>
</baco:hasNotRole>
<div class="col-md-12">
<label class="badge">Criado a <%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(reportGroup.getSaveDate())%></label>
<baco:hasRole role="admin,super,questionarios.admin">
<label class="badge">Actualizado a <%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDateWithMinutesAndSeconds(reportGroup.getUpdateDate())%></label>
</baco:hasRole>
</div>
<div class="col-md-12">
<div class="pull-right">
<bacoTags:repositoryFile downloadIcon="true" badge="false" label="Arquivo com todos os relatórios comprimidos" transactional="true" repositoryStream="${reportGroup.repositoryStreamZipFile}"/>
</div>
</div>
 
 
</div>
</div>
 
 
<div class="panel panel-default">
<div class="panel-heading">
Períodos e Tipos de Cursos considerados neste Relatório
</div>
<div class="panel-body">
 
<div class="col-md-6">
<label>Períodos</label>
<reports:reportEstudanteAnoPeriodos report="${reportGroup}" fontSize="12pt"/>
</div>
<div class="col-md-6">
<label>Tipos de Curso</label>
<reports:reportEstudanteAnoDegrees report="${reportGroup}" fontSize="12pt"/>
</div>
</div>
<div class="panel-body">
<div class="col-md-6">
<reports:reportEstudanteAnoLegenda/>
</div>
<div class="col-md-6">
 
</div>
</div>
</div>
/branches/v3/impl/conf/WEB-INF/tags/reports/reportEstudanteAnoPeriodos.tag
New file
0,0 → 1,18
<%@tag description="Periodos Report Tag" pageEncoding="UTF-8"%>
<%@attribute name="report" type="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAnoImpl" required="true" %>
<%@attribute name="fontSize" type="java.lang.String" required="true" %>
<table class="periodosTable" cellspancing="0" cellspading="0">
<tr>
<td colspan="4" style="font-size: ${fontSize}" class="isAnuais${report.anuais}">Anuais</td>
</tr>
<tr>
<td colspan="2" style="font-size: ${fontSize}" class="isSemestre${report.semestre1}">Semestre 1</td>
<td colspan="2" style="font-size: ${fontSize}" class="isSemestre${report.semestre2}">Semestre 2</td>
</tr>
<tr>
<td style="font-size: ${fontSize}" class="isTrimestre${report.trimestre1}">T1</td>
<td style="font-size: ${fontSize}" class="isTrimestre${report.trimestre2}">T2</td>
<td style="font-size: ${fontSize}" class="isTrimestre${report.trimestre3}">T3</td>
<td style="font-size: ${fontSize}" class="isTrimestre${report.trimestre4}">T4</td>
</tr>
</table>
/branches/v3/impl/conf/WEB-INF/tags/reports/reportCheckboxVisibiltyReportFile.tag
New file
0,0 → 1,41
<%@tag description="Report Checkbox Visibility Tag" pageEncoding="UTF-8"%>
<%@ 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" %>
<%@attribute name="reportFile" type="pt.estgp.estgweb.domain.QuestionarioReportFile" required="true" %>
<%@attribute name="containerRefSelect" type="java.lang.String" required="true" %>
<script>
$(document).ready(function(){
$('#reportFileActive${reportFile.id}').attr("data-toogle","toggle");
$('#reportFileActive${reportFile.id}').bootstrapToggle({
on: 'Visivel',
off: 'Inactivo'
});
});
function updateReport${reportFile.id}()
{
$("#${containerRefSelect}").css({'background-color':'yellow'});
widgetSimpleCallWithActionParameters("<%=request.getContextPath()%>/user/questionariosReportsWidgetPae.do",
"updateReport",
{
"questionarioReportFile.id" : ${reportFile.id},
"questionarioReportFile.active" : $('#reportFileActive${reportFile.id}').prop("checked")
},
$(".web-messages-table"),
function()
{
$('#${containerRefSelect}').css({'background-color':'#00ff00'});
},
function()
{
$('#${containerRefSelect}').css({'background-color':'red'});
}
);
}
 
</script>
<input type="checkbox" id="reportFileActive${reportFile.id}" <%=reportFile.isActive() ? " checked='true' " : ""%> onchange="updateReport${reportFile.id}()"/>
/branches/v3/impl/conf/WEB-INF/tags/reports/updateReportGroupForm.tag
New file
0,0 → 1,56
<%@tag description="Periodos Report Group Form Tag" pageEncoding="UTF-8"%>
<%@ 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" %>
<%@attribute name="reportGroup" type="pt.estgp.estgweb.domain.QuestionarioReportFileGroup" required="true" %>
 
 
<html:form styleClass="form-horizontal" action="/user/questionariosReportsWidgetPae">
<div class="web-messages"></div><!--For Widgets Use-->
<jsp:useBean id="QuestionarioReportGroupForm" type="pt.estgp.estgweb.web.form.questionarios.QuestionarioReportGroupForm" scope="request"/>
<%
QuestionarioReportGroupForm.setQuestionarioReportFileGroup(reportGroup);
%>
<html:hidden property="questionarioReportFileGroup.id"/>
<div class="form-group">
<label class="col-md-2 control-label">Titulo do Grupo de Relatórios</label>
<div class="col-md-10">
<html:text styleClass="form-control" property="questionarioReportFileGroup.title"/>
</div>
</div>
<script>
$(document).ready(function(){
$(".checkReportGroupActivo").attr("data-toogle","toggle");
$('.checkReportGroupActivo').bootstrapToggle({
on: 'Visivel',
off: 'Inactivo'
});
});
 
</script>
<div class="form-group">
<label class="col-md-2 control-label">Visibilidade</label>
<div class="col-md-10">
<html:checkbox styleClass="checkReportGroupActivo" property="questionarioReportFileGroup.active"/>
</div>
</div>
<script>
function updateReportGroup(form)
{
widgetSimpleCall("updateReportGroup",form,function()
{
//nothing to do message will be displayed in web-messages
});
}
</script>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="button" class="btn btn-success" onclick="updateReportGroup(form)">Actualizar</button>
</div>
</div>
</html:form>
/branches/v3/impl/conf/app.properties
454,6 → 454,19
course.H=Doutoramento
course.Z=Desconhecido
 
course.degree.desc.B=Bacharelato
course.degree.desc.L=Licenciatura
course.degree.desc.M=Mestrado
course.degree.desc.P=PosGraduação
course.degree.desc.E=Curso Especialização Tecnológica (CET)
course.degree.desc.C=Acção de Formação de Curta Duração
course.degree.desc.A=Formação Avançada
course.degree.desc.O=Outra Formação
course.degree.desc.T=Cursos Técnico Superior Profissional (CTeSP)
course.degree.desc.D=Diploma de Estudos Superiores Especializados
course.degree.desc.H=Doutoramento
course.degree.desc.Z=Desconhecido
 
course.B.en=Bacharelatos
course.L.en=Graduation
course.M.en=Master
831,6 → 844,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>
3179,7 → 3201,20
</filterChains>
</service>
 
<service>
<name>UpdateReportFile</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
<description>Salvar Grupo de Reports Tipo</description>
<isTransactional>true</isTransactional>
<defaultMethod>updateReportFile</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AdminsOrQuestionarioAdmins"/>
</filterChains>
</service>
 
 
<service>
<name>GenerateReportGroup</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
/branches/v3/impl/src/java/jomm/utils/PdfUtils.java
101,6 → 101,7
// Setup output
OutputStream out = new BufferedOutputStream(pdfFile);
 
//limpa a cache de graficos para nao gerar igual para o mesmo nome de ficheiro
fopFactory.getImageManager().getCache().clearCache();
// Construct fop with desired output format
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
/branches/v3/impl/src/java/jomm/dao/impl/AbstractDao.java
592,8 → 592,8
{
if(obj instanceof DomainObject)
{
DomainObject o = (DomainObject) obj;
o.setSaveDate(new Date());
DomainObject o = (DomainObject) obj;
o.setSaveDate(new Date());
}
return (Serializable) getCurrentSession().save(obj);
}
/branches/v3/impl/src/java/jomm/jaxb/XMLGregorianCalendarUtil.java
File deleted
/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/QuestionariosReport.java
File deleted
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/QuestionariosAlunosReport.java
File deleted
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/DocenteReportGenerator.java
File deleted
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/CursoPublicReport.java
File deleted
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/EntityEvaluated.java
File deleted
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/docenteReport.xml
File deleted
\ No newline at end of file
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/DocenteReport.java
File deleted
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/OlapGenerationProcessor.java
108,7 → 108,7
{
//+++++++ todo CRIANDO OLAP Questionario
olapQuestionario = createQuestionarioOlap(q);
olapHistoryDimension = new OlapHistoryDimension();
olapHistoryDimension = new OlapHistoryDimensionImpl();
olapHistoryDimension.setQuestionario(q);
//+++++++ todo CRIANDO OLAP History
DaoFactory.getOlapHistoryDimensionDaoImpl().save(olapHistoryDimension);
352,7 → 352,7
 
private void createOlapStarFactCurso(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso,int unidadesCurso, int tipologiasCurso, int respostasCandidatasCurso, int respostasObtidasCurso)
{
OlapStarFactQuestionarioCurso factQuestionarioCurso = new OlapStarFactQuestionarioCurso();
OlapStarFactQuestionarioCurso factQuestionarioCurso = new OlapStarFactQuestionarioCursoImpl();
factQuestionarioCurso.setUnidades(unidadesCurso);
factQuestionarioCurso.setTipologias(tipologiasCurso);
factQuestionarioCurso.setRespostasCandidatas(respostasCandidatasCurso);
366,7 → 366,7
 
private void createOlapStarFactUnidade(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade,int tipologiasUnidade, int respostasCandidatasUnidade, int respostasObtidasUnidade)
{
OlapStarFactQuestionarioUnidade factQuestionarioUnidade = new OlapStarFactQuestionarioUnidade();
OlapStarFactQuestionarioUnidade factQuestionarioUnidade = new OlapStarFactQuestionarioUnidadeImpl();
factQuestionarioUnidade.setTipologias(tipologiasUnidade);
factQuestionarioUnidade.setRespostasCandidatas(respostasCandidatasUnidade);
factQuestionarioUnidade.setRespostasObtidas(respostasObtidasUnidade);
379,7 → 379,7
}
 
private void createOlapStarFactTipologia(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, int respostasCandidatasTipologia, int respostasObtidasTipologia, OlapEntityQuestionarioTipologia olapQuestionarioTipologia) {
OlapStarFactQuestionarioTipologia factQuestionarioTipologia = new OlapStarFactQuestionarioTipologia();
OlapStarFactQuestionarioTipologia factQuestionarioTipologia = new OlapStarFactQuestionarioTipologiaImpl();
factQuestionarioTipologia.setRespostasCandidatas(respostasCandidatasTipologia);
factQuestionarioTipologia.setRespostasObtidas(respostasObtidasTipologia);
factQuestionarioTipologia.setQuestionario(q);
392,7 → 392,7
}
 
private void createOlapQuestionarioAnswer(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, OlapEntityQuestionarioTipologia olapQuestionarioTipologia, OlapEntityQuestionarioUser olapQuestionarioUser, List<OlapStarFactQuestionarioAnswer> factRespostas, OlapEntityQuestionarioPergunta olapPergunta, Long timeTakenRN, Long timeEventRN, String respostaN) {
OlapStarFactQuestionarioAnswer factQuestionarioAnswer = new OlapStarFactQuestionarioAnswer();
OlapStarFactQuestionarioAnswer factQuestionarioAnswer = new OlapStarFactQuestionarioAnswerImpl();
factQuestionarioAnswer.setQuestionario(q);
factQuestionarioAnswer.setOlapTimeLine(olapHistoryDimension);
factQuestionarioAnswer.setOlapQuestionario(olapQuestionario);
410,7 → 410,7
}
 
private void createOlapQuestionarioAnswerEsforco(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, OlapEntityQuestionarioTipologia olapQuestionarioTipologia, OlapEntityQuestionarioUser olapQuestionarioUser, List<OlapStarFactQuestionarioAnswerEsforco> factRespostasEsforco, OlapEntityQuestionarioPerguntaEsforco olapPergunta, Long timeTakenRN, Long timeEventRN, String respostaN) {
OlapStarFactQuestionarioAnswerEsforco factQuestionarioAnswerEsforco = new OlapStarFactQuestionarioAnswerEsforco();
OlapStarFactQuestionarioAnswerEsforco factQuestionarioAnswerEsforco = new OlapStarFactQuestionarioAnswerEsforcoImpl();
factQuestionarioAnswerEsforco.setQuestionario(q);
factQuestionarioAnswerEsforco.setOlapTimeLine(olapHistoryDimension);
factQuestionarioAnswerEsforco.setOlapQuestionario(olapQuestionario);
430,7 → 430,7
private OlapStarFactQuestionario createOlapStarFactQuestionario(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, OlapEntityQuestionarioTipologia olapQuestionarioTipologia, QuestionarioRespostaRequisitada respostaRequisitada, OlapEntityQuestionarioUser olapQuestionarioUser) {
QuestionarioResposta resposta = respostaRequisitada.getResposta();
 
OlapStarFactQuestionario factQuestionario = new OlapStarFactQuestionario();
OlapStarFactQuestionario factQuestionario = new OlapStarFactQuestionarioImpl();
factQuestionario.setQuestionario(q);
factQuestionario.setOlapTimeLine(olapHistoryDimension);
factQuestionario.setOlapQuestionario(olapQuestionario);
450,7 → 450,7
}
 
private OlapEntityQuestionarioUser createOlapQuestionarioUser(QuestionarioImpl q, QuestionarioPedagogicoAlunoRequisitado alunoRequisitado) {
OlapEntityQuestionarioUser questionarioUser = new OlapEntityQuestionarioUser();
OlapEntityQuestionarioUser questionarioUser = new OlapEntityQuestionarioUserImpl();
questionarioUser.setQuestionario(q);
questionarioUser.setSigesCode("" + alunoRequisitado.getAluno().getSigesCode());
questionarioUser.setBirthDate(alunoRequisitado.getAluno().getBirthDate());
518,7 → 518,7
}
 
private OlapEntityQuestionarioTipologia createOlapQuestionarioTipologia(QuestionarioImpl q, QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada) {
OlapEntityQuestionarioTipologia questionarioTipologia = new OlapEntityQuestionarioTipologia();
OlapEntityQuestionarioTipologia questionarioTipologia = new OlapEntityQuestionarioTipologiaImpl();
questionarioTipologia.setQuestionario(q);
 
questionarioTipologia.setCodigoTipologia(tipologiaRequisitada.getCdTipologia());
537,7 → 537,7
 
private OlapEntityQuestionarioUnidade createOlapQuestionarioUnidade(DefaultLogMessages logMessages, QuestionarioImpl q, QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta, CourseUnitImpl cuImpl) {
String msg;
OlapEntityQuestionarioUnidade olapEntityQuestionarioUnidade = new OlapEntityQuestionarioUnidade();
OlapEntityQuestionarioUnidade olapEntityQuestionarioUnidade = new OlapEntityQuestionarioUnidadeImpl();
 
olapEntityQuestionarioUnidade.setQuestionario(q);
olapEntityQuestionarioUnidade.setNome(unidadeCurricularAfeta.getNome());
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;
568,7 → 582,7
private OlapEntityQuestionarioCurso createQuestionarioCursoOlap(DefaultLogMessages logMessages, QuestionarioImpl q, QuestionarioPedagogicoCursoAfeto cu) {
OlapEntityQuestionarioCurso questionarioCurso;
String msg;
questionarioCurso = new OlapEntityQuestionarioCurso();
questionarioCurso = new OlapEntityQuestionarioCursoImpl();
questionarioCurso.setQuestionario(q);
questionarioCurso.setCodigoCurso(cu.getCodigoCurso());
questionarioCurso.setDegree(cu.getCourse().getDegree());
598,7 → 612,7
}
private OlapEntityQuestionario createQuestionarioOlap(QuestionarioImpl q)
{
OlapEntityQuestionario olapEntityQuestionario = new OlapEntityQuestionario();
OlapEntityQuestionario olapEntityQuestionario = new OlapEntityQuestionarioImpl();
DaoFactory.getOlapEntityQuestionarioDaoImpl().save(olapEntityQuestionario);
return updateOlapQuestionario(olapEntityQuestionario, q);
}
649,7 → 663,7
 
for(int i = 1; i <= 40;i++)
{
OlapEntityQuestionarioPergunta pergunta = new OlapEntityQuestionarioPergunta();
OlapEntityQuestionarioPergunta pergunta = new OlapEntityQuestionarioPerguntaImpl();
pergunta.setNumero("" + i);
pergunta.setPergunta(q.getPergunta("" + i));
if(pergunta.getPergunta() == null || pergunta.getPergunta().trim().length() == 0)
696,7 → 710,7
 
for(int i = 1; i <= 10;i++)
{
OlapEntityQuestionarioPerguntaEsforco perguntaEsforco = new OlapEntityQuestionarioPerguntaEsforco();
OlapEntityQuestionarioPerguntaEsforco perguntaEsforco = new OlapEntityQuestionarioPerguntaEsforcoImpl();
perguntaEsforco.setNumero("" + i);
perguntaEsforco.setPergunta(q.getPerguntaE("" + i));
if(perguntaEsforco.getPergunta() == null || perguntaEsforco.getPergunta().trim().length() == 0)
/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/utils/ZipFolderForReportDocente.java
New file
0,0 → 1,41
package pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils;
 
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupDocentesAnoImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.DocenteReportGenerator;
 
import java.io.File;
import java.io.IOException;
 
/**
* Created by jorgemachado on 03/01/17.
*/
public class ZipFolderForReportDocente extends DocenteReportGenerator
{
public static void main(String[] args) throws IOException
{
new ZipFolderForReportDocente().zipAdHoc();
}
 
public void zipAdHoc() throws IOException
{
long questionarioReportId = 2;
AbstractDao.getCurrentSession().beginTransaction();
QuestionarioReportFileGroupDocentesAnoImpl reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(questionarioReportId);
reportGroup.setActive(false);
File reportGroupFolder = new File(Globals.TMP_DIR + File.separator + "reportGroup" + reportGroup.getId());
 
super.zipFolder(
reportGroup,
reportGroupFolder,
"Relatórios de Docentes ZIPADOS ano:201516 periodos:[A, S2, T3, T4] degrees:[L, M, T, E]",
ResourceAccessControlEnum.questionariosReportBoardAndPedagogico);
 
 
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/utils/ChartBuilderUtil.java
106,7 → 106,7
JFreeChart chart = ChartFactory.createBarChart(pergunta, "", "Respostas", categoryDataset, PlotOrientation.VERTICAL, true, false, false);
chart.setBorderVisible(false);
 
chart.setTitle(new TextTitle(pergunta,new Font("Helvetica",Font.BOLD, 40)));
chart.setTitle(new TextTitle(pergunta,new Font("Helvetica",Font.BOLD, 50)));
 
java.util.List<Title> subTitles = new ArrayList<Title>();
for(String subtitle: subtitles)
171,17 → 171,18
 
 
(((CategoryPlot) chart.getPlot()).getRangeAxis()).setTickLabelFont(new Font(
"Helvetica", Font.PLAIN, 40));
"Helvetica", Font.PLAIN, 60));
(((CategoryPlot) chart.getPlot()).getDomainAxis()).setTickLabelFont(new Font(
"Helvetica", Font.PLAIN, 40));
((BarRenderer)((CategoryPlot) chart.getPlot()).getRenderer()).setBaseLegendTextFont(new Font(
"Helvetica", Font.PLAIN, 40));
"Helvetica", Font.PLAIN, 60));
((CategoryPlot) chart.getPlot()).getRenderer().setBaseItemLabelFont(new Font(
"Helvetica", Font.PLAIN, 43));
 
((BarRenderer)((CategoryPlot) chart.getPlot()).getRenderer()).setBaseLegendTextFont(new Font(
"Helvetica", Font.PLAIN, 40));
"Helvetica", Font.PLAIN, 60));
 
 
//barChartPlot.getRenderer().setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
 
 
196,11 → 197,16
 
//((BarRenderer)barChartPlot.getRenderer()).setMaximumBarWidth(1.0);
((BarRenderer)barChartPlot.getRenderer()).setItemMargin(0);
((BarRenderer)barChartPlot.getRenderer()).setMaximumBarWidth(1);
//((BarRenderer)barChartPlot.getRenderer()).setMaximumBarWidth(1);
((BarRenderer)barChartPlot.getRenderer()).setMinimumBarLength(10);
//System.out.println(((BarRenderer)barChartPlot.getRenderer()).getMaximumBarWidth());
//System.out.println(((BarRenderer)barChartPlot.getRenderer()).getMinimumBarLength());
 
//
((BarRenderer)barChartPlot.getRenderer()).setLegendShape(0,new Rectangle(20,20));
((BarRenderer)barChartPlot.getRenderer()).setLegendShape(1,new Rectangle(20,20));
((BarRenderer)barChartPlot.getRenderer()).setLegendShape(2,new Rectangle(20,20));
((BarRenderer)barChartPlot.getRenderer()).setLegendShape(3,new Rectangle(20,20));
((BarRenderer)barChartPlot.getRenderer()).setLegendShape(4,new Rectangle(20,20));
//NOVO
 
NumberAxis rangeAxis = (NumberAxis) barChartPlot.getRangeAxis();
208,10 → 214,21
rangeAxis.setRange(0,maxValue);
org.jfree.chart.axis.CategoryAxis categoryAxis = barChartPlot.getDomainAxis();
categoryAxis.setVisible(false);
rangeAxis.setVisible(false);
rangeAxis.setNumberFormatOverride(df0);
rangeAxis.setLabelFont(new Font(
"Helvetica", Font.PLAIN, 40));
 
 
 
 
//((BarRenderer)barChartPlot.getRenderer()).setMaximumBarWidth(1 );
 
//categoryAxis.setTickLabelsVisible(true);
 
 
 
 
((BarRenderer)barChartPlot.getRenderer()).setShadowVisible(false);
 
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
592,6 → 609,7
 
static DecimalFormat df2 = new DecimalFormat("#.##");
static DecimalFormat df1 = new DecimalFormat("#.#");
static DecimalFormat df0 = new DecimalFormat("#");
public static double getPercentagem(int parcela, int total)
{
if(total == 0)
876,6 → 894,8
{//Tirando um numero onde esta 1 e metendo 1 estamos a aprocimar o amarelo mais depressa
return (int)( 1 + (255.0-1.0)*(-(((percentageDecimal -0.5)*(percentageDecimal -0.5))*4.0)+1.0));
}
 
 
public static String createChartRingOneDimension(double value, double max,boolean colorsPercent,boolean degrade,boolean putPercentInCenter, String pathTemplate) throws IOException {
 
DefaultPieDataset data = new DefaultPieDataset();
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/utils/CursoStats.java
16,10 → 16,13
String codigoInstituicao;
String codigoNacionalInstituicao;
String abreviaturaInstituicao;
String degree;
String degreeDescricao;
 
 
 
 
 
int inscritos;
int responderam;
int questionarios;
39,6 → 42,26
public ArrayList<UnidadeStats> unidadesStats = new ArrayList<UnidadeStats>();
 
 
 
public String getDegree() {
return degree;
}
 
public void setDegree(String degree) {
this.degree = degree;
}
 
public String getDegreeDescricao() {
return degreeDescricao;
}
 
public void setDegreeDescricao(String degreeDescricao) {
this.degreeDescricao = degreeDescricao;
}
 
 
 
 
public int getUnidadesDoCurso() {
return unidadesDoCurso;
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/DocenteReportGenerator.java
7,19 → 7,19
import org.dom4j.DocumentException;
import org.hibernate.Query;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswer;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
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.PedagogicoAlunosProcessor;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.*;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.DocenteReport;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.EntityEvaluated;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.QuestionariosAlunosReport;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.*;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.*;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.DatesUtils;
52,9 → 52,9
 
}
 
public DocenteReportGenerator() {
public DocenteReportGenerator()
{
super(null, null, null);
 
}
 
 
68,7 → 68,7
//String[] periodos = new String[]{"S2","T3","T4","A"};
String[] periodos = new String[]{"S1"};
String[] degrees = new String[]{"L","M","T","E"};
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode);
new DocenteReportGenerator(anoLectivo,periodos,degrees).processTeacher(teacherCode,new File(Globals.TMP_DIR));
 
//teacherCode = "20122";
 
84,17 → 84,30
 
//teacherCode = "20114";
//processTeacher(teacherCode,anoLectivo,periodos,degrees);
 
}
public void processTeacher(String teacherCode) throws IOException, DocumentException, TransformerException, FOPException
 
/**
* return tmpPath with report
* @param teacherCode
* @return
* @throws IOException
* @throws DocumentException
* @throws TransformerException
* @throws FOPException
*/
public DocenteReport processTeacher(String teacherCode,File reportDocenteFolder) throws IOException, DocumentException, TransformerException, FOPException
{
 
 
if(anoLectivo == null || periodos == null || degrees == null)
throw new RuntimeException("O ano letivo, os periodos e os graus não estão definidos");
//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
DocenteReport docenteReport = getDocenteReport(teacherCode);
if(docenteReport == null)
{
serviceLogInfo(" Docente " + teacherCode + " nao tem respostas nestas condições ");
return;
String msg = " Docente " + teacherCode + " nao tem respostas nestas condições ";
logger.warn(msg);
serviceLogWarn(msg);
return null;
}
 
ChartBuilderUtil.createChartTiposAlunos(docenteReport,"tiposAlunosTmp");
106,13 → 119,18
//docenteReport.getRespostasCharts().add(respostasChart);
 
 
String path = generatePdfReport(docenteReport);
 
String tmpPath = generatePdfReport(docenteReport,reportDocenteFolder);
docenteReport.setPathGeneratedPdfTemp(tmpPath);
return docenteReport;
}
 
private String generatePdfReport(DocenteReport docenteReport) throws DocumentException, TransformerException, IOException, FOPException
private String generatePdfReport(DocenteReport docenteReport,File reportDocenteFolder) throws DocumentException, TransformerException, IOException, FOPException
{
String path = Globals.TMP_DIR + File.separator + "reportDocente" + docenteReport.getNumeroDocente() + ".pdf";
if(!reportDocenteFolder.exists())
{
reportDocenteFolder.mkdirs();
}
String path = reportDocenteFolder.getAbsolutePath() + File.separator + "reportDocente" + docenteReport.getNumeroDocente() + ".pdf";
 
FileOutputStream out = new FileOutputStream(path);
Map<String,Object> params = new HashMap<String,Object>();
138,7 → 156,7
private DocenteReport getDocenteReport(String teacherCode)
{
 
AbstractDao.getCurrentSession().beginTransaction();
//AbstractDao.getCurrentSession().beginTransaction();
 
User u = DaoFactory.getUserDaoImpl().loadBySigesCode(Integer.parseInt(teacherCode));
 
150,21 → 168,25
docenteReport.setSemestres(ReportUtils.getFormatedSemestres(periodos));
docenteReport.setDegrees(ReportUtils.getFormatedDegrees(degrees));
 
AlunosQueryDao.countAlunosQueResponderamAoDocente(teacherCode, anoLectivo, docenteReport, periodos, degrees);
/*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);
 
175,19 → 197,6
docenteReport.setUnidadesNasEscolas((int) QueryDaoUtils.countUnidadesNasEscolas(codigosEscola, anoLectivo, periodos, degrees));
 
 
super.criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
anoLectivo,
docenteReport,
codigosCurso,
codigosEscola,
0,
docenteReport.getRespostasAgregadasGrupoDocente().getRespostasAgregadasChartTable(),
docenteReport.getRespostasAgregadasGrupoDocente(),
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,null,
periodos,degrees,true);
 
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
198,10 → 207,9
0,
docenteReport.getRespostasAgregadasGrupoDocente().getRespostasAgregadasChartTable(),
docenteReport.getRespostasAgregadasGrupoDocente(),
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS,null,
periodos,degrees,true);
PerguntasGrupoQueryDao.GRUPO_DOCENTE_CODE_PERGUNTAS, null,
periodos, degrees, true);
 
 
criarGraficosRespostasAgregadas(
new String[]{teacherCode},
EntityEvaluated.DOCENTE,
275,20 → 283,20
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();
 
AbstractDao.getCurrentSession().getTransaction().commit();
 
 
 
return docenteReport;
}
 
807,11 → 815,119
int docentesEncontrados = 0;
int docentesProcessados = 0;
int docentesFalhados = 0;
int docentesSemRespostas = 0;
int docentesSemUnidadesAfetas = 0;
int docentesComRespostas = 0;
 
QuestionarioReportFileGroupDocentesAnoImpl reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(questionarioReportId);
reportGroup.setActive(false);
File reportGroupFolder = new File(Globals.TMP_DIR + File.separator + "reportGroup" + reportGroup.getId());
 
anoLectivo = reportGroup.getImportYear();
periodos = reportGroup.getPeriodosArray();
degrees = reportGroup.getDegreesArray();
 
String msg = "Starting process for Report Docentes (" + questionarioReportId + "): " + reportGroup.getTitle();
serviceLogInfo(msg);
logger.info(msg);
 
 
List<String> teacherCodes = QuestionariosQueryDao.findTeachersSigesCodes(reportGroup.getImportYear(),periodos,degrees);
 
msg = "Vai processar " + teacherCodes.size() + " Docentes ";
serviceLogInfo(msg);
logger.info(msg);
 
//todo tirar isto
teacherCodes.add(0,"20083");
 
for(String sigesCode: teacherCodes)
{
if(sigesCode == null)
{
msg = "Found Teacher with siges code null, not known but has units in " + reportGroup.getImportYear();
serviceLogInfo(msg);
logger.info(msg);
continue;
}
docentesEncontrados++;
 
/** COMMIT OPERATION **/ //Tem mais um para contemplar o zip folder operation
setProgress((int)((((float)docentesEncontrados)/((float)teacherCodes.size()+1))*100.0f));
commitPartially();
reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(questionarioReportId);
/** COMMIT OPERATION **/
 
try{
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,reportGroupFolder);
 
 
 
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.setActive(true);
q.setInquiridos(docenteReport.getInquiridosTotal());
q.setInquiridosComResposta(docenteReport.getInquiridosComResposta());
q.setRespostasRequisitadas(docenteReport.getQuestionariosReqTotal());
q.setRespostas(docenteReport.getQuestionariosReqRespondidos());
q.setUnidades(docenteReport.getUnidadesRequisitadas());
q.setPercentagemInquiridos(docenteReport.getInquiridosComRespostaPercent());
q.setPercentagemRespostas(docenteReport.getQuestionariosReqRespondidosPercentagem());
 
//STATS
if(q.getInquiridos() == 0)
docentesSemUnidadesAfetas++;
else if(q.getRespostas() == 0)
docentesSemRespostas++;
else
docentesComRespostas++;
 
File tmpFile = new File(tmpPath);
sendPdfToRepository( q,
tmpFile,
"Relatório dos Resultados do Inquérito Pedagógico aos Alunos - Relatório de Docente Privado " + t.getName() + " (" + sigesCode + ") " + " periodos:" + Arrays.toString(periodos) + " degrees:" + Arrays.toString(degrees),
ResourceAccessControlEnum.questionariosReportDocente
);
 
//Final
docentesProcessados++;
}catch(Throwable e)
{
msg = "FAIL - Teacher with siges: " + sigesCode;
serviceLogError(msg,e);
logger.error(msg,e);
docentesFalhados++;
}
}
 
/** COMMIT OPERATION **/ //Tem mais um para contemplar o zip folder operation
setProgress((int)((((float)docentesEncontrados)/((float)teacherCodes.size()+1))*100.0f));
commitPartially();
reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(questionarioReportId);
/** COMMIT OPERATION **/
 
 
serviceLogInfo("######################################");
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("######################################");
819,11 → 935,39
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 Sem Unidades Afetas:" + docentesSemUnidadesAfetas);
 
reportGroup.setEntidadesEncontradas(docentesEncontrados);
reportGroup.setEntidadesProcessadas(docentesProcessados);
reportGroup.setEntidadesFalhadas(docentesFalhados);
reportGroup.setEntidadesComRespostas(docentesComRespostas);
reportGroup.setEntidadesSemRespostas(docentesSemRespostas);
reportGroup.setEntidadesSemUnidadesAfetas(docentesSemUnidadesAfetas);
 
 
 
commitPartially();
reportGroup = (QuestionarioReportFileGroupDocentesAnoImpl) DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(questionarioReportId);
 
logger.info("ziping files");
serviceLogInfo("ziping files");
logMessages.addMessage(new DefaultLogMessage("ziping files", LogMessageTypeEnum.INFO));
zipFolder(
reportGroup,
reportGroupFolder,
"Relatórios de Docente ZIPADOS " + " ano:" + anoLectivo + " periodos:" + Arrays.toString(periodos) + " degrees:" + Arrays.toString(degrees),
ResourceAccessControlEnum.questionariosReportBoardAndPedagogico);
 
setProgress(100);
commitPartially();
 
logger.info("terminating docente reports generation");
serviceLogInfo("terminating docente reports generation");
logMessages.addMessage(new DefaultLogMessage("report.docente.gen.terminating", LogMessageTypeEnum.INFO));
setProgress(100);
 
 
return logMessages;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/ReportAlunosGenerator.java
1,9 → 1,15
package pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors;
 
import jomm.dao.impl.AbstractDao;
import jomm.utils.FilesUtils;
import org.apache.log4j.Logger;
import org.hibernate.Query;
import pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswer;
import pt.estgp.estgweb.domain.QuestionarioReportFileAno;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupAno;
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.questionarios.PedagogicoAlunosProcessor;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.PerguntasGrupoQueryDao;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.QueryDaoUtils;
14,6 → 20,9
import pt.estgp.estgweb.utils.ConfigProperties;
 
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
385,4 → 394,74
0,5, tmpPathPrefix + "unidadesConjuntas",width,heightCategory);
return path;
}
 
public String generateBigDataCSV(String[] periodos,String[] degrees)
{
//ZipOutputStream()
//AbstractDao.getCurrentSession().
return null;
}
 
public void zipFolder(QuestionarioReportFileGroupAno q, File reportGroupFolder,String desc,ResourceAccessControlEnum access) throws IOException
{
String zipFilePath = reportGroupFolder.getAbsolutePath() + ".zip";
FilesUtils.zipFolder(reportGroupFolder.getAbsolutePath(), zipFilePath);
FilesUtils.delete(reportGroupFolder.getAbsolutePath());
File zipFile = new File(zipFilePath);
 
if(q.getRepositoryStreamZipFile() == null || q.getRepositoryStreamZipFile().trim().length() == 0)
{
String repositoryStreamCode = new RepositoryService().storeRepositoryFile(
new FileInputStream(zipFile),
"application/zip",
"zip",
(int)zipFile.length(),
zipFile.getName(),
desc,
access,
DaoFactory.getUserDaoImpl().load(new Long(1)));
q.setRepositoryStreamZipFile(repositoryStreamCode);
}
else
{
new RepositoryService().updateRepositoryFile(
q.getRepositoryStreamZipFile(),
new FileInputStream(zipFile),
"application/zip",
"zip",
(int)zipFile.length(),
zipFile.getName(),
desc,
access);
}
zipFile.delete();
}
 
protected void sendPdfToRepository(QuestionarioReportFileAno reportFile, File tmpFile, String descricao,ResourceAccessControlEnum access) throws FileNotFoundException {
if(reportFile.getRepositoryStream() == null || reportFile.getRepositoryStream().trim().length() == 0)
{
String repositoryStreamCode = new RepositoryService().storeRepositoryFile(
new FileInputStream(tmpFile),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
descricao,
access,//Este relatório de curso é publico
DaoFactory.getUserDaoImpl().load(new Long(1)));
reportFile.setRepositoryStream(repositoryStreamCode);
}
else
{
new RepositoryService().updateRepositoryFile(
reportFile.getRepositoryStream(),
new FileInputStream(tmpFile),
"application/pdf",
"pdf",
(int)tmpFile.length(),
tmpFile.getName(),
descricao,
access);
}
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/reportdomains/QuestionariosReport.java
25,7 → 25,11
public String color4Hex = ChartBuilderUtil.COLOR_4_HEX;
public String color5Hex = ChartBuilderUtil.COLOR_5_HEX;
 
String pathGeneratedPdfTemp;
 
 
 
 
/**
* CARACTERIZACAO DA AMOSTRA
*/
40,7 → 44,9
public int inquiridosNaoResponderam;
public int inquiridosComResposta;
 
public int inquiridosComRespostaPercent;
 
 
//Genero
public int masculinoComResposta;
public int femininoComResposta;
65,7 → 71,32
//TABELAS
public DataTable tabelaIdades;
public DataTable tabelaDistritos;
public String distritosJson;
 
public int getInquiridosComRespostaPercent() {
return inquiridosComRespostaPercent;
}
 
public void setInquiridosComRespostaPercent(int inquiridosComRespostaPercent) {
this.inquiridosComRespostaPercent = inquiridosComRespostaPercent;
}
 
public String getDistritosJson() {
return distritosJson;
}
 
public void setDistritosJson(String distritosJson) {
this.distritosJson = distritosJson;
}
 
public String getPathGeneratedPdfTemp() {
return pathGeneratedPdfTemp;
}
 
public void setPathGeneratedPdfTemp(String pathGeneratedPdfTemp) {
this.pathGeneratedPdfTemp = pathGeneratedPdfTemp;
}
 
public String getQuestionariosReqRespondidosPercentagemColor() {
return questionariosReqRespondidosPercentagemColor;
}
/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/xsl/cursoPublicReport.fo.xsl
15,6 → 15,7
<xsl:param name="codigoCurso"><xsl:value-of select="//cursoStats/codigoCurso"/></xsl:param>
<xsl:param name="instituicao"><xsl:value-of select="//cursoStats/nomeInstituicao"/></xsl:param>
<xsl:param name="abreviatura"><xsl:value-of select="//cursoStats/abreviaturaInstituicao"/></xsl:param>
<xsl:param name="grauDescricao"><xsl:value-of select="//cursoStats/degreeDescricao"/></xsl:param>
 
 
<xsl:template match="/">
251,6 → 252,9
<fo:block font-size="14px" padding="4px" margin-top="5px" text-align="center" background-color="#fff9ea">
<xsl:value-of select="$nomeCurso"/>
</fo:block>
<fo:block font-size="12px" padding="4px" margin-top="5px" text-align="center">
<xsl:value-of select="$grauDescricao"/>
</fo:block>
<fo:block font-size="12px" padding="4px" margin-top="2px" text-align="center">
<fo:inline>Código: <xsl:value-of select="$codigoCurso"/></fo:inline>
</fo:block>
692,7 → 696,7
 
<fo:block margin="0" padding="0" text-align="center">
<xsl:variable name="src"><xsl:value-of select="//analiseConjuntaChartWithTable/tempFile"/></xsl:variable>
<fo:external-graphic width="auto" height="auto" content-height="500" src="{$src}"/>
<fo:external-graphic width="auto" height="auto" content-width="450" src="{$src}"/>
</fo:block>
 
 
710,7 → 714,7
</xsl:call-template>
<fo:block margin="0" padding="0" text-align="center">
<xsl:variable name="src"><xsl:value-of select="//analiseConjuntaChartOrderMediaUnidades"/></xsl:variable>
<fo:external-graphic width="auto" height="auto" content-height="500" src="{$src}"/>
<fo:external-graphic width="auto" height="auto" content-width="450" src="{$src}"/>
</fo:block>
 
 
729,7 → 733,7
 
<fo:block margin="0" padding="0" text-align="center">
<xsl:variable name="src"><xsl:value-of select="//analiseConjuntaChartOrderMediaSalas"/></xsl:variable>
<fo:external-graphic width="auto" height="auto" content-height="500" src="{$src}"/>
<fo:external-graphic width="auto" height="auto" content-width="450" src="{$src}"/>
</fo:block>
 
 
765,16 → 769,17
</xsl:call-template>
</fo:block-container>
<xsl:call-template name="subSeccaoGreen">
<xsl:with-param name="text">7.5 - Comparação das a média da pergunta do grupo Unidade em cada Unidade Curricular</xsl:with-param>
<xsl:with-param name="text">7.5 - Comparação das médias considerando a questão número <xsl:value-of select="perguntaNumero"/></xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">cadeiraConteudos.png</xsl:with-param>
<xsl:with-param name="marginBottom">2px</xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="subSeccaoGreen">
<xsl:with-param name="text"><xsl:value-of select="perguntaNumero"/> - <xsl:value-of select="pergunta"/></xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
<fo:block font-weight="bolder" margin-bottom="5px">
Questão: "<xsl:value-of select="pergunta"/>"
</fo:block>
 
 
<fo:block margin="0" padding="0" text-align="center">
<xsl:apply-templates select="tabelaComparativaUnidades" mode="DataTable">
<xsl:with-param name="firstColPercentSize">15%</xsl:with-param>
797,15 → 802,22
</xsl:call-template>
</fo:block-container>
<xsl:call-template name="subSeccaoRose">
<xsl:with-param name="text">7.6 - Comparação das a média da pergunta do grupo Instalações em cada Unidade Curricular</xsl:with-param>
<xsl:with-param name="text">7.6 - Comparação das médias considerando a questão número <xsl:value-of select="perguntaNumero"/></xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
<xsl:with-param name="icon">cadeiraConteudos.png</xsl:with-param>
<xsl:with-param name="marginBottom">2px</xsl:with-param>
</xsl:call-template>
 
 
<fo:block font-weight="bolder" margin-bottom="5px">
Questão: "<xsl:value-of select="pergunta"/>"
</fo:block>
 
<!--
<xsl:call-template name="subSeccaoRose">
<xsl:with-param name="text"><xsl:value-of select="perguntaNumero"/> - <xsl:value-of select="pergunta"/></xsl:with-param>
<xsl:with-param name="marginTop">2px</xsl:with-param>
</xsl:call-template>
</xsl:call-template>-->
 
<fo:block margin="0" padding="0" text-align="center">
<xsl:apply-templates select="tabelaComparativaUnidades" mode="DataTable">
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/CursoPublicReportGenerator.java
7,13 → 7,19
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.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;
41,15 → 47,17
public static void main(String[] args) throws IOException, DocumentException, TransformerException, FOPException
{
 
AbstractDao.getCurrentSession().beginTransaction();
//String teacherCode = "44451";
//String teacherCode = "20122";
String courseCode = "9119";
String courseCode = "7175";
//String courseCode = "9104";
String anoLectivo = "201516";
//String[] periodos = new String[]{"S2","T3","T4","A"};
String[] periodos = new String[]{"S1"};
String[] periodos = new String[]{"S2","T3","T4","A"};
//String[] periodos = new String[]{"S1"};
String[] degrees = new String[]{"L","M","T","E"};
new CursoPublicReportGenerator(anoLectivo,periodos,degrees,courseCode).processCourse(courseCode);
new CursoPublicReportGenerator(anoLectivo,periodos,degrees,courseCode).processCourse(courseCode,new File(Globals.TMP_DIR));
AbstractDao.getCurrentSession().getTransaction().commit();
 
}
 
61,16 → 69,17
super(anoLectivo, periodos, degrees);
}
 
public void processCourse(String courseCode) throws IOException, DocumentException, TransformerException, FOPException
public CursoPublicReport processCourse(String courseCode,File reportCourseFolder) 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");
79,12 → 88,19
ChartBuilderUtil.createChartUnidadesContribuicao(cursoReport,"unidadesContribuicao");
 
 
String path = generatePdfReport(cursoReport);
String path = generatePdfReport(cursoReport,reportCourseFolder);
cursoReport.setPathGeneratedPdfTemp(path);
return cursoReport;
 
}
 
private String generatePdfReport(CursoPublicReport cursoReport) throws DocumentException, TransformerException, IOException, FOPException {
String startPath = Globals.TMP_DIR + File.separator + "reportCurso" + cursoReport.getCursoStats().getCodigoCurso();
private String generatePdfReport(CursoPublicReport cursoReport,File reportCourseFolder) throws DocumentException, TransformerException, IOException, FOPException {
 
if(!reportCourseFolder.exists())
{
reportCourseFolder.mkdirs();
}
String startPath = reportCourseFolder.getAbsolutePath() + File.separator + "reportCurso" + cursoReport.getCursoStats().getCodigoCurso();
String path = startPath + ".pdf";
 
FileOutputStream out = new FileOutputStream(path);
110,7 → 126,7
 
private CursoPublicReport getCoursePublicReport(String courseCode) throws IOException {
 
AbstractDao.getCurrentSession().beginTransaction();
//AbstractDao.getCurrentSession().beginTransaction();
 
Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
 
123,6 → 139,8
 
 
//dados relativos ao curso
cursoReport.getCursoStats().setDegreeDescricao(ConfigProperties.getProperty("course.degree.desc." + c.getDegree()));
cursoReport.getCursoStats().setDegree(c.getDegree());
cursoReport.getCursoStats().setCodigoCurso(courseCode);
cursoReport.getCursoStats().setNomeCurso(c.getName());
cursoReport.getCursoStats().setCodigoCurso(c.getCode());
136,20 → 154,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 → 198,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 → 259,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 → 660,175
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);
reportGroup.setActive(false);
File reportGroupFolder = new File(Globals.TMP_DIR + File.separator + "reportGroup" + reportGroup.getId());
 
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 **/ //Tem mais um para contemplar o zip folder operation
setProgress((int)((((float)cursosEncontrados)/((float)courseCodes.size()+1))*100.0f));
commitPartially();
reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
/** 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,reportGroupFolder);
 
 
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.setActive(true);
q.setInquiridos(cursoReport.getInquiridosTotal());
q.setInquiridosComResposta(cursoReport.getInquiridosComResposta());
q.setRespostasRequisitadas(cursoReport.getQuestionariosReqTotal());
q.setRespostas(cursoReport.getQuestionariosReqRespondidos());
q.setUnidades(cursoReport.getUnidadesRequisitadas());
q.setPercentagemRespostas(cursoReport.getQuestionariosReqRespondidosPercentagem());
q.setPercentagemInquiridos(cursoReport.getInquiridosComRespostaPercent());
q.setCitiesJson(cursoReport.getDistritosJson());
q.setTipoCurso(cursoReport.getCursoStats().getDegreeDescricao());
q.setEscola(cursoReport.getCursoStats().getAbreviaturaInstituicao());
q.setCodigoEscola(cursoReport.getCursoStats().getCodigoNacionalInstituicao());
 
//STATS
if(q.getInquiridos() == 0)
cursosSemUnidadesAfetas++;
else if(q.getRespostas() == 0)
cursosSemRespostas++;
else
cursosComRespostas++;
 
 
File tmpFile = new File(tmpPath);
String descricao = "Relatório dos Resultados do Inquérito Pedagógico aos Alunos - Relatório de Curso Público: " + c.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + Arrays.toString(periodos) + " degrees:" + Arrays.toString(degrees);
sendPdfToRepository( q,
tmpFile,
descricao,
ResourceAccessControlEnum.questionariosReportCurso);
 
}
//Final
cursosProcessados++;
}catch(Throwable e)
{
msg = "FAIL - Teacher with siges: " + sigesCode;
serviceLogError(msg,e);
logger.error(msg,e);
cursosFalhados++;
}
}
/** COMMIT OPERATION **/ //Tem mais um para contemplar o zip folder operation
setProgress((int)((((float)cursosEncontrados)/((float)courseCodes.size()+1))*100.0f));
commitPartially();
reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
 
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);
 
 
commitPartially();
reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
 
logger.info("ziping files");
serviceLogInfo("ziping files");
logMessages.addMessage(new DefaultLogMessage("ziping files", LogMessageTypeEnum.INFO));
 
zipFolder(
reportGroup,
reportGroupFolder,
"Relatórios de Curso ZIPADOS " + " ano:" + anoLectivo + " periodos:" + Arrays.toString(periodos) + " degrees:" + Arrays.toString(degrees),
ResourceAccessControlEnum.questionariosReportCurso);
 
setProgress(100);
commitPartially();
 
 
logger.info("terminating course reports generation");
serviceLogInfo("terminating course reports generation");
logMessages.addMessage(new DefaultLogMessage("report.docente.gen.terminating", LogMessageTypeEnum.INFO));
 
 
 
return logMessages;
}
 
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/reportprocessors/queries/QuestionariosQueryDao.java
2,6 → 2,7
 
import jomm.dao.impl.AbstractDao;
import org.hibernate.Query;
import org.json.JSONArray;
import pt.estgp.estgweb.domain.OlapStarFactQuestionario;
import pt.estgp.estgweb.services.questionarios.PedagogicoAlunosProcessor;
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.EntityEvaluated;
72,9 → 73,9
String whereFragmentEntity = getWhereEntityCodesFragment(codes, entityEvaluated);
 
Query query;
Object result;
 
 
 
//Questionários Respondidos
query = AbstractDao.getCurrentSession().createQuery("" +
"SELECT " +
97,12 → 98,24
query.setString("ano",anoLectivo);
Object[] result2 = (Object[]) query.uniqueResult();
 
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);
//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.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,
178,6 → 191,21
rowDistrito.addColPercentageCenter("" + percentage);
}
 
//build JSON Localidades
JSONArray citiesJson = new JSONArray();
for(int i = 0; i < localidades.size(); i++)
{
JSONArray city = new JSONArray();
citiesJson.put(city);
 
Long num = (Long)localidades.get(i)[0];
String distrit = (String)localidades.get(i)[1];
int percentage = (int)(((float)(num) / ((float)docenteReport.getInquiridosComResposta()) * 100.0));
city.put(distrit);
city.put(percentage);
}
docenteReport.setDistritosJson(citiesJson.toString());
 
//int contagemOutros = 0;
/*for(int i = 3; i < localidades.size(); i++)
{
273,4 → 301,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
230,24 → 230,35
}
 
 
public static void countAlunosQueResponderamAoDocente(String teacherCode, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
public static int countAlunosQueResponderamAoDocente(String teacherCode, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
{
countAlunosQueResponderamGen(new String[]{teacherCode},EntityEvaluated.DOCENTE,anoLectivo,docenteReport,periodos,degrees);
return countAlunosQueResponderamGen(new String[]{teacherCode},EntityEvaluated.DOCENTE,anoLectivo,docenteReport,periodos,degrees);
}
public static void countAlunosQueResponderamAoCurso(String courseCode, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
public static int countAlunosQueResponderamAoCurso(String courseCode, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
{
countAlunosQueResponderamGen(new String[]{courseCode},EntityEvaluated.CURSO,anoLectivo,docenteReport,periodos,degrees);
return countAlunosQueResponderamGen(new String[]{courseCode},EntityEvaluated.CURSO,anoLectivo,docenteReport,periodos,degrees);
}
public static void countAlunosQueResponderamAoCursos(String[] courseCodes, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
public static int countAlunosQueResponderamAoCursos(String[] courseCodes, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
{
countAlunosQueResponderamGen(courseCodes,EntityEvaluated.CURSOS,anoLectivo,docenteReport,periodos,degrees);
return countAlunosQueResponderamGen(courseCodes,EntityEvaluated.CURSOS,anoLectivo,docenteReport,periodos,degrees);
}
public static void countAlunosQueResponderamAoCursos(List<String> courseCodes, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
public static int countAlunosQueResponderamAoCursos(List<String> courseCodes, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees)
{
countAlunosQueResponderamGen((String[]) courseCodes.toArray(),EntityEvaluated.CURSOS,anoLectivo,docenteReport,periodos,degrees);
return countAlunosQueResponderamGen((String[]) courseCodes.toArray(),EntityEvaluated.CURSOS,anoLectivo,docenteReport,periodos,degrees);
}
 
public static void countAlunosQueResponderamGen(String[] codes,EntityEvaluated entityEvaluated, String anoLectivo, QuestionariosAlunosReport docenteReport, String[] periodos, String[] degrees) {
/**
* devolve respostas totais
* preenche os inquiridos com resposta incluindo os masculinos e femininos
* @param codes
* @param entityEvaluated
* @param anoLectivo
* @param report
* @param periodos
* @param degrees
* @return
*/
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);
277,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 " +
298,13 → 309,14
//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("" +
"SELECT " +
323,8 → 335,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;
report.inquiridosComRespostaPercent = (int)((((float)report.inquiridosComResposta) / ((float) report.inquiridosTotal)) * 100.0);;
return report.inquiridosComResposta;
}
 
 
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/QuestionariosReportsService.java
1,6 → 1,5
package pt.estgp.estgweb.services.questionarios;
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
31,19 → 30,28
reportFileGroup.setTitle(title);
String processorClassForGroup = ConfigProperties.getProperty("questionarios.processor." + classType);
reportFileGroup.setReportProcessorClass(processorClassForGroup);
AbstractDao.getCurrentSession().save(reportFileGroup);
DaoFactory.getQuestionarioReportFileGroupDaoImpl().save(reportFileGroup);
}
 
public void updateReportGroup(long reportGroupId, String title, UserSession userSession) throws ClassNotFoundException, IllegalAccessException, InstantiationException
public void updateReportGroup(long reportGroupId, String title, boolean active, UserSession userSession) throws ClassNotFoundException, IllegalAccessException, InstantiationException
{
QuestionarioReportFileGroupImpl reportGroup = (QuestionarioReportFileGroupImpl) DaoFactory.getQuestionarioReportFileGroupDaoImpl().load(reportGroupId);
reportGroup.setTitle(title);
reportGroup.setActive(active);
}
 
public QuestionarioReportFileGroupImpl runJobGenerate(long reportGroupId,String title, UserSession session) throws NotAuthorizedException, ClassNotFoundException {
public void updateReportFile(long reportFileId, boolean active, UserSession userSession) throws ClassNotFoundException, IllegalAccessException, InstantiationException
{
QuestionarioReportFile reportFile = DaoFactory.getQuestionarioReportFileDaoImpl()
.load(reportFileId);
reportFile.setActive(active);
}
 
public QuestionarioReportFileGroupImpl runJobGenerate(long reportGroupId,String title,boolean active, UserSession session) throws NotAuthorizedException, ClassNotFoundException {
 
QuestionarioReportFileGroupImpl reportGroup = (QuestionarioReportFileGroupImpl) DaoFactory.getQuestionarioReportFileGroupDaoImpl().load(reportGroupId);
reportGroup.setTitle(title);
reportGroup.setActive(active);
Set<JobServiceTaskParameter> paramsJob = new HashSet<JobServiceTaskParameter>();
 
JobServiceTaskParameterImpl paramJob = DomainObjectFactory.createJobServiceTaskParameterImpl();
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/RepositoryService.java
132,6 → 132,7
iRepositoryFile.setSize(repositoryFile.getLastVersion().getSize());
iRepositoryFile.setName(repositoryFile.getLastVersion().getName());
iRepositoryFile.setInput(RepositoryManager.load(repositoryFile.getLastVersion().getId()));
iRepositoryFile.setExtension(repositoryFile.getLastVersion().getExtension());
return iRepositoryFile;
}
 
148,6 → 149,7
iRepositoryFile.setSize(repositoryFile.getSize());
iRepositoryFile.setName(repositoryFile.getName());
iRepositoryFile.setInput(RepositoryManager.load(repositoryFile.getId()));
iRepositoryFile.setExtension(repositoryFile.getExtension());
return iRepositoryFile;
}
 
167,6 → 169,7
iRepositoryFile.setSize(version.getSize());
iRepositoryFile.setName(DatesUtils.getStringFromDateForFilename(version.getSaveDate()) + "-" + version.getName());
iRepositoryFile.setInput(RepositoryManager.load(version.getId()));
iRepositoryFile.setExtension(version.getExtension());
versions.add(iRepositoryFile);
}
return versions;
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/impl/DefaultRepositoryFile.java
15,8 → 15,16
private int size;
private String contentType;
private String name;
private String extension;
 
public String getExtension() {
return extension;
}
 
public void setExtension(String extension) {
this.extension = extension;
}
 
public String getIdentifier()
{
return identifier;
/branches/v3/impl/src/java/pt/estgp/estgweb/services/data/IRepositoryFileView.java
1,7 → 1,5
package pt.estgp.estgweb.services.data;
 
import java.io.OutputStream;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
13,4 → 11,5
public int getSize();
public String getContentType();
public String getName();
public String getExtension();
}
/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/services/assessments/EvaluateAssessmentsService.java
60,7 → 60,7
}
}
 
//somar as cotações para atribuir cotação a resposta e colocar como avaliada
//somar as cotacoes para atribuir cotacao a resposta e colocar como avaliada
double quotationTotal=0;
for(AssessmentQuestionAnswer aQa : response.getAnswers())
{
110,8 → 110,8
}
}
 
//carregar as respostas e verificar se as answers já estão todas corrigidas
//para somar as cotações para atribuir cotação a resposta e colocar como avaliada
//carregar as respostas e verificar se as answers ja estao todas corrigidas
//para somar as cotacoes para atribuir cotacao a resposta e colocar como avaliada
List<AssessmentResponse> responses = DaoFactory.getAssessmentResponseDaoImpl().loadResponsesByAssessmentIdAnswered(assessmentId);
for(AssessmentResponse response : responses)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/ScheduleAssessmentService.java
74,7 → 74,7
 
private synchronized AssessmentImpl createAssessmentResponses(AssessmentImpl assessment)
{
//primeiro verificar se já há respostas
//primeiro verificar se ja ha respostas
List<AssessmentResponse> existResponses = DaoFactory.getAssessmentResponseDaoImpl().loadResponsesByAssessmentId(assessment.getId());
if(existResponses != null)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/GeneratePdfService.java
42,13 → 42,13
try {
//cria o documento tamanho A4, margens de 2,54cm
doc = new Document(PageSize.A4, 72, 72, 72, 72);
//cria a stream de saída
//cria a stream de sa�da
os = new FileOutputStream(Globals.TMP_DIR+"Enunciado"+assessment.getTitle()+".pdf");
//associa a stream de saída ao
//associa a stream de sa�da ao
PdfWriter.getInstance(doc, os);
//abre o documento
doc.open();
//imagem do cabeçalho
//imagem do cabe�alho
Image img = Image.getInstance(Globals.SITE_URL+"/imgs/logoestg.gif");
img.setAlignment(Element.ALIGN_LEFT);
doc.add(img);
66,16 → 66,16
Font fontTextNormal = new Font(Font.FontFamily.TIMES_ROMAN,12,Font.NORMAL);
 
//cabeçalho
//cabe�alho
//unidade curricular
Paragraph courseUnit = new Paragraph(assessment.getCourseUnit().getName(),fontHeader);
courseUnit.setAlignment(Element.ALIGN_CENTER);
doc.add(courseUnit);
 
//primeira linha cabeçalho
//primeira linha cabe�alho
String evaluationTime = "";
if(assessment.getEvaluationTime().equals(Globals.ASSESSMENT_EVALUATION_TIME_CONTINUOUS))
evaluationTime="Avaliação Contínua";
evaluationTime="Avalia��o Cont�nua";
if(assessment.getEvaluationTime().equals(Globals.ASSESSMENT_EVALUATION_TIME_FIRSTEXAM))
evaluationTime="Exame Normal";
if(assessment.getEvaluationTime().equals(Globals.ASSESSMENT_EVALUATION_TIME_SECONDEXAM))
94,10 → 94,10
firstLine.setAlignment(Element.ALIGN_CENTER);
doc.add(firstLine);
 
//segunda linha cabeçalho
//segunda linha cabe�alho
String dateText = "Data:";
String date = " "+ DatesUtils.getStringFromDate(assessment.getStartDate());
String timeText = " - Duração:";
String timeText = " - Dura��o:";
String time = " "+String.valueOf(assessment.getTime().getHours())+":"+String.valueOf(assessment.getTime().getMinutes());
String ownerText = " - Docente:";
String owner = " "+assessment.getOwner().getName();
119,7 → 119,7
doc.add(objectName);
doc.add(Chunk.NEWLINE);
 
//questões
//quest�es
int numberQ=0;
for(AssessmentQuestion question : assessment.getQuestions())
{
212,7 → 212,7
doc.close();
}
if (os != null) {
//fechamento da stream de saída
//fechamento da stream de sa�da
os.close();
}
}
245,13 → 245,13
try {
//cria o documento tamanho A4, margens de 2,54cm
doc = new Document(PageSize.A4, 72, 72, 72, 72);
//cria a stream de saída
//cria a stream de sa�da
os = new FileOutputStream(Globals.TMP_DIR+"Resposta"+assessment.getTitle()+String.valueOf(assessmentResponse.getId())+".pdf");
//associa a stream de saída ao
//associa a stream de sa�da ao
PdfWriter.getInstance(doc, os);
//abre o documento
doc.open();
//imagem do cabeçalho
//imagem do cabe�alho
Image img = Image.getInstance(Globals.SITE_URL+"/imgs/logoestg.gif");
img.setAlignment(Element.ALIGN_LEFT);
doc.add(img);
270,16 → 270,16
Font fontTextEvaluate = new Font(Font.FontFamily.TIMES_ROMAN,12,Font.NORMAL,BaseColor.RED);
 
 
//cabeçalho
//cabe�alho
//unidade curricular
Paragraph courseUnit = new Paragraph(assessment.getCourseUnit().getName(),fontHeader);
courseUnit.setAlignment(Element.ALIGN_CENTER);
doc.add(courseUnit);
 
//primeira linha cabeçalho
//primeira linha cabe�alho
String evaluationTime = "";
if(assessment.getEvaluationTime().equals(Globals.ASSESSMENT_EVALUATION_TIME_CONTINUOUS))
evaluationTime="Avaliação Contínua";
evaluationTime="Avalia��o Cont�nua";
if(assessment.getEvaluationTime().equals(Globals.ASSESSMENT_EVALUATION_TIME_FIRSTEXAM))
evaluationTime="Exame Normal";
if(assessment.getEvaluationTime().equals(Globals.ASSESSMENT_EVALUATION_TIME_SECONDEXAM))
298,10 → 298,10
firstLine.setAlignment(Element.ALIGN_CENTER);
doc.add(firstLine);
 
//segunda linha cabeçalho
//segunda linha cabe�alho
String dateText = "Data:";
String date = " "+ DatesUtils.getStringFromDate(assessment.getStartDate());
String timeText = " - Duração:";
String timeText = " - Dura��o:";
String time = " "+String.valueOf(assessment.getTime().getHours())+":"+String.valueOf(assessment.getTime().getMinutes());
String ownerText = " - Docente:";
String owner = " "+assessment.getOwner().getName();
330,7 → 330,7
doc.add(objectName);
doc.add(Chunk.NEWLINE);
 
//questões
//quest�es
int numberQ=0;
for(AssessmentQuestion question : assessment.getQuestions())
{
359,7 → 359,7
answerP.add(new Chunk(answer.getTextAnswer(), fontTextNormal));
 
if(assessmentResponse.isEvaluated())
{ //verifica se está correcta
{ //verifica se est� correcta
if(question.getQuotation()==answer.getQuotation())
{
answerP.add(new Chunk(" Correcta",fontTextEvaluate));
396,7 → 396,7
{
Paragraph answerP = new Paragraph("Foi entregue um ficheiro", fontTextBold);
if(assessmentResponse.isEvaluated())
{ //verifica se está correcta
{ //verifica se est� correcta
if(question.getQuotation()==answer.getQuotation())
{
answerP.add(new Chunk(" Correcta",fontTextEvaluate));
443,7 → 443,7
imagePa = Image.getInstance(Globals.SITE_URL+"/imgs/radioboxselected.png");
isRadioAnswered = true;
if(assessmentResponse.isEvaluated())
{ //verifica se está correcta
{ //verifica se est� correcta
if(pA.getQuotation()>0)
{
evaluated = " Correcta";
470,7 → 470,7
imagePa = Image.getInstance(Globals.SITE_URL+"/imgs/checkboxselected.jpg");
isCheckAnswered = true;
if(assessmentResponse.isEvaluated())
{ //verifica se está correcta
{ //verifica se est� correcta
if(pA.getQuotation()>0)
{
evaluated = " Correcta";
510,7 → 510,7
//para saber o numero de respostas possiveis
for(AssessmentQuestionItem itemTam : question.getQuestionItems())
{
numPossibles = itemTam.getPossibleAnswers().size()+2; //mais um para items e para correcções
numPossibles = itemTam.getPossibleAnswers().size()+2; //mais um para items e para correcções
table = new PdfPTable(numPossibles);
PdfPCell colunaVazia = new PdfPCell(new Paragraph());
colunaVazia.setBorder(0);
542,7 → 542,7
imagePa = Image.getInstance(Globals.SITE_URL+"/imgs/radioboxselected.png");
isRadioAnswered = true;
if(assessmentResponse.isEvaluated())
{ //verifica se está correcta
{ //verifica se esta correcta
if(pA.getQuotation()>0)
{
evaluated = " Correcta";
596,7 → 596,7
doc.close();
}
if (os != null) {
//fechamento da stream de saída
//fechamento da stream de saida
os.close();
}
}
631,13 → 631,13
try {
//cria o documento tamanho A4, margens de 2,54cm
doc = new Document(PageSize.A4, 72, 72, 72, 72);
//cria a stream de saída
//cria a stream de saida
os = new FileOutputStream(Globals.TMP_DIR+ assessment.getTitle()+".pdf");
//associa a stream de saída ao
//associa a stream de saida ao
PdfWriter.getInstance(doc, os);
//abre o documento
doc.open();
//imagem do cabeçalho
//imagem do cabecalho
Image img = Image.getInstance(Globals.SITE_URL+"/imgs/logoestg.gif");
img.setAlignment(Element.ALIGN_LEFT);
doc.add(img);
646,7 → 646,7
LineSeparator objectName = new LineSeparator();
doc.add(objectName);
 
//adiciona um paragrafo para dar espaço
//adiciona um paragrafo para dar espaco
// Paragraph p = new Paragraph("");
// Paragraph paragrafo = new Paragraph();
// paragrafo.setSpacingBefore(10);
659,7 → 659,7
 
 
//doc.add(Chunk.NEWLINE);
//Informações sobre a prova
//Informacoes sobre a prova
 
Phrase anoCurso = new Phrase("\nAno Lectivo: "+String.valueOf(assessment.getYear())+
" / Curso: "+assessment.getCourseUnit().getCourseName()+"\n");
674,7 → 674,7
////tabela
PdfPTable table = new PdfPTable(assessment.getQuestions().size()+3);
Font fontHeader = new Font(Font.FontFamily.TIMES_ROMAN,10,Font.BOLD);
//primeira linha para as cotações
//primeira linha para as cotacoes
PdfPCell colunaVazia = new PdfPCell(new Paragraph());
colunaVazia.setBackgroundColor(new BaseColor(0Xc0, 0Xc0,0Xc0));
colunaVazia.setColspan(2);
692,7 → 692,7
}
 
//segunda linha
PdfPCell col1 = new PdfPCell(new Paragraph("Nº",fontHeader));
PdfPCell col1 = new PdfPCell(new Paragraph("N�",fontHeader));
col1.setBackgroundColor(new BaseColor(0Xc0, 0Xc0,0Xc0));
PdfPCell col2 = new PdfPCell(new Paragraph("Nome",fontHeader));
col2.setBackgroundColor(new BaseColor(0Xc0, 0Xc0,0Xc0));
711,7 → 711,7
}
 
Font fontText = new Font(Font.FontFamily.TIMES_ROMAN,10,Font.NORMAL);
//cotações das respostas
//cotacoes das respostas
for(AssessmentResponse response : responses)
{
String code="";
726,7 → 726,7
table.addCell(colunaNome);
table.addCell(colunaNota);
//numero nome e nota adicionados
//percorrer as questões
//percorrer as questoes
for(AssessmentQuestion question : assessment.getQuestions())
{
String semResposta=" ";
775,7 → 775,7
doc.close();
}
if (os != null) {
//fechamento da stream de saída
//fechamento da stream de saida
os.close();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/LoadAssessmentResponsesService.java
47,7 → 47,7
 
List<AssessmentQuestion> questions = new ArrayList<AssessmentQuestion>();
for(AssessmentQuestionAnswerImpl aQA : answers)
{ //adicionar as questões sem ser repetidas e so as que o docente tem de corrigir
{ //adicionar as questoes sem ser repetidas e so as que o docente tem de corrigir
if(!questions.contains(aQA.getPossibleAnswer().getQuestionItem().getQuestion()))
{
if(!aQA.getPossibleAnswer().getQuestionItem().getQuestion().getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_RADIO)
68,7 → 68,7
return questionsView;
}
 
///carregar todas as respostas não corrigidas de uma questão
///carregar todas as respostas nao corrigidas de uma questao
public List<AssessmentQuestionAnswerView> loadQuestionResponses(long questionId, UserSession userSession)
{
List<AssessmentQuestionAnswerImpl> answers = DaoFactory.getAssessmentQuestionAnswerDaoImpl().loadByQuestionIdNotEvaluated(questionId);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/assessments/InsertAssessmentAnswersService.java
69,7 → 69,7
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
//verificar se sao questoes de correccao automatica para atribuir cotação
//verificar se sao questoes de correccao automatica para atribuir cotacao
//e serem colocadas como corrigidas
if(qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_RADIO)
|| qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_MATRIX)
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupDocentesAnoImpl.java
6,4 → 6,5
public class QuestionarioReportFileGroupDocentesAnoImpl extends QuestionarioReportFileGroupDocentesAno
{
 
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapFieldContainer.java
New file
0,0 → 1,12
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public interface OlapFieldContainer
{
public String[] getFieldsNamesArray();
public String[] getFieldsArray();
public String[] getFieldsNotAllowed();
public boolean canPublishFields();
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioImpl.java
New file
0,0 → 1,24
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioImpl extends OlapEntityQuestionario
{
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"QUESTIONARIO_ano", "QUESTIONARIO_semestre", "QUESTIONARIO_generatedTime"});
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getAno(),""+getSemestre(),""+ pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(getGeneratedTime())});
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswerImpl.java
New file
0,0 → 1,33
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapStarFactQuestionarioAnswerImpl extends OlapStarFactQuestionarioAnswer
{
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"intResposta", "tempoResposta", "ordemResposta", "horaMilisegundos"});
fields.addAll(Arrays.asList(getOlapPergunta().getFields()));
fields.addAll(Arrays.asList(getOlapCurso().getFields()));
fields.addAll(Arrays.asList(getOlapTipologia().getFields()));
fields.addAll(Arrays.asList(getOlapUnidade().getFields()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFields()));
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getIntResposta(),""+getTempoLevado(),""+getOrdemResposta(),""+getDataEvento().getTime()});
fields.addAll(Arrays.asList(getOlapPergunta().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapCurso().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapTipologia().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapUnidade().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFieldsValues()));
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/PageRepositoryFileImpl.java
1,7 → 1,7
package pt.estgp.estgweb.domain;
 
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
 
import java.io.Serializable;
import java.util.List;
 
25,6 → 25,6
}
@Override
public void initClearances(UserSessionImpl u, boolean force) {
throw new NotImplementedException();
throw new RuntimeException("NotImplemented");
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaEsforcoImpl.java
New file
0,0 → 1,24
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioPerguntaEsforcoImpl extends OlapEntityQuestionarioPerguntaEsforco
{
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"PERGUNTA_ESFORCO_grupoCode", "PERGUNTA_ESFORCO_grupoTitle", "PERGUNTA_ESFORCO_subGrupoCode", "PERGUNTA_ESFORCO_subGrupoTitle", "PERGUNTA_ESFORCO_pergunta", "PERGUNTA_ESFORCO_numero"});
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getGrupoCode(),""+getGrupoTitle(),""+getSubGrupoCode(),""+getSubGrupoTitle(),""+getPergunta(),getNumero()});
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapHistoryDimensionImpl.java
New file
0,0 → 1,16
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapHistoryDimensionImpl extends OlapHistoryDimension {
@Override
public String[] getFields() {
return new String[0];
}
 
@Override
public String[] getFieldsValues() {
return new String[0];
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioImpl.java
New file
0,0 → 1,31
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapStarFactQuestionarioImpl extends OlapStarFactQuestionario {
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"respondido", "dataInicioMilis", "tempoTotalMilis", "dataFimMilis"});
fields.addAll(Arrays.asList(getOlapCurso().getFields()));
fields.addAll(Arrays.asList(getOlapTipologia().getFields()));
fields.addAll(Arrays.asList(getOlapUnidade().getFields()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFields()));
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+isRespondido(),""+getDataInicio().getTime(),""+getTempoTotal(),""+getDataFim().getTime()});
fields.addAll(Arrays.asList(getOlapCurso().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapTipologia().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapUnidade().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFieldsValues()));
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswerEsforcoImpl.java
New file
0,0 → 1,33
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapStarFactQuestionarioAnswerEsforcoImpl extends OlapStarFactQuestionarioAnswerEsforco {
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"intResposta", "tempoResposta", "ordemResposta", "horaMilisegundos"});
fields.addAll(Arrays.asList(getOlapPerguntaEsforco().getFields()));
fields.addAll(Arrays.asList(getOlapCurso().getFields()));
fields.addAll(Arrays.asList(getOlapTipologia().getFields()));
fields.addAll(Arrays.asList(getOlapUnidade().getFields()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFields()));
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getIntResposta(),""+getTempoLevado(),""+getOrdemResposta(),""+getDataEvento().getTime()});
fields.addAll(Arrays.asList(getOlapPerguntaEsforco().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapCurso().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapTipologia().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapUnidade().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFieldsValues()));
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupAnoImpl.java
6,6 → 6,7
import org.json.JSONObject;
import pt.estgp.estgweb.domain.utils.InputDrivenInput;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.DatesUtils;
 
import java.util.ArrayList;
import java.util.List;
37,48 → 38,48
return StringsUtils.getElementsFromSerial(getDegrees(), ";").toArray(new String[0]);
}
 
public boolean hasSemestre1()
public boolean isSemestre1()
{
return hasPeriodo("S1");
}
public boolean hasSemestre2()
public boolean isSemestre2()
{
return hasPeriodo("S2");
}
public boolean hasTrimestre1()
public boolean isTrimestre1()
{
return hasPeriodo("T1");
}
public boolean hasTrimestre2()
public boolean isTrimestre2()
{
return hasPeriodo("T2");
}
public boolean hasTrimestre3()
public boolean isTrimestre3()
{
return hasPeriodo("T3");
}
public boolean hasTrimestre4()
public boolean isTrimestre4()
{
return hasPeriodo("T4");
}
public boolean hasAnuais()
public boolean isAnuais()
{
return hasPeriodo("A");
}
 
public boolean hasLicenciaturas()
public boolean isLicenciaturas()
{
return hasDegree("L");
}
public boolean hasMestrados()
public boolean isMestrados()
{
return hasDegree("M");
}
public boolean hasTesps()
public boolean isTesps()
{
return hasDegree("T");
}
public boolean hasCets()
public boolean isCets()
{
return hasDegree("E");
}
173,4 → 174,8
{
return getInputsJsonArray().toString();
}
 
public String getImportYearFormatted(){
return DatesUtils.getImportYearFormatted(getImportYear());
}
}
/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/QuestionarioReportFileGroupDaoImpl.java
New file
0,0 → 1,40
package pt.estgp.estgweb.domain.dao;
 
import pt.estgp.estgweb.domain.QuestionarioReportFileGroup;
import pt.estgp.estgweb.domain.dao.impl.QuestionarioReportFileGroupDao;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
import static org.hibernate.criterion.Restrictions.or;
 
/**
* Created by jorgemachado on 03/01/17.
*/
public class QuestionarioReportFileGroupDaoImpl extends QuestionarioReportFileGroupDao
{
 
 
public static QuestionarioReportFileGroupDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioReportFileGroupDaoImpl();
return (QuestionarioReportFileGroupDaoImpl) myInstance;
}
 
public QuestionarioReportFileGroup findByRepository(String identifier) {
List<QuestionarioReportFileGroup> reportCursoFiles =
createCriteria().add(
or(
eq("repositoryStreamZipFile", identifier)
,
eq("repositoryStreamCsvFile", identifier)
)
).list();
 
if(reportCursoFiles== null || reportCursoFiles.size() == 0)
return null;
return
reportCursoFiles.get(0);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioReportFileDaoImpl.java
New file
0,0 → 1,36
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.QuestionarioReportCursoFile;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* Created by jorgemachado on 03/01/17.
*/
public class QuestionarioReportFileDaoImpl extends QuestionarioReportFileDao
{
 
private QuestionarioReportFileDaoImpl()
{
}
 
public static QuestionarioReportFileDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioReportFileDaoImpl();
return (QuestionarioReportFileDaoImpl) myInstance;
}
 
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/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/QuestionarioReportFileGroupCursosAnoDaoImpl.java
New file
0,0 → 1,34
package pt.estgp.estgweb.domain.dao.impl;
 
import org.hibernate.criterion.Order;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAno;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class QuestionarioReportFileGroupCursosAnoDaoImpl extends QuestionarioReportFileGroupCursosAnoDao
{
private QuestionarioReportFileGroupCursosAnoDaoImpl()
{
}
 
public static QuestionarioReportFileGroupCursosAnoDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioReportFileGroupCursosAnoDaoImpl();
return (QuestionarioReportFileGroupCursosAnoDaoImpl) myInstance;
}
 
public List<QuestionarioReportFileGroupCursosAno> findByYear(String importYear)
{
return createCriteria().add(eq("importYear",importYear)).addOrder(Order.asc("id")).list();
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioReportDocenteFileDaoImpl.java
New file
0,0 → 1,51
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.QuestionarioReportDocenteFile;
 
import java.util.List;
 
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioReportDocenteFileDaoImpl extends QuestionarioReportDocenteFileDao
{
private static final Logger logger = Logger.getLogger(QuestionarioReportDocenteFileDaoImpl.class);
 
public static QuestionarioReportDocenteFileDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioReportDocenteFileDaoImpl();
return (QuestionarioReportDocenteFileDaoImpl) myInstance;
}
/**
* Este metodo é igual ao do curso File mas o criteria é sobre a class DocenteFile
* @param sigesCode
* @param reportGroupId
* @return null if does not exist yet
*/
public QuestionarioReportDocenteFile findBySigesCode(String sigesCode, long reportGroupId) {
List<QuestionarioReportDocenteFile>
reportDocenteFiles = createCriteria()
.add(eq("entityCode", "" + sigesCode))
.add(eq("reportGroup.id", reportGroupId)).list();
if(reportDocenteFiles== null || reportDocenteFiles.size() == 0)
return null;
return
reportDocenteFiles.get(0);
}
 
public QuestionarioReportDocenteFile findByRepository(String stream) {
List<QuestionarioReportDocenteFile>
reportDocenteFiles = createCriteria()
.add(eq("repositoryStream", stream)).list();
 
if(reportDocenteFiles== null || reportDocenteFiles.size() == 0)
return null;
return
reportDocenteFiles.get(0);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioReportCursoFileDaoImpl.java
New file
0,0 → 1,51
package pt.estgp.estgweb.domain.dao.impl;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.QuestionarioReportCursoFile;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* Created by jorgemachado on 25/03/16.
*/
public class QuestionarioReportCursoFileDaoImpl extends QuestionarioReportCursoFileDao
{
private static final Logger logger = Logger.getLogger(QuestionarioReportCursoFileDaoImpl.class);
 
public static QuestionarioReportCursoFileDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioReportCursoFileDaoImpl();
return (QuestionarioReportCursoFileDaoImpl) myInstance;
}
 
/**
* Este metodo é igual ao do docente File mas o criteria é sobre a class CursoFile
* @param sigesCode
* @param reportGroupId
* @return
*/
public QuestionarioReportCursoFile findBySigesCode(Integer sigesCode, long reportGroupId) {
List<QuestionarioReportCursoFile>
reportCursoFiles = createCriteria()
.add(eq("entityCode", ""+ sigesCode))
.add(eq("reportGroup.id",reportGroupId)).list();
if(reportCursoFiles== null || reportCursoFiles.size() == 0)
return null;
return
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/TeacherDaoImpl.java
138,6 → 138,16
setProjection(Projections.distinct(Projections.property("sigesCode")))
.createAlias("teachedUnits","tu")
.add(eq("tu.importYear",year))
.add(eq("tu.institutionCode",""+institutionCode)).list();
.add(eq("tu.institutionCode",""+institutionCode))
.list();
}
 
public List<Integer> findAllSigesCodesYear(String year) {
 
return createCriteria().
setProjection(Projections.distinct(Projections.property("sigesCode")))
.createAlias("teachedUnits","tu")
.add(eq("tu.importYear",year))
.list();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioReportFileGroupDocentesAnoDaoImpl.java
New file
0,0 → 1,34
package pt.estgp.estgweb.domain.dao.impl;
 
import org.hibernate.criterion.Order;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupDocentesAno;
 
import java.util.List;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class QuestionarioReportFileGroupDocentesAnoDaoImpl extends QuestionarioReportFileGroupDocentesAnoDao
{
private QuestionarioReportFileGroupDocentesAnoDaoImpl()
{
}
 
public static QuestionarioReportFileGroupDocentesAnoDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new QuestionarioReportFileGroupDocentesAnoDaoImpl();
return (QuestionarioReportFileGroupDocentesAnoDaoImpl) myInstance;
}
 
 
public List<QuestionarioReportFileGroupDocentesAno> findByYear(String importYear)
{
return createCriteria().add(eq("importYear",importYear)).addOrder(Order.asc("id")).list();
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/RepositoryFileDaoImpl.java
1,8 → 1,9
package pt.estgp.estgweb.domain.dao.impl;
 
import static org.hibernate.criterion.Restrictions.eq;
import pt.estgp.estgweb.domain.RepositoryFile;
 
import static org.hibernate.criterion.Restrictions.eq;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
24,7 → 25,7
 
public RepositoryFile loadByIdentifier(String identifier)
{
return (RepositoryFile) createCriteria().add(eq("id",identifier)).uniqueResult();
return (RepositoryFile) createCriteria().add(eq("id",Long.parseLong(identifier))).uniqueResult();
}
 
// public boolean hasTeacherFile(String identifier)
/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
1,6 → 1,5
package pt.estgp.estgweb.domain.dao;
 
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupAnoImpl;
import pt.estgp.estgweb.domain.dao.impl.*;
 
/**
385,19 → 384,36
return QuestionarioDaoImpl.getInstance();
}
 
public static QuestionarioReportFileGroupDao getQuestionarioReportFileGroupDaoImpl() {
return QuestionarioReportFileGroupDao.getInstance();
public static QuestionarioReportFileGroupDaoImpl getQuestionarioReportFileGroupDaoImpl() {
return QuestionarioReportFileGroupDaoImpl.getInstance();
}
 
public static QuestionarioReportFileGroupAnoDao getQuestionarioReportFileGroupAnoDaoImpl() {
return QuestionarioReportFileGroupAnoDao.getInstance();
}
 
public static QuestionarioReportFileDao getQuestionarioReportFileDaoImpl() {
return QuestionarioReportFileDao.getInstance();
 
public static QuestionarioReportCursoFileDaoImpl getQuestionarioReportCursoFileDaoImpl(){
return QuestionarioReportCursoFileDaoImpl.getInstance();
}
 
public static QuestionarioReportDocenteFileDaoImpl getQuestionarioReportDocenteFileDaoImpl(){
return QuestionarioReportDocenteFileDaoImpl.getInstance();
}
 
public static QuestionarioReportFileGroupDocentesAnoDaoImpl getQuestionarioReportFileGroupDocentesAnoDaoImpl() {
return QuestionarioReportFileGroupDocentesAnoDaoImpl.getInstance();
}
 
public static QuestionarioReportFileGroupCursosAnoDaoImpl getQuestionarioReportFileGroupCursosAnoDaoImpl() {
return QuestionarioReportFileGroupCursosAnoDaoImpl.getInstance();
}
 
public static QuestionarioReportFileDaoImpl getQuestionarioReportFileDaoImpl() {
return QuestionarioReportFileDaoImpl.getInstance();
}
 
 
public static QuestionarioRespostaDaoImpl getQuestionarioRespostaDaoImpl() {
return QuestionarioRespostaDaoImpl.getInstance();
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCursoImpl.java
New file
0,0 → 1,27
package pt.estgp.estgweb.domain;
 
import pt.estgp.estgweb.utils.ConfigProperties;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioCursoImpl extends OlapEntityQuestionarioCurso
{
 
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"CURSO_codigoCurso", "CURSO_nomeCurso", "CURSO_codigoInstituicao","CURSO_codigoNacionalInstituicao","CURSO_tipoCurso","CURSO_departament"});
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getCodigoCurso(),""+getNomeCurso(),""+ getCodigoInstituicao(),getCodigoNacionalInstituicao(), ConfigProperties.getProperty("course.degree.desc." + getDegree()),getDepartament()});
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaImpl.java
New file
0,0 → 1,24
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioPerguntaImpl extends OlapEntityQuestionarioPergunta
{
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"PERGUNTA_grupoCode", "PERGUNTA_grupoTitle", "PERGUNTA_subGrupoCode", "PERGUNTA_subGrupoTitle", "PERGUNTA_pergunta", "PERGUNTA_numero"});
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getGrupoCode(),""+getGrupoTitle(),""+getSubGrupoCode(),""+getSubGrupoTitle(),""+getPergunta(),getNumero()});
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioCursoImpl.java
New file
0,0 → 1,27
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapStarFactQuestionarioCursoImpl extends OlapStarFactQuestionarioCurso
{
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"unidades", "tipologias", "respostasCandidatas", "respostasObtidas"});
fields.addAll(Arrays.asList(getOlapCurso().getFields()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFields()));
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getUnidades(),""+getTipologias(),""+getRespostasCandidatas(),"" + getRespostasObtidas()});
fields.addAll(Arrays.asList(getOlapCurso().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFieldsValues()));
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioTipologiaImpl.java
New file
0,0 → 1,30
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapStarFactQuestionarioTipologiaImpl extends OlapStarFactQuestionarioTipologia {
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"respostasCandidatas", "respostasObtidas"});
fields.addAll(Arrays.asList(getOlapCurso().getFields()));
fields.addAll(Arrays.asList(getOlapTipologia().getFields()));
fields.addAll(Arrays.asList(getOlapUnidade().getFields()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFields()));
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getRespostasCandidatas(),""+getRespostasObtidas()});
fields.addAll(Arrays.asList(getOlapCurso().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapTipologia().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapUnidade().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFieldsValues()));
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioUnidadeImpl.java
New file
0,0 → 1,28
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapStarFactQuestionarioUnidadeImpl extends OlapStarFactQuestionarioUnidade {
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"tipologias", "respostasCandidatas", "respostasObtidas"});
fields.addAll(Arrays.asList(getOlapCurso().getFields()));
fields.addAll(Arrays.asList(getOlapUnidade().getFields()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFields()));
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getTipologias(),""+getRespostasCandidatas(),""+getRespostasObtidas()});
fields.addAll(Arrays.asList(getOlapCurso().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapUnidade().getFieldsValues()));
fields.addAll(Arrays.asList(getOlapQuestionario().getFieldsValues()));
return fields.toArray(new String[0]);
}
}
/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/OlapDimensionImpl.java
New file
0,0 → 1,87
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public abstract class OlapDimensionImpl extends DomainObject //implements OlapFieldContainer
{
 
/*
@Override
public String[] getFieldsNamesArray()
{
List<String> fieldsNames = new ArrayList<String>();
if(!canPublishFields())
return new String[0];
List<Method> methods = Arrays.asList(this.getClass().getMethods());
methods.sort(new Comparator<Method>() {
@Override
public int compare(Method o1, Method o2) {
return o1.getName().compareTo(o2.getName());
}
});
for(Method method:methods)
{
if(method.getReturnType() != null && method.getParameters().length == 0 && method.getName().startsWith("get") || method.getName().startsWith("is"))
{
//is a bean getter
if(!Arrays.asList(getFieldsNotAllowed()).contains(method.getName()))
{
fieldsNames.add(method.getName());
}
}
}
return fieldsNames.toArray(new String[0]);
}
 
@Override
public String[] getFieldsArray()
{
List<String> fieldsValues = new ArrayList<String>();
if(!canPublishFields())
return new String[0];
List<Method> methods = Arrays.asList(this.getClass().getMethods());
methods.sort(new Comparator<Method>() {
@Override
public int compare(Method o1, Method o2) {
return o1.getName().compareTo(o2.getName());
}
});
for(Method method:methods)
{
if(method.getReturnType() != null && method.getParameters().length == 0 && method.getName().startsWith("get") || method.getName().startsWith("is"))
{
//is a bean getter
if(!Arrays.asList(getFieldsNotAllowed()).contains(method.getName()))
{
try {
fieldsValues.add(method.invoke(this).toString());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
return fieldsValues.toArray(new String[0]);
}
 
@Override
public String[] getFieldsNotAllowed()
{
return new String[]{"getSaveDate","getUpdateDate","getId"};
}
 
@Override
public boolean canPublishFields() {
if(this instanceof OlapEntityQuestionarioUser)
{
return false;
}
return true;
}
*/
public abstract String[] getFields();
public abstract String[] getFieldsValues();
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/PageExternalUrlImpl.java
1,7 → 1,5
package pt.estgp.estgweb.domain;
 
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
import java.io.Serializable;
import java.util.List;
 
26,6 → 24,6
 
@Override
public void initClearances(UserSessionImpl u, boolean force) {
throw new NotImplementedException();
throw new RuntimeException("NotImplemented");
}
}
/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/domain/OlapEntityQuestionarioUnidadeImpl.java
New file
0,0 → 1,23
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioUnidadeImpl extends OlapEntityQuestionarioUnidade
{
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"UNIDADE_codigo", "UNIDADE_nome", "UNIDADE_periodoSigesS1ouS2ouAouT1aT4","UNIDADE_anoPlano1a4","UNIDADE_semestrePlanoConvertido1a6"});
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getCodigo(),""+getNome(),""+getPeriodoSigesS1ouS2ouAouT1aT4(),""+getAnoPlano1a4(),""+getSemestrePlanoConvertido1a6()});
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUserImpl.java
New file
0,0 → 1,16
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioUserImpl extends OlapEntityQuestionarioUser {
@Override
public String[] getFields() {
return new String[0];
}
 
@Override
public String[] getFieldsValues() {
return new String[0];
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapFactImpl.java
New file
0,0 → 1,79
package pt.estgp.estgweb.domain;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public abstract class OlapFactImpl extends DomainObject
{
/*
public String serializeEntireFactFields() throws InvocationTargetException, IllegalAccessException {
List<String> fieldsNames = new ArrayList<String>();
List<Method> methods = Arrays.asList(this.getClass().getMethods());
methods.sort(new Comparator<Method>() {
@Override
public int compare(Method o1, Method o2) {
return o1.getName().compareTo(o2.getName());
}
});
StringBuilder builder = new StringBuilder();
for(Method method:methods)
{
if(method.getReturnType() != null && method.getParameters().length == 0 && method.getName().startsWith("get") || method.getName().startsWith("is"))
{
if(isWrapperType(method.getClass()))
{
 
}
 
fieldsNames.add(method.getName());
 
}
}
return null;
}
 
private static final Set<Class<?>> WRAPPER_TYPES = getWrapperTypes();
 
public static boolean isWrapperType(Class<?> clazz)
{
return WRAPPER_TYPES.contains(clazz);
}
 
public static Set<Class<?>> getWrapperTypes()
{
Set<Class<?>> ret = new HashSet<Class<?>>();
ret.add(Boolean.class);
ret.add(Character.class);
ret.add(Byte.class);
ret.add(Short.class);
ret.add(Integer.class);
ret.add(Long.class);
ret.add(Float.class);
ret.add(Double.class);
ret.add(Void.class);
return ret;
}
 
@Override
public String[] getFieldsNamesArray() {
return new String[0];
}
 
@Override
public String[] getFieldsArray() {
return new String[0];
}
 
@Override
public String[] getFieldsNotAllowed() {
return new String[0];
}
 
@Override
public boolean canPublishFields() {
return false;
}*/
 
public abstract String[] getFields();
public abstract String[] getFieldsValues();
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologiaImpl.java
New file
0,0 → 1,24
package pt.estgp.estgweb.domain;
 
import java.util.Arrays;
import java.util.List;
 
/**
* Created by jorgemachado on 02/01/17.
*/
public class OlapEntityQuestionarioTipologiaImpl extends OlapEntityQuestionarioTipologia
{
 
@Override
public String[] getFields()
{
List<String> fields = Arrays.asList(new String[]{"TIPOLOGIA_codigoTipologia", "TIPOLOGIA_descricao", "TIPOLOGIA_codigoTurma", "TIPOLOGIA_codigoSiges", "TIPOLOGIA_nome","TIPOLOGIA_bi","TIPOLOGIA_username","TIPOLOGIA_email"});
return fields.toArray(new String[0]);
}
 
@Override
public String[] getFieldsValues() {
List<String> fields = Arrays.asList(new String[]{""+getCodigoTipologia(),""+getDescricao(),""+getCodigoTurma(),""+getCodigoSiges(),""+getNome(),getBi(),getUsername(),getEmail()});
return fields.toArray(new String[0]);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/PageContentImpl.java
6,7 → 6,6
import org.json.JSONArray;
import org.json.JSONException;
import pt.estgp.estgweb.services.pageContent.PageContentAccessPolicyAcl;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
import java.io.IOException;
import java.util.ArrayList;
405,7 → 404,7
 
@Override
public void initClearances(UserSessionImpl u, boolean force) {
throw new NotImplementedException();
throw new RuntimeException("NotImplemented");
}
 
 
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/chains/ResourceAccessControlEnum.java
21,8 → 21,15
 
surveyStatsDomain("resource.access.survey", new ResourceAccessControlSurvey()),
 
processDomain("resource.access.process", new ResourceAccessControlProcessDomainFilter());
processDomain("resource.access.process", new ResourceAccessControlProcessDomainFilter()),
 
 
questionariosReportBoardAndPedagogico("resource.access.questionariosReportBoardAndPedagogico", new ResourceAccessControlQuestionariosReportBoardsPedagogicoFilter()),
questionariosReportAdmins("resource.access.questionariosReportAdmins", new ResourceAccessControlQuestionariosReportAdminsFilter()),
questionariosReportDocente("resource.access.questionariosReportDocente", new ResourceAccessControlQuestionariosReportDocenteFilter()),
questionariosReportCursoPrivate("resource.access.questionariosReportCursoPrivate", new ResourceAccessControlQuestionariosReportCursoPrivateFilter()),
questionariosReportCurso("resource.access.questionariosReportCurso", new ResourceAccessControlQuestionariosReportAuthenticatedFilter());
 
private String key;
private ResourceAccessControlFilter filter;
 
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlQuestionariosReportAuthenticatedFilter.java
New file
0,0 → 1,43
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.QuestionarioReportFile;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroup;
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 ResourceAccessControlQuestionariosReportAuthenticatedFilter extends ResourceAccessControlFilter
{
public boolean canAccessResource(UserSession userSession, String identifier)
{
if(userSession.getUser() != null)
{
QuestionarioReportFileGroup qGroup =
DaoFactory.getQuestionarioReportFileGroupDaoImpl().findByRepository(identifier);
 
if(qGroup != null)
{
if(qGroup.isActive() || userSession.getUser().isSuperuserOrAdmin() || userSession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
return true;
 
}
else
{
QuestionarioReportFile qFile =
DaoFactory.getQuestionarioReportFileDaoImpl().findByRepository(identifier);
if(qFile != null)
{
if(qFile.isActive() || userSession.getUser().isSuperuserOrAdmin() || userSession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
return true;
}
}
}
return false;
}
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlQuestionariosReportCursoPrivateFilter.java
New file
0,0 → 1,50
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;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlQuestionariosReportCursoPrivateFilter extends ResourceAccessControlQuestionariosReportBoardsPedagogicoFilter
{
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(q == null)
{
return false;
}
//comissao so ve se estiver ativo
if(q.isActive() && course.isFromCourseCommission(userSession))
{
return true;
}
//BOARD ve sempre
else if(super.canAccessResource(userSession,identifier))
{
return true;
}
//BOARD DA ESCOLA SO VE SE ESTIVER ATIVO
else if(q.isActive())
{
if(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/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/ResourceAccessControlQuestionariosReportAdminsFilter.java
New file
0,0 → 1,26
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlQuestionariosReportAdminsFilter extends ResourceAccessControlFilter
{
public boolean canAccessResource(UserSession userSession, String identifier)
{
 
if(userSession.getUser() != null)
{
if(userSession.getUser().isSuperuserOrAdmin()
||
userSession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
return true;
}
return false;
}
}
Property changes:
Added: svn:executable
+ *
/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
New file
0,0 → 1,68
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlQuestionariosReportDocenteFilter extends ResourceAccessControlQuestionariosReportBoardsPedagogicoFilter
{
public boolean canAccessResource(UserSession userSession, String identifier)
{
 
if(userSession.getUser() != null && userSession.getUser() instanceof Teacher)
{
Teacher t = (Teacher) userSession.getUser();
int code = t.getSigesCode();
 
QuestionarioReportDocenteFile q =
DaoFactory.getQuestionarioReportDocenteFileDaoImpl().findByRepository(identifier);
 
if(q == null)
return false;
 
QuestionarioReportFileGroup questionarioReportFileGroup = q.getReportGroup();
QuestionarioReportFileGroupDocentesAno questionarioReportFileGroupDocentesAno = (QuestionarioReportFileGroupDocentesAno) DaoFactory.getQuestionarioReportFileGroupDaoImpl().narrow(questionarioReportFileGroup);
 
//DOCENTE SO VE SE ESTIVER ATIVO
if(q.isActive() && q.getEntityCode().equals(""+code))
return true;
//BOARDS AND PEDAGOGICO
else if(super.canAccessResource(userSession,identifier))
return true;
//PRESIDENTES DE ESCOLA SO VEEM SE ESTIVER ATIVO
else if(q.isActive())
{
//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;
 
}
return false;
}
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControl.java
1,18 → 1,19
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
import javassist.NotFoundException;
import pt.estgp.estgweb.domain.RepositoryFile;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.LoadControlFilter;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.RepositoryFileImpl;
import pt.estgp.estgweb.domain.RepositoryFile;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.UserSessionProxy;
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 javassist.NotFoundException;
 
import javax.servlet.http.HttpServletRequest;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
36,4 → 37,26
ResourceAccessControlEnum accessControl = ResourceAccessControlEnum.parse(repositoryFile.getAccessControl());
accessControl.getFilter().execute(request,response,filterParameters);
}
 
/**
* Service Proxy
* @param idStr
* @return
*/
public static boolean canAccessResource(String idStr,HttpServletRequest request)
{
long id;
try
{
id = Long.parseLong(idStr);
}
catch(NumberFormatException e)
{
return false;
}
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request);
RepositoryFile repositoryFile = DaoFactory.getRepositoryFileDaoImpl().load(id);
ResourceAccessControlEnum accessControl = ResourceAccessControlEnum.parse(repositoryFile.getAccessControl());
return accessControl.getFilter().canAccessResource(userSession, idStr);
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ResourceAccessControlQuestionariosReportBoardsPedagogicoFilter.java
New file
0,0 → 1,33
package pt.estgp.estgweb.filters.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlFilter;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
* @see pt.estgp.estgweb.filters.filters
*/
public class ResourceAccessControlQuestionariosReportBoardsPedagogicoFilter extends ResourceAccessControlFilter
{
public boolean canAccessResource(UserSession userSession, String identifier)
{
//BOARD CAN SEE ALLAYS IF EVEN IF INACTIVE
if(userSession.getUser() != null)
{
if(userSession.getUser().isSuperuserOrAdmin()
||
userSession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
return true;
 
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;
}
return false;
}
}
Property changes:
Added: svn:executable
+ *
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/questionarios/QuestionarioReportGroupForm.java
5,8 → 5,10
import org.apache.struts.action.ActionMapping;
import org.json.JSONArray;
import org.json.JSONException;
import pt.estgp.estgweb.domain.QuestionarioReportFile;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroup;
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupImpl;
import pt.estgp.estgweb.domain.QuestionarioReportFileImpl;
import pt.estgp.estgweb.domain.utils.InputDrivenInput;
import pt.estgp.estgweb.web.form.ApplicationForm;
 
49,12 → 51,22
}
};
 
QuestionarioReportFile questionarioReportFile = new QuestionarioReportFileImpl();
 
 
public QuestionarioReportGroupForm()
{
 
}
 
public QuestionarioReportFile getQuestionarioReportFile() {
return questionarioReportFile;
}
 
public void setQuestionarioReportFile(QuestionarioReportFile questionarioReportFile) {
this.questionarioReportFile = questionarioReportFile;
}
 
public String getParametersArrayObtainedFromWidget() {
return parametersArrayObtainedFromWidget;
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/form/assessments/AssessmentsForm.java
350,7 → 350,7
}
}
}
//esta parte é para as correcções prova a prova////////////////////////////////
//esta parte a para as correccoes prova a prova////////////////////////////////
String parameterC0 = request.getParameter("questionsListSizeC");
if(parameterC0 != null)
{
394,7 → 394,7
}
}
 
//esta parte é para as correcções questão a questão////////////////////////////////
//esta parte e para as correccoes questao a questao////////////////////////////////
String parameterCQuestion0 = request.getParameter("questionsListSizeCQuestion");
if(parameterCQuestion0 != null)
{
434,7 → 434,7
int i = 1;
double quotation =0;
for(AssessmentQuestionView qView : assessmentView.getQuestions())
{ //verificar se é prova de autoavaliacao e se tens questoes de texto ou praticas
{ //verificar se e prova de autoavaliacao e se tens questoes de texto ou praticas
if(qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_TEXT) && assessmentView.getType().equals("self-evaluation"))
addMessage(errors, httpServletRequest, "assessment.submit.form.error.type.question.text");
if(qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_PRACTICAL) && assessmentView.getType().equals("self-evaluation"))
444,10 → 444,10
//texto da questao
if(qView.getTextpt() == null || qView.getTextpt().trim().length() == 0)
addMessage(errors, httpServletRequest, "assessment.submit.form.error.question.need.label", Integer.toString(i));
//cotação da questao
//cotacao da questao
if(qView.getQuotation() <= 0)
addMessage(errors, httpServletRequest, "assessment.submit.form.error.question.need.quotation", Integer.toString(i));
//somar a cotações
//somar a cotacoes
quotation = quotation + qView.getQuotation();
 
if(qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_RADIO) || qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_CHECK))
/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/questionarios/reports/QuestionarioReportsController.java
32,21 → 32,49
private static final Logger logger = Logger.getLogger(QuestionarioReportsController.class);
 
 
public ActionForward saveReportTitle(ActionMapping mapping,
public ActionForward updateReportGroup(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
updateReportGroup(form,request,response);
return mapping.findForward("reportAdmin");
}
 
/**Accao para widget**/
public Boolean updateReportGroup(ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
 
QuestionarioReportGroupForm frm = (QuestionarioReportGroupForm) form;
IServiceManager sm = ServiceManager.getInstance();
String[] names = {};
Object[] args = {frm.getQuestionarioReportFileGroup().getId(),frm.getQuestionarioReportFileGroup().getTitle()};
Object[] args = {frm.getQuestionarioReportFileGroup().getId(),frm.getQuestionarioReportFileGroup().getTitle(),frm.getQuestionarioReportFileGroup().isActive()};
 
sm.execute(RequestUtils.getRequester(request, response),"UpdateReportGroup",args,names);
addMessage(request,"questionarios.report.parameters.saved");
return true;
}
 
return mapping.findForward("reportAdmin");
 
/**Accao para widget**/
public Boolean updateReport(ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
 
QuestionarioReportGroupForm frm = (QuestionarioReportGroupForm) form;
IServiceManager sm = ServiceManager.getInstance();
String[] names = {};
Object[] args = {frm.getQuestionarioReportFile().getId(),frm.getQuestionarioReportFile().isActive()};
 
sm.execute(RequestUtils.getRequester(request, response),"UpdateReportFile",args,names);
addMessage(request,"questionarios.report.parameters.saved");
return true;
}
 
public ActionForward saveReportGroup(ActionMapping mapping,
94,7 → 122,7
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {};
Object[] args = {frm.getQuestionarioReportFileGroup().getId()};
Object[] args = {frm.getQuestionarioReportFileGroup().getId(),frm.getQuestionarioReportFileGroup().getTitle(),frm.getQuestionarioReportFileGroup().isActive()};
 
QuestionarioReportFileGroup group = (QuestionarioReportFileGroup) sm.execute(RequestUtils.getRequester(request, response), "GenerateReportGroup", args, names);
((QuestionarioReportGroupForm) form).setQuestionarioReportFileGroup(group);
/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/assessments/AssessmentController.java
399,7 → 399,7
String description = view.getTitle()+qView.getTextpt();
qView.setImage(DomainUtils.getNewImage(qView.getBigImage(),description));
}
//tratar das cotações das possiveis respostas
//tratar das cota��es das possiveis respostas
if(qView.getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_RADIO))
{
for(AssessmentQuestionPossibleAnswerView pView : qView.getQuestionItems().get(0).getPossibleAnswers())
692,7 → 692,7
selectedUsersId.add(Long.parseLong(assessmentsForm.getSelectedUsers()[i]));
}
 
//chamada ao serviço
//chamada ao servi�o
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"serializable"};
Object[] args = {view,selectedUsersId,request};
778,7 → 778,7
selectedUsersId.add(Long.parseLong(assessmentsForm.getSelectedUsers()[i]));
}
 
//chamada ao serviço
//chamada ao serviço
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"serializable"};
Object[] args = {view,selectedUsersId,request};
996,7 → 996,7
{
AssessmentsForm assessmentsForm = (AssessmentsForm) form;
AssessmentView assessmentView = assessmentsForm.getAssessmentView();
//atirar configurações da correcção para a sessão, primeiro remover o que lá estiver depois adicionar
//atirar configurações da correcção para a sessão, primeiro remover o que lá estiver depois adicionar
try
{
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request,response);
1019,7 → 1019,7
}
/////////////////////////////////////////////////////////////////////////////
 
//se a correcção for prova a prova
//se a correcção for prova a prova
try{
if(assessmentsForm.getCorrectionSelection().equals("assessment"))
{
1033,7 → 1033,7
assessmentsForm.setAssessmentResponsesView(responsesViews);
 
}
//se a correcção for questão a questão
//se a correcção for questão a questão
else if(assessmentsForm.getCorrectionSelection().equals("question"))
{
 
1068,7 → 1068,7
AssessmentsForm assessmentsForm = (AssessmentsForm) form;
 
try
{ //buscar configurações da correcção à sessão
{ //buscar configurações da correcção à sessão
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request,response);
List<String> l = (List<String>) sess.get("correctionConf");
assessmentsForm.setCorrectionSelection(l.get(0));
1096,7 → 1096,7
{
assessmentView.getQuestions().remove(qView);
}
//verificar se existe resposta a esta questão
//verificar se existe resposta a esta questão
else{
boolean exist = false;
for(AssessmentQuestionItemView iView : qView.getQuestionItems())
1194,7 → 1194,7
AssessmentsForm assessmentsForm = (AssessmentsForm) form;
 
try
{ //buscar configurações da correcção à sessão
{ //buscar configuracoes da correccao a sessao
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request,response);
List<String> l = (List<String>) sess.get("correctionConf");
assessmentsForm.setCorrectionSelection(l.get(0));
1213,7 → 1213,7
{
assessmentsForm.setAssessmentQuestionAnswers(assessmentQuestionAnswersView);
assessmentsForm.setAssessmentQuestionsRView(new ArrayList<AssessmentQuestionView>());
//achar a questão
//achar a quest�o
for(AssessmentQuestionView qView : assessmentQuestionAnswersView.get(0).getResponse().getAssessment().getQuestions())
{
if(qView.getId()==question)
1259,7 → 1259,7
if(aView != null)
{
addMessage(request, "assessment.message.question.corrected.sucess");
assessmentsForm.setAssessmentView(aView);//para o método seguinte funcionar
assessmentsForm.setAssessmentView(aView);//para o m�todo seguinte funcionar
confirmChoicesCorrect(mapping,form,request,response);
return mapping.findForward("listQuestionsOrResponsesToCorrect");
}
/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/java/pt/utl/ist/berserk/logic/serviceManager/SimpleServiceInvoker.java
27,8 → 27,8
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ExecutedFilterException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
 
 
/**
* The ServiceInvoker subclass that simply invokes the services
* without adding any special functionality.
93,6 → 93,6
 
@Override
public Object checkFilters(Object requester, IService service, String methodName, Object[] arguments, String[] names, IFilterBroker filterBroker) throws ServiceManagerException, Throwable {
throw new NotImplementedException();
throw new RuntimeException("NotImplemented");
}
}
/branches/v3/impl/src/updates/version/updateDimensoesPaeQuestionarios
26,4 → 26,33
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 CORRER ISTO APENAS NA ESTG
 
>>>>NO PAE CORRER AINDA
CORRER A ACTULIZAÇAO DE ROLES NA INTERFACE
 
ISTO NAO DEVERA SER NECESSARIO UMA VEZ QUE AINDA NAO SE TINHA CORRIDO O OLAP VEZ NENHUMA
CONFIRMAR APOS CORRER QUE FICAM COM OS DISCRIMINATORS CERTOS
update olap_e_timeline set discrimitator = "OlapHistoryDimensionImpl";
update olap_e_quest set discrimitator = "OlapEntityQuestionarioImpl";
update olap_e_quest_curso set discrimitator = "OlapEntityQuestionarioCursoImpl";
update olap_e_quest_unit set discrimitator = "OlapEntityQuestionarioUnidadeImpl";
update olap_e_quest_tipologia set discrimitator = "OlapEntityQuestionarioTipologiaImpl";
update olap_e_quest_pgrp set discrimitator = "OlapEntityQuestionarioPerguntaImpl";
update olap_e_quest_pgrp_esforco set discrimitator = "OlapEntityQuestionarioPerguntaEsforcoImpl";
update olap_e_quest_user set discrimitator = "OlapEntityQuestionarioUserImpl";
 
update olap_star_quest_curso set discrimitator = "OlapStarFactQuestionarioCursoImpl";
update olap_star_quest_unidade set discrimitator = "OlapStarFactQuestionarioUnidadeImpl";
update olap_star_quest_tipologia set discrimitator = "OlapStarFactQuestionarioTipologiaImpl";
update olap_star_quest set discrimitator = "OlapStarFactQuestionarioImpl";
update olap_star_quest_answer set discrimitator = "OlapStarFactQuestionarioAnswerImpl";
update olap_star_quest_answer_esforco set discrimitator = "OlapStarFactQuestionarioAnswerEsforcoImpl";
/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/OlapQuestionarios.hbm.xml
5,14 → 5,17
 
<hibernate-mapping>
 
<class name="pt.estgp.estgweb.domain.OlapHistoryDimension" table="olap_e_timeline">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapHistoryDimension" table="olap_e_timeline" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="nome" type="string" index="nomeIndex"/>
<property name="descricao" type="string"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapHistoryDimensionImpl" discriminator-value="OlapHistoryDimensionImpl"/>
</class>
 
 
20,26 → 23,31
 
 
<!--Questionario Dimensao-->
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionario" table="olap_e_quest">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionario" table="olap_e_quest" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="ano" type="string" index="anoIndex"/>
<property name="semestre" type="string" index="semestreIndex"/>
<property name="generatedTime" type="timestamp" index="associatedTimeIndex"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioImpl" discriminator-value="OlapEntityQuestionarioImpl"/>
</class>
 
 
 
 
<!--CURSO DIMENSAO-->
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioCurso" table="olap_e_quest_curso">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioCurso" table="olap_e_quest_curso" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="codigoCurso" type="string" index="codigoCursoIndex"/>
<property name="nomeCurso" type="string" index="nomeCursoIndex"/>
 
52,6 → 60,7
</property>
<property name="departament" type="string" index="departamentIndex"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioCursoImpl" discriminator-value="OlapEntityQuestionarioCursoImpl"/>
</class>
 
 
60,11 → 69,13
 
 
<!--Unidade Dimensao-->
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioUnidade" table="olap_e_quest_unit">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioUnidade" table="olap_e_quest_unit" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="codigo" type="string" index="codigoIndex"/>
<property name="nome" type="string"/>
<!-- S1 S2 A T1 T2 T3 T4 -->
85,17 → 96,20
 
 
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioUnidadeImpl" discriminator-value="OlapEntityQuestionarioUnidadeImpl"/>
</class>
 
 
 
 
<!--Tipologia Dimensao-->
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioTipologia" table="olap_e_quest_tipologia">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioTipologia" table="olap_e_quest_tipologia" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="codigoTipologia" type="string" index="codigoIndex"/>
<property name="descricao" type="string"/>
<property name="codigoTurma" type="string" index="codigoIndex"/>
106,14 → 120,17
<property name="username" type="string"/>
<property name="email" type="string"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioTipologiaImpl" discriminator-value="OlapEntityQuestionarioTipologiaImpl"/>
</class>
 
 
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioPergunta" table="olap_e_quest_pgrp">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioPergunta" table="olap_e_quest_pgrp" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="grupoCode" type="string" index="grupoCodeIndex"/>
<property name="grupoTitle" type="string" index="grupoTitleIndex"/>
<property name="subGrupoCode" type="string" index="subGrupoCodeIndex"/>
121,13 → 138,16
<property name="pergunta" type="string" index="perguntaIndex"/>
<property name="numero" type="string" index="numeroIndex"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioPerguntaImpl" discriminator-value="OlapEntityQuestionarioPerguntaImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioPerguntaEsforco" table="olap_e_quest_pgrp_esforco">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioPerguntaEsforco" table="olap_e_quest_pgrp_esforco" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="grupoCode" type="string" index="grupoCodeIndex"/>
<property name="grupoTitle" type="string" index="grupoTitleIndex"/>
<property name="subGrupoCode" type="string" index="subGrupoCodeIndex"/>
135,13 → 155,18
<property name="pergunta" type="string" index="perguntaIndex"/>
<property name="numero" type="string" index="numeroIndex"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioPerguntaEsforcoImpl" discriminator-value="OlapEntityQuestionarioPerguntaEsforcoImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioUser" table="olap_e_quest_user">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
 
 
<class name="pt.estgp.estgweb.domain.OlapEntityQuestionarioUser" table="olap_e_quest_user" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapDimensionImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="sigesCode" type="string" index="sigesCodeIndex"/>
<property name="distrito" type="string" index="distritoIndex"/>
<property name="concelho" type="string" index="concelhoIndex"/>
187,19 → 212,21
<property name="academicDegree" type="string" index="academicDegreeIndex"/>
<property name="scholarDegree" type="string" index="scholarDegreeIndex"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapEntityQuestionarioUserImpl" discriminator-value="OlapEntityQuestionarioUserImpl"/>
 
 
</class>
 
<!-- FACTOS EM ESTRELA -->
 
 
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioCurso" table="olap_star_quest_curso">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioCurso" table="olap_star_quest_curso" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapFactImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
 
<!-- Atencao estes valores sao apenas das entidades olap criadas, para proceder às contagens
deve usar a tabela de factos de respostas, as tipologias nao sao unicas, correspondem
215,12 → 242,17
<!--Se quiser usar factos historicos preciso de uma dimensao onde estejam todas as respostas dos questionarios pedagogicos-->
<many-to-one name="olapTimeLine" class="pt.estgp.estgweb.domain.OlapHistoryDimension" outer-join="false" lazy="proxy"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioCursoImpl" discriminator-value="OlapStarFactQuestionarioCursoImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioUnidade" table="olap_star_quest_unidade">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
 
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioUnidade" table="olap_star_quest_unidade" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapFactImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<!-- Atencao estes valores sao apenas das entidades olap criadas, para proceder às contagens
deve usar a tabela de factos de respostas, as tipologias nao sao unicas, correspondem
na realidade ao numero de questionarios / docente -->
234,12 → 266,18
<!--Se quiser usar factos historicos preciso de uma dimensao onde estejam todas as respostas dos questionarios pedagogicos-->
<many-to-one name="olapTimeLine" class="pt.estgp.estgweb.domain.OlapHistoryDimension" outer-join="false" lazy="proxy"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioUnidadeImpl" discriminator-value="OlapStarFactQuestionarioUnidadeImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioTipologia" table="olap_star_quest_tipologia">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
 
 
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioTipologia" table="olap_star_quest_tipologia" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapFactImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<!-- Atencao estes valores sao apenas das entidades olap criadas, para proceder às contagens
deve usar a tabela de factos de respostas, as tipologias nao sao unicas, correspondem
na realidade ao numero de questionarios / docente -->
253,19 → 291,23
<!--Se quiser usar factos historicos preciso de uma dimensao onde estejam todas as respostas dos questionarios pedagogicos-->
<many-to-one name="olapTimeLine" class="pt.estgp.estgweb.domain.OlapHistoryDimension" outer-join="false" lazy="proxy"/>
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioTipologiaImpl" discriminator-value="OlapStarFactQuestionarioTipologiaImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionario" table="olap_star_quest">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
 
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionario" table="olap_star_quest" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapFactImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="respondido" type="boolean" index="respondidoIndex"/>
<property name="dataInicio" type="timestamp"/>
<property name="tempoTotal" type="long"/>
<property name="dataFim" type="timestamp"/>
 
 
<!--Associação directa às classes de resposta-->
<many-to-one name="olapTipologia" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioTipologia" outer-join="false" lazy="proxy"/>
<many-to-one name="olapUnidade" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioUnidade" outer-join="false" lazy="proxy"/>
280,15 → 322,18
<many-to-one name="olapPerfilUser" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioUser" outer-join="false" lazy="proxy"/>
 
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioImpl" discriminator-value="OlapStarFactQuestionarioImpl"/>
 
 
</class>
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswer" table="olap_star_quest_answer">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswer" table="olap_star_quest_answer" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapFactImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="dataEvento" type="timestamp"/>
<property name="tempoLevado" type="long"/>
<property name="ordemResposta" type="int"/>
308,17 → 353,20
<many-to-one name="olapPerfilUser" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioUser" outer-join="false" lazy="proxy"/>
 
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswerImpl" discriminator-value="OlapStarFactQuestionarioAnswerImpl"/>
 
 
</class>
 
 
 
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswerEsforco" table="olap_star_quest_answer_esforco">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<class name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswerEsforco" table="olap_star_quest_answer_esforco" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OlapFactImpl</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long" unsaved-value="0">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<property name="dataEvento" type="timestamp"/>
<property name="tempoLevado" type="long"/>
<property name="ordemResposta" type="int"/>
338,6 → 386,7
<many-to-one name="olapPerfilUser" class="pt.estgp.estgweb.domain.OlapEntityQuestionarioUser" outer-join="false" lazy="proxy"/>
 
<many-to-one name="questionario" class="pt.estgp.estgweb.domain.Questionario" outer-join="false" lazy="proxy"/>
<subclass name="pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswerEsforcoImpl" discriminator-value="OlapStarFactQuestionarioAnswerEsforcoImpl"/>
 
 
</class>
/branches/v3/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
166,10 → 166,11
<key column="courseUnit"/>
<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
719,19 → 719,45
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="title" type="string"/>
<property name="active" type="boolean"/>
<property name="reportProcessorClass" type="string"/>
<property name="repositoryStreamZipFile" type="string" index="repositoryIndexZipFile"/>
<property name="repositoryStreamCsvFile" type="string" index="repositoryIndexCsvFile"/>
<property name="reportGenerationTaskId" type="long">
<column name="report_generation_task_id" default="0"/>
</property>
<set name="reportFiles" lazy="true" order-by="entityName asc">
<key column="questionario_report_file_group"/>
<one-to-many class="pt.estgp.estgweb.domain.QuestionarioReportFile" />
</set>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileGroupImpl">
<meta attribute="scope-class">public abstract</meta>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAno">
<meta attribute="scope-class">public abstract</meta>
<property name="importYear" type="string"/>
<property name="importYear" type="string" index="importYearIndex"/>
<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>
<property name="citiesJson" type="string">
<column name="citiesJson" sql-type="TEXT"/>
</property>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAnoImpl">
<meta attribute="scope-class">public abstract</meta>
<subclass name="pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAno">
756,23 → 782,62
<discriminator column="discriminator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="active" type="boolean"/>
<property name="entityName" type="string"/><!--opcional use-->
<property name="entityCode" type="string"/><!--opcional use-->
<property name="repositoryStream" type="string" index="repositoryIndex"/>
<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>
<property name="percentagemRespostas" type="int">
<column name="percentagemRespostas" default="0"/>
</property>
<property name="percentagemInquiridos" type="int">
<column name="percentagemInquiridos" default="0"/>
</property>
<property name="citiesJson" type="string">
<column name="citiesJson" sql-type="TEXT"/>
</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>
<property name="tipoCurso" type="string"/>
<property name="escola" type="string"/>
<property name="codigoEscola" type="string"/>
<!--<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" order-by="name asc" 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/css/style.css
43,4 → 43,48
{}
 
 
.box-col-1px
{
padding: 1px !important;
}
.box-col-2px
{
padding: 2px !important;
}
.box-col-3px
{
padding: 3px !important;
}
.box-col-4px
{
padding: 4px !important;
}
.box-col-5px
{
padding: 5px !important;
}
 
/*REPORTS STYLES*/
.isAnuaistrue,.isSemestretrue,.isTrimestretrue, .isGrautrue
{
background-color: greenyellow;
}
.isAnuaisfalse,.isSemestrefalse,.isTrimestrefalse, isGraufalse
{
background-color: lightgray;
color: #f5f5f5;
}
.periodosTable
{
width: 100%;
border: 1px solid black;
padding: 0;
}
.periodosTable td
{
border: 1px solid black;
text-align: center;
padding: 0;
}
 
 
/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/js/baco-widgets.js
33,13 → 33,13
/**
*Use parameters instead of serialize form and the action provided
* @param serviceName
* @param form
* @param webMessagesContainer
* @param handlerOk(responseObjJson)
* @param handlerFail(responseObjJson)
*/
function widgetCallWithActionParameters(action,serviceName,parameters,form,handlerOk,handlerFail)
function widgetCallWithActionParameters(action,serviceName,parameters,webMessagesContainer,handlerOk,handlerFail)
{
$(form).find(".web-messages").html('<div class="alert alert-info">Enviando ...</div>');
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-info">Enviando ...</div>');
 
var data = parameters;
$.ajax({
50,21 → 50,21
success: function(resposta)
{
 
$(form).find(".web-messages").html("");
$(webMessagesContainer).find(".web-messages").html("");
if(resposta.service == "error")
{
$(form).find(".web-messages").html('<div class="alert alert-danger">' + resposta.exception + '</div>');
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">' + resposta.exception + '</div>');
}
else if(resposta.service == "fail")
{
 
for(var msg in resposta.messages)
{
$(form).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
}
for(var error in resposta.errors)
{
$(form).find(".web-messages").append('<div class="alert alert-warning">' + resposta.errors[error] + '</div>');
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-warning">' + resposta.errors[error] + '</div>');
}
if(handlerFail != undefined)
handlerFail(resposta.response);
74,20 → 74,23
{
for(var msg in resposta.messages)
{
$(form).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
}
if(handlerOk != undefined)
handlerOk(resposta.response);
}
},
error: function() {
$(form).find(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor tente novamente</div>');
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor tente novamente</div>');
}
});
}
 
 
 
function widgetSimpleCall(serviceName,form,handlerOk,handlerFail){
var data = $(form).serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
widgetSimpleCallWithActionParameters(form.action,serviceName,data,form,handlerOk,handlerFail);
}
/**
*
* @param serviceName
95,33 → 98,32
* @param handlerOk()
* @param handlerFail()
*/
function widgetSimpleCall(serviceName,form,handlerOk,handlerFail)
function widgetSimpleCallWithActionParameters(action,serviceName,data,webMessagesContainer,handlerOk,handlerFail)
{
$(form).find(".web-messages").html('<div class="alert alert-info">Enviando ...</div>');
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-info">Enviando ...</div>');
 
var data = $(form).serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
$.ajax({
url: form.action + "?dispatch=executeSimpleServiceOkFail&serviceJson=" + serviceName,
url: action + "?dispatch=executeSimpleServiceOkFail&serviceJson=" + serviceName,
type: "POST",
data: data,
dataType: "json",
success: function(resposta)
{
$(form).find(".web-messages").html("");
$(webMessagesContainer).find(".web-messages").html("");
if(resposta.service == "error")
{
$(form).find(".web-messages").html('<div class="alert alert-danger">' + resposta.exception + '</div>');
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">' + resposta.exception + '</div>');
}
else if(resposta.service == "fail")
{
 
for(var msg in resposta.messages)
{
$(form).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
}
for(var error in resposta.errors)
{
$(form).find(".web-messages").append('<div class="alert alert-warning">' + resposta.errors[error] + '</div>');
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-warning">' + resposta.errors[error] + '</div>');
}
if(handlerFail != undefined)
handlerFail();
131,14 → 133,14
{
for(var msg in resposta.messages)
{
$(form).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
$(webMessagesContainer).find(".web-messages").append('<div class="alert alert-success">' + resposta.messages[msg] + '</div>');
}
if(handlerOk != undefined)
handlerOk();
}
},
error: function() {
$(form).find(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor tente novamente</div>');
$(webMessagesContainer).find(".web-messages").html('<div class="alert alert-danger">Erro de comunicação, por favor tente novamente</div>');
}
});
}
/branches/v3/impl/src/web/layout/themes/estg/footer.jsp
11,6 → 11,7
<!--TUDO.estgp.pt Trafego-->
<script type="text/javascript">
 
/*
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19734148-6']);
_gaq.push(['_trackPageview']);
20,6 → 21,7
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
*/
 
</script>
 
28,6 → 30,7
<!--ESTGP-->
<script type="text/javascript">
 
/*
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19734148-1']);
_gaq.push(['_trackPageview']);
37,6 → 40,7
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
*/
</script>
</baco:isNotAuthenticated>
 
45,6 → 49,7
<!--BACO-->
<script type="text/javascript">
 
/*
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19734148-2']);
_gaq.push(['_trackPageview']);
54,6 → 59,7
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
*/
 
</script>
</baco:isAuthenticated>
62,6 → 68,7
<baco:hasRole role="student">
<script type="text/javascript">
 
/*
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19734148-3']);
_gaq.push(['_trackPageview']);
70,7 → 77,7
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
})();*/
 
</script>
</baco:hasRole>
81,6 → 88,7
<baco:hasRole role="teacher">
<script type="text/javascript">
 
/*
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19734148-4']);
_gaq.push(['_trackPageview']);
89,7 → 97,7
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
})();*/
 
</script>
</baco:hasRole>
/branches/v3/impl/src/web/layout/themes/scripts-default.jsp
728,3 → 728,6
<script src="<%=request.getContextPath()%>/js/bootstrap-fileinput/themes/gly/theme.js"></script>
<script src="<%=request.getContextPath()%>/js/bootstrap-fileinput/js/locales/pt.js"></script>
<script src="<%=request.getContextPath()%>/js/angularjs/1.4.8/angular.min.js"></script>
 
 
 
/branches/v3/impl/src/web/examples/examples.jsp
40,10 → 40,13
 
<li><html:link page="/examples/tagsTemplates/bodyTag.jsp">Utilização de um template com body (BodyTag)</html:link></li>
<li><html:link page="/examples/tagsTemplates/objectAttributeTag.jsp">Utilização de um template passando um objecto complexo /objectAttributeTag)</html:link></li>
</ul>
<h2>Diretorios Virtuais</h2>
 
 
 
 
<ul>
<li>LINK DE TESTE</li>
</ul>
 
 
/branches/v3/impl/src/web/examples/tagsTemplates/objectAttributeTag.jsp
2,7 → 2,6
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="jomm.utils.StringsUtils" %>
<%@ page import="pt.estgp.estgweb.utils.RoleManager" %>
<%@taglib prefix="t" tagdir="/WEB-INF/tags/examples" %>
 
/branches/v3/impl/src/web/user/home/panels/questionarios.jsp
6,22 → 6,24
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin,pedagogicCouncil.president">
 
<div class="panel panel-primary">
<div class="panel-heading">Questionários</div>
<div class="panel-body">
<div class="list-group">
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin">
<div class="list-group-item"><html:link action="/user/listQuestionarios">Administração de Questionários</html:link></div>
</baco:hasRole>
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin,pedagogicCouncil.president">
<div class="list-group-item"><html:link action="/user/seeQuestionarios">Acompanhamento de Questionários</html:link></div>
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin">
<div class="list-group-item"><html:link action="/user/listQuestionarios">Administração de Questionários</html:link></div>
</baco:hasRole>
<baco:hasRole role="admin,all,services,questionarios.gerais,questionarios.admin,pedagogicCouncil.president">
<div class="list-group-item"><html:link action="/user/seeQuestionarios">Acompanhamento de Questionários</html:link></div>
</baco:hasRole>
<baco:hasRole role="admin,all,questionarios.admin">
<div class="list-group-item"><html:link action="/user/listQuestionariosReports">Administração de Relatórios</html:link></div>
</baco:hasRole>
</baco:hasRole>
<baco:hasRole role="admin,all,questionarios.admin">
<div class="list-group-item"><html:link action="/user/listQuestionariosReports">Administração de Relatórios</html:link></div>
</baco:hasRole>
<div class="list-group-item"><html:link action="/user/seeQuestionarios">Consulta de Relatórios</html:link></div>
<div class="list-group-item"><html:link action="/user/reportsPedagogicoEstudante">Consulta de Relatórios</html:link></div>
</div>
</div>
</div>
</baco:hasRole>
 
/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/adminReport.jsp
11,6 → 11,8
<%@ 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" %>
 
<%@taglib prefix="bacoTemplates" tagdir="/WEB-INF/tags" %>
<%--
Created by IntelliJ IDEA.
User: jorgemachado
26,10 → 28,12
request.setAttribute("group",group);
 
 
/*
JobServiceTaskImpl job = group.getReportGenerationTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(group.getReportGenerationTaskId()) :
null;
request.setAttribute("Job", job);
*/
 
%>
 
58,7 → 62,23
<html:text styleClass="form-control" property="questionarioReportFileGroup.title"/>
</div>
</div>
<script>
$(document).ready(function(){
$(".checkQuestionarioActivo").attr("data-toogle","toggle");
$('.checkQuestionarioActivo').bootstrapToggle({
on: 'Visivel',
off: 'Inactivo'
});
});
 
</script>
<div class="form-group">
<label class="col-md-2 control-label">Visibilidade</label>
<div class="col-md-10">
<html:checkbox styleClass="checkQuestionarioActivo" property="questionarioReportFileGroup.active"/>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Tipo</label>
<div class="col-md-10">
<label class="bg-info" style="padding:2px"><bean:message key="${group.reportProcessorClass}"/></label>
111,42 → 131,19
 
</div>
<div class="col-md-10">
<button type="button" class="btn btn-success" onclick="set(form,'saveReportTitle'),form.submit();">Salvar</button>
<button type="button" class="btn btn-success" onclick="set(form,'updateReportGroup'),form.submit();">Salvar</button>
<a class="btn btn-danger" href="<%=request.getContextPath()%>/user/listQuestionariosReports.do">Sair</a>
</div>
</div>
 
<div class="col-md-12">
<%
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
schedulleTasksForm.setJobServiceTask(job);
schedulleTasksForm.setId(job.getId());
request.setAttribute("SchedulleTasksForm",schedulleTasksForm);
if(job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FAILED ||
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.UNKNOWN_ERROR ||
job.getStatusEnum() == JobServiceTaskImpl.JobStatus.FINISHED_ERRORS )
{
%>
<div class="alert alert-danger"><%=MessageResources.getInstance(request).getMessage("job.status."+job.getStatus())%>, Consulte o Log</div>
<%
}
%>
<div class="task-log task-log-xs" data-href="<%=request.getContextPath()%>/user/startAdminQuestionariosReportsGroup.do?questionarioReportFileGroup.id=${group.id}">
<jsp:include page="/admin/configuration/taskLog.jsp"/>
</div>
<%
}
else
{
%>
<div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
<%
}
%>
</div>
<bacoTemplates:schedulleTaskProgress
targetUrlWithOutContextPath="/user/startAdminQuestionariosReportsGroup.do?questionarioReportFileGroup.id=${group.id}"
taskId="${group.reportGenerationTaskId}"
transactional="true"
logSizeXs="true"
/>
 
 
<button type="button" class="btn btn-warning" onclick="set(form,'runJobGenerate'),form.submit();">Gerar Relatórios</button>
</html:form>
</div>
/branches/v3/impl/src/web/user/questionarios/reports/topnavReportPedagogicoEstudanteDocente.jsp
New file
0,0 → 1,12
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/reportsPedagogicoEstudante.do", "surveys.reports.pedagogico");
topNav.addNavPlace(null, "surveys.reports.pedagogico.docente");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/reports/showReportsPedagogicoEstudanteCurso.jsp
New file
0,0 → 1,178
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportCursoFile" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFile" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAno" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="java.util.Set" %>
<%@ 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" %>
<%@taglib prefix="reports" tagdir="/WEB-INF/tags/reports" %>
<%@taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
 
<!--
<script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
<script type='text/javascript'>
google.charts.load('upcoming', {'packages': ['geochart','gauge'],mapsApiKey: 'AIzaSyBd66v8v8y49E7U0zzr3RjD33VdDHZLZRY'});
google.charts.setOnLoadCallback(drawMarkersMap);
 
function drawMarkersMap() {
var data = google.visualization.arrayToDataTable([
['Distrito','Respostas'],
['Leiria',23],
['Lisboa',34],
['Portalegre',90],
['Braga',4],
['Faro',2]
 
]);
 
var options = {
region: 'PT',
displayMode: 'markers',
//dataMode: 'markers',
colorAxis: {colors: ['blue']},
backgroundColor: '#81d4fa',
width: 150, height: 150
//,
 
//showLegend: false,
 
//dataMode: 'regions',
//chartArea: {left:0,top:0,'width': '100%', 'height': '100%'}
};
 
//var geomap = new google.visualization.GeoMap(container);
var chart = new google.visualization.GeoChart(document.getElementById('chart_div'));
chart.draw(data, options);
 
 
 
var data2 = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Particip. %', 80]
]);
 
var options2 = {
min:0, max:100,
width: 100, height: 100,
greenFrom: 70, greenTo: 100,
yellowFrom:25, yellowTo: 50,
redFrom:0, redTo: 25,
minorTicks: 5
};
 
var chart2 = new google.visualization.Gauge(document.getElementById('chart_div2'));
 
chart2.draw(data2, options2);
 
/*setInterval(function() {
data2.setValue(0, 1, 40 + Math.round(60 * Math.random()));
chart2.draw(data2, options2);
}, 13000);
setInterval(function() {
data2.setValue(1, 1, 40 + Math.round(60 * Math.random()));
chart2.draw(data2, options2);
}, 5000);
setInterval(function() {
data2.setValue(2, 1, 60 + Math.round(20 * Math.random()));
chart2.draw(data2, options2);
}, 26000);*/
};
</script>
-->
<div class="container-fluid">
 
<%
AbstractDao.getCurrentSession().beginTransaction();
String id = request.getParameter("id");
 
QuestionarioReportFileGroupCursosAno reportGroup = DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(Long.parseLong(id));
request.setAttribute("reportGroup",reportGroup);
%>
<reports:reportGroupPanel reportGroup="${reportGroup}" title="Relatório de Curso - Ano: ${reportGroup.importYearFormatted}"/>
 
<div class="web-messages-table">
<div class="web-messages"></div>
</div>
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Código</th>
<th class="filter-name filter-select" data-placeholder="Todos">Tipo Curso</th>
<th class="filter-name filter-select" data-placeholder="Todos">Curso</th>
<th class="filter-name filter-select" data-placeholder="Todas">Escola</th>
<th>Alunos com Resposta %</th>
<th>Alunos com Resposta</th>
<th>Alunos Selecionados</th>
<th>Respostas %</th>
<th>Respostas</th>
<th>Repostas Requisitadas</th>
<th>Descarregar Relatório</th>
<baco:hasRole role="admin,super,questionarios.admin">
<th>Visivel</th>
</baco:hasRole>
</tr>
</thead>
<tbody>
<%
Set<QuestionarioReportFile> reports = reportGroup.getReportFiles();
for(QuestionarioReportFile report: reports)
{
QuestionarioReportCursoFile cursoFile = (QuestionarioReportCursoFile) report;
request.setAttribute("cursoFile",cursoFile);
if(cursoFile.isActive() || UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
{
%>
<tr>
<td>${cursoFile.entityCode}</td>
<td>${cursoFile.tipoCurso}</td>
<td>${cursoFile.entityName}</td>
<td>${cursoFile.escola}</td>
 
<!--INQUIRIDOS-->
<td>
<reports:progressPercent parcel="${cursoFile.inquiridosComResposta}" total="${cursoFile.inquiridos}" isUserType="true"/>
</td>
<!--${percentageColor} comes from progress Percent-->
<td><label class="label label-${percentageColor}" style="font-size: 1em"> ${cursoFile.inquiridosComResposta}</label><span class="icon icon-user"> </span></td>
<td><label class="label label-primary">${cursoFile.inquiridos}</label><span class="icon icon-users"> </span></td>
 
 
<!--RESPOSTAS-->
<td>
<reports:progressPercent parcel="${cursoFile.respostas}" total="${cursoFile.respostasRequisitadas}" isFilesType="true"/>
</td>
<!--${percentageColor} comes from progress Percent-->
<td class="text-nowrap"><label class="label label-${percentageColor}" style="font-size: 1em">${cursoFile.respostas}</label> <span class="icon icon-file-text2"> </span></td>
<td class="text-nowrap"><label class="label label-primary" style="font-size: 1em">${cursoFile.respostasRequisitadas}</label> <span class="icon icon-files-empty"> </span> </td>
 
 
<td>
<bacoTags:repositoryFile transactional="true" repositoryStream="${cursoFile.repositoryStream}"/>
</td>
<baco:hasRole role="admin,super,questionarios.admin">
<td id="updateReport${cursoFile.id}container">
<reports:reportCheckboxVisibiltyReportFile reportFile="${cursoFile}" containerRefSelect="updateReport${cursoFile.id}container"/>
</td>
</baco:hasRole>
</tr>
<%
}
}
 
%>
</tbody>
</table>
</div>
 
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/reports/widgets/adminAlunosType.jsp
30,18 → 30,18
<%
ReportAdminAlunosWidgetForm.setAno(group.getImportYear());
 
ReportAdminAlunosWidgetForm.setAnuais(group.hasAnuais());
ReportAdminAlunosWidgetForm.setSemestre1(group.hasSemestre1());
ReportAdminAlunosWidgetForm.setSemestre2(group.hasSemestre2());
ReportAdminAlunosWidgetForm.setTrimestre1(group.hasTrimestre1());
ReportAdminAlunosWidgetForm.setTrimestre2(group.hasTrimestre2());
ReportAdminAlunosWidgetForm.setTrimestre3(group.hasTrimestre3());
ReportAdminAlunosWidgetForm.setTrimestre4(group.hasTrimestre4());
ReportAdminAlunosWidgetForm.setAnuais(group.isAnuais());
ReportAdminAlunosWidgetForm.setSemestre1(group.isSemestre1());
ReportAdminAlunosWidgetForm.setSemestre2(group.isSemestre2());
ReportAdminAlunosWidgetForm.setTrimestre1(group.isTrimestre1());
ReportAdminAlunosWidgetForm.setTrimestre2(group.isTrimestre2());
ReportAdminAlunosWidgetForm.setTrimestre3(group.isTrimestre3());
ReportAdminAlunosWidgetForm.setTrimestre4(group.isTrimestre4());
 
ReportAdminAlunosWidgetForm.setLicenciaturas(group.hasLicenciaturas());
ReportAdminAlunosWidgetForm.setMestrados(group.hasMestrados());
ReportAdminAlunosWidgetForm.setTesps(group.hasTesps());
ReportAdminAlunosWidgetForm.setCets(group.hasCets());
ReportAdminAlunosWidgetForm.setLicenciaturas(group.isLicenciaturas());
ReportAdminAlunosWidgetForm.setMestrados(group.isMestrados());
ReportAdminAlunosWidgetForm.setTesps(group.isTesps());
ReportAdminAlunosWidgetForm.setCets(group.isCets());
%>
 
<html:hidden property="questionarioReportGroupId" value="${group.id}"/>
/branches/v3/impl/src/web/user/questionarios/reports/showReportsPedagogicoEstudante.jsp
New file
0,0 → 1,164
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="org.hibernate.Query" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupAno" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAno" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupDocentesAno" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@taglib prefix="reports" tagdir="/WEB-INF/tags/reports" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
 
<div class="container-fluid">
<h1>Consulta de Relatórios de Respostas dos Alunos aos Inquéritos Pedagógicos</h1>
<%
AbstractDao.getCurrentSession().beginTransaction();
 
Query q = AbstractDao.getCurrentSession().createQuery("" +
"select distinct(importYear) from " + QuestionarioReportFileGroupAno.class.getName());
 
List<String> importYears = q.list();
 
for(String importYear: importYears)
{
%>
<div class="panel panel-default">
<div class="panel-heading">
<span class="icon icon-flag"></span> Relatórios no Ano <%=pt.estgp.estgweb.utils.DatesUtils.getImportYearFormatted(importYear)%>
</div>
<div class="panel-body">
<!-- <div class="col-md-2">
Ano <%=pt.estgp.estgweb.utils.DatesUtils.getImportYearFormatted(importYear)%>
</div>-->
<baco:hasNotRole role="student">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<span class="icon icon-user"></span> Relatórios de Docentes
</div>
<div class="panel-body">
<div class="list-group">
<%
List<QuestionarioReportFileGroupDocentesAno> reportsDocentes = DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().findByYear(importYear);
for(QuestionarioReportFileGroupDocentesAno report: reportsDocentes)
{
request.setAttribute("report",report);
if(report.isActive() || UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().hasRole("questionarios.admin"))
{
%>
<div class="list-group-item clearfix">
<%
if(!report.isActive())
{
%>
<div class="col-md-12 box-col-1px">
<label class="alert alert-danger">Este report está de momento inactivo, não é visivel aos utilizadores</label>
</div>
<%
}
%>
<div class="col-md-4 box-col-2px">
<html:link action="/user/reportsPedagogicoEstudanteDocente?id=${report.id}" styleClass="btn btn-default" style="width: 100%"><span class="glyphicon glyphicon-search"></span> Consultar</html:link>
</div>
<div class="col-md-4 box-col-2px">
<reports:reportEstudanteAnoPeriodos report="${report}" fontSize="8pt"/>
</div>
<div class="col-md-4 box-col-2px">
<reports:reportEstudanteAnoDegrees report="${report}" fontSize="8pt"/>
</div>
<div class="col-md-12 box-col-1px">
<!--<label class="badge">
atualizado a
<%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(report.getUpdateDate())%>
</label>-->
<span class="badge"> Número de Controlo ${report.id} </span>
<span class="badge">
criado a
<%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(report.getSaveDate())%>
</span>
</div>
</div>
<%
}
}
%>
</div>
</div>
</div>
</div>
</baco:hasNotRole>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<span class="icon icon-book"></span> Relatórios de Curso
</div>
<div class="panel-body">
<div class="list-group">
<%
List<QuestionarioReportFileGroupCursosAno> reportsCursos = DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().findByYear(importYear);
for(QuestionarioReportFileGroupCursosAno report: reportsCursos)
{
request.setAttribute("report",report);
if(report.isActive() || UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().hasRole("questionarios.admin"))
{
%>
<div class="list-group-item clearfix">
<%
if(!report.isActive())
{
%>
<div class="col-md-12 box-col-1px">
<label class="alert alert-danger">Este report está de momento inactivo, não é visivel aos utilizadores</label>
</div>
<%
}
%>
<div class="col-md-4 box-col-2px">
<html:link action="/user/reportsPedagogicoEstudanteCurso?id=${report.id}" styleClass="btn btn-default" style="width: 100%"><span class="glyphicon glyphicon-search"></span> Consultar</html:link>
</div>
<div class="col-md-4 box-col-2px">
<reports:reportEstudanteAnoPeriodos report="${report}" fontSize="8pt"/>
</div>
<div class="col-md-4 box-col-2px">
<reports:reportEstudanteAnoDegrees report="${report}" fontSize="8pt"/>
</div>
<div class="col-md-12 box-col-1px">
<!--<label class="badge">
atualizado a
<%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(report.getUpdateDate())%>
</label>-->
<span class="badge"> Número de Controlo ${report.id} </span>
<span class="badge">
criado a
<%=pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(report.getSaveDate())%>
</span>
</div>
</div>
<%
}
}
%>
</div>
</div>
</div>
</div>
 
</div>
</div>
 
 
 
 
<%
}
 
AbstractDao.getCurrentSession().getTransaction().commit();
%>
</div>
/branches/v3/impl/src/web/user/questionarios/reports/topnavReportPedagogicoEstudanteCurso.jsp
New file
0,0 → 1,12
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/reportsPedagogicoEstudante.do", "surveys.reports.pedagogico");
topNav.addNavPlace(null, "surveys.reports.pedagogico.curso");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/reports/showReportsPedagogicoEstudanteDocente.jsp
New file
0,0 → 1,103
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportDocenteFile" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFile" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioReportFileGroupDocentesAno" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="java.util.Set" %>
<%@ 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" %>
<%@taglib prefix="reports" tagdir="/WEB-INF/tags/reports" %>
<%@taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
 
<div class="container-fluid">
 
<%
AbstractDao.getCurrentSession().beginTransaction();
String id = request.getParameter("id");
 
QuestionarioReportFileGroupDocentesAno reportGroup = DaoFactory.getQuestionarioReportFileGroupDocentesAnoDaoImpl().load(Long.parseLong(id));
request.setAttribute("reportGroup",reportGroup);
%>
<reports:reportGroupPanel reportGroup="${reportGroup}" title="Relatórios de Docentes - Ano: ${reportGroup.importYearFormatted}"/>
 
<div class="web-messages-table">
<div class="web-messages"></div>
</div>
<table class="tablesorterfiltered">
<thead>
<tr>
<th>Código</th>
<th class="filter-name filter-select" data-placeholder="Todas">Docente</th>
<th>Alunos com Resposta %</th>
<th>Alunos com Resposta</th>
<th>Alunos Selecionados</th>
<th>Respostas %</th>
<th>Respostas</th>
<th>Repostas Requisitadas</th>
<th>Descarregar Relatório</th>
<baco:hasRole role="admin,super,questionarios.admin">
<th>Visivel</th>
</baco:hasRole>
</tr>
</thead>
<tbody>
<%
Set<QuestionarioReportFile> reports = reportGroup.getReportFiles();
for(QuestionarioReportFile report: reports)
{
QuestionarioReportDocenteFile docenteFile = (QuestionarioReportDocenteFile) report;
request.setAttribute("docenteFile",docenteFile);
if(docenteFile.isActive() || UserSession.getUser().isSuperuserOrAdmin() || UserSession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
{
%>
<tr>
<td>${docenteFile.entityCode}</td>
<td>${docenteFile.entityName}</td>
 
<!--INQUIRIDOS-->
<td>
<reports:progressPercent parcel="${docenteFile.inquiridosComResposta}" total="${docenteFile.inquiridos}" isUserType="true"/>
</td>
<!--${percentageColor} comes from progress Percent-->
<td><label class="label label-${percentageColor}" style="font-size: 1em"> ${docenteFile.inquiridosComResposta}</label><span class="icon icon-user"> </span></td>
<td><label class="label label-primary">${docenteFile.inquiridos}</label><span class="icon icon-users"> </span></td>
 
 
<!--RESPOSTAS-->
<td>
<reports:progressPercent parcel="${docenteFile.respostas}" total="${docenteFile.respostasRequisitadas}" isFilesType="true"/>
</td>
<!--${percentageColor} comes from progress Percent-->
<td class="text-nowrap"><label class="label label-${percentageColor}" style="font-size: 1em">${docenteFile.respostas}</label> <span class="icon icon-file-text2"> </span></td>
<td class="text-nowrap"><label class="label label-primary" style="font-size: 1em">${docenteFile.respostasRequisitadas}</label> <span class="icon icon-files-empty"> </span> </td>
 
 
<td>
<bacoTags:repositoryFile transactional="true" repositoryStream="${docenteFile.repositoryStream}"/>
</td>
<baco:hasRole role="admin,super,questionarios.admin">
<td id="updateReport${docenteFile.id}container">
<reports:reportCheckboxVisibiltyReportFile reportFile="${docenteFile}" containerRefSelect="updateReport${docenteFile.id}container"/>
</td>
</baco:hasRole>
</tr>
<%
}
}
 
%>
</tbody>
</table>
</div>
 
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/v3/impl/src/web/user/questionarios/reports/topnavReportPedagogicoEstudante.jsp
New file
0,0 → 1,11
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
 
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back");
topNav.addNavPlace(null, "surveys.reports.pedagogico");
%>
<jsp:include page="/layout/topnav.jsp"/>
/branches/v3/impl/src/web/user/questionarios/questionarioStateOLAP_TASK_LOG.jsp
11,20 → 11,27
<%@ 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" %>
<%@taglib prefix="bacoTemplates" tagdir="/WEB-INF/tags" %>
<jsp:useBean id="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/>
 
<%
AbstractDao.getCurrentSession().beginTransaction();
JobServiceTaskImpl job = Questionario.getAnswerOlapGenerationTaskId() > 0 ?
/*JobServiceTaskImpl job = Questionario.getAnswerOlapGenerationTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(Questionario.getAnswerOlapGenerationTaskId()) :
null;
request.setAttribute("Job", job);
request.setAttribute("Job", job);*/
 
%>
<div class="clearfix">
<div class="col-sm-6">
<%--<baco:clearOperation name="Questionario" op="QUE">--%>
<%
<bacoTemplates:schedulleTaskProgress
targetUrlWithOutContextPath="/user/adminQuestionario.do?questionario.id=${Questionario.id}"
taskId="${Questionario.answerOlapGenerationTaskId}"
transactional="true"
logSizeXs="true"
/>
<%--
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
53,8 → 60,8
}
%>
 
<%-- </baco:clearOperation>--%>
</div>
<%-- </baco:clearOperation> //-- % >
</div>--%>
<div class="col-sm-6">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_GENERATE_OLAP">
<button class="btn btn-success" type="button" data-toggle="modal" data-target="#confirm-ModalGeneric" data-message="Esta operação irá iniciar a geração do esquema OLAP para resultados!! Tem a certeza que deseja prosseguir?" data-href="<%=request.getContextPath()%>/user/questionariosPaeYearSemestre.do?dispatch=generateOlap&questionarioId=${Questionario.id}">Voltar a iniciar a Geração OLAP</button>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteAssignAnswers.jsp
1,11 → 1,8
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="jomm.utils.MessageResources" %>
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.dao.impl.QuestionarioDaoImpl" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
18,6 → 15,7
<%@ 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" %>
<%@taglib prefix="bacoTemplates" tagdir="/WEB-INF/tags" %>
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
34,11 → 32,11
 
 
AbstractDao.getCurrentSession().beginTransaction();
JobServiceTaskImpl job = questionario.getAnswerGenerationTaskId() > 0 ?
/*JobServiceTaskImpl job = questionario.getAnswerGenerationTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(questionario.getAnswerGenerationTaskId()) :
null;
request.setAttribute("Job", job);
 
*/
List<String> institutionCodes = ConfigProperties.getListValues("questionario.instituition.");
 
%>
95,7 → 93,15
 
<div class="col-sm-6">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SEE_START_ASSIGN_ANSWERS">
<%
 
 
<bacoTemplates:schedulleTaskProgress
targetUrlWithOutContextPath="/user/questionarioPedagogicoStartAssignAnswers.do?questionarioId=${Questionario.id}"
taskId="${Questionario.answerGenerationTaskId}"
transactional="true"
logSizeXs="true"
/>
<%--
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
122,7 → 128,7
<div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
<%
}
%>
%>--%>
 
</baco:clearOperation>
</div>
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesSelection.jsp
1,12 → 1,9
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="jomm.utils.MessageResources" %>
<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskImpl" %>
<%@ page import="pt.estgp.estgweb.domain.QuestionarioImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %>
<%@ page import="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
19,6 → 16,7
<%@ 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" %>
<%@taglib prefix="bacoTemplates" tagdir="/WEB-INF/tags" %>
<%
String qId = request.getParameter("questionarioId");
if(qId == null)
35,10 → 33,11
 
 
AbstractDao.getCurrentSession().beginTransaction();
JobServiceTaskImpl job = questionario.getCourseSelectionTaskId() > 0 ?
/*JobServiceTaskImpl job = questionario.getCourseSelectionTaskId() > 0 ?
(JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().load(questionario.getCourseSelectionTaskId()) :
null;
request.setAttribute("Job", job);
*/
 
List<String> institutionCodes = ConfigProperties.getListValues("questionario.instituition.");
 
268,7 → 267,13
</div>
<div class="col-sm-6">
<baco:clearOperation name="Questionario" op="QUESTIONARIO_SCHEDULLE_SEE_SELECT_COURSES">
<%
<bacoTemplates:schedulleTaskProgress
targetUrlWithOutContextPath="/user/questionarioPedagogicoStartChooseCourses.do?questionarioId=${Questionario.id}"
taskId="${Questionario.courseSelectionTaskId}"
transactional="true"
logSizeXs="true"
/>
<%--
if(job != null)
{
SchedulleTasksForm schedulleTasksForm = new SchedulleTasksForm();
295,7 → 300,7
<div class="alert alert-danger">O sistema não conseguiu encontrar a tarefa de atribuição nas tarefas agendadas, por favor verifique em todos os logs de tarefas <html:link action="/user/configurationJobTasks">Aqui</html:link> </div>
<%
}
%>
%>--%>
</baco:clearOperation>
</div>
 
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/questionarioDashBoard.jsp
158,7 → 158,7
<div class="col-sm-12">
<table class="tablesorterfiltered">
<thead>
<th class="filter-name filter-select">Instituição</th>
<th class="filter-name filter-select" data-placeholder="Todas">Instituição</th>
<th>Código</th>
<th>Curso</th>
<th>Unidades</th>
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapEntityQuestionarioPergunta generated by hbm2java
*/
public class OlapEntityQuestionarioPergunta extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionarioPergunta extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
7,7 → 7,7
/**
* OlapStarFactQuestionarioAnswer generated by hbm2java
*/
public class OlapStarFactQuestionarioAnswer extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapStarFactQuestionarioAnswer extends pt.estgp.estgweb.domain.OlapFactImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
13,7 → 13,11
private long id;
private Date updateDate;
private Date saveDate;
private boolean active;
private String entityName;
private String entityCode;
private String repositoryStream;
private QuestionarioReportFileGroup reportGroup;
 
public QuestionarioReportFile() {
}
40,6 → 44,27
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public boolean isActive() {
return this.active;
}
public void setActive(boolean active) {
this.active = active;
}
public String getEntityName() {
return this.entityName;
}
public void setEntityName(String entityName) {
this.entityName = entityName;
}
public String getEntityCode() {
return this.entityCode;
}
public void setEntityCode(String entityCode) {
this.entityCode = entityCode;
}
public String getRepositoryStream() {
return this.repositoryStream;
}
47,6 → 72,13
public void setRepositoryStream(String repositoryStream) {
this.repositoryStream = repositoryStream;
}
public QuestionarioReportFileGroup getReportGroup() {
return this.reportGroup;
}
public void setReportGroup(QuestionarioReportFileGroup reportGroup) {
this.reportGroup = reportGroup;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Process.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaEsforco.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapEntityQuestionarioPerguntaEsforco generated by hbm2java
*/
public class OlapEntityQuestionarioPerguntaEsforco extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionarioPerguntaEsforco extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/OlapEntityQuestionarioPerguntaEsforcoDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Dez/2016 17:38:33 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class OlapEntityQuestionarioPerguntaEsforco.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.OlapEntityQuestionarioPerguntaEsforco;
 
 
public class OlapEntityQuestionarioPerguntaEsforcoDao extends AbstractDao<OlapEntityQuestionarioPerguntaEsforco> {
//public class OlapEntityQuestionarioPerguntaEsforcoDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(OlapEntityQuestionarioPerguntaEsforcoDao.class);
 
protected static OlapEntityQuestionarioPerguntaEsforcoDao myInstance = null;
 
protected OlapEntityQuestionarioPerguntaEsforcoDao(){
super();
}
 
public static OlapEntityQuestionarioPerguntaEsforcoDao getInstance() {
if (myInstance == null)
myInstance = new OlapEntityQuestionarioPerguntaEsforcoDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return OlapEntityQuestionarioPerguntaEsforco.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/dao/impl/OlapStarFactQuestionarioAnswerEsforcoDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Dez/2016 17:38:33 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class OlapStarFactQuestionarioAnswerEsforco.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.OlapStarFactQuestionarioAnswerEsforco;
 
 
public class OlapStarFactQuestionarioAnswerEsforcoDao extends AbstractDao<OlapStarFactQuestionarioAnswerEsforco> {
//public class OlapStarFactQuestionarioAnswerEsforcoDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(OlapStarFactQuestionarioAnswerEsforcoDao.class);
 
protected static OlapStarFactQuestionarioAnswerEsforcoDao myInstance = null;
 
protected OlapStarFactQuestionarioAnswerEsforcoDao(){
super();
}
 
public static OlapStarFactQuestionarioAnswerEsforcoDao getInstance() {
if (myInstance == null)
myInstance = new OlapStarFactQuestionarioAnswerEsforcoDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return OlapStarFactQuestionarioAnswerEsforco.class;
}
}
 
 
/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/PageTextDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Dez/2016 17:38:33 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class PageText.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.PageText;
 
 
public class PageTextDao extends AbstractDao<PageText> {
//public class PageTextDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(PageTextDao.class);
 
protected static PageTextDao myInstance = null;
 
protected PageTextDao(){
super();
}
 
public static PageTextDao getInstance() {
if (myInstance == null)
myInstance = new PageTextDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return PageText.class;
}
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapEntityQuestionarioUnidade generated by hbm2java
*/
public class OlapEntityQuestionarioUnidade extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionarioUnidade extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
7,7 → 7,7
/**
* OlapStarFactQuestionario generated by hbm2java
*/
public class OlapStarFactQuestionario extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapStarFactQuestionario extends pt.estgp.estgweb.domain.OlapFactImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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,43
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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;
private String tipoCurso;
private String escola;
private String codigoEscola;
 
public QuestionarioReportCursoFile() {
}
 
public Course getCourse() {
return this.course;
public String getTipoCurso() {
return this.tipoCurso;
}
public void setCourse(Course course) {
this.course = course;
public void setTipoCurso(String tipoCurso) {
this.tipoCurso = tipoCurso;
}
public String getEscola() {
return this.escola;
}
public void setEscola(String escola) {
this.escola = escola;
}
public String getCodigoEscola() {
return this.codigoEscola;
}
public void setCodigoEscola(String codigoEscola) {
this.codigoEscola = codigoEscola;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroup.java
1,8 → 1,10
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
 
/**
* QuestionarioReportFileGroup generated by hbm2java
14,10 → 16,12
private Date updateDate;
private Date saveDate;
private String title;
private boolean active;
private String reportProcessorClass;
private String repositoryStreamZipFile;
private String repositoryStreamCsvFile;
private long reportGenerationTaskId;
private Set<QuestionarioReportFile> reportFiles = new HashSet<QuestionarioReportFile>(0);
 
public QuestionarioReportFileGroup() {
}
51,6 → 55,13
public void setTitle(String title) {
this.title = title;
}
public boolean isActive() {
return this.active;
}
public void setActive(boolean active) {
this.active = active;
}
public String getReportProcessorClass() {
return this.reportProcessorClass;
}
79,6 → 90,13
public void setReportGenerationTaskId(long reportGenerationTaskId) {
this.reportGenerationTaskId = reportGenerationTaskId;
}
public Set<QuestionarioReportFile> getReportFiles() {
return this.reportFiles;
}
public void setReportFiles(Set<QuestionarioReportFile> reportFiles) {
this.reportFiles = reportFiles;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioCurso.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapStarFactQuestionarioCurso generated by hbm2java
*/
public class OlapStarFactQuestionarioCurso extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapStarFactQuestionarioCurso extends pt.estgp.estgweb.domain.OlapFactImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapEntityQuestionarioTipologia generated by hbm2java
*/
public class OlapEntityQuestionarioTipologia extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionarioTipologia extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
7,7 → 7,7
/**
* OlapEntityQuestionario generated by hbm2java
*/
public class OlapEntityQuestionario extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionario extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioTipologia.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapStarFactQuestionarioTipologia generated by hbm2java
*/
public class OlapStarFactQuestionarioTipologia extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapStarFactQuestionarioTipologia extends pt.estgp.estgweb.domain.OlapFactImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioUnidade.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapStarFactQuestionarioUnidade generated by hbm2java
*/
public class OlapStarFactQuestionarioUnidade extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapStarFactQuestionarioUnidade extends pt.estgp.estgweb.domain.OlapFactImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileAno.java
New file
0,0 → 1,87
package pt.estgp.estgweb.domain;
// Generated 3/Jan/2017 9:47:08 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;
private int percentagemRespostas;
private int percentagemInquiridos;
private String citiesJson;
 
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;
}
public int getPercentagemRespostas() {
return this.percentagemRespostas;
}
public void setPercentagemRespostas(int percentagemRespostas) {
this.percentagemRespostas = percentagemRespostas;
}
public int getPercentagemInquiridos() {
return this.percentagemInquiridos;
}
public void setPercentagemInquiridos(int percentagemInquiridos) {
this.percentagemInquiridos = percentagemInquiridos;
}
public String getCitiesJson() {
return this.citiesJson;
}
public void setCitiesJson(String citiesJson) {
this.citiesJson = citiesJson;
}
 
 
 
 
}
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapHistoryDimension generated by hbm2java
*/
public class OlapHistoryDimension extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapHistoryDimension extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
7,7 → 7,7
/**
* OlapStarFactQuestionarioAnswerEsforco generated by hbm2java
*/
public class OlapStarFactQuestionarioAnswerEsforco extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapStarFactQuestionarioAnswerEsforco extends pt.estgp.estgweb.domain.OlapFactImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
12,6 → 12,13
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;
private String citiesJson;
 
public QuestionarioReportFileGroupAno() {
}
38,6 → 45,55
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;
}
public String getCitiesJson() {
return this.citiesJson;
}
public void setCitiesJson(String citiesJson) {
this.citiesJson = citiesJson;
}
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
7,7 → 7,7
/**
* OlapEntityQuestionarioUser generated by hbm2java
*/
public class OlapEntityQuestionarioUser extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionarioUser extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java
1,12 → 1,12
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
 
/**
* OlapEntityQuestionarioCurso generated by hbm2java
*/
public class OlapEntityQuestionarioCurso extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
public abstract class OlapEntityQuestionarioCurso extends pt.estgp.estgweb.domain.OlapDimensionImpl implements java.io.Serializable {
 
 
private long id;
/branches/v3/impl/gen/java/pt/estgp/estgweb/domain/Job.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 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 29/Dez/2016 18:03:35 by Hibernate Tools 3.2.0.b9
// Generated 3/Jan/2017 9:47:08 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/v3/impl/etc/bugs/resolved/resolved.txt
87,4 → 87,17
 
PROBLEMA: Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 10
 
SOLUCAO POSSIVEL: Código de cor de fundo com HEX's a mais apos edição no color pad
SOLUCAO POSSIVEL: Código de cor de fundo com HEX's a mais apos edição no color pad
 
 
 
 
#PROBLEMA DE COMPILACAO DO JASPER APOS AS TAGS
Se usarmos o Tomcat 5.5 temos de incluir na chamada do tomcat jasper os seguintes parametros:
compilerSourceVM="1.6" compilerTargetVM="1.6"
Se usarmos o Tomcat 5.0 não necessita
Caso contrario as TAGS não compilam bem
 
o build xml foi alterado para suportar o tomcat 5.5
 
A configuracao da pasta do tomcat está no local.properties
/branches/v3/impl/build.xml
91,7 → 91,20
<taskdef name="tomcat.undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="pathToToolsLib"/>
<taskdef name="tomcat.deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="pathToToolsLib"/>
<!--<taskdef name="tomcat.install" classname="org.apache.catalina.ant.InstallTask" classpathref="pathToToolsLib"/>-->
<taskdef name="tomcat.jasper" classname="org.apache.jasper.JspC" classpathref="pathToToolsLib"/>
<taskdef name="tomcat.jasper" classname="org.apache.jasper.JspC">
<classpath id="jspc.classpath">
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
<fileset dir="${tomcat.home}/bin">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.home}/server/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.home}/common/lib">
<include name="*.jar"/>
</fileset>
</classpath>
</taskdef>
 
 
<!--
159,7 → 172,7
</target>
 
<target name="compile" depends="initDirs" description="Compile All">
<javac encoding="UTF-8" source="1.5" target="1.5" destdir="${build.dir.classes}" debug="true" optimize="true" fork="true" failonerror="true" nowarn="true">
<javac encoding="UTF-8" source="1.6" target="1.6" destdir="${build.dir.classes}" debug="true" optimize="true" fork="true" failonerror="true" nowarn="true">
<src path="${src.dir}"/>
<src path="${gen.dir.java}"/>
<classpath refid="pathToToolsLib"/>
331,9 → 344,10
<target name="jasper" depends="copy.jsps.war">
<delete dir="${build.dir.jsp}"/>
<mkdir dir="${build.dir.jsp}"/>
<tomcat.jasper validateXml="false" uriroot="${build.dir.war}" webXmlFragment="${build.dir.war}/WEB-INF/generated_web.xml" addWebXmlMappings="true" outputDir="${build.dir.jsp}" />
<javac encoding="UTF-8" source="1.5" target="1.5" destdir="${build.dir.war}/WEB-INF/classes" debug="true" optimize="true" fork="true" failonerror="true" nowarn="true">
<tomcat.jasper compilersourcevm="1.6" compilertargetvm="1.6" validateXml="false" uriroot="${build.dir.war}" webXmlFragment="${build.dir.war}/WEB-INF/generated_web.xml" addWebXmlMappings="true" outputDir="${build.dir.jsp}" />
<javac encoding="UTF-8" source="1.6" target="1.6" destdir="${build.dir.war}/WEB-INF/classes" debug="true" optimize="true" fork="true" failonerror="true" nowarn="true">
<src path="${build.dir.jsp}"/>
<src path="${build.dir}/"/>
<classpath path="${build.dir.classes}"/>
<classpath refid="pathToToolsLib"/>
</javac>
342,6 → 356,11
<include name="**/*.jsp"/>
</fileset>
</delete>
<delete>
<fileset dir="${build.dir.war}/WEB-INF/tags">
<include name="**/*.jsp"/>
</fileset>
</delete>
</target>
 
<target name="war" depends="build.war">
835,8 → 854,16
<java fork="true" jvmargs="-Dfile.encoding=UTF-8" classname="pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.DocenteReportGenerator" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
 
<target name="RUNZipFolderAdHoc">
<java fork="true" jvmargs="-Dfile.encoding=UTF-8" classname="pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.ZipFolderForReportDocente" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
 
 
 
 
<target name="print-version">
<echo>Java/JVM version: ${ant.java.version}</echo>
<echo>Java/JVM detail version: ${java.version}</echo>
</target>
 
</project>