Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1816 → Rev 1817

/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>-->