Rev 1353 | Rev 1530 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ 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="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<%
String fromAction = "";
String user = "";
if (request.getParameter("from") != null)
{
user = "/user";
fromAction = "From" + request.getParameter("from");
if(request.getParameter("from").equals("CourseUnit"))
{
fromAction = "FromHome";
}
}
request.setAttribute("user", user);
request.setAttribute("fromAction", fromAction);
//String activeEvaluationYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYearCreateTransaction();
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{CourseUnitView.getCode(), CourseUnitView.getCourseCode()};
pt.estgp.estgweb.domain.views.CourseUnitView courseUnitViewInEvaluation = (pt.estgp.estgweb.domain.views.CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitInEvaluationBySigesCodes", args, names);
if(courseUnitViewInEvaluation != null)
{
request.setAttribute("CourseUnitInEvaluation",courseUnitViewInEvaluation);
}
%>
<jomm:messages/>
<div class="panel panel-primary panel-container">
<div class="panel-heading">
${CourseUnitView.name} (${CourseUnitView.code}) - <bean:message key="courseunit.semestre"/> ${CourseUnitView.semestre} - ano ${CourseUnitView.importYear}
<baco:hasRole role="admin,all,services,ci">
<html:link styleClass="btn btn-default" action="/user/startEditCourseUnitAdminFromServiceZone.do?id=${CourseUnitView.id}">
<span class="glyphicon glyphicon-pencil"></span> <bean:message key="admin.resource"/>
</html:link>
<html:link styleClass="btn btn-default pull-right" action="/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${CourseUnitView.courseId}">
<span class="glyphicon glyphicon-pencil"></span> <bean:message key="admin.resource"/> <bean:message key="course" arg0="${CourseUnitView.courseName}"/>
</html:link>
</baco:hasRole>
</div>
<div class="panel-body">
<baco:isAuthenticated>
<%
if(UserSession.getUser().isTeacher() && courseUnitViewInEvaluation != null)
{
if(courseUnitViewInEvaluation.isValidationEvaluation())
{
%>
<div class="row">
<div class="col-sm-8">
<div class="alert alert-warning" role="alert">Atenção tem um relatório de avaliação em fase de VALIDAÇÃO PELA COMISSÂO DE CURSO no ano <%=courseUnitViewInEvaluation.getImportYear()%> (Entrar no <%=courseUnitViewInEvaluation.getImportYear()%> pelo menu lateral esquerdo antes de clicar em relatório de avaliação e confirmar no titulo da unidade).</div>
</div>
</div>
<%
}
else if(courseUnitViewInEvaluation.isValidEvaluation())
{
%>
<%
}
else
{
%>
<div class="row">
<div class="col-sm-8">
<div class="alert alert-warning" role="alert">Atenção tem um relatório de avaliação em fase de preenchimento pelos DOCENTES no ano <%=courseUnitViewInEvaluation.getImportYear()%> (Entrar no <%=courseUnitViewInEvaluation.getImportYear()%> pelo menu lateral esquerdo antes de clicar em relatório de avaliação e confirmar no titulo da unidade).</div>
</div>
</div>
<%
}
}
%>
</baco:isAuthenticated>
<html:form styleClass="form" action="/user/courseUnitControllerFromHome" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="update"/>
<html:hidden property="courseUnitView.id"/>
<div class="row">
<div class="col-md-8 col-sm-6 col-xs-12">
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<bean:message key="courseunit.objectives"/>
</div>
<div class="panel-body">
<p><logic:present name="CourseUnitView" property="objectives">
${CourseUnitView.formatedObjectives}
</logic:present>
<logic:notPresent name="CourseUnitView" property="objectives">
<bean:message key="courseunit.objectives.not.available"/>
</logic:notPresent></p>
</div>
</div>
</div>
<div class="col-md-6 col-sm-12 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
Recursos Documentais
</div>
<div class="panel-body">
<div class="list-group">
<baco:isAdmin>
<baco:canManage name="CourseUnitView">
<div class="list-group-item">
<html:radio style="vertical-align: middle" onclick="set(form,'update');form.submit()" property="courseUnitView.contentsGrants" value="INTERNAL"/> <bean:message key="courseunits.contentsGrants"/> <bean:message key="courseunits.contentsGrants.INTERNAL"/> <br/>
<html:radio onclick="set(form,'update');form.submit()" property="courseUnitView.contentsGrants" value="PRIVATE" /> <bean:message key="courseunits.contentsGrants"/> <bean:message key="courseunits.contentsGrants.PRIVATE"/>
</div>
</baco:canManage>
</baco:isAdmin>
<baco:isAuthenticated>
<logic:present name="CourseUnitView" property="programStreamId">
<baco:checkRepositoryFileAccess repositoryId="${CourseUnitView.programStreamId}">
<div class="list-group-item">
<bean:message key="courseunit.programfilepath"/>
<logic:equal value="false" name="CourseUnitView" property="validProgram">
<span class="label label-danger">*</span>
</logic:equal>
<span class="badge icon">
<a href="javascript:invoqueDataVersionForm(${CourseUnitView.programStreamId})"><span class="icon icon-history icon-large"></span></a>
</span>
<span class="badge icon">
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><span class="icon icon-file-pdf icon-large"></span></a>
</span>
</div>
<logic:equal value="false" name="CourseUnitView" property="validProgram">
<div class="list-group-item">
<span class="label label-danger">*</span> Aguarda validação
</div>
</logic:equal>
</baco:checkRepositoryFileAccess>
</logic:present>
<logic:present name="CourseUnitView" property="evaluationStreamId">
<baco:checkRepositoryFileAccess repositoryId="${CourseUnitView.evaluationStreamId}">
<div class="list-group-item clearfix">
<bean:message key="courseunit.evaluation.report"/>
<span class="badge icon">
<a href="javascript:invoqueDataVersionForm(${CourseUnitView.evaluationStreamId})"><span class="icon icon-history icon-large"></span></a>
</span>
<span class="badge icon">
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.evaluationStreamId}"><span class="icon icon-file-pdf icon-large"></span></a>
</span>
</div>
</baco:checkRepositoryFileAccess>
</logic:present>
</baco:isAuthenticated>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<baco:isAuthenticated>
<%
if(CourseUnitView.getContentsGrants() == null)
CourseUnitView.setContentsGrants("INTERNAL");
if(CourseUnitView.getContentsGrants().equals("INTERNAL") || (CourseUnitView.getContentsGrants().equals("PRIVATE") &&
(
((UserImpl)UserSession.getUser()).isTeacherOfCourseUnit(CourseUnitView.getId()) ||
((UserImpl)UserSession.getUser()).isStudentfCourseUnit(CourseUnitView.getId()) ||
(UserSession.getUser()).getId() == CourseUnitView.getResponsableId()
)))
{
%>
<h2><bean:message key="module.Announcements"/></h2>
<logic:notEmpty name="CourseUnitView" property="announcements">
<%--<div class="listCircleWhite">
<ul>
<logic:iterate id="announcement" name="CourseUnitView" property="announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<li>
<h3><html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link></h3>
<p>${announcement.formatedText}</p>
<p class="pFooterSeccao"><bean:message key="from"/>: ${announcement.owner.name} (${announcement.owner.username}) <bean:message key="at"/> ${announcement.formatedSaveDate} </p>
</li>
</logic:iterate>
</ul>
</div>--%>
<logic:iterate id="announcement" name="CourseUnitView" property="announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<div class="panel panel-info">
<div class="panel-heading">
<html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link>
</div>
<div class="panel-body">
<p>${announcement.formatedText}</p>
</div>
<div class="panel-footer"><bean:message key="from"/>: ${announcement.owner.name} (${announcement.owner.username}) <bean:message key="at"/> ${announcement.formatedSaveDate} </div>
</div>
</logic:iterate>
</logic:notEmpty>
<logic:empty name="CourseUnitView" property="announcements">
<p><bean:message key="announcement.zero.placed"/></p>
</logic:empty>
<%
}
%>
</baco:isAuthenticated>
</div>
</div>
</div>
<div class="col-md-4 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading">
<bean:message key="courseunit.teachers"/>
<!--<a href="#" data-toggle="modal" data-target="#teachersInfo" class="pull-right">
Mais Info. <span class="glyphicon glyphicon-info-sign"> </span>
</a>-->
<a href="javascript:return false;" class="pull-right" data-href="<%=request.getContextPath()%>/user/courseunits/teachersInfo.jsp?courseUnitId=${CourseUnitView.id}" data-title="<bean:message key="courseunit.teachers"/>" data-toggle="modal" data-target="#modalAjaxRequest">
Mais Info. <span class="glyphicon glyphicon-info-sign small"> </span>
</a>
</div>
<div class="panel-body">
<div class="modal fade" id="teachersInfo" tabindex="-1" role="dialog" >
<div class="modal-dialog" data-width="750" style="display: block; width: 750px; margin-top: 50px;" aria-hidden="false">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><bean:message key="courseunit.teachers"/>
<button type="button" class="btn btn-danger btn-sm pull-right glyphicon glyphicon-remove " data-dismiss="modal"></button>
</h4>
</div>
<div class="modal-body">
<div class="well well-sm"><bean:message key="courseunit.responsable"/></div>
<logic:lessEqual value="0" name="CourseUnitView" property="responsableTeacher.id">
<p> Não existe informação disponivel.</p>
</logic:lessEqual>
<logic:greaterThan value="0" name="CourseUnitView" property="responsableTeacher.id">
<p class="lead"><strong><bean:message key="name"/></strong>: ${CourseUnitView.responsableTeacher.name}</p>
<p><strong><bean:message key="profile.siges.code.public"/></strong>: ${CourseUnitView.responsableTeacher.code}</p>
<p><label class=""><bean:message key="email"/></label>: ${CourseUnitView.responsableTeacher.safeEmail}</p>
</logic:greaterThan>
<div class="well well-sm"><bean:message key="courseunit.teachers.teaching"/></div>
<logic:iterate id="teacher" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<p class="lead"><strong><bean:message key="name"/></strong>: ${teacher.name}</p>
<p><strong><bean:message key="profile.siges.code.public"/></strong>: ${teacher.code}</p>
<p><label class=""><bean:message key="email"/></label>: ${teacher.safeEmail}</p>
<logic:present name="CourseUnitView" property="tipologias">
<%
Map<String,List<String>> mapa = CourseUnitView.getTipologiasTurmas(""+teacher.getCode());
for(Map.Entry<String,List<String>> entry: mapa.entrySet())
{
String tipologia = entry.getKey();
List<String> turmas = entry.getValue();
request.setAttribute("turmas", turmas);
request.setAttribute("tipologia", tipologia);
%>
<p>${tipologia}:
<logic:iterate id="turma" name="turmas" type="java.lang.String" scope="request">
${turma}
</logic:iterate>
</p>
<%
}
%>
</logic:present>
</logic:iterate>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Voltar</button>
</div>
</div>
</div>
</div>
<logic:notEmpty name="CourseUnitView" property="responsableTeacher">
<div class="list-group">
<div class="list-group-item list-group-item-heading"><bean:message key="courseunit.responsable"/></div>
<div class="list-group-item clearfix">
<logic:lessEqual value="0" name="CourseUnitView" property="responsableTeacher.id">
<p> Não existe informação disponivel.</p>
</logic:lessEqual>
<logic:greaterThan value="0" name="CourseUnitView" property="responsableTeacher.id">
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${CourseUnitView.responsableTeacher.code}&courseUnitView.id=${CourseUnitView.id}">${CourseUnitView.responsableTeacher.name}</html:link>
<span class="badge">${CourseUnitView.responsableTeacher.code}</span>
</logic:greaterThan>
</div>
<div class="list-group-item list-group-item-footer"> ${CourseUnitView.responsableTeacher.safeEmail}</div>
</div>
</logic:notEmpty>
<div class="list-group">
<logic:iterate id="teacher" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<div class="list-group-item clearfix">
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${teacher.code}&courseUnitView.id=${CourseUnitView.id}">${teacher.name}</html:link>
<span class="badge">${teacher.code}</span>
</div>
<div class="list-group-item list-group-item-footer"> ${teacher.safeEmail}</div>
</logic:iterate>
</div>
</div>
</div>
<baco:isAuthenticated>
<div class="panel panel-default">
<div class="panel-heading">
<bean:message key="courseunit.summaries"/>
<span class="badge icon">
<a href="<%=request.getContextPath()%>/ftpProxyStream/ionline${CourseUnitView.sumariosPathFileIntranet}">
<span class="icon icon-large icon-file-pdf"></span>
</a>
</span>
</div>
<div class="panel-body">
<logic:notEmpty name="CourseUnitView" property="summariesFromJson">
<baco:hasRole role="teacher">
<logic:greaterThan value="0" name="CourseUnitView" property="lateSummaries">
<div class="row">
<div class="col-sm-12">
<div class="alert alert-warning" role="alert">
Alerta.Tem <bean:write name="CourseUnitView" property="lateSummaries"/>
<logic:equal name="CourseUnitView" property="lateSummaries" value="1">Sumário</logic:equal>
<logic:greaterThan name="CourseUnitView" property="lateSummaries" value="1">Sumários</logic:greaterThan>
lançados pelos serviços que não estão preenchidos e estão abertos há mais de 48 horas. Se este for um falso alerta pedimos desculpa pelo incómodo.
<a target="_blank" href="http://netpa.ipportalegre.pt">Aceda ao NETPA para regularizar</a>
ou entre em contacto com o Sr José Luis para confirmar a situação:
<ul>
<logic:iterate id="sumLate" name="CourseUnitView" property="lateSummariesDates">
<li>Por lançar: <bean:write name="sumLate"/></li>
</logic:iterate>
</ul>
</div>
</div>
</div>
</logic:greaterThan>
</baco:hasRole>
</logic:notEmpty>
<logic:notEmpty name="CourseUnitView" property="summariesFromJson">
<%--
<%
//Docente-Tipologia
Map<String,Map<String,String>> docenteTipologia = new HashMap<String,Map<String,String>>();
List<CourseUnitSummaryView> sums = CourseUnitView.getSummariesFromJson();
if(sums != null)
{
for(CourseUnitSummaryView sumView: sums)
{
Map<String,String> tipologias = docenteTipologia.get(sumView.getCodigoDocente());
if(tipologias == null)
{
tipologias = new HashMap<String,String>();
docenteTipologia.put(sumView.getCodigoDocente(),tipologias);
}
tipologias.put(sumView.getTipoAula(), "");
}
}
%>
<p>Tipologia - Docente</p>
<%
for(Map.Entry<String,Map<String,String>> entry: docenteTipologia.entrySet())
{
String codigoDocente = entry.getKey();
for(String tipologia: entry.getValue().keySet())
{
%>
<p><%=codigoDocente%> - <%=tipologia%></p>
<%
}
}
%>--%>
<div class="list-group">
<div class="list-group-item">
<label >
Filtrar:
</label>
<input id="summariesFilterInput" type="text" style="width: 80%"/>
<script>
$.extend($.expr[':'], {
'containsi': function(elem, i, match, array)
{
return (elem.textContent || elem.innerText || '').toLowerCase()
.indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
$(document).ready(
function(){
$("#summariesFilterInput").unbind("click");
$('#summariesFilterInput').bind("keypress", function(e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
$("#summariesFilterInput").keyup(
function(){
if($("#summariesFilterInput").val()=="")
{
$(".summary").show();
}
else
{
$(".summary").show();
$(".summary").each(
function()
{
if($(this).find("*:containsi('"+$("#summariesFilterInput").val()+"')").length == 0)
{
$(this).hide();
}
}
);
}
}
);
}
);
</script>
</div>
<logic:iterate id="summary" name="CourseUnitView" property="summariesFromJson" type="pt.estgp.estgweb.domain.views.CourseUnitSummaryView">
<div class="summary" id="summary${summary.number}">
<div class="list-group-item list-group-item-heading">Aula ${summary.number} - ${summary.title}</div>
<div class="list-group-item">
<span class="label label-info">${summary.tipoAula}</span>
<span class="badge">${summary.codigoDocente}</span>
${summary.description}
</div>
<div class="list-group-item list-group-item-footer">
${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/>
</div>
</div>
</logic:iterate>
</div>
</logic:notEmpty>
<logic:empty name="CourseUnitView" property="summariesFromJson">
<p><bean:message key="courseunit.summaries.zero.placed"/></p>
</logic:empty>
</div>
</div>
</baco:isAuthenticated>
</div>
</div>
</html:form>
</div>
</div>
Generated by GNU Enscript 1.6.5.2.