/branches/v3/impl/conf/language/MessageResources.properties |
---|
1549,6 → 1549,10 |
courseunitprograms.sincronization=Sincronizando fichas de unidades Curriculares |
courseunitprograms.sincronization.terminating=Terminando sincronização de fichas################################################################################ |
course.report.tools=Escolha de Curso |
course.report.tools.load=Ferramentas de Relatório Curso |
# |
# INTRANET MESSAGE RESOURCES |
# |
/branches/v3/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
156,7 → 156,15 |
<!--Ferramenta da Ana Helena Pinto--> |
<action path="/user/startStudiesPlanAnalysis" forward="page.studies.plan.analysis"/> |
<action path="/user/courseReportTools" forward="page.course.report.tools"/> |
<action path="/user/loadCourseReportTools" forward="page.course.report.tools.load"/> |
</action-mappings> |
</struts-config> |
/branches/v3/impl/conf/WEB-INF/struts/tiles-courses.xml |
---|
151,4 → 151,19 |
<put name="body" value="/admin/courses/studiesPLanAnalysis.jsp"/> |
</definition> |
<definition name="page.course.report.tools" extends="page.separators.home"> |
<put name="title" value="Comissões de Curso"/> |
<put name="topnav" value="/user/courses/topnavCourseReportTools.jsp"/> |
<put name="body" value="/user/courses/courseReportTools.jsp"/> |
</definition> |
<definition name="page.course.report.tools.load" extends="page.separators.home"> |
<put name="title" value="Comissões de Curso"/> |
<put name="topnav" value="/user/courses/topnavCourseReportToolsLoad.jsp"/> |
<put name="body" value="/user/courses/loadCourseReportTools.jsp"/> |
</definition> |
</tiles-definitions> |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java |
---|
418,7 → 418,7 |
* @param u |
* @return |
*/ |
public List<Course> findActiveCoursesCoordinationsOrCommissions(String importYear,User u) |
public List<Course> findActiveCoursesCoordinationsOrCommissions(User u) |
{ |
Criteria cri = getCriteriaForComissionsAndCoordinationsOr(u); |
if(cri == null) |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
550,6 → 550,8 |
* @param semestre |
* @param year |
* @return List<CourseUnitResult> |
* |
* todo ver esta para fazer um load courseunits de um curso dado o ano e o semestre |
*/ |
public List<CourseUnitResult> loadCourseUnits(long courseId, String semestre, String year) |
{ |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/TeacherImpl.java |
---|
2,6 → 2,7 |
import jomm.utils.StringsUtils; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.utils.Globals; |
import pt.estgp.estgweb.utils.RoleManager; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
309,7 → 310,11 |
return StringsUtils.hasElement(getLocalTeachedUnits(),""+unit.getId(),","); |
} |
/** |
* |
* @return all roles type course comission from user roles and validationRoles from coordinated courses |
* where user is main coordinator |
*/ |
public List<String> obtainCourseComissionsAndCoordinationsRoles() |
{ |
List<String> comissionsRoles = new ArrayList<String>(); |
329,6 → 334,19 |
return comissionsRoles; |
} |
/** |
* |
* @return all courses comission from user roles and validationRoles from coordinated courses |
* where user is main coordinator |
* @require opened transaction |
* todo usar isto para obter coordenações |
*/ |
public List<Course> obtainCourseComissionsAndCoordinations() |
{ |
return DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(this); |
} |
public boolean hasCoordinationsOrBelongToCourseCommissions() |
{ |
return obtainCourseComissionsAndCoordinationsRoles().size() > 0; |
/branches/v3/impl/src/web/user/courses/topnavCourseReportTools.jsp |
---|
New file |
0,0 → 1,12 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="java.util.*"%> |
<%@ page import="jomm.web.utils.NavPlace" %> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course.report.tools"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/branches/v3/impl/src/web/user/courses/topnavCourseReportToolsLoad.jsp |
---|
New file |
0,0 → 1,13 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="java.util.*"%> |
<%@ page import="jomm.web.utils.NavPlace" %> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace("/user/courseReportTools.do", "course.report.tools"); |
topNav.addNavPlace(null, "course.report.tools.load"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/branches/v3/impl/src/web/user/courses/courseReportTools.jsp |
---|
New file |
0,0 → 1,46 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.List" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<div class="panel panel-default"> |
<div class="panel-headding">Coordenações de Curso</div> |
<div class="panel-body"> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(UserSession.getUser().getId()); |
List<Course> courses = tImpl.obtainCourseComissionsAndCoordinations(); |
String importYear = request.getParameter("importYear"); |
request.setAttribute("importYear",importYear); |
for(Course course: courses) |
{ |
request.setAttribute("course",course); |
%> |
<div class="col-md-6"> |
<html:link styleClass="btn btn-default btn-lg btn-block btn-huge" action="/user/loadCourseReportTools?courseId=${course.id}&importYear=${importYear}"> |
<span class="glyphicon glyphicon-wrench"></span> ${course.code} - <bean:message key="course.${course.degree}"/> - ${course.name} |
</html:link> |
</div> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</div> |
</div> |
/branches/v3/impl/src/web/user/courses/loadCourseReportTools.jsp |
---|
New file |
0,0 → 1,268 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="org.hibernate.Criteria" %> |
<%@ page import="org.hibernate.criterion.Order" %> |
<%@ page import="org.hibernate.criterion.Projections" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="static org.hibernate.criterion.Restrictions.eq" %> |
<%@ page import="java.util.List" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<% |
Long courseId = Long.parseLong(request.getParameter("courseId")); |
String importYear = request.getParameter("importYear"); |
AbstractDao.getCurrentSession().beginTransaction(); |
TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(UserSession.getUser().getId()); |
Course courseImpl = DaoFactory.getCourseDaoImpl().get(courseId); |
request.setAttribute("course",courseImpl); |
%> |
<div class="panel panel-default"> |
<div class="panel-heading"><span class="glyphicon glyphicon-wrench"></span> ${course.code} - <bean:message key="course.${course.degree}"/> - ${course.name}</div> |
<div class="panel-body"> |
<h2>DTP</h2> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Cod.</th> |
<th class="filter-name filter-select">Sem.</th> |
<th>Nome</th> |
<th>Sums</th> |
<th>Sums Pre</th> |
<th>Sums Falt</th> |
<th>Plan</th> |
<th class="filter-name filter-select">Ficha</th> |
<th>Aval.Enu</th> |
<th>Aval.Paut</th> |
<th class="filter-name filter-select">Relat.</th> |
<th class="filter-name filter-select">Pedag.</th> |
<th class="filter-name filter-select">Detalhes</th> |
</tr> |
</thead> |
<tbody> |
<% |
Criteria c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class) |
.setProjection(Projections.distinct(Projections.property("id"))) |
.createAlias("course", "c") |
.add(eq("importYear", importYear)) |
.add(eq("c.id", courseId)); |
c.addOrder(Order.asc("name")); |
List<Long> courseUnits = c.list(); |
for(Long unit: courseUnits) |
{ |
Long unitId = unit; |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(unitId); |
request.setAttribute("cu",cu); |
%> |
<tr> |
<td>${cu.code}</td> |
<td>${cu.semestre}</td> |
<td><html:link target="_blank" action="/user/startLoadCourseUnitFromHome?id=${cu.id}"> ${cu.name}</html:link></td> |
<td>${cu.statdtpSumaries}</td> |
<td>${cu.statdtpSumariesPrelancados}</td> |
<td>${cu.statdtpSumariesMissing}</td> |
<td>${cu.statdtpPlaneamentoFiles}</td> |
<td><bean:message key="yes.no.${cu.statdtpFichaCurricularValid}"/></td> |
<td>${cu.statdtpAvaliacaoEnunciadosFiles}</td> |
<td>${cu.statdtpAvaliacaoPautasFiles}</td> |
<td>${cu.statdtpEvaluationReportState}</td> |
<td>${cu.statdtpInqueritoPedagogicoFiles}</td> |
<td><button class="btn btn-default" data-href="<%=request.getContextPath()%>/user/courseunits/statsAjax.jsp?courseUnitId=${cu.id}" data-title="Estatisticas da Unidade ${cu.name} (${cu.code})" data-toggle="modal" data-target="#modalAjaxRequest"><span class="glyphicon glyphicon-zoom-in"/></button> </td> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
<h2>Tabela de Aproveitamento baseada nos Relatorios de Unidades</h2> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Cod.</th> |
<th class="filter-name filter-select">Sem.</th> |
<th>Nome</th> |
<td> Estado </td> |
<td> Insc. </td> |
<td> s/elem </td> |
<td> aprov. freq. </td> |
<td> aprov. norm. </td> |
<td> aprov. recu. </td> |
<td> aprov. espe. </td> |
<td> aprov. total </td> |
<td> 10-13 </td> |
<td> 14-16 </td> |
<td> 17-20 </td> |
</tr> |
</thead> |
<tbody> |
<% |
for(Long unit: courseUnits) |
{ |
Long unitId = unit; |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(unitId); |
request.setAttribute("cu",cu); |
%> |
<tr> |
<% |
if(cu.getCourseUnitEvaluation() != null) |
{ |
String estado; |
if(cu.getCourseUnitEvaluation().isClosed()) |
{ |
estado = "COMPLETO"; |
}else if(cu.getCourseUnitEvaluation().isTeacherComplete()) |
{ |
estado = "ENTREGUE"; |
}else |
{ |
estado = "NÃO TERMINADO"; |
} |
%> |
<td> ${cu.code} </td> |
<td> ${cu.semestre} </td> |
<%--<td><html:link target="_blank" action="/user/startLoadCourseUnitFromHome?id=${cu.id}"> ${cu.name}</html:link></td>--%> |
<td><a href="#cu${cu.id}"> ${cu.name}</a></td> |
<td> <%=estado%> </td> |
<td> ${cu.courseUnitEvaluation.numAlunosInscritos} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosSemElementosAvaliacao} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprovFrequencia} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprovNormal} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprovRecurso} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprovEspecial} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprovTotal} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprov1013} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprov1416} </td> |
<td> ${cu.courseUnitEvaluation.numAlunosAprov1720} </td> |
<% |
} |
else |
{ |
%> |
<td> ${cu.code} </td> |
<td> ${cu.semestre} </td> |
<td> ${cu.name} </td> |
<td class="danger" colspan="11">INEXISTENTE</td> |
<% |
} |
%> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
<h2>Relatórios das Unidades</h2> |
<% |
for(Long unit: courseUnits) |
{ |
Long unitId = unit; |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(unitId); |
request.setAttribute("cu",cu); |
%> |
<a name="cu${cu.id}"> </a> |
<div class="panel panel-info"> |
<div class="panel-heading">${cu.name} (${cu.semestre})</div> |
<div class="panel-body"> |
<% |
if(cu.getCourseUnitEvaluation() != null) |
{ |
String estado; |
if(cu.getCourseUnitEvaluation().isClosed()) |
{ |
estado = "COMPLETO"; |
} |
else if(cu.getCourseUnitEvaluation().isTeacherComplete()) |
{ |
estado = "ENTREGUE"; |
} |
else |
{ |
estado = "NÃO TERMINADO"; |
} |
%> |
<p>Estado: <%=estado%></p> |
<h4>Apreciação dos resultados quantitativos obtidos pelos estudantes</h4> |
<pre> |
${cu.courseUnitEvaluation.qualApreciacaoQuantitivos} |
</pre> |
<h4>Apreciação do funcionamento da UC |
(Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.) </h4> |
<pre> |
${cu.courseUnitEvaluation.qualApreciacaoUC} |
</pre> |
<h4>Apreciação do cumprimento do programa da UC |
(Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados) </h4> |
<pre> |
${cu.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma} |
</pre> |
<h4>Conclusões |
(Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização) </h4> |
<pre> |
${cu.courseUnitEvaluation.qualConclusoes} |
</pre> |
<% |
} |
else |
{ |
%> |
<p>Estado: INEXISTENTE</p> |
<% |
} |
%> |
</div> |
</div> |
<% |
} |
%> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/branches/v3/impl/src/web/user/courseunits/courseCourseunitsStatistics.jsp |
---|
304,7 → 304,8 |
</tr> |
</thead> |
<tbody> |
<% |
<% |
} |
for(Long unit: courseUnits) |
{ |
/branches/v3/impl/src/web/user/home/teacher.jsp |
---|
193,6 → 193,10 |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}&forUser=courseCommission">Atalho para as validações (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseReportTools?importYear=${UserSession.nowConfiguration.previousInterfaceImportYear}">Utilitários do Relatório de Curso (${UserSession.nowConfiguration.previousInterfaceImportYear})</html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |