/impl/importRoutines.xml |
---|
7,24 → 7,28 |
<target name="courses"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportCourseService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
</java> |
</target> |
<target name="sincronizeunits"> |
<java classname="pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
<arg value="true"/> |
<arg value="true"/> |
</java> |
</target> |
<target name="teachers"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportTeachersService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
</java> |
</target> |
<target name="students"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportStudentsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
</java> |
</target> |
<target name="grades"> |
/impl/conf/language/MessageResourcesCourse.properties |
---|
39,6 → 39,7 |
course.C=Acções de Formação de Curta Duração |
course.A=Formações Avançadas |
course.O=Outras Formações |
course.T=TeSP |
course.Bs=Bacharelatos |
course.Ls=Licenciaturas |
/impl/conf/language/MessageResources.properties |
---|
158,6 → 158,7 |
fail.owner=Lamentamos o incómodo, mas não tem permissões sobre o objecto ao qual tentou aceder. |
fail.timer=Lamentamos o incomodo, mas a acção que tentou efectuar não pode ser executada nesta data. |
fail.authenticate=O nome de utilizador ou a palavra passe estão errados. Por favor tente de novo. |
dontexist.authenticate=O utilizador já existe na rede interna mas ainda não está disponivel no sistema BACO, por favor dirija-se ao Centro Informático. |
#palavras comuns |
courseunit=Unidade Curricular |
360,6 → 361,7 |
edit=Editar |
delete=Apagar |
confirm=Confirmar |
save=Salvar |
add=Adicionar |
put=Colocar |
remove=Remover |
/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
32,6 → 32,10 |
<action path="/startLoadCourseUnit" forward="/courseUnitController.do?dispatch=load"/> |
<action path="/startLoadTeacherCourseUnit" forward="/courseUnitController.do?dispatch=loadTeacher"/> |
<action path="/startLoadStudentCourseUnit" forward="/courseUnitController.do?dispatch=loadStudent"/> |
<action path="/startLoadCourseUnitSiges" forward="/courseUnitController.do?dispatch=loadCourseUnitWebSiteBySigesCodes"/> |
<action path="/startLoadCourseUnitProgramSiges" forward="/courseUnitController.do?dispatch=loadCourseUnitProgramBySigesCodes"/> |
<action path="/courseUnitController" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController" |
name="CourseUnitsForm" |
89,6 → 93,10 |
<action path="/user/startLoadCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=load&from=Home"/> |
<action path="/user/startLoadTeacherCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadTeacher&from=Home"/> |
<action path="/user/startLoadStudentCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStudent&from=Home"/> |
<action path="/user/startLoadCourseUnitSigesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadCourseUnitWebSiteBySigesCodes&from=Home"/> |
<action path="/user/courseUnitControllerFromHome" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController" |
name="CourseUnitsForm" |
/impl/conf/app.properties |
---|
1,7 → 1,7 |
#FICHEIRO DE CONFIGURACOES |
import.year=201314 |
import.year=201415 |
tmp.dir=@tmp.dir@ |
data.dir=@data.dir@ |
use.ldap=@use.ldap@ |
/impl/conf/template/email/unidadeValidada_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {0} |
foi aprovada pela comissão de curso |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/courseUnitWork_pt.txt |
---|
15,7 → 15,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitWorkChange_pt.txt |
---|
19,7 → 19,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitBlogPost_pt.txt |
---|
14,7 → 14,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitAnnouncement_pt.txt |
---|
15,7 → 15,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/unidadeEdicao_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {0} |
se encontra disponivel para edição |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/sendPageFriend_pt.txt |
---|
5,7 → 5,7 |
{1} |
Com os Melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/newGrades_pt.txt |
---|
5,7 → 5,7 |
{1} |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/message_pt.txt |
---|
13,7 → 13,7 |
{2} |
<p>Com os melhores cumprimentos {3}</p> |
<p>Cumprimentos, {3}</p> |
--------------------------------------------- |
<p>Escola Superior de Tecnologia e Gestão</p> |
/impl/conf/template/email/unidadeEditada_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {1} |
foi editada |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/summary_pt.txt |
---|
9,7 → 9,7 |
{4} |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/directories/student.xml |
---|
20,7 → 20,7 |
<leaf absolute="false" url="/public/portal/contactosCentroInformatico.html" proxy="estgp" id="contCentroInformatico" label="Centro Informático"></leaf> |
<leaf absolute="false" url="/public/portal/contactosGabineteComunicacao.html" proxy="estgp" id="contGabinetedeComunicacao" label="Gabinete de Comunicação"></leaf> |
</node> |
<node label="Biblioteca" id="biblioteca" group="1"> |
<node label="Biblioteca" id="biblioteca" group="1"> |
<leaf absolute="false" url="/public/portal/servicosBibliotecaApresentacao.html" proxy="estgp" id="servBiblioteca" label="Apresentação"></leaf> |
<leaf absolute="false" url="/public/portal/servicosBibliotecaServicos.html" proxy="estgp" id="servBibliotecaServ" label="Serviços"></leaf> |
<leaf absolute="false" url="/public/portal/servicosBibliotecaColeccoes.html" proxy="estgp" id="servBibliotecaColeccoes" label="Coleções"></leaf> |
/impl/conf/berserk/sd.xml |
---|
830,7 → 830,20 |
<chain name="Session"/> |
</filterChains> |
</service> |
<service> |
<name>LoadCourseUnitsBySigesCodesSemestreLastYear</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass> |
<description>Load a unique unit by sigescode, semestre and course code</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadLastYear</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
<service> |
<name>LoadCourseUnitWorks</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass> |
<description>Load course unit works</description> |
/impl/src/java/pt/estgp/estgweb/services/courses/CoursesService.java |
---|
24,7 → 24,9 |
import java.io.PrintWriter; |
import java.io.StringWriter; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
139,7 → 141,9 |
try |
{ |
Document dom = Dom4jUtil.parse(stream); |
String html = Dom4jUtil.styleDocument(dom, Globals.TEMPLATE_COURSE_XSL_PATH); |
Map<String,Object> parameters = new HashMap<String,Object>(); |
parameters.put("COURSE_SIGES_CODE",c.getCode()); |
String html = Dom4jUtil.styleDocument(dom, Globals.TEMPLATE_COURSE_XSL_PATH,parameters); |
c.setCacheWebDocument(html); |
} |
catch (Exception e) |
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitsBySigesCodesService.java |
---|
39,4 → 39,24 |
} |
return courseUnitViews; |
} |
public CourseUnitView loadLastYear(String code, String courseCode, String semestre, UserSession userSession) throws ServiceException { |
if(semestre.equals("S3")) |
semestre = "S1"; |
else if(semestre.equals("S4")) |
semestre = "S2"; |
else if(semestre.equals("S5")) |
semestre = "S1"; |
else if(semestre.equals("S6")) |
semestre = "S2"; |
else if(semestre.startsWith("A")) |
semestre = "A"; |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueLastYear(code, courseCode,semestre); |
if(courseUnit == null) |
return null; |
return new CourseUnitView(courseUnit); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java |
---|
64,16 → 64,22 |
for (BigDecimal c : codigos) |
{ |
Docente d = service.getSiGesWEBSoap().getDocente(c, Globals.SIGES_INSTITUTION_CODE, year); |
logger.info("Codigo Funcionario Importado:" + d.getCodigoFuncionario().intValue() + " email IPP SIGES: " + d.getEmail()); |
logger.info("Codigo Funcionario Importado: SIGES(" + d.getCodigoFuncionario().intValue() + ") email IPP SIGES: " + d.getEmail()); |
logger.info("SIGES IMPORTED INFO: " + docenteToString(d)); |
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(d.getCodigoFuncionario().intValue()); |
boolean newUser = false; |
if (t == null) |
{ |
logger.info("Teacher does not exist in baco, will create SIGES:" + d.getCodigoFuncionario().intValue()); |
t = DomainObjectFactory.createTeacherImpl(); |
DaoFactory.getTeacherDaoImpl().save(t); |
newUser = true; |
} |
logger.info("Importing: (" + t.getUsername() + ") " + t.getName()); |
else |
{ |
logger.info("Teacher EXIST in baco with SIGES: " + d.getCodigoFuncionario().intValue()); |
} |
logger.info("Will persist SIGES(" + d.getCodigoFuncionario().intValue() + ") baco (username:" + t.getUsername() + ") baco name:" + t.getName()); |
try |
{ |
persist(d, t, newUser); |
106,6 → 112,30 |
} |
/** |
* Implementação local do toString para a class Docente que foi gerada pelos web-services |
* @param d |
* @return |
*/ |
public String docenteToString(Docente d) |
{ |
return "Docente{" + |
"codigoFuncionario=" + d.getCodigoFuncionario() + |
", nomeFuncionario='" + d.getNomeFuncionario() + '\'' + |
", nomeFuncionarioInt='" + d.getNomeFuncionarioInt() + '\'' + |
", nomeAcademico='" + d.getNomeAcademico() + '\'' + |
", sexo='" + d.getSexo() + '\'' + |
", dataNascimento=" + d.getDataNascimento() + |
", morada='" + d.getMorada() + '\'' + |
", codigoPostal=" + d.getCodigoPostal() + |
", subCodigoPostal=" + d.getSubCodigoPostal() + |
", email='" + d.getEmail() + '\'' + |
", numeroBi='" + d.getNumeroBi() + '\'' + |
", usernameNetpa='" + d.getUsernameNetpa() + '\'' + |
", disciplinas=" + d.getDisciplinas() + |
'}'; |
} |
/** |
* Nao esta testado |
* jm |
* |
127,8 → 157,25 |
{ |
int atIndex = d.getEmail().indexOf("@"); |
if (atIndex > 0) |
{ |
t.setUsername(d.getEmail().substring(0, atIndex)); |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " foi-lhe atribuido o username d" + d.getEmail().substring(0, atIndex)); |
} |
else |
{ |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " NAO lhe foi atribuido username o email não tem o caracter @"); |
} |
} |
else if(t.getUsername() == null || t.getUsername().trim().length() == 0) |
{ |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " nao tem email no SIGES foi-lhe atribuido o username d" + d.getCodigoFuncionario().intValue()); |
t.setUsername("d" + d.getCodigoFuncionario().intValue()); |
} |
else |
{ |
//username não foi alterado |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " nao lhe foi alterado o username " + t.getUsername()); |
} |
t.setSigesCode(d.getCodigoFuncionario().intValue()); |
if(t.getAddress() == null || t.getAddress().length() == 0) |
t.setAddress(d.getMorada()); |
195,7 → 242,7 |
List<String> arguments = new ArrayList<String>(); |
String cause = e.getCause() == null ? "" : e.getCause().toString(); |
arguments.add((e.toString() + "\n" + cause).replace("\n","<br/>")); |
Email email = new Email("Erro de importação de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
Email email = new Email("Erro de importa��o de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
new SendEmailService().sendEmail(email); |
throw e; |
} |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java |
---|
70,6 → 70,9 |
if(u == null) |
{ |
logger.warn("user:" + username + " does not exist"); |
throw new AuthenticateException(AuthenticateException.DOES_NOT_EXIST); |
/* |
u = getUserInfo(username); |
u.setPassword(password); |
//put password to be complete for advising |
83,7 → 86,7 |
else if (u.getRoles().contains("student")) |
{ |
} |
}*/ |
} |
else |
{ |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateException.java |
---|
6,6 → 6,7 |
{ |
public static final String ALREADY_AUTHENTICATED = "authenticate.already.authenticated"; |
public static final String FAIL_AUTHENTICATION = "fail.authenticate"; |
public static final String DOES_NOT_EXIST = "dontexist.authenticate"; |
public static final String BLOCKED = "authenticate.blocked"; |
public AuthenticateException() |
/impl/src/java/pt/estgp/estgweb/domain/ProcessEventImpl.java |
---|
176,4 → 176,35 |
} |
return false; |
} |
@Override |
public String toString() { |
return "ProcessEvent{" + |
"id=" + getId() + |
", updateDate=" + getUpdateDate() + |
", openDate=" + getOpenDate() + |
", acceptedDate=" + getAcceptedDate() + |
", dispatchedDate=" + getDispatchedDate() + |
", lastChangeDate=" + getLastChangeDate() + |
", closeDate=" + getCloseDate() + |
", nowState='" + getNowState() + '\'' + |
", accepted=" + isAccepted() + |
", destinationRole='" + getDestinationRole() + '\'' + |
", notes='" + getNotes() + '\'' + |
", notesAccessLevel='" + getNotesAccessLevel() + '\'' + |
", notesAccessIdentifiers='" + getNotesAccessIdentifiers() + '\'' + |
", notesAccessRoles='" + getNotesAccessRoles() + '\'' + |
", notesToStarter='" + getNotesToStarter() + '\'' + |
", process=" + getProcess().getId() + |
", previousEvent=" + getPreviousEvent().getId() + |
", nextEvent=" + |
", owner=" + getOwner().getUsername() + |
", files=" + getFiles() + |
'}'; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/ProcessImpl.java |
---|
63,4 → 63,29 |
{ |
return user.isSuperuser() || user.hasRole(Globals.ROLE_PROCESSES_ADMIN) || user.getId() == getLastEvent().getOwner().getId(); |
} |
public boolean canRemoveLastEvent(User user) |
{ |
if(getLastEvent().getPreviousEvent() == null) |
{ |
//cant delete first event |
return false; |
} |
if(user.isSuperuserOrAdmin()) |
{ |
return true; |
} |
//check if this event starts in this user looking to previous event |
else if(!getLastEvent().isAccepted() && |
getLastEvent().getPreviousEvent() != null && |
user.getId() == getLastEvent().getPreviousEvent().getOwner().getId()) |
{ |
return true; |
} |
else |
{ |
return false; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationDaoImpl.java |
---|
New file |
0,0 → 1,36 |
package pt.estgp.estgweb.domain.dao.impl; |
import org.hibernate.Criteria; |
import org.hibernate.Query; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Expression; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Projections; |
import pt.estgp.estgweb.domain.Course; |
import pt.estgp.estgweb.domain.CourseImpl; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.utils.DatesUtils; |
import java.util.List; |
import static org.hibernate.criterion.Restrictions.eq; |
/** |
* @author Jorge Machado |
* @date 28/Fev/2008 |
* @time 2:51:06 |
* @see pt.estgp.estgweb.domain.dao.impl |
*/ |
public class ConfigurationDaoImpl extends ConfigurationDao |
{ |
public static ConfigurationDaoImpl getInstance() |
{ |
if (myInstance == null) |
myInstance = new ConfigurationDaoImpl(); |
return (ConfigurationDaoImpl) myInstance; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
220,8 → 220,14 |
.uniqueResult(); |
} |
public List<CourseUnit> loadBySigesCodeUnique(String sigesCode, String courseCode, String year) |
public CourseUnit loadBySigesCodeUniqueLastYear(String sigesCode, String courseCode, String semestre) |
{ |
return loadBySigesCodeUnique(sigesCode,courseCode,semestre,DatesUtils.getImportYear()); |
} |
public List<CourseUnit> loadBySigesCodeUnique(String sigesCode, String courseCode, String year) |
{ |
return createCriteria() |
.add(eq("code", sigesCode)) |
.add(eq("courseCode", courseCode)) |
/impl/src/java/pt/estgp/estgweb/domain/ConfigurationImpl.java |
---|
New file |
0,0 → 1,18 |
package pt.estgp.estgweb.domain; |
import java.io.Serializable; |
/** |
* @author Jorge Machado |
* @date 2/Mar/2008 |
* @time 10:27:25 |
* @see pt.estgp.estgweb.domain |
*/ |
public class ConfigurationImpl extends Configuration |
{ |
public Serializable getSerializable() |
{ |
return getId(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/DirWebProxy.java |
---|
191,7 → 191,7 |
} |
catch (Exception e) |
{ |
logger.error(e,e); |
logger.error(e, e); |
throw new IOException(e.toString()); |
} |
} |
451,6 → 451,7 |
String actualNodeId = (String) request.getAttribute("actualNodeId"); |
String actualRemoteNodeId = (String) request.getAttribute("ACTUAL_REMOTE_CHILD"); |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
System.out.println("Using stylesheet = " + stylesheet); |
parameters.put("contextPath", request.getContextPath()); |
String username = "descolnhecido"; |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java |
---|
1,10 → 1,7 |
package pt.estgp.estgweb.web.controllers.courseunits; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.*; |
import org.apache.struts.upload.FormFile; |
import org.hibernate.ObjectNotFoundException; |
import pt.estgp.estgweb.Globals; |
194,6 → 191,74 |
} |
} |
public ActionForward loadCourseUnitWebSiteBySigesCodes(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
String unitCode = request.getParameter("unitCode"); |
String courseCode = request.getParameter("courseCode"); |
String semestre = request.getParameter("semestre"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{unitCode,courseCode,semestre}; |
CourseUnitView cUV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitsBySigesCodesSemestreLastYear", args, names); |
return loadCourseUnitAndForward(cUF,cUV.getId() ,true,false, mapping, request, response); |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward loadCourseUnitProgramBySigesCodes(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
String unitCode = request.getParameter("unitCode"); |
String courseCode = request.getParameter("courseCode"); |
String semestre = request.getParameter("semestre"); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{unitCode,courseCode,semestre}; |
CourseUnitView cUV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnitsBySigesCodesSemestreLastYear", args, names); |
ActionRedirect forward = new ActionRedirect(); |
forward.setPath("/repositoryStream/" + cUV.getProgramStreamId()); |
return forward; |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward loadStudents(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
237,6 → 237,7 |
<discriminator column="discrimitator"/> |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="closed" type="boolean"/> |
<property name="numAlunosInscritos" type="text"/> |
<property name="numAlunosSemElementosAvaliacao" type="integer"/> |
/impl/src/hbm/pt/estgp/estgweb/domain/Configuration.hbm.xml |
---|
New file |
0,0 → 1,20 |
<?xml version="1.0"?> |
<!DOCTYPE hibernate-mapping |
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> |
<hibernate-mapping> |
<class name="pt.estgp.estgweb.domain.Configuration" table="configuration" abstract="true"> |
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta> |
<meta attribute="scope-class">public abstract</meta> |
<id name="id" type="long"> |
<generator class="native"/> |
</id> |
<discriminator column="discrimitator"/> |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="interfaceImportYear" type="string"/> |
<property name="importsDefaultImportYear" type="string"/> |
<subclass name="pt.estgp.estgweb.domain.ConfigurationImpl" discriminator-value="ConfigurationImpl"/> |
</class> |
</hibernate-mapping> |
/impl/src/web/imgs/mime/docx.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/admin/courses/course.jsp |
---|
77,8 → 77,9 |
<html:option value="A"><bean:message key="course.A"/></html:option> |
<html:option value="C"><bean:message key="course.C"/></html:option> |
<html:option value="O"><bean:message key="course.O"/></html:option> |
<html:option value="T"><bean:message key="course.T"/></html:option> |
</html:select> |
* SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Confirmar Mestrados e Pos graduacoes e informar equipa de desenvolvimento |
** SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Confirmar Mestrados e Pos graduacoes e informar equipa de desenvolvimento |
</td> |
</tr> |
<tr> |
/impl/src/web/css/style.css |
---|
1797,6 → 1797,11 |
{ |
background-color:#EBFCD6; |
} |
.ficha |
{ |
background-color:#EEEEEE; |
text-align: center; |
} |
/impl/src/web/layout/layoutWelcome.jsp |
---|
57,7 → 57,7 |
boolean flash = false; |
try |
{ |
java.net.URL url = new java.net.URL("http://baco.estgp.pt:9090/static/public/portal/imagens/HOME.swf"); |
java.net.URL url = new java.net.URL("http://www.estgp.pt:9090/static/public/portal/imagens/HOME.swf"); |
java.io.InputStream s = url.openStream(); |
s.close(); |
flash=true; |
86,7 → 86,7 |
else |
{ |
%> |
<img src="http://baco.estgp.pt:9090/static/public/portal/imagens/HOME.jpg"/> |
<img src="http://www.estgp.pt:9090/static/public/portal/imagens/HOME.jpg"/> |
<% |
} |
%> |
/impl/src/web/layout/navigationTop.jsp |
---|
61,6 → 61,7 |
<li><html:link action="/courses?type=E"><bean:message key="course.E"/></html:link></li> |
<li><html:link action="/courses?type=A"><bean:message key="course.A"/></html:link></li> |
<li><html:link action="/courses?type=P"><bean:message key="course.P"/></html:link></li> |
<li><html:link action="/courses?type=T"><bean:message key="course.T"/></html:link></li> |
</ul> |
</div> |
</li> |
/impl/src/web/public/courses/studiesPlan.jsp |
---|
18,7 → 18,7 |
<ul> |
<logic:iterate id="courseUnitView" name="CourseView" property="courseUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView"> |
<li> |
${courseUnitView.name} |
${courseUnitView.name} (${courseUnitView.code}) |
</li> |
</logic:iterate> |
</ul> |
/impl/src/web/user/courseunits/courseunitEvaluation.jsp |
---|
84,6 → 84,7 |
<% |
boolean closed = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isClosed(); |
//todo é necessário um servico para ver se tem estes papeis |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
|| |
92,8 → 93,34 |
//Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole())) |
{ |
if(closed) |
{ |
%> |
<h2>Este formulário está FECHADO para edição</h2> |
<% |
} |
else |
{ |
%> |
<h2>Formulário em fase de edição</h2> |
<% |
} |
if(closed) |
{ |
%> |
<script> |
$( document ).ready(function() { |
$("#formEdit :input").attr("disabled", true); |
}); |
</script> |
<% |
} |
%> |
<div id="formEdit"> |
<html:form action="/user/courseUnitEvaluationController"> |
<input type="hidden" name="dispatch" value="saveEvaluation"> |
<html:hidden property="id"/> |
183,14 → 210,14 |
<tr> |
<th>Apreciação dos resultados quantitativos obtidos pelos estudantes</th> |
<td width="80%"> |
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoQuantitivos"/> |
<html:textarea style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoQuantitivos"/> |
</td> |
</tr> |
<tr> |
<th>Apreciação do funcionamento da UC<br/> |
(Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.)</th> |
<td width="80%"> |
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoUC"/> |
<html:textarea style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoUC"/> |
</td> |
</tr> |
<tr> |
198,7 → 225,7 |
(Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados) |
</th> |
<td width="80%"> |
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma"/> |
<html:textarea style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualApreciacaoCumprimentoPrograma"/> |
</td> |
</tr> |
<tr> |
207,14 → 234,25 |
(Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização) |
</th> |
<td width="80%"> |
<html:textarea style="width:100%;height: 100px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/> |
<html:textarea style="width:100%;height: 200px" property="courseUnitEvaluationView.courseUnitEvaluation.qualConclusoes"/> |
</td> |
</tr> |
</table> |
</td> |
</tr> |
<tr> |
<td colspan="2"><input type="button" value="<bean:message key="confirm"/>" onclick="set(form,'saveEvaluation');form.submit()"/></td> |
<td colspan="2"> |
<% |
if(!closed) |
{ |
%> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/> |
<% |
} |
%> |
</td> |
</tr> |
</table> |
223,7 → 261,7 |
<% |
} |
%> |
</div> |
</div> |
</div> |
</div> |
/impl/src/web/user/courseunits/menu.jsp |
---|
57,15 → 57,21 |
<% |
if(Globals.MODULE_STATUS_SURVEYS) |
try{ |
System.out.println(CourseUnitView); |
System.out.println(CourseUnitView.getCourseView()); |
System.out.println(CourseUnitView.getResponsableTeacher()); |
if(CourseUnitView != null && Globals.MODULE_STATUS_COURSEUNITEVALUATION) |
{ |
//todo é necessário um servico para ver se tem estes papeis |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
|| |
// || |
//Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole())) |
//UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()) |
) |
{ |
%> |
<li style="background-color: yellow"> |
74,6 → 80,10 |
<% |
} |
} |
}catch(Throwable e) |
{ |
} |
%> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
/impl/src/web/user/ftpclient/ftpclient.jsp |
---|
151,7 → 151,7 |
|
<% |
if (i.getName().toLowerCase().endsWith("doc") || i.getName().endsWith("rtf")) |
if (i.getName().toLowerCase().endsWith("doc") || i.getName().endsWith("rtf") || i.getName().endsWith("docx")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/doc.gif"> |
244,4 → 244,4 |
<% |
} |
} |
%> |
%> |
/impl/src/web/user/home/teacher.jsp |
---|
25,8 → 25,8 |
<div class="block"> |
<% |
java.util.List<String> years = new java.util.ArrayList<String>(); |
years.add("201415"); |
years.add("201314"); |
years.add("201213"); |
java.util.Collections.sort(years, new java.util.Comparator<String>() |
{ |
/impl/src/xsd/curso.xsl |
---|
51,7 → 51,12 |
@@ -101,7 +106,9 @@ |
@@ -119,7 +126,7 @@ |
@@ -132,13 +139,28 @@ |
@@ -151,11 +173,35 @@ |
@@ -167,7 +213,15 @@ |
/impl/src/xsd/fragmentoCurso.xsl |
---|
1,6 → 1,7 |
<?xml version="1.0" encoding="UTF-8"?> |
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:curso="http://www.estgp.pt/xsd/planoestudos/1.0/"> |
<xsl:import href="curso.xsl"/> |
<xsl:param name="COURSE_SIGES_CODE"></xsl:param> |
<xsl:template match="/"> |
<xsl:call-template name="fragmentoCurso"/> |
</xsl:template> |
/impl/gen/java/pt/ipportalegre/siges/web/services/Docente.java |
---|
390,4 → 390,22 |
this.disciplinas = value; |
} |
@Override |
public String toString() { |
return "Docente{" + |
"codigoFuncionario=" + codigoFuncionario + |
", nomeFuncionario='" + nomeFuncionario + '\'' + |
", nomeFuncionarioInt='" + nomeFuncionarioInt + '\'' + |
", nomeAcademico='" + nomeAcademico + '\'' + |
", sexo='" + sexo + '\'' + |
", dataNascimento=" + dataNascimento + |
", morada='" + morada + '\'' + |
", codigoPostal=" + codigoPostal + |
", subCodigoPostal=" + subCodigoPostal + |
", email='" + email + '\'' + |
", numeroBi='" + numeroBi + '\'' + |
", usernameNetpa='" + usernameNetpa + '\'' + |
", disciplinas=" + disciplinas + |
'}'; |
} |
} |
/impl/build.xml |
---|
9,6 → 9,7 |
--> |
<target name="help"> |
<echo>This is the availible Ant Tasks:</echo> |
<echo message="${env.JAVA_HOME}"></echo> |
</target> |