/branches/grupo3/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
168,7 → 168,18 |
<!-- --> |
<action path="/user/courseReport" |
type="pt.estgp.estgweb.web.controllers.courses.CoursesServicesController" |
name="WidgetModelForm" |
scope="request" |
parameter="dispatch" |
validate="true" |
input="page.widget.json.fail.validations"> |
</action> |
</action-mappings> |
</struts-config> |
/branches/grupo3/impl/conf/berserk/sd.xml |
---|
4046,4 → 4046,20 |
</service> |
<!-- AA 7/12/2017 --> |
<service> |
<name>CourseReportSave</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass> |
<description> |
@reportCourseDocument documento course report em json |
</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>save</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
449,10 → 449,22 |
} |
/* AA 7/12/2017 */ |
public String save(String reportDocumentJson,UserSession session) throws IOException { |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
DaoFactory.getCourseDaoImpl().findCourseByCode(reportDocument.getCourseCode()); |
return reportDocument.toJson(); |
} |
/****************************************************************************/ |
/* |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesController.java |
---|
696,8 → 696,4 |
return tJson; |
} |
} |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
New file |
0,0 → 1,63 |
package pt.estgp.estgweb.web.controllers.courses; |
import org.apache.struts.action.ActionForm; |
import org.json.JSONObject; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
/** |
* Created by jorgemachado on 06/01/17. |
*/ |
public class CoursesServicesController extends AbstractWidgetAjaxController |
{ |
/** |
* See also CoursesServicesWidgetController for WS-API services |
*/ |
/** |
* |
* @param form |
* @param request |
* @param response |
* @return |
* @throws Throwable |
*/ |
public JSONObject generateGlobalLearningResultsChartImg(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), |
"CourseReportGenerateGlobalLearningResultsChartImg", |
new Object[]{courseReportDocument}); |
return new JSONObject(json); |
} |
/* AA 7/12/2017 */ |
public JSONObject saveReport(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), |
"CourseReportSave", |
new Object[]{courseReportDocument}); |
return new JSONObject(json); |
} |
} |
/branches/grupo3/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml |
---|
79,6 → 79,10 |
<property name="separatedTurmas" type="boolean"> |
<column name="separatedTurmas" default="false"/> |
</property> |
<!-- |
<property name="report" type="text"> |
<column name="report" sql-type="LONGTEXT"/> |
</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/grupo3/impl/src/web/user/courses/courseReportEdit.jsp |
---|
314,9 → 314,27 |
} |
} |
/* Guardar courseReport 7/12/2017 */ |
$scope.save = function() |
{ |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/json/repository.do", |
"saveReport", |
{ |
"report" : BacoJS.stringifyOrdered($scope.report) |
}, |
"#courseReportApp", |
function(json) |
{ |
alert(BacoJS.stringifyOrdered(json)); |
}, |
function(){} |
); |
} |
}); |
</script> |
337,6 → 355,7 |
</div><!--App--> |
</div> <!--form--> |
<button class="md-raised md-button md-ink-ripple" type="button" ng-transclude="" ng-click="save()"><span class="ng-scope">Save</span></button> |
</div><!--Panel Body--> |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Pagina.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskActorInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/EventGeneric.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupDocentesAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveDecisionHolderInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgram.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationSeparator.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupCursosAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndMessageInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPoolThreadInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Survey.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RecordThesis.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionPossibleAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentInterface.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/PageSection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionCandidateAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPoolInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/EventClass.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RecordJob.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesStatusEpoca.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/PageRepositoryFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgenservices.repositorydocuments.RepositoryFileProxy; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitSummary.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Record.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnRoleSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnTaskFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportDocenteFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableDomainObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Blog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskActor.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.Todos; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Assessment.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFileVersion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UserRoleConfig.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTask.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.Todos; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfeta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveDecisionHolder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableBoolean.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionItem.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Page.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseStudiesPlan.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitado.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Process.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/AppUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPool.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/PageText.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Questionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaEsforco.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndMessages.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.TargetActorType; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableString.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGateway.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableJson.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionItem.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Group.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesEpocaAvaliacao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitada.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAnnouncement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifierCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryCategory.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RecordOther.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDelivery.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitEvaluation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportCursoFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroup.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelectorCondicionado.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgramPart2.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioCurso.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Reminder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RecordEventOrganization.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RecordPaper.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Configuration.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/PageContent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.io.Serializable; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/JobParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableInteger.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnProcessInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/EventFormacoes.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ComunicationFolder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Student.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableFloat.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnUserSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioTipologia.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariable.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.VariableType; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/PageExternalObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEvent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitTurma.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyResponse.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEventFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioUnidade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusive.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableLong.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowConnectorInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SruSource.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnProcess.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableJsonArray.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Course.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/PageExternalUrl.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitGrade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/AssessmentResponse.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocument.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/User.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/EventUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Image.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Teste.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswerEsforco.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelectorWithDomainObjectLoader.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioHistoryDrive.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAssignement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowConnector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitada.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEnd.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowObjectInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseSchool.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Job.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.io.Serializable; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnAbstractActorSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskScheduler.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/EventGenericRecord.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/CourseDepartment.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/SurveyStructuralNode.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableDouble.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGrades.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/Seccao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo3/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated 11/dez/2017 14:53:26 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo5/impl/conf/WEB-INF/struts/struts-json-ws.xml |
---|
52,13 → 52,12 |
<action path="/secure/ws-teacher-list" forward="/user/jsonModel.do?dispatch=executeService&serviceJson=wsListTeachers"/> |
<action path="/secure/ws-coordinators-list" forward="/user/jsonModel.do?dispatch=executeService&serviceJson=wsListCoordinators"/> |
<!--SERVICOS ABERTOS POR ENQUANTO--> |
<!--SERVICOS ABERTOS POR ENQUANTO--> <!--Erros porque Struts não aguento mais do que dois hops --> |
<action path="/ws-units-report-list" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=getCourseUnitsEvaluations"/> |
<action path="/ws-course-pedagogic-results-list" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=findPedagogicReport4Period"/> |
<action path="/ws-units-dtp-stats" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=getCourseUnitDtpStats"/> |
<action path="/ws-course-unit-plan-year" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=loadPlanYearForCourseUnitCode"/> |
</action-mappings> |
/branches/grupo6/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
166,9 → 166,16 |
<action path="/user/loadCourseReportTools" forward="page.course.report.tools.load"/> |
<action path="/user/editCourseReport" forward="page.course.report.edit"/> |
<action path="/user/courseReport" |
type="pt.estgp.estgweb.web.controllers.courses.CoursesServicesController" |
name="WidgetModelForm" |
scope="request" |
parameter="dispatch" |
validate="true" |
input="page.widget.json.fail.validations"> |
</action> |
</action-mappings> |
</struts-config> |
/branches/grupo6/impl/conf/WEB-INF/struts/struts-json-ws.xml |
---|
53,7 → 53,7 |
<action path="/secure/ws-coordinators-list" forward="/user/jsonModel.do?dispatch=executeService&serviceJson=wsListCoordinators"/> |
<!--SERVICOS ABERTOS POR ENQUANTO--> |
<action path="/ws-units-report-list" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=getCourseUnitsEvaluations"/>--> |
<action path="/ws-units-report-list" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=getCourseUnitsEvaluations"/> |
<action path="/ws-course-pedagogic-results-list" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=findPedagogicReport4Period"/> |
<action path="/ws-units-dtp-stats" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=getCourseUnitDtpStats"/> |
<action path="/ws-course-unit-plan-year" forward="/json/coursesServices.do?dispatch=executeService&serviceJson=loadPlanYearForCourseUnitCode"/> |
/branches/grupo6/impl/conf/WEB-INF/web.xml |
---|
89,7 → 89,8 |
/layout/themes, |
/wsjson/api, |
/wsjson/api/app/, |
/auth/ |
/auth/, |
/minhaservlet |
</param-value> |
</init-param> |
<init-param> |
366,12 → 367,20 |
<servlet-class>pt.estgp.estgweb.web.controllers.configuration.SchedullerTasksJson</servlet-class> |
</servlet> |
<servlet> |
<servlet-name>minhaServlet</servlet-name> |
<servlet-class>pt.estgp.estgweb.web.controllers.SubServlet</servlet-class> |
</servlet> |
<!--MAPPINGS--> |
<!--SOAP Tutorial--> |
<servlet-mapping> |
<servlet-name>minhaServlet</servlet-name> |
<url-pattern>/minhaServlet</url-pattern> |
</servlet-mapping> |
<servlet-mapping> |
<servlet-name>ws</servlet-name> |
<url-pattern>/hello</url-pattern> |
</servlet-mapping> |
/branches/grupo6/impl/conf/app.properties |
---|
8,6 → 8,7 |
##Em testes colocar true |
test.control.var=@test.control.var@ |
import.year=201516 |
tmp.dir=@tmp.dir@ |
data.dir=@data.dir@ |
/branches/grupo6/impl/conf/directories/header.xml |
---|
1,5 → 1,4 |
<?xml version="1.0" encoding="UTF-8"?> |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
<directory fixedDirectoryId="true" menuKey="" targetRole="all" layoutRoot="" layout="" style="topMenus.xsl" label_es="" |
label_en="" label="Menus de Top" id="header" xmlns="http://www.estgp.pt/baco/directory/"> |
<groupsDeclaration/> |
/branches/grupo6/impl/conf/berserk/sd.xml |
---|
36,7 → 36,6 |
</service> |
<!--WS SERVICES ONLY FOR MOBILE APPS NEED API KEY AUTHNETICATION AND CERTIFICATE--> |
<service> |
<name>WSAPILoginChallenge</name> |
388,7 → 387,8 |
</service> |
<service> |
<name>LoadTargetMaxAnnouncements</name> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTargetMaxAnnouncementsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTargetMaxAnnouncementsService |
</implementationClass> |
<description>Load an Announcement views to show in list</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
398,7 → 398,8 |
</service> |
<service> |
<name>LoadRoleTypeMaxAnnouncements</name> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadRoleTypeMaxAnnouncementsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadRoleTypeMaxAnnouncementsService |
</implementationClass> |
<description>Load an Announcement views to show in list</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
408,7 → 409,8 |
</service> |
<service> |
<name>LoadTypeMaxAnnouncements</name> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService |
</implementationClass> |
<description>Load an Announcement views to show in list</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
418,7 → 420,8 |
</service> |
<service> |
<name>LoadTypeAnnouncements</name> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService |
</implementationClass> |
<description>Load an Announcement views to show in list</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>load</defaultMethod> |
429,7 → 432,8 |
</service> |
<service> |
<name>LoadTopFlashNewsIterate</name> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTopFlashNewsIterateService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTopFlashNewsIterateService |
</implementationClass> |
<description>Load an Announcement one flash News</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
678,7 → 682,6 |
</service> |
<!--CommonServices--> |
<service> |
<name>CommonServicesSearch</name> |
832,7 → 835,7 |
<chain name="OwnersEdit"/> |
</filterChains> |
</service> |
<service> |
<name>LoadUserById</name> |
<implementationClass>pt.estgp.estgweb.services.profile.LoadUserByIdService</implementationClass> |
903,7 → 906,6 |
</service> |
<!--Reminders Services--> |
<service> |
<name>CreateReminder</name> |
996,18 → 998,18 |
</filterChains> |
</service> |
<!--<service> |
<name>DeleteCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass> |
<description>Update course unit objectives and program file</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>delete</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Supers"/> |
</filterChains> |
</service>--> |
<!--<service> |
<name>DeleteCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass> |
<description>Update course unit objectives and program file</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>delete</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Supers"/> |
</filterChains> |
</service>--> |
<service> |
<name>LoadCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
1170,10 → 1172,10 |
</service> |
<service> |
<name>LoadCourseUnitsBySigesCodes</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService |
</implementationClass> |
<description>Load course old units</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1184,7 → 1186,8 |
<service> |
<name>LoadCourseUnitInEvaluationBySigesCodes</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService |
</implementationClass> |
<description>Load course old units</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadUnitInEvaluation</defaultMethod> |
1196,7 → 1199,8 |
<service> |
<name>LoadCourseUnitsBySigesCodesSemestreLastYear</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService |
</implementationClass> |
<description>Load a unique unit by sigescode, semestre and course code</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadLastYear</defaultMethod> |
1208,7 → 1212,8 |
<service> |
<name>LoadCourseUnitsBySigesCodesSemestreLastYearProgram</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService |
</implementationClass> |
<description>Load a unique unit by sigescode, semestre and course code</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadLastYearProgram</defaultMethod> |
1392,7 → 1397,8 |
</service> |
<service> |
<name>LoadTeachedUnitsCurrentYear</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsCurrentYearService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsCurrentYearService |
</implementationClass> |
<description>Load teacher units in currentYear</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1417,7 → 1423,8 |
</service> |
<service> |
<name>LoadSubscribedUnitsCurrentYear</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService |
</implementationClass> |
<description>Load student units in current Year</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1425,7 → 1432,8 |
</service> |
<service> |
<name>LoadSubscribedUnitsGivenYear</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService |
</implementationClass> |
<description>Load student units in current Year</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>givenYear</defaultMethod> |
1434,7 → 1442,8 |
</service> |
<service> |
<name>LoadSubscribedUnitsOldYears</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsOldYearsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsOldYearsService |
</implementationClass> |
<description>Load student units in current Year</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1442,7 → 1451,8 |
</service> |
<service> |
<name>LoadSubscribedUnitsAnnouncements</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsAnnouncementsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsAnnouncementsService |
</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1451,7 → 1461,8 |
</service> |
<service> |
<name>LoadTeachedUnitsAnnouncements</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsAnnouncementsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsAnnouncementsService |
</implementationClass> |
<description>Load student units</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1509,13 → 1520,12 |
</filterChains> |
</service> |
<!--CourseUnitAssignements Backups--> |
<service> |
<name>CreateCourseUnitDirPackage</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitDirPackageServiceBat</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitDirPackageServiceBat |
</implementationClass> |
<description>Create a zip file with Intranet folders</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1526,7 → 1536,8 |
</service> |
<service> |
<name>CreateCourseUnitWorksBackup</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService |
</implementationClass> |
<description>Create a zip file with Intranet folders</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>createSystemBackup</defaultMethod> |
1538,7 → 1549,8 |
</service> |
<service> |
<name>CreateImportYearCourseUnitWorksBackup</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService |
</implementationClass> |
<description>Create a zip file with Intranet folders</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>createSystemImportYearBackup</defaultMethod> |
1550,7 → 1562,8 |
</service> |
<service> |
<name>CreateUserActualYearCourseUnitWorksBackup</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService |
</implementationClass> |
<description>Create a zip file with deliverables</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>createActualYearBackup</defaultMethod> |
1561,7 → 1574,8 |
</service> |
<service> |
<name>CreateUserImportYearCourseUnitWorksBackup</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService |
</implementationClass> |
<description>Create a zip file with deliverables</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>createImportYearBackup</defaultMethod> |
1572,7 → 1586,8 |
</service> |
<service> |
<name>CreateUserAllCourseUnitWorksBackup</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService |
</implementationClass> |
<description>Create a zip file with Intranet folders</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>createBackup</defaultMethod> |
1583,7 → 1598,8 |
</service> |
<service> |
<name>CreateUserAllCourseUnitProgramsBackup</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService |
</implementationClass> |
<description>Create a zip file with Intranet folders with Programs only</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>createProgramsBackup</defaultMethod> |
1592,11 → 1608,8 |
<chain name="Session"/> |
</filterChains> |
</service> |
<!--COURSES--> |
<service> |
<name>LoadCourseByCode</name> |
1763,7 → 1776,6 |
</service> |
<service> |
<name>UpdateCourseSchool</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass> |
1802,7 → 1814,6 |
</service> |
<service> |
<name>SubmitCourse</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass> |
1855,7 → 1866,7 |
<chain name="Logger"/> |
</filterChains> |
</service> |
<service> |
<service> |
<name>LoadCoursesImportYearByType</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass> |
<description>Load All Courses</description> |
1921,7 → 1932,6 |
</service> |
<!--Administratives--> |
<service> |
<name>CreateCourseUnitAdmin</name> |
2024,10 → 2034,6 |
</service> |
<!--Managed Identifiers--> |
<service> |
<name>managedIdentiferLoadCollections</name> |
2191,8 → 2197,6 |
<!----> |
<!--SRU Services--> |
<service> |
<name>LoadSruSourceById</name> |
2367,7 → 2371,7 |
</filterChains> |
</service> |
<service> |
<name>GenerateSurveyStatsCsv</name> |
<name>GenerateSurveyStatsCsv</name> |
<implementationClass>pt.estgp.estgweb.services.surveys.GenerateSurveyStatsCsvService</implementationClass> |
<description>Generate all survey stats on a csv file</description> |
<isTransactional>true</isTransactional> |
2402,8 → 2406,7 |
<!-- Duarte Santos --> |
<!--Filipe Matos--> |
<!--Filipe Matos--> |
<!--Assessments--> |
<service> |
<name>CreateEditAssessment</name> |
2605,10 → 2608,10 |
</service> |
<service> |
<name>LoadUnitOtherYearsWithProgram</name> |
<implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService |
</implementationClass> |
<description>Loads units with program from diferent year parameters (Long unitId)</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>findOtherUnitsWithProgram</defaultMethod> |
2621,8 → 2624,10 |
<service> |
<name>CloneCourseUnitProgram</name> |
<implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService</implementationClass> |
<description>Clone unit program from a unit into another unit parameters (long fromUnitId, long intoUnitId) </description> |
<implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService |
</implementationClass> |
<description>Clone unit program from a unit into another unit parameters (long fromUnitId, long intoUnitId) |
</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>cloneProgram</defaultMethod> |
<filterChains> |
2633,12 → 2638,11 |
</service> |
<!--PROCESSOS--> |
<service> |
<name>CreateNewProcess</name> |
<implementationClass>pt.estgp.estgweb.services.processes.ProcessesService</implementationClass> |
<description>Create a new instance of Process and transitates it </description> |
<description>Create a new instance of Process and transitates it</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>submitNew</defaultMethod> |
<filterChains> |
2828,7 → 2832,6 |
</service> |
<service> |
<name>TryDeleteCourseUnitService</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass> |
2947,7 → 2950,6 |
</service> |
<service> |
<name>CreateRoleCourseComission</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass> |
3084,7 → 3086,8 |
<service> |
<name>setAnoSemestre</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>setAnoSemestre</defaultMethod> |
3221,10 → 3224,10 |
</service> |
<service> |
<name>RunJobSelectCourses</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>runJobSelectCourses</defaultMethod> |
3239,7 → 3242,8 |
<service> |
<name>RunJobAssignAnswers</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.AssignAnswersJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.AssignAnswersJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>runJobAssignAnswers</defaultMethod> |
3253,7 → 3257,8 |
<service> |
<name>QuestionarioRevertAllAssignmentsPedagogico</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>revertAllAssignments</defaultMethod> |
3268,7 → 3273,8 |
<service> |
<name>QuestionarioUpdateTipologiasPedagogico</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>updateTipologiasPedagogico</defaultMethod> |
3284,7 → 3290,8 |
<service> |
<name>QuestionarioUpdateCheckVarPedagogico</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>updateCheckVarPedagogico</defaultMethod> |
3299,7 → 3306,8 |
<service> |
<name>QuestionarioUpdateCheckVarExcludedPedagogico</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>updateCheckVarExcludedPedagogico</defaultMethod> |
3393,11 → 3401,9 |
</service> |
<!-- REPORTS DE QUESTIONARIOS--> |
<service> |
<name>SaveReportGroup</name> |
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass> |
3465,14 → 3471,13 |
</service> |
<!--REPOSITORY DOCUMENTS--> |
<service> |
<name>SaveRepositoryDocument</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository document no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>saveRepositoryDocument</defaultMethod> |
3484,7 → 3489,8 |
</service> |
<service> |
<name>OpenRepositoryCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Serviço publico de abertura de Sub Colecções</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>openRepositoryCollection</defaultMethod> |
3495,7 → 3501,8 |
</service> |
<service> |
<name>OpenRepositoryCollectionDocuments</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Serviço publico de abertura de documentos de uma Colecção</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>openRepositoryCollectionDocuments</defaultMethod> |
3506,7 → 3513,8 |
</service> |
<service> |
<name>AddRepositoryCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository document no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addRepositoryCollection</defaultMethod> |
3518,7 → 3526,8 |
</service> |
<service> |
<name>ChangeParentRepositoryDocumentCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Move uma colecção na arvore para um novo Pai</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>changeParentRepositoryDocumentCollection</defaultMethod> |
3530,7 → 3539,8 |
</service> |
<service> |
<name>DeleteRepositoryDocumentCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Apaga uma colecção do repositório digital, caso esta esteja vazia</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>deleteCollection</defaultMethod> |
3542,7 → 3552,8 |
</service> |
<service> |
<name>ChangeDocumentCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Move uma colecção na arvore para um novo Pai</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>changeDocumentCollection</defaultMethod> |
3554,7 → 3565,8 |
</service> |
<service> |
<name>UpdateRepositoryCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository colection no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>updateRepositoryCollection</defaultMethod> |
3568,7 → 3580,8 |
<service> |
<name>RepositoryDocumentsAddManagerToCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Adiciona um utilizador como Gestor da Colecção do Repositorio digital</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addManagerToCollection</defaultMethod> |
3580,7 → 3593,8 |
</service> |
<service> |
<name>RepositoryDocumentsRemoveManagerInCollection</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Remove um utilizador de Gestor da Colecção do Repositorio digital</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>removeManagerInCollection</defaultMethod> |
3592,10 → 3606,10 |
</service> |
<service> |
<name>AddRepositoryInterface</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository interface no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addRepositoryInterface</defaultMethod> |
3607,7 → 3621,8 |
</service> |
<service> |
<name>RemoveRepositoryInterface</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository interface no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>removeRepositoryInterface</defaultMethod> |
3619,7 → 3634,8 |
</service> |
<service> |
<name>CheckRepositoryDocumentExistence</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository interface no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>checkRepositoryDocumentExistence</defaultMethod> |
3630,7 → 3646,8 |
</service> |
<service> |
<name>UpdateRepositoryInterface</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository interface no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>updateRepositoryInterface</defaultMethod> |
3643,7 → 3660,8 |
<service> |
<name>SaveRepositoryInterfaceData</name> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService |
</implementationClass> |
<description>Salva um repository interface no repositorio digital de documentos</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>saveRepositoryInterfaceData</defaultMethod> |
3655,12 → 3673,12 |
</service> |
<!-- Separators--> |
<service> |
<name>NewConfigurationSeparator</name> |
<implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>newConfigurationSeparator</defaultMethod> |
3672,7 → 3690,8 |
</service> |
<service> |
<name>UpdateConfigurationSeparator</name> |
<implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>updateConfigurationSeparator</defaultMethod> |
3684,7 → 3703,8 |
</service> |
<service> |
<name>RemoveConfigurationSeparator</name> |
<implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService |
</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>removeConfigurationSeparator</defaultMethod> |
3696,7 → 3716,6 |
</service> |
<!-- FUSCO VIRTUAL FILE SYSTEM --> |
<service> |
3898,14 → 3917,11 |
</service> |
<!--/****************************************************************************/ |
/* COURSE REPORTS |
/****************************************************************************/--> |
<service> |
<name>CreateDtpStatsTable4Course</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass> |
3961,7 → 3977,8 |
<description> |
@code codigo do curso |
@year codigo do ano |
Carrega todas as unidades em classes CourseUnitSection onde consta informação do professor, codigo, ano, semestre |
Carrega todas as unidades em classes CourseUnitSection onde consta informação do professor, codigo, ano, |
semestre |
e consta ainda o CourseUnitEvaluation |
devolve um json object com um elemento evaluation contendo um JSONArray como string |
O conteudo do array são |
3996,7 → 4013,8 |
<description> |
@code codigo do curso |
@year codigo do ano |
Carrega todas as estatisticas unidades em classes CourseUnitDtpStat onde consta informação do codigo, nome, semestre e um booleano por cada propriedade da unidade |
Carrega todas as estatisticas unidades em classes CourseUnitDtpStat onde consta informação do codigo, nome, |
semestre e um booleano por cada propriedade da unidade |
devolve um json object com um elemento evaluation contendo um JSONArray como string |
O conteudo do array são |
classes CourseUnitDtpStat está pronta a serializar em JSON implementa a JSONView |
4027,9 → 4045,10 |
<!-- SERVICOS DE GERACAO DE RELATORIO DE CURSO --> |
<service> |
<name>CourseReportGenerateGlobalLearningResultsChartImg</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass> |
<description> |
@reportCourseDocument documento course report em json |
4046,4 → 4065,40 |
</filterChains> |
</service> |
<!-- SEGUNDO GRÁFICO --> |
<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 de aproveitamento por notas e ano curricular |
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> |
<service> |
<name>CourseReportSave</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass> |
<description> |
@reportCourseDocument documento course report em json |
</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>save</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/utils/documentBuilder/DocumentSection.java |
---|
10,7 → 10,7 |
{ |
String title = ""; |
List<DocComponent> components = new ArrayList<DocComponent>(); |
ArrayList<DocComponent> components = new ArrayList<DocComponent>(); |
public DocumentSection() { |
} |
32,7 → 32,7 |
return components; |
} |
public void setComponents(List<DocComponent> components) { |
public void setComponents(ArrayList<DocComponent> components) { |
this.components = components; |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/utils/documentBuilder/SectionContainer.java |
---|
1,20 → 1,19 |
package pt.estgp.estgweb.utils.documentBuilder; |
import java.util.ArrayList; |
import java.util.List; |
/** |
* Created by jorgemachado on 07/11/17. |
*/ |
public class SectionContainer extends ExtensibleDocObject |
{ |
List<DocumentSection> sections = new ArrayList<DocumentSection>(); |
ArrayList<DocumentSection> sections = new ArrayList<DocumentSection>(); |
public List<DocumentSection> getSections() { |
public ArrayList<DocumentSection> getSections() { |
return sections; |
} |
public void setSections(List<DocumentSection> sections) { |
public void setSections(ArrayList<DocumentSection> sections) { |
this.sections = sections; |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
38,41 → 38,30 |
/** |
* Created by jorgemachado on 14/10/17. |
*/ |
public class CourseReportServices implements IService |
{ |
public class CourseReportServices implements IService { |
private static final Logger logger = Logger.getLogger(CourseReportServices.class); |
/****************************************************************************/ |
/* SERVICOS CORE DOS REPORTS |
/****************************************************************************/ |
/** |
* |
* @param courseCode |
* @param year |
* @return |
* @throws IOException |
* @throws JSONException |
*/ |
public CourseReportDocument createNewCourseReportDocument(String courseCode,String year) throws IOException, JSONException |
{ |
public CourseReportDocument createNewCourseReportDocument(String courseCode, String year) throws IOException, JSONException { |
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
CourseReportDocument reportCourseDocument = new CourseReportDocument(); |
reportCourseDocument.init(course,year); |
reportCourseDocument.init(course, year); |
//FIRST SERVICE TO CALL TO OBTAIN UNITS AND EVALUATIONS |
//THIS IS THE BASE FOR THE REMAIN SERVICE CALLS |
List<DocumentSection> courseUnitSections = updateCleanCourseUnitSections(courseCode, year, reportCourseDocument); |
101,8 → 90,8 |
QuestionariosDataTableComponent dataTableComponentS2 = (QuestionariosDataTableComponent) surveysResultsSection.getComponents().get(1); |
QuestionariosReportsService questionariosReportsService = new QuestionariosReportsService(); |
String jsonDataTableS1 = questionariosReportsService.loadReportUnidadesSalasJson(courseCode,year,"S1"); |
String jsonDataTableS2 = questionariosReportsService.loadReportUnidadesSalasJson(courseCode,year,"S2"); |
String jsonDataTableS1 = questionariosReportsService.loadReportUnidadesSalasJson(courseCode, year, "S1"); |
String jsonDataTableS2 = questionariosReportsService.loadReportUnidadesSalasJson(courseCode, year, "S2"); |
DataTable dataTableS1 = DataTable.fromJson(jsonDataTableS1); |
DataTable dataTableS2 = DataTable.fromJson(jsonDataTableS2); |
dataTableComponentS1.setDataTable(dataTableS1); |
112,36 → 101,33 |
/** |
* Este serviço atualiza a tabela de resultados de aprendizagem com base nas courseunitssections |
* |
* @param reportCourseDocument |
* @return UnitsLearningResultsTable |
*/ |
public UnitsLearningResultsTable updateCleanLearningResultsFromCourseUnitsSections(CourseReportDocument reportCourseDocument) |
{ |
public UnitsLearningResultsTable updateCleanLearningResultsFromCourseUnitsSections(CourseReportDocument reportCourseDocument) { |
CourseUnitsReportsSection unitReportsSection = (CourseUnitsReportsSection) reportCourseDocument.findDocumentSection(CourseUnitsReportsSection.class); |
LearningResultsSection learningResultsSection = (LearningResultsSection) reportCourseDocument.findDocumentSection(LearningResultsSection.class); |
UnitsLearningResultsTable learningResultsTable = (UnitsLearningResultsTable) learningResultsSection.findDocComponent(UnitsLearningResultsTable.class); |
Map<Integer,UnitsLearningResultYear> anosPlano = new HashMap<Integer, UnitsLearningResultYear>(); |
Map<String,UnitsLearningResultSemester> anoSemestre = new HashMap<String, UnitsLearningResultSemester>(); |
for(DocumentSection subSection : unitReportsSection.getSections()) |
{ |
Map<Integer, UnitsLearningResultYear> anosPlano = new HashMap<Integer, UnitsLearningResultYear>(); |
Map<String, UnitsLearningResultSemester> anoSemestre = new HashMap<String, UnitsLearningResultSemester>(); |
for (DocumentSection subSection : unitReportsSection.getSections()) { |
CourseUnitSection unitSection = (CourseUnitSection) subSection; |
int anoPlano = unitSection.getAnoPlano(); |
UnitsLearningResultYear anoFound = anosPlano.get(anoPlano); |
if(anoFound == null) |
{ |
if (anoFound == null) { |
anoFound = new UnitsLearningResultYear(anoPlano); |
anosPlano.put(anoPlano,anoFound); |
anosPlano.put(anoPlano, anoFound); |
learningResultsTable.getYears().add(anoFound); |
} |
String semestreCode = ((CourseUnitSection) subSection).getPeriod(); |
UnitsLearningResultSemester semestreFound = anoSemestre.get(anoPlano + "$" + semestreCode); |
if(semestreFound == null) |
{ |
if (semestreFound == null) { |
semestreFound = new UnitsLearningResultSemester(semestreCode); |
anoSemestre.put(anoPlano + "$" + semestreCode,semestreFound); |
anoSemestre.put(anoPlano + "$" + semestreCode, semestreFound); |
anoFound.getSemesters().add(semestreFound); |
} |
149,8 → 135,7 |
uc.setPeriod(semestreCode); |
uc.setName(unitSection.getName()); |
uc.setSigesCode(unitSection.getSigesCode()); |
if(unitSection.getCourseUnitEvaluation() != null) |
{ |
if (unitSection.getCourseUnitEvaluation() != null) { |
uc.setCumprimentoProgramaPercent(unitSection.getCourseUnitEvaluation().getCumprimentoProgramaPercent()); |
uc.setAlunosInscritos(unitSection.getCourseUnitEvaluation().getNumAlunosInscritos()); |
162,15 → 147,13 |
uc.setAprovados(unitSection.getCourseUnitEvaluation().getNumAlunosAprovTotal()); |
uc.setReprovados(unitSection.getCourseUnitEvaluation().getNumAlunosInscritos() - unitSection.getCourseUnitEvaluation().getNumAlunosAprovTotal() - unitSection.getCourseUnitEvaluation().getNumAlunosSemElementosAvaliacao()); |
if(uc.getAlunosInscritos() > 0) |
{ |
if (uc.getAlunosInscritos() > 0) { |
uc.setAprovadosPercent((float) (uc.getAprovados() * 100.0 / uc.getAlunosInscritos())); |
uc.setReprovadosPercent((float) (uc.getReprovados() * 100.0 / uc.getAlunosInscritos())); |
uc.setSemElementosPercent((float) (uc.getSemElementos() * 100.0 / uc.getAlunosInscritos())); |
} |
if(uc.getAprovados() > 0) |
{ |
if (uc.getAprovados() > 0) { |
uc.setAprovados1013Percent((float) (uc.getAprovados1013() * 100.0 / uc.getAprovados())); |
uc.setAprovados1416Percent((float) (uc.getAprovados1416() * 100.0 / uc.getAprovados())); |
uc.setAprovados1720Percent((float) (uc.getAprovados1720() * 100.0 / uc.getAprovados())); |
186,9 → 169,8 |
} |
}); |
for(UnitsLearningResultYear learningYearLine: learningResultsTable.getYears()) |
{ |
Collections.sort(learningYearLine.getSemesters(),new Comparator<UnitsLearningResultSemester>() { |
for (UnitsLearningResultYear learningYearLine : learningResultsTable.getYears()) { |
Collections.sort(learningYearLine.getSemesters(), new Comparator<UnitsLearningResultSemester>() { |
@Override |
public int compare(UnitsLearningResultSemester o1, UnitsLearningResultSemester o2) { |
return o1.getSemestre().compareTo(o2.getSemestre()); |
206,8 → 188,7 |
float totalAprovados1013PercentGlobal = 0; |
float totalAprovados1416PercentGlobal = 0; |
float totalAprovados1720PercentGlobal = 0; |
for(UnitsLearningResultYear learningYearLine: learningResultsTable.getYears()) |
{ |
for (UnitsLearningResultYear learningYearLine : learningResultsTable.getYears()) { |
float totalCumProgPercentAno = 0; |
float totalInscritosAno = 0; |
float totalReprovadosPercentAno = 0; |
217,8 → 198,7 |
float totalAprovados1416PercentAno = 0; |
float totalAprovados1720PercentAno = 0; |
for(UnitsLearningResultSemester semester: learningYearLine.getSemesters()) |
{ |
for (UnitsLearningResultSemester semester : learningYearLine.getSemesters()) { |
float totalCumProgPercent = 0; |
float totalInscritos = 0; |
float totalReprovadosPercent = 0; |
227,8 → 207,7 |
float totalAprovados1013Percent = 0; |
float totalAprovados1416Percent = 0; |
float totalAprovados1720Percent = 0; |
for(UnitsLearningResultUc uc: semester.getUcs()) |
{ |
for (UnitsLearningResultUc uc : semester.getUcs()) { |
totalCumProgPercent += uc.getCumprimentoProgramaPercent(); |
totalInscritos += uc.getAlunosInscritos(); |
totalAprovadosPercent += uc.getAprovadosPercent(); |
239,16 → 218,15 |
totalAprovados1720Percent += uc.getAprovados1720(); |
} |
//media de inscritos |
if(semester.getUcs().size() > 0) |
{ |
semester.setCumprimentoProgramaPercent( totalCumProgPercent / ((float)semester.getUcs().size())); |
semester.setAlunosInscritos( totalInscritos / ((float)semester.getUcs().size())); |
semester.setAprovadosPercent( totalAprovadosPercent / ((float)semester.getUcs().size())); |
semester.setReprovadosPercent( totalReprovadosPercent / ((float)semester.getUcs().size())); |
semester.setSemElementosPercent( totalSemElementosPercent / ((float)semester.getUcs().size())); |
semester.setAprovados1013Percent( totalAprovados1013Percent / ((float)semester.getUcs().size())); |
semester.setAprovados1416Percent( totalAprovados1416Percent / ((float)semester.getUcs().size())); |
semester.setAprovados1720Percent( totalAprovados1720Percent / ((float)semester.getUcs().size())); |
if (semester.getUcs().size() > 0) { |
semester.setCumprimentoProgramaPercent(totalCumProgPercent / ((float) semester.getUcs().size())); |
semester.setAlunosInscritos(totalInscritos / ((float) semester.getUcs().size())); |
semester.setAprovadosPercent(totalAprovadosPercent / ((float) semester.getUcs().size())); |
semester.setReprovadosPercent(totalReprovadosPercent / ((float) semester.getUcs().size())); |
semester.setSemElementosPercent(totalSemElementosPercent / ((float) semester.getUcs().size())); |
semester.setAprovados1013Percent(totalAprovados1013Percent / ((float) semester.getUcs().size())); |
semester.setAprovados1416Percent(totalAprovados1416Percent / ((float) semester.getUcs().size())); |
semester.setAprovados1720Percent(totalAprovados1720Percent / ((float) semester.getUcs().size())); |
} |
totalCumProgPercentAno += semester.getCumprimentoProgramaPercent(); |
totalInscritosAno += semester.getAlunosInscritos(); |
260,16 → 238,15 |
totalAprovados1720PercentAno += semester.getAprovados1720(); |
} |
//media de inscritos |
if(learningYearLine.getSemesters().size() > 0) |
{ |
learningYearLine.setCumprimentoProgramaPercent( totalCumProgPercentAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setAlunosInscritos( totalInscritosAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setAprovadosPercent( totalAprovadosPercentAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setReprovadosPercent( totalReprovadosPercentAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setSemElementosPercent( totalSemElementosPercentAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setAprovados1013Percent( totalAprovados1013PercentAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setAprovados1416Percent( totalAprovados1416PercentAno / ((float)learningYearLine.getSemesters().size())); |
learningYearLine.setAprovados1720Percent( totalAprovados1720PercentAno / ((float)learningYearLine.getSemesters().size())); |
if (learningYearLine.getSemesters().size() > 0) { |
learningYearLine.setCumprimentoProgramaPercent(totalCumProgPercentAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setAlunosInscritos(totalInscritosAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setAprovadosPercent(totalAprovadosPercentAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setReprovadosPercent(totalReprovadosPercentAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setSemElementosPercent(totalSemElementosPercentAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setAprovados1013Percent(totalAprovados1013PercentAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setAprovados1416Percent(totalAprovados1416PercentAno / ((float) learningYearLine.getSemesters().size())); |
learningYearLine.setAprovados1720Percent(totalAprovados1720PercentAno / ((float) learningYearLine.getSemesters().size())); |
} |
totalCumProgPercentGlobal += learningYearLine.getCumprimentoProgramaPercent(); |
totalInscritosGlobal += learningYearLine.getAlunosInscritos(); |
281,16 → 258,15 |
totalAprovados1720PercentGlobal += learningYearLine.getAprovados1720(); |
} |
if(learningResultsTable.getYears().size() > 0) |
{ |
learningResultsTable.setCumprimentoProgramaPercent( totalCumProgPercentGlobal / ((float)learningResultsTable.getYears().size())); |
learningResultsTable.setAlunosInscritos( totalInscritosGlobal / (learningResultsTable.getYears().size())); |
learningResultsTable.setAprovadosPercent( totalAprovadosPercentGlobal / ((float)learningResultsTable.getYears().size())); |
learningResultsTable.setReprovadosPercent( totalReprovadosPercentGlobal / ((float)learningResultsTable.getYears().size())); |
learningResultsTable.setSemElementosPercent( totalSemElementosPercentGlobal / ((float)learningResultsTable.getYears().size())); |
learningResultsTable.setAprovados1013Percent( totalAprovados1013PercentGlobal / ((float)learningResultsTable.getYears().size())); |
learningResultsTable.setAprovados1416Percent( totalAprovados1416PercentGlobal / ((float)learningResultsTable.getYears().size())); |
learningResultsTable.setAprovados1720Percent( totalAprovados1720PercentGlobal / ((float)learningResultsTable.getYears().size())); |
if (learningResultsTable.getYears().size() > 0) { |
learningResultsTable.setCumprimentoProgramaPercent(totalCumProgPercentGlobal / ((float) learningResultsTable.getYears().size())); |
learningResultsTable.setAlunosInscritos(totalInscritosGlobal / (learningResultsTable.getYears().size())); |
learningResultsTable.setAprovadosPercent(totalAprovadosPercentGlobal / ((float) learningResultsTable.getYears().size())); |
learningResultsTable.setReprovadosPercent(totalReprovadosPercentGlobal / ((float) learningResultsTable.getYears().size())); |
learningResultsTable.setSemElementosPercent(totalSemElementosPercentGlobal / ((float) learningResultsTable.getYears().size())); |
learningResultsTable.setAprovados1013Percent(totalAprovados1013PercentGlobal / ((float) learningResultsTable.getYears().size())); |
learningResultsTable.setAprovados1416Percent(totalAprovados1416PercentGlobal / ((float) learningResultsTable.getYears().size())); |
learningResultsTable.setAprovados1720Percent(totalAprovados1720PercentGlobal / ((float) learningResultsTable.getYears().size())); |
} |
return learningResultsTable; |
} |
307,8 → 283,7 |
* @throws IOException |
* @throws JSONException |
*/ |
public UnitsDtpTable updateDtpStatsTable4Course(CourseReportDocument reportCourseDocument, String courseCode, String year) throws IOException, JSONException |
{ |
public UnitsDtpTable updateDtpStatsTable4Course(CourseReportDocument reportCourseDocument, String courseCode, String year) throws IOException, JSONException { |
ReportsUcSummarySection reportsUcSummarySection = (ReportsUcSummarySection) reportCourseDocument.findDocumentSection(ReportsUcSummarySection.class); |
UnitsDtpTable unitsDtpTable = (UnitsDtpTable) reportsUcSummarySection.findDocComponent(UnitsDtpTable.class); |
320,29 → 295,24 |
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadByCourseSiges(courseCode, year); |
CourseUnitDtpStat[] statsLoaded; |
try |
{ |
String json = loadCourseUnitDtpStats(courseCode,year); |
try { |
String json = loadCourseUnitDtpStats(courseCode, year); |
JSONObject response = new JSONObject(json); |
JSONArray stats = (JSONArray) response.get("dtpstats"); |
statsLoaded = CourseUnitDtpStat.fromJson(stats); |
} |
catch(Exception e) |
{ |
logger.error(e,e); |
} catch (Exception e) { |
logger.error(e, e); |
statsLoaded = new CourseUnitDtpStat[0]; |
} |
for(CourseUnit cu :units) |
{ |
for (CourseUnit cu : units) { |
CourseUnitDtpStat statFound = CourseReportUtils.findCourseUnitDtpStat(statsLoaded, (CourseUnitImpl) cu); |
if(statFound == null) |
{ |
if (statFound == null) { |
statFound = CourseReportUtils.createCourseUnitDtpStat(cu); |
} |
if(((CourseUnitImpl) cu).getSemestreAbsolutoS1S2().equals("S1")) |
if (((CourseUnitImpl) cu).getSemestreAbsolutoS1S2().equals("S1")) |
semester1.getCourseUnitDtpStats().add(statFound); |
else |
semester2.getCourseUnitDtpStats().add(statFound); |
355,12 → 325,13 |
/** |
* Update course unit sections with reports, this method dows not change learning results table |
* values from learning results stays in unit but does not change learning results Table |
* |
* @param courseCode |
* @param year |
* @param reportCourseDocument |
* @return a list of CourseUnitSection |
* @throws JSONException |
* @throws IOException |
* @return a list of CourseUnitSection |
*/ |
public List<DocumentSection> updateCleanCourseUnitSections(String courseCode, String year, CourseReportDocument reportCourseDocument) throws JSONException, IOException { |
368,30 → 339,25 |
CourseUnitsReportsSection unitReportsSection = (CourseUnitsReportsSection) reportCourseDocument.findDocumentSection(CourseUnitsReportsSection.class); |
CourseUnitSection[] courseUnitSections = null; |
try{ |
String courseUnitSectionsJson = loadCourseEvaluationSections(courseCode,year); |
try { |
String courseUnitSectionsJson = loadCourseEvaluationSections(courseCode, year); |
JSONObject object = new JSONObject(courseUnitSectionsJson); |
JSONArray evaluations = object.getJSONArray("evaluations"); |
courseUnitSections = CourseUnitSection.fromJsonArray(evaluations.toString()); |
} |
catch(Exception e) |
{ |
logger.error(e,e); |
} catch (Exception e) { |
logger.error(e, e); |
courseUnitSections = new CourseUnitSection[0]; |
} |
ArrayList<DocumentSection> subSections = new ArrayList<DocumentSection>(); |
unitReportsSection.setSections(subSections); |
for(CourseUnit cu :units) |
{ |
for (CourseUnit cu : units) { |
CourseUnitSection sectionFound = CourseReportUtils.findCourseUnitSection(courseUnitSections, (CourseUnitImpl) cu); |
if(sectionFound == null) |
{ |
if (sectionFound == null) { |
sectionFound = CourseReportUtils.createCourseUnitEvaluationSection((CourseUnitImpl) cu); |
} |
if(sectionFound.getCourseUnitEvaluation() == null) |
{ |
if (sectionFound.getCourseUnitEvaluation() == null) { |
CourseUnitEvaluationImpl courseUnitEvaluation = DomainObjectFactory.createCourseUnitEvaluationImpl(); |
courseUnitEvaluation.setAutoGeneratedCourseReport(true); |
DaoFactory.getCourseUnitEvaluationDaoImpl().save(courseUnitEvaluation); |
404,19 → 370,20 |
} |
/** |
* 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 IOException |
*/ |
public String generateGlobalLearningResultsChartImg(String reportDocumentJson,UserSession session) throws IOException { |
public String generateGlobalLearningResultsChartImg(String reportDocumentJson, |
UserSession session) throws IOException { |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
LearningResultsSection learningResultsSection = (LearningResultsSection) reportDocument.findDocumentSection(LearningResultsSection.class); |
LearningGlobalAnalysisSection learningGlobalAnalysisSection = (LearningGlobalAnalysisSection) learningResultsSection.findSection(LearningGlobalAnalysisSection.class); |
GlobalLearningResultsChartImg chartImg = (GlobalLearningResultsChartImg) learningGlobalAnalysisSection.findDocComponent(GlobalLearningResultsChartImg.class); |
425,7 → 392,7 |
UnitsLearningResultsTable table = (UnitsLearningResultsTable) learningResultsSection.findDocComponent(UnitsLearningResultsTable.class); |
FileUploaded fileUploaded = chartImg.generateChart2tmp(table,reportDocument); |
FileUploaded fileUploaded = chartImg.generateChart2tmp(table, reportDocument); |
RepositoryService repositoryService = new RepositoryService(); |
434,25 → 401,77 |
chartImg.getImage().getIdentifier() != null; |
RepositoryFile4JsonView view; |
if(imageInitialized) |
{ |
if (imageInitialized) { |
String identifier = chartImg.getImage().getIdentifier(); |
view = repositoryService.replaceRepositoryFileFromFileUpload(identifier, fileUploaded, ResourceAccessControlEnum.privateDomain, session); |
} else { |
view = repositoryService.storeRepositoryFileFromFileUpload(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(); |
} |
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(); |
} |
public String save(String reportDocumentJson, UserSession session) throws IOException { |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(reportDocument.getCourseCode()); |
CourseYear y = null; |
for (CourseYear courseYear : c.getCourseYears()) { |
if (courseYear.getImportYear().equals(reportDocument.getYear())) { |
y = courseYear; |
break; |
} |
} |
if (y == null) { |
y = DomainObjectFactory.createCourseYearImpl(); |
DaoFactory.getCourseYearDaoImpl().save(y); |
y.setImportYear(reportDocument.getYear()); |
c.getCourseYears().add(y); |
y.setCourse(c); |
} |
y.setCourseReport(reportDocumentJson); |
return reportDocument.toJson(); |
} |
/****************************************************************************/ |
/* |
469,36 → 488,33 |
/** |
* This service loads a list of course units given course code and year |
* with dtp stats codes pre-filled |
* |
* @param courseCode |
* @param year |
* @return |
* @throws JSONException |
* @throws IOException |
*/ |
public String loadCourseUnitDtpStats(String courseCode,String year) throws JSONException, IOException { |
public String loadCourseUnitDtpStats(String courseCode, String year) throws JSONException, IOException { |
if(Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_DTP_STATS.indexOf("localhost")>=0) |
{ |
if (Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_DTP_STATS.indexOf("localhost") >= 0) { |
JSONArray array = new JSONArray(); |
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadByCourseSiges(courseCode, year); |
for(CourseUnit cu: units) |
{ |
for (CourseUnit cu : units) { |
CourseUnitDtpStat stat = CourseReportUtils.createCourseUnitDtpStat(cu); |
//sections.add(courseUnitSection); |
array.put(stat.toJsonObject()); |
} |
JSONObject obj = new JSONObject(); |
obj.put("dtpstats",array); |
obj.put("dtpstats", array); |
return obj.toString(); |
} |
else |
{ |
String serviceUrl = Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_DTP_STATS + "?code=" + courseCode + "&year=" + year; |
} else { |
String serviceUrl = Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_DTP_STATS + "?code=" + courseCode + "&year=" + year; |
String json = "{ dtpstats : [] }"; |
try{ |
try { |
URL url = new URL(serviceUrl); |
URLConnection conn = url.openConnection(); |
506,13 → 522,12 |
json = StreamsUtils.readString(is); |
is.close(); |
}catch(Throwable e) |
{ |
logger.error("Connecting " + serviceUrl,e); |
} catch (Throwable e) { |
logger.error("Connecting " + serviceUrl, e); |
return json; |
} |
JSONObject jsonObject = new JSONObject(json); |
if(jsonObject.get("service").equals("ok")) |
if (jsonObject.get("service").equals("ok")) |
return jsonObject.get("response").toString(); |
else |
return json; |
520,54 → 535,45 |
} |
/** |
* |
* Para um determinado curso e ano o serviço faz uma listagem de todas as suas unidades curriculares |
* e lista a sua informação básica juntamente com o relatório de avaliação disponivel |
* O serviço adiciona ainda o Ano de cada unidade por inspeção do Plano de Estudos |
* caso a unidade não seja encontrada no Plano de estudos o ano irá ser preenchido com -1 |
* |
* @param courseCode codigo Siges na base de dados |
* @param year 201617, 201718 |
* @param year 201617, 201718 |
* @return String JSONObject with a JSON ARRAY of List<CourseUnitSection> |
*/ |
public String loadCourseEvaluationSections(String courseCode,String year) throws JSONException, IOException { |
public String loadCourseEvaluationSections(String courseCode, String year) throws JSONException, IOException { |
if(Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_EVALUATION_REPORT.indexOf("localhost")>=0) |
{ |
if (Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_EVALUATION_REPORT.indexOf("localhost") >= 0) { |
JSONArray array = new JSONArray(); |
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadByCourseSiges(courseCode, year); |
for(CourseUnit cu: units) |
{ |
for (CourseUnit cu : units) { |
CourseUnitSection courseUnitSection = CourseReportUtils.createCourseUnitEvaluationSection((CourseUnitImpl) cu); |
if(courseUnitSection.getAnoPlano() < 0) |
{ |
if (courseUnitSection.getAnoPlano() < 0) { |
logger.info("Ano do Plano not available from courseUnitsEvaluation Service, will read from API loadPlanYearForCourseUnitCode"); |
try{ |
String json = loadPlanYearForCourseUnitCode(courseCode,cu.getCode(),cu.getSemestre()); |
try { |
String json = loadPlanYearForCourseUnitCode(courseCode, cu.getCode(), cu.getSemestre()); |
int ano = new JSONObject(json).getInt("year"); |
courseUnitSection.setAnoPlano(ano); |
}catch(Throwable e ) |
{ |
logger.error("Nao conseguiu obter o ano do plano da API: " + e.toString(),e); |
} catch (Throwable e) { |
logger.error("Nao conseguiu obter o ano do plano da API: " + e.toString(), e); |
} |
} |
array.put(courseUnitSection.toJsonObject()); |
} |
JSONObject obj = new JSONObject(); |
obj.put("evaluations",array); |
obj.put("evaluations", array); |
return obj.toString(); |
} |
else |
{ |
} else { |
String json = "{ evaluations : [] }"; |
String serviceUrl = Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_EVALUATION_REPORT + "?code=" + courseCode + "&year=" + year; |
try{ |
String serviceUrl = Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNITS_EVALUATION_REPORT + "?code=" + courseCode + "&year=" + year; |
try { |
URL url = new URL(serviceUrl); |
URLConnection conn = url.openConnection(); |
575,14 → 581,13 |
json = StreamsUtils.readString(is); |
is.close(); |
}catch(Throwable e) |
{ |
logger.error("Connecting " + serviceUrl,e); |
} catch (Throwable e) { |
logger.error("Connecting " + serviceUrl, e); |
return json; |
} |
JSONObject jsonObject = new JSONObject(json); |
if(jsonObject.get("service").equals("ok")) |
if (jsonObject.get("service").equals("ok")) |
return jsonObject.get("response").toString(); |
else |
return json; |
591,28 → 596,23 |
/** |
* |
* |
* @param courseCode codigo Siges na base de dados |
* @param unitCode |
* @return Json com o ano do plano exemplo: { year : 1 } |
* ou -1 se não for encontrado |
*/ |
public String loadPlanYearForCourseUnitCode(String courseCode,String unitCode,String period) throws JSONException, IOException { |
public String loadPlanYearForCourseUnitCode(String courseCode, String unitCode, String period) throws JSONException, IOException { |
if(Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNIT_PLAN_YEAR.indexOf("localhost")>=0) |
{ |
if (Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNIT_PLAN_YEAR.indexOf("localhost") >= 0) { |
CourseImpl c = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
int year = c.getUnidadeAnoPlano(period,unitCode); |
int year = c.getUnidadeAnoPlano(period, unitCode); |
return "{ year : " + year + " }"; |
} |
else |
{ |
} else { |
String json = "{ year : -1 }"; |
String serviceUrl = Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNIT_PLAN_YEAR + "?courseCode=" + courseCode + "&unitCode=" + unitCode + "&period=" + period; |
try{ |
String serviceUrl = Globals.SYSTEM_WSJSON_SERVICE_COURSE_UNIT_PLAN_YEAR + "?courseCode=" + courseCode + "&unitCode=" + unitCode + "&period=" + period; |
try { |
URL url = new URL(serviceUrl); |
URLConnection conn = url.openConnection(); |
620,14 → 620,13 |
json = StreamsUtils.readString(is); |
is.close(); |
}catch(Throwable e) |
{ |
logger.error("Connecting " + serviceUrl,e); |
} catch (Throwable e) { |
logger.error("Connecting " + serviceUrl, e); |
return json; |
} |
JSONObject jsonObject = new JSONObject(json); |
if(jsonObject.get("service").equals("ok")) |
if (jsonObject.get("service").equals("ok")) |
return jsonObject.get("response").toString(); |
else |
return json; |
635,21 → 634,10 |
} |
public static void main(String[] args) throws IOException, JSONException { |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseReportDocument reportCourseDocument = new CourseReportServices().createNewCourseReportDocument("44","201617"); |
CourseReportDocument reportCourseDocument = new CourseReportServices().createNewCourseReportDocument("44", "201617"); |
System.out.println(reportCourseDocument.toJson()); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
681,5 → 669,4 |
// e as as tabelas |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/UnitsLearningResult.java |
---|
134,4 → 134,13 |
public void setAprovados1720Percent(float aprovados1720Percent) { |
this.aprovados1720Percent = aprovados1720Percent; |
} |
public boolean isManual() { |
return manual; |
} |
public void setManual(boolean manual) { |
this.manual = manual; |
} |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java |
---|
1,10 → 1,172 |
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.axis.CategoryAxis; |
import org.jfree.chart.axis.NumberAxis; |
import org.jfree.chart.block.BlockBorder; |
import org.jfree.chart.labels.ItemLabelAnchor; |
import org.jfree.chart.labels.ItemLabelPosition; |
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.data.category.DefaultCategoryDataset; |
import org.jfree.data.general.DefaultPieDataset; |
import org.jfree.ui.RectangleInsets; |
import org.jfree.ui.TextAnchor; |
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; |
import java.text.NumberFormat; |
import java.util.List; |
/** |
* 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 IOException |
*/ |
public FileUploaded generateChart2tmp(UnitsLearningResultsTable results, CourseReportDocument courseReportDocument) throws IOException |
{ |
List<UnitsLearningResultYear> unitsLearningResultYearList = results.getYears(); |
String tempName = BytesUtils.generateHexKey() + ".png"; |
DefaultCategoryDataset data = new DefaultCategoryDataset(); |
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent())),"Aprovados 10-13",""+temp.ano + "º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent())),"Aprovados 14-16",""+temp.ano + "º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1720Percent())),"Aprovados 17-20",""+temp.ano + "º Ano"); |
} |
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent())),"Aprovados 10-13","2º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent())),"Aprovados 14-16","2º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1720Percent())),"Aprovados 17-20","2º Ano"); |
} |
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent())),"Aprovados 10-13","3º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent())),"Aprovados 14-16","3º Ano"); |
data.addValue(new Double(32),"Aprovados 17-20","3º Ano"); |
} |
JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null,data, PlotOrientation.VERTICAL,true,false,false); |
CategoryPlot plot = chart.getCategoryPlot(); |
RectangleInsets chartRectangle = new RectangleInsets(0,0,30F,0); |
chart.setPadding(chartRectangle); |
plot.setBackgroundPaint(Color.WHITE); |
CategoryAxis axis = plot.getDomainAxis(); |
NumberAxis axis2 = (NumberAxis) plot.getRangeAxis(); |
NumberFormat pctFormat = new DecimalFormat("#'%'"); |
axis.setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
axis2.setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
axis2.setNumberFormatOverride(pctFormat); |
Color brown = new Color(237,125,49); |
Color yellow = new Color(255,192,0); |
Color green = new Color(112,173,71); |
StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer(); |
renderer.setGradientPaintTransformer(null); |
plot.setRangeGridlinePaint(Color.GRAY); |
plot.setRangeGridlinesVisible(true); |
plot.setRangeGridlineStroke(new BasicStroke(1.0f)); |
renderer.setSeriesPaint(0, brown); |
renderer.setSeriesPaint(1, yellow); |
renderer.setSeriesPaint(2, green); |
renderer.setMaximumBarWidth(.20); |
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",pctFormat)); |
renderer.setBaseItemLabelsVisible(true); |
ItemLabelPosition position = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.HALF_ASCENT_CENTER); |
renderer.setBasePositiveItemLabelPosition(position); |
renderer.setBaseItemLabelFont(new Font("Helvetica",Font.PLAIN,30)); |
chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN,30)); |
chart.getLegend().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 { |
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(47, 35, 255)); |
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/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/LearningResultsChartSem.java |
---|
1,11 → 1,11 |
package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components; |
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent; |
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent; |
/** |
* Created by jorgemachado on 31/10/17. |
*/ |
public class LearningResultsChartSem extends AutoImageWraperComponent |
public class LearningResultsChartSem extends ImageComponent |
{ |
String semesterCode; |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/UnitsLearningResultsTable.java |
---|
29,14 → 29,6 |
List<UnitsLearningResultYear> years = new ArrayList<UnitsLearningResultYear>(); |
public List<UnitsLearningResultYear> getYears() { |
return years; |
} |
public void setYears(List<UnitsLearningResultYear> years) { |
this.years = years; |
} |
public float getCumprimentoProgramaPercent() { |
return cumprimentoProgramaPercent; |
} |
44,8 → 36,7 |
public void setCumprimentoProgramaPercent(float cumprimentoProgramaPercent) { |
this.cumprimentoProgramaPercent = cumprimentoProgramaPercent; |
} |
public float getAlunosInscritos() { |
return alunosInscritos; |
} |
149,4 → 140,12 |
public void setAprovados1720Percent(float aprovados1720Percent) { |
this.aprovados1720Percent = aprovados1720Percent; |
} |
public List<UnitsLearningResultYear> getYears() { |
return years; |
} |
public void setYears(List<UnitsLearningResultYear> years) { |
this.years = years; |
} |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
New file |
0,0 → 1,72 |
package pt.estgp.estgweb.web.controllers.courses; |
import org.apache.struts.action.ActionForm; |
import org.json.JSONObject; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
/** |
* Created by jorgemachado on 06/01/17. |
*/ |
public class CoursesServicesController extends AbstractWidgetAjaxController { |
/** |
* See also CoursesServicesWidgetController for WS-API services |
*/ |
/** |
* @param form |
* @param request |
* @param response |
* @return |
* @throws Throwable |
*/ |
public JSONObject generateGlobalLearningResultsChartImg(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), |
"CourseReportGenerateGlobalLearningResultsChartImg", |
new Object[]{courseReportDocument}); |
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 save(ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Throwable { |
String courseReportDocument = request.getParameter("courseReportDocument"); |
CourseReportDocument c = CourseReportDocument.fromJson(courseReportDocument); |
IServiceManager sm = ServiceManager.getInstance(); |
String json = (String) sm.execute(RequestUtils.getRequester(request, response), |
"CourseReportSave", |
new Object[]{courseReportDocument}); |
addMessageAsString(request, "Gravado com Sucesso"); |
return new JSONObject(json); |
} |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/web/controllers/SubServlet.java |
---|
New file |
0,0 → 1,54 |
package pt.estgp.estgweb.web.controllers; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.UserImpl; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.io.IOException; |
public class SubServlet extends TesteEngSoftware { |
public void primeiroMetodo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
logger.info("primeiro metodo"); |
String name = request.getParameter("name"); |
String jsp = request.getParameter("jsp"); |
User u = new UserImpl(); |
u.setName("Elias " + jsp); |
request.setAttribute("utilizador",u); |
if(request.getSession().getAttribute("utilizador") == null) { |
request.getSession().setAttribute("utilizador",u); |
} |
//response.getWriter().println("<html><body><h>OLA A TODOS</h></body></html>"); |
request.getRequestDispatcher("jsp").forward(request,response); |
} |
public void segundoMetodo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
logger.info("segundo metodo"); |
String name = request.getParameter("name"); |
String jsp = request.getParameter("jsp"); |
User u = new UserImpl(); |
u.setName("Elias " + jsp); |
request.setAttribute("utilizador",u); |
if(request.getSession().getAttribute("utilizador") == null) { |
request.getSession().setAttribute("utilizador",u); |
} |
//response.getWriter().println("<html><body><h>OLA A TODOS</h></body></html>"); |
request.getRequestDispatcher("jsp").forward(request,response); |
} |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/web/controllers/TesteEngSoftware.java |
---|
New file |
0,0 → 1,35 |
package pt.estgp.estgweb.web.controllers; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.UserImpl; |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServlet; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.io.IOException; |
import java.lang.reflect.InvocationTargetException; |
public class TesteEngSoftware extends HttpServlet { |
public static final Logger logger = Logger.getLogger(TesteEngSoftware.class); |
@Override |
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
doPost(req, resp); |
} |
@Override |
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
String op = req.getParameter("dispatch"); |
try { |
this.getClass() |
.getMethod(op,new Class[]{HttpServletRequest.class, HttpServletResponse.class}) |
.invoke(this,req,resp); |
} catch (IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { |
e.printStackTrace(); |
} |
} |
} |
/branches/grupo6/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml |
---|
76,6 → 76,9 |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="importYear" type="string" index="importYearIndex"/> |
<property name="courseReport" type="text"> |
<column name="courseReport" sql-type="LONGTEXT"/> |
</property> |
<property name="separatedTurmas" type="boolean"> |
<column name="separatedTurmas" default="false"/> |
</property> |
/branches/grupo6/impl/src/hbm/pt/estgp/estgweb/domain/PageContent.hbm.xml |
---|
38,8 → 38,8 |
</property> |
<property name="accessPolicyClass" type="string"/> |
<property name="slug" type="string"/> |
<property name="path" type="string" unique="true"> |
<column name="path" sql-type="TEXT, add UNIQUE pathIndex(path(512))"/> |
<property name="path" type="string"> |
<column name="path" sql-type="TEXT"/> |
</property> |
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="proxy" outer-join="false"/> |
<many-to-one name="parent" class="pt.estgp.estgweb.domain.PageSection" lazy="proxy" outer-join="false"> |
/branches/grupo6/impl/src/web/ola.jsp |
---|
New file |
0,0 → 1,43 |
<%@ page import="pt.estgp.estgweb.domain.User" %> |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %><%-- |
Created by IntelliJ IDEA. |
User: Us3r |
Date: 23/11/2017 |
Time: 11:19 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<html> |
<head> |
<title>Title</title> |
</head> |
<jsp:useBean id="utilizador" type="pt.estgp.estgweb.domain.User" scope="request"/> |
<body> |
<h1>Ola 2</h1> |
<% |
User u = (User) request.getAttribute("utilizador"); |
User uSess = (User) request.getSession().getAttribute("utilizador"); |
AbstractDao.getCurrentSession().beginTransaction(); |
User loaded = DaoFactory.getUserDaoImpl().loadByUsername(u.getName()); |
request.setAttribute("loaded",loaded); |
%> |
<jsp:useBean id="loaded" type="pt.estgp.estgweb.domain.User" scope="request"/> |
u: |
<%=u.getName()%> |
<br> |
u: |
${utilizador.name} |
${loaded.superuser} |
<br> |
uSess: |
<%=uSess.getName()%> |
</body> |
</html> |
/branches/grupo6/impl/src/web/examples/angular/directives/angular-directive.jsp |
---|
New file |
0,0 → 1,95 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %> |
<%@ taglib prefix="logic" uri="/WEB-INF/tlds/struts-logic.tld" %> |
<html> |
<head></head> |
<body ng-app="BacoAngularApp"> |
<jsp:include page="/layout/themes/scripts-default.jsp"/> |
<jsp:include page="/layout/headerTools.jsp"/> |
<div id="demoApp" ng-app="demoApp" ng-controller="demoAppController"> |
<h1>Uso de Directivas com Templates</h1> |
<p>Este exemplo mostra como deve ser usada uma template para podermos incluir uma função |
de controlo especifica da template usando directivas</p> |
<p>Mostra ainda que dentro da template o scope é uma fusão dos scopes da ngApp e da propria directiva</p> |
<p>Mostra também como podemos escolher dinamicamente a template ou as funcionalidades dependendo de atributos que passamos à template</p> |
<script> |
var demoApp = angular.module('demoApp', []); |
GLOBAL_BacoAngularAppDependencies.push('demoApp'); |
//demoApp..directive('tpl', function() { |
//ou |
angular.module('demoApp').directive('tpl', function() { |
return { |
restrict: 'E', //A ou E define se é o nome do elemento ou um atributo |
link: function(scope, element, attrs) { |
// concatenating the directory to the ver attr to select the correct excerpt for the day |
scope.teste = "teste"; |
scope.move = function(){ |
scope.teste = "teste2"; |
scope.testeSuper = "testeSuper2"; |
} |
}, |
// passing in contentUrl variable |
templateUrl: function(elem,attrs) { |
return attrs.templatename; |
} |
} |
}); |
demoApp.controller('demoAppController', function ($scope) { |
$scope.testeSuper = "testeSuper"; |
} |
); |
</script> |
<p>campo testeSuper no mainmodule {{testeSuper}}</p> |
<p>Se incluirmos o tpl2.html apenas vamos ter acesso às variaveis do scope da aplicação, neste caso o teste, a template pode estar declarada fora da app, não há problema</p> |
<p>Por acaso neste exemplo temos acesso ao testeSuper porque a directiva adiciona funcionalidade ao scope da aplicação onde é chamada, mas se não chamarmos nenhuma directiva |
a var testeSuper não aparece</p> |
<div ng-include="'tpl2.html'"></div> |
<h2>Invocando a tpl de html com directiva</h2> |
<tpl templatename="tpl.html"></tpl> |
<h2>Invocando a tpl de de javascript com directiva</h2> |
<tpl templatename="tpl2.html"></tpl> |
</div> |
<!--TEMPLATE RECURSIVO--> |
<script type="text/ng-template" id="tpl2.html"> |
<div> |
<h1>Usando um template de Script</h1> |
<p>TESTE</p> |
<p>{{teste}}</p> |
<p>{{testeSuper}}</p> |
<button ng-click="move()">Muda Textos</button> |
</div> |
</script> |
</body> |
</html> |
/branches/grupo6/impl/src/web/examples/angular/directives/tpl.html |
---|
New file |
0,0 → 1,5 |
<h1>Template de HTML</h1> |
<p>TESTE</p> |
<p>{{teste}}</p> |
<p>{{testeSuper}}</p> |
<button ng-click="move()">Muda Textos</button> |
/branches/grupo6/impl/src/web/examples/angular/directives/angular-directive-module.jsp |
---|
New file |
0,0 → 1,36 |
<%-- |
Created by IntelliJ IDEA. |
User: jorgemachado |
Date: 11/11/17 |
Time: 10:20 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<html> |
<head> |
<title></title> |
</head> |
<body ng-app="BacoAngularApp"> |
<jsp:include page="/layout/themes/scripts-default.jsp"/> |
<jsp:include page="/layout/headerTools.jsp"/> |
<div class="container"> |
<h1>Uso de Templates Generalizados e cada um com sua template</h1> |
<p>O caso em questão é a existencia de um esqueleto principal para um modulo (mainmodule)</p> |
<p>O main module inclui templates para cada componente usando o ng-include</p> |
<p>Esse ng-include é referente ao campo @class de cada componente</p> |
<p>vamos incluir esse esqueleto e todas as templates especificas dos nossos modulos</p> |
<p>incluimos ainda as directivas que estiverem nos nossos modulos</p> |
<p>o template do ng-include irá colocar a directiva desejada caso seja necessário</p> |
<p>com a directiva podemos ter funcionalidade de scope associada ao subcomponente, que é desconhecido do main module</p> |
<p>caso necessite o includemodule também tem acesso ao scope da app principal</p> |
<p>o unico requesito é passar ao include module o nome da app onde ele vai inserir as directivas</p> |
<jsp:include page="angular-directive-mainmodule.jsp"/> |
<jsp:include page="angular-directive-includemodule.jsp"/> |
</div> |
</body> |
</html> |
/branches/grupo6/impl/src/web/examples/angular/directives/angular-directive-includemodule.jsp |
---|
New file |
0,0 → 1,60 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<p>Modulo Incluido contem as directivas e os templates necessários</p> |
<p>Este módulo conhece o nome do módulo da App onde vai ser incluido</p> |
<script> |
angular.module("demoApp").directive('tpl', function() { |
var contentUrl; |
return { |
restrict: 'E', //A ou E define se é o nome do elemento ou um atributo |
link: function(scope, element, attrs) { |
// concatenating the directory to the ver attr to select the correct excerpt for the day |
//contentUrl = attrs.templatename + '.html'; |
//console.log(contentUrl); |
scope.teste = "teste"; |
scope.move = function(){ |
scope.teste = "teste2modules"; |
//scope.testeSuper = "testeSuper2modules"; |
angular.element("#demoApp").scope().testeSuper = "testeSuper2modules"; |
} |
scope.mudaCompName = function(comp){ |
comp.name = "NOVO NOME DO COMP MUDADO NA DIRECTIVA"; |
} |
}, |
// passing in contentUrl variable |
templateUrl: function(elem,attrs) { |
return "templateDirectiva"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="directive_class"> |
<div style="border: 1px solid #000000"> |
<h1>DIRECTIVE CLASS TEMPLATE</h1> |
<p>COMP ELEMENTO DIRECTIVA:{{comp.name}}</p> |
<p><input type="text" ng-model="comp.name"></p> |
<tpl></tpl> |
<p>Teste no scope da directiva<p> |
<pre> |
{{teste | json}} |
</pre> |
</div> |
</script> |
<script type="text/ng-template" id="templateDirectiva"> |
<div style="border: 1px solid green"> |
<h1>templateDirectiva</h1> |
<p>TESTE</p> |
<p>{{teste}}</p> |
<p>{{testeSuper}}</p> |
<p>COMP ELEMENTO DIRECTIVA:{{comp.name}}</p> |
<button ng-click="move()">Muda Textos</button> |
<button ng-click="mudaCompName(comp)">Muda COMP NAME</button> |
</div> |
</script> |
/branches/grupo6/impl/src/web/examples/angular/directives/angular-directive-mainmodule.jsp |
---|
New file |
0,0 → 1,50 |
<div id="demoApp" ng-app="demoApp" ng-controller="demoAppController"> |
<script> |
var demoApp = angular.module('demoApp', []); |
GLOBAL_BacoAngularAppDependencies.push('demoApp'); |
demoApp.controller('demoAppController', function ($scope) { |
$scope.testeSuper = "testeSuper"; |
$scope.data = |
{ |
comps : [ |
{ |
"@class" : "directive_class", |
"name" : "componente de teste" |
} |
] |
} |
} |
); |
</script> |
<h1>Campo testeSuper no mainmodule "{{testeSuper}}"</h1> |
<h1>Campo data.comps[0].name no mainmodule "{{data.comps[0].name}}"</h1> |
<h2>Template chamado atraves de um template de classe intermedio</h2> |
<div ng-repeat="comp in data.comps" ng-include="comp['@class']"> |
</div> |
<pre> |
{{testeSuper | json}} |
</pre> |
<pre> |
{{data | json}} |
</pre> |
</div> |
/branches/grupo6/impl/src/web/user/courses/coursereport/templates.jsp |
---|
New file |
0,0 → 1,836 |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultYear" %> |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultSemester" %> |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultUc" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<!-- |
@section objeto com seccoes e componentes |
@optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
--> |
<script type="text/ng-template" |
id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_CourseUnitsReportsSection"> |
<div class="sections"> |
<a name="indexCus"></a> |
<span ng-repeat="cu in section.sections" |
ng-init="cu.taxaAprovacao = 100 * cu.courseUnitEvaluation.numAlunosAprovTotal/(cu.courseUnitEvaluation.numAlunosInscritos - cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao)"> |
<a href="#cu{{$index}}" |
ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) || cu.taxaAprovacao < 75 || !cu.courseUnitEvaluation.closed || !cu.courseUnitEvaluation.teacherComplete}"> |
{{cu.title}} |
</a> | |
</span> |
<div ng-repeat="cu in section.sections" |
class="section panel-primary"> |
<a name="cu{{$index}}"></a> |
<span ng-if="$index != 0" class="glyphicon glyphicon-backward"></span><a ng-if="$index != 0" |
href="#indexCus"> Voltar atrás</a> |
<div class="panel-heading"><h2>{{cu.title}}</h2></div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Estado do Relatório</label></h3></div> |
<div ng-if="cu.courseUnitEvaluation.closed"> |
Entregue e Aceite |
</div> |
<div class="alert-danger" |
ng-if="cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
Entregue mas não foi aprovado pela comissão |
</div> |
<div class="alert-danger" |
ng-if="!cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
Não foi entregue pelo docente para validação |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Resultados</label></h3></div> |
<div> |
<table class="tablesorter-blue" width="100%"> |
<tr> |
<th rowspan="2"> |
Nº Alunos Inscritos |
</th> |
<th rowspan="2"> |
Nº de alunos sem elementos de avaliação |
</th> |
<th colspan="5"> |
Nº de alunos aprovados em |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 10 e 13 valores |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 14 e 16 valores |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 17 e 20 valores |
</th> |
</tr> |
<tr> |
<th>Avaliação de frequência</th> |
<th>Exame Época Normal</th> |
<th>Exame Época Recurso</th> |
<th>Exame Época Especial</th> |
<th>Total</th> |
<th>Nº</th> |
<th>%</th> |
<th>Nº</th> |
<th>%</th> |
<th>Nº</th> |
<th>%</th> |
</tr> |
<tr> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosInscritos}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovFrequencia}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovNormal}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovRecurso}} |
</td> |
<td style="text-align: center"> |
{{cu.courseUnitEvaluation.numAlunosAprovEspecial}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovTotal}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1013}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1013Percent}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1416}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1416Percent}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1720}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1720Percent}} |
</td> |
</tr> |
</table> |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Taxa de Aprovação</label></h3></div> |
<div ng-class="{ 'alert-danger': cu.taxaAprovacao < 75 }">{{cu.taxaAprovacao}}%</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação dos resultados quantitativos obtidos pelos |
estudantes</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoQuantitivos}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação do funcionamento da UC</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoUC}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Percentagem de cumprimento do programa da UC</label></h3> |
</div> |
<div ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) }"> |
{{cu.courseUnitEvaluation.cumprimentoProgramaPercent}}% |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação do cumprimento do programa da UC</label></h3> |
</div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Conclusões</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualConclusoes}}</div> |
</div> |
</div> |
</div> |
</script> |
<style> |
.dtpstats td, .dtpstats th { |
text-align: center !important; |
} |
</style> |
<script type="text/ng-template" |
id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_reportucsummary_UnitsDtpTable"> |
<div class="sections"> |
<table class="table dtpstats"> |
<thead> |
<tr> |
<th rowspan="2">Unidade Curricular</th> |
<th colspan="2">Planeamento</th> |
<th rowspan="2">Ficha Curricular</th> |
<th rowspan="2">Sumários</th> |
<th colspan="2">Avaliação</th> |
<th rowspan="2">Relatório de Avaliação</th> |
<th rowspan="2">Inquerito Pedagógico</th> |
</tr> |
<tr> |
<th>Conteúdos</th> |
<th>Calendarização</th> |
<th>Enunciados</th> |
<th>Pautas</th> |
</tr> |
</thead> |
<tbody> |
<tr> |
<th colspan="9">Semestre 1</th> |
</tr> |
<tr ng-repeat="dtpStat in comp.semester1.courseUnitDtpStats"> |
<td>{{dtpStat.name}}</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoConteudos }"><input type="checkbox" |
ng-model="dtpStat.planeamentoConteudos"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoCalendarizacao }"><input type="checkbox" |
ng-model="dtpStat.planeamentoCalendarizacao"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.ficha }"><input type="checkbox" ng-model="dtpStat.ficha"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.sumarios }"><input type="checkbox" |
ng-model="dtpStat.sumarios"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoEnunciados }"><input type="checkbox" |
ng-model="dtpStat.avaliacaoEnunciados"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoPautas }"><input type="checkbox" |
ng-model="dtpStat.avaliacaoPautas"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.relatorio }"><input type="checkbox" |
ng-model="dtpStat.relatorio"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.inquerito }"><input type="checkbox" |
ng-model="dtpStat.inquerito"/></td> |
</tr> |
<tr> |
<th colspan="9">Semestre 2</th> |
</tr> |
<tr ng-repeat="dtpStat in comp.semester2.courseUnitDtpStats"> |
<td>{{dtpStat.name}}</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoConteudos }"><input type="checkbox" |
ng-model="dtpStat.planeamentoConteudos"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoCalendarizacao }"><input type="checkbox" |
ng-model="dtpStat.planeamentoCalendarizacao"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.ficha }"><input type="checkbox" ng-model="dtpStat.ficha"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.sumarios }"><input type="checkbox" |
ng-model="dtpStat.sumarios"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoEnunciados }"><input type="checkbox" |
ng-model="dtpStat.avaliacaoEnunciados"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoPautas }"><input type="checkbox" |
ng-model="dtpStat.avaliacaoPautas"/> |
</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.relatorio }"><input type="checkbox" |
ng-model="dtpStat.relatorio"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.inquerito }"><input type="checkbox" |
ng-model="dtpStat.inquerito"/></td> |
</tr> |
</tbody> |
</table> |
</div> |
</script> |
<style> |
.learning td { |
font-size: 0.7em; |
} |
.learning td input { |
width: 50px; |
} |
.learning td input:read-only { |
width: 50px; |
background-color: #cccccc; |
} |
.learning tr.year td { |
vertical-align: top; |
background-color: #aaaaaa; |
font-weight: bold; |
} |
.learning tr.period td { |
vertical-align: top; |
background-color: #dfdfdf; |
} |
</style> |
<script type="text/ng-template" |
id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_UnitsLearningResultsTable"> |
<unitslearningresultstable> |
</unitslearningresultstable> |
</script> |
<script> |
angular.module("courseReportApp").directive('boundModel', function () { |
return { |
require: 'ngModel', |
link: function (scope, elem, attrs, ngModel) { |
scope.$watch(attrs.boundModel, function (newValue, oldValue) { |
if (newValue != oldValue) { |
ngModel.$setViewValue(newValue); |
ngModel.$render(); |
} |
}); |
} |
} |
}); |
angular.module("courseReportApp").directive('unitslearningresultstable', function () { |
return { |
restrict: 'E', |
link: function ($scope, element, attrs) { |
$scope.checkedDocuments = []; |
$scope.checkUnit = function (document, collection) { |
if (document.checked) { |
var docContainer = |
{ |
"document": document, |
"collection": collection |
} |
$scope.checkedDocuments.push(docContainer); |
} |
else { |
angular.forEach($scope.checkedDocuments, function (documentContainer, key) { |
if (documentContainer.document == document) { |
var index = $scope.checkedDocuments.indexOf(documentContainer); |
$scope.checkedDocuments.splice(index, 1); |
} |
}); |
} |
} |
$scope.changeDocumentCollection = function (collection) { |
angular.forEach($scope.checkedDocuments, function (documentContainer, key) { |
collection.ucs.push(documentContainer.document); |
delete documentContainer.document.checked; |
}); |
angular.forEach($scope.checkedDocuments, function (documentContainer, key) { |
var index = documentContainer.collection.ucs.indexOf(documentContainer.document); |
documentContainer.collection.ucs.splice(index, 1); |
}); |
$scope.checkedDocuments = []; |
} |
$scope.avg = function (field, container, childs) { |
if (!childs || childs.length == 0) |
return 0; |
var sum = 0; |
var c; |
for (c in childs) { |
if (childs[c] && childs[c][field]) |
sum += 1 * childs[c][field]; |
} |
container[field] = sum / childs.length; |
return container[field]; |
} |
$scope.percent = function (n, total) { |
if (!n || n == 0 || !total || total == 0) |
return 0; |
return 100 * n / total; |
} |
$scope.reprovados = function (comp) { |
if (comp.alunosInscritos && comp.semElementos && comp.aprovados) |
return comp.alunosInscritos - comp.semElementos - comp.aprovados; |
return 0; |
} |
$scope.removeComponent = function (index, list) { |
list.splice(index, 1); |
} |
$scope.hasYearUnits = function (year) { |
for (s in year.semesters) { |
if (year.semesters[s].ucs && year.semesters[s].ucs.length > 0) |
return true; |
} |
return false; |
} |
$scope.isInvalidAnfHaveUcs = function (year, years, index) { |
if (year.ano > 0) |
return false; |
var s; |
for (s in year.semesters) { |
if (year.semesters[s].ucs && year.semesters[s].ucs.length > 0) |
return true; |
} |
years.splice(index, 1); |
return false; |
} |
$scope.addUc = function (semestre) { |
semestre.ucs.push( |
{ |
"@class": "<%=UnitsLearningResultUc.class.getName()%>", |
manual: true, |
periodo: semestre.semestre, |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
sigesCode: 0 |
} |
); |
} |
$scope.addAno = function (comp) { |
if (!comp.years) |
comp.years = []; |
comp.years.push( |
{ |
ano: 1, |
"@class": "<%=UnitsLearningResultYear.class.getName()%>", |
manual: true, |
"alunosInscritos": 0, |
"aprovados": 0, |
"aprovados1013": 0, |
"aprovados1013Percent": 0, |
"aprovados1416": 0, |
"aprovados1416Percent": 0, |
"aprovados1720": 0, |
"aprovados1720Percent": 0, |
"aprovadosPercent": 0, |
"cumprimentoProgramaPercent": 0, |
"reprovados": 0, |
"reprovadosPercent": 0, |
"semElementos": 0, |
"semElementosPercent": 0, |
semesters: [ |
{ |
"@class": "<%=UnitsLearningResultSemester.class.getName()%>", |
manual: true, |
semestre: "S1", |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
ucs: [] |
}, |
{ |
"@class": "<%=UnitsLearningResultSemester.class.getName()%>", |
manual: true, |
semestre: "S2", |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
ucs: [] |
} |
] |
} |
); |
} |
}, |
templateUrl: function (elem, attrs) { |
return "unitslearningresultstable"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="unitslearningresultstable"> |
<div class="sections"> |
<button class="btn btn-success" ng-click="addAno(comp)"><span class="glyphicon glyphicon-plus"></span> Ano |
Manual |
</button> |
<table class="table learning"> |
<thead> |
<tr> |
<th rowspan="2">Mover</th> |
<th rowspan="2">Código</th> |
<th rowspan="2">Unidade Curricular</th> |
<th rowspan="2">Cumprimento do Programa</th> |
<th rowspan="2">Alunos Inscritos</th> |
<th colspan="2">Sem Elementos</th> |
<th colspan="2">Reprovados</th> |
<th colspan="2">Aprovados</th> |
<th colspan="2">Aprovados 10-13</th> |
<th colspan="2">Aprovados 14-16</th> |
<th colspan="2">Aprovados 17-20</th> |
</tr> |
<tr> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
</tr> |
</thead> |
<tbody> |
<tr colspan="17" ng-if="false" ng-repeat-start="year in comp.years"></tr> |
<tr class="year"> |
<td colspan="3" ng-if="year.ano > 0"> |
<button ng-disabled="hasYearUnits(year)" class="btn btn-danger btn-xs" |
ng-click="removeComponent($index,comp.years)"><span |
class="glyphicon glyphicon-remove"></span></button> |
<span ng-if="!year.manual">{{year.ano}}ª ano</span> |
<span ng-if="year.manual"> |
<select ng-model="year.ano" |
ng-options="c.v as c.n for c in [{v:1,n:'1º Ano'},{v:2,n:'2º Ano'},{v:3,n:'3º Ano'},{v:4,n:'4º Ano'},{v:5,n:'5º Ano'}]"> |
</select> |
</span> |
</td> |
<td colspan="3" style="font-size: 1.0em !important" ng-if="isInvalidAnfHaveUcs(year,comp.years,$index)"> |
Unidades que não constam do plano (Verifique a situação com os serviços Académicos antes de |
continuar) |
poderão constar de um plano antigo ou ter o código siges desatualizado. |
</td> |
<td><input readonly="true" type="number" ng-model="year.cumprimentoProgramaPercent" |
bound-model="avg('cumprimentoProgramaPercent',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.alunosInscritos" |
bound-model="avg('alunosInscritos',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.semElementos" |
bound-model="avg('semElementos',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.semElementosPercent" |
bound-model="percent(year.semElementos,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.reprovados" bound-model="reprovados(year)"></td> |
<td><input readonly="true" type="number" ng-model="year.reprovadosPercent" |
bound-model="percent(year.reprovados,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados" |
bound-model="year.aprovados1013*1 + year.aprovados1416*1 + year.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovadosPercent" |
bound-model="percent(year.aprovados,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1013" |
bound-model="avg('aprovados1013',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1013Percent" |
bound-model="percent(year.aprovados1013,year.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1416" |
bound-model="avg('aprovados1416',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1416Percent" |
bound-model="percent(year.aprovados1416,year.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1720" |
bound-model="avg('aprovados1720',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1720Percent" |
bound-model="percent(year.aprovados1720,year.aprovados)"></td> |
</tr> |
<tr ng-if="false" ng-repeat-start="s in year.semesters"></tr> |
<tr class="period" ng-if="year.ano > 0 || s.ucs.length > 0"> |
<td colspan="3" class="period">Semestre {{s.semestre}} |
<button ng-click="changeDocumentCollection(s)" data-toggle="tooltip" |
title="Mover unidades para aqui" class="btn btn-xs btn-warning" |
ng-show="checkedDocuments.length"><span class="glyphicon glyphicon-arrow-left"></span> |
</button> |
<button class="btn btn-success pull-right" ng-click="addUc(s)"><span |
class="glyphicon glyphicon-plus"></span> UC Manual |
</button> |
</td> |
<td><input readonly="true" type="number" ng-model="s.cumprimentoProgramaPercent" |
bound-model="avg('cumprimentoProgramaPercent',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.alunosInscritos" |
bound-model="avg('alunosInscritos',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.semElementos" |
bound-model="avg('semElementos',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.semElementosPercent" |
bound-model="percent(s.semElementos,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.reprovados" bound-model="reprovados(s)"></td> |
<td><input readonly="true" type="number" ng-model="s.reprovadosPercent" |
bound-model="percent(s.reprovados,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados" |
bound-model="s.aprovados1013*1 + s.aprovados1416*1 + s.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovadosPercent" |
bound-model="percent(s.aprovados,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1013" |
bound-model="avg('aprovados1013',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1013Percent" |
bound-model="percent(s.aprovados1013,s.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1416" |
bound-model="avg('aprovados1416',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1416Percent" |
bound-model="percent(s.aprovados1416,s.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1720" |
bound-model="avg('aprovados1720',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1720Percent" |
bound-model="percent(s.aprovados1720,s.aprovados)"></td> |
</tr> |
<tr ng-repeat="u in s.ucs" ng-class="{'alert-danger': u.error}"> |
<td><input ng-model="u.error" type="hidden" |
bound-model="u.alunosInscritos < (u.aprovados*1 + u.semElementos*1)"> |
<input ng-model="u.checked" ng-click="checkUnit(u,s)" type="checkbox"></td> |
<td><input type="text" ng-readonly="!u.manual || u.manual == false" ng-model="u.sigesCode"></td> |
<td> |
<input type="text" style="width: 150px" ng-if="!(!u.manual || u.manual == false)" ng-model="u.name"> |
<span ng-if="(!u.manual || u.manual == false)">{{u.name}}</span> |
<button class="btn btn-danger btn-xs pull-right" ng-if="!(!u.manual || u.manual == false)" |
ng-click="removeComponent(index,s.ucs)"><span class="glyphicon glyphicon-remove"></span> |
</button> |
</td> |
<td><input type="number" ng-model="u.cumprimentoProgramaPercent"></td> |
<td><input type="number" ng-model="u.alunosInscritos"></td> |
<td><input type="number" ng-model="u.semElementos"></td> |
<td><input readonly="true" type="number" ng-model="u.semElementosPercent" |
bound-model="percent(u.semElementos,u.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="u.reprovados" bound-model="reprovados(u)"></td> |
<td><input readonly="true" type="number" ng-model="u.reprovadosPercent" |
bound-model="percent(u.reprovados,u.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados" |
bound-model="u.aprovados1013*1 + u.aprovados1416*1 + u.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovadosPercent" |
bound-model="percent(u.aprovados,u.alunosInscritos)"></td> |
<td><input type="number" ng-model="u.aprovados1013"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1013Percent" |
bound-model="percent(u.aprovados1013,u.aprovados)"></td> |
<td><input type="number" ng-model="u.aprovados1416"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1416Percent" |
bound-model="percent(u.aprovados1416,u.aprovados)"></td> |
<td><input type="number" ng-model="u.aprovados1720"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1720Percent" |
bound-model="percent(u.aprovados1720,u.aprovados)"></td> |
</tr> |
<tr ng-if="false" ng-repeat-end></tr> |
<tr ng-if="false" ng-repeat-end></tr> |
<tr class="year"> |
<td colspan="3">Resultados Globais</td> |
<td><input readonly="true" type="number" ng-model="comp.cumprimentoProgramaPercent" |
bound-model="avg('cumprimentoProgramaPercent',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.alunosInscritos" |
bound-model="avg('alunosInscritos',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.semElementos" |
bound-model="avg('semElementos',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.semElementosPercent" |
bound-model="percent(comp.semElementos,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.reprovados" bound-model="reprovados(comp)"></td> |
<td><input readonly="true" type="number" ng-model="comp.reprovadosPercent" |
bound-model="percent(comp.reprovados,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados" |
bound-model="comp.aprovados1013*1 + comp.aprovados1416*1 + comp.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovadosPercent" |
bound-model="percent(comp.aprovados,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1013" |
bound-model="avg('aprovados1013',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1013Percent" |
bound-model="percent(comp.aprovados1013,comp.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1416" |
bound-model="avg('aprovados1416',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1416Percent" |
bound-model="percent(comp.aprovados1416,comp.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1720" |
bound-model="avg('aprovados1720',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1720Percent" |
bound-model="percent(comp.aprovados1720,comp.aprovados)"></td> |
</tr> |
</tbody> |
</table> |
<%--<pre class="code">{{ comp | json }}</pre>--%> |
</div> |
</script> |
<script type="text/ng-template" |
id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_GlobalLearningResultsChartImg"> |
<globallearningresultschartimg> |
</globallearningresultschartimg> |
</script> |
<script> |
angular.module("courseReportApp").directive('globallearningresultschartimg', function () { |
return { |
restrict: 'E', |
link: function ($scope, element, attrs) { |
$scope.generateChart = function (comp) { |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateGlobalLearningResultsChartImg", |
{ |
"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 "globallearningresultschartimg"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="globallearningresultschartimg"> |
<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> |
<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> |
<!-- TESTE --> |
/branches/grupo6/impl/src/web/user/courses/courseReportEdit.jsp |
---|
46,48 → 46,47 |
// 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 |
}, |
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(); |
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 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 + '--'; |
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 |
$.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> |
98,7 → 97,7 |
String year = request.getParameter("year"); |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseImpl courseImpl = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
request.setAttribute("course",courseImpl); |
request.setAttribute("course", courseImpl); |
CourseReportDocument courseReport = null; |
try { |
courseReport = new CourseReportServices().createNewCourseReportDocument(courseCode, year); |
107,243 → 106,238 |
e.printStackTrace(); |
} |
String courseReportJson = courseReport.toJson(); |
request.setAttribute("courseDocumentJson",courseReportJson); |
request.setAttribute("courseDocument",courseReport); |
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> |
<style> |
.separatorSection { |
border: 1px solid #ddd; |
} |
</style> |
<!-- Apresentacao da Unidade --> |
<!-- Apresentacao da Unidade --> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Relatório Anual do curso: ${course.name} |
</div> |
<div class="panel-body"> |
<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> |
<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'); |
<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.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) |
{ |
courseReportApp.controller('courseReportAppController', function ($scope) { |
$scope.docAppSelector = "#courseReportApp"; |
$scope.report = <%=courseReportJson%> |
$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; |
} |
$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; |
} |
/** |
* @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; |
} |
$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; |
/** |
* 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(".", "_"); |
} |
} |
} |
return obj["@class"].replaceAll(".","_"); |
} |
$scope.addText = function(parentCustomPane) |
{ |
$scope.addSimpleDocComponent(parentCustomPane,"pt.estgp.estgweb.utils.documentBuilder.TextComponent") |
} |
$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.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.addSimpleDocComponent = function (parentCustomPane, classComponent) { |
if (!parentCustomPane.components) { |
parentCustomPane.components = []; |
} |
parentCustomPane.components.push( |
{ |
"@class": classComponent |
} |
); |
} |
); |
} |
$scope.removeComponent = function(index,array) |
{ |
array.splice(index,1); |
} |
$scope.removeComponent = function (index, array) { |
array.splice(index, 1); |
} |
$scope.callbackUploadedFiles = function(filesUploadResult,token,targetElement) |
{ |
var modelObject = BacoAngularUtils.getAngularElementModel(targetElement); |
$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(){} |
); |
} |
} |
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(); |
$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.save = function () { |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"save", |
{ |
"courseReportDocument": BacoJS.stringifyOrdered($scope.report) |
}, |
"#courseReportApp", |
function (resposta) { |
$scope.$apply(); |
}, |
function () { |
} |
); |
} |
}); |
</script> |
}); |
</script> |
<!--TEMPLATES FOR DOCUMENT BUILDER--> |
<jsp:include page="../utils/documentsBuilder.jsp"/> |
<jsp:include page="coursereport/templates.jsp"/> |
<!--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 class="web-messages"></div> |
<button ng-click="save()" class="btn btn-success">Salvar</button> |
<div ng-init="section=report;" |
ng-include="'pt_estgp_estgweb_utils_documentBuilder_DocumentSection'"> |
<div class="form-vertical"> |
<div id="courseReportApp" ng-app="courseReportApp" ng-controller="courseReportAppController"> |
</div> |
<div ng-init="section=report;" ng-include="'pt_estgp_estgweb_utils_documentBuilder_DocumentSection'"> |
<pre class="code">{{ report | json }}</pre> |
</div> |
<!-- <pre class="code">{{ report | json }}</pre>--> |
</div><!--App--> |
</div> <!--form--> |
</div><!--Panel Body--> |
</div><!--Panel--> |
</div><!--App--> |
</div> <!--form--> |
</div> |
<!--container-fluid--> |
</div><!--Panel Body--> |
</div><!--Panel--> |
</div><!--container-fluid--> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/branches/grupo6/impl/src/web/user/utils/documentsBuilder.jsp |
---|
1,5 → 1,9 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<style> |
.sections |
{ |
padding-left: 20px; |
} |
.buttonTools |
{ |
border: 1px solid gray; |
23,7 → 27,12 |
} |
</style> |
<!--Require templateObj--> |
<script type="text/ng-template" id="callDocumentTemplate"> |
<div ng-include="class2id(templateObj)"></div> |
</script> |
<%-- |
customPane Need component customPane in variable customPane |
docAppSelector selector usualy an html ID for ng-app example #docReport |
46,37 → 55,38 |
<div class="clearfix" ng-repeat="subComp in comp.components" ng-init="parent=comp;comp=subComp" ng-include="class2id(subComp)"> |
</div> |
<div> |
</div> |
<div> |
</div> |
</script> |
<script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_ImageComponent"> |
<div class="imageComponent component"> |
<div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="buttonTools clearfix"> |
<button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
<span class="glyphicon glyphicon-remove"></span> |
</button> |
<label>Componente de Imagem (Use esta funcinalidade para adicionar gráficos ou tabelas que ache necessárias)</label> |
<button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
<span class="glyphicon glyphicon-remove"></span> |
</button> |
<label>Componente de Imagem (Use esta funcinalidade para adicionar gráficos ou tabelas que ache necessárias)</label> |
</div> |
<div class="componentBody" ng-if="comp['@class']=='pt.estgp.estgweb.utils.documentBuilder.ImageComponent'"> |
<div class="form-group clearfix" ng-if="comp.image.identifier"> |
<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 class="componentBody"> |
<div class="form-group clearfix" ng-if="comp.image.identifier"> |
<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 class="form-group clearfix"> |
<div class="col-md-2 control-label"> |
<a class="btn btn-default" href="#" ng-model="comp" |
data-title="Escolha Imagem" |
data-showmetafields="false" |
data-confirmonupload="true" |
data-toggle="modal" |
data-target="#filesUploadModal" |
data-multiple="false" |
data-allowed-extensions="jpg,png,gif" |
data-callback-target-function="angular.element($('{{docAppSelector}}')).scope().callbackUploadedFiles"> |
</div> |
<div class="form-group clearfix"> |
<div class="col-md-2 control-label"> |
<a class="btn btn-default" href="#" |
ng-model="comp" |
data-title="Escolha Imagem" |
data-showmetafields="false" |
data-confirmonupload="true" |
data-toggle="modal" |
data-target="#filesUploadModal" |
data-multiple="false" |
data-allowed-extensions="jpg,png,gif" |
data-callback-target-function="angular.element($('{{docAppSelector}}')).scope().callbackUploadedFiles"> |
<span ng-if="comp.image.identifier"> |
Substituir Imagem |
</span> |
84,26 → 94,26 |
Carregar Imagem |
</span> |
<span class="glyphicon glyphicon-upload"/> |
<span class="glyphicon glyphicon-upload"/> |
</a> |
</a> |
</div> |
<div class="col-md-10"> |
<div ng-if="!(comp.image.identifier)"> |
Clique em carregar imagens e escolha uma imagem para adicionar nesta secção. |
</div> |
<div class="col-md-10"> |
<div ng-if="!(comp.image.identifier)"> |
Clique em carregar imagens e escolha uma imagem para adicionar nesta secção. |
</div> |
<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 style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
</div> |
(Se desejar altere o tamanho da imagem arrastando no canto inferior direito) |
</center> |
</div> |
<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 style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
</div> |
(Se desejar altere o tamanho da imagem arrastando no canto inferior direito) |
</center> |
</div> |
</div> |
</div> |
</div> |
</div> |
135,4 → 145,33 |
</div> |
</div> |
</div> |
</script> |
</script> |
<!-- |
@section objeto com seccoes e componentes |
@optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
--> |
<script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_DocumentSection"> |
<div class="sections"> |
<ul class="nav nav-tabs"> |
<li ng-model="section" class="separatorSectionNav" |
ng-class="{ active : subSection.active}" |
ng-repeat="subSection in section.sections"> |
<a ng-click="showSep(section,subSection)"> {{$chapter}}{{$index+1}} - {{subSection.title}}</a> |
</li> |
</ul> |
<div ng-model="subSection" |
ng-class="{ hidden: !subSection.active }" |
ng-repeat="subSection in section.sections" |
class="separatorSection clearfix"> |
<div ng-repeat="comp in subSection.components" |
ng-include="class2id(comp)"> |
</div> |
<div ng-if="subSection.sections" |
ng-init="section=subSection;$chapter=$chapter+($index+1)+'.'" |
ng-include="class2id(subSection)"> |
</div> |
</div> |
</div> |
</script> |
/branches/grupo6/impl/build.xml |
---|
194,6 → 194,7 |
<!-- |
Build distribution files |
--> |
<target name="dist" depends="build"> |
<jar jarfile="${dist.dir}/estgweb.jar"> |
<fileset dir="${build.dir.classes}" includes="**/*.class"/> |
241,7 → 242,8 |
</replace> |
</target> |
<target name="build.war" depends="dist" description="Make war distribution"> |
<target name="build.war" depends="build" |
description="Make war distribution"> |
<mkdir dir="${build.dir.war}"/> |
<mkdir dir="${build.dir.war}/WEB-INF"/> |
<mkdir dir="${build.dir.war}/WEB-INF/lib"/> |
320,14 → 322,14 |
</copy> |
<copy file="${dist.dir}/estgweb.jar" todir="${build.dir.war}/WEB-INF/lib"/> |
<copy todir="${build.dir.war}/WEB-INF" overwrite="true"> |
<copy todir="${build.dir.war}/WEB-INF"> |
<fileset dir="${conf.dir}/WEB-INF"> |
<include name="**/*.*"/> |
</fileset> |
</copy> |
<mkdir dir="${build.dir.war}/WEB-INF/classes"/> |
<copy todir="${build.dir.war}/WEB-INF/classes" overwrite="true"> |
<copy todir="${build.dir.war}/WEB-INF/classes"> |
<fileset dir="${build.dir.classes}"> |
<include name="**/*.types"/> |
<include name="**/*.properties"/> |
339,9 → 341,10 |
<include name="**/*.xsl"/> |
<include name="**/*.xsd"/> |
<include name="**/*.json"/> |
<include name="**/*.class"/> |
</fileset> |
</copy> |
<copy todir="${build.dir.war}" overwrite="true"> |
<copy todir="${build.dir.war}" > |
<fileset dir="src/web"> |
<include name="**/*"/> |
</fileset> |
884,7 → 887,7 |
<target name="generateJsonSoaServicesFile" > |
<!-- |
<java fork="true" classname="${soa.services.json.class}" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<java fork="true" classname="${soasoa.services.json.class}" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="${build.dir.classes}"/> |
<arg value="${basedir}/${src.dir}/"/> |
</java> |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Pagina.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitDeliverable.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfeto.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPergunta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskActorInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyStatsGraphic.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/EventGeneric.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupDocentesAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveDecisionHolderInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgram.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationSeparator.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupCursosAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndMessageInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPoolThreadInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Survey.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RecordThesis.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionPossibleAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentInterface.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/PageSection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionCandidateAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPoolInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SruSourceCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/EventClass.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RecordJob.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesStatusEpoca.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Teacher.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/PageRepositoryFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgenservices.repositorydocuments.RepositoryFileProxy; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitSummary.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Record.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnRoleSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnTaskFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportDocenteFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
14,6 → 14,7 |
private Date updateDate; |
private Date saveDate; |
private String importYear; |
private String courseReport; |
private boolean separatedTurmas; |
private Course course; |
49,6 → 50,13 |
public void setImportYear(String importYear) { |
this.importYear = importYear; |
} |
public String getCourseReport() { |
return this.courseReport; |
} |
public void setCourseReport(String courseReport) { |
this.courseReport = courseReport; |
} |
public boolean isSeparatedTurmas() { |
return this.separatedTurmas; |
} |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableDomainObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Blog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTaskActor.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.Todos; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Assessment.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFileVersion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UserRoleConfig.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentTask.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.Todos; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfeta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveDecisionHolder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableBoolean.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionItem.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Page.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseStudiesPlan.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoAlunoRequisitado.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Process.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/AppUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorPool.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/PageText.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Questionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioPerguntaEsforco.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUnidade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndMessages.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.TargetActorType; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableString.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGateway.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableJson.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionItem.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Group.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnit.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyQuestionAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGradesEpocaAvaliacao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoTipologiaRequisitada.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SigesUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAnnouncement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifierCollection.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryCategory.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RecordOther.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/DigitalDelivery.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitEvaluation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportCursoFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroup.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/AssessmentQuestionAnswer.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelectorCondicionado.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitProgramPart2.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioCurso.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioResposta.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioTipologia.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Reminder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RecordEventOrganization.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RecordPaper.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusiveInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Configuration.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/PageContent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.io.Serializable; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitBlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/JobParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableInteger.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnProcessInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/EventFormacoes.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ComunicationFolder.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Student.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableFloat.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitQuestion.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionario.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnUserSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioTipologia.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariable.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import pt.estgp.estgweb.domain.typesgen.VariableType; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RecordProject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/PageExternalObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEvent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitTurma.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyResponse.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RepositoryFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ProcessEventFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ProcessEvent.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioUnidade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentGatewayExclusive.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableLong.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowConnectorInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEndInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SruSource.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnProcess.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.ArrayList; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableJsonArray.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ManagedIdentifier.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Course.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/PageExternalUrl.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitGrade.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/AssessmentResponse.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTask.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocument.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/RepositoryDocumentFile.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/User.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/EventUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Image.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapHistoryDimension.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Teste.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapStarFactQuestionarioAnswerEsforco.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/DigitalDeliveryTarget.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnActorSelectorWithDomainObjectLoader.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioReportFileGroupAno.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationDirectory.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioHistoryDrive.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseUnitAssignement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowConnector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/QuestionarioRespostaRequisitada.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowComponentEventEnd.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnFlowObjectInstance.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/OlapEntityQuestionarioCurso.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseSchool.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Job.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.io.Serializable; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnAbstractActorSelector.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskScheduler.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/EventGenericRecord.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/JobServiceTaskParameter.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/CourseDepartment.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/MetaProcess.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/SurveyStructuralNode.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.HashSet; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/BpmnVariableDouble.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/ConfigurationGrades.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/Seccao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 4/nov/2017 19:35:42 by Hibernate Tools 3.2.0.b9 |
// Generated Dec 7, 2017 11:01:13 AM by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/branches/grupo6 |
---|
Property changes: |
Added: svn:ignore |
+ .idea |
BacoProj.iml |
backUp.rar |
/branches/grupo7/impl/src/web/user/courses/coursereport/templates.jsp |
---|
New file |
0,0 → 1,694 |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultYear" %> |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultSemester" %> |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultUc" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<!-- |
@section objeto com seccoes e componentes |
@optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
--> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_CourseUnitsReportsSection"> |
<div class="sections"> |
<a name="indexCus"></a> |
<span ng-repeat="cu in section.sections" ng-init="cu.taxaAprovacao = 100 * cu.courseUnitEvaluation.numAlunosAprovTotal/(cu.courseUnitEvaluation.numAlunosInscritos - cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao)"> |
<a href="#cu{{$index}}" ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) || cu.taxaAprovacao < 75 || !cu.courseUnitEvaluation.closed || !cu.courseUnitEvaluation.teacherComplete}"> |
{{cu.title}} |
</a> | |
</span> |
<div ng-repeat="cu in section.sections" |
class="section panel-primary"> |
<a name="cu{{$index}}"></a> |
<span ng-if="$index != 0" class="glyphicon glyphicon-backward" ></span><a ng-if="$index != 0" href="#indexCus"> Voltar atrás</a> |
<div class="panel-heading"><h2>{{cu.title}}</h2></div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Estado do Relatório</label></h3></div> |
<div ng-if="cu.courseUnitEvaluation.closed"> |
Entregue e Aceite |
</div> |
<div class="alert-danger" ng-if="cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
Entregue mas não foi aprovado pela comissão |
</div> |
<div class="alert-danger" ng-if="!cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
Não foi entregue pelo docente para validação |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Resultados</label></h3></div> |
<div> |
<table class="tablesorter-blue" width="100%"> |
<tr> |
<th rowspan="2"> |
Nº Alunos Inscritos |
</th> |
<th rowspan="2"> |
Nº de alunos sem elementos de avaliação |
</th> |
<th colspan="5"> |
Nº de alunos aprovados em |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 10 e 13 valores |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 14 e 16 valores |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 17 e 20 valores |
</th> |
</tr> |
<tr> |
<th>Avaliação de frequência</th> |
<th>Exame Época Normal</th> |
<th>Exame Época Recurso</th> |
<th>Exame Época Especial</th> |
<th>Total</th> |
<th>Nº</th> |
<th>%</th> |
<th>Nº</th> |
<th>%</th> |
<th>Nº</th> |
<th>%</th> |
</tr> |
<tr> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosInscritos}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovFrequencia}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovNormal}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovRecurso}} |
</td> |
<td style="text-align: center"> |
{{cu.courseUnitEvaluation.numAlunosAprovEspecial}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovTotal}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1013}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1013Percent}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1416}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1416Percent}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1720}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1720Percent}} |
</td> |
</tr> |
</table> |
</div> |
</div> |
<div style="padding-left:20px" > |
<div><h3><label class="label label-primary">Taxa de Aprovação</label></h3></div> |
<div ng-class="{ 'alert-danger': cu.taxaAprovacao < 75 }">{{cu.taxaAprovacao}}%</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação dos resultados quantitativos obtidos pelos estudantes</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoQuantitivos}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação do funcionamento da UC</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoUC}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Percentagem de cumprimento do programa da UC</label></h3></div> |
<div ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) }"> |
{{cu.courseUnitEvaluation.cumprimentoProgramaPercent}}% |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação do cumprimento do programa da UC</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Conclusões</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualConclusoes}}</div> |
</div> |
</div> |
</div> |
</script> |
<style> |
.dtpstats td, .dtpstats th{ |
text-align: center !important; |
} |
</style> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_reportucsummary_UnitsDtpTable"> |
<div class="sections"> |
<table class="table dtpstats"> |
<thead> |
<tr> |
<th rowspan="2">Unidade Curricular</th> |
<th colspan="2">Planeamento</th> |
<th rowspan="2">Ficha Curricular</th> |
<th rowspan="2">Sumários</th> |
<th colspan="2">Avaliação</th> |
<th rowspan="2">Relatório de Avaliação</th> |
<th rowspan="2">Inquerito Pedagógico</th> |
</tr> |
<tr> |
<th>Conteúdos</th> |
<th>Calendarização</th> |
<th>Enunciados</th> |
<th>Pautas</th> |
</tr> |
</thead> |
<tbody> |
<tr> |
<th colspan="9">Semestre 1</th> |
</tr> |
<tr ng-repeat="dtpStat in comp.semester1.courseUnitDtpStats"> |
<td>{{dtpStat.name}}</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoConteudos }"><input type="checkbox" ng-model="dtpStat.planeamentoConteudos"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoCalendarizacao }"><input type="checkbox" ng-model="dtpStat.planeamentoCalendarizacao"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.ficha }"><input type="checkbox" ng-model="dtpStat.ficha"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.sumarios }"><input type="checkbox" ng-model="dtpStat.sumarios"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoEnunciados }"><input type="checkbox" ng-model="dtpStat.avaliacaoEnunciados"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoPautas }"><input type="checkbox" ng-model="dtpStat.avaliacaoPautas"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.relatorio }"><input type="checkbox" ng-model="dtpStat.relatorio"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.inquerito }"><input type="checkbox" ng-model="dtpStat.inquerito"/></td> |
</tr> |
<tr> |
<th colspan="9">Semestre 2</th> |
</tr> |
<tr ng-repeat="dtpStat in comp.semester2.courseUnitDtpStats"> |
<td>{{dtpStat.name}}</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoConteudos }"><input type="checkbox" ng-model="dtpStat.planeamentoConteudos"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoCalendarizacao }"><input type="checkbox" ng-model="dtpStat.planeamentoCalendarizacao"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.ficha }"><input type="checkbox" ng-model="dtpStat.ficha"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.sumarios }"><input type="checkbox" ng-model="dtpStat.sumarios"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoEnunciados }"><input type="checkbox" ng-model="dtpStat.avaliacaoEnunciados"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoPautas }"><input type="checkbox" ng-model="dtpStat.avaliacaoPautas"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.relatorio }"><input type="checkbox" ng-model="dtpStat.relatorio"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.inquerito }"><input type="checkbox" ng-model="dtpStat.inquerito"/></td> |
</tr> |
</tbody> |
</table> |
</div> |
</script> |
<style> |
.learning td |
{ |
font-size: 0.7em; |
} |
.learning td input{ |
width: 50px; |
} |
.learning td input:read-only{ |
width: 50px; |
background-color: #cccccc; |
} |
.learning tr.year td { |
vertical-align: top; |
background-color: #aaaaaa; |
font-weight: bold; |
} |
.learning tr.period td { |
vertical-align: top; |
background-color: #dfdfdf; |
} |
</style> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_UnitsLearningResultsTable"> |
<unitslearningresultstable> |
</unitslearningresultstable> |
</script> |
<script> |
angular.module("courseReportApp").directive('boundModel', function() { |
return { |
require: 'ngModel', |
link: function(scope, elem, attrs, ngModel) { |
scope.$watch(attrs.boundModel, function(newValue, oldValue) { |
if(newValue != oldValue) { |
ngModel.$setViewValue(newValue); |
ngModel.$render(); |
} |
}); |
} |
} |
}); |
angular.module("courseReportApp").directive('unitslearningresultstable', function() { |
return { |
restrict: 'E', |
link: function($scope, element, attrs) |
{ |
$scope.checkedDocuments = []; |
$scope.checkUnit = function(document,collection) |
{ |
if(document.checked) |
{ |
var docContainer = |
{ |
"document" : document, |
"collection" : collection |
} |
$scope.checkedDocuments.push(docContainer); |
} |
else |
{ |
angular.forEach($scope.checkedDocuments, function(documentContainer, key) |
{ |
if(documentContainer.document == document) |
{ |
var index = $scope.checkedDocuments.indexOf(documentContainer); |
$scope.checkedDocuments.splice(index, 1); |
} |
}); |
} |
} |
$scope.changeDocumentCollection = function(collection) |
{ |
angular.forEach($scope.checkedDocuments, function(documentContainer, key) |
{ |
collection.ucs.push(documentContainer.document); |
delete documentContainer.document.checked; |
}); |
angular.forEach($scope.checkedDocuments, function(documentContainer, key) |
{ |
var index = documentContainer.collection.ucs.indexOf(documentContainer.document); |
documentContainer.collection.ucs.splice(index, 1); |
}); |
$scope.checkedDocuments = []; |
} |
$scope.avg = function(field,container, childs) |
{ |
if(!childs || childs.length == 0) |
return 0; |
var sum = 0; |
var c; |
for(c in childs) |
{ |
if(childs[c] && childs[c][field]) |
sum += 1*childs[c][field]; |
} |
container[field] = sum / childs.length; |
return container[field]; |
} |
$scope.percent = function(n,total) |
{ |
if(!n || n == 0 || !total || total == 0) |
return 0; |
return 100 * n / total; |
} |
$scope.reprovados = function(comp) |
{ |
if(comp.alunosInscritos && comp.semElementos && comp.aprovados) |
return comp.alunosInscritos - comp.semElementos - comp.aprovados; |
return 0; |
} |
$scope.removeComponent = function(index,list) |
{ |
list.splice(index,1); |
} |
$scope.hasYearUnits = function(year) |
{ |
for(s in year.semesters) |
{ |
if(year.semesters[s].ucs && year.semesters[s].ucs.length > 0) |
return true; |
} |
return false; |
} |
$scope.isInvalidAnfHaveUcs = function(year,years,index) |
{ |
if(year.ano > 0) |
return false; |
var s; |
for(s in year.semesters) |
{ |
if(year.semesters[s].ucs && year.semesters[s].ucs.length > 0) |
return true; |
} |
years.splice(index,1); |
return false; |
} |
$scope.addUc = function(semestre) |
{ |
semestre.ucs.push( |
{ |
"@class" : "<%=UnitsLearningResultUc.class.getName()%>", |
manual : true, |
periodo : semestre.semestre, |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
sigesCode : 0 |
} |
); |
} |
$scope.addAno = function(comp) |
{ |
if(!comp.years) |
comp.years = []; |
comp.years.push( |
{ |
ano : 1, |
"@class" : "<%=UnitsLearningResultYear.class.getName()%>", |
manual : true, |
"alunosInscritos": 0, |
"aprovados": 0, |
"aprovados1013": 0, |
"aprovados1013Percent": 0, |
"aprovados1416": 0, |
"aprovados1416Percent": 0, |
"aprovados1720": 0, |
"aprovados1720Percent": 0, |
"aprovadosPercent": 0, |
"cumprimentoProgramaPercent": 0, |
"reprovados": 0, |
"reprovadosPercent": 0, |
"semElementos": 0, |
"semElementosPercent": 0, |
semesters : [ |
{ |
"@class" : "<%=UnitsLearningResultSemester.class.getName()%>", |
manual : true, |
semestre : "S1", |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
ucs : [] |
}, |
{ |
"@class" : "<%=UnitsLearningResultSemester.class.getName()%>", |
manual : true, |
semestre: "S2", |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
ucs : [] |
} |
] |
} |
); |
} |
}, |
templateUrl: function(elem,attrs) { |
return "unitslearningresultstable"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="unitslearningresultstable"> |
<div class="sections"> |
<button class="btn btn-success" ng-click="addAno(comp)"><span class="glyphicon glyphicon-plus"></span> Ano Manual</button> |
<table class="table learning"> |
<thead> |
<tr> |
<th rowspan="2">Mover</th> |
<th rowspan="2">Código</th> |
<th rowspan="2">Unidade Curricular</th> |
<th rowspan="2">Cumprimento do Programa</th> |
<th rowspan="2">Alunos Inscritos</th> |
<th colspan="2">Sem Elementos</th> |
<th colspan="2">Reprovados</th> |
<th colspan="2">Aprovados</th> |
<th colspan="2">Aprovados 10-13</th> |
<th colspan="2">Aprovados 14-16</th> |
<th colspan="2">Aprovados 17-20</th> |
</tr> |
<tr> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
</tr> |
</thead> |
<tbody> |
<tr colspan="17" ng-if="false" ng-repeat-start="year in comp.years"></tr> |
<tr class="year"> |
<td colspan="3" ng-if="year.ano > 0"> |
<button ng-disabled="hasYearUnits(year)" class="btn btn-danger btn-xs" ng-click="removeComponent($index,comp.years)"><span class="glyphicon glyphicon-remove"></span></button> |
<span ng-if="!year.manual">{{year.ano}}ª ano</span> |
<span ng-if="year.manual"> |
<select ng-model="year.ano" ng-options="c.v as c.n for c in [{v:1,n:'1º Ano'},{v:2,n:'2º Ano'},{v:3,n:'3º Ano'},{v:4,n:'4º Ano'},{v:5,n:'5º Ano'}]"> |
</select> |
</span> |
</td> |
<td colspan="3" style="font-size: 1.0em !important" ng-if="isInvalidAnfHaveUcs(year,comp.years,$index)"> |
Unidades que não constam do plano (Verifique a situação com os serviços Académicos antes de continuar) |
poderão constar de um plano antigo ou ter o código siges desatualizado. |
</td> |
<td><input readonly="true" type="number" ng-model="year.cumprimentoProgramaPercent" bound-model="avg('cumprimentoProgramaPercent',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.alunosInscritos" bound-model="avg('alunosInscritos',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.semElementos" bound-model="avg('semElementos',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.semElementosPercent" bound-model="percent(year.semElementos,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.reprovados" bound-model="reprovados(year)"></td> |
<td><input readonly="true" type="number" ng-model="year.reprovadosPercent" bound-model="percent(year.reprovados,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados" bound-model="year.aprovados1013*1 + year.aprovados1416*1 + year.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovadosPercent" bound-model="percent(year.aprovados,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1013" bound-model="avg('aprovados1013',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1013Percent" bound-model="percent(year.aprovados1013,year.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1416" bound-model="avg('aprovados1416',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1416Percent" bound-model="percent(year.aprovados1416,year.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1720" bound-model="avg('aprovados1720',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1720Percent" bound-model="percent(year.aprovados1720,year.aprovados)"></td> |
</tr> |
<tr ng-if="false" ng-repeat-start="s in year.semesters" ></tr> |
<tr class="period" ng-if="year.ano > 0 || s.ucs.length > 0"> |
<td colspan="3" class="period">Semestre {{s.semestre}} <button ng-click="changeDocumentCollection(s)" data-toggle="tooltip" title="Mover unidades para aqui" class="btn btn-xs btn-warning" ng-show="checkedDocuments.length"><span class="glyphicon glyphicon-arrow-left"></span></button> |
<button class="btn btn-success pull-right" ng-click="addUc(s)"><span class="glyphicon glyphicon-plus"></span> UC Manual</button> |
</td> |
<td><input readonly="true" type="number" ng-model="s.cumprimentoProgramaPercent" bound-model="avg('cumprimentoProgramaPercent',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.alunosInscritos" bound-model="avg('alunosInscritos',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.semElementos" bound-model="avg('semElementos',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.semElementosPercent" bound-model="percent(s.semElementos,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.reprovados" bound-model="reprovados(s)"></td> |
<td><input readonly="true" type="number" ng-model="s.reprovadosPercent" bound-model="percent(s.reprovados,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados" bound-model="s.aprovados1013*1 + s.aprovados1416*1 + s.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovadosPercent" bound-model="percent(s.aprovados,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1013" bound-model="avg('aprovados1013',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1013Percent" bound-model="percent(s.aprovados1013,s.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1416" bound-model="avg('aprovados1416',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1416Percent" bound-model="percent(s.aprovados1416,s.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1720" bound-model="avg('aprovados1720',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1720Percent" bound-model="percent(s.aprovados1720,s.aprovados)"></td> |
</tr> |
<tr ng-repeat="u in s.ucs" ng-class="{'alert-danger': u.error}" > |
<td><input ng-model="u.error" type="hidden" bound-model="u.alunosInscritos < (u.aprovados*1 + u.semElementos*1)"> |
<input ng-model="u.checked" ng-click="checkUnit(u,s)" type="checkbox"></td> |
<td><input type="text" ng-readonly="!u.manual || u.manual == false" ng-model="u.sigesCode"></td> |
<td> |
<input type="text" style="width: 150px" ng-if="!(!u.manual || u.manual == false)" ng-model="u.name"> |
<span ng-if="(!u.manual || u.manual == false)">{{u.name}}</span> |
<button class="btn btn-danger btn-xs pull-right" ng-if="!(!u.manual || u.manual == false)" ng-click="removeComponent(index,s.ucs)"><span class="glyphicon glyphicon-remove"></span></button> |
</td> |
<td><input type="number" ng-model="u.cumprimentoProgramaPercent"></td> |
<td><input type="number" ng-model="u.alunosInscritos"></td> |
<td><input type="number" ng-model="u.semElementos"></td> |
<td><input readonly="true" type="number" ng-model="u.semElementosPercent" bound-model="percent(u.semElementos,u.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="u.reprovados" bound-model="reprovados(u)"></td> |
<td><input readonly="true" type="number" ng-model="u.reprovadosPercent" bound-model="percent(u.reprovados,u.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados" bound-model="u.aprovados1013*1 + u.aprovados1416*1 + u.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovadosPercent" bound-model="percent(u.aprovados,u.alunosInscritos)"></td> |
<td><input type="number" ng-model="u.aprovados1013"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1013Percent" bound-model="percent(u.aprovados1013,u.aprovados)"></td> |
<td><input type="number" ng-model="u.aprovados1416"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1416Percent" bound-model="percent(u.aprovados1416,u.aprovados)"></td> |
<td><input type="number" ng-model="u.aprovados1720"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1720Percent" bound-model="percent(u.aprovados1720,u.aprovados)"></td> |
</tr> |
<tr ng-if="false" ng-repeat-end></tr> |
<tr ng-if="false" ng-repeat-end></tr> |
<tr class="year"> |
<td colspan="3">Resultados Globais</td> |
<td><input readonly="true" type="number" ng-model="comp.cumprimentoProgramaPercent" bound-model="avg('cumprimentoProgramaPercent',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.alunosInscritos" bound-model="avg('alunosInscritos',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.semElementos" bound-model="avg('semElementos',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.semElementosPercent" bound-model="percent(comp.semElementos,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.reprovados" bound-model="reprovados(comp)"></td> |
<td><input readonly="true" type="number" ng-model="comp.reprovadosPercent" bound-model="percent(comp.reprovados,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados" bound-model="comp.aprovados1013*1 + comp.aprovados1416*1 + comp.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovadosPercent" bound-model="percent(comp.aprovados,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1013" bound-model="avg('aprovados1013',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1013Percent" bound-model="percent(comp.aprovados1013,comp.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1416" bound-model="avg('aprovados1416',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1416Percent" bound-model="percent(comp.aprovados1416,comp.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1720" bound-model="avg('aprovados1720',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1720Percent" bound-model="percent(comp.aprovados1720,comp.aprovados)"></td> |
</tr> |
</tbody> |
</table> |
<%--<pre class="code">{{ comp | json }}</pre>--%> |
</div> |
</script> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_GlobalLearningResultsChartImg"> |
<globallearningresultschartimg> |
</globallearningresultschartimg> |
</script> |
<script> |
angular.module("courseReportApp").directive('globallearningresultschartimg', function() { |
return { |
restrict: 'E', |
link: function($scope, element, attrs) |
{ |
$scope.generateChart = function(comp) |
{ |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateGlobalLearningResultsChartImg", |
{ |
"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 "globallearningresultschartimg"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="globallearningresultschartimg"> |
<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/grupo1/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
37,7 → 37,7 |
<action path="/courseController" |
type="pt.estgp.estgweb.web.controllers.courses.CoursesController" |
name="CourseForm" |
166,6 → 166,14 |
<action path="/user/loadCourseReportTools" forward="page.course.report.tools.load"/> |
<action path="/user/editCourseReport" forward="page.course.report.edit"/> |
<action path="/user/courseReport" |
type="pt.estgp.estgweb.web.controllers.courses.CoursesServicesController" |
name="WidgetModelForm" |
scope="request" |
parameter="dispatch" |
validate="true" |
input="page.widget.json.fail.validations"> |
</action> |
/branches/grupo1/impl/conf/berserk/sd.xml |
---|
832,7 → 832,7 |
<chain name="OwnersEdit"/> |
</filterChains> |
</service> |
<service> |
<name>LoadUserById</name> |
<implementationClass>pt.estgp.estgweb.services.profile.LoadUserByIdService</implementationClass> |
996,18 → 996,18 |
</filterChains> |
</service> |
<!--<service> |
<name>DeleteCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass> |
<description>Update course unit objectives and program file</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>delete</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Supers"/> |
</filterChains> |
</service>--> |
<!--<service> |
<name>DeleteCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass> |
<description>Update course unit objectives and program file</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>delete</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Supers"/> |
</filterChains> |
</service>--> |
<service> |
<name>LoadCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
1079,9 → 1079,9 |
<service> |
<name>SaveCourseUnitProgram</name> |
<!--Args |
ourseUnitProgramView programView, |
long unitId used in filters |
--> |
ourseUnitProgramView programView, |
long unitId used in filters |
--> |
<implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass> |
<description>Save course unit program</description> |
<isTransactional>true</isTransactional> |
1123,9 → 1123,9 |
<service> |
<name>SaveCourseUnitEvaluation</name> |
<!--Args |
CourseUnitEvaluationView evaluationView, |
long unitId used in filters |
--> |
CourseUnitEvaluationView evaluationView, |
long unitId used in filters |
--> |
<implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass> |
<description>Save course unit evaluation</description> |
<isTransactional>true</isTransactional> |
1157,8 → 1157,8 |
<service> |
<name>InitCourseUnitEvaluationClearances</name> |
<!--Parameters |
CourseUnitView cuv, Long courseUnitId |
--> |
CourseUnitView cuv, Long courseUnitId |
--> |
<implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass> |
<description>Open course unit evaluation for edition</description> |
<isTransactional>true</isTransactional> |
1509,9 → 1509,9 |
</filterChains> |
</service> |
<!--CourseUnitAssignements Backups--> |
<service> |
<name>CreateCourseUnitDirPackage</name> |
1592,11 → 1592,11 |
<chain name="Session"/> |
</filterChains> |
</service> |
<!--COURSES--> |
<service> |
<name>LoadCourseByCode</name> |
1855,7 → 1855,7 |
<chain name="Logger"/> |
</filterChains> |
</service> |
<service> |
<service> |
<name>LoadCoursesImportYearByType</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass> |
<description>Load All Courses</description> |
2367,7 → 2367,7 |
</filterChains> |
</service> |
<service> |
<name>GenerateSurveyStatsCsv</name> |
<name>GenerateSurveyStatsCsv</name> |
<implementationClass>pt.estgp.estgweb.services.surveys.GenerateSurveyStatsCsvService</implementationClass> |
<description>Generate all survey stats on a csv file</description> |
<isTransactional>true</isTransactional> |
2403,7 → 2403,7 |
<!--Filipe Matos--> |
<!--Filipe Matos--> |
<!--Assessments--> |
<service> |
<name>CreateEditAssessment</name> |
2920,18 → 2920,18 |
</service> |
<!-- |
<service> |
<name>AddUpdateDirtyRolesTranslation</name> |
<implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addUpdateDirtRolesTranslation</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="RoleAddRemoveManager"/> |
</filterChains> |
</service>--> |
<service> |
<name>AddUpdateDirtyRolesTranslation</name> |
<implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>addUpdateDirtRolesTranslation</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="RoleAddRemoveManager"/> |
</filterChains> |
</service>--> |
<service> |
<name>AddUpdateRoleTranslation</name> |
3901,8 → 3901,8 |
<!--/****************************************************************************/ |
/* COURSE REPORTS |
/****************************************************************************/--> |
/* COURSE REPORTS |
/****************************************************************************/--> |
3944,16 → 3944,16 |
</service> |
<!-- |
PRECISO DE UM IMPORTAR NOVAMENTE TABELA DE RESULTADOS DE APRENDIZAGEM |
Ha de ser um subservico do de cima que tem usar |
o servico LoadCourseEvaluationSections novamente |
PRECISO DE UM IMPORTAR NOVAMENTE TABELA DE RESULTADOS DE APRENDIZAGEM |
Ha de ser um subservico do de cima que tem usar |
o servico LoadCourseEvaluationSections novamente |
PRECISO DE UM SERVICO PARA GERAR OS GRAFICOS DE APRENDIZAGEM |
--> |
PRECISO DE UM SERVICO PARA GERAR OS GRAFICOS DE APRENDIZAGEM |
--> |
<!--/****************************************************************************/ |
/* SERVICOS WS-API TODO Seguranca em falta |
/****************************************************************************/--> |
/* SERVICOS WS-API TODO Seguranca em falta |
/****************************************************************************/--> |
<service> |
<name>LoadCourseEvaluationSections</name> |
4008,7 → 4008,6 |
</filterChains> |
</service> |
<service> |
<name>LoadPlanYearForCourseUnitCode</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass> |
4025,10 → 4024,8 |
</filterChains> |
</service> |
<!-- SERVICOS DE GERACAO DE RELATORIO DE CURSO --> |
<service> |
<name>CourseReportGenerateGlobalLearningResultsChartImg</name> |
<implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass> |
4047,6 → 4044,22 |
</filterChains> |
</service> |
<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>generateGenerateGlobalLearningResultsChartYearImg</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/branches/grupo1/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
448,11 → 448,41 |
return view.toJson(); |
} |
public String generateGenerateGlobalLearningResultsChartYearImg(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); |
GlobalLearningResultsChartImg chartImg = (GlobalLearningResultsChartImg) learningGlobalAnalysisSection.findDocComponent(GlobalLearningResultsChartImg.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(); |
} |
/****************************************************************************/ |
/* |
/branches/grupo1/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
New file |
0,0 → 1,55 |
package pt.estgp.estgweb.web.controllers.courses; |
import org.apache.struts.action.ActionForm; |
import org.json.JSONObject; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
/** |
* Created by jorgemachado on 06/01/17. |
*/ |
public class CoursesServicesController extends AbstractWidgetAjaxController |
{ |
/** |
* See also CoursesServicesWidgetController for WS-API services |
*/ |
/** |
* |
* @param form |
* @param request |
* @param response |
* @return |
* @throws Throwable |
*/ |
public JSONObject generateGlobalLearningResultsChartImg(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), |
"CourseReportGenerateGlobalLearningResultsChartImg", |
new Object[]{courseReportDocument}); |
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); |
} |
} |
/branches/grupo1/impl/src/web/examples/angular/directives/angular-directive.jsp |
---|
New file |
0,0 → 1,95 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %> |
<%@ taglib prefix="logic" uri="/WEB-INF/tlds/struts-logic.tld" %> |
<html> |
<head></head> |
<body ng-app="BacoAngularApp"> |
<jsp:include page="/layout/themes/scripts-default.jsp"/> |
<jsp:include page="/layout/headerTools.jsp"/> |
<div id="demoApp" ng-app="demoApp" ng-controller="demoAppController"> |
<h1>Uso de Directivas com Templates</h1> |
<p>Este exemplo mostra como deve ser usada uma template para podermos incluir uma função |
de controlo especifica da template usando directivas</p> |
<p>Mostra ainda que dentro da template o scope é uma fusão dos scopes da ngApp e da propria directiva</p> |
<p>Mostra também como podemos escolher dinamicamente a template ou as funcionalidades dependendo de atributos que passamos à template</p> |
<script> |
var demoApp = angular.module('demoApp', []); |
GLOBAL_BacoAngularAppDependencies.push('demoApp'); |
//demoApp..directive('tpl', function() { |
//ou |
angular.module('demoApp').directive('tpl', function() { |
return { |
restrict: 'E', //A ou E define se é o nome do elemento ou um atributo |
link: function(scope, element, attrs) { |
// concatenating the directory to the ver attr to select the correct excerpt for the day |
scope.teste = "teste"; |
scope.move = function(){ |
scope.teste = "teste2"; |
scope.testeSuper = "testeSuper2"; |
} |
}, |
// passing in contentUrl variable |
templateUrl: function(elem,attrs) { |
return attrs.templatename; |
} |
} |
}); |
demoApp.controller('demoAppController', function ($scope) { |
$scope.testeSuper = "testeSuper"; |
} |
); |
</script> |
<p>campo testeSuper no mainmodule {{testeSuper}}</p> |
<p>Se incluirmos o tpl2.html apenas vamos ter acesso às variaveis do scope da aplicação, neste caso o teste, a template pode estar declarada fora da app, não há problema</p> |
<p>Por acaso neste exemplo temos acesso ao testeSuper porque a directiva adiciona funcionalidade ao scope da aplicação onde é chamada, mas se não chamarmos nenhuma directiva |
a var testeSuper não aparece</p> |
<div ng-include="'tpl2.html'"></div> |
<h2>Invocando a tpl de html com directiva</h2> |
<tpl templatename="tpl.html"></tpl> |
<h2>Invocando a tpl de de javascript com directiva</h2> |
<tpl templatename="tpl2.html"></tpl> |
</div> |
<!--TEMPLATE RECURSIVO--> |
<script type="text/ng-template" id="tpl2.html"> |
<div> |
<h1>Usando um template de Script</h1> |
<p>TESTE</p> |
<p>{{teste}}</p> |
<p>{{testeSuper}}</p> |
<button ng-click="move()">Muda Textos</button> |
</div> |
</script> |
</body> |
</html> |
/branches/grupo1/impl/src/web/examples/angular/directives/tpl.html |
---|
New file |
0,0 → 1,5 |
<h1>Template de HTML</h1> |
<p>TESTE</p> |
<p>{{teste}}</p> |
<p>{{testeSuper}}</p> |
<button ng-click="move()">Muda Textos</button> |
/branches/grupo1/impl/src/web/examples/angular/directives/angular-directive-module.jsp |
---|
New file |
0,0 → 1,36 |
<%-- |
Created by IntelliJ IDEA. |
User: jorgemachado |
Date: 11/11/17 |
Time: 10:20 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<html> |
<head> |
<title></title> |
</head> |
<body ng-app="BacoAngularApp"> |
<jsp:include page="/layout/themes/scripts-default.jsp"/> |
<jsp:include page="/layout/headerTools.jsp"/> |
<div class="container"> |
<h1>Uso de Templates Generalizados e cada um com sua template</h1> |
<p>O caso em questão é a existencia de um esqueleto principal para um modulo (mainmodule)</p> |
<p>O main module inclui templates para cada componente usando o ng-include</p> |
<p>Esse ng-include é referente ao campo @class de cada componente</p> |
<p>vamos incluir esse esqueleto e todas as templates especificas dos nossos modulos</p> |
<p>incluimos ainda as directivas que estiverem nos nossos modulos</p> |
<p>o template do ng-include irá colocar a directiva desejada caso seja necessário</p> |
<p>com a directiva podemos ter funcionalidade de scope associada ao subcomponente, que é desconhecido do main module</p> |
<p>caso necessite o includemodule também tem acesso ao scope da app principal</p> |
<p>o unico requesito é passar ao include module o nome da app onde ele vai inserir as directivas</p> |
<jsp:include page="angular-directive-mainmodule.jsp"/> |
<jsp:include page="angular-directive-includemodule.jsp"/> |
</div> |
</body> |
</html> |
/branches/grupo1/impl/src/web/examples/angular/directives/angular-directive-includemodule.jsp |
---|
New file |
0,0 → 1,60 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<p>Modulo Incluido contem as directivas e os templates necessários</p> |
<p>Este módulo conhece o nome do módulo da App onde vai ser incluido</p> |
<script> |
angular.module("demoApp").directive('tpl', function() { |
var contentUrl; |
return { |
restrict: 'E', //A ou E define se é o nome do elemento ou um atributo |
link: function(scope, element, attrs) { |
// concatenating the directory to the ver attr to select the correct excerpt for the day |
//contentUrl = attrs.templatename + '.html'; |
//console.log(contentUrl); |
scope.teste = "teste"; |
scope.move = function(){ |
scope.teste = "teste2modules"; |
//scope.testeSuper = "testeSuper2modules"; |
angular.element("#demoApp").scope().testeSuper = "testeSuper2modules"; |
} |
scope.mudaCompName = function(comp){ |
comp.name = "NOVO NOME DO COMP MUDADO NA DIRECTIVA"; |
} |
}, |
// passing in contentUrl variable |
templateUrl: function(elem,attrs) { |
return "templateDirectiva"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="directive_class"> |
<div style="border: 1px solid #000000"> |
<h1>DIRECTIVE CLASS TEMPLATE</h1> |
<p>COMP ELEMENTO DIRECTIVA:{{comp.name}}</p> |
<p><input type="text" ng-model="comp.name"></p> |
<tpl></tpl> |
<p>Teste no scope da directiva<p> |
<pre> |
{{teste | json}} |
</pre> |
</div> |
</script> |
<script type="text/ng-template" id="templateDirectiva"> |
<div style="border: 1px solid green"> |
<h1>templateDirectiva</h1> |
<p>TESTE</p> |
<p>{{teste}}</p> |
<p>{{testeSuper}}</p> |
<p>COMP ELEMENTO DIRECTIVA:{{comp.name}}</p> |
<button ng-click="move()">Muda Textos</button> |
<button ng-click="mudaCompName(comp)">Muda COMP NAME</button> |
</div> |
</script> |
/branches/grupo1/impl/src/web/examples/angular/directives/angular-directive-mainmodule.jsp |
---|
New file |
0,0 → 1,48 |
<div id="demoApp" ng-app="demoApp" ng-controller="demoAppController"> |
<script> |
var demoApp = angular.module('demoApp', []); |
GLOBAL_BacoAngularAppDependencies.push('demoApp'); |
demoApp.controller('demoAppController', function ($scope) { |
$scope.testeSuper = "testeSuper"; |
$scope.data = |
{ |
comps : [ |
{ |
"@class" : "directive_class", |
"name" : "componente de teste" |
} |
] |
} |
} |
); |
</script> |
<h1>Campo testeSuper no mainmodule "{{testeSuper}}"</h1> |
<h1>Campo data.comps[0].name no mainmodule "{{data.comps[0].name}}"</h1> |
<h2>Template chamado atraves de um template de classe intermedio</h2> |
<div ng-repeat="comp in data.comps" ng-include="comp['@class']"> |
</div> |
<pre> |
{{testeSuper | json}} |
</pre> |
<pre> |
{{data | json}} |
</pre> |
</div> |
/branches/grupo1/impl/src/web/user/courses/coursereport/templates.jsp |
---|
New file |
0,0 → 1,756 |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultYear" %> |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultSemester" %> |
<%@ page |
import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultUc" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<!-- |
@section objeto com seccoes e componentes |
@optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
--> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_CourseUnitsReportsSection"> |
<div class="sections"> |
<a name="indexCus"></a> |
<span ng-repeat="cu in section.sections" ng-init="cu.taxaAprovacao = 100 * cu.courseUnitEvaluation.numAlunosAprovTotal/(cu.courseUnitEvaluation.numAlunosInscritos - cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao)"> |
<a href="#cu{{$index}}" ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) || cu.taxaAprovacao < 75 || !cu.courseUnitEvaluation.closed || !cu.courseUnitEvaluation.teacherComplete}"> |
{{cu.title}} |
</a> | |
</span> |
<div ng-repeat="cu in section.sections" |
class="section panel-primary"> |
<a name="cu{{$index}}"></a> |
<span ng-if="$index != 0" class="glyphicon glyphicon-backward" ></span><a ng-if="$index != 0" href="#indexCus"> Voltar atrás</a> |
<div class="panel-heading"><h2>{{cu.title}}</h2></div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Estado do Relatório</label></h3></div> |
<div ng-if="cu.courseUnitEvaluation.closed"> |
Entregue e Aceite |
</div> |
<div class="alert-danger" ng-if="cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
Entregue mas não foi aprovado pela comissão |
</div> |
<div class="alert-danger" ng-if="!cu.courseUnitEvaluation.closed && !cu.courseUnitEvaluation.teacherComplete"> |
Não foi entregue pelo docente para validação |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Resultados</label></h3></div> |
<div> |
<table class="tablesorter-blue" width="100%"> |
<tr> |
<th rowspan="2"> |
Nº Alunos Inscritos |
</th> |
<th rowspan="2"> |
Nº de alunos sem elementos de avaliação |
</th> |
<th colspan="5"> |
Nº de alunos aprovados em |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 10 e 13 valores |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 14 e 16 valores |
</th> |
<th colspan="2"> |
Aprovados com a classificação entre 17 e 20 valores |
</th> |
</tr> |
<tr> |
<th>Avaliação de frequência</th> |
<th>Exame Época Normal</th> |
<th>Exame Época Recurso</th> |
<th>Exame Época Especial</th> |
<th>Total</th> |
<th>Nº</th> |
<th>%</th> |
<th>Nº</th> |
<th>%</th> |
<th>Nº</th> |
<th>%</th> |
</tr> |
<tr> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosInscritos}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovFrequencia}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovNormal}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovRecurso}} |
</td> |
<td style="text-align: center"> |
{{cu.courseUnitEvaluation.numAlunosAprovEspecial}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprovTotal}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1013}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1013Percent}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1416}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1416Percent}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1720}} |
</td> |
<td class="text-center"> |
{{cu.courseUnitEvaluation.numAlunosAprov1720Percent}} |
</td> |
</tr> |
</table> |
</div> |
</div> |
<div style="padding-left:20px" > |
<div><h3><label class="label label-primary">Taxa de Aprovação</label></h3></div> |
<div ng-class="{ 'alert-danger': cu.taxaAprovacao < 75 }">{{cu.taxaAprovacao}}%</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação dos resultados quantitativos obtidos pelos estudantes</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoQuantitivos}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação do funcionamento da UC</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoUC}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Percentagem de cumprimento do programa da UC</label></h3></div> |
<div ng-class="{ 'alert-danger': (cu.courseUnitEvaluation.cumprimentoProgramaPercent < 100) }"> |
{{cu.courseUnitEvaluation.cumprimentoProgramaPercent}}% |
</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Apreciação do cumprimento do programa da UC</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma}}</div> |
</div> |
<div style="padding-left:20px"> |
<div><h3><label class="label label-primary">Conclusões</label></h3></div> |
<div>{{cu.courseUnitEvaluation.qualConclusoes}}</div> |
</div> |
</div> |
</div> |
</script> |
<style> |
.dtpstats td, .dtpstats th{ |
text-align: center !important; |
} |
</style> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_reportucsummary_UnitsDtpTable"> |
<div class="sections"> |
<table class="table dtpstats"> |
<thead> |
<tr> |
<th rowspan="2">Unidade Curricular</th> |
<th colspan="2">Planeamento</th> |
<th rowspan="2">Ficha Curricular</th> |
<th rowspan="2">Sumários</th> |
<th colspan="2">Avaliação</th> |
<th rowspan="2">Relatório de Avaliação</th> |
<th rowspan="2">Inquerito Pedagógico</th> |
</tr> |
<tr> |
<th>Conteúdos</th> |
<th>Calendarização</th> |
<th>Enunciados</th> |
<th>Pautas</th> |
</tr> |
</thead> |
<tbody> |
<tr> |
<th colspan="9">Semestre 1</th> |
</tr> |
<tr ng-repeat="dtpStat in comp.semester1.courseUnitDtpStats"> |
<td>{{dtpStat.name}}</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoConteudos }"><input type="checkbox" ng-model="dtpStat.planeamentoConteudos"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoCalendarizacao }"><input type="checkbox" ng-model="dtpStat.planeamentoCalendarizacao"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.ficha }"><input type="checkbox" ng-model="dtpStat.ficha"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.sumarios }"><input type="checkbox" ng-model="dtpStat.sumarios"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoEnunciados }"><input type="checkbox" ng-model="dtpStat.avaliacaoEnunciados"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoPautas }"><input type="checkbox" ng-model="dtpStat.avaliacaoPautas"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.relatorio }"><input type="checkbox" ng-model="dtpStat.relatorio"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.inquerito }"><input type="checkbox" ng-model="dtpStat.inquerito"/></td> |
</tr> |
<tr> |
<th colspan="9">Semestre 2</th> |
</tr> |
<tr ng-repeat="dtpStat in comp.semester2.courseUnitDtpStats"> |
<td>{{dtpStat.name}}</td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoConteudos }"><input type="checkbox" ng-model="dtpStat.planeamentoConteudos"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.planeamentoCalendarizacao }"><input type="checkbox" ng-model="dtpStat.planeamentoCalendarizacao"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.ficha }"><input type="checkbox" ng-model="dtpStat.ficha"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.sumarios }"><input type="checkbox" ng-model="dtpStat.sumarios"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoEnunciados }"><input type="checkbox" ng-model="dtpStat.avaliacaoEnunciados"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.avaliacaoPautas }"><input type="checkbox" ng-model="dtpStat.avaliacaoPautas"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.relatorio }"><input type="checkbox" ng-model="dtpStat.relatorio"/></td> |
<td ng-class="{ 'alert-danger' : !dtpStat.inquerito }"><input type="checkbox" ng-model="dtpStat.inquerito"/></td> |
</tr> |
</tbody> |
</table> |
</div> |
</script> |
<style> |
.learning td |
{ |
font-size: 0.7em; |
} |
.learning td input{ |
width: 50px; |
} |
.learning td input:read-only{ |
width: 50px; |
background-color: #cccccc; |
} |
.learning tr.year td { |
vertical-align: top; |
background-color: #aaaaaa; |
font-weight: bold; |
} |
.learning tr.period td { |
vertical-align: top; |
background-color: #dfdfdf; |
} |
</style> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_UnitsLearningResultsTable"> |
<unitslearningresultstable> |
</unitslearningresultstable> |
</script> |
<script> |
angular.module("courseReportApp").directive('boundModel', function() { |
return { |
require: 'ngModel', |
link: function(scope, elem, attrs, ngModel) { |
scope.$watch(attrs.boundModel, function(newValue, oldValue) { |
if(newValue != oldValue) { |
ngModel.$setViewValue(newValue); |
ngModel.$render(); |
} |
}); |
} |
} |
}); |
angular.module("courseReportApp").directive('unitslearningresultstable', function() { |
return { |
restrict: 'E', |
link: function($scope, element, attrs) |
{ |
$scope.checkedDocuments = []; |
$scope.checkUnit = function(document,collection) |
{ |
if(document.checked) |
{ |
var docContainer = |
{ |
"document" : document, |
"collection" : collection |
} |
$scope.checkedDocuments.push(docContainer); |
} |
else |
{ |
angular.forEach($scope.checkedDocuments, function(documentContainer, key) |
{ |
if(documentContainer.document == document) |
{ |
var index = $scope.checkedDocuments.indexOf(documentContainer); |
$scope.checkedDocuments.splice(index, 1); |
} |
}); |
} |
} |
$scope.changeDocumentCollection = function(collection) |
{ |
angular.forEach($scope.checkedDocuments, function(documentContainer, key) |
{ |
collection.ucs.push(documentContainer.document); |
delete documentContainer.document.checked; |
}); |
angular.forEach($scope.checkedDocuments, function(documentContainer, key) |
{ |
var index = documentContainer.collection.ucs.indexOf(documentContainer.document); |
documentContainer.collection.ucs.splice(index, 1); |
}); |
$scope.checkedDocuments = []; |
} |
$scope.avg = function(field,container, childs) |
{ |
if(!childs || childs.length == 0) |
return 0; |
var sum = 0; |
var c; |
for(c in childs) |
{ |
if(childs[c] && childs[c][field]) |
sum += 1*childs[c][field]; |
} |
container[field] = sum / childs.length; |
return container[field]; |
} |
$scope.percent = function(n,total) |
{ |
if(!n || n == 0 || !total || total == 0) |
return 0; |
return 100 * n / total; |
} |
$scope.reprovados = function(comp) |
{ |
if(comp.alunosInscritos && comp.semElementos && comp.aprovados) |
return comp.alunosInscritos - comp.semElementos - comp.aprovados; |
return 0; |
} |
$scope.removeComponent = function(index,list) |
{ |
list.splice(index,1); |
} |
$scope.hasYearUnits = function(year) |
{ |
for(s in year.semesters) |
{ |
if(year.semesters[s].ucs && year.semesters[s].ucs.length > 0) |
return true; |
} |
return false; |
} |
$scope.isInvalidAnfHaveUcs = function(year,years,index) |
{ |
if(year.ano > 0) |
return false; |
var s; |
for(s in year.semesters) |
{ |
if(year.semesters[s].ucs && year.semesters[s].ucs.length > 0) |
return true; |
} |
years.splice(index,1); |
return false; |
} |
$scope.addUc = function(semestre) |
{ |
semestre.ucs.push( |
{ |
"@class" : "<%=UnitsLearningResultUc.class.getName()%>", |
manual : true, |
periodo : semestre.semestre, |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
sigesCode : 0 |
} |
); |
} |
$scope.addAno = function(comp) |
{ |
if(!comp.years) |
comp.years = []; |
comp.years.push( |
{ |
ano : 1, |
"@class" : "<%=UnitsLearningResultYear.class.getName()%>", |
manual : true, |
"alunosInscritos": 0, |
"aprovados": 0, |
"aprovados1013": 0, |
"aprovados1013Percent": 0, |
"aprovados1416": 0, |
"aprovados1416Percent": 0, |
"aprovados1720": 0, |
"aprovados1720Percent": 0, |
"aprovadosPercent": 0, |
"cumprimentoProgramaPercent": 0, |
"reprovados": 0, |
"reprovadosPercent": 0, |
"semElementos": 0, |
"semElementosPercent": 0, |
semesters : [ |
{ |
"@class" : "<%=UnitsLearningResultSemester.class.getName()%>", |
manual : true, |
semestre : "S1", |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
ucs : [] |
}, |
{ |
"@class" : "<%=UnitsLearningResultSemester.class.getName()%>", |
manual : true, |
semestre: "S2", |
alunosInscritos: 0, |
aprovados: 0, |
aprovados1013: 0, |
aprovados1013Percent: 0, |
aprovados1416: 0, |
aprovados1416Percent: 0, |
aprovados1720: 0, |
aprovados1720Percent: 0, |
aprovadosPercent: 0, |
cumprimentoProgramaPercent: 0, |
reprovados: 0, |
reprovadosPercent: 0, |
semElementos: 0, |
semElementosPercent: 0, |
ucs : [] |
} |
] |
} |
); |
} |
}, |
templateUrl: function(elem,attrs) { |
return "unitslearningresultstable"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="unitslearningresultstable"> |
<div class="sections"> |
<button class="btn btn-success" ng-click="addAno(comp)"><span class="glyphicon glyphicon-plus"></span> Ano Manual</button> |
<table class="table learning"> |
<thead> |
<tr> |
<th rowspan="2">Mover</th> |
<th rowspan="2">Código</th> |
<th rowspan="2">Unidade Curricular</th> |
<th rowspan="2">Cumprimento do Programa</th> |
<th rowspan="2">Alunos Inscritos</th> |
<th colspan="2">Sem Elementos</th> |
<th colspan="2">Reprovados</th> |
<th colspan="2">Aprovados</th> |
<th colspan="2">Aprovados 10-13</th> |
<th colspan="2">Aprovados 14-16</th> |
<th colspan="2">Aprovados 17-20</th> |
</tr> |
<tr> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
<th>N</th> |
<th>%</th> |
</tr> |
</thead> |
<tbody> |
<tr colspan="17" ng-if="false" ng-repeat-start="year in comp.years"></tr> |
<tr class="year"> |
<td colspan="3" ng-if="year.ano > 0"> |
<button ng-disabled="hasYearUnits(year)" class="btn btn-danger btn-xs" ng-click="removeComponent($index,comp.years)"><span class="glyphicon glyphicon-remove"></span></button> |
<span ng-if="!year.manual">{{year.ano}}ª ano</span> |
<span ng-if="year.manual"> |
<select ng-model="year.ano" ng-options="c.v as c.n for c in [{v:1,n:'1º Ano'},{v:2,n:'2º Ano'},{v:3,n:'3º Ano'},{v:4,n:'4º Ano'},{v:5,n:'5º Ano'}]"> |
</select> |
</span> |
</td> |
<td colspan="3" style="font-size: 1.0em !important" ng-if="isInvalidAnfHaveUcs(year,comp.years,$index)"> |
Unidades que não constam do plano (Verifique a situação com os serviços Académicos antes de continuar) |
poderão constar de um plano antigo ou ter o código siges desatualizado. |
</td> |
<td><input readonly="true" type="number" ng-model="year.cumprimentoProgramaPercent" bound-model="avg('cumprimentoProgramaPercent',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.alunosInscritos" bound-model="avg('alunosInscritos',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.semElementos" bound-model="avg('semElementos',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.semElementosPercent" bound-model="percent(year.semElementos,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.reprovados" bound-model="reprovados(year)"></td> |
<td><input readonly="true" type="number" ng-model="year.reprovadosPercent" bound-model="percent(year.reprovados,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados" bound-model="year.aprovados1013*1 + year.aprovados1416*1 + year.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovadosPercent" bound-model="percent(year.aprovados,year.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1013" bound-model="avg('aprovados1013',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1013Percent" bound-model="percent(year.aprovados1013,year.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1416" bound-model="avg('aprovados1416',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1416Percent" bound-model="percent(year.aprovados1416,year.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1720" bound-model="avg('aprovados1720',year,year.semesters)"></td> |
<td><input readonly="true" type="number" ng-model="year.aprovados1720Percent" bound-model="percent(year.aprovados1720,year.aprovados)"></td> |
</tr> |
<tr ng-if="false" ng-repeat-start="s in year.semesters" ></tr> |
<tr class="period" ng-if="year.ano > 0 || s.ucs.length > 0"> |
<td colspan="3" class="period">Semestre {{s.semestre}} <button ng-click="changeDocumentCollection(s)" data-toggle="tooltip" title="Mover unidades para aqui" class="btn btn-xs btn-warning" ng-show="checkedDocuments.length"><span class="glyphicon glyphicon-arrow-left"></span></button> |
<button class="btn btn-success pull-right" ng-click="addUc(s)"><span class="glyphicon glyphicon-plus"></span> UC Manual</button> |
</td> |
<td><input readonly="true" type="number" ng-model="s.cumprimentoProgramaPercent" bound-model="avg('cumprimentoProgramaPercent',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.alunosInscritos" bound-model="avg('alunosInscritos',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.semElementos" bound-model="avg('semElementos',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.semElementosPercent" bound-model="percent(s.semElementos,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.reprovados" bound-model="reprovados(s)"></td> |
<td><input readonly="true" type="number" ng-model="s.reprovadosPercent" bound-model="percent(s.reprovados,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados" bound-model="s.aprovados1013*1 + s.aprovados1416*1 + s.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovadosPercent" bound-model="percent(s.aprovados,s.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1013" bound-model="avg('aprovados1013',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1013Percent" bound-model="percent(s.aprovados1013,s.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1416" bound-model="avg('aprovados1416',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1416Percent" bound-model="percent(s.aprovados1416,s.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1720" bound-model="avg('aprovados1720',s,s.ucs)"></td> |
<td><input readonly="true" type="number" ng-model="s.aprovados1720Percent" bound-model="percent(s.aprovados1720,s.aprovados)"></td> |
</tr> |
<tr ng-repeat="u in s.ucs" ng-class="{'alert-danger': u.error}" > |
<td><input ng-model="u.error" type="hidden" bound-model="u.alunosInscritos < (u.aprovados*1 + u.semElementos*1)"> |
<input ng-model="u.checked" ng-click="checkUnit(u,s)" type="checkbox"></td> |
<td><input type="text" ng-readonly="!u.manual || u.manual == false" ng-model="u.sigesCode"></td> |
<td> |
<input type="text" style="width: 150px" ng-if="!(!u.manual || u.manual == false)" ng-model="u.name"> |
<span ng-if="(!u.manual || u.manual == false)">{{u.name}}</span> |
<button class="btn btn-danger btn-xs pull-right" ng-if="!(!u.manual || u.manual == false)" ng-click="removeComponent(index,s.ucs)"><span class="glyphicon glyphicon-remove"></span></button> |
</td> |
<td><input type="number" ng-model="u.cumprimentoProgramaPercent"></td> |
<td><input type="number" ng-model="u.alunosInscritos"></td> |
<td><input type="number" ng-model="u.semElementos"></td> |
<td><input readonly="true" type="number" ng-model="u.semElementosPercent" bound-model="percent(u.semElementos,u.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="u.reprovados" bound-model="reprovados(u)"></td> |
<td><input readonly="true" type="number" ng-model="u.reprovadosPercent" bound-model="percent(u.reprovados,u.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados" bound-model="u.aprovados1013*1 + u.aprovados1416*1 + u.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovadosPercent" bound-model="percent(u.aprovados,u.alunosInscritos)"></td> |
<td><input type="number" ng-model="u.aprovados1013"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1013Percent" bound-model="percent(u.aprovados1013,u.aprovados)"></td> |
<td><input type="number" ng-model="u.aprovados1416"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1416Percent" bound-model="percent(u.aprovados1416,u.aprovados)"></td> |
<td><input type="number" ng-model="u.aprovados1720"></td> |
<td><input readonly="true" type="number" ng-model="u.aprovados1720Percent" bound-model="percent(u.aprovados1720,u.aprovados)"></td> |
</tr> |
<tr ng-if="false" ng-repeat-end></tr> |
<tr ng-if="false" ng-repeat-end></tr> |
<tr class="year"> |
<td colspan="3">Resultados Globais</td> |
<td><input readonly="true" type="number" ng-model="comp.cumprimentoProgramaPercent" bound-model="avg('cumprimentoProgramaPercent',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.alunosInscritos" bound-model="avg('alunosInscritos',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.semElementos" bound-model="avg('semElementos',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.semElementosPercent" bound-model="percent(comp.semElementos,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.reprovados" bound-model="reprovados(comp)"></td> |
<td><input readonly="true" type="number" ng-model="comp.reprovadosPercent" bound-model="percent(comp.reprovados,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados" bound-model="comp.aprovados1013*1 + comp.aprovados1416*1 + comp.aprovados1720*1"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovadosPercent" bound-model="percent(comp.aprovados,comp.alunosInscritos)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1013" bound-model="avg('aprovados1013',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1013Percent" bound-model="percent(comp.aprovados1013,comp.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1416" bound-model="avg('aprovados1416',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1416Percent" bound-model="percent(comp.aprovados1416,comp.aprovados)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1720" bound-model="avg('aprovados1720',comp,comp.years)"></td> |
<td><input readonly="true" type="number" ng-model="comp.aprovados1720Percent" bound-model="percent(comp.aprovados1720,comp.aprovados)"></td> |
</tr> |
</tbody> |
</table> |
<%--<pre class="code">{{ comp | json }}</pre>--%> |
</div> |
</script> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_GlobalLearningResultsChartImg"> |
<globallearningresultschartimg> |
</globallearningresultschartimg> |
</script> |
<script> |
angular.module("courseReportApp").directive('globallearningresultschartimg', function() { |
return { |
restrict: 'E', |
link: function($scope, element, attrs) |
{ |
$scope.generateChart = function(comp) |
{ |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateGlobalLearningResultsChartImg", |
{ |
"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 "globallearningresultschartimg"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="globallearningresultschartimg"> |
<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> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_GlobalLearningResultsChartYearImg"> |
<globallearninglesultschartyearimg> |
</globallearninglesultschartyearimg> |
</script> |
<script> |
angular.module("courseReportApp").directive('globallearninglesultschartyearimg', 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 "globallearningresultschartimg"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="globallearninglesultschartyearimg"> |
<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/grupo1/impl/src/web/user/utils/documentsBuilder.jsp |
---|
1,5 → 1,9 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<style> |
.sections |
{ |
padding-left: 20px; |
} |
.buttonTools |
{ |
border: 1px solid gray; |
23,7 → 27,12 |
} |
</style> |
<!--Require templateObj--> |
<script type="text/ng-template" id="callDocumentTemplate"> |
<div ng-include="class2id(templateObj)"></div> |
</script> |
<%-- |
customPane Need component customPane in variable customPane |
docAppSelector selector usualy an html ID for ng-app example #docReport |
46,64 → 55,63 |
<div class="clearfix" ng-repeat="subComp in comp.components" ng-init="parent=comp;comp=subComp" ng-include="class2id(subComp)"> |
</div> |
<div> |
</div> |
</div></div> |
</script> |
<script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_ImageComponent"> |
<div class="imageComponent component"> |
<div ng-if="parent['@class']=='pt.estgp.estgweb.utils.documentBuilder.CustomPane'" class="buttonTools clearfix"> |
<button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
<span class="glyphicon glyphicon-remove"></span> |
</button> |
<label>Componente de Imagem (Use esta funcinalidade para adicionar gráficos ou tabelas que ache necessárias)</label> |
<button class="btn btn-danger pull-right" type="button" ng-click="removeComponent($index,parent.components)"> |
<span class="glyphicon glyphicon-remove"></span> |
</button> |
<label>Componente de Imagem (Use esta funcinalidade para adicionar gráficos ou tabelas que ache necessárias)</label> |
</div> |
<div class="componentBody" ng-if="comp['@class']=='pt.estgp.estgweb.utils.documentBuilder.ImageComponent'"> |
<div class="form-group clearfix" ng-if="comp.image.identifier"> |
<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 class="componentBody"> |
<div class="form-group clearfix" ng-if="comp.image.identifier"> |
<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 class="form-group clearfix"> |
<div class="col-md-2 control-label"> |
<a class="btn btn-default" href="#" ng-model="comp" |
data-title="Escolha Imagem" |
data-showmetafields="false" |
data-confirmonupload="true" |
data-toggle="modal" |
data-target="#filesUploadModal" |
data-multiple="false" |
data-allowed-extensions="jpg,png,gif" |
data-callback-target-function="angular.element($('{{docAppSelector}}')).scope().callbackUploadedFiles"> |
</div> |
<div class="form-group clearfix"> |
<div class="col-md-2 control-label"> |
<a class="btn btn-default" href="#" ng-model="comp" |
data-title="Escolha Imagem" |
data-showmetafields="false" |
data-confirmonupload="true" |
data-toggle="modal" |
data-target="#filesUploadModal" |
data-multiple="false" |
data-allowed-extensions="jpg,png,gif" |
data-callback-target-function="angular.element($('{{docAppSelector}}')).scope().callbackUploadedFiles"> |
<span ng-if="comp.image.identifier"> |
Substituir Imagem |
</span> |
<span ng-if="!(comp.image.identifier)"> |
<span ng-if="!(comp.image.identifier)"> |
Carregar Imagem |
</span> |
<span class="glyphicon glyphicon-upload"/> |
<span class="glyphicon glyphicon-upload"/> |
</a> |
</a> |
</div> |
<div class="col-md-10"> |
<div ng-if="!(comp.image.identifier)"> |
Clique em carregar imagens e escolha uma imagem para adicionar nesta secção. |
</div> |
<div class="col-md-10"> |
<div ng-if="!(comp.image.identifier)"> |
Clique em carregar imagens e escolha uma imagem para adicionar nesta secção. |
</div> |
<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 style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
</div> |
(Se desejar altere o tamanho da imagem arrastando no canto inferior direito) |
</center> |
</div> |
<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 style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
</div> |
(Se desejar altere o tamanho da imagem arrastando no canto inferior direito) |
</center> |
</div> |
</div> |
</div> |
</div> |
</div> |
135,4 → 143,33 |
</div> |
</div> |
</div> |
</script> |
<!-- |
@section objeto com seccoes e componentes |
@optional @chapter capitulo do documento para esta seccao para contcatenar às subsections |
--> |
<script type="text/ng-template" id="pt_estgp_estgweb_utils_documentBuilder_DocumentSection"> |
<div class="sections"> |
<ul class="nav nav-tabs"> |
<li ng-model="section" class="separatorSectionNav" |
ng-class="{ active : subSection.active}" |
ng-repeat="subSection in section.sections"> |
<a ng-click="showSep(section,subSection)"> {{$chapter}}{{$index+1}} - {{subSection.title}}</a> |
</li> |
</ul> |
<div ng-model="subSection" |
ng-class="{ hidden: !subSection.active }" |
ng-repeat="subSection in section.sections" |
class="separatorSection clearfix"> |
<div ng-repeat="comp in subSection.components" |
ng-include="class2id(comp)"> |
</div> |
<div ng-if="subSection.sections" |
ng-init="section=subSection;$chapter=$chapter+($index+1)+'.'" |
ng-include="class2id(subSection)"> |
</div> |
</div> |
</div> |
</script> |
/branches/grupo2/impl/conf/berserk/sd.xml |
---|
4044,4 → 4044,22 |
</filterChains> |
</service> |
<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>generateGenerateGlobalLearningResultsChartYearImg</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/branches/grupo2/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
448,11 → 448,41 |
return view.toJson(); |
} |
public String generateGenerateGlobalLearningResultsChartYearImg(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); |
GlobalLearningResultsChartImg chartImg = (GlobalLearningResultsChartImg) learningGlobalAnalysisSection.findDocComponent(GlobalLearningResultsChartImg.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(); |
} |
/****************************************************************************/ |
/* |
/branches/grupo2/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
42,5 → 42,14 |
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); |
} |
} |
/branches/grupo2/impl/src/web/user/courses/coursereport/templates.jsp |
---|
701,7 → 701,7 |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateGlobalLearningResultsChartImg", |
"generateGlobalLearningResultsChartYearImg", |
{ |
"courseReportDocument" : BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report) |
}, |
/branches/grupo2/impl/src/web/user/utils/documentsBuilder.jsp |
---|
55,9 → 55,6 |
<div class="clearfix" ng-repeat="subComp in comp.components" ng-init="parent=comp;comp=subComp" ng-include="class2id(subComp)"> |
</div> |
<div> |
</div> |
</div> |
</div> |
</script> |
175,4 → 172,4 |
</div> |
</div> |
</div> |
</script> |
</script> |