Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1987 → Rev 1990

/branches/grupo3/impl/conf/WEB-INF/struts/struts-courses.xml
164,11 → 164,11
 
<action path="/user/courseReportTools" forward="page.course.report.tools"/>
<action path="/user/loadCourseReportTools" forward="page.course.report.tools.load"/>
<!-- -->
<action path="/user/editCourseReport" forward="/user/courseReport.do?dispatch=startEdit"/>
 
 
<!-- -->
<action path="/user/editCourseReport" forward="/user/courseReport.do?dispatch=startEdit"/>
<!-- -->
<action path="/user/courseReport"
type="pt.estgp.estgweb.web.controllers.courses.CoursesServicesController"
name="WidgetModelForm"
/branches/grupo3/impl/conf/WEB-INF/struts/tiles-courses.xml
166,6 → 166,7
<put name="body" value="/user/courses/loadCourseReportTools.jsp"/>
</definition>
 
 
<!-- -->
<definition name="page.course.report.edit" extends="page.separators.home">
<put name="title" value="Relatório de Curso"/>
/branches/grupo3/impl/conf/WEB-INF/web.xml
209,7 → 209,7
<!---->
<!--SERVLETS-->
 
//teste
<!-- teste -->
<servlet>
<servlet-name>EngSoft</servlet-name>
<servlet-class>pt.estgp.estgweb.web.controllers.SubServlet</servlet-class>
380,7 → 380,7
 
<!--SOAP Tutorial-->
 
//Teste
<!-- Teste -->
<servlet-mapping>
<servlet-name>EngSoft</servlet-name>
<url-pattern>/engSoftTest/*</url-pattern>
/branches/grupo3/impl/conf/berserk/sd.xml
4067,6 → 4067,7
 
 
 
 
<!-- 7/12/2017 -->
<service>
<name>SaveCourseReportDoc</name>
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java
483,6 → 483,7
}
 
 
 
/* Guardar report */
 
public String saveCourseReportDoc(String reportDocumentJson,UserSession session) throws IOException {
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java
7,6 → 7,7
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.RingPlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.xy.XYDataset;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
import pt.estgp.estgweb.utils.Globals;
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent;
41,7 → 42,10
data.setValue("Aprovados " + aprovadosPercent + "%", new Double(aprovados));
if(semElementos > 0)
data.setValue("Sem Elementos " + semElementosPercent + "%", new Double(semElementos));
 
 
JFreeChart chart = ChartFactory.createRingChart(null, data, false, true, false);
 
chart.setBackgroundPaint(new Color(255,255,255));
PiePlot plot = (RingPlot) chart.getPlot();
plot.setLabelBackgroundPaint(new Color(255, 249, 235));
75,47 → 79,4
return fileUploaded;
}
 
public static void main(String [] args) throws IOException {
float aprovados = 10;
float reprovados = 2;
float semElementos = 4;
double aprovadosPercent = ((int)10/16*100.0)/100.0;
double reprovadosPercent = ((int)2/16*100.0)/100.0;
double semElementosPercent = ((int)4/16*100.0)/100.0;
 
String tempName = BytesUtils.generateHexKey() + ".png";
 
DefaultPieDataset data = new DefaultPieDataset();
if(reprovados > 0)
data.setValue("Reprovados " + reprovadosPercent + "%", new Double(reprovados));
if(aprovados > 0)
data.setValue("Aprovados " + aprovadosPercent + "%", new Double(aprovados));
if(semElementos > 0)
data.setValue("Sem Elementos " + semElementosPercent + "%", new Double(semElementos));
JFreeChart chart = ChartFactory.createRingChart(null, data, false, true, false);
chart.setBackgroundPaint(new Color(255,255,255));
PiePlot plot = (RingPlot) chart.getPlot();
plot.setLabelBackgroundPaint(new Color(255, 249, 235));
plot.setLabelPaint(new Color(88, 88, 90));
//plot.setDrawingSupplier(new ChartBuilderUtil.ChartDrawingSupplier());
 
plot.setSectionPaint(0, new Color(255, 0, 0));
plot.setSectionPaint(1, new Color(15, 218, 10));
plot.setSectionPaint(2, new Color(200, 200, 200));
plot.setBackgroundPaint(new Color(255, 255, 255));
plot.setOutlineVisible(false);
 
 
 
plot.setLabelFont(new Font(
"Helvetica", Font.PLAIN, 30));
 
 
BufferedImage image = chart.createBufferedImage( 300*4, 200*4);
String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.File.separator + tempName;
java.io.File output = new java.io.File(pathGraficoTiposAlunos);
ImageIO.write(image, "png", new FileOutputStream(output));
 
 
}
}
/branches/grupo3/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java
57,8 → 57,9
 
 
 
/* AA 7/12/2017 */
 
/* 7/12/2017 */
 
public JSONObject saveCourseReportDoc(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable {
 
String courseReportDocument = request.getParameter("courseReportDocument");
/branches/grupo3/impl/src/web/user/courses/coursereport/templates.jsp
689,6 → 689,8
</globallearningresultschartyearimg>
</script>
 
 
<!-- Grafico 2 -->
<script>
angular.module("courseReportApp").directive('globallearningresultschartyearimg', function() {
 
700,12 → 702,12
{
 
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/courseReport.do",
"generateGlobalLearningResultsChartYearImg",
{
"courseReportDocument" : BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report)
},
"#courseReportApp",
"<%=request.getContextPath()%>/user/courseReport.do",
"generateGlobalLearningResultsChartYearImg",
{
"courseReportDocument" : BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report)
},
"#courseReportApp",
function(repositoryFile4JsonView)
{
comp.image = repositoryFile4JsonView;
/branches/grupo4/impl/conf/berserk/sd.xml
4091,7 → 4091,7
<description>
@Serviço que guarda o relatorio editado
</description>
<isTransactional>true</isTransactional>
<isTransactional>t7rue</isTransactional>
<defaultMethod>saveReportEdit</defaultMethod>
<filterChains>
<chain name="Logger"/>
/branches/grupo4/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java
82,9 → 82,6
HttpServletResponse response)
throws Throwable, ServletException
{
//fazer load aqui
//System.out.println("Mapping XICO");
//LoadReportEdit
 
String courseCode = request.getParameter("courseCode");
String year = request.getParameter("year");
/branches/grupo4/impl/src/hbm/pt/estgp/estgweb/domain/Configuration.hbm.xml
38,6 → 38,18
<column name="openInfoIntranet" sql-type="TEXT"/>
</property>
 
 
 
 
<property name="courseReportImportYear" type="string">
<column name="courseReportImportYear" default="201617" />
</property>
 
 
 
 
 
 
<many-to-one name="configurationGrades" class="pt.estgp.estgweb.domain.ConfigurationGrades" lazy="proxy" outer-join="false"/>
<subclass name="pt.estgp.estgweb.domain.ConfigurationImpl" discriminator-value="ConfigurationImpl"/>
</class>
/branches/grupo4/impl/src/web/user/home/teacher.jsp
15,6 → 15,8
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %>
<%@ page import="java.util.List" %>
 
 
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/>
 
<!-- PARA BOOTSTRAP NOVO PORTAL-->
157,9 → 159,14
AbstractDao.getCurrentSession().beginTransaction();
TeacherImpl tLoggedIn = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(UserSession.getUser().getId());
boolean hasCommisionsOrCoordinations = tLoggedIn.hasCoordinationsOrBelongToCourseCommissions();
 
request.setAttribute("tLoggedIn", tLoggedIn);
 
AbstractDao.getCurrentSession().getTransaction().commit();
 
if( hasCommisionsOrCoordinations )
{
 
%>
 
<!--Painel de Coordenadores -->
203,12 → 210,23
 
 
 
<logic:iterate id="idCourse" name="tLoggedIn" property="coordinatorCourses" type="pt.estgp.estgweb.domain.Course">
<div class="list-group-item">
<html:link action="/user/editCourseReport.do?courseCode=${idCourse.code}&year=${UserSession.nowConfiguration.courseReportImportYear}">Editar o relatório de Curso do ano (${UserSession.nowConfiguration.courseReportImportYear})</html:link>
</div>
</logic:iterate>
 
 
 
 
 
 
 
 
 
 
 
 
</div>
<!--</li>
</ul>-->
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Pagina.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.ArrayList;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskActorInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/EventGeneric.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupDocentesAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveDecisionHolderInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelector.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgram.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationSeparator.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupCursosAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndMessageInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPoolThreadInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Survey.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RecordThesis.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionPossibleAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentInterface.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/PageSection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.ArrayList;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionCandidateAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPoolInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/EventClass.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RecordJob.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesStatusEpoca.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/PageRepositoryFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import pt.estgp.estgweb.domain.typesgenservices.repositorydocuments.RepositoryFileProxy;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitSummary.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Record.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnRoleSelector.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnTaskFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportDocenteFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableDomainObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Blog.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskActor.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import pt.estgp.estgweb.domain.typesgen.Todos;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Assessment.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFileVersion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UserRoleConfig.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTask.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import pt.estgp.estgweb.domain.typesgen.Todos;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfeta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveDecisionHolder.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableBoolean.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionItem.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Page.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseStudiesPlan.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitado.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Process.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/AppUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPool.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.ArrayList;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/PageText.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Questionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaEsforco.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndMessages.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import pt.estgp.estgweb.domain.typesgen.TargetActorType;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableString.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGateway.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableJson.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionItem.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesEpocaAvaliacao.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitada.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAnnouncement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifierCollection.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryCategory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RecordOther.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/DigitalDelivery.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitEvaluation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportCursoFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroup.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionAnswer.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelectorCondicionado.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgramPart2.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioCurso.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlog.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Reminder.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RecordEventOrganization.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RecordPaper.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Configuration.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
23,6 → 23,10
private String courseUnitEvaluationActiveCourseIds;
private String cursosFicticios;
private String openInfoIntranet;
 
private String courseReportImportYear;
 
 
private ConfigurationGrades configurationGrades;
 
public Configuration() {
120,6 → 124,13
public void setOpenInfoIntranet(String openInfoIntranet) {
this.openInfoIntranet = openInfoIntranet;
}
public String getCourseReportImportYear() {
return this.courseReportImportYear;
}
public void setCourseReportImportYear(String courseReportImportYear) {
this.courseReportImportYear = courseReportImportYear;
}
public ConfigurationGrades getConfigurationGrades() {
return this.configurationGrades;
}
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/PageContent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/JobParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableInteger.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnProcessInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/EventFormacoes.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ComunicationFolder.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Student.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableFloat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitQuestion.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionario.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnUserSelector.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioTipologia.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariable.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import pt.estgp.estgweb.domain.typesgen.VariableType;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/PageExternalObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEvent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitTurma.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyResponse.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ProcessEventFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioUnidade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusive.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableLong.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowConnectorInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SruSource.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnProcess.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.ArrayList;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableJsonArray.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Course.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/PageExternalUrl.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitGrade.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/AssessmentResponse.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocument.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentFile.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/EventUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Image.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswerEsforco.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelectorWithDomainObjectLoader.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupAno.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioHistoryDrive.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAssignement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowConnector.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitada.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEnd.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowObjectInstance.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseSchool.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Job.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnAbstractActorSelector.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskScheduler.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/EventGenericRecord.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskParameter.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/CourseDepartment.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/SurveyStructuralNode.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.HashSet;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableDouble.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
 
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGrades.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/Seccao.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo4/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 6/fev/2018 21:55:30 by Hibernate Tools 3.2.0.b9
// Generated 7/fev/2018 15:59:58 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/branches/grupo10/impl/conf/WEB-INF/struts/struts-courses.xml
163,9 → 163,12
 
 
<action path="/user/courseReportTools" forward="page.course.report.tools"/>
 
 
<action path="/user/loadCourseReportTools" forward="page.course.report.tools.load"/>
<action path="/user/editCourseReport" forward="page.course.report.edit"/>
 
<action path="/user/editCourseReport" forward="/user/courseReport.do?dispatch=startEdit"/>
 
<action path="/user/courseReport"
type="pt.estgp.estgweb.web.controllers.courses.CoursesServicesController"
name="WidgetModelForm"
173,9 → 176,9
parameter="dispatch"
validate="true"
input="page.widget.json.fail.validations">
<forward name="editCourseReport" path="page.course.report.edit"/> <!-- Manda para o tiles -->
</action>
 
 
</action-mappings>
 
</struts-config>
/branches/grupo10/impl/conf/berserk/sd.xml
4049,5 → 4049,59
</service>
 
 
<!-- SERVICOS DE GERACAO DE RELATORIO DE CURSO Year -->
<!-- Johny -->
 
<service>
<name>CourseReportGenerateGlobalLearningResultsChartYearImg</name>
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
<description>
@reportCourseDocument documento course report em json
Serviço de suporte para gerar um grafico
Coloca o grafico no report documento
e salva o documento no curso
Devolve uma classe RepositoryFile4JsonView serializada em JSON
</description>
<isTransactional>true</isTransactional>
<defaultMethod>generateGlobalLearningResultsChartYearImg</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
 
<!-- Req2 -->
<service>
<name>SaveCourseReportDocument</name>
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
<description>@reportCourseDocument Documento do course report em json
Serviço para guardar o relatorio na base de dados em json
na tabela course_year (CourseReportDocument)
</description>
<isTransactional>true</isTransactional>
<defaultMethod>saveCourseReportDocument</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
<!-- *** -->
 
<service>
<name>LoadCourseReportDocument</name>
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
<description>@reportCourseDocument Documento do course report em json
Serviço para guardar o relatorio na base de dados em json
</description>
<isTransactional>true</isTransactional>
<defaultMethod>loadCourseReportDocument</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="CourseCommission"/>
<!-- Este chain está implemetado no fcd.xml -->
</filterChains>
</service>
 
 
</serviceDefinitions>
/branches/grupo10/impl/conf/berserk/fd.xml
100,6 → 100,7
</description>
<isTransactional>false</isTransactional>
</filter>
 
<filter>
<name>IsTeacherInCourseUnitUsersClass</name>
<implementationClass>pt.estgp.estgweb.filters.filters.IsTeacherInCourseUnitUsersClass</implementationClass>
301,6 → 302,18
 
 
 
<!-- Req7 -->
<filter>
<name>IsFromCourseCommission</name>
<implementationClass>pt.estgp.estgweb.filters.filters.IsFromCourseCommissionClass</implementationClass>
<description>
Verifica se é do coursecomission
</description>
<isTransactional>false</isTransactional>
</filter>
 
 
 
 
</filterDefinitions>
/branches/grupo10/impl/conf/berserk/fcd.xml
573,9 → 573,6
</filterChain>
 
 
 
 
 
<filterChain>
<name>AdminsOrRepoDocumentsAdmins</name>
<expression>AuthenticatedUsers &amp;&amp; (RoleUsers("admin") || RoleUsers("all") || RoleUsers("repositoryDocs") || (RoleUsers("repositoryDeposit") &amp;&amp; CheckRepositoryCollectionManager))</expression>
585,6 → 582,14
</filterChain>
 
 
<!-- Req7 -->
<filterChain>
<name>CourseCommission</name>
<expression>IsFromCourseCommission("courseCode")</expression>
<description> Filtro para verificar se é coordenador </description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
 
 
 
/branches/grupo10/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java
43,18 → 43,10
private static final Logger logger = Logger.getLogger(CourseReportServices.class);
 
 
 
 
 
 
 
/****************************************************************************/
/* SERVICOS CORE DOS REPORTS
/****************************************************************************/
 
 
 
 
/**
*
* @param courseCode
449,10 → 441,52
}
 
 
/**
* Este servico gera um grafico com a taxa global de aproveitamento e grava-o no repositorio digital
* devolvendo o respectivo RepositoryFile4JsonView em json para poder ser anexado ao objecto imagem do
* widget do grafico
* @param reportDocumentJson
* @param session
* @return
* @throws java.io.IOException
*/
public String generateGlobalLearningResultsChartYearImg(String reportDocumentJson,UserSession session) throws IOException {
 
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson);
LearningResultsSection learningResultsSection = (LearningResultsSection) reportDocument.findDocumentSection(LearningResultsSection.class);
LearningGlobalAnalysisSection learningGlobalAnalysisSection = (LearningGlobalAnalysisSection) learningResultsSection.findSection(LearningGlobalAnalysisSection.class);
GlobalLearningResultsChartYearImg chartImg = (GlobalLearningResultsChartYearImg) learningGlobalAnalysisSection.findDocComponent(GlobalLearningResultsChartYearImg.class);
 
 
UnitsLearningResultsTable table = (UnitsLearningResultsTable) learningResultsSection.findDocComponent(UnitsLearningResultsTable.class);
 
 
FileUploaded fileUploaded = chartImg.generateChart2tmp(table,reportDocument);
 
RepositoryService repositoryService = new RepositoryService();
 
boolean imageInitialized = chartImg.getImage() != null
&&
chartImg.getImage().getIdentifier() != null;
 
RepositoryFile4JsonView view;
if(imageInitialized)
{
String identifier = chartImg.getImage().getIdentifier();
view = repositoryService.replaceRepositoryFileFromFileUpload(identifier, fileUploaded, ResourceAccessControlEnum.privateDomain, session);
}
else
{
view = repositoryService.storeRepositoryFileFromFileUpload(fileUploaded,ResourceAccessControlEnum.privateDomain,session);
}
chartImg.setImage(view);
//TODO FALTA GUARDAR O JSON NO CURSO
return view.toJson();
}
 
 
 
 
/****************************************************************************/
/*
 
634,18 → 668,80
}
}
 
/** Req2
* Método para guardar um courseReportDocument na base de dados e volta a retornar o mesmo em Json
* @param reportDocumentJson ReportDocument em Json para save
* */
public String saveCourseReportDocument(String reportDocumentJson, UserSession session) throws IOException {
 
//Recebe o Conteudo do reportDocument em Json e deserializa para um objecto do tipo CourseReportDocument
CourseReportDocument courseReportDocument = CourseReportDocument.fromJson(reportDocumentJson);
 
String courseCode = courseReportDocument.getCourseCode();
String courseYear = courseReportDocument.getYear();
 
//Vai à base de dados buscar o curso e as informações relativas a esse curso através do courseCode
//E transforma num object do tipo Course (Class que mapeia a tabela Course)
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
List<CourseYear> courseYearList = DaoFactory.getCourseYearDaoImpl().findCourseYear(courseCode, courseYear);
 
CourseYear cy;
 
if (courseYearList.isEmpty()){
cy = DomainObjectFactory.createCourseYearImpl();
cy.setCourse(course);
course.getCourseYears().add(cy);
cy.setImportYear(courseYear);
DaoFactory.getCourseYearDaoImpl().save(cy);
}else{
//Vai buscar o primeiro index da lista
cy = courseYearList.get(0);
 
}
 
cy.setCourseReportDocument(reportDocumentJson);
 
return reportDocumentJson;
}
 
/**
* Metodo que dá load ao json da tabela
*/
public String loadCourseReportDocument(String courseCode, String year, UserSession session) throws IOException {
 
List<CourseYear> courseYearList = DaoFactory.getCourseYearDaoImpl().findCourseYear(courseCode, year);
 
CourseYear cy;
//Cria a string para onde se vai fazer load e atribuir
String courseReportJson = null;
 
if (courseYearList.isEmpty()){
cy = null;
}else{
cy = courseYearList.get(0);
}
if (cy != null) {
courseReportJson = cy.getCourseReportDocument();
}
 
if (courseReportJson == null) {
try {
CourseReportDocument courseReport = createNewCourseReportDocument(courseCode, year);
courseReportJson = courseReport.toJson();
saveCourseReportDocument(courseReportJson, session);
} catch (Throwable e) {
System.out.println(e);
e.printStackTrace();
}
}
return courseReportJson;
}
 
 
 
 
 
 
public static void main(String[] args) throws IOException, JSONException {
AbstractDao.getCurrentSession().beginTransaction();
 
661,13 → 757,14
 
 
System.out.println(StreamsUtils.readString(url.openStream()));*/
 
 
}
 
/*
 
public String loadUnitsAndCreateLearningResultsTables4Course(String courseCode, String year) throws IOException, JSONException
{
 
}
*/
//TODO loadUnitsAndCreateLearningResultsTables4Course
/branches/grupo10/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java
1,10 → 1,121
package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components;
 
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent;
 
import jomm.utils.BytesUtils;
import jomm.utils.MimeTypeGuesser;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.block.BlockBorder;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.RingPlot;
import org.jfree.chart.renderer.category.StackedBarRenderer;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.RectangleInsets;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
import pt.estgp.estgweb.utils.Globals;
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent;
import pt.estgp.estgweb.web.controllers.utils.FileUploaded;
 
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
 
/**
* Created by jorgemachado on 31/10/17.
*/
public class GlobalLearningResultsChartYearImg extends AutoImageWraperComponent
public class GlobalLearningResultsChartYearImg extends ImageComponent
{
 
/**
*
* @param results
* @return the tmp path for generated chart
* @throws java.io.IOException
*/
public FileUploaded generateChart2tmp(UnitsLearningResultsTable results, CourseReportDocument courseReportDocument) throws IOException
{
//Anos para aparecer no grafico e para serem percorridos no foreach
java.util.List<UnitsLearningResultYear> years = results.getYears();
 
String tempName = BytesUtils.generateHexKey() + ".png";
 
DefaultCategoryDataset data = new DefaultCategoryDataset();
 
//Percorre cada ano, o year tem os métodos necessários para obter dados percentuais
for(UnitsLearningResultYear year : years) {
data.addValue(new Double(year.getAprovados1013Percent()), "Aprovados 10-13", year.getAno() + "ºAno");
data.addValue(new Double(year.getAprovados1416Percent()), "Aprovados 14-16", year.getAno() + "ºAno");
data.addValue(new Double(year.getAprovados1720Percent()), "Aprovados 17-20", year.getAno() + "ºAno");
}
//addvalue parametros(valor,fila,coluna)
data.addValue(new Double(results.getAprovados1013Percent()), "Aprovados 10-13","Total");
data.addValue(new Double(results.getAprovados1416Percent()), "Aprovados 14-16","Total");
data.addValue(new Double(results.getAprovados1720Percent()), "Aprovados 17-20","Total");
 
//Cria o grafico com orientação e a data
JFreeChart chart = ChartFactory.createStackedBarChart(null,null, null, data, PlotOrientation.VERTICAL, true, false, false);
 
//Fundo e linhas visiveis
chart.setBackgroundPaint(new Color(255,255,255));
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(new Color(255, 255, 255));
plot.setRangeGridlinePaint(Color.GRAY);
plot.setRangeGridlinesVisible(true);
 
 
//Insets do grafico, com o padding
RectangleInsets rectangle = new RectangleInsets(0,0,30F,0);
chart.setPadding(rectangle);
 
//Estilo do texto no grafico
plot.getDomainAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 25));
plot.getRangeAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 25));
 
StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
//Cores do grafico
renderer.setSeriesPaint(0, new Color(240, 130, 25));
renderer.setSeriesPaint(1, new Color(255, 218, 0));
renderer.setSeriesPaint(2, new Color(120, 173, 38));
//Grossura das barras
renderer.setMaximumBarWidth(0.1);
 
//O primeiro parametro é {2} por defeito, o 2º formata os valores no chart. Mete-o visivel e formata a letra
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("#.##'%'")));
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelFont(new Font("Helvetica", Font.PLAIN, 25));
 
//Legenda do grafico
LegendTitle legend = chart.getLegend();
legend.setItemFont(new Font("Helvetica", Font.PLAIN, 25));
legend.setFrame(BlockBorder.NONE);
 
 
BufferedImage image = chart.createBufferedImage( 300*4, 200*4);
String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.File.separator + tempName;
java.io.File output = new java.io.File(pathGraficoTiposAlunos);
ImageIO.write(image, "png", new FileOutputStream(output));
 
FileUploaded fileUploaded = new FileUploaded();
fileUploaded.setTmpName(tempName);
fileUploaded.setTitle("Taxa global de aproveitamento");
fileUploaded.setDescription("Curso: " + courseReportDocument.getCourseName() + " (" + courseReportDocument.getCourseCode()+ ") ano " + courseReportDocument.getYear());
fileUploaded.setContentType(MimeTypeGuesser.getInstance().guessMimeType(output));
fileUploaded.setFileSize(output.length());
fileUploaded.setExtension("png");
return fileUploaded;
}
 
public static void main(String [] args) throws IOException {
 
}
 
 
}
/branches/grupo10/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/CourseReportDocument.java
27,8 → 27,30
private String courseName;
private String year;
 
private String grau;
 
private String nomeEscola;
 
public String getGrau() {
return grau;
}
 
public void setGrau(String grau) {
this.grau = grau;
}
 
public String getNomeEscola() {
return nomeEscola;
}
 
public void setNomeEscola(String nomeEscola) {
this.nomeEscola = nomeEscola;
}
 
 
 
 
 
public CourseReportDocument()
{
 
63,6 → 85,8
setYear(year);
setCourseCode(c.getCode());
setCourseName(c.getName());
setNomeEscola(c.getDepartment().getCourseSchool().getName());
setGrau(c.getDegree());
 
//1 - Introducao
IntroSection introSection = new IntroSection();
/branches/grupo10/impl/src/java/pt/estgp/estgweb/domain/CourseImpl.java
21,7 → 21,6
*/
public class CourseImpl extends Course
{
 
private static final Logger logger = Logger.getLogger(CourseImpl.class);
 
public Serializable getSerializable()
/branches/grupo10/impl/src/java/pt/estgp/estgweb/filters/filters/IsFromCourseCommissionClass.java
New file
0,0 → 1,61
package pt.estgp.estgweb.filters.filters;
 
import jdk.nashorn.internal.codegen.types.Type;
import pt.estgp.estgweb.domain.CourseImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.LoadControlFilter;
import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException;
import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException;
import pt.estgp.estgweb.filters.filters.utils.LoadObjectFromParameters;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.utils.Globals;
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 org.apache.log4j.Logger;
 
public class IsFromCourseCommissionClass extends LoadControlFilter
{
private static final Logger logger = Logger.getLogger(IsFromCourseCommissionClass.class);
 
public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, Exception
{
 
UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY);
 
//Não tem autenticação então nega o acesso
if(userSession.getUser() == null)
{
logger.info("try access restricted area:" + request.getRequester());
throw new NeedAuthenticationException();
}
 
if(userSession.getUser().isSuperuser())
return;
 
 
 
String courseCode = null;
 
Object req = request.getServiceParameters().getParameter((String) filterParameters.getParameter(0));
 
if (req instanceof String){
courseCode = (String) req;
}else {
logger.info(userSession.getUser().getUsername() + ": Invalid Parameter");
throw new AccessDeniedOperationException("fail.owner");
}
 
 
CourseImpl courseimpl = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
 
if(!courseimpl.isFromCourseCommission(userSession.getUser()))
{
logger.warn(userSession.getUser().getUsername() + ": try access restricted area");
throw new AccessDeniedOperationException("fail.owner");
}
}
}
/branches/grupo10/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java
1,8 → 1,15
package pt.estgp.estgweb.web.controllers.courses;
 
 
import jomm.dao.impl.AbstractDao;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.json.JSONObject;
import pt.estgp.estgweb.domain.CourseImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
10,6 → 17,7
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
/**
* Created by jorgemachado on 06/01/17.
*/
42,5 → 50,48
return new JSONObject(json);
}
 
public JSONObject generateGlobalLearningResultsChartYearImg(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable {
 
String courseReportDocument = request.getParameter("courseReportDocument");
 
 
IServiceManager sm = ServiceManager.getInstance();
String json = (String) sm.execute(RequestUtils.getRequester(request, response),
"CourseReportGenerateGlobalLearningResultsChartYearImg",
new Object[]{courseReportDocument});
return new JSONObject(json);
}
 
 
public JSONObject saveCourseReportDocument(ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Throwable {
String courseReportDocument = request.getParameter("courseReportDocument");
 
IServiceManager sm = ServiceManager.getInstance();
String json = (String) sm.execute(RequestUtils.getRequester(request, response),
"SaveCourseReportDocument",
new Object[]{courseReportDocument});
return new JSONObject(json);
}
 
 
 
 
/* Req3 Esta função é chamada no struts e chamada o serviço load através do ServiceManager que é o Berserk
* antes de começar a ser editado */
public ActionForward startEdit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Throwable {
String courseCode = request.getParameter("courseCode");
String year = request.getParameter("year");
 
IServiceManager sm = ServiceManager.getInstance();
String courseReportJson = (String) sm.execute(
RequestUtils.getRequester(request, response),
"LoadCourseReportDocument",
new Object[]{courseCode, year},
new String[]{"courseCode", "year"});
request.setAttribute("courseReportJson", courseReportJson);
 
 
return mapping.findForward("editCourseReport");
}
 
}
/branches/grupo10/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml
79,6 → 79,14
<property name="separatedTurmas" type="boolean">
<column name="separatedTurmas" default="false"/>
</property>
 
<!-- Req1-->
<property name="CourseReportDocument" type="text">
<column name="CourseReportDocument" sql-type="LONGTEXT"></column>
</property>
<!-- *** -->
 
 
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" outer-join="true" lazy="false" column="course_id"/>
<subclass name="pt.estgp.estgweb.domain.CourseYearImpl" discriminator-value="CourseYearImpl"/>
</class>
/branches/grupo10/impl/src/web/user/courses/coursereport/templates.jsp
691,4 → 691,76
</div>
</div>
</div>
</script>
 
 
<!-- Johny -->
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_GlobalLearningResultsChartYearImg">
<globallearningresultschartyearimg>
</globallearningresultschartyearimg>
</script>
<script>
angular.module("courseReportApp").directive('globallearningresultschartyearimg', function() {
 
return {
restrict: 'E',
link: function($scope, element, attrs)
{
$scope.generateChart = function(comp)
{
 
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/courseReport.do",
"generateGlobalLearningResultsChartYearImg",
{
"courseReportDocument" : BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report)
},
"#courseReportApp",
function(repositoryFile4JsonView)
{
comp.image = repositoryFile4JsonView;
comp.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + comp.image.identifier + "?" + new Date().getTime();
angular.element($("#courseReportApp")).scope().$apply();
},
function(){}
);
}
 
 
},
templateUrl: function(elem,attrs) {
return "globallearningresultschartyearimg";
}
}
});
</script>
<script type="text/ng-template" id="globallearningresultschartyearimg">
<div class="imageComponent component">
 
<div class="componentBody">
<div class="form-group clearfix">
<label class="col-md-2 control-label">Legenda</label>
<div class="col-md-10">
<input type="text" class="form-control" rows="10" ng-model="comp.title">
</div>
</div>
<div class="form-group clearfix">
<div class="col-md-2 control-label">
<button class="btn btn-default" ng-click="generateChart(comp)">Refrescar/Gerar Gráfico</button>
</div>
<div class="col-md-10">
<label ng-if="comp.image.identifier"> Limites do PDF </label>
<div ng-if="comp.image.identifier" style="text-align: center; width: 595px; border: 1px solid black; padding: 45px">
<center>
<div style="width: 200px;height: 200px; max-width: 500px; max-height: 750px" resizable on-resize="resize($evt, $ui, comp)">
<img ng-if="comp.imageUrl" style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}">
<img ng-if="!comp.imageUrl" style="width: 100%;height: 100%" ng-src="{{'<%=request.getContextPath()%>/repositoryStream/' + comp.image.identifier}}">
</div>
(Se desejar altere o tamanho da imagem arrastando no canto inferior direito)
</center>
</div>
</div>
</div>
</div>
</div>
</script>
/branches/grupo10/impl/src/web/user/courses/courseReportEdit.jsp
1,349 → 1,13
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.CourseImpl" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.utils.documentBuilder.TextComponent" %>
<%@ page import="pt.estgp.estgweb.utils.documentBuilder.ImageComponent" %>
<%@ page import="pt.estgp.estgweb.services.courses.CourseReportServices" %>
<%@ page import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument" %>
<%@ page import="org.json.JSONException" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
 
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquery-ui-1.12.1/jquery-ui.css">
<script src="<%=request.getContextPath()%>/js/jquery-ui-1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="<%=request.getContextPath()%>/css/flora-commons/flora.resizable.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
<script>
function demoFromHTML() {
var pdf = new jsPDF('p', 'pt', 'letter');
// source can be HTML-formatted string, or a reference
// to an actual DOM element from which the text will be scraped.
source = $('#courseReportApp')[0];
<!--*************************************-->
 
// we support special element handlers. Register them with jQuery-style
// ID selector for either ID or node name. ("#iAmID", "div", "span" etc.)
// There is no support for any other type of selectors
// (class, of compound) at this time.
specialElementHandlers = {
// element with id of "bypass" - jQuery style selector
'#bypassme': function (element, renderer) {
// true = "handled elsewhere, bypass text extraction"
return true
}
};
margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
// all coords and widths are in jsPDF instance's declared units
// 'inches' in this case
pdf.fromHTML(
source, // HTML string or DOM elem ref.
margins.left, // x coord
margins.top, { // y coord
'width': margins.width, // max width of content on PDF
'elementHandlers': specialElementHandlers
},
 
function (dispose) {
// dispose: object with X, Y of the last line add to the PDF
// this allow the insertion of new lines after html
//var pdfDocument = pdf.save('Test.pdf');
var pdfDocument = pdf.output();
 
var boundary = '---------------------------';
boundary += Math.floor(Math.random()*32768);
boundary += Math.floor(Math.random()*32768);
boundary += Math.floor(Math.random()*32768);
 
var body = '';
body += '--' + boundary + '\r\n' +
'Content-Disposition: form-data; name="filesInputId-UPLOAD[]"; filename="20170530_210340.pdf"' + '\r\n';
body += 'Content-Type: application/pdf';
body += '\r\n\r\n';
body += pdfDocument;
body += '\r\n'
body += '--' + boundary + '--';
 
 
 
$.ajax({
type: "POST",
cache: false,
url: "<%=request.getContextPath()%>/filesUpload",
data: body ,
processData: false,
contentType : 'multipart/form-data; boundary=' + boundary,
success: function (data) {
alert('success');
return false;
}
});
}, margins
);
}
</script>
 
<%
 
String courseCode = request.getParameter("courseCode");
String year = request.getParameter("year");
AbstractDao.getCurrentSession().beginTransaction();
CourseImpl courseImpl = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
request.setAttribute("course",courseImpl);
CourseReportDocument courseReport = null;
try {
courseReport = new CourseReportServices().createNewCourseReportDocument(courseCode, year);
} catch (Throwable e) {
System.out.println(e);
e.printStackTrace();
}
String courseReportJson = courseReport.toJson();
request.setAttribute("courseDocumentJson",courseReportJson);
request.setAttribute("courseDocument",courseReport);
 
%>
<%--<a href="javascript:demoFromHTML()" class="button">Run Code</a>--%>
 
<div class="container-fluid">
 
<style>
.separatorSection
{
border: 1px solid #ddd;
}
</style>
 
 
<!-- Apresentacao da Unidade -->
 
<div class="panel panel-default">
<div class="panel-heading">
Relatório Anual do curso: ${course.name}
</div>
<div class="panel-body">
 
<p><b class="label-info">Tipo de Curso:</b> <bean:message key="course.${course.degree}"/></p>
<p><b class="label-info">Ano Lectivo:</b> ${course.importYear}</p>
<p><b class="label-info">Departamento:</b> ${course.department.name}</p>
<p><b class="label-info">Escola:</b> ${course.department.courseSchool.name}</p>
 
 
 
 
<script>
 
//Especifico da aplicacao
var courseReportApp = angular.module('courseReportApp', ['ui.tree']);
GLOBAL_BacoAngularAppDependencies.push('courseReportApp');
 
 
courseReportApp.directive('resizable', function () {
return {
restrict: 'A',
scope: {
callback: '&onResize'
},
link: function postLink(scope, elem, attrs) {
elem.resizable();
elem.on('resize', function (evt, ui, comp) {
scope.$apply(function() {
if (scope.callback) {
scope.callback({$evt: evt, $ui: ui, $comp: comp });
}
})
});
}
};
});
 
 
courseReportApp.controller('courseReportAppController', function($scope)
{
 
$scope.docAppSelector = "#courseReportApp";
$scope.report = <%=courseReportJson%>
 
$scope.resize = function(evt,ui,comp) {
//console.log (evt,ui);
comp.width = ui.size.width;
comp.height = ui.size.height;
}
 
/**
* @classe class to match
* @superClasses array of strings
* */
$scope.contains = function(obj,classe)
{
if(obj['@class'] && obj['@class'] == classe)
return true;
if(obj.allSuperClasses)
{
for(var i in obj.allSuperClasses)
{
if(classe == obj.allSuperClasses[i])
return true;
}
}
return false;
}
 
$scope.showSep = function(section,subSection)
{
var s;
for(s in section.sections)
{
section.sections[s].active = false;
}
/*$(".separatorSectionNav").each(function()
{
angular.element($(this)).scope().section.active = false;
});*/
subSection.active = true;
}
 
/**
* Este metodo devolve o template mais profundo na hierarquia de classes
* permitindo emular o override, quanto mais especifica for a classe
* e caso exista template é esse o template devolvido
* procura um script com o id da classe e se nao existir
* vai subindo nas super classes
* @param obj
* @returns {*}
*/
$scope.class2id = function(obj)
{
var objClassId = obj["@class"].replaceAll(".","_");
if($("script#" + objClassId).length > 0)
{
return objClassId;
}
if(obj.allSuperClasses)
{
var s;
for(s in obj.allSuperClasses)
{
var superClass = obj.allSuperClasses[s];
var superClassId = superClass.replaceAll(".","_");
if($("script#" + superClassId).length > 0)
{
return superClassId;
}
}
}
return obj["@class"].replaceAll(".","_");
}
 
$scope.addText = function(parentCustomPane)
{
$scope.addSimpleDocComponent(parentCustomPane,"pt.estgp.estgweb.utils.documentBuilder.TextComponent")
}
 
$scope.addImage = function(parentCustomPane)
{
$scope.addSimpleDocComponent(parentCustomPane,"pt.estgp.estgweb.utils.documentBuilder.ImageComponent")
}
 
$scope.addSimpleDocComponent = function(parentCustomPane,classComponent)
{
if(!parentCustomPane.components)
{
parentCustomPane.components = [];
}
parentCustomPane.components.push(
{
"@class" : classComponent
}
);
}
$scope.removeComponent = function(index,array)
{
array.splice(index,1);
}
 
$scope.callbackUploadedFiles = function(filesUploadResult,token,targetElement)
{
var modelObject = BacoAngularUtils.getAngularElementModel(targetElement);
 
if(modelObject.image && modelObject.image.identifier)
{
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/json/repository.do",
"replaceRepositoryFileFromTempPrivateDomain",
{
"identifier" : modelObject.image.identifier,
"fileUploaded" : BacoJS.stringifyOrdered(filesUploadResult.uploadedFiles[0])
},
"#courseReportApp",
function(repositoryFile4JsonView)
{
modelObject.image = repositoryFile4JsonView;
//image URL is generated on reimport just to avoid caching
modelObject.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + modelObject.image.identifier + "?" + new Date().getTime();
angular.element($("#courseReportApp")).scope().$apply();
},
function(){}
);
}
else
{
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/json/repository.do",
"saveRepositoryFileFromTempPrivateDomain",
{
"fileUploaded" : BacoJS.stringifyOrdered(filesUploadResult.uploadedFiles[0])
},
"#courseReportApp",
function(repositoryFile4JsonView)
{
modelObject.image = repositoryFile4JsonView;
modelObject.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + modelObject.image.identifier + "?" + new Date().getTime();
angular.element($("#courseReportApp")).scope().$apply();
},
function(){}
);
}
}
 
 
 
 
});
</script>
 
<!--TEMPLATES FOR DOCUMENT BUILDER-->
<jsp:include page="../utils/documentsBuilder.jsp"/>
<jsp:include page="coursereport/templates.jsp"/>
 
<div class="form-vertical">
<div id="courseReportApp" ng-app="courseReportApp" ng-controller="courseReportAppController">
 
<div ng-init="section=report;" ng-include="'pt_estgp_estgweb_utils_documentBuilder_DocumentSection'">
 
</div>
 
<!-- <pre class="code">{{ report | json }}</pre>-->
 
 
 
</div><!--App-->
</div> <!--form-->
 
</div><!--Panel Body-->
 
</div><!--Panel-->
 
</div><!--container-fluid-->
 
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
<jsp:include page="../utils/reportEdit.jsp"/>
<jsp:include page="coursereport/templates.jsp"/>
/branches/grupo10/impl/src/web/user/home/teacher.jsp
21,188 → 21,204
<%--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>--%>
 
 
<logic:notMatch value="TeacherImpl" name="UserSession" property="user.class.name">
<div class="alert alert-warning">
<bean:message key="profile.bad.profile.teacher.iregular.user.class"/>
</div>
</logic:notMatch>
<logic:notMatch value="TeacherImpl" name="UserSession" property="user.class.name">
<div class="alert alert-warning">
<bean:message key="profile.bad.profile.teacher.iregular.user.class"/>
</div>
</logic:notMatch>
 
<jsp:include page="todosAfazer.jsp"/>
<jsp:include page="todosAfazer.jsp"/>
 
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-right: 6px">
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-right: 6px">
 
<baco:isModuleOn module="courseunits">
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div>
<div class="panel-body">
<!--<p><bean:message key="intranet.home.curricular"/></p>-->
<!--<ul>
<li>-->
<div class="list-group">
<div class="list-group-item">
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/></html:link>
</div>
<div class="list-group-item">
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/></html:link>
</div>
<div class="list-group-item">
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/comAvalDesemp">Avaliação de Desempenho Docente</a>
</div>
<baco:isModuleOn module="courseunits">
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div>
<div class="panel-body">
<!--<p><bean:message key="intranet.home.curricular"/></p>-->
<!--<ul>
<li>-->
<div class="list-group">
<div class="list-group-item">
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/></html:link>
</div>
<!--</li>
</ul>-->
<div class="list-group-item">
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/></html:link>
</div>
<div class="list-group-item">
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/comAvalDesemp">Avaliação de Desempenho Docente</a>
</div>
</div>
<!--</li>
</ul>-->
</div>
</div>
 
 
<%
java.util.List<String> years = new java.util.ArrayList<String>();
String nowImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction();
years.add(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction());
years.add(DatesUtils.getPreviousImportYear(nowImportYear));
<%
java.util.List<String> years = new java.util.ArrayList<String>();
String nowImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction();
years.add(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction());
years.add(DatesUtils.getPreviousImportYear(nowImportYear));
 
java.util.Collections.sort(years, new java.util.Comparator<String>()
{
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
java.util.Collections.sort(years, new java.util.Comparator<String>()
{
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
 
 
 
for(String year: years)
{
for(String year: years)
{
 
String yearFormatted = pt.estgp.estgweb.utils.DatesUtils.getImportYearFormatted(year);
String yearFormatted = pt.estgp.estgweb.utils.DatesUtils.getImportYearFormatted(year);
 
 
%>
%>
 
 
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="intranet.course.units"/> - <%=yearFormatted%></div>
<div class="panel-body">
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="intranet.course.units"/> - <%=yearFormatted%></div>
<div class="panel-body">
 
 
 
<%
String[] semestres = new String[]{"A","S1","S2","T1","T2","T3","T4"};
String[] semestreLabel = new String[]{
MessageResources.getMessage(request,"courseunit.anuais"),
MessageResources.getMessage(request,"courseunit.semestre") + "1",
MessageResources.getMessage(request,"courseunit.semestre") + "2",
MessageResources.getMessage(request,"courseunit.trimestre") + "1",
MessageResources.getMessage(request,"courseunit.trimestre") + "2",
MessageResources.getMessage(request,"courseunit.trimestre") + "3",
MessageResources.getMessage(request,"courseunit.trimestre") + "4"};
<%
String[] semestres = new String[]{"A","S1","S2","T1","T2","T3","T4"};
String[] semestreLabel = new String[]{
MessageResources.getMessage(request,"courseunit.anuais"),
MessageResources.getMessage(request,"courseunit.semestre") + "1",
MessageResources.getMessage(request,"courseunit.semestre") + "2",
MessageResources.getMessage(request,"courseunit.trimestre") + "1",
MessageResources.getMessage(request,"courseunit.trimestre") + "2",
MessageResources.getMessage(request,"courseunit.trimestre") + "3",
MessageResources.getMessage(request,"courseunit.trimestre") + "4"};
 
for(int i =0;i< semestres.length;i++)
{
request.setAttribute("LABEL",semestreLabel[i]);
%>
for(int i =0;i< semestres.length;i++)
{
request.setAttribute("LABEL",semestreLabel[i]);
%>
 
<jsp:useBean id="LABEL" scope="request" type="java.lang.String"/>
<%
TeacherImpl u = ((pt.estgp.estgweb.domain.TeacherImpl)UserSession.getUser());
List<pt.estgp.estgweb.domain.CourseUnit> cus=
(List<CourseUnit>)
u.getClass().getMethod("getTeachedUnitsView" + semestres[i],String.class)
.invoke(u,year);
request.setAttribute("units",cus);
if(cus == null || cus.size() == 0)
{}
else if(cus.size() > 0)
{
%>
<jsp:useBean id="units" scope="request" type="java.util.Collection"/>
<div class="list-group">
<div class="list-group-item list-group-item-heading"><bean:write name="LABEL"/></div>
<jsp:useBean id="LABEL" scope="request" type="java.lang.String"/>
<%
TeacherImpl u = ((pt.estgp.estgweb.domain.TeacherImpl)UserSession.getUser());
List<pt.estgp.estgweb.domain.CourseUnit> cus=
(List<CourseUnit>)
u.getClass().getMethod("getTeachedUnitsView" + semestres[i],String.class)
.invoke(u,year);
request.setAttribute("units",cus);
if(cus == null || cus.size() == 0)
{}
else if(cus.size() > 0)
{
%>
<jsp:useBean id="units" scope="request" type="java.util.Collection"/>
<div class="list-group">
<div class="list-group-item list-group-item-heading"><bean:write name="LABEL"/></div>
 
<logic:iterate id="unit" name="units" type="pt.estgp.estgweb.domain.CourseUnit">
<div class="list-group-item">
<div class="row">
<div class="col-sm-10"><html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}) ${unit.cdTurma}</html:link></div>
<div class="col-sm-2"><html:link action="/user/startLoadCourseUnitRootFromHome?courseUnitView.id=${unit.id}"> <span style="padding:5px" class="glyphicon glyphicon-folder-open"></span> </html:link></div>
</div>
</div>
</logic:iterate>
<logic:iterate id="unit" name="units" type="pt.estgp.estgweb.domain.CourseUnit">
<div class="list-group-item">
<div class="row">
<div class="col-sm-10"><html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}) ${unit.cdTurma}</html:link></div>
<div class="col-sm-2"><html:link action="/user/startLoadCourseUnitRootFromHome?courseUnitView.id=${unit.id}"> <span style="padding:5px" class="glyphicon glyphicon-folder-open"></span> </html:link></div>
</div>
</div>
<%
}
}
</logic:iterate>
</div>
<%
}
}
 
%>
%>
 
</div>
</div>
<%
}
%>
</div>
<%
}
%>
 
</baco:isModuleOn>
<%--
<baco:isModuleOn module="todos">
<jsp:include page="/user/home/todos.jsp"/>
</baco:isModuleOn>--%>
<baco:isModuleOn module="courseunits">
<jsp:include page="/user/home/courseUnitsAnnouncements.jsp"/>
</baco:isModuleOn>
</baco:isModuleOn>
<%--
<baco:isModuleOn module="todos">
<jsp:include page="/user/home/todos.jsp"/>
</baco:isModuleOn>--%>
<baco:isModuleOn module="courseunits">
<jsp:include page="/user/home/courseUnitsAnnouncements.jsp"/>
</baco:isModuleOn>
 
 
</div>
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-left: 6px">
</div>
<div class="col-md-6 col-sm-12 col-xs-12" style="padding-left: 6px">
 
<%
AbstractDao.getCurrentSession().beginTransaction();
TeacherImpl tLoggedIn = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(UserSession.getUser().getId());
boolean hasCommisionsOrCoordinations = tLoggedIn.hasCoordinationsOrBelongToCourseCommissions();
AbstractDao.getCurrentSession().getTransaction().commit();
if( hasCommisionsOrCoordinations )
{
%>
<div class="panel panel-primary">
<div class="panel-heading">As minhas Comissões de Curso</div>
<div class="panel-body">
<%
AbstractDao.getCurrentSession().beginTransaction();
TeacherImpl tLoggedIn = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(UserSession.getUser().getId());
boolean hasCommisionsOrCoordinations = tLoggedIn.hasCoordinationsOrBelongToCourseCommissions();
request.setAttribute("tLoggedIn", tLoggedIn);
AbstractDao.getCurrentSession().getTransaction().commit();
 
<div class="list-group">
<div class="list-group-item">
if( hasCommisionsOrCoordinations )
{
%>
<div class="panel panel-primary">
<div class="panel-heading">As minhas Comissões de Curso</div>
<div class="panel-body">
 
<div class="list-group">
 
<!-- Req 6 -->
<logic:iterate id="course" name="tLoggedIn" property="coordinatorCourses" type="pt.estgp.estgweb.domain.Course">
<div class="list-group-item">
<html:link action="/user/editCourseReport.do?courseCode=${course.code}&year=${UserSession.nowConfiguration.interfaceImportYear}">Editar o relatório de Curso do ano </html:link>
</div>
</logic:iterate>
<!--*****************-->
 
<div class="list-group-item">
<html:link action="/user/startSubmitMessageCourseComission">
Enviar email aos alunos
</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCourseCourseUnitsStatistics?importYear=${UserSession.nowConfiguration.interfaceImportYear}">Consultar estatisticas das Unidades Curriculares (${UserSession.nowConfiguration.interfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCourseCourseUnitsStatistics?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}">Consultar estatisticas das Unidades Curriculares (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/listStudentsCourseComission">
Consultar Alunos
</html:link>
</div>
<!--<div class="list-group-item">
<html:link action="/user/startSubmitMessageCourseComission">
Enviar email aos alunos
</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCourseCourseUnitsStatistics?importYear=${UserSession.nowConfiguration.interfaceImportYear}">Consultar estatisticas das Unidades Curriculares (${UserSession.nowConfiguration.interfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCourseCourseUnitsStatistics?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}">Consultar estatisticas das Unidades Curriculares (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/listStudentsCourseComission">
Consultar Alunos
</html:link>
</div>
<!--<div class="list-group-item">
<html:link action="/user/startSubmitMessageCourseComission">
Consultar Docentes
</html:link>
</div>-->
<div class="list-group-item">
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.interfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.interfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.interfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.interfaceImportYear})</html:link>
</div>
<div class="list-group-item">
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link>
</div>
 
<div class="list-group-item">
<html:link action="/user/courseReportTools?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}">Utilitários do Relatório de Curso (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link>
</div>
</div>
<!--</li>
</ul>-->
</div>
<div class="list-group-item">
<html:link action="/user/courseReportTools?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}">Utilitários do Relatório de Curso (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link>
</div>
<jsp:include page="courseComission.jsp"/>
 
 
<div class="list-group-item">
<!--http://localhost:8080/baco/user/editCourseReport.do?courseCode=44&year=201617 -->
 
</div>
<!--</li>
</ul>-->
</div>
</div>
<jsp:include page="courseComission.jsp"/>
<%
}
 
257,27 → 273,27
%>
<div class="list-group">
<div class="list-group-item list-group-item-warning"><span class="icon icon-clipboard"></span> <label class="label label-warning" style="font-size:1em"><%=activeYear%></label> Relatórios de avaliação por preencher/entregar de <%=activeYear%>
<%--<%
if(activeDegrees != null)
{
%>
(graus em processo de validação:
<%
String sep = "";
for(String activeDegree: activeDegrees)
{
%>
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%>
<%
sep = ", ";
}
%>
)
<%
}
%>
--%>
</div>
<%--<%
if(activeDegrees != null)
{
%>
(graus em processo de validação:
<%
String sep = "";
for(String activeDegree: activeDegrees)
{
%>
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%>
<%
sep = ", ";
}
%>
)
<%
}
%>
--%>
</div>
 
<%
for(CourseUnit cu: evaluations)
307,6 → 323,7
 
 
 
</div>
</div>
</div>
 
/branches/grupo10/impl/src/web/user/utils/reportEdit.jsp
New file
0,0 → 1,349
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
 
<%-- http://localhost:8080/baco/user/editCourseReport.do?courseCode=44&year=201617 --%>
 
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquery-ui-1.12.1/jquery-ui.css">
<script src="<%=request.getContextPath()%>/js/jquery-ui-1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="<%=request.getContextPath()%>/css/flora-commons/flora.resizable.css">
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>
<script>
function demoFromHTML() {
var pdf = new jsPDF('p', 'pt', 'letter');
// source can be HTML-formatted string, or a reference
// to an actual DOM element from which the text will be scraped.
source = $('#courseReportApp')[0];
 
// we support special element handlers. Register them with jQuery-style
// ID selector for either ID or node name. ("#iAmID", "div", "span" etc.)
// There is no support for any other type of selectors
// (class, of compound) at this time.
specialElementHandlers = {
// element with id of "bypass" - jQuery style selector
'#bypassme': function (element, renderer) {
// true = "handled elsewhere, bypass text extraction"
return true
}
};
margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
// all coords and widths are in jsPDF instance's declared units
// 'inches' in this case
pdf.fromHTML(
source, // HTML string or DOM elem ref.
margins.left, // x coord
margins.top, { // y coord
'width': margins.width, // max width of content on PDF
'elementHandlers': specialElementHandlers
},
 
function (dispose) {
// dispose: object with X, Y of the last line add to the PDF
// this allow the insertion of new lines after html
var pdfDocument = pdf.save('Test.pdf');
/*var pdfDocument = pdf.output();
 
var boundary = '---------------------------';
boundary += Math.floor(Math.random()*32768);
boundary += Math.floor(Math.random()*32768);
boundary += Math.floor(Math.random()*32768);
 
var body = '';
body += '--' + boundary + '\r\n' +
'Content-Disposition: form-data; name="filesInputId-UPLOAD[]"; filename="20170530_210340.pdf"' + '\r\n';
body += 'Content-Type: application/pdf';
body += '\r\n\r\n';
body += pdfDocument;
body += '\r\n'
body += '--' + boundary + '--';
 
 
 
$.ajax({
type: "POST",
cache: false,
url: "<%=request.getContextPath()%>/filesUpload",
data: body ,
processData: false,
contentType : 'multipart/form-data; boundary=' + boundary,
success: function (data) {
alert('success');
return false;
}
});*/
}, margins
);
}
</script>
 
<script>ping()</script>
 
<jsp:useBean id="courseReportJson" type="java.lang.String" scope="request"/>
 
<%
//AbstractDao.getCurrentSession().beginTransaction();
%>
<%--<a href="javascript:demoFromHTML()" class="button">Run Code</a>--%>
 
<div id="courseReportApp" ng-app="courseReportApp" ng-controller="courseReportAppController" class="container-fluid">
 
<style>
.separatorSection
{
border: 1px solid #ddd;
}
</style>
 
 
<!-- Apresentacao da Unidade -->
 
<div class="panel panel-default">
<div class="panel-heading">
Relatório Anual do curso: {{report.name}}
</div>
<div class="panel-body">
 
<p><b class="label-info">Tipo de Curso:</b> {{report.degree}}</p>
<p><b class="label-info">Ano Lectivo:</b> {{report.years}}</p>
<p><b class="label-info">Escola:</b> {{report.nomeEscola}}</p>
 
 
<div ng-include="class2id(report)">
 
<script>
 
//Especifico da aplicacao
var courseReportApp = angular.module('courseReportApp', ['ui.tree']);
GLOBAL_BacoAngularAppDependencies.push('courseReportApp');
 
 
courseReportApp.directive('resizable', function () {
return {
restrict: 'A',
scope: {
callback: '&onResize'
},
link: function postLink(scope, elem, attrs) {
elem.resizable();
elem.on('resize', function (evt, ui, comp) {
scope.$apply(function() {
if (scope.callback) {
scope.callback({$evt: evt, $ui: ui, $comp: comp });
}
})
});
}
};
});
 
 
courseReportApp.controller('courseReportAppController', function($scope)
{
 
$scope.docAppSelector = "#courseReportApp";
$scope.report = ${courseReportJson}
 
$scope.resize = function(evt,ui,comp) {
//console.log (evt,ui);
comp.width = ui.size.width;
comp.height = ui.size.height;
}
 
/**
* @classe class to match
* @superClasses array of strings
* */
$scope.contains = function(obj,classe)
{
if(obj['@class'] && obj['@class'] == classe)
return true;
if(obj.allSuperClasses)
{
for(var i in obj.allSuperClasses)
{
if(classe == obj.allSuperClasses[i])
return true;
}
}
return false;
}
 
$scope.showSep = function(section,subSection)
{
var s;
for(s in section.sections)
{
section.sections[s].active = false;
}
/*$(".separatorSectionNav").each(function()
{
angular.element($(this)).scope().section.active = false;
});*/
subSection.active = true;
}
 
/**
* Este metodo devolve o template mais profundo na hierarquia de classes
* permitindo emular o override, quanto mais especifica for a classe
* e caso exista template é esse o template devolvido
* procura um script com o id da classe e se nao existir
* vai subindo nas super classes
* @param obj
* @returns {*}
*/
$scope.class2id = function(obj)
{
var objClassId = obj["@class"].replaceAll(".","_");
if($("script#" + objClassId).length > 0)
{
return objClassId;
}
if(obj.allSuperClasses)
{
var s;
for(s in obj.allSuperClasses)
{
var superClass = obj.allSuperClasses[s];
var superClassId = superClass.replaceAll(".","_");
if($("script#" + superClassId).length > 0)
{
return superClassId;
}
}
}
return obj["@class"].replaceAll(".","_");
}
 
$scope.addText = function(parentCustomPane)
{
$scope.addSimpleDocComponent(parentCustomPane,"pt.estgp.estgweb.utils.documentBuilder.TextComponent")
}
 
$scope.addImage = function(parentCustomPane)
{
$scope.addSimpleDocComponent(parentCustomPane,"pt.estgp.estgweb.utils.documentBuilder.ImageComponent")
}
 
$scope.addSimpleDocComponent = function(parentCustomPane,classComponent)
{
if(!parentCustomPane.components)
{
parentCustomPane.components = [];
}
parentCustomPane.components.push(
{
"@class" : classComponent
}
);
}
$scope.removeComponent = function(index,array)
{
array.splice(index,1);
}
 
$scope.callbackUploadedFiles = function(filesUploadResult,token,targetElement)
{
var modelObject = BacoAngularUtils.getAngularElementModel(targetElement);
 
if(modelObject.image && modelObject.image.identifier)
{
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/json/repository.do",
"replaceRepositoryFileFromTempPrivateDomain",
{
"identifier" : modelObject.image.identifier,
"fileUploaded" : BacoJS.stringifyOrdered(filesUploadResult.uploadedFiles[0])
},
"#courseReportApp",
function(repositoryFile4JsonView)
{
modelObject.image = repositoryFile4JsonView;
//image URL is generated on reimport just to avoid caching
modelObject.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + modelObject.image.identifier + "?" + new Date().getTime();
angular.element($("#courseReportApp")).scope().$apply();
},
function(){}
);
}
else
{
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/json/repository.do",
"saveRepositoryFileFromTempPrivateDomain",
{
"fileUploaded" : BacoJS.stringifyOrdered(filesUploadResult.uploadedFiles[0])
},
"#courseReportApp",
function(repositoryFile4JsonView)
{
modelObject.image = repositoryFile4JsonView;
modelObject.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + modelObject.image.identifier + "?" + new Date().getTime();
angular.element($("#courseReportApp")).scope().$apply();
},
function(){}
);
}
}
 
$scope.saveCourseReportDocument = function () {
widgetCallWithActionParameters(
"<%=request.getContextPath()%>/user/courseReport.do",
"saveCourseReportDocument",
{
"courseReportDocument" : BacoJS.stringifyOrdered($scope.report)
},
"#courseReportApp",
function(data)
{
alert(BacoJS.stringifyOrdered(data));
},
function(){}
);
}
 
 
 
});
</script>
 
<!--TEMPLATES FOR DOCUMENT BUILDER-->
<jsp:include page="documentsBuilder.jsp"/>
 
<div class="form-vertical">
<div>
<div class="web-messages"></div>
 
<button class="btn btn-success" ng-click="saveCourseReportDocument()">Gravar</button>
<button class="btn btn-success" onclick="demoFromHTML()">PDF</button>
 
<div ng-init="section=report;" ng-include="'pt_estgp_estgweb_utils_documentBuilder_DocumentSection'">
 
</div>
 
<!--<pre class="code">{{ report | json }}</pre>-->
 
 
 
</div><!--App-->
</div> <!--form-->
 
</div><!--Panel Body-->
 
</div><!--Panel-->
 
</div><!--container-fluid-->
 
<%
//AbstractDao.getCurrentSession().getTransaction().commit();
%>
/branches/grupo10/impl/build.xml
66,6 → 66,7
<target name="initDirs">
<mkdir dir="${log.dir}"/>
<mkdir dir="${data.dir}"/>
<mkdir dir="${tmp.dir}"/>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir.classes}"/>
<mkdir dir="${build.dir.war}"/>
299,7 → 300,7
<fileset dir="${common.lib.dir}/json">
<include name="**/*.jar"/>
<exclude name="genson-0.97.jar"/>
<exclude name="genson-1.4.jar"/>
<!--<exclude name="genson-1.4.jar"/>-->
</fileset>
<fileset dir="${common.lib.dir}/jsoup">
<include name="**/*.jar"/>
/branches/grupo10/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java
2,12 → 2,13
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9
 
 
import java.io.Serializable;
import java.util.Date;
 
/**
* CourseYear generated by hbm2java
*/
public abstract class CourseYear extends pt.estgp.estgweb.domain.DomainSerializableObject implements java.io.Serializable {
public abstract class CourseYear extends DomainSerializableObject implements Serializable {
 
 
private long id;
16,7 → 17,16
private String importYear;
private boolean separatedTurmas;
private Course course;
private String CourseReportDocument;
 
public String getCourseReportDocument() {
return CourseReportDocument;
}
 
public void setCourseReportDocument(String courseReportDocument) {
CourseReportDocument = courseReportDocument;
}
 
public CourseYear() {
}