/branches/v3/impl/src/java/pt/estgp/estgweb/utils/ReloadablePropertyMessageResources.java |
---|
70,14 → 70,19 |
@Override |
public String getMessage(final Locale locale, final String key) { |
reload(locale); |
if(key.startsWith("user.role.")) |
if(key == null || key.length() == 0) |
{ |
return "CHAVE MSG EM FALTA"; |
} |
else if(key.startsWith("user.role.")) |
{ |
logger.debug("BACO ROLES:Getting role from UserRoleProxy" + key); |
String msg = UserRoleProxy.getMessage(key.substring("user.role.".length()),locale); |
if(msg == null) |
return key; |
return msg; |
} |
return super.getMessage(locale, key); |
} |
93,8 → 98,12 |
public String getMessage(final Locale locale, final String key, final Object[] args) { |
reload(locale); |
if(key.startsWith("user.role.")) |
if(key == null || key.length() == 0) |
{ |
return "CHAVE MSG EM FALTA"; |
} |
else if(key.startsWith("user.role.")) |
{ |
logger.debug("BACO ROLES:Getting role from UserRoleProxy" + key); |
String msg = UserRoleProxy.getMessage(key.substring("user.role.".length()),locale); |
if(msg == null) |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/users/UserRoleConfigService.java |
---|
239,6 → 239,7 |
"user.role.courseValidateProgramTGI=Comissão de Curso de TGI\n" + |
"user.role.courseValidateProgramRU=Comissão de Curso de RU\n" + |
"user.role.courseValidateProgramCF=Comissão de Curso de Contabilidade e Finanças\n" + |
"user.role.courseValidateProgramNONE=Nenhuma\n" + |
"user.role.courseValidateProgramTPB=Comissão de Curso de Tecnologias de Produção de Biocombustíveis\n"+ |
"user.role.board.institution=Board de Direcção do Instituto Politecnico\n"+ |
"user.role.board.school.estg=Board de Direcção da ESTG\n"+ |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java |
---|
201,11 → 201,29 |
.list(); |
} |
public List<Course> findAllShowStudiesPlanCoursesOrderByNameEvenWithoutCourseUnit(String institutionalCode, String degree) |
{ |
return findAllCoursesOrderByNameEvenWithoutCourseUnit(institutionalCode,degree,true); |
} |
public List<String> findDegrees(String institutionalCode,boolean showWithStudiesPlanActive) |
{ |
Query q = getCurrentSession().createQuery("select distinct (degree) from " + Course.class.getName() + |
" where institutionalCode = :institutionalCode " + |
(showWithStudiesPlanActive ? " and showStudiesPlan = true " : " " ) + |
" order by degree "); |
q.setString("institutionalCode",institutionalCode); |
return q.list(); |
} |
public List<Course> findAllCoursesOrderByNameEvenWithoutCourseUnit(String institutionalCode, String degree,boolean showWithStudiesPlanActive) |
{ |
Criteria c = createCriteria(); |
c.add(eq("showStudiesPlan", true)); |
if(!showWithStudiesPlanActive) |
c.add(eq("showStudiesPlan", true)); |
if (degree != null && degree.length() > 0) |
c.add(eq("degree", degree)); |
/branches/v3/impl/src/java/pt/estgp/estgweb/filters/filters/ParameterValuePrefixCheck.java |
---|
New file |
0,0 → 1,47 |
package pt.estgp.estgweb.filters.filters; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.filters.chains.AdminControlFilter; |
import pt.estgp.estgweb.filters.exceptions.AccessDeniedOperationException; |
import pt.estgp.estgweb.filters.exceptions.NeedAuthenticationException; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.RoleManager; |
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 ParameterValuePrefixCheck extends AdminControlFilter { |
private static final Logger logger = Logger.getLogger(ParameterValuePrefixCheck.class); |
private static final String ALL_ROLE = ConfigProperties.getProperty("user.super"); |
public void execute(ServiceRequest request, ServiceResponse response) |
throws FilterException, Exception |
{ |
} |
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(RoleManager.hasRole(userSession.getUser(),ALL_ROLE) || userSession.getUser().isSuperuser()) |
return; |
String parameterName = (String) filterParameters.getParameter(0); |
String parameterPrefix = (String) filterParameters.getParameter(1); |
if(!parameterName.startsWith(parameterPrefix)) |
throw new AccessDeniedOperationException("fail.prefix.parameter"); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/widgetmodel/ModelWidgetController.java |
---|
12,6 → 12,9 |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController; |
import pt.estgp.estgweb.web.form.widgetmodel.WidgetModelForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
39,6 → 42,34 |
result.put("results",usersArray); |
List<User> users = DaoFactory.getUserDaoImpl().findUsers(query); |
getUsersInJson(usersArray, users); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
return result; |
} |
public JSONObject findUserRoles(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws JSONException { |
WidgetModelForm frm = (WidgetModelForm) form; |
String query = frm.getQ(); |
JSONObject result = new JSONObject(); |
JSONArray usersArray = new JSONArray(); |
result.put("results",usersArray); |
if(query==null || query.trim().length() == 0) |
return result; |
AbstractDao.getCurrentSession().beginTransaction(); |
result.put("results",usersArray); |
List<User> users = DaoFactory.getUserDaoImpl().loadRoleUsers(query); |
getUsersInJson(usersArray, users); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
return result; |
} |
private void getUsersInJson(JSONArray usersArray, List<User> users) throws JSONException { |
for(User u: users) |
{ |
JSONObject user = new JSONObject(); |
59,7 → 90,70 |
} |
usersArray.put(user); |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
return result; |
} |
/** |
* q json object: |
* { |
* userId:Long, |
* role:String, |
* } |
* Adds a role to a user |
* |
* @param form |
* @param request |
* @param response |
* @return Users in Json |
* @throws JSONException |
*/ |
public JSONObject addRole2User(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable { |
WidgetModelForm frm = (WidgetModelForm) form; |
String query = frm.getQ(); |
JSONObject roleUser = new JSONObject(query); |
Long userId = roleUser.getLong("userId"); |
String role = roleUser.getString("role"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"userId","role_2_addRemove"}; //colocacao do nome de parametro role_2_add obrigatoria para validacao no filtro do serviço |
Object[] args = new Object[]{userId,role}; |
sm.execute(RequestUtils.getRequester(request, response), "AddRole2User", args, names); |
frm.setQ(role); |
addMessageAsString(request,"Utilizador adicionado com sucesso ao papel institucional"); |
return findUserRoles(frm,request,response); |
} |
/** |
* q json object: |
* { |
* userId:Long, |
* role:String, |
* } |
* Adds a role to a user |
* |
* @param form |
* @param request |
* @param response |
* @return Users in Json |
* @throws JSONException |
*/ |
public JSONObject removeRole2User(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Throwable { |
WidgetModelForm frm = (WidgetModelForm) form; |
String query = frm.getQ(); |
JSONObject roleUser = new JSONObject(query); |
Long userId = roleUser.getLong("userId"); |
String role = roleUser.getString("role"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"userId","role_2_addRemove"}; //colocacao do nome de parametro role_2_add obrigatoria para validacao no filtro do serviço |
Object[] args = new Object[]{userId,role}; |
sm.execute(RequestUtils.getRequester(request, response), "RemoveRole2User", args, names); |
frm.setQ(role); |
addMessageAsString(request,"Utilizador removido com sucesso do papel institucional"); |
return findUserRoles(frm,request,response); |
} |
} |
/branches/v3/impl/src/web/css/style.css |
---|
7,7 → 7,7 |
} |
.web-messages |
{ |
margin-bottom: 30px !important; |
/*margin-bottom: 30px !important;*/ |
} |
.web-messages .alert |
/branches/v3/impl/src/web/examples/acls/aclUseExample.jsp |
---|
209,9 → 209,7 |
</span> |
</div> |
<div ng-show="findUser.length > 0" class="clearfix" id="personsResults" style="position: absolute; background-color: gray;border: 1px solid gray;z-index: 1000;"> |
<div class="clearfix"> |
<button ng-click="removeAllUsers()" type="button" class="btn btn-danger btn-small small pull-right clearfix"><span class="glyphicon glyphicon-remove"/></button> |
</div> |
<div class="clearfix" style="padding:0"> |
<table class="tablesorter-blue" style="margin:0"> |
<thead> |
219,6 → 217,7 |
<th>Nome</th> |
<th>Tipo</th> |
<th>Código</th> |
<th><button ng-click="removeAllUsers()" type="button" class="btn btn-danger btn-xs pull-right clearfix"><span class="glyphicon glyphicon-remove"/></button></th> |
</tr> |
</thead> |
<tbody> |
/branches/v3/impl/src/web/user/profile/topnavRolesUsers.jsp |
---|
New file |
0,0 → 1,11 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/homePae.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "profile.roles.users"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/branches/v3/impl/src/web/user/profile/roleUsers.jsp |
---|
New file |
0,0 → 1,205 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.User" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.utils.ConfigProperties" %> |
<%@ page import="pt.estgp.estgweb.web.filters.UserRoleProxy" %> |
<%@ 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 prefix="bacoTags" tagdir="/WEB-INF/tags" %> |
<% |
List<String> userRoles = UserRoleProxy.getUserRoles(); |
%> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Papeis Institucionais com relevância para os processos académicos no PAE |
</div> |
<div class="panel-body"> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
request.setAttribute("roleBoardIPP", Globals.ROLE_BOARD_INSTITUTION); |
request.setAttribute("roleBoardESTG",Globals.ROLE_BOARD_SCHOOL_ESTG); |
request.setAttribute("roleBoardESAE",Globals.ROLE_BOARD_SCHOOL_ESAE); |
request.setAttribute("roleBoardESS",Globals.ROLE_BOARD_SCHOOL_ESS); |
request.setAttribute("roleBoardESECS",Globals.ROLE_BOARD_SCHOOL_ESECS); |
request.setAttribute("rolePreCP",Globals.ROLE_PRESIDENTE_CONCELHO_PEDAGOGICO); |
%> |
<h1 class="well well-large">Papeis Institucionais com relevância em vários Processos</h1> |
<bacoTags:printRoleGroup role="${roleBoardIPP}" transactional="true" useWellTitle="true"/> |
<bacoTags:printRoleGroup role="${rolePreCP}" transactional="true" useWellTitle="true"/> |
<bacoTags:printRoleGroup role="${roleBoardESTG}" transactional="true" useWellTitle="true"/> |
<bacoTags:printRoleGroup role="${roleBoardESAE}" transactional="true" useWellTitle="true"/> |
<bacoTags:printRoleGroup role="${roleBoardESS}" transactional="true" useWellTitle="true"/> |
<bacoTags:printRoleGroup role="${roleBoardESECS}" transactional="true" useWellTitle="true"/> |
<h1 class="well well-large">Papeis especificos da Administração de Questionários</h1> |
<bacoTags:printRoleGroup role="questionarios.admin" transactional="true"/> |
<bacoTags:printRoleGroup role="questionarios.atribuicoes.admin" transactional="true"/> |
<bacoTags:printRoleGroup role="questionarios.atribuicoes.check_teachers" transactional="true"/> |
<bacoTags:printRoleGroup role="questionarios.gerais" transactional="true"/> |
<a name="comissoes"></a> |
<h1 class="well well-large">Comissões de Curso</h1> |
<% |
boolean showAllCourses = request.getParameter("showAllCourses") != null ? Boolean.parseBoolean(request.getParameter("showAllCourses")) : false; |
boolean showWithStudiesPlanActive = ! showAllCourses; |
List<String> institutionCodes = ConfigProperties.getListValues("institution.code.prefix.inverse."); |
%> |
<script> |
$(document).ready( |
function(){ |
} |
); |
function showInstitutionCode(institutionCode) |
{ |
<% |
for(String institutionCode: institutionCodes) |
{ |
%> |
if(institutionCode == '<%=institutionCode%>') |
{ |
$("#institution<%=institutionCode%>").show(); |
$("#institutionsSeparators<%=institutionCode%>").addClass("active"); |
} |
else |
{ |
$("#institution<%=institutionCode%>").hide(); |
$("#institutionsSeparators<%=institutionCode%>").removeClass("active"); |
} |
<% |
} |
%> |
} |
function showDegreeInst(degree,inst) |
{ |
$(".degree").hide(); |
$("#institution" + inst + " #degree" + degree).show(); |
$(".degreeSep").removeClass("active"); |
$("#degreeSeparators" + degree).addClass("active"); |
} |
</script> |
<p>Nesta listagem apenas são mostrados os Cursos publicos no Site do IPP, se o curso que procura não está listado clique aqui para ver todos <a class="btn btn-default" href="<%=request.getContextPath()%>/user/showRoleUsers.do?showAllCourses=true#comissoes">Mostrar Todos</a></p> |
<!--TBS DE INSTITUICAO--> |
<ul class="nav nav-tabs"> |
<% |
for(String institutionCode: institutionCodes) |
{ |
String institutionName = ConfigProperties.getProperty("institution.code." + institutionCode); |
%> |
<li id="institutionsSeparators<%=institutionCode%>"><a href="javascript:showInstitutionCode('<%=institutionCode%>')"><%=institutionName%></a></li> |
<% |
} |
%> |
</ul> |
<!--TBS DE INSTITUICAO--> |
<% |
for(String instCode : institutionCodes) |
{ |
%> |
<div class="panel panel-default" id="institution<%=instCode%>" style="display: none"> |
<div class="panel-heading"> |
Tipos de Curso da <%=ConfigProperties.getProperty("institution.code." + instCode)%> |
</div> |
<div class="panel-body"> |
<% |
List<String> degrees = DaoFactory.getCourseDaoImpl().findDegrees(instCode,showWithStudiesPlanActive); |
%> |
<!--TBS DE DEGREES--> |
<ul class="nav nav-tabs"> |
<% |
for(String degree: degrees) |
{ |
%> |
<li class="degreeSep" id="degreeSeparators<%=degree%>"><a href="javascript:showDegreeInst('<%=degree%>','<%=instCode%>')"><%=ConfigProperties.getProperty("course.degree.desc.plural." + degree)%></a></li> |
<% |
} |
%> |
</ul> |
<!--TBS DE DEGREES--> |
<% |
for(String degree: degrees) |
{ |
%> |
<div class="degree" id="degree<%=degree%>" style="display: none"> |
<% |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAllCoursesOrderByNameEvenWithoutCourseUnit(instCode,degree,showWithStudiesPlanActive); |
for(Course course: courses) |
{ |
request.setAttribute("course",course); |
%> |
<h4 class="well well-sm clearfix"> |
<%=course.getName()%> (<%=course.getCode()%>) |
<baco:isAdmin> |
<a class="btn btn-warning pull-right btn-xs" target="_blank" href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=editAdmin&courseView.id=${course.id}"> |
<span class="glyphicon glyphicon-wrench"></span> |
</a> |
</baco:isAdmin> |
</h4> |
<p>Papel da Coordenação:</label> |
<logic:notEmpty name="course" property="validationRole"><bean:message key="user.role.${course.validationRole}"/></logic:notEmpty> |
<logic:empty name="course" property="validationRole">Este curso não tem papel definido para a sua Coordenação, por favor contacte os serviços de informática, terá de ser definido um papel para a coordenação para lhe poder adicionar elementos</logic:empty> |
</p> |
<p>Coordenador: |
<% |
if(course.getCoordinator() != null) |
{ |
%><%=course.getCoordinator().getName()%> (<%=course.getCoordinator().getSigesCode()%>)<% |
} |
else |
{ |
%>Não está atribuido<% |
} |
%> |
</p> |
<% |
if(course.getValidationRole() != null && course.getValidationRole().length() > 0) |
{ |
%> |
<bacoTags:printRoleGroup title="Restante Coordenação" role="${course.validationRole}" transactional="true"/> |
<% |
} |
} |
%> |
</div><!--Degree div End--> |
<% |
} |
%> |
</div><!--Panel Body--> |
</div><!--Panel Instituicao--> |
<% |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</div> |
</div> |
/branches/v3/impl/src/web/user/events/eventApiJson.jsp |
---|
8,7 → 8,7 |
String userId = request.getParameter("userId"); |
String eventRoleManager = request.getParameter("eventRoleManager"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
String[] names = new String[]{"userId","role_2_addRemove"}; //colocacao do nome de parametro role_2_addRemove obrigatoria para validacao no filtro do serviço |
Object[] args = new Object[]{Long.parseLong(userId),eventRoleManager}; |
User u = (User) sm.execute(RequestUtils.getRequester(request, response), "RemoveRole2User", args, names); |
json.put("response","done"); |
26,7 → 26,7 |
String userId = request.getParameter("userId"); |
String eventRoleManager = request.getParameter("eventRoleManager"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
String[] names = new String[]{"userId","role_2_addRemove"}; //colocacao do nome de parametro role_2_addRemove obrigatoria para validacao no filtro do serviço |
Object[] args = new Object[]{Long.parseLong(userId),eventRoleManager}; |
User u = (User) sm.execute(RequestUtils.getRequester(request, response), "AddRole2User", args, names); |
json.put("response","done"); |
/branches/v3/impl/src/web/user/questionarios/headerQuestionarios.jsp |
---|
1,3 → 1,4 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ 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" %> |
4,8 → 5,10 |
<%@ 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 prefix="baco" uri="http://www.estgp.pt/baco/" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@taglib prefix="bacoTags" tagdir="/WEB-INF/tags" %> |
<style> |
.imgsmall |
{ |
69,7 → 72,7 |
<div class="panel panel-default"> |
<div class="panel-body"> |
<baco:isAdmin> |
<baco:hasRole role="admin,questionarios.admin,pedagogicCouncil.president,board.institution,questionarios.atribuicoes.admin,questionarios.atribuicoes.check_teachers,questionarios.gerais,services"> |
<h3 class="well">Questões relativas a papeis e permissões</h3> |
<ul> |
<li>Para aceder ao painel de ferramentas dos questionarios tem de ser administrador (admin ou questionarios.admin) ou ter o papel de Questionários Básicas (questionarios.gerais) ou services</li> |
78,9 → 81,28 |
<li>Administradores de Questionários (questionarios.admin) Validação (questionarios.atribuicoes.admin, questionarios.atribuicoes.check_teachers) de Atribuições podem validar as unidades quanto aos alunos e docentes afetados</li> |
<li>Professores, Membros das Comissões e Pedagógico terão acesso às respostas na sua Home Page numa página especialmente concebida para o efeito</li> |
</ul> |
<h3 class="well">Intervenientes no Processo em Sistema <label class="label label-info">Esta informação é visivel apenas a membros da Administração e Presidentes do Pedagógico</label></h3> |
<p>Caso algum dos intervenientes esteja mal atribuido contacte de imediato a administração de sistemas do IPP</p> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
%> |
<bacoTags:printRoleGroup role="questionarios.admin" transactional="true"/> |
<bacoTags:printRoleGroup role="questionarios.atribuicoes.admin" transactional="true"/> |
<bacoTags:printRoleGroup role="questionarios.atribuicoes.check_teachers" transactional="true"/> |
<bacoTags:printRoleGroup role="questionarios.gerais" transactional="true"/> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
<h3 class="well well-sm">Modelo de Dados</h3> |
<img class="imgtoogle imgsmall" src="<%=request.getContextPath()%>/user/questionarios/QuestionariosDomain.bmp" width="100%"> |
</baco:isAdmin> |
</baco:hasRole> |
<h2 class="well">Documentação partilhada para utilizadores privilegiados do sistema de Questionários</h2> |
113,6 → 135,10 |
<h3 class="well well-sm">Apresentação (versão 2) <label class="badge">26 Junho/2016</label></h3> |
<a target="_blank" href="<%=request.getContextPath()%>/user/questionarios/docs/ApresentacaoPedagogico.ppt">Apresentação PAE</a> |
</div> |
</div> |
/branches/v3/impl/src/web/user/questionarios/pedagogicoEstudante/pedagogicoEstudanteCoursesCheck.jsp |
---|
37,15 → 37,19 |
List<String> institutionCodes = ConfigProperties.getListValues("questionario.instituition."); |
AbstractDao.getCurrentSession().beginTransaction(); |
%> |
<jsp:useBean id="Questionario" type="pt.estgp.estgweb.domain.QuestionarioImpl" scope="request"/> |
<jsp:include page="../headerQuestionarios.jsp"/> |
<jsp:include page="/layout/pleaseWait.jsp"/> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
%> |
<html:form action="/user/questionariosPaeSelectCourses"> |
<html:hidden property="questionario.id" value="${Questionario.id}"/> |
<input type="hidden" name="dispatch" value="updateTipologias"/> |