Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1191 → Rev 1198

/impl/conf/language/MessageResourcesCourse.properties
106,3 → 106,6
 
course.comissions=Comissões de Curso
 
course.list=Listagem de Cursos
course.course.units=Listagem de Unidades Curriculares
 
/impl/conf/WEB-INF/struts/struts-courses.xml
94,6 → 94,7
 
<action path="/user/coursePedagogicContents" forward="page.courses.pedagogic.contents"/>
<action path="/user/courseComissions" forward="page.courses.comissions"/>
<action path="/user/courseCourseUnits" forward="page.courses.courseunits"/>
 
 
 
/impl/conf/WEB-INF/struts/struts-courseunits.xml
168,6 → 168,17
input="page.courseunit.delete.admin">
<forward name="edit" path="page.edit.courseunit.admin.from.course.unit.delete"/>
</action>
<action path="/user/startEditCourseUnitAdminFromCourseCourseUnits" forward="/user/courseUnitControllerAdminFromCourseCourseUnits.do?dispatch=edit&amp;from=CourseCourseUnits"/>
<action path="/user/courseUnitControllerAdminFromCourseCourseUnits"
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsAdminController"
name="CourseUnitsForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.courses.courseunits">
<forward name="edit" path="page.edit.courseunit.admin.from.course.course.units"/>
</action>
</action-mappings>
 
</struts-config>
/impl/conf/WEB-INF/struts/tiles-courseunits.xml
192,6 → 192,12
<put name="topnav" value="/admin/courseunits/topnavEditCourseUnitFromDelete.jsp"/>
<put name="body" value="/admin/courseunits/courseunit.jsp"/>
</definition>
<definition name="page.edit.courseunit.admin.from.course.course.units" extends="base.separators.home">
<put name="title" value="Unidade Curricular"/>
<put name="topnav" value="/admin/courseunits/topnavEditCourseUnitFromCourseCourseUnits.jsp"/>
<put name="body" value="/admin/courseunits/courseunit.jsp"/>
</definition>
 
 
 
/impl/conf/WEB-INF/struts/tiles-courses.xml
101,8 → 101,14
 
 
<definition name="page.courses.courseunits" extends="page.separators.home">
<put name="title" value="Listagem de Unidades"/>
<put name="topnav" value="/admin/courses/topnavCourseCourseUnits.jsp"/>
<put name="body" value="/admin/courses/courseCourseUnits.jsp"/>
</definition>
 
 
 
 
 
</tiles-definitions>
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java
53,6 → 53,47
.list().size();
}
 
public int countCoursesUnits(String importYear,long courseId)
{
return createCriteria()
.createAlias("courseUnits", "c")
.setProjection(Projections.property("c.id"))
.add(eq("c.importYear", importYear))
.add(eq("id", courseId))
.list().size();
}
public int countCoursesUnitsNot(String importYear,long courseId)
{
return createCriteria()
.createAlias("courseUnits", "c")
.setProjection(Projections.property("c.id"))
.add(not(eq("c.importYear", importYear)))
.add(eq("id", courseId))
.list().size();
}
 
public List<Long> findCoursesUnitsIds(String importYear,long courseId)
{
return createCriteria()
.createAlias("courseUnits", "c")
.setProjection(Projections.property("c.id"))
.add(eq("id", courseId))
.add(eq("c.importYear", importYear))
.addOrder(Order.asc("c.name"))
.list();
}
 
public List<Long> findCoursesUnitsIds(long courseId)
{
return createCriteria()
.createAlias("courseUnits","c")
.setProjection(Projections.property("c.id"))
.add(eq("id", courseId))
.addOrder(Order.asc("c.importYear"))
.addOrder(Order.asc("c.name"))
.list();
}
 
public List<Course> searchActualYear(String query, SearchTypeEnum searchTypeEnum, int max, int page)
{
Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "name", "description");
/impl/src/web/admin/courses/courseCourseUnits.jsp
New file
0,0 → 1,117
 
<%@ page import="jomm.dao.impl.AbstractDao" %>
<%@ page import="pt.estgp.estgweb.domain.Course" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitView" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
 
<%--
NOTAS DE DESENVOLVIMENTO
 
Este serviço pode encaminhar para edição de unidades curriculares
Portanto a edição de unidades curriculares (Administrativa) envia a CourseUnitView
que é usada aqui para ler o courseId de forma a não perder o ano onde estavamos
Por essa razao o courseId tem de estar presente em todos os links de saida desta página
--%>
<style>
.nav-menu li
{
padding-left: 0;
margin-left: 0;
padding-bottom: 0;
padding-top: 0;
margin-bottom: 0;
margin-top: 0;
 
}
</style>
 
<%
AbstractDao.getCurrentSession().beginTransaction();
 
 
%>
<%
String courseId = request.getParameter("courseId");
 
if(courseId == null || courseId.length()==0)
{
CourseUnitView view = (CourseUnitView) request.getAttribute("CourseUnitView");
if(view == null)
{
// importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction();
}
else
{
 
courseId = ""+view.getCourseId();
}
}
 
Course c = DaoFactory.getCourseDaoImpl().get(new Long(courseId));
CourseView cv = new CourseView(c);
request.setAttribute("CourseView",cv);
 
List<Long> courseUnits = DaoFactory.getCourseDaoImpl().findCoursesUnitsIds(c.getId());
request.setAttribute("courseUnits",courseUnits);
%>
<div class="container-fluid">
 
 
 
 
<div class="row">
<div class="col-md-12">
<h1>Unidades Curriculares do Curso de - <bean:message key="course.${CourseView.degreeCleanCode}"/> - <%=c.getCode()%> - <%=c.getName()%></h1>
</div>
</div>
 
<div class="row">
<div class="col-md-12">
<table class="tablesorter tablesorterfiltered">
<thead>
<tr>
<th>Código</th>
<th>Nome</th>
<th>Turma</th>
<th>Ano</th>
<th class="filter-name filter-select">Semestre</th>
<th>Editar</th>
 
</tr>
</thead>
<tbody>
<logic:iterate id="unitId" name="courseUnits" type="java.lang.Long">
<%
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(unitId);
CourseUnitView cuv = new CourseUnitView(cu);
request.setAttribute("cuv",cuv);
%>
<tr>
<td>${cuv.code}</td>
<td>${cuv.name}</td>
<td>${cuv.cdTurma}</td>
<td>${cuv.importYear}</td>
<td><bean:message key="courseunit.${cuv.semestre}"/></td>
<td>
<a class="btn btn-warning" href="<%=request.getContextPath()%>/user/startEditCourseUnitAdminFromCourseCourseUnits.do?id=${cuv.id}&courseId=<%=c.getId()%>"><bean:message key="edit"/><span class="glyphicon glyphicon-pencil"></span></a>
</td>
</tr>
</logic:iterate>
</tbody>
</table>
 
</div>
</div>
 
</div>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/impl/src/web/admin/courses/courseComissions.jsp
6,6 → 6,8
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.domain.UserSession" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
40,19 → 42,18
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(importYear);
 
%>
 
<div class="container-fluid">
<div class="row">
 
<div class="col-sm-12 col-md-6">
<div class="col-sm-12 col-md-4">
 
<div class="panel panel-primary">
<div class="panel-heading"><bean:message key="course.pedagogic.contents.admin"/> - <%=importYear%></div>
<div class="panel-body">
<h1>Listagem de Cursos</h1>
 
<form role="form" action="<%=request.getContextPath()%>/user/courseComissions.do" method="post">
<div class="form-group">
<label for="importYear"><bean:message key="courseunit.importYear"/></label>
<label for="importYear">Escolha o úlitmo ano em que o curso esteve ativo:</label>
<select name="importYear" id="importYear" class="form-control" onchange="this.form.submit()">
<option value="">Escolha o úlitmo ano em que o curso esteve ativo:</option>
<option value="">Ultimo ano ativo</option>
<%
List<String> years = DatesUtils.getImportYears(10);
for(String year: years)
67,8 → 68,7
 
</div>
</form>
</div>
</div>
 
</div>
</div>
 
80,58 → 80,60
</div>
</div>
 
<div class="row">
<div class="col-md-4" style="padding-left: 0; padding-right: 5px">
<nav class="navbar navbar-default" role="navigation">
 
<div class="navbar-header" style="padding-right: 15px;">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#courses">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="courses">
<div class="panel-heading">Cursos</div>
 
<ul class="nav nav-stacked">
<%
for(Course c: courses)
{
%>
<li><a href="#course<%=c.getId()%>"><%=c.getCode()%> - <%=c.getName()%></a></li>
<%
}
%>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
</div>
<div class="col-md-8" style="padding-left: 0">
 
<div class="row">
<div class="col-md-12">
<table class="tablesorter tablesorterfiltered">
<thead>
<tr>
<th>Codigo</th>
<th>Grau</th>
<th>Curso</th>
<baco:hasRole role="services,admin,all">
<th>Papel Comissão Curso</th>
<th>Unidades <%=importYear%></th>
<th>Unidades noutros anos</th>
</baco:hasRole>
<th>Comissão de Curso</th>
<baco:hasRole role="services,admin,all">
<th></th>
</baco:hasRole>
</tr>
</thead>
<tbody>
<%
 
 
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request);
for(Course c: courses)
{
 
CourseView cv = new CourseView(c);
request.setAttribute("CourseView",cv);
int unitsSize=DaoFactory.getCourseDaoImpl().countCoursesUnits(importYear,c.getId());
int unitsSizeOthers=DaoFactory.getCourseDaoImpl().countCoursesUnitsNot(importYear, c.getId());
int totalUnits = unitsSize + unitsSizeOthers;
if(totalUnits > 0 || userSession.getUser().isAdmin() || userSession.getUser().hasRole("services"))
{
%>
<a name="course<%=c.getId()%>"></a>
<div class="panel panel-default">
<div class="panel-heading"><%=c.getCode()%> - <%=c.getName()%> - <bean:message key="course.${CourseView.degreeCleanCode}"/> <%if(c.isStatus()){%>Ativo <%=importYear%><%}%></div>
<div class="panel-body">
 
<label>Papel Institucional da Comissão em Sistema:</label>
 
<logic:notEmpty name="CourseView" property="validationRole">
<bean:message key="user.role.${CourseView.validationRole}"/>
</logic:notEmpty>
<logic:empty name="CourseView" property="validationRole">
Papel não atribuido (Corrigir Situação)
</logic:empty>
 
<tr>
<td>${CourseView.code}</td>
<td><bean:message key="course.${CourseView.degreeCleanCode}"/></td>
<td>${CourseView.name}</td>
<baco:hasRole role="services,admin,all">
<td>
<logic:notEmpty name="CourseView" property="validationRole">
<bean:message key="user.role.${CourseView.validationRole}"/>
</logic:notEmpty>
<logic:empty name="CourseView" property="validationRole">
Papel não atribuido (Corrigir Situação)
</logic:empty>
</td>
<td>
<%=unitsSize%>
</td>
<td>
<%=unitsSizeOthers%>
</td>
</baco:hasRole>
<td>
<div class="list-group">
<%
for(User u:DaoFactory.getUserDaoImpl().loadRoleUsers(c.getValidationRole()))
149,19 → 151,28
}
%>
</div>
 
</div>
</div>
</td>
<baco:hasRole role="services,admin,all">
<td>
<a class="btn btn-default" target="_blank" href="<%=request.getContextPath()%>/user/courseCourseUnits.do?courseId=<%=c.getId()%>">
<span class="glyphicon glyphicon-list-alt"></span>
</a>
</td>
</baco:hasRole>
</tr>
<%
}
 
}
%>
</div>
</div>
 
</tbody>
</table>
 
</div>
</div>
 
 
</div>
<%
AbstractDao.getCurrentSession().getTransaction().commit();
%>
/impl/src/web/admin/courses/topnavCourseCourseUnits.jsp
New file
0,0 → 1,16
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.domain.views.BlogView" %>
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%--<baco:object2Request beanIdName="id" classname="pt.estgp.estgweb.domain.CourseUnit" useBean="CourseUnitView"/>--%>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back");
topNav.addNavPlace(null, "course.course.units");
%>
<jsp:include page="/layout/topnav.jsp"/>
Property changes:
Added: svn:executable
+ *
/impl/src/web/admin/courseunits/topnavEditCourseUnitFromCourseCourseUnits.jsp
New file
0,0 → 1,12
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
String courseId = request.getParameter("courseId");
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back");
topNav.addNavPlace("/user/courseCourseUnits.do?courseId="+courseId, "course.course.units");
topNav.addNavPlace(null, "courseunit.edit");
%>
<jsp:include page="/layout/topnav.jsp"/>
Property changes:
Added: svn:executable
+ *