/branches/grupo3/impl/conf/berserk/sd.xml |
---|
4065,6 → 4065,24 |
</filterChains> |
</service> |
<!-- Grafico 3--> |
<service> |
<name>CourseReportGenerateLearningResultsChartSem</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>generateLearningResultsChartSem</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
4096,6 → 4114,7 |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="CanEditCourseReportEdit2"/> |
</filterChains> |
</service> |
/branches/grupo3/impl/conf/berserk/fd.xml |
---|
292,15 → 292,24 |
<filter> |
<!--Require parameter with questionario id--> |
<name>CheckRepositoryCollectionManager</name> |
<implementationClass>pt.estgp.estgweb.filters.filters.CheckRepositoryCollectionManager</implementationClass> |
<description>verifica se a colecção tem como manager o user logado</description> |
<isTransactional>false</isTransactional> |
</filter> |
<!--Require parameter with questionario id--> |
<name>CheckRepositoryCollectionManager</name> |
<implementationClass>pt.estgp.estgweb.filters.filters.CheckRepositoryCollectionManager</implementationClass> |
<description>verifica se a colecção tem como manager o user logado</description> |
<isTransactional>false</isTransactional> |
</filter> |
<!-- CanEditCourseReportEdit --> |
<filter> |
<!--Require parameter with questionario id--> |
<name>CanEditCourseReportEdit</name> |
<implementationClass>pt.estgp.estgweb.filters.filters.CanEditCourseReportEdit</implementationClass> |
<description>verifica se pode ver pode editar o relatorio de curso</description> |
<isTransactional>false</isTransactional> |
</filter> |
</filterDefinitions> |
/branches/grupo3/impl/conf/berserk/fcd.xml |
---|
556,7 → 556,16 |
<filterClass>pt.estgp.estgweb.filters.chains.AdminControlFilter</filterClass> |
</filterChain> |
<!-- Filtro editar relatorio de curso --> |
<filterChain> |
<name>CanEditCourseReportEdit2</name> |
<expression>CanEditCourseReportEdit("courseCode")</expression> |
<description>Admins Control Chain</description> |
<invocationTiming>1</invocationTiming> |
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass> |
</filterChain> |
<filterChain> |
<name>RoleAddRemoveManager</name> |
<expression>AuthenticatedUsers && (RoleUsers("admin") || RoleUsers("all") || RoleUsers("servicesRolesManagement") || ( RoleUsers("event_class_manager") && ParameterValuePrefixCheck("role_2_addRemove","event_manager_") ) )</expression> |
<description>Admins Control Chain</description> |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
13,6 → 13,7 |
import pt.estgp.estgweb.services.courses.coursereport.CourseReportUtils; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.*; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.CourseUnitSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.LearningAnalysisSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.LearningGlobalAnalysisSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.*; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.reportucsummary.CourseUnitDtpStat; |
483,10 → 484,46 |
} |
/* Grafico 3 */ |
public String generateLearningResultsChartSem(String reportDocumentJson, UserSession session) throws IOException { |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
LearningResultsSection learningResultsSection = (LearningResultsSection) reportDocument.findDocumentSection(LearningResultsSection.class); |
LearningAnalysisSection learningAnalysisSection = (LearningAnalysisSection) learningResultsSection.findSection(LearningAnalysisSection.class); |
/* alt */ |
LearningResultsChartSem chartImg = (LearningResultsChartSem) learningAnalysisSection.findDocComponent(LearningResultsChartSem.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(); |
} |
/* Guardar report */ |
public String saveCourseReportDoc(String reportDocumentJson,UserSession session) throws IOException { |
public String saveCourseReportDoc(String reportDocumentJson, UserSession session) throws IOException { |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
508,18 → 545,20 |
/* Ler o relatorio */ |
public String loadCourseReportDoc(/*UserSession session, */String year, String courseCode) throws IOException { |
public String loadCourseReportDoc(String courseCode, String year, UserSession session ) throws IOException { |
List<CourseYear> courseYr = DaoFactory.getCourseYearDaoImpl().findCourseYear(courseCode, year); |
String courseReport = null; |
String courseReport = null; |
if(!courseYr.isEmpty()){ |
courseReport = courseYr.get(0).getCourseReportDocument(); |
} |
if(courseReport == null){ |
try{ |
courseReport = new CourseReportServices().createNewCourseReportDocument(courseCode, year).toString(); |
courseReport = new CourseReportServices().createNewCourseReportDocument(courseCode, year).toJson(); |
//saveCourseReportDoc(courseReport, session); |
} catch (JSONException e) { |
e.printStackTrace(); |
} |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java |
---|
53,6 → 53,7 |
chart.setBackgroundPaint(Color.WHITE); |
// Legenda |
chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN,30)); |
chart.setPadding(new RectangleInsets(0,10F,30F,20F)); |
CategoryPlot plot = (CategoryPlot) chart.getPlot(); |
plot.setBackgroundPaint(Color.WHITE); |
62,10 → 63,6 |
plot.getDomainAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
plot.getRangeAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
RectangleInsets chartRectangle = new RectangleInsets(0,0,30F,0); |
chart.setPadding(chartRectangle); |
StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer(); |
renderer.setSeriesPaint(0, new Color(237, 132, 0)); |
renderer.setSeriesPaint(1, new Color(255, 250, 29)); |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/LearningResultsChartSem.java |
---|
4,15 → 4,17 |
import jomm.utils.MimeTypeGuesser; |
import org.jfree.chart.ChartFactory; |
import org.jfree.chart.JFreeChart; |
import org.jfree.chart.block.BlockBorder; |
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; |
import org.jfree.chart.plot.CategoryPlot; |
import org.jfree.chart.plot.PlotOrientation; |
import org.jfree.chart.renderer.category.StackedBarRenderer; |
import org.jfree.data.category.DefaultCategoryDataset; |
import org.jfree.ui.RectangleEdge; |
import org.jfree.ui.RectangleInsets; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
import pt.estgp.estgweb.utils.Globals; |
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent; |
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent; |
import pt.estgp.estgweb.web.controllers.utils.FileUploaded; |
import javax.imageio.ImageIO; |
26,7 → 28,7 |
/** |
* Created by jorgemachado on 31/10/17. |
*/ |
public class LearningResultsChartSem extends AutoImageWraperComponent |
public class LearningResultsChartSem extends ImageComponent |
{ |
String semesterCode; |
45,48 → 47,52 |
public void setSemesterCode(String semesterCode) { |
this.semesterCode = semesterCode; |
} |
/* |
public FileUploaded generateChart2tmp(UnitsLearningResultsTable results, CourseReportDocument courseReportDocument) throws IOException { |
List<UnitsLearningResultYear> years = results.getYears(); |
List<UnitsLearningResultSemester> semester; |
List<UnitsLearningResultUc> uc; |
String tempName = BytesUtils.generateHexKey() + ".png"; |
DefaultCategoryDataset data = new DefaultCategoryDataset(); |
for (int i =0; i<years.size(); i++){ |
data.addValue(new Double(years.get(i).getAprovados1013Percent()), "Aprovados 10-13", years.get(i).getAno() + "º ano"); |
data.addValue(new Double(years.get(i).getAprovados1416Percent()), "Aprovados 14-16", years.get(i).getAno() + "º ano"); |
data.addValue(new Double(years.get(i).getAprovados1720Percent()), "Aprovados 17-20", years.get(i).getAno() + "º ano"); |
for (int i=0; i<years.size(); i++){ |
semester = years.get(i).semesters; |
for (int k = 0; k < semester.size(); k++){ |
uc = semester.get(k).ucs; |
for (int j = 0; j < uc.size(); j++) { |
data.addValue(new Double(uc.get(j).getSemElementosPercent()), "Sem elementos", uc.get(j).getName()); |
data.addValue(new Double(uc.get(j).getReprovadosPercent()), "Reprovados ", uc.get(j).getName()); |
data.addValue(new Double(uc.get(j).getAprovadosPercent()), "Aprovados", uc.get(j).getName()); |
} |
} |
} |
// Total |
data.addValue(new Double(results.getAprovados1013Percent()), "Aprovados 10-13", "Total"); |
data.addValue(new Double(results.getAprovados1416Percent()), "Aprovados 14-16", "Total"); |
data.addValue(new Double(results.getAprovados1720Percent()), "Aprovados 17-20", "Total"); |
JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null, data, PlotOrientation.HORIZONTAL,true, false, false); |
JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null, data, PlotOrientation.VERTICAL,true, false, false); |
chart.setBackgroundPaint(Color.WHITE); |
// Legenda |
chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN,30)); |
chart.getLegend().setPosition(RectangleEdge.TOP); |
chart.getLegend().setFrame(BlockBorder.NONE); |
chart.getLegend().setItemLabelPadding(new RectangleInsets(0,10F,25F,20F)); |
CategoryPlot plot = (CategoryPlot) chart.getPlot(); |
plot.setBackgroundPaint(Color.WHITE); |
plot.setRangeGridlinePaint(Color.GRAY); |
plot.setRangeGridlinesVisible(true); |
plot.setRangeGridlineStroke(new BasicStroke(1.0f)); |
plot.setDomainGridlinesVisible(false); |
plot.setOutlineVisible(false); |
//Remover label do eixo |
plot.getRangeAxis().setTickLabelsVisible(false); |
plot.getDomainAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
plot.getRangeAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30)); |
RectangleInsets chartRectangle = new RectangleInsets(0,0,30F,0); |
chart.setPadding(chartRectangle); |
StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer(); |
renderer.setSeriesPaint(0, new Color(237, 132, 0)); |
renderer.setSeriesPaint(1, new Color(255, 250, 29)); |
renderer.setSeriesPaint(2, new Color(93,173, 21)); |
renderer.setMaximumBarWidth(.2); |
renderer.setSeriesPaint(0, new Color(170, 165, 173)); |
renderer.setSeriesPaint(1, new Color(255, 6, 4)); |
renderer.setSeriesPaint(2, new Color(8, 237, 0)); |
renderer.setMaximumBarWidth(0.1); |
//Percentagem dentro das barras |
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("#.#'%'"))); |
107,6 → 113,6 |
fileUploaded.setFileSize(output.length()); |
fileUploaded.setExtension("png"); |
return fileUploaded; |
}*/ |
} |
} |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/filters/filters/CanEditCourseReportEdit.java |
---|
New file |
0,0 → 1,54 |
package pt.estgp.estgweb.filters.filters; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.CourseImpl; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.UserImpl; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.utils.ReflectionBean; |
import pt.estgp.estgweb.filters.chains.LoadControlFilter; |
import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException; |
import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException; |
import pt.estgp.estgweb.filters.filters.utils.LoadObjectFromParameters; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
import pt.estgp.estgweb.utils.Globals; |
import pt.utl.ist.berserk.ServiceRequest; |
import pt.utl.ist.berserk.ServiceResponse; |
import pt.utl.ist.berserk.logic.filterManager.FilterParameters; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException; |
public class CanEditCourseReportEdit extends LoadControlFilter |
{ |
private static final Logger logger = Logger.getLogger(IsTeacherInCourseUnitUsersClassBean.class); |
public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, Exception |
{ |
UserSession userSession = (UserSession) request.getServiceParameters().getParameter(Globals.USER_SESSION_KEY); |
if(userSession.getUser() == null) |
{ |
logger.info("try access restricted area:" + request.getRequester()); |
throw new NeedAuthenticationException(); |
} |
if(userSession.getUser().isSuperuser()) |
return; |
System.out.println((String) filterParameters.getParameter(0)); |
String courseCode = (String) request.getServiceParameters().getParameter((String) filterParameters.getParameter(0)); |
CourseImpl course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
if(!course.isFromCourseCommission(userSession.getUser())){ |
logger.warn(userSession.getUser().getUsername() + ": try access restricted area"); |
throw new AccessDeniedOperationException("fail.owner"); |
} |
} |
} |
/branches/grupo3/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
1,9 → 1,12 |
package pt.estgp.estgweb.web.controllers.courses; |
import jomm.dao.impl.AbstractDao; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.json.JSONObject; |
import pt.estgp.estgweb.domain.CourseImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
45,44 → 48,44 |
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}); |
new Object[]{courseReportDocument,}); |
return new JSONObject(json); |
} |
/* 7/12/2017 */ |
public JSONObject saveCourseReportDoc(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable { |
public JSONObject generateLearningResultsChartSem(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), |
"SaveCourseReportDoc", |
"CourseReportGenerateLearningResultsChartSem", |
new Object[]{courseReportDocument}); |
return new JSONObject(json); |
} |
/* */ |
public JSONObject loadCourseReportDoc(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable { |
/* 7/12/2017 */ |
public JSONObject saveCourseReportDoc(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), |
"LoadCourseReportDoc", |
"SaveCourseReportDoc", |
new Object[]{courseReportDocument}); |
return new JSONObject(json); |
} |
public ActionForward startEdit( |
ActionMapping mapping, |
ActionForm form, |
90,8 → 93,22 |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
String courseCode = request.getParameter("courseCode"); |
String year = request.getParameter("year"); |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseImpl courseImpl = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
request.setAttribute("course", courseImpl); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
IServiceManager sm = ServiceManager.getInstance(); |
String courseReport = (String) sm.execute(RequestUtils.getRequester(request, response), |
"LoadCourseReportDoc", |
new Object[]{courseCode, year}, |
new String[]{"courseCode", "year"}); |
request.setAttribute("courseReportJson", courseReport); |
return mapping.findForward("pagina"); |
} |
} |
/branches/grupo3/impl/src/web/user/courses/coursereport/templates.jsp |
---|
27,13 → 27,13 |
<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><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 |
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 |
647,12 → 647,14 |
}, |
templateUrl: function(elem,attrs) { |
return "globallearningresultschartimg"; |
return "chartTemplate"; |
} |
} |
}); |
</script> |
<script type="text/ng-template" id="globallearningresultschartimg"> |
<script type="text/ng-template" id="chartTemplate"> |
<div class="imageComponent component"> |
<div class="componentBody"> |
684,13 → 686,12 |
</script> |
<!-- Grafico 2 --> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_GlobalLearningResultsChartYearImg"> |
<globallearningresultschartyearimg> |
</globallearningresultschartyearimg> |
</script> |
<!-- Grafico 2 --> |
<script> |
angular.module("courseReportApp").directive('globallearningresultschartyearimg', function() { |
702,12 → 703,12 |
{ |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateGlobalLearningResultsChartYearImg", |
{ |
"courseReportDocument" : BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report) |
}, |
"#courseReportApp", |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateGlobalLearningResultsChartYearImg", |
{ |
"courseReportDocument" : BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report) |
}, |
"#courseReportApp", |
function(repositoryFile4JsonView) |
{ |
comp.image = repositoryFile4JsonView; |
721,38 → 722,50 |
}, |
templateUrl: function(elem,attrs) { |
return "globallearningresultschartimg"; |
return "chartTemplate"; |
} |
} |
}); |
</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 Grafico</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> |
<!-- Grafico 3 --> |
<script type="text/ng-template" id="pt_estgp_estgweb_services_courses_coursereport_documentmodel_learningresults_components_LearningResultsChartSem"> |
<learningresultschartsem> |
</learningresultschartsem> |
</script> |
<script> |
angular.module("courseReportApp").directive('learningresultschartsem', function() { |
return { |
restrict: 'E', |
link: function($scope, element, attrs) |
{ |
$scope.generateChart = function(comp) |
{ |
widgetCallWithActionParameters( |
"<%=request.getContextPath()%>/user/courseReport.do", |
"generateLearningResultsChartSem", |
{ |
"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 "chartTemplate"; |
} |
} |
}); |
</script> |
/branches/grupo3/impl/src/web/user/utils/reportEdit.jsp |
---|
1,14 → 1,4 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.utils.documentBuilder.TextComponent" %> |
<%@ page import="pt.estgp.estgweb.utils.documentBuilder.ImageComponent" %> |
<%@ page import="pt.estgp.estgweb.services.courses.CourseReportServices" %> |
<%@ page import="pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument" %> |
<%@ page import="org.json.JSONException" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ page import="pt.estgp.estgweb.domain.User" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
95,33 → 85,6 |
} |
</script> |
<% |
String courseCode = request.getParameter("courseCode"); |
String year = request.getParameter("year"); |
String relatas = null; |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseImpl courseImpl = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
request.setAttribute("course",courseImpl); |
CourseReportDocument courseReport = null; |
try { |
//eu |
//relatas = new CourseReportServices().loadCourseReportDoc(,year,courseCode); |
//if (relatas.isEmpty()) |
courseReport = new CourseReportServices().createNewCourseReportDocument(courseCode, year); |
//eu |
courseReport = courseReport.fromJson(relatas); |
} catch (Throwable e) { |
System.out.println(e); |
e.printStackTrace(); |
} |
String courseReportJson = courseReport.toJson(); |
request.setAttribute("courseDocumentJson",courseReportJson); |
request.setAttribute("courseDocument",courseReport); |
%> |
<%--<a href="javascript:demoFromHTML()" class="button">Run Code</a>--%> |
<div class="container-fluid"> |
148,8 → 111,6 |
<p><b class="label-info">Escola:</b> ${course.department.courseSchool.name}</p> |
<script> |
//Especifico da aplicacao |
181,7 → 142,7 |
{ |
$scope.docAppSelector = "#courseReportApp"; |
$scope.report = <%=courseReportJson%> |
$scope.report = ${courseReportJson} |
$scope.resize = function(evt,ui,comp) { |
//console.log (evt,ui); |
355,7 → 316,7 |
<div class="form-vertical"> |
<div id="courseReportApp" ng-app="courseReportApp" ng-controller="courseReportAppController"> |
<div class="web-mensages"></div> |
<button class="btn " ng-click="saveCourseReportDoc()">Save</button> |
<button class="btn" ng-click="saveCourseReportDoc()">Save</button> |
<div ng-init="section=report;" ng-include="'pt_estgp_estgweb_utils_documentBuilder_DocumentSection'"> |
372,8 → 333,4 |
</div><!--Panel--> |
</div><!--container-fluid--> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</div><!--container-fluid--> |
/branches/grupo5/impl/conf/berserk/fd.xml |
---|
305,7 → 305,7 |
<description> |
Checks if the requester is teacher in course commission |
</description> |
<isTransactional>true</isTransactional> |
<isTransactional>false</isTransactional> |
</filter> |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
588,11 → 588,9 |
public String saveCourseReportDocument (String reportDocumentJson, UserSession session) throws IOException, JSONException |
{ |
System.out.println(reportDocumentJson); |
System.out.println("111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"); |
CourseReportDocument courseReportDocument = Document.fromJson(reportDocumentJson); |
System.out.println("222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222"); |
//CourseReportDocument courseReportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseReportDocument.getCourseCode()); |
List<CourseYear> courseYear = DaoFactory.getCourseYearDaoImpl().findCourseYear(courseReportDocument.getCourseCode(), courseReportDocument.getYear()); |
634,16 → 632,7 |
try { |
CourseReportDocument courseReport = createNewCourseReportDocument(courseCode, year); |
courseReportJson = courseReport.toJson(); |
//System.out.println(courseReportJson); |
//System.out.println("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"); |
saveCourseReportDocument(courseReportJson, session); |
//System.out.println("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"); |
//courseReportJson = new CourseReportServices().createNewCourseReportDocument(courseCode, year).toJson(); |
//System.out.println(courseReportJson); |
//System.out.println("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"); |
//courseReport = saveCourseReportDocument(courseReport,session); |
//courseReport = loadCourseReportDocument(courseCode, year,session); |
} catch (Throwable e) { |
System.out.println(e); |
e.printStackTrace(); |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/filters/filters/IsCoordinatorInCourseImpl.java |
---|
35,12 → 35,11 |
if (userSession.getUser().isSuperuser()) |
return; |
//request.getServiceParameters().getParameter((String) filterParameters.getParameter(0));//Returns NULL atm |
String courseCode = (String) request.getServiceParameters().getParameter((String) filterParameters.getParameter(0)); |
String courseCode = "44"; |
CourseImpl course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
if(!course.isFromCourseCommission(userSession.getUser())) |
{ |
logger.warn(userSession.getUser().getUsername() + ":try access restricted area"); |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
78,20 → 78,6 |
} |
/* AA 7/12/2017 */ |
/*public JSONObject SaveCourseReportDocument(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable { |
String courseReportDocument = request.getParameter("courseReportDocument"); |
IServiceManager sm = ServiceManager.getInstance(); |
String json = (String) sm.execute(RequestUtils.getRequester(request, response), |
"SaveCourseReportDocument", |
new Object[]{courseReportDocument}); |
return new JSONObject(json); |
}*/ |
public ActionForward startEdit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Throwable, ServletException |
{ |
String courseCode = request.getParameter("courseCode"); |
100,7 → 86,8 |
IServiceManager sm = ServiceManager.getInstance(); |
String json = (String) sm.execute(RequestUtils.getRequester(request, response), |
"LoadCourseReportDocument", |
new Object[]{courseCode,year}); |
new Object[]{courseCode,year}, |
new String[]{"courseCode", "year"}); |
request.setAttribute("courseReportJson", json); |
//request.setAttribute("courseCode", courseCode); |