Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 223 → Rev 312

/log.txt
File deleted
\ No newline at end of file
/impl/importRoutines.xml
New file
0,0 → 1,19
<?xml version="1.0" encoding="UTF-8"?>
<project name="estgweb-import" basedir="." default="help">
 
 
<import file="build.xml"/>
 
 
<target name="courses">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportCourseService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
<target name="teachers">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportTeachersService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
<target name="students">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportStudentsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>
</target>
 
 
</project>
/impl/local-exampleNotInUse.properties
New file
0,0 → 1,40
##
## Properties file to be used with ant build.xml
##
 
##database configuration
database.host=localhost
database.port=3306
database.catalog=estgweb
database.username=root
database.password=
hibernate.show.sql=false
 
use.ldap=true
 
#Paths configuration
tomcat.home=C:/Servidores/apache-tomcat-6.0.16
tomcat.libs.ant.home=${tomcat.home}/lib
tomcat.libs.common.home=${tomcat.home}/lib
 
 
tomcat.host=localhost
tomcat.port=8080
tomcat.url=http://${tomcat.host}:${tomcat.port}
tomcat.manager=${tomcat.url}/manager
tomcat.username=admin
tomcat.password=admin
 
#IF is ROOT use Nothing
#example for ROOT:
# tomcat.context.path.install=/
# tomcat.context.path=
#
#example for /mitra:
# tomcat.context.path.install=/baco
# tomcat.context.path=/baco
#
tomcat.context.path.install=/baco
tomcat.context.path=/baco
tomcat.war.file=baco.war
 
/impl/conf/language/MessageResourcesIntranet.properties
20,6 → 20,7
intranet.separator.welcome.home=&lt; Voltar ao Portal de Abertura
intranet.separator.ionline=Navegar no IOnline
intranet.separator.utils=Utilitários
intranet.separator.utils.back=Voltar aos Utilitários
 
 
intranet.my.blog.posts=Os Meus Posts
35,3 → 36,23
 
intranet.create.folders=Criar Pastas Para a Intranet
 
 
intranet.utils.org=Estrutura Organizativa
intranet.utils.services=Secretaria
intranet.utils.teaching=Ensino
intranet.utils.schedules=Horários
intranet.utils.bolonha=Declaração de Bolonha
 
intranet.utils.actas=Actas
 
 
 
 
 
 
 
 
 
 
 
 
/impl/conf/language/MessageResourcesCourse.properties
23,9 → 23,22
course.studies.plan=Plano de Estudos (XML válido no planoEstudos.xsd)
course.studies.plan.not.available=Não disponivel
course.courseunit.program.objectives.todo=Unidade em Falta (programa ou objectivos)
course.externalSite=Site Externo
course.studies.plan=Plano de Estudos
 
 
course.B=Bacharlato
course.L=Lincenciatura
course.M=Mestrado
course.P=Pós Graduação
course.E=CET
 
course.Bs=Bacharlatos
course.Ls=Lincenciaturas
course.Ms=Mestrados
course.Ps=Pós Graduaçãos
course.Es=CET's
 
 
 
33,3 → 46,5
 
 
 
 
 
/impl/conf/language/MessageResourcesProfile.properties
7,6 → 7,10
 
profile=Perfil Pessoal
 
 
profile.bad.profile.teacher.iregular.user.class=Existe um problema com o seu perfil. Aparentemente o papel de professor que lhe foi atribuido não foi reconhecido pelo sistema central. Por favor dirija-se ao centro informatico e reporte o problema para que a situação seja corrigida. Pedimos desculpa pelo incómodo.
profile.bad.profile.student.iregular.user.class=Existe um problema com o seu perfil. Aparentemente o papel de estudante que lhe foi atribuido não foi reconhecido pelo sistema central. Por favor dirija-se ao centro informatico e reporte o problema para que a situação seja corrigida. Pedimos desculpa pelo incómodo.
 
#Degrees
profile.scholar.degree.notset=Não disponivel
profile.scholar.degree=Escolaridade
43,6 → 47,8
profile.grades=Notas
profile.home=Apresentação
profile.curriculum.record=Registo Pessoal de Curriculum
profile.academic.degree.less=Sem Formação Superior
 
edit.profile=Editar Meu Perfil
edit.user.profile=Editar Utilizador
profile.roles=Funções na Instituição
69,7 → 75,7
profile.record.add.sucess=Registo adicionado com sucesso: {0}
profile.record.deleted.sucess=Registo apagado com sucesso
profile.email.change=*Para alterar o seu email dirija-se aos serviços centrais
 
profile.record.confirm.delete=Tem a certeza que deseja apagar esta entrada do curriculum?
#Dublin Core Fields
profile.record.file=Ficheiro Electrónico
profile.record.file.access=Acesso ao Ficheiro
/impl/conf/language/MessageResourcesAnnouncements.properties
8,6 → 8,7
module.Announcements=Anúncios
module.TodoAnnouncements=Urgentes
 
announcement.confirm.delete=Tem a certeza que deseja apagar este anúncio?
 
 
announcement.exceed.bigmage.max.size=Excedeu o tamanho maximo da imagem grande
67,4 → 68,5
announcement.image.style=Estilo visual
 
announcement=a ver anúncio
Announcement=Anúncio ({0})
 
/impl/conf/language/MessageResources.properties
63,7 → 63,19
error.401.item.3=Seguiu um link proveniente de um web site exterior cuja informação pode estar desactualizada
error.401.item.4=Seguiu um link interno errado ou desactualizado.
 
organization=Organização
areas=Áreas
 
area.eg=Área de Engenharia
area.ch=Área de Ciencias Humanas
area.ce=Área de Ciencias Empresariais
area.dg=Área de Design
 
top.menu.area.eg=Engenharias
top.menu.area.dg=Design
top.menu.area.ce=Ciências Empresariais
top.menu.area.ch=Ciências Humanas
 
#roles
 
user.role.all=Todos
79,7 → 91,7
user.role.invited=Convidado
user.role.services=Serviços
user.role.administrativeCouncil=Conselho Directivo
user.role.representativeCouncil=Conselho de Representantes
user.role.representativeCouncil=Assembleia de Representantes
user.role.scientificCouncil=Conselho Científico
user.role.erasmusCouncil=Conselho Erasmus
user.role.pedagogicCouncil=Conselho Pedagógico
255,7 → 267,7
 
student=Estudante
teacher=Professor
user=Usuario
user=Utilizador
 
#Mensagens Status
authentication.ok=Benvindo Fulano
/impl/conf/language/MessageResourcesCourseUnits.properties
16,6 → 16,12
 
courseunit.program.description=Programa Curricular de {0}
 
courseunit.program.archive=Arquivo
 
courseunit.to.add.students.save.first=Para adicionar alunos salve primeiro a unidade curricular e volte aqui.
courseunit.to.add.teachers.save.first=Para adicionar docentes salve primeiro a unidade curricular e volte aqui.
 
courseunit.zero.units=Nenhuma Unidade Curricular
courseunit.objectives.todo=Peenchimento dos objectivos da unidade
courseunit.program.todo=Upload do programa da unidade
courseunit.question.todo=Dúvida
/impl/conf/WEB-INF/struts/struts-courses.xml
21,6 → 21,8
 
<action-mappings>
 
<action path="/courses" forward="page.courses"/>
 
<action path="/startLoadCourse" forward="/courseController.do?dispatch=load"/>
<action path="/courseController"
type="pt.estgp.estgweb.web.controllers.courses.CoursesController"
/impl/conf/WEB-INF/struts/struts-intranet.xml
29,7 → 29,15
 
<action path="/user/serviceZone" forward="page.separators.serviceZone"/>
 
<!--Controller with method to load intranet paths as root navigatable folders-->
<action path="/user/utilsController"
type="pt.estgp.estgweb.web.controllers.utils.UtilsController"
scope="request"
parameter="dispatch"
validate="false"
input="page.welcome">
</action>
 
</action-mappings>
 
</struts-config>
/impl/conf/WEB-INF/struts/struts-ftpclient.xml
19,7 → 19,8
</global-forwards>
 
 
<action-mappings>
<action path="/user/startCourses" forward="page.courses"/>
</action-mappings>
<!--Not in use-->
<!--<action-mappings>-->
<!--<action path="/user/startCoursesFtp" forward="page.courses"/>-->
<!--</action-mappings>-->
</struts-config>
/impl/conf/WEB-INF/struts/tiles-courseunits.xml
85,8 → 85,11
<definition name="page.courseLayoutIOnline.proxy.ftp" extends="page.separators.home">
<put name="title" value="Conteudos da Unidade Curricular"/>
<put name="left" value="/user/courseunits/menu.jsp"/>
<put name="body" value="/user/courseunits/ftpclient.jsp"/>
<put name="body" value="/user/courseunits/ftpClient.jsp"/>
</definition>
 
 
<definition name="page.courseLayoutIOnlineContents.proxy.ftp" extends="page.courseLayoutIOnline.proxy.ftp">
<put name="topnav" value="/user/home/topnavCourseUnitContents.jsp"/>
</definition>
/impl/conf/WEB-INF/struts/tiles-courses.xml
7,6 → 7,12
 
<tiles-definitions>
 
<definition name="page.courses" extends="base.layout1">
<put name="title" value="Cursos"/>
<put name="topnav" value="/public/courses/topnavCourses.jsp"/>
<put name="body" value="/public/courses/index.jsp"/>
</definition>
 
<definition name="page.load.course" extends="base.layout1">
<put name="title" value="Curso"/>
<put name="topnav" value="/public/courses/topnavCourse.jsp"/>
/impl/conf/WEB-INF/struts/tiles-intranet.xml
30,15 → 30,54
<put name="body" value="/user/serviceZone/serviceZone.jsp"/>
</definition>
 
<definition name="page.separators.utils" extends="base.separators">
<put name="separator" value="6" type="string"/>
<put name="left" value="/user/utils/menu.jsp"/>
</definition>
 
<definition name="page.layoutIOnline.proxy.ftp" extends="base.separators">
<put name="separator" value="5" type="string"/>
<put name="body" value="/user/ftpclient/ftpclient.jsp"/>
</definition>
 
<definition name="page.layoutIntranetUtils.proxy" extends="base.separators">
<put name="separator" value="6" type="string"/>
<put name="left" value="/user/utils/menu.jsp"/>
 
<definition name="page.layoutIntranetUtils.proxy" extends="page.separators.utils">
<put name="body" value="/WebProxy"/>
</definition>
 
<definition name="page.layoutIntranetUtilsOrg.proxy" extends="page.layoutIntranetUtils.proxy">
<put name="topnav" value="/user/utils/topnavOrg.jsp"/>
</definition>
<definition name="page.layoutIntranetUtilsEnsino.proxy" extends="page.layoutIntranetUtils.proxy">
<put name="topnav" value="/user/utils/topnavEnsino.jsp"/>
</definition>
<definition name="page.layoutIntranetUtilsSecretaria.proxy" extends="page.layoutIntranetUtils.proxy">
<put name="topnav" value="/user/utils/topnavSecretaria.jsp"/>
</definition>
<definition name="page.layoutIntranetUtilsSecretariaConfigurable.proxy" extends="page.layoutIntranetUtils.proxy">
<put name="topnav" value="/user/utils/topnavSecretariaConfigurable.jsp"/>
</definition>
<definition name="page.layoutIntranetUtilsBolonha.proxy" extends="page.layoutIntranetUtils.proxy">
<put name="topnav" value="/user/utils/topnavBolonha.jsp"/>
</definition>
<definition name="page.layoutIntranetUtilsHorarios.proxy" extends="page.layoutIntranetUtils.proxy">
<put name="topnav" value="/user/utils/topnavHorarios.jsp"/>
</definition>
 
 
 
 
<!-- Put here all references to FTP Proxy in Utils Separator-->
<definition name="page.utilsLayoutIOnline.proxy.ftp" extends="page.separators.utils">
<put name="title" value="Conteudos da Unidade Curricular"/>
<put name="body" value="/user/courseunits/ftpClient.jsp"/>
</definition>
<!--Starting here-->
<definition name="page.utilsLayoutIOnlineActas.proxy.ftp" extends="page.utilsLayoutIOnline.proxy.ftp">
<put name="topnav" value="/user/utils/topnavSecretariaActas.jsp"/>
</definition>
<definition name="page.utilsLayoutIOnlineConfigurable.proxy.ftp" extends="page.utilsLayoutIOnline.proxy.ftp">
<put name="topnav" value="/user/utils/topnavSecretariaIonlineConfigurable.jsp"/>
</definition>
</tiles-definitions>
/impl/conf/WEB-INF/struts/tiles-ftpclient.xml
7,9 → 7,9
<tiles-definitions>
 
<definition name="page.courses" extends="base.layoutCourses">
<put name="body" value="/user/courses/courses.jsp"/>
<put name="topnav" value="/user/courses/topnavCourses.jsp"/>
</definition>
<!--<definition name="page.courses" extends="base.layoutCourses">-->
<!--<put name="body" value="/user/courses/courses.jsp"/>-->
<!--<put name="topnav" value="/user/courses/topnavCourses.jsp"/>-->
<!--</definition>-->
 
</tiles-definitions>
/impl/conf/WEB-INF/struts/struts-default.xml
95,6 → 95,19
<forward name="layoutNucleoEng" path="page.layoutNucleoENG.proxy"/>
 
 
<!--TopMenu layouts-->
<forward name="conselhoPedagogico" path="page.conselhoPedagogico.proxy"/>
<forward name="conselhoCientifico" path="page.conselhoCientifico.proxy"/>
<forward name="conselhoDirectivo" path="page.conselhoDirectivo.proxy"/>
<forward name="assembleiaRepresentantes" path="page.assembleiaRepresentantes.proxy"/>
 
<forward name="areas" path="page.areas.proxy"/>
<forward name="areaEG" path="page.areaEG.proxy"/>
<forward name="areaDG" path="page.areaDG.proxy"/>
<forward name="areaCE" path="page.areaCE.proxy"/>
<forward name="areaCH" path="page.areaCH.proxy"/>
 
<forward name="layoutCourses" path="page.layoutCourses.proxy"/>
<forward name="layout1.ftp" path="page.layout1.proxy.ftp"/>
<forward name="layout2.ftp" path="page.layout2.proxy.ftp"/>
108,6 → 121,16
<forward name="courseLayoutIOnlinePresences.ftp" path="page.courseLayoutIOnlinePresences.proxy.ftp"/>
 
<forward name="layoutIntranetUtils" path="page.layoutIntranetUtils.proxy"/>
<forward name="layoutIntranetUtilsOrg" path="page.layoutIntranetUtilsOrg.proxy"/>
<forward name="layoutIntranetUtilsSecretaria" path="page.layoutIntranetUtilsSecretaria.proxy"/>
<forward name="layoutIntranetUtilsSecretariaConfigurable" path="page.layoutIntranetUtilsSecretariaConfigurable.proxy"/>
<forward name="layoutIntranetUtilsEnsino" path="page.layoutIntranetUtilsEnsino.proxy"/>
<forward name="layoutIntranetUtilsHorarios" path="page.layoutIntranetUtilsHorarios.proxy"/>
<forward name="layoutIntranetUtilsBolonha" path="page.layoutIntranetUtilsBolonha.proxy"/>
 
<!-- Layouts for FTP Calls from Intranet see intranetNav Documentation in EAP project -->
<forward name="utilsLayoutIOnlineActas.ftp" path="page.utilsLayoutIOnlineActas.proxy.ftp"/>
<forward name="utilsLayoutIOnlineConfigurable.ftp" path="page.utilsLayoutIOnlineConfigurable.proxy.ftp"/>
</action>
 
<!--Portal Forward-->
/impl/conf/WEB-INF/struts/tiles-announcements.xml
9,6 → 9,7
 
<definition name="page.load.announcement" extends="base.layout1">
<put name="title" value="Anuncio" />
<put name="topnav" value="/public/announcements/topnavLoadAnnouncement.jsp"/>
<put name="body" value="/public/announcements/loadAnnouncement.jsp" />
</definition>
<definition name="page.submit.announcement" extends="base.layout2">
/impl/conf/WEB-INF/struts/struts-profile.xml
83,6 → 83,8
 
 
<!-- Mudar o perfil pelo proprio utilizador -->
<action path="/user/startDeleteRecordProfile" forward="/user/profile.do?dispatch=deleteRecord"/>
<action path="/user/startChangeRecordProfile" forward="/user/profile.do?dispatch=loadEditRecord"/>
<action path="/user/startCreateRecordProfile" forward="/user/profile.do?dispatch=createRecord"/>
<action path="/user/startProfileFromHome" forward="/user/profile.do?dispatch=home&amp;from=Home"/>
<action path="/user/startProfile" forward="/user/profile.do?dispatch=home&amp;from=Home"/>
/impl/conf/WEB-INF/struts/tiles-default.xml
73,6 → 73,8
<put name="navigationRight" value="/public/announcements/announcementsPortalRight.jsp" />
</definition>
 
 
 
<!-- Proxies -->
<definition name="page.layout1.proxy" extends="base.layout1">
<put name="body" value="/WebProxy"/>
117,7 → 119,37
</definition>
 
 
<!--TopMenu layouts-->
<definition name="page.conselhoPedagogico.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavConselhoPedagogico.jsp" />
</definition>
<definition name="page.conselhoCientifico.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavConselhoCientifico.jsp" />
</definition>
<definition name="page.conselhoDirectivo.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavConselhoDirectivo.jsp" />
</definition>
<definition name="page.assembleiaRepresentantes.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavAssembleiaRepresentantes.jsp" />
</definition>
 
<definition name="page.areas.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavAreas.jsp" />
</definition>
<definition name="page.areaEG.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavAreaEG.jsp" />
</definition>
<definition name="page.areaDG.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavAreaDG.jsp" />
</definition>
<definition name="page.areaCE.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavAreaCE.jsp" />
</definition>
<definition name="page.areaCH.proxy" extends="page.layout4.proxy">
<put name="topnav" value="/public/topMenuNavs/topnavAreaCH.jsp" />
</definition>
 
 
<!--Portais-->
<definition name="page.portal.student" extends="base.layoutPortal">
<put name="body" value="/public/portals/alunos/student.jsp"/>
/impl/conf/WEB-INF/tlds/baco.tld
107,6 → 107,20
</attribute>
</tag>
<tag>
<name>isOwner</name>
<tagclass>pt.estgp.estgweb.web.tags.OwnerTag</tagclass>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<name>isValid</name>
<tagclass>pt.estgp.estgweb.web.tags.IsValidTag</tagclass>
<attribute>
/impl/conf/WEB-INF/web.xml
13,6 → 13,10
<filter-class>pt.estgp.estgweb.web.filters.UserSessionFilter</filter-class>
</filter>
<filter>
<filter-name>TopImageFilter</filter-name>
<filter-class>pt.estgp.estgweb.web.filters.TopImageFilter</filter-class>
</filter>
<filter>
<filter-name>UserFilter</filter-name>
<filter-class>pt.estgp.estgweb.web.filters.UserFilter</filter-class>
</filter>
42,6 → 46,10
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>TopImageFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Set-Character-Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
63,6 → 71,26
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/proxy/layoutIntranetUtilsOrg/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/proxy/layoutIntranetUtilsSecretaria/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/proxy/layoutIntranetUtilsEnsino/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/proxy/layoutIntranetUtilsHorarios/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/proxy/layoutIntranetUtilsBolonha/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/courseunitproxy/*</url-pattern>
</filter-mapping>
<filter-mapping>
137,6 → 165,10
<servlet-class>pt.estgp.estgweb.web.controllers.courseunits.CourseUnitLayoutProxy</servlet-class>
</servlet>
<servlet>
<servlet-name>StartPathLayoutProxy</servlet-name>
<servlet-class>pt.estgp.estgweb.web.StartPathLayoutProxy</servlet-class>
</servlet>
<servlet>
<servlet-name>tmpStream</servlet-name>
<servlet-class>pt.estgp.estgweb.web.TmpStream</servlet-class>
</servlet>
181,6 → 213,10
<url-pattern>/courseunitproxy/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>StartPathLayoutProxy</servlet-name>
<url-pattern>/startpathproxy/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tmpStream</servlet-name>
<url-pattern>/tmpStream/*</url-pattern>
</servlet-mapping>
/impl/conf/log4j.properties
26,7 → 26,7
 
 
#default category
log4j.rootLogger = info, defaultLog, stdout
log4j.rootLogger = @log.level@, defaultLog, stdout
 
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
/impl/conf/app.properties
11,9 → 11,28
email.server=mail.estgp.pt
email.user=
email.password=
email.from=jmachado@estgp.pt
email.from=bacodev@estgp.pt
email.templates.dir=@email.templates.dir@
 
#########################
##
########################
 
# 0: From Frienf
email.send.url.friend.subject.pt=Site da ESTG sugerido pelo amigo ({0}) (ESTG)
email.send.url.friend.subject.en=Site of ESTG suggested by friend ({0}) (ESTG)
 
email.new.grades.subject.pt=Novas notas disponiveis (ESTG)
email.new.grades.subject.en=New grades available (ESTG)
 
# 0: Course Unit Name
# 1: Annoucement Title
email.courseunit.announcement.subject.pt={0}: {1} (ESTG)
email.courseunit.announcement.subject.en={0}: {1} (ESTG)
 
email.new.grades=true
email.courseunit.announcements=true
 
##################################################
# Modules usage
#
30,22 → 49,54
module.reminders=true
module.intranet=true
module.profile=true
module.sms=true
 
##################################################
# SMS
#
##################################################
sms.courseunit.announcement=true
sms.courseunit.announcement.only.profs=true
sms.new.grades=true
 
#####################################################
##
## Job Deamon seconds
job.deamon.sleep.seconds=30
 
##################################################
##Proxy Servers
#If is an HTTP Server needs encoding config if FTP needs user pass config
server.ionline=ftp://www.global.estgp.pt
#server.ionline.start.path=
server.ionline.start.path=/Eramus/Baco
#TODO USAR a de baixo quando testar as unidades curriculares
server.ionline.start.path=
#server.ionline.start.path=/Eramus/Baco
ionline.pass=baco
ionline.user=Baco_web
 
server.estgp=http://www.estgp.pt/testes/nova_web
#server.estgp=http://localhost:8080/estgweb
server.estgp=http://www.estgp.pt
estgp.encoding=ISO-8859-1
server.estgp.start.path=/testes/nova_web
 
#server.estgp=http://www.estgp.pt/testes/nova_web
#estgp.encoding=UTF-8
 
##server.estgp=http://localhost:8080/estgweb
server.estgweb=http://www.estgp.pt/testes/estgweb
estgweb.encoding=UTF-8
estgp.encoding=UTF-8
 
 
server.localhost=http://localhost:8080
localhost.encoding=ISO-8859-1
server.localhost.start.path=/templates
 
 
 
server.estgp2=http://www.estgp.pt/testes/nova_web
#server.estgp=http://localhost:8080/estgweb
estgp2.encoding=UTF-8
 
################################################
## Kinds of roles
user.admin=admin
235,11 → 286,12
#########################################################################
# Imports SIGoES
#
national.institution.code=3122
siges.institution.code=1
ws.siges.wsdl=@ws.siges.wsdl@
ws.siges.target.namespace=@ws.siges.target.namespace@
 
ws.siges.secret=asdxFhnM.9
ws.siges.secret=deptal1232007estg.
#
importFirstYearFormat=yyyy
importSecondYearFormat=yy
279,3 → 331,19
 
 
 
#########################################################################
#
#TopImage Filter Links
#
 
top.image.1.start.with=/
top.image.1=/imgs/top.jpg
 
top.image.start.with.2=/student.do?role=student&menu=menu.alunos
top.image.url.2=/imgs/topStudents.jpg
 
 
 
 
 
 
/impl/conf/template/sms/GradeUnit.txt
New file
0,0 → 1,7
##################################################
# Template de Messagem de novas Notas
# 0: Unidade
# 1: Nota
##################################################
{0}:{1};
 
/impl/conf/template/sms/GradesUnit.txt
New file
0,0 → 1,8
##################################################
# Template de Messagem de novas Notas
# 0: Notas
##################################################
=TMN ESTG MESSAGE: POWERED BY TMN=
Novas Notas lançadas:
{0}
 
/impl/conf/template/sms/CourseUnit.txt
New file
0,0 → 1,12
##################################################
# Template de Messagem de Unidade Curricular
# 0: Nome da Unidade
# 1: Login de quem envia
# 2: titulo
# 3: texto
##################################################
=TMN ESTG MESSAGE: POWERED BY TMN=
{0} ({1})
{2}
{3}
 
/impl/conf/template/email/newGrades_en.txt
New file
0,0 → 1,13
#Email to send grades
Dear Student {0}
 
You have new Grades Available at ESTG Site
 
{1}
 
Best Regards
 
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/conf/template/email/GradeUnit.txt
New file
0,0 → 1,6
##################################################
# Template de Messagem de novas Notas
# 0: Unidade
# 1: Nota
##################################################
{0}:{1};
/impl/conf/template/email/newGrades_pt.txt
New file
0,0 → 1,13
#Email to send grades
Caro Aluno {0}
 
Tem novas notas disponiveis no sitio da ESTG
 
{1}
 
Com os melhores cumprimentos
 
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/conf/template/email/courseUnitAnnouncement_en.txt
New file
0,0 → 1,22
# 0 : Course Unit Name
# 1 : Title
# 2 : Text
# 3 : Teacher
#
# Course Unit Announcement
#
Dear Student
 
A new announcement has been inserted in:
{0}
 
{1}
 
{2}
 
Best Regards {3}
 
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/conf/template/email/courseUnitAnnouncement_pt.txt
New file
0,0 → 1,22
# 0 : Course Unit Name
# 1 : Title
# 2 : Text
# 3 : Teacher
#
# Course Unit Announcement
#
Caro estudante
 
Um novo anuncio foi publicado na unidade:
{0}
 
{1}
 
{2}
 
Com os melhores cumprimentos {3}
 
---------------------------------------------
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Portalegre
http://www.estgp.pt
/impl/conf/berserk/sd.xml
100,8 → 100,6
</service>
 
 
 
 
<!--Announcements-->
<service>
<name>CreateAnnouncement</name>
843,6 → 841,14
</filterChains>
</service>
<service>
<name>LoadTeachedUnitsCurrentYear</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsCurrentYearService</implementationClass>
<description>Load teacher units in currentYear</description>
<isTransactional>true</isTransactional>
<filterChains>
</filterChains>
</service>
<service>
<name>LoadSubscribedUnits</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsService</implementationClass>
<description>Load student units</description>
851,6 → 857,22
</filterChains>
</service>
<service>
<name>LoadSubscribedUnitsCurrentYear</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass>
<description>Load student units in current Year</description>
<isTransactional>true</isTransactional>
<filterChains>
</filterChains>
</service>
<service>
<name>LoadSubscribedUnitsOldYears</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsOldYearsService</implementationClass>
<description>Load student units in current Year</description>
<isTransactional>true</isTransactional>
<filterChains>
</filterChains>
</service>
<service>
<name>LoadSubscribedUnitsAnnouncements</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsAnnouncementsService</implementationClass>
<description>Load student units</description>
1016,6 → 1038,16
<chain name="Logger"/>
</filterChains>
</service>
<service>
<name>LoadCoursesImportYear</name>
<implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
<description>Load All Courses</description>
<isTransactional>true</isTransactional>
<defaultMethod>loadCoursesImportYear</defaultMethod>
<filterChains>
<chain name="Logger"/>
</filterChains>
</service>
 
 
 
1248,9 → 1280,12
<!---->
 
 
 
 
 
 
 
 
 
</serviceDefinitions>
/impl/conf/berserk/fcd.xml
262,6 → 262,13
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
<filterChain>
<name>OwnerCourseUnitFromCourseUnitQuestion</name>
<expression>OwnerUsersClassBean("serializable","pt.estgp.estgweb.domain.CourseUnitQuestionImpl","courseUnit")</expression>
<description>Owner of an object Control Chain</description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
<filterChain>
<name>OwnerCourseUnitFromWorkAssignementObject</name>
<expression>OwnerUsersClassBean("object.serializable","pt.estgp.estgweb.domain.CourseUnitAssignementImpl","courseUnit")</expression>
<description>Owner of an object Control Chain</description>
269,6 → 276,14
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
<filterChain>
<name>OwnerCourseUnitFromCourseUnitQuestionObject</name>
<expression>OwnerUsersClassBean("object.serializable","pt.estgp.estgweb.domain.CourseUnitQuestionImpl","courseUnit")</expression>
<description>Owner of an object Control Chain</description>
<invocationTiming>1</invocationTiming>
<filterClass>pt.estgp.estgweb.filters.chains.LoadControlFilter</filterClass>
</filterChain>
 
<filterChain>
<name>IsInCourseUnitFromWorkAssignement</name>
<expression>IsInCourseUnitUsersClassBean("serializable","pt.estgp.estgweb.domain.CourseUnitAssignementImpl","courseUnit")</expression>
<description>Owner of an object Control Chain</description>
/impl/conf/hibernate.cfg.xml
10,19 → 10,25
<property name="connection.password">@database.password@</property>
<property name="connection.autocommit">false</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.autoReconnect">true</property>
<property name="hibernate.connection.autoReconnectForPools">true</property>
<property name="show_sql">@hibernate.show.sql@</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">1800</property>
<!--<property name="connection.pool_size">2</property>-->
<property name="hibernate.transaction.auto_close_session">true</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.max_size">30</property>
<property name="hibernate.c3p0.timeout">500</property>
<property name="hibernate.max_statements">50</property>
 
 
<!--<property name="current_session_context_class">org.hibernate.context.CurrentSessionContext</property>-->
<!--<property name="current_session_context_class">org.hibernate.context.JTASessionContext</property>-->
<!--<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.TransactionManagerLookup</property>-->
<property name="current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>
<!--<property name="current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>-->
<property name="current_session_context_class">thread</property>
 
{0}
</session-factory>
</hibernate-configuration>
</hibernate-configuration>
/impl/INSTALL
New file
0,0 → 1,113
#########################################################################
#
# BACO is a LGPL project developed at ESTG / IPP Portalegre
# The main objective is to support school site and
# daily work and comunications between Teachers and Students
#
#
# http://www.estgp.pt
#
# Preject Team Leader
#
# Jorge Machado - jmachado AT estgp DOT pt
#
#########################################################################
 
# Release 1.0 #
 
SOFTWARE REQUIREMENTS
 
JDK 5.0 or JDK 1.6.0_06 or superior (Middle versions between those two will bring problems in WEB SERVICES)
Apache ANT to compile and build project
MySql 4.1 or superior
Tomcat 5.0 or Superior
 
DOWNLOAD
 
Download the last version from Site Project or from SVN http://deptal.estgp.pt:9090/svn/estgweb
 
ANT CONFIGURATION
 
Download and unzip ant for some local folder.
Set Environement Variable ANT_HOME with that folder and add %ANT_HOME%/bin to PATH of your computer
Test this instalation opening a shell pront and writing >ant If the command is recognized ANT is ready to run.
It's natural system anwser you with:
=============================================================================
Buildfile: build.xml does not exist!
Build failed
=============================================================================
 
This happens because you are not in a folder with a build.xml file
 
TOMCAT CONFIGURATION
 
Download and unzip tomcat in some folder. Go to conf/tomcat-users.xml and create role "manager" and a user with that role
For example:
=============================================================================
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="admin" password="admin" roles="manager"/>
</tomcat-users>
=============================================================================
 
If you are using not self install tomcat create a startup file like this:
go to tomcat/bin
=============================================================================
set CATALINA_HOME=C:\Servidores\apache-tomcat-6.0.16
set JAVA_OPTS=-Dfile.encoding=UTF-8 -Xmx512m -Xms128m -XX:NewRatio=1 -server
set JAVA_OPTS=%JAVA_OPTS%
startup.bat
=============================================================================
 
 
if you are running a self install server version after install tomcat as Service
go to tomcat folder / bin and run tomcatXw.exe to set environement variables
at JAVA_OPTS screen write:
-Dfile.encoding=UTF-8
 
and set min memory size to 128 and max memory size to 512
 
INSTALL
 
Place yourself in project dir / impl
Copy and paste build.properties to local.properties, and change
- database configuration,
- tomcat location (in case of tomcat 5 carefully with libraries folders (see in build.properties) because are not the same in tomcat 6.0)
See local-exampleNotInUse for example. Note that this is a minimal example. Some configurations will be takes by default.
Do not include local.properties in SVN project
 
Create a new Schema in MySql with the name used in local.properties and configure a user or let be root with no password
 
At project/impl run
>ant all
 
If an error of log4j (No loggers found at routine generateHibernateDomain) appears to you stop and run it again
 
IF build is a success run
 
>ant build.war
 
And than
 
>ant tomcat.deployContext
 
If every thing goes well your system is running
 
 
SYSTEM CONFIGURATION
 
System configurations can be found at project/impl/conf/app.properties
Web services configuration can be found in build.properties and you can override in local.properties
 
SCRIPTS
 
A set of schedulable scripts are created in build and placed in impl/build/ant/scripts.
Some scripts are used to import CourseUnits, Students, Teachers and Grades from SIGES WEB-SERVICE
There are a script to clean tmp. This script delete only old files with more than 24 hours, you can run it any time.
 
 
/impl/src/java/jomm/utils/StreamsUtils.java
37,6 → 37,7
 
public static void inputStream2File(InputStream stream, File f) throws IOException
{
f.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(f);
inputStream2OutputStream(stream,out);
}
/impl/src/java/jomm/utils/DosJarIncludePathGenerator.java
21,17 → 21,30
{
 
 
if(args == null || args.length != 3)
if(args == null || args.length != 4)
{
System.out.println("USAGE: main <jarsStartDir> <targetDir> <targetFile>");
System.out.println("USAGE: main <jarsStartDir> <compiledClassesDir> <targetDir> <targetFile>");
return;
}
String path = args[0];
String targetDir = args[1];
String targetFile = args[2];
String classpath = genDir(path,"");
String classesDir = args[1];
String targetDir = args[2];
String targetFile = args[3];
path = removeDotDot(path);
classesDir = removeDotDot(classesDir);
String classpath = classesDir + ";" + genDir(path,"");
System.out.println(classesDir);
System.out.println(classpath);
new File(targetDir).mkdirs();
FileWriter writer = new FileWriter(targetDir + SEPARATOR + targetFile);
 
writer.write("set " + BASE_ENV + "=" + path + "\n");
writer.write("set " + CLASSPATH_ENV + "=" + classpath + "\n");
writer.close();
}
 
public static String removeDotDot(String path)
{
int dotdot = path.indexOf("..");
if(dotdot >= 0)
{
40,9 → 53,7
pathBeforeDotDot = pathBeforeDotDot.substring(0,lastIndexDotDotOfNewPath);
path = pathBeforeDotDot + path.substring(dotdot + 2);
}
writer.write("set " + BASE_ENV + "=" + path + "\n");
writer.write("set " + CLASSPATH_ENV + "=" + classpath + "\n");
writer.close();
return path;
}
 
private static String genDir(String path, String relative)
/impl/src/java/jomm/utils/StringsUtils.java
50,6 → 50,14
{
finalFormatedText.append("&nbsp;&nbsp;&nbsp;&nbsp;");
}
else if (text.charAt(i) == '<')
{
finalFormatedText.append("&lt;");
}
else if (text.charAt(i) == '>')
{
finalFormatedText.append("&gt;");
}
else
{
finalFormatedText.append(text.charAt(i));
59,6 → 67,31
return finalFormatedText.toString();
}
 
public static String getEscapeHtmlText(String text)
{
if (text == null || text.trim().length() == 0)
return "";
 
StringBuilder finalFormatedText = new StringBuilder();
boolean newLine = true;
for (int i = 0; i < text.length(); i++)
{
if (text.charAt(i) == '<')
{
finalFormatedText.append("&lt;");
}
else if (text.charAt(i) == '>')
{
finalFormatedText.append("&gt;");
}
else
{
finalFormatedText.append(text.charAt(i));
}
}
return finalFormatedText.toString();
}
 
public static boolean checkLetters09AZazHiffenUnderScore(String candidate)
{
if (candidate == null)
95,6 → 128,7
{
String lowerToken = token.toLowerCase();
String cleanToken = clearDiacritics(lowerToken);
cleanToken = clearNonAlfaNumericChars(cleanToken);
StringBuilder finalToken = new StringBuilder();
for(int i = 0; i< cleanToken.length();i++)
{
118,6 → 152,18
return DiacriticFilter.clean(lowerToken);
}
 
public static String clearNonAlfaNumericChars(String lowerToken)
{
StringBuilder builder = new StringBuilder();
for(int i = 0; i < lowerToken.length();i++)
{
char c = lowerToken.charAt(i);
if( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
builder.append(c);
}
return builder.toString();
}
 
public static String cleanKeepNumbers(String telemovel)
{
StringBuilder result = new StringBuilder();
/impl/src/java/jomm/utils/TemplateUtils.java
7,6 → 7,7
import java.io.StringReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.text.MessageFormat;
 
import org.apache.log4j.Logger;
 
22,11 → 23,17
 
private static HashMap templates = null;
 
 
public static String formatMessageTemplate(String template, String[] args)
{
String content = TemplateUtils.getOrLoadTemplate(template);
return MessageFormat.format(content, args);
}
/**
* Check if file content is already in Cache
* See:
*
* #getNoCommentText method
* #getNoCommentText method
* @param file to get from class loader
* @return file content
*/
/impl/src/java/jomm/web/utils/NavPlace.java
4,6 → 4,8
 
import javax.servlet.http.HttpServletRequest;
 
import org.apache.log4j.Logger;
 
/**
*
* @author Jorge Machado
11,6 → 13,8
public class NavPlace
{
 
 
private static final Logger logger = Logger.getLogger(NavPlace.class);
private static final String AuxiliaryQueryString = "AuxiliaryQueryString";
 
private int pos;
135,12 → 139,22
 
public String getMessage(HttpServletRequest request)
{
String msg = null;
try{
if(arg1 != null)
return MessageResources.getMessage(request,key,arg0,arg1);
msg = MessageResources.getMessage(request,key,arg0,arg1);
else if(arg0 != null)
return MessageResources.getMessage(request,key,arg0);
msg = MessageResources.getMessage(request,key,arg0);
else
return MessageResources.getMessage(request,key);
msg = MessageResources.getMessage(request,key);
}
catch(Exception e)
{
logger.error(e,e);
}
if(msg == null)
return key;
return msg;
}
 
 
/impl/src/java/pt/estgp/estgweb/utils/Email.java
8,7 → 8,10
import java.util.Properties;
import java.util.List;
import java.util.ArrayList;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.text.MessageFormat;
import java.io.Serializable;
 
import pt.estgp.estgweb.Globals;
 
18,10 → 21,10
* @time 18:32:21
* @see pt.estgp.estgweb.utils
*/
public class Email
public class Email implements Serializable
{
public static String EMAIL_TEMPLATES_PATH = "/template/email";
 
 
private String subject;
private List<String> recipients;
private String from;
38,64 → 41,53
this.arguments = arguments;
}
 
/**
* Sends the email.
*
* @throws javax.mail.MessagingException if there was a problem sending the mail.
*/
public void send()
throws MessagingException
 
public String getSubject()
{
return subject;
}
 
// Set up properties for mail session
Properties props = System.getProperties();
props.put("mail.smtp.host", Globals.EMAIL_SERVER_HOST);
public List<String> getRecipients()
{
return recipients;
}
 
// Get session
Session session = Session.getDefaultInstance(props, null);
public String getFrom()
{
return from;
}
 
// Create message
MimeMessage message = new MimeMessage(session);
 
// Set the recipients of the message
for (String recipient : recipients) {
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(recipient));
}
String content = TemplateUtils.getOrLoadTemplate(EMAIL_TEMPLATES_PATH + "/" + emailTemplateName);
// Format the mail message
String fullMessage = MessageFormat.format(content, arguments.toArray());
 
message.setFrom(new InternetAddress(from));
message.setSubject(subject);
message.setText(fullMessage);
 
// if (replyTo != null)
// {
// Address[] replyToAddr = new Address[1];
// replyToAddr[0] = new InternetAddress(replyTo);
// message.setReplyTo(replyToAddr);
// }
System.out.println(fullMessage);
Transport.send(message);
public String getEmailTemplateName()
{
return emailTemplateName;
}
 
public static void main(String[]args)
public List<String> getArguments()
{
List<String> recipients = new ArrayList<String>();
recipients.add("jmachado@estgp.pt");
return arguments;
}
 
List<String> arguments = new ArrayList<String>();
arguments.add("João Pedro");
arguments.add("http://www.estgp.pt/teste");
Email email = new Email("assunto de teste",recipients,Globals.SYSTEM_EMAIL_BOX,"sendPageFriend_en.txt",arguments);
try {
email.send();
}
catch (MessagingException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
public static boolean validEmail(String email)
{
if(email == null)
return false;
Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
//Match the given string with the pattern
Matcher m = p.matcher(email);
//check whether match is found
return m.matches();
}
 
public static void main( String[] args )
{
System.out.println(validEmail(""));
System.out.println(validEmail("d.@"));
System.out.println(validEmail("asd@."));
System.out.println(validEmail("a.sd@.p"));
System.out.println(validEmail("@t.pt"));
System.out.println(validEmail("e@.e"));
System.out.println(validEmail("e@"));
System.out.println(validEmail("e@e.pt"));
System.out.println(validEmail("jmachado@estgp.pt"));
}
}
/impl/src/java/pt/estgp/estgweb/utils/Dom4jUtil.java
New file
0,0 → 1,198
package pt.estgp.estgweb.utils;
 
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.*;
import org.xml.sax.*;
 
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamSource;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Hashtable;
import java.util.Map;
 
import pt.estgp.estgweb.Globals;
import net.sf.saxon.TransformerFactoryImpl;
 
 
/**
* Class Description
*
* @author Jorge Machado <machadofisher@gmail.com>
* @see ;
*/
 
public class Dom4jUtil
{
public static Document parse(URL url) throws DocumentException
{
SAXReader reader = new SAXReader();
createIgnoreErrorHandler(reader);
return reader.read(url);
}
 
public static Document parse(String xml) throws DocumentException
{
SAXReader reader = new SAXReader();
createIgnoreErrorHandler(reader);
return reader.read(new StringReader(xml));
}
public static void createIgnoreErrorHandler(SAXReader reader)
{
reader.setValidation(false);
reader.setErrorHandler(new ErrorHandler()
{
 
public void warning(SAXParseException exception) throws SAXException
{
System.out.println(exception);
}
 
public void error(SAXParseException exception) throws SAXException
{
System.out.println(exception);
}
 
public void fatalError(SAXParseException exception) throws SAXException
{
System.out.println(exception);
}
});
}
public static Document parse(File file) throws DocumentException, MalformedURLException
{
SAXReader reader = new SAXReader();
reader.setValidation(false);
createIgnoreErrorHandler(reader);
return reader.read(file);
}
 
public static Document parse(InputSource source) throws DocumentException, MalformedURLException
{
SAXReader reader = new SAXReader();
createIgnoreErrorHandler(reader);
return reader.read(source);
}
 
public static Document parse(InputStream stream) throws DocumentException, MalformedURLException
{
SAXReader reader = new SAXReader();
createIgnoreErrorHandler(reader);
return reader.read(stream);
}
 
 
 
 
public static void write(Document document,String fileDest) throws IOException
{
// lets write to a file
XMLWriter writer = new XMLWriter(
new FileWriter( fileDest )
);
writer.write( document );
writer.close();
}
 
public static void writeSout(Document document) throws IOException
{
// Compact format to System.out
OutputFormat format = OutputFormat.createCompactFormat();
XMLWriter writer = new XMLWriter( System.out, format );
writer.write( document );
}
 
public static void write(Document document,OutputStream stream) throws IOException
{
// lets write to a file
XMLWriter writer = new XMLWriter(stream);
writer.write( document );
writer.close();
}
 
public static void write(Element document,OutputStream stream) throws IOException
{
// lets write to a file
XMLWriter writer = new XMLWriter(stream);
writer.write( document );
writer.close();
}
 
public static void write(Document document,Writer writerStream) throws IOException
{
// lets write to a file
XMLWriter writer = new XMLWriter(writerStream);
writer.write( document );
writer.close();
}
 
 
private static TransformerFactory transFact = new TransformerFactoryImpl();
private static Map<String,Templates> templates =new Hashtable<String,Templates>();
 
 
/**
*
* @param document to transform
* @param stylesheet relative to classPath
* @return transformed document
* @throws Exception parsing stylesheet
*/
public static String styleDocument(Document document,String stylesheet) throws Exception {
 
Transformer transformer = getTransformerFromSystem(stylesheet);
// now lets style the given document
DocumentSource source = new DocumentSource( document );
DocumentResult result = new DocumentResult();
transformer.transform( source, result );
// return the transformed document
Document transformedDoc = result.getDocument();
StringWriter writer = new StringWriter();
write(transformedDoc,writer);
return writer.toString();
}
 
/**
*
* @param document to transform
* @param stylesheet relative to classPath
* @param fileDest to write the destination file
* @return transformed document
* @throws Exception parsing stylesheet
*/
public static Document styleDocument(Document document,String stylesheet, String fileDest) throws Exception {
 
Transformer transformer = getTransformerFromSystem(stylesheet);
// now lets style the given document
DocumentSource source = new DocumentSource( document );
DocumentResult result = new DocumentResult();
transformer.transform( source, result );
// return the transformed document
Document transformedDoc = result.getDocument();
write(transformedDoc,fileDest);
return transformedDoc;
}
 
 
private static Transformer getTransformerFromSystem(String xsltFile) throws TransformerConfigurationException, IOException
{
Templates tpl= templates.get(xsltFile);
if (tpl==null)
{
String path = Globals.CLASSES_ABSOLUTE_PATH + xsltFile;
Source xsltSource = new StreamSource(path);
tpl = transFact.newTemplates(xsltSource);
templates.put(xsltFile,tpl);
}
return tpl.newTransformer();
}
 
public static void main(String [] args) throws Exception
{
 
System.out.println(Dom4jUtil.styleDocument(Dom4jUtil.parse(new File("C:\\Servidores\\workspace\\baco\\impl\\src\\xsd\\curso_EI.xml")),"/template/xsd/curso.xsl"));
}
}
/impl/src/java/pt/estgp/estgweb/Globals.java
1,11 → 1,8
package pt.estgp.estgweb;
 
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.User;
 
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
 
/**
17,6 → 14,16
public class Globals {
 
 
public static String CLASSES_ABSOLUTE_PATH;
 
static
{
CLASSES_ABSOLUTE_PATH = Globals.class.getProtectionDomain().getCodeSource().getLocation().toString().replace("%20"," ");
if(CLASSES_ABSOLUTE_PATH.endsWith("Globals.class")) CLASSES_ABSOLUTE_PATH = CLASSES_ABSOLUTE_PATH.substring(0, CLASSES_ABSOLUTE_PATH.lastIndexOf("/")) + "/../../../";
if(CLASSES_ABSOLUTE_PATH.endsWith(".jar")) CLASSES_ABSOLUTE_PATH = CLASSES_ABSOLUTE_PATH.substring(0, CLASSES_ABSOLUTE_PATH.lastIndexOf("/")) + "/../classes/";
if(CLASSES_ABSOLUTE_PATH.endsWith("/"))
CLASSES_ABSOLUTE_PATH = CLASSES_ABSOLUTE_PATH.substring(0,CLASSES_ABSOLUTE_PATH.length()-1);
}
public static final String INTRANET_CONTENTS = ConfigProperties.getProperty("intranet.contents.dir");
public static final String INTRANET_GRADES = ConfigProperties.getProperty("intranet.grades.dir");
public static final String INTRANET_PRESENCES = ConfigProperties.getProperty("intranet.presences.dir");
61,6 → 68,7
public static final String BLOG_TYPE_COURSE_UNIT = ConfigProperties.getProperty("blog.type.courseunit");
 
/*SIGES WEB SERVICES*/
public static final BigDecimal NATIONAL_INSTITUTION_CODE = new BigDecimal(ConfigProperties.getIntProperty("national.institution.code"));
public static final BigDecimal SIGES_INSTITUTION_CODE = new BigDecimal(ConfigProperties.getIntProperty("siges.institution.code"));
public static final String SIGES_WEBSERVICE_WSDL = ConfigProperties.getProperty("ws.siges.wsdl");
public static final String SIGES_WEBSERVICE_TARGET_NAMESPACE = ConfigProperties.getProperty("ws.siges.target.namespace");
78,6 → 86,10
public static final List<String> FILTER_IGNORE_EXTENSIONS = ConfigProperties.getListValues("filter.ignore.extension");
public static final List<String> FILTER_IGNORE_PREFIXES = ConfigProperties.getListValues("filter.ignore.prefix");
 
public static final List<String> TOP_IMAGE_FILTER_LINKS = ConfigProperties.getListValues("top.image.start.with");
public static final List<String> TOP_IMAGE_FILTER_IMAGES_URL = ConfigProperties.getListValues("top.image.url");
 
 
public static final String SITE_URL = ConfigProperties.getProperty("site.url");
 
public static final String INTRANET_MESSAGES_PREFIX = "intranet.";
127,7 → 139,15
 
 
 
public static final boolean SMS_COURSEUNIT_ANNOUNCEMENT = ConfigProperties.getBooleanProperty("sms.courseunit.announcement");
public static final boolean SMS_NEW_GRADES = ConfigProperties.getBooleanProperty("sms.new.grades");
public static final boolean EMAIL_NEW_GRADES = ConfigProperties.getBooleanProperty("email.new.grades");
public static final boolean EMAIL_COURSEUNIT_ANNOUNCEMENTS = ConfigProperties.getBooleanProperty("email.courseunit.announcements");
 
public static final boolean SMS_COURSEUNIT_ANNOUNCEMENT_ONLY_PROFS = ConfigProperties.getBooleanProperty("sms.courseunit.announcement.only.profs");
 
public static final int JOB_DEAMON_SLEEP_SECONDS=ConfigProperties.getIntProperty("job.deamon.sleep.seconds");
 
public static final String MODULE_STATUS_PREFIX = "module.";
public static final boolean MODULE_STATUS_ANNOUNCEMENTS = ConfigProperties.getBooleanProperty("module.announcements");
public static final boolean MODULE_STATUS_MANAGE_IDENTIFIERS = ConfigProperties.getBooleanProperty("module.manageidentifiers");
140,6 → 160,32
public static final boolean MODULE_STATUS_INTRANET = ConfigProperties.getBooleanProperty("module.intranet");
public static final boolean MODULE_STATUS_PROFILE = ConfigProperties.getBooleanProperty("module.profile");
public static final boolean MODULE_STATUS_COURSEUNITS = ConfigProperties.getBooleanProperty("module.courseunits");
public static final boolean MODULE_STATUS_SMS = ConfigProperties.getBooleanProperty("module.sms");
 
 
public static final String TEMPLATE_COURSE_XSL_PATH = "/template/xsd/fragmentoCurso.xsl";
public static final String TEMPLATE_XSD_PATH = "/template/xsd";
public static final String TEMPLATE_EMAIL_PATH = "/template/email";
public static final String TEMPLATE_ASSIGNEMENT_PATH = "/template/assignement";
public static final String TEMPLATE_SMS_PATH = "/template/sms";
public static final String TEMPLATE_SMS_COURSEUNIT_ANNOUNCMENT = TEMPLATE_SMS_PATH + "/CourseUnit.txt";
public static final String TEMPLATE_SMS_NEW_GRADES = TEMPLATE_SMS_PATH + "/GradesUnit.txt";
public static final String TEMPLATE_SMS_NEW_GRADE = TEMPLATE_SMS_PATH + "/GradeUnit.txt";
 
public static final String EMAIL_SEND_URL_FRIEND_SUBJECT_PT = ConfigProperties.getProperty("email.send.url.friend.subject.pt");
public static final String EMAIL_SEND_URL_FRIEND_SUBJECT_EN = ConfigProperties.getProperty("email.send.url.friend.subject.en");
public static final String EMAIL_SEND_URL_FRIEND_TEMPLATE_PT = "sendPageFriend_pt.txt";
public static final String EMAIL_SEND_URL_FRIEND_TEMPLATE_EN = "sendPageFriend_en.txt";
 
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_SUBJECT_PT = ConfigProperties.getProperty("email.courseunit.announcement.subject.pt");
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_SUBJECT_EN = ConfigProperties.getProperty("email.courseunit.announcement.subject.en");
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_PT = "courseUnitAnnouncement_pt.txt";
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_EN = "courseUnitAnnouncement_en.txt";
 
public static final String EMAIL_NEW_GRADES_SUBJECT_PT = ConfigProperties.getProperty("email.new.grades.subject.pt");
public static final String EMAIL_NEW_GRADES_SUBJECT_EN = ConfigProperties.getProperty("email.new.grades.subject.en");
public static final String EMAIL_NEW_GRADES_TEMPLATE_PT = "newGrades_pt.txt";
public static final String EMAIL_NEW_GRADES_TEMPLATE_EN = "newGrades_en.txt";
 
public static final String EMAIL_GRADE_UNIT_TEMPLATE = "GradeUnit.txt";
}
/impl/src/java/pt/estgp/estgweb/services/courses/CoursesCommonServices.java
57,9 → 57,9
defaultResult.setTitle(course.getName());
defaultResult.setText(course.getDescription());
if (from == null)
defaultResult.setUrl("/startLoadCourse.do?id=" + course.getId());
defaultResult.setUrl("/startLoadCourse.do?courseView.id=" + course.getId());
else
defaultResult.setUrl("/user/startLoadCourseFrom" + from + ".do?id=" + course.getId());
defaultResult.setUrl("/user/startLoadCourseFrom" + from + ".do?courseView.id=" + course.getId());
searchResults.addResult(defaultResult);
}
}
/impl/src/java/pt/estgp/estgweb/services/courses/CoursesService.java
2,6 → 2,7
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.data.IRepositoryFile;
import pt.estgp.estgweb.services.courseunits.LoadCourseUnitAnnouncements;
import pt.estgp.estgweb.services.courseunits.LoadCourseUnitService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
11,11 → 12,20
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.utils.Dom4jUtil;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
 
import java.util.List;
import java.util.ArrayList;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.IOException;
import java.net.MalformedURLException;
 
import jomm.utils.FilesUtils;
 
90,6 → 100,8
DaoFactory.getCourseDaoImpl().save(c);
}
 
String htmlTrasformationResult = null;
 
if(stream != null && size > 0)
{
String extension = FilesUtils.getExtension(name);
102,9 → 114,35
{
repositoryService.updateRepositoryFile(c.getStudiesPlan(), stream, contentType, extension, size, name, "course.studies.plan " + c.getName(), ResourceAccessControlEnum.publicDomain);
}
IRepositoryFile repositoryFile = repositoryService.load(c.getStudiesPlan(),userSession);
stream = repositoryFile.getInput();
try
{
Document dom = Dom4jUtil.parse(stream);
String html = Dom4jUtil.styleDocument(dom, Globals.TEMPLATE_COURSE_XSL_PATH);
c.setCacheWebDocument(html);
}
catch (Exception e)
{
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
e.printStackTrace(printWriter);
htmlTrasformationResult = "<div class=\"error\"><pre>" + e.toString() + "\n" + printWriter.toString() + "</pre></div>";
printWriter.close();
}
try
{
stream.close();
}
catch (IOException e)
{
logger.error(e,e);
}
}
courseView.persistViewInObject(c);
return loadCourse(c.getId(),false);
CourseView cv = loadCourse(c.getId(),false);
cv.setHtmlResult(htmlTrasformationResult);
return cv;
}
 
public List<CourseView> loadCourses() throws ServiceException
119,5 → 157,19
return courseViews;
}
 
public List<CourseView> loadCoursesImportYear() throws ServiceException
{
String importYearIntranet = DatesUtils.getImportYear();
List<Course> courses = DaoFactory.getCourseDaoImpl().findAllOrderByName(importYearIntranet);
List<CourseView> courseViews = new ArrayList<CourseView>();
for(Course c: courses)
{
CourseView courseView = new CourseView(c);
courseViews.add(courseView);
}
return courseViews;
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/UsersUnitsService.java
31,9 → 31,10
TeacherImpl t = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(teacherId);
if(t != null)
{
courseUnit.getTeachers().remove(t);
if(courseUnit.getTeachers() != null)
courseUnit.getTeachers().remove(t);
courseUnit.getTeachers().add(t);
t.addUnitLocaly(courseUnitId);
t.addUnitLocaly(courseUnit);
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
}
else
48,7 → 49,7
{
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId);
TeacherImpl t = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(teacherId);
t.removeUnitLocaly(courseUnitId);
t.removeUnitLocaly(courseUnit);
courseUnit.getTeachers().remove(t);
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
}
59,9 → 60,10
StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code);
if(s != null)
{
courseUnit.getStudents().remove(s);
if(courseUnit.getStudents() != null)
courseUnit.getStudents().remove(s);
courseUnit.getStudents().add(s);
s.addUnitLocaly(courseUnitId);
s.addUnitLocaly(courseUnit);
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
}
else
77,7 → 79,7
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId);
StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code);
courseUnit.getStudents().remove(s);
s.removeUnitLocaly(courseUnitId);
s.removeUnitLocaly(courseUnit);
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
}
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadSubscribedUnitsCurrentYearService.java
New file
0,0 → 1,30
package pt.estgp.estgweb.services.courseunits;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.Student;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.utils.DatesUtils;
 
import java.util.List;
import java.util.ArrayList;
 
/**
* @author Jorge Machado
* @date 2/Jun/2008
* @see pt.estgp.estgweb.services.courseunits
*/
public class LoadSubscribedUnitsCurrentYearService implements IService
{
public List<CourseUnit> run(long studentId)
{
Student t = DaoFactory.getStudentDaoImpl().load(studentId);
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadSubscribedImportYearUnits(studentId, DatesUtils.getImportYear());
for(CourseUnit c: units)
{
c.getName();
c.getCourse().getName();
}
return units;
}
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitDirPackageService.java
143,9 → 143,11
 
public static void main(String[] args) throws ServiceException
{
AbstractDao.getCurrentSession().beginTransaction();
new CreateCourseUnitDirPackageService().run(null,null);
AbstractDao.getCurrentSession().getTransaction().commit();
String teste = "Sistemas Térmicos, Hidráulicos e Pneumáticos";
System.out.println(StringsUtils.normalizeResourceName(teste));
// AbstractDao.getCurrentSession().beginTransaction();
// new CreateCourseUnitDirPackageService().run(null,null);
// AbstractDao.getCurrentSession().getTransaction().commit();
}
 
 
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitWorksBackupService.java
41,8 → 41,6
 
private RepositoryService repositoryService = new RepositoryService();
 
public static String ASSIGNEMENT_TEMPLATES_PATH = "/template/assignement";
 
private static final Logger logger = Logger.getLogger(CreateCourseUnitWorksBackupService.class);
 
public String createSystemActualYearBackup(String importYear, UserSession userSession) throws ServiceException
205,7 → 203,7
 
private String createTeacherActualYearBackup(Teacher t, UserSession userSession) throws ServiceException
{
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadTeachedImportYearUnits(t.getId(),DatesUtils.getImportYear());
List units = DaoFactory.getCourseUnitDaoImpl().loadTeachedImportYearUnits(t.getId(),DatesUtils.getImportYear());
if(units == null || units.size() == 0)
return null;
return createTeacherBackup(units,t,userSession);
352,7 → 350,7
{
try
{
FilesUtils.copy(iRepositoryFile.getInput(),deliverDir + "/version" + StringsUtils.normalizeResourceName(iRepositoryFile.getName()));
FilesUtils.copy(iRepositoryFile.getInput(),deliverDir + "/version" + getResourceFileName(iRepositoryFile.getName()));
}
catch (IOException e)
{
362,6 → 360,18
}
}
 
public String getResourceFileName(String resourceName)
{
String extension = FilesUtils.getExtension( resourceName);
if(extension != null)
{
resourceName = resourceName.substring(0,resourceName.length() - extension.length());
}
if(extension == null)
extension = ".unknown";
return resourceName + extension;
}
 
private void createAssignementCopy(CourseUnitAssignement assignement, String assignementDir, UserSession userSession) throws IOException
{
String fileContent = buildAssignementTemplate(assignement);
372,7 → 382,7
if(assignement.getRepositoryStream() != null && assignement.getRepositoryStream().length() > 0)
{
IRepositoryFile iRepositoryFile = repositoryService.load(assignement.getRepositoryStream(),userSession);
FilesUtils.copy(iRepositoryFile.getInput(),assignementDir + "/" + StringsUtils.normalizeResourceName(iRepositoryFile.getName()));
FilesUtils.copy(iRepositoryFile.getInput(),assignementDir + "/" + getResourceFileName(iRepositoryFile.getName()));
}
}
 
387,7 → 397,7
pt.estgp.estgweb.web.utils.DatesUtils.getStringFromDate(assignement.getDeliverDate()),
assignement.getDescription()
};
String content = TemplateUtils.getOrLoadTemplate(ASSIGNEMENT_TEMPLATES_PATH + "/Assignement.txt");
String content = TemplateUtils.getOrLoadTemplate(Globals.TEMPLATE_ASSIGNEMENT_PATH + "/Assignement.txt");
// Format the mail message
return MessageFormat.format(content, args);
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/CourseUnitWorkService.java
57,12 → 57,12
{
assignement = DomainObjectFactory.createCourseUnitAssignementImpl();
assignement.setCourseUnit(courseUnit);
DaoFactory.getCourseUnitAssignementDaoImpl().save(assignement);
}
cUV.persistViewInObject(assignement);
 
if(name != null && name.length() > 0 && size > 0 && file != null)
{
 
String extension = FilesUtils.getExtension(name);
if(assignement.getRepositoryStream() == null || assignement.getRepositoryStream().trim().length() == 0)
{
73,7 → 73,7
repositoryService.updateRepositoryFile(assignement.getRepositoryStream(), file, contentType, extension, size, name, "courseunit.assignement.file " + courseUnit.getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDomain);
}
 
DaoFactory.getCourseUnitAssignementDaoImpl().save(assignement);
 
return loadCourseUnitWorks(id,userSession);
}
 
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadTeachedUnitsCurrentYearService.java
New file
0,0 → 1,32
package pt.estgp.estgweb.services.courseunits;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.utils.DatesUtils;
 
import java.util.List;
import java.util.ArrayList;
 
/**
* @author Jorge Machado
* @date 2/Jun/2008
* @see pt.estgp.estgweb.services.courseunits
*/
public class LoadTeachedUnitsCurrentYearService implements IService
{
public List<CourseUnitImpl> run(long teacherId)
{
Teacher t = DaoFactory.getTeacherDaoImpl().load(teacherId);
List<CourseUnitImpl> units = DaoFactory.getCourseUnitDaoImpl().loadTeachedImportYearUnits(teacherId,DatesUtils.getImportYear());
 
for(CourseUnit c: units)
{
c.getName();
c.getCourse().getName();
}
return units;
}
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadSubscribedUnitsOldYearsService.java
New file
0,0 → 1,29
package pt.estgp.estgweb.services.courseunits;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.Student;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.utils.DatesUtils;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 2/Jun/2008
* @see pt.estgp.estgweb.services.courseunits
*/
public class LoadSubscribedUnitsOldYearsService implements IService
{
public List<CourseUnit> run(long studentId)
{
// Student t = DaoFactory.getStudentDaoImpl().load(studentId);
List<CourseUnit> units = DaoFactory.getCourseUnitDaoImpl().loadSubscribedOtherImportYearUnits(studentId, DatesUtils.getImportYear());
for(CourseUnit c: units)
{
c.getName();
c.getCourse().getName();
}
return units;
}
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/ScheduleCourseUnitAnnouncementSmsService.java
New file
0,0 → 1,153
package pt.estgp.estgweb.services.courseunits;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
import jomm.utils.BytesUtils;
import jomm.utils.StringsUtils;
import jomm.utils.FilesUtils;
import jomm.dao.impl.AbstractDao;
 
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
public class ScheduleCourseUnitAnnouncementSmsService implements IService
{
private static final Logger logger = Logger.getLogger(ScheduleCourseUnitAnnouncementSmsService.class);
 
public String run(String importYear, UserSession userSession) throws ServiceException
{
if(importYear == null || importYear.trim().length() == 0)
importYear = DatesUtils.getImportYear();
String importYearIntranet = DatesUtils.getImportYearIntranet();
String tmpName = BytesUtils.generateHexKey();
String tmpDir = Globals.TMP_DIR + "/" + tmpName;
new File(tmpDir).mkdirs();
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(importYear);
try
{
FileWriter batRunner = new FileWriter(tmpDir + "/create.bat");
 
String back = "";
for(Course c: courses)
{
String couseDirPath = tmpDir + "/" + StringsUtils.normalizeResourceName(c.getName()) + '.' + c.getCode();
File courseDir = new File(couseDirPath);
courseDir.mkdirs();
try
{
String courseImportYearPathDos = couseDirPath + "\\" + importYearIntranet;
String courseImportYearPath = couseDirPath + "/" + importYearIntranet;
File courseImportYearDir = new File(courseImportYearPath);
courseImportYearDir.mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1).mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2).mkdirs();
FilesUtils.copy(ScheduleCourseUnitAnnouncementSmsService.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1 + "/" + Globals.INTRANET_SETUP_FILE_NAME);
FilesUtils.copy(ScheduleCourseUnitAnnouncementSmsService.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2 + "/" + Globals.INTRANET_SETUP_FILE_NAME);
 
String callPathS1 = (courseImportYearPathDos + "\\" + Globals.INTRANET_SEMESTRE_S1 + "\\").substring(tmpDir.length() + 1);
String callPathS2 = (courseImportYearPathDos + "\\" + Globals.INTRANET_SEMESTRE_S2 + "\\").substring(tmpDir.length() + 1);
batRunner.write("cd " + back + callPathS1);
back = "..\\..\\..\\";
batRunner.write("\n");
batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME);
batRunner.write("\n");
batRunner.write("cd " + back + callPathS2);
batRunner.write("\n");
batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME);
batRunner.write("\n");
FileWriter confWriterSemestre1 = new FileWriter(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1 + "/" + Globals.INTRANET_USERS_SETUP_FILE_NAME);
FileWriter confWriterSemestre2 = new FileWriter(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2 + "/" + Globals.INTRANET_USERS_SETUP_FILE_NAME);
 
 
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(c.getId(),importYear);
for(CourseUnit courseUnit: courseUnits)
{
FileWriter nowWriter;
String semestre;
if(courseUnit.getSemestre().equals("S1"))
{
nowWriter = confWriterSemestre1;
semestre = Globals.INTRANET_SEMESTRE_S1;
}
else
{
nowWriter = confWriterSemestre2;
semestre = Globals.INTRANET_SEMESTRE_S2;
}
 
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName());
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName;
courseUnit.setNormalizedName(normalizedName);
courseUnit.setPathIntranet(unitPath.substring(tmpDir.length()));
nowWriter.write(normalizedName);
 
if(courseUnit.getTeachers() != null)
{
String users = "";
int counter = 0;
for(Teacher t: courseUnit.getTeachers())
{
if(t.getUsername() != null)
{
users += " " + t.getUsername();
counter++;
}
}
nowWriter.write(" " + counter + users);
nowWriter.write("\n");
}
}
confWriterSemestre1.close();
confWriterSemestre2.close();
}
catch (IOException e)
{
logger.error(e,e);
}
}
batRunner.write("cd " + back);
batRunner.close();
FilesUtils.zipFolder(tmpDir,tmpDir + ".zip");
FilesUtils.delete(tmpDir);
return tmpName + ".zip";
}
catch (IOException e)
{
logger.error(e,e);
}
return null;
}
 
public static void main(String[] args) throws ServiceException
{
AbstractDao.getCurrentSession().beginTransaction();
new ScheduleCourseUnitAnnouncementSmsService().run(null,null);
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
 
}
/impl/src/java/pt/estgp/estgweb/services/email/SendUrl2FriendService.java
File deleted
/impl/src/java/pt/estgp/estgweb/services/email/EMAILJob.java
New file
0,0 → 1,48
package pt.estgp.estgweb.services.email;
 
import pt.estgp.estgweb.services.jobs.JobHandler;
import pt.estgp.estgweb.services.sms.SMSJob;
import pt.estgp.estgweb.services.sms.SmsService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.utils.Email;
 
import java.io.Serializable;
import java.util.List;
 
import org.apache.log4j.Logger;
import jomm.utils.TemplateUtils;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.sms
*/
public class EMAILJob implements JobHandler, Serializable
{
private static final Logger logger = Logger.getLogger(EMAILJob.class);
 
private Email email;
 
 
 
 
public EMAILJob(Email email)
{
this.email = email;
}
 
 
 
public void runJob()
{
try
{
new SendEmailService().sendEmail(email);
}
catch (ServiceException e)
{
logger.error("Sending EMAIL:" + e.toString(),e);
}
}
}
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java
New file
0,0 → 1,217
package pt.estgp.estgweb.services.email;
 
import jomm.utils.TemplateUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.enums.LangEnum;
import pt.estgp.estgweb.domain.CourseUnitAnnouncement;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.utils.Email;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.text.MessageFormat;
 
/**
* @author Jorge Machado
* @date 20/Mar/2008
* @time 18:31:00
* @see pt.estgp.estgweb.services.email
*/
public class SendEmailService implements IService
{
private static final Logger logger = Logger.getLogger(SendEmailService.class);
 
private static final String gradeUnitTemplate = Globals.TEMPLATE_EMAIL_PATH + "/" + Globals.EMAIL_GRADE_UNIT_TEMPLATE;
 
public void sendEmail(Email email) throws ServiceException
{
try{
 
// Set up properties for mail session
Properties props = System.getProperties();
props.put("mail.smtp.host", Globals.EMAIL_SERVER_HOST);
 
// Get session
Session session = Session.getDefaultInstance(props, null);
 
// Create message
MimeMessage message = new MimeMessage(session);
// Set the recipients of the message
boolean valid = false;
for (String recipient : email.getRecipients())
{
if(Email.validEmail(recipient))
{
valid=true;
message.addRecipient(Message.RecipientType.TO,new InternetAddress(recipient));
}
}
if(valid)
{
String content = TemplateUtils.getOrLoadTemplate(Globals.TEMPLATE_EMAIL_PATH + "/" + email.getEmailTemplateName());
// Format the mail message
String fullMessage = MessageFormat.format(content, email.getArguments().toArray());
 
message.setFrom(new InternetAddress(email.getFrom()));
message.setSubject(email.getSubject());
message.setText(fullMessage);
 
Transport.send(message);
}
}
catch(MessagingException e)
{
logger.error(e,e);
throw new ServiceException(e.toString());
}
}
 
public Email getSendUrlToFriendEmail(String url, String from, LangEnum langEnum, List<String> recipients)
{
List<String> arguments = new ArrayList<String>();
arguments.add(from);
arguments.add(url);
String subjectTxt;
String template;
 
if(langEnum == LangEnum.PORTUGUESE)
{
template = Globals.EMAIL_SEND_URL_FRIEND_TEMPLATE_PT;
subjectTxt = Globals.EMAIL_SEND_URL_FRIEND_SUBJECT_PT;
}
else
{
template = Globals.EMAIL_SEND_URL_FRIEND_TEMPLATE_EN;
subjectTxt = Globals.EMAIL_SEND_URL_FRIEND_SUBJECT_EN;
}
 
String subject = java.text.MessageFormat.format(subjectTxt,new String[]{from});
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
public boolean sendUrlToFriend(String url, String from, LangEnum langEnum, List<String> recipients)
{
try
{
sendEmail(getSendUrlToFriendEmail(url,from,langEnum,recipients));
return true;
}
catch (ServiceException e)
{
return false;
}
}
 
public boolean sendCourseUnitAnnouncement(CourseUnitAnnouncement announcement, LangEnum langEnum, String from, List<User> users)
{
try
{
sendEmail(getCourseUnitAnnouncementEmail(announcement,langEnum,from,users));
return true;
}
catch (ServiceException e)
{
return false;
}
}
 
public Email getCourseUnitAnnouncementEmail(CourseUnitAnnouncement announcement, LangEnum langEnum, String from, List<User> users)
{
List<String> arguments = new ArrayList<String>();
arguments.add(announcement.getCourseUnit().getName());
arguments.add(announcement.getTitle());
arguments.add(announcement.getText());
arguments.add(from);
 
String subjectTxt;
String template;
 
if(langEnum == LangEnum.PORTUGUESE)
{
template = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_PT;
subjectTxt = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_SUBJECT_PT;
}
else
{
template = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_EN;
subjectTxt = Globals.EMAIL_COURSEUNIT_ANNOUNCEMENT_SUBJECT_EN;
}
 
List<String> recipients = new ArrayList<String>();
for(User u: users)
{
if(Email.validEmail(u.getEmail()))
recipients.add(u.getEmail());
}
 
String subject = java.text.MessageFormat.format(subjectTxt,new String[]{announcement.getCourseUnit().getNormalizedName(),announcement.getTitle()});
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
 
public Email getNewGradesEmail(List<String[]> grades, LangEnum langEnum, String studentEmail, String studentName)
{
List<String> arguments = new ArrayList<String>();
 
String subject;
String template;
 
if(langEnum == LangEnum.PORTUGUESE)
{
template = Globals.EMAIL_NEW_GRADES_TEMPLATE_PT;
subject = Globals.EMAIL_NEW_GRADES_SUBJECT_PT;
}
else
{
template = Globals.EMAIL_NEW_GRADES_TEMPLATE_EN;
subject = Globals.EMAIL_NEW_GRADES_SUBJECT_EN;
}
 
StringBuilder gradesBuilder = new StringBuilder();
for(String[] grade: grades)
{
String gradeTxt = TemplateUtils.formatMessageTemplate(gradeUnitTemplate,grade);
gradesBuilder.append(gradeTxt);
}
 
arguments.add(studentName);
arguments.add(gradesBuilder.toString());
 
List<String> recipients = new ArrayList<String>();
recipients.add(studentEmail);
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments);
}
 
public boolean sendNewGrades(List<String[]> grades, LangEnum langEnum, String studentEmail, String studentName)
{
try
{
sendEmail(getNewGradesEmail(grades,langEnum,studentEmail,studentName));
return true;
}
catch (ServiceException e)
{
return false;
}
 
}
 
public static void main(String [] args)
{
List<String[]> grades = new ArrayList<String[]>();
grades.add(new String[]{"Teste","3"});
grades.add(new String[]{"Teste2","4"});
new SendEmailService().sendNewGrades(grades,LangEnum.PORTUGUESE,"jmachado@estgp.pt","jorge Machado");
}
 
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportGradesService.java
6,9 → 6,14
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.sms.SMSJob;
import pt.estgp.estgweb.services.jobs.JobScheduleService;
import pt.estgp.estgweb.services.email.EMAILJob;
import pt.estgp.estgweb.services.email.SendEmailService;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.LangEnum;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.ipportalegre.siges.web.services.*;
import org.apache.log4j.Logger;
16,10 → 21,10
import javax.xml.namespace.QName;
import java.net.URL;
import java.net.MalformedURLException;
import java.math.BigDecimal;
import java.util.*;
 
import jomm.dao.impl.AbstractDao;
import jomm.utils.TemplateUtils;
 
/**
* @author Jorge Machado
34,7 → 39,7
 
private static final int MAX_COMMIT = 100;
 
private List<Long> newGrades = new ArrayList<Long>();
private HashMap<Long,List<Long>> newGrades = new HashMap<Long,List<Long>>();
 
public ILogMessages run(String year) throws ServiceException
{
70,6 → 75,7
int codAluno = nota.getCodigoAluno().intValue();
int codUnidade = nota.getCodigoDisciplina().intValue();
int codCurso = nota.getCodigoCurso().intValue();
String cdDuracao = nota.getCdDuracao();
int valor = nota.getNota().intValue();
int statusEpoca = nota.getStatusEpoca().intValue();
Date data = nota.getDataAvaliacao().toGregorianCalendar().getTime();
81,7 → 87,7
{
CourseUnit courseUnit;
try{
courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueSubscribed("" + codUnidade, "" + codCurso,s.getId());
courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueSubscribed("" + codUnidade, year, "" + codCurso,s.getId(),cdDuracao);
if(courseUnit != null)
{
CourseUnitGrade grade = DaoFactory.getCourseUnitGradeDaoImpl().find(courseUnit.getId(),s.getId());
90,16 → 96,19
grade = DomainObjectFactory.createCourseUnitGradeImpl();
grade.setStudent(s);
grade.setCourseUnit(courseUnit);
grade.setNormalizedCourseUnitName(courseUnit.getNormalizedName());
grade.setImportYear(year);
DaoFactory.getCourseUnitGradeDaoImpl().save(grade);
newGrades.add(grade.getId());
if(grade.getGrade() > 0)
addGrade(grade);
}
if(grade.getGrade() != valor || grade.getStatusEpoca() != statusEpoca || grade.getPublishDate().getTime() != data.getTime())
if(grade.getGrade() != valor || grade.getStatusEpoca() != statusEpoca || (grade.getPublishDate() != null && grade.getPublishDate().getTime() != data.getTime()))
{
grade.setPublishDate(data);
grade.setGrade(valor);
grade.setStatusEpoca(statusEpoca);
newGrades.add(grade.getId());
if(grade.getGrade() > 0)
addGrade(grade);
}
}
else
109,7 → 118,7
}
}catch(Exception e)
{
logger.warn("Not unique : unit:" + codUnidade + " course:" + codCurso + " student:" + s.getId());
logger.warn("Error : unit:" + codUnidade + " course:" + codCurso + " student:" + s.getId(),e);
}
 
}
120,6 → 129,8
}
 
}
sendSms(null);
sendEmail(null);
AbstractDao.getCurrentSession().getTransaction().commit();
}
catch (Throwable e)
134,6 → 145,68
return logMessages;
}
 
private void addGrade(CourseUnitGrade grade)
{
List<Long> studentGrades = newGrades.get(grade.getStudent().getId());
if(studentGrades == null)
{
studentGrades = new ArrayList<Long>();
newGrades.put(grade.getStudent().getId(),studentGrades);
}
studentGrades.add(grade.getId());
}
 
private void sendSms(UserSession userSession)
{
if(Globals.SMS_NEW_GRADES && newGrades.size() > 0)
{
Set<Map.Entry<Long,List<Long>>> set = newGrades.entrySet();
for(Map.Entry<Long,List<Long>> entry: set)
{
long studentId = entry.getKey();
List<Long> studentGrades = entry.getValue();
Student s = DaoFactory.getStudentDaoImpl().get(studentId);
if(SMSJob.validPhoneNumber(s.getPhonenumber()))
{
StringBuilder gradesBuilder = new StringBuilder();
for(long gradeId: studentGrades)
{
CourseUnitGrade grade = DaoFactory.getCourseUnitGradeDaoImpl().get(gradeId);
String gradeStr = TemplateUtils.formatMessageTemplate(Globals.TEMPLATE_SMS_NEW_GRADE,new String[]{grade.getNormalizedCourseUnitName(),""+grade.getGrade()});
gradesBuilder.append(gradeStr);
}
SMSJob smsJob = new SMSJob(s,new String[]{gradesBuilder.toString()},Globals.TEMPLATE_SMS_NEW_GRADES);
JobScheduleService.getInstance().scheduleNow(smsJob,"New Grades SMS: to" + s.getUsername(),userSession);
}
}
}
}
public static SendEmailService sendEmailService = new SendEmailService();
 
private void sendEmail(UserSession userSession)
{
if(Globals.EMAIL_NEW_GRADES && newGrades.size() > 0)
{
Set<Map.Entry<Long,List<Long>>> set = newGrades.entrySet();
for(Map.Entry<Long,List<Long>> entry: set)
{
long studentId = entry.getKey();
List<Long> studentGrades = entry.getValue();
Student s = DaoFactory.getStudentDaoImpl().get(studentId);
 
List<String[]> gradesArray = new ArrayList<String[]>();
for(long gradeId: studentGrades)
{
CourseUnitGrade grade = DaoFactory.getCourseUnitGradeDaoImpl().get(gradeId);
String[] gradeArray = new String[] {grade.getNormalizedCourseUnitName(),""+grade.getGrade()};
gradesArray.add(gradeArray);
}
EMAILJob emailJob = new EMAILJob(sendEmailService.getNewGradesEmail(gradesArray, LangEnum.PORTUGUESE,s.getEmail(),s.getName()));
JobScheduleService.getInstance().scheduleNow(emailJob,"New Grades EMAIL: to" + s.getUsername(),userSession);
}
}
}
 
/**
* Testar por aqui poi requer Super Role e assim e' autmatico
*
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java
13,9 → 13,7
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.ipportalegre.siges.web.services.Aluno;
import pt.ipportalegre.siges.web.services.ArrayOfDecimal;
import pt.ipportalegre.siges.web.services.SiGesWEB;
import pt.ipportalegre.siges.web.services.*;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import javax.xml.namespace.QName;
131,26 → 129,49
student.setUsername("a" + d.getCodigo().intValue());
 
/*Desta forma as relacoes antigas sao ignoradas cria-se uma lista nova e atribui-se ao Teacher, o Hibernate faz resto e apaga as chaves estrangeiras antigas */
if (d.getDisciplinasInscrito() == null || d.getDisciplinasInscrito().getDecimal() == null || d.getDisciplinasInscrito().getDecimal().size() == 0)
if (d.getDisciplinasInscrito() == null || d.getDisciplinasInscrito().getDisciplina() == null || d.getDisciplinasInscrito().getDisciplina().size() == 0)
logger.warn("ATENTION STUDENT WITH ZERO UNITS: codigo " + d.getCodigo());
else
{
Set<CourseUnit> units = new HashSet<CourseUnit>();
for (BigDecimal unitCode : d.getDisciplinasInscrito().getDecimal())
ArrayOfDisciplina disciplinas = d.getDisciplinasInscrito();
for (Disciplina disciplina : disciplinas.getDisciplina())
{
List<CourseUnit> l = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + unitCode.intValue());
if (l != null)
units.addAll(l);
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + disciplina.getCodigoCurso(),disciplina.getCdDuracao(),disciplina.getCdLectivo());
if(courseUnit == null)
{
logger.warn("Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo());
}
else
logger.warn("ATENTION SIGES COURSE UNIT NOT FOUND IN BACO STORAGE: curseUnit " + unitCode.intValue());
units.add(courseUnit);
}
Iterator<CourseUnit> iter = units.iterator();
while (iter.hasNext())
{
CourseUnit courseUnit = iter.next();
if(((StudentImpl)student).isLocalRemovedUnit(courseUnit.getId()))
if(((StudentImpl)student).isLocalRemovedUnit(courseUnit))
iter.remove();
}
 
if(student.getSubscribedUnits() != null)
{
for(CourseUnit c: units)
{
boolean isIn = false;
for(CourseUnit tc : student.getSubscribedUnits())
{
if(tc.equals(c))
{
isIn = true;
break;
}
}
if(!isIn)
student.getSubscribedUnits().add(c);
}
}
else
student.setSubscribedUnits(units);
student.setSubscribedUnits(units);
}
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java
10,10 → 10,7
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.TeacherImpl;
import pt.estgp.estgweb.domain.*;
import pt.ipportalegre.siges.web.services.*;
import org.apache.log4j.Logger;
 
116,28 → 113,48
t.setAcademicName(d.getNomeAcademico());
t.setBirthDate(d.getDataNascimento().toGregorianCalendar().getTime());
//Desta forma as relacoes antigas sao ignoradas cria-se uma lista nova e atribui-se ao Teacher, o Hibernate faz resto e apaga as chaves estrangeiras antigas
if (d.getDisciplinas() == null || d.getDisciplinas().getDecimal() == null || d.getDisciplinas().getDecimal().size() == 0)
if (d.getDisciplinas() == null || d.getDisciplinas().getDisciplina() == null || d.getDisciplinas().getDisciplina().size() == 0)
logger.warn("ATENTION TEACHER WITH ZERO UNITS: codigoFuncionario " + d.getCodigoFuncionario());
else
{
Set<CourseUnit> units = new HashSet<CourseUnit>();
for (BigDecimal unitCode : d.getDisciplinas().getDecimal())
for (Disciplina disciplina : d.getDisciplinas().getDisciplina())
{
List<CourseUnit> l = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + unitCode.intValue());
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + disciplina.getCodigoCurso(),"" + disciplina.getCdDuracao(),"" + disciplina.getCdLectivo());
 
if (l != null)
units.addAll(l);
if(courseUnit == null)
{
logger.warn("Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo());
}
else
logger.warn("ATENTION SIGES COURSE UNIT NOT FOUND IN BACO STORAGE: curseUnit " + unitCode.intValue());
units.add(courseUnit);
}
Iterator<CourseUnit> iter = units.iterator();
while (iter.hasNext())
{
CourseUnit courseUnit = iter.next();
if(((TeacherImpl)t).isLocalRemovedUnit(courseUnit.getId()))
if(((TeacherImpl)t).isLocalRemovedUnit(courseUnit))
iter.remove();
}
t.setTeachedUnits(units);
if(t.getTeachedUnits() != null)
{
for(CourseUnit c: units)
{
boolean isIn = false;
for(CourseUnit tc : t.getTeachedUnits())
{
if(tc.equals(c))
{
isIn = true;
break;
}
}
if(!isIn)
t.getTeachedUnits().add(c);
}
}
else
t.setTeachedUnits(units);
}
}
 
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
143,10 → 143,12
for (Map.Entry<String, Disciplina> entry : set)
{
Disciplina d = entry.getValue();
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre);
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year);
if (c == null)
{
c = DomainObjectFactory.createCourseUnitImpl();
 
DaoFactory.getCourseUnitDaoImpl().save(c);DaoFactory.getCourseUnitDaoImpl().save(c);
}
c.setName(d.getNome());
c.setInstitutionCode("" + Globals.SIGES_INSTITUTION_CODE);
c.setCode("" + d.getCodigo().intValue());
156,7 → 158,7
c.setImportYear(year);
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode());
c.setCourse(course);
DaoFactory.getCourseUnitDaoImpl().save(c);
 
}
}
 
/impl/src/java/pt/estgp/estgweb/services/jobs/JobRunner.java
New file
0,0 → 1,22
package pt.estgp.estgweb.services.jobs;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.jobs
*/
public class JobRunner implements Runnable
{
 
JobHandler handler;
 
public JobRunner(JobHandler handler)
{
this.handler = handler;
}
 
public void run()
{
handler.runJob();
}
}
/impl/src/java/pt/estgp/estgweb/services/jobs/JobHandler.java
New file
0,0 → 1,13
package pt.estgp.estgweb.services.jobs;
 
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.jobs
*/
public interface JobHandler extends Serializable
{
public void runJob();
}
/impl/src/java/pt/estgp/estgweb/services/jobs/JobScheduleService.java
New file
0,0 → 1,40
package pt.estgp.estgweb.services.jobs;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.Job;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
 
import java.util.Date;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.jobs
*/
public class JobScheduleService implements IService
{
 
private static JobScheduleService instance = new JobScheduleService();
 
public static JobScheduleService getInstance()
{
return instance;
}
public void scheduleNow(JobHandler handler, String description, UserSession userSession)
{
schedule(handler, description, new Date(),userSession);
}
 
public void schedule(JobHandler handler, String description, Date startDate, UserSession userSession)
{
Job job = DomainObjectFactory.createJobImpl();
if(userSession != null && userSession.getUser() != null)
job.setOwner(userSession.getUser());
job.setDescription(description);
job.setStartDate(startDate);
job.setJobHandler(handler);
DaoFactory.getJobDaoImpl().save(job);
}
}
/impl/src/java/pt/estgp/estgweb/services/jobs/JobDeamon.java
New file
0,0 → 1,61
package pt.estgp.estgweb.services.jobs;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.Job;
import pt.estgp.estgweb.Globals;
import jomm.dao.impl.AbstractDao;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.jobs
*/
public class JobDeamon implements Runnable
{
public static final Logger logger = Logger.getLogger(JobDeamon.class);
 
public void run()
{
while(true)
{
try
{
logger.info("JobRunner: Waiking up");
AbstractDao.getCurrentSession().beginTransaction();
List<Job> jobs = DaoFactory.getJobDaoImpl().findExecutableJobs();
logger.info("JobRunner found: " + jobs.size() + " jobs");
for(Job j: jobs)
{
logger.info("JobRunner running job: " + j.getDescription());
JobRunner jobRunner = new JobRunner((JobHandler) j.getJobHandler());
jobRunner.run();
j.setExecuted(true);
}
AbstractDao.getCurrentSession().getTransaction().commit();
Thread.sleep(Globals.JOB_DEAMON_SLEEP_SECONDS*1000);
}
catch (InterruptedException e)
{
logger.error(e,e);
try
{
if(AbstractDao.getCurrentSession().getTransaction().isActive())
AbstractDao.getCurrentSession().getTransaction().rollback();
}
catch(Throwable t)
{
logger.fatal(t,t);
logger.fatal("STOPING JOB DEAMON");
break;
}
}
}
}
public static void main(String [] args)
{
new JobDeamon().run();
}
}
/impl/src/java/pt/estgp/estgweb/services/utils/TransformXmlService.java
New file
0,0 → 1,47
package pt.estgp.estgweb.services.utils;
 
import pt.estgp.estgweb.utils.Dom4jUtil;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.File;
 
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
public class TransformXmlService implements IService
{
public void transform(String xmlFile, String xslTemplate, String fileDest) throws Exception
{
try
{
Dom4jUtil.styleDocument(Dom4jUtil.parse(new File(xmlFile)),xslTemplate,fileDest);
}
catch (Exception e)
{
throw e;
}
}
 
 
public static void main(String [] args)
{
String xmlFile = args[0];
String xslTemplate = args[1];
String fileDest = args[2];
System.out.println("");
try
{
new TransformXmlService().transform(xmlFile,xslTemplate,fileDest);
}
catch (Exception e)
{
System.out.println(e.toString());
e.printStackTrace();
}
 
}
}
/impl/src/java/pt/estgp/estgweb/services/profile/CurriculumService.java
7,7 → 7,9
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.RecordEnum;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.utils.DatesUtils;
import org.apache.log4j.Logger;
 
import java.io.InputStream;
40,9 → 42,13
public UserView deleteRecord(long recordId, UserSession userSession) throws ServiceException
{
Record record = DaoFactory.getRecordDaoImpl().load(recordId);
RepositoryFile repositoryFile = DaoFactory.getRepositoryFileDaoImpl().loadByIdentifier(record.getRepositoryStream());
repositoryFile.setDeleted(true);
if(record.getRepositoryStream() != null && record.getRepositoryStream().length() > 0)
{
RepositoryFile repositoryFile = DaoFactory.getRepositoryFileDaoImpl().loadByIdentifier(record.getRepositoryStream());
repositoryFile.setDeleted(true);
}
DaoFactory.getRecordDaoImpl().delete(record);
userSession.getUser().getCreatorRecords().remove(record);
return loadUserViewWithRecords(record.getOwner().getId(),userSession);
}
 
51,7 → 57,7
Record record = DaoFactory.getRecordDaoImpl().load(recordId);
return new RecordView(record,true);
}
 
public UserView createRecord(RecordView recordView,InputStream file, String name, String contentType, int size, UserSession userSession) throws ServiceException
{
Record r;
99,7 → 105,7
return loadUserViewWithRecords(u.getId(),userSession);
return null;
}
 
public UserView loadUserViewWithRecords(long id, UserSession userSession) throws ServiceException
{
User u;
131,7 → 137,7
if(u instanceof Teacher)
{
Teacher teacher = (Teacher) u;
courseUnits = teacher.getTeachedUnits();
courseUnits = new HashSet<CourseUnit>(DaoFactory.getCourseUnitDaoImpl().loadTeachedImportYearUnits(teacher.getId(), DatesUtils.getImportYear()));
}
else if(u instanceof Student)
{
/impl/src/java/pt/estgp/estgweb/services/sms/SmsService.java
New file
0,0 → 1,70
package pt.estgp.estgweb.services.sms;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.Globals;
import pt.ipportalegre.siges.web.services.SiGesWEB;
import org.apache.log4j.Logger;
 
import javax.xml.namespace.QName;
import java.util.*;
import java.net.URL;
import java.net.MalformedURLException;
 
/**
* @author Jorge Machado
*/
public class SmsService implements IService
{
private static final Logger logger = Logger.getLogger(SmsService.class);
 
public void run(String message, String phones) throws ServiceException
{
if(Globals.MODULE_STATUS_SMS)
{
logger.info("start sending sms send");
try
{
SiGesWEB service;
try
{
service = new SiGesWEB(new URL(Globals.SIGES_WEBSERVICE_WSDL), new QName(Globals.SIGES_WEBSERVICE_TARGET_NAMESPACE, "SiGesWEB"));
}
catch (MalformedURLException e)
{
logger.fatal(e, e);
return;
}
// ArrayOfString phonesArray = new ArrayOfString();
// for(String phone: phones)
// {
// phonesArray.getString().add(phone);
// }
service.getSiGesWEBSoap().sendSmsSeparatedWithComma(message,phones,Globals.SIGES_WEBSERVICE_SECRET);
}
catch (Throwable e)
{
logger.error(e,e);
}
logger.info("terminating sms send");
}
else
{
logger.info("SMS module turned off");
}
}
 
 
public static void main(String[] args) throws ServiceException
{
// AbstractDao.getCurrentSession().beginTransaction();
List<String> phones = new ArrayList<String>();
phones.add("916252810");
phones.add("916252810");
 
new SmsService().run("Teste Final","916252810,916252810");
// AbstractDao.getCurrentSession().getTransaction().commit();
}
 
 
}
/impl/src/java/pt/estgp/estgweb/services/sms/SMSJob.java
New file
0,0 → 1,77
package pt.estgp.estgweb.services.sms;
 
import pt.estgp.estgweb.services.jobs.JobHandler;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.User;
 
import java.io.Serializable;
import java.util.List;
 
import org.apache.log4j.Logger;
import jomm.utils.TemplateUtils;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.services.sms
*/
public class SMSJob implements JobHandler, Serializable
{
private static final Logger logger = Logger.getLogger(SMSJob.class);
private static String separator = "";
private static String separator2 = ",";
 
private String phones;
private String message;
 
 
public SMSJob(List<User> userPhones, String[] args, String template)
{
if(userPhones != null)
{
StringBuilder phonesBuilder = new StringBuilder();
for(User u: userPhones)
{
if(validPhoneNumber(u.getPhonenumber()))
{
phonesBuilder.append(separator).append(u.getPhonenumber());
separator = separator2;
}
}
this.phones = phonesBuilder.toString();
}
this.message = TemplateUtils.formatMessageTemplate(template,args);
}
public SMSJob(User user, String[] args, String template)
{
if(user != null)
{
this.phones = user.getPhonenumber();
this.message = TemplateUtils.formatMessageTemplate(template,args);
}
}
public SMSJob(String phones, String message)
{
this.phones = phones;
this.message = message;
}
 
public static boolean validPhoneNumber(String phoneNumber)
{
return phoneNumber != null && phoneNumber.length() == 9 && phoneNumber.startsWith("9");
}
 
public void runJob()
{
try
{
new SmsService().run(message,phones);
}
catch (ServiceException e)
{
logger.error("Sending SMS:" + e.toString(),e);
}
}
}
/impl/src/java/pt/estgp/estgweb/services/blogs/LoadEditableBlogs.java
6,6 → 6,7
import pt.estgp.estgweb.domain.BlogImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
 
import java.util.List;
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogService.java
2,6 → 2,7
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.ImageManager;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.dao.DaoFactory;
36,6 → 37,11
Blog b;
if(bV.getId() <= 0)
{
if(bV.getImage() != null)
{
DaoFactory.getImageDaoImpl().save(bV.getImage());
ImageManager.store((ImageImpl) bV.getImage());
}
if(bV.getCourseUnitView() != null)
{
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(bV.getCourseUnitView().getId());
58,6 → 64,15
else
{
b = DaoFactory.getBlogDaoImpl().get(bV.getSerializable());
 
if(bV.getImage() != null && b.getImage() != null)
DaoFactory.getImageDaoImpl().delete(b.getImage().getId());
if(bV.getImage() != null)
{
DaoFactory.getImageDaoImpl().save(bV.getImage());
ImageManager.store((ImageImpl) bV.getImage());
b.setImage(bV.getImage());
}
}
if(userSession.getUser() != null && userSession.getUser().isSuperuserOrAdmin())
bV.persistViewInObjectByAdmin(b);
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogPostService.java
3,10 → 3,7
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.domain.views.BlogPostView;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.BlogPostImpl;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.ImageManager;
54,13 → 51,9
DaoFactory.getImageDaoImpl().delete(bP.getImage().getId());
}
if(bPV.getImage() != null)
{
byte[] bytes = bPV.getImage().getImage();
bPV.getImage().setImage(null);
{
DaoFactory.getImageDaoImpl().save(bPV.getImage());
bPV.getImage().setImage(bytes);
ImageManager.store(bPV.getImage());
bPV.getImage().setImage(null);
ImageManager.store((ImageImpl) bPV.getImage());
}
 
 
/impl/src/java/pt/estgp/estgweb/services/data/ResourceManager.java
5,6 → 5,7
import java.io.*;
 
import jomm.utils.StreamsUtils;
import org.apache.log4j.Logger;
 
/**
* @author Jorge Machado
14,15 → 15,48
public class ResourceManager
{
 
public static final int DOCS_IN_PATH = 1000;
public static final int DOCS_FIRST_DIR_LEN = 20;
 
public static void saveResource(InputStream stream, String resourcePath, long id) throws IOException
{
StreamsUtils.inputStream2File(stream,new File(Globals.DATA_DIR + resourcePath + "/" + id));
StreamsUtils.inputStream2File(stream, new File(Globals.DATA_DIR + resourcePath + getDocumentPathById(id)));
}
 
public static InputStream getResource(String resourcePath,long id) throws FileNotFoundException
public static InputStream getResource(String resourcePath, long id) throws FileNotFoundException
{
return new FileInputStream(Globals.DATA_DIR + resourcePath + "/" + id);
return new FileInputStream(Globals.DATA_DIR + resourcePath + getDocumentPathById(id));
}
 
public static void setAllChars(char c, char[] dir)
{
for (int i = 0; i < dir.length; i++)
{
dir[i] = c;
}
}
 
public static void copyCharsToArray(char[] dir, String str)
{
int dirLen = dir.length;
int strLen = str.length();
 
for (int i = 0; i < strLen; i++)
{
dir[dirLen - i - 1] = str.charAt(strLen - i - 1);
}
}
 
public static String getDocumentPathById(long id)
{
char[] dir = new char[DOCS_FIRST_DIR_LEN];
setAllChars('0', dir);
long dirNumber = id / DOCS_IN_PATH;
dirNumber = dirNumber * DOCS_IN_PATH;
String dirNumberStr = "" + dirNumber;
copyCharsToArray(dir, dirNumberStr);
dirNumberStr = new String(dir);
return "/" + dirNumberStr + "/" + id;
}
 
}
/impl/src/java/pt/estgp/estgweb/services/data/ImageManager.java
1,6 → 1,7
package pt.estgp.estgweb.services.data;
 
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.ImageImpl;
 
import java.io.ByteArrayInputStream;
import java.io.IOException;
19,10 → 20,12
 
private static final Logger logger = Logger.getLogger(ImageManager.class);
 
public static boolean store(Image img)
public static boolean store(ImageImpl img)
{
try
{
if(img.getId() <= 0)
logger.error("Image arrive with out identifier: save it first");
ResourceManager.saveResource(new ByteArrayInputStream(img.getImage()), IMAGES_RESOURCE_PATH, img.getId());
return true;
}
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java
2,15 → 2,23
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.services.sms.SMSJob;
import pt.estgp.estgweb.services.jobs.JobScheduleService;
import pt.estgp.estgweb.services.email.EMAILJob;
import pt.estgp.estgweb.services.email.SendEmailService;
import pt.estgp.estgweb.services.data.ImageManager;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.enums.LangEnum;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.utils.Email;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
 
/**
* @author Fabio Velez
21,6 → 29,8
public class CreateAnnouncementService implements IService
{
 
 
 
private static final Logger logger = Logger.getLogger(CreateAnnouncementService.class);
 
private static final String ALL_ROLE = Globals.ALL_ROLE;
40,6 → 50,19
announcementView.persistViewInObject(a);
a.setOwner(userSession.getUser());
a.setSaveDate(new Date());
 
if(imageBig != null)
{
DaoFactory.getImageDaoImpl().save(imageBig);
ImageManager.store((ImageImpl) imageBig);
((ImageImpl)imageBig).setImage(null);
}
if(imageSmall != null)
{
DaoFactory.getImageDaoImpl().save(imageSmall);
ImageManager.store((ImageImpl) imageSmall);
((ImageImpl)imageSmall).setImage(null);
}
a.setBigImage(imageBig);
a.setSmallImage(imageSmall);
if(a.getTargetRoles() == null || a.getTargetRoles().length() == 0)
47,18 → 70,23
}
else
{
a= DaoFactory.getAnnouncementDaoImpl().get(announcementView.getSerializable());
a = DaoFactory.getAnnouncementDaoImpl().get(announcementView.getSerializable());
 
if(imageBig != null)
{
try
if(a.getBigImage() != null)
{
DaoFactory.getImageDaoImpl().delete(a.getBigImage().getId());
// try
// {
DaoFactory.getImageDaoImpl().delete(a.getBigImage().getId());
// }
// catch(Exception e)
// {
// logger.info("Announcement:" + announcementView.getId() + "do not have imageBig!");
// }
}
catch(Exception e)
{
logger.info("Announcement:" + announcementView.getId() + "do not have imageBig!");
}
DaoFactory.getImageDaoImpl().save(imageBig);
ImageManager.store((ImageImpl) imageBig);
announcementView.setBigImage(imageBig);
}
else
70,20 → 98,25
}
catch(Exception e)
{
logger.info("ImageBig form announcement:" + announcementView.getId() + "do not exist!");
logger.debug("ImageBig form announcement:" + announcementView.getId() + "do not exist!");
}
}
 
if(imageSmall!=null)
{
try
if(a.getSmallImage() != null)
{
// try
// {
DaoFactory.getImageDaoImpl().delete(a.getSmallImage().getId());
// }
// catch(Exception e)
// {
// logger.info("Announcement:" + announcementView.getId() + "do not have smallBig!");
// }
}
catch(Exception e)
{
logger.info("Announcement:" + announcementView.getId() + "do not have smallBig!");
}
DaoFactory.getImageDaoImpl().save(imageSmall);
ImageManager.store((ImageImpl) imageSmall);
announcementView.setSmallImage(imageSmall);
}
else
190,8 → 223,8
}
}
a.setStatus(validation);
 
}
 
AnnouncementView aView;
if(announcementView.getId() <= 0)
{
204,6 → 237,86
logger.info("Updating announcement:" + a.getId());
aView = new AnnouncementView(a);
}
sendSms(a,userSession);
sendEmail(a,userSession);
return aView;
}
private void sendSms(Announcement announcement, UserSession userSession)
{
if(userSession.getUser() != null && announcement.isStatus())
{
trySendAnnouncementSms(announcement,userSession);
}
}
 
private void sendEmail(Announcement announcement, UserSession userSession)
{
if(userSession.getUser() != null && announcement.isStatus())
{
trySendAnnouncementEmail(announcement,userSession);
}
}
 
private void trySendAnnouncementSms(Announcement announcement, UserSession userSession)
{
if(announcement instanceof CourseUnitAnnouncement && Globals.SMS_COURSEUNIT_ANNOUNCEMENT)
{
CourseUnit c = ((CourseUnitAnnouncement)announcement).getCourseUnit();
if(!Globals.SMS_COURSEUNIT_ANNOUNCEMENT_ONLY_PROFS || (userSession.getUser() instanceof TeacherImpl && ((TeacherImpl)userSession.getUser()).hasCourseUnit(c.getId(),true)))
{
List<User> users = new ArrayList<User>();
if(c.getStudents() != null)
users.addAll(c.getStudents());
if(c.getTeachers() != null)
users.addAll(c.getTeachers());
sendAnnouncementSms(announcement,c.getNormalizedName(), userSession,users);
}
}
}
 
private void trySendAnnouncementEmail(Announcement announcement, UserSession userSession)
{
if(announcement instanceof CourseUnitAnnouncement && Globals.EMAIL_COURSEUNIT_ANNOUNCEMENTS)
{
CourseUnit c = ((CourseUnitAnnouncement)announcement).getCourseUnit();
 
List<User> users = new ArrayList<User>();
if(c.getStudents() != null)
users.addAll(c.getStudents());
if(c.getTeachers() != null)
users.addAll(c.getTeachers());
sendAnnouncementEmail((CourseUnitAnnouncement) announcement,c.getNormalizedName(), userSession, users);
 
}
}
 
 
 
 
private void sendAnnouncementSms(Announcement a, String desc, UserSession userSession, List<User> users)
{
String text;
if(a.getText() != null)
text = a.getText();
else
text = "";
String[] args =
{
desc,
userSession.getUser().getUsername(),
a.getTitle(),
text,
};
SMSJob smsJob = new SMSJob(users,args,Globals.TEMPLATE_SMS_COURSEUNIT_ANNOUNCMENT);
JobScheduleService.getInstance().scheduleNow(smsJob,"CourseUnit Announcement SMS:" + desc,userSession);
}
 
SendEmailService sendEmailService = new SendEmailService();
 
private void sendAnnouncementEmail(CourseUnitAnnouncement a, String desc, UserSession userSession, List<User> users)
{
Email e = sendEmailService.getCourseUnitAnnouncementEmail(a, LangEnum.PORTUGUESE,userSession.getName(),users);
EMAILJob emailJob = new EMAILJob(e);
JobScheduleService.getInstance().scheduleNow(emailJob,"CourseUnit Announcement Email:" + desc,userSession);
}
}
/impl/src/java/pt/estgp/estgweb/domain/ImageImpl.java
10,9 → 10,22
*/
public class ImageImpl extends Image
{
public Serializable getSerializable()
 
private byte[] image;
 
public Serializable getSerializable()
{
return getId();
}
 
 
public byte[] getImage()
{
return image;
}
 
public void setImage(byte[] image)
{
this.image = image;
}
}
/impl/src/java/pt/estgp/estgweb/domain/enums/LangEnum.java
New file
0,0 → 1,49
package pt.estgp.estgweb.domain.enums;
 
import pt.estgp.estgweb.domain.*;
import org.apache.log4j.Logger;
 
import java.io.Serializable;
 
public enum LangEnum implements Serializable
{
 
PORTUGUESE("pt"),
ENGLISH("en"),
DEFAULT("pt");
 
 
private static final Logger logger = Logger.getLogger(LangEnum.class);
 
 
private String lang;
 
 
private LangEnum(String lang)
{
this.lang = lang;
}
 
 
public String getLang()
{
return lang;
}
 
public void setLang(String lang)
{
this.lang = lang;
}
 
 
public static LangEnum parse(String lang)
{
for(LangEnum langEnum: values())
{
if(langEnum.getLang().equals(lang))
return langEnum;
}
logger.warn("Lang Enum not found returning DEFAULT Type");
return DEFAULT;
}
}
/impl/src/java/pt/estgp/estgweb/domain/StudentImpl.java
4,13 → 4,11
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
 
import java.util.Set;
import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
 
import org.apache.log4j.Logger;
import jomm.utils.StringsUtils;
import com.lowagie.text.pdf.hyphenation.TernaryTree;
 
/**
* @author Jorge Machado
26,8 → 24,12
public static final Logger logger = Logger.getLogger(StudentImpl.class);
 
private List<CourseUnit> subscribedUnitsView = null;
private List<CourseUnit> subscribedUnitsCurrentYearView = null;
private List<CourseUnit> subscribedUnitsOldYearsView = null;
private List<CourseUnitAnnouncementImpl> courseUnitAnnouncementsView = null;
private List<Course> subscribedCoursesView = null;
private List<Course> subscribedCoursesCurrentYearView = null;
private List<Course> subscribedCoursesOldYearsView = null;
 
public List<Course> getSubscribedCoursesView()
{
35,10 → 37,30
return subscribedCoursesView;
}
 
public List<Course> getSubscribedCoursesCurrentYearView()
{
getSubscribedUnitsCurrentYearView();
return subscribedCoursesCurrentYearView;
}
 
public List<Course> getSubscribedCoursesOldYearsView()
{
getSubscribedUnitsOldYearsView();
return subscribedCoursesOldYearsView;
}
 
public String getManagedRole() {
return STUDENT_ROLE;
}
 
public List<CourseUnit> getSubscribedUnitsViewS1()
{
return getUnitsSemestre("S1",getSubscribedUnitsView());
}
public List<CourseUnit> getSubscribedUnitsViewS2()
{
return getUnitsSemestre("S2",getSubscribedUnitsView());
}
public List<CourseUnit> getSubscribedUnitsView()
{
if(subscribedUnitsView == null)
68,7 → 90,82
return subscribedUnitsView;
}
 
public List<CourseUnit> getSubscribedUnitsCurrentYearViewS1()
{
return getUnitsSemestre("S1",getSubscribedUnitsCurrentYearView());
}
public List<CourseUnit> getSubscribedUnitsCurrentYearViewS2()
{
return getUnitsSemestre("S2",getSubscribedUnitsCurrentYearView());
}
public List<CourseUnit> getSubscribedUnitsCurrentYearView()
{
if(subscribedUnitsCurrentYearView == null)
{
subscribedCoursesCurrentYearView = new ArrayList<Course>();
try
{
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args = new Object[]{getId()};
subscribedUnitsCurrentYearView = (List<CourseUnit>) sm.execute(null, "LoadSubscribedUnitsCurrentYear", args, names);
if(subscribedUnitsCurrentYearView == null)
subscribedUnitsCurrentYearView = new ArrayList<CourseUnit>();
for(CourseUnit c: subscribedUnitsCurrentYearView)
{
if(!subscribedCoursesCurrentYearView.contains(c.getCourse()))
{
subscribedCoursesCurrentYearView.add(c.getCourse());
}
}
}
catch (Throwable e)
{
logger.error(e,e);
}
}
return subscribedUnitsCurrentYearView;
}
 
public List<CourseUnit> getSubscribedUnitsOldYearsViewS1()
{
return getUnitsSemestre("S1",getSubscribedUnitsOldYearsView());
}
public List<CourseUnit> getSubscribedUnitsOldYearsViewS2()
{
return getUnitsSemestre("S2",getSubscribedUnitsOldYearsView());
}
public List<CourseUnit> getSubscribedUnitsOldYearsView()
{
if(subscribedUnitsOldYearsView == null)
{
subscribedCoursesOldYearsView = new ArrayList<Course>();
try
{
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args = new Object[]{getId()};
subscribedUnitsOldYearsView = (List<CourseUnit>) sm.execute(null, "LoadSubscribedUnitsOldYears", args, names);
if(subscribedUnitsOldYearsView == null)
subscribedUnitsOldYearsView = new ArrayList<CourseUnit>();
for(CourseUnit c: subscribedUnitsOldYearsView)
{
if(!subscribedCoursesOldYearsView.contains(c.getCourse()))
{
subscribedCoursesOldYearsView.add(c.getCourse());
}
}
}
catch (Throwable e)
{
logger.error(e,e);
}
}
return subscribedUnitsOldYearsView;
}
 
 
 
public List<CourseUnitAnnouncementImpl> getCourseUnitAnnouncementsView()
{
if(courseUnitAnnouncementsView == null)
90,12 → 187,17
return courseUnitAnnouncementsView;
}
 
 
 
 
 
 
public boolean hasCourseUnit(CourseUnit courseUnit)
{
return hasCourseUnit(courseUnit.getId(),false);
}
 
public boolean hasCourseUnit(long id, boolean transaction)
public boolean hasCourseUnit(long unitId, boolean transaction)
{
List<CourseUnit> cUnits;
if(transaction)
106,24 → 208,24
return false;
for(CourseUnit c: cUnits)
{
if(c.getId() == id)
if(c.getId() == unitId)
return true;
}
return false;
}
 
public void removeUnitLocaly(long id)
public void removeUnitLocaly(CourseUnit unit)
{
setLocalRemovedSubscribedUnits(StringsUtils.addElement(getLocalRemovedSubscribedUnits(),"" + id,","));
setLocalRemovedSubscribedUnits(StringsUtils.addElement(getLocalRemovedSubscribedUnits(),"" + unit.getId(),","));
}
 
public void addUnitLocaly(long id)
public void addUnitLocaly(CourseUnit unit)
{
setLocalRemovedSubscribedUnits(StringsUtils.removeElement(getLocalRemovedSubscribedUnits(),"" + id,","));
setLocalRemovedSubscribedUnits(StringsUtils.removeElement(getLocalRemovedSubscribedUnits(),"" + unit.getId(),","));
}
 
public boolean isLocalRemovedUnit(long id)
public boolean isLocalRemovedUnit(CourseUnit unit)
{
return StringsUtils.hasElement(getLocalRemovedSubscribedUnits(),"" + id,",");
return StringsUtils.hasElement(getLocalRemovedSubscribedUnits(),"" + unit.getId(),",");
}
}
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitQuestionImpl.java
1,6 → 1,7
package pt.estgp.estgweb.domain;
 
import java.io.Serializable;
import java.util.List;
 
/**
* @author Jorge Machado
13,4 → 14,14
{
return getId();
}
 
public List<String> getOwnerRoles()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
 
public String getChoosedOwnerRole()
{
return null; //To change body of implemented methods use File | Settings | File Templates.
}
}
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java
61,7 → 61,7
 
public boolean isInternal()
{
return true;
return true;
}
 
public CourseUnitBlogImpl getUnitBlog()
70,4 → 70,18
return (CourseUnitBlogImpl) getBlogs().iterator().next();
return null;
}
 
public boolean equals(Object anotherInstance)
{
if(anotherInstance instanceof CourseUnitImpl)
{
CourseUnitImpl anCourseUnit = (CourseUnitImpl) anotherInstance;
return anCourseUnit.getCode() != null && getCode() != null && getCode().equals(anCourseUnit.getCode()) &&
anCourseUnit.getCourseCode() != null && getCourseCode() != null && getCourseCode().equals(anCourseUnit.getCourseCode()) &&
anCourseUnit.getSemestre() != null && getSemestre() != null && getSemestre().equals(anCourseUnit.getSemestre()) &&
anCourseUnit.getImportYear() != null && getImportYear() != null && getImportYear().equals(anCourseUnit.getImportYear());
}
return false;
 
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java
56,12 → 56,23
 
public List<Course> findAllOrderByName()
{
return createCriteria().addOrder(Order.asc("name")).list();
return createCriteria()
.addOrder(Order.asc("name"))
.list();
}
 
public List<Course> findAllOrderByName(String importYear)
{
return createCriteria()
.add(eq("importYear",importYear))
.addOrder(Order.asc("name"))
.list();
}
 
public List<Course> findAll(String importYear)
{
return createCriteria().add(eq("importYear",importYear)).list();
return createCriteria().add(eq("importYear",importYear))
.list();
}
 
 
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/TeacherDaoImpl.java
1,7 → 1,12
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import static org.hibernate.criterion.Restrictions.*;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
23,10 → 28,13
{
return (Teacher) createCriteria().add(eq("sigesCode",sigesCode)).uniqueResult();
}
public Teacher loadByBi(String bi)
 
public Teacher loadByBi(String bi)
{
return (Teacher) createCriteria().add(eq("bi",bi)).uniqueResult();
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/BlogDaoImpl.java
45,6 → 45,10
 
public List<BlogImpl> findBlogs(List<String> roles, boolean internal)
{
return findBlogs(roles,internal,null);
}
public List<BlogImpl> findBlogs(List<String> roles, boolean internal, String type)
{
if (roles == null)
{
roles = new ArrayList<String>();
66,6 → 70,10
criteria.add(co);
criteria.add(eq("status", true))
.addOrder(Order.desc("title"));
if(type != null)
criteria.add(eq("type",type));
else
criteria.add(isNull("type"));
return criteria.list();
}
 
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java
131,8 → 131,25
{
coSubTargets = eq("subTargets", subTarget);
}
 
if (type != null)
criteria.add(eq("type", type));
{
String[] types = type.split(",");
if(types.length == 1)
criteria.add(eq("type", type));
else if(types.length > 1)
{
Criterion orCriteron = null;
for(String typeAux: types)
{
if(orCriteron == null)
orCriteron = eq("type", typeAux);
else
orCriteron = or(orCriteron,eq("type",typeAux));
}
criteria.add(orCriteron);
}
}
 
if (!internal)
criteria.add(eq("internal", false));
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
3,6 → 3,7
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.TeacherImpl;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.dao.DaoUtils;
import pt.estgp.estgweb.services.common.SearchTypeEnum;
import pt.estgp.estgweb.utils.DatesUtils;
52,13 → 53,21
{
return createCriteria().add(eq("importYear",importYear))
.createAlias("students","st")
.add(eq("st.id", studentId)).list();
.add(eq("st.id", studentId)).addOrder(Order.asc("name")).list();
}
public List<CourseUnit> loadTeachedImportYearUnits(long studentId, String importYear)
 
public List<CourseUnit> loadSubscribedOtherImportYearUnits(long studentId, String importYear)
{
return createCriteria().add(not(eq("importYear",importYear)))
.createAlias("students","st")
.add(eq("st.id", studentId)).addOrder(Order.asc("name")).list();
}
public List<CourseUnitImpl> loadTeachedImportYearUnits(long teacherId, String importYear)
{
return createCriteria().add(eq("importYear",importYear))
.createAlias("teachers","st")
.add(eq("st.id", studentId)).list();
.add(eq("st.id", teacherId)).addOrder(Order.asc("importYear")).addOrder(Order.asc("name")).list();
}
 
public CourseUnit loadBySigesCodeUnique(String sigesCode)
71,11 → 80,13
return (CourseUnit) createCriteria().add(eq("code", sigesCode)).add(eq("courseCode", courseCode)).uniqueResult();
}
 
public CourseUnit loadBySigesCodeUniqueSubscribed(String sigesCode, String courseCode, long studentId)
public CourseUnit loadBySigesCodeUniqueSubscribed(String sigesCode, String year, String courseCode, long studentId, String semestre)
{
List<CourseUnit> cus = createCriteria()
.add(eq("code", sigesCode))
.add(eq("importYear", year))
.add(eq("courseCode", courseCode))
.add(eq("semestre", semestre))
.createAlias("students","st")
.add(eq("st.id",studentId))
.list();
115,9 → 126,15
return null;
}
 
public CourseUnit loadBySigesCodeUnique(String sigesCode, String courseCode, String semestre)
public CourseUnit loadBySigesCodeUnique(String sigesCode, String courseCode, String semestre, String year)
{
return (CourseUnit) createCriteria().add(eq("code", sigesCode)).add(eq("courseCode", courseCode)).add(eq("semestre", semestre)).uniqueResult();
return (CourseUnit)
createCriteria()
.add(eq("code", sigesCode))
.add(eq("courseCode", courseCode))
.add(eq("semestre", semestre))
.add(eq("importYear", year))
.uniqueResult();
}
 
 
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/JobDaoImpl.java
New file
0,0 → 1,47
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.BlogImpl;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.Job;
import pt.estgp.estgweb.domain.dao.DaoUtils;
import pt.estgp.estgweb.services.common.SearchTypeEnum;
 
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
 
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import static org.hibernate.criterion.Restrictions.*;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class JobDaoImpl extends JobDao
{
private JobDaoImpl()
{
}
 
public static JobDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new JobDaoImpl();
return (JobDaoImpl) myInstance;
}
 
public List<Job> findExecutableJobs()
{
return createCriteria()
.add(lt("startDate",new Date()))
.add(eq("executed",false))
.list();
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
11,8 → 11,14
public class DaoFactory
{
 
public static CourseUnitGradeDaoImpl getCourseUnitGradeDaoImpl()
public static JobDaoImpl getJobDaoImpl()
{
return JobDaoImpl.getInstance();
}
 
 
public static CourseUnitGradeDaoImpl getCourseUnitGradeDaoImpl()
{
return CourseUnitGradeDaoImpl.getInstance();
}
 
/impl/src/java/pt/estgp/estgweb/domain/JobImpl.java
New file
0,0 → 1,17
package pt.estgp.estgweb.domain;
 
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 11/Jul/2008
* @see pt.estgp.estgweb.domain
*/
public class JobImpl extends Job
{
 
public Serializable getSerializable()
{
return getId();
}
}
/impl/src/java/pt/estgp/estgweb/domain/TeacherImpl.java
25,7 → 25,9
public static final Logger logger = Logger.getLogger(TeacherImpl.class);
 
private List<CourseUnit> teachedUnitsView = null;
private List<CourseUnit> teachedUnitsCurrentYearView = null;
private List<Course> teachedCoursesView = null;
private List<Course> teachedCoursesCurrentYearView = null;
 
public TeacherImpl()
{
41,7 → 43,21
getTeachedUnitsView();
return teachedCoursesView;
}
 
public List<Course> getTeachedCoursesCurrenYearView()
{
getTeachedUnitsCurrentYearView();
return teachedCoursesCurrentYearView;
}
 
public List<CourseUnit> getTeachedUnitsViewS1()
{
return getUnitsSemestre("S1",getTeachedUnitsView());
}
public List<CourseUnit> getTeachedUnitsViewS2()
{
return getUnitsSemestre("S2",getTeachedUnitsView());
}
public List<CourseUnit> getTeachedUnitsView()
{
if(teachedUnitsView == null)
71,6 → 87,43
return teachedUnitsView;
}
 
public List<CourseUnit> getTeachedUnitsCurrentYearViewS1()
{
return getUnitsSemestre("S1",getTeachedUnitsCurrentYearView());
}
public List<CourseUnit> getTeachedUnitsCurrentYearViewS2()
{
return getUnitsSemestre("S2",getTeachedUnitsCurrentYearView());
}
public List<CourseUnit> getTeachedUnitsCurrentYearView()
{
if(teachedUnitsCurrentYearView == null)
{
teachedCoursesCurrentYearView = new ArrayList<Course>();
try
{
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args = new Object[]{getId()};
teachedUnitsCurrentYearView = (List<CourseUnit>) sm.execute(null, "LoadTeachedUnitsCurrentYear", args, names);
if(teachedUnitsCurrentYearView == null)
teachedUnitsCurrentYearView = new ArrayList<CourseUnit>();
for(CourseUnit c: teachedUnitsCurrentYearView)
{
if(!teachedCoursesCurrentYearView.contains(c.getCourse()))
{
teachedCoursesCurrentYearView.add(c.getCourse());
}
}
}
catch (Throwable e)
{
logger.error(e,e);
}
}
return teachedUnitsCurrentYearView;
}
 
public boolean hasCourseUnit(long id)
{
return hasCourseUnit(id,false);
98,18 → 151,18
return false;
}
 
public void removeUnitLocaly(long id)
public void removeUnitLocaly(CourseUnit unit)
{
setLocalRemovedTeachedUnits(StringsUtils.addElement(getLocalRemovedTeachedUnits(),"" + id,","));
setLocalRemovedTeachedUnits(StringsUtils.addElement(getLocalRemovedTeachedUnits(),"" + unit.getId(),","));
}
 
public void addUnitLocaly(long id)
public void addUnitLocaly(CourseUnit unit)
{
setLocalRemovedTeachedUnits(StringsUtils.removeElement(getLocalRemovedTeachedUnits(),"" + id,","));
setLocalRemovedTeachedUnits(StringsUtils.removeElement(getLocalRemovedTeachedUnits(),"" + unit.getId(),","));
}
 
public boolean isLocalRemovedUnit(long id)
public boolean isLocalRemovedUnit(CourseUnit unit)
{
return StringsUtils.hasElement(getLocalRemovedTeachedUnits(),"" + id,",");
return StringsUtils.hasElement(getLocalRemovedTeachedUnits(),"" + unit.getId(),",");
}
}
/impl/src/java/pt/estgp/estgweb/domain/UserManagedRoleImpl.java
2,13 → 2,29
 
import jomm.utils.StringsUtils;
 
import java.util.Date;
import java.util.Set;
import java.util.*;
 
 
public abstract class UserManagedRoleImpl extends UserImpl
{
 
public static List<CourseUnit> getUnitsSemestre(String semestre, List<CourseUnit> s1)
{
if(s1 != null)
{
s1 = new ArrayList<CourseUnit>(s1);
Iterator iter = s1.iterator();
while (iter.hasNext())
{
CourseUnit courseUnit = (CourseUnit) iter.next();
if(courseUnit.getSemestre() == null || !courseUnit.getSemestre().equals(semestre))
iter.remove();
}
return s1;
}
return s1;
}
public UserManagedRoleImpl()
{
 
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java
414,4 → 414,12
return ((AnnouncementImpl)announcement).canLoadInOpenTransaction(u);
}
 
public String getOwnerUsername()
{
if (owner instanceof User)
return ((User) owner).getUsername();
else
return null;
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitAssignementView.java
10,6 → 10,8
import java.util.List;
import java.util.Date;
 
import jomm.utils.StringsUtils;
 
/**
* @author Jorge Machado
* @date 2/Mar/2008
165,6 → 167,11
return description;
}
 
public String getFormatedDescription()
{
return StringsUtils.getFormatedText(description);
}
 
public void setDescription(String description)
{
this.description = description;
/impl/src/java/pt/estgp/estgweb/domain/views/RecordView.java
49,7 → 49,7
 
public Class getReferenceClass()
{
return CourseImpl.class;
return Record.class;
}
 
public Serializable getSerializable()
/impl/src/java/pt/estgp/estgweb/domain/views/UserView.java
358,6 → 358,26
return email;
}
 
public String getSafeEmail()
{
String email = username + "@" + Globals.EMAIL_LOCAL_SUFFIX;
if(email != null)
{
String safe = email.replace("@", " [ AT ] ").replace("."," [ DOT ] ");
StringBuilder result = new StringBuilder();
result.append("<script type=\"text/javascript\" language=\"JavaScript\">\n");
for(int i = 0;i< safe.length();i++)
{
char c = safe.charAt(i);
if(c != '\'')
result.append("document.write('").append(c).append("');\n");
}
result.append("</script>");
return result.toString();
}
return email;
}
 
public void setEmail(String email) {
this.email = email;
}
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java
100,7 → 100,6
this.code = courseUnit.getCode();
this.importYear = courseUnit.getImportYear();
this.semestre = courseUnit.getSemestre();
this.importYear = courseUnit.getImportYear();
this.courseCode = courseUnit.getCourseCode();
this.objectives = courseUnit.getObjectives();
if(courseUnit.getProgramStreamId() != null)
/impl/src/java/pt/estgp/estgweb/domain/views/CourseView.java
7,8 → 7,6
import org.apache.log4j.Logger;
 
import java.util.List;
import java.util.Set;
import java.util.HashSet;
import java.util.ArrayList;
import java.io.Serializable;
 
35,8 → 33,13
private List<CourseUnitView> courseUnits;
private String studiesPlanStreamId;
private RepositoryFileImpl studiesPlan;
private String htmlResult;
private String cacheWebDocument;
private String externalSiteServer;
private String externalSitePath;
 
 
 
private Course course;
 
 
78,6 → 81,10
this.description = course.getDescription();
this.importYear = course.getImportYear();
this.institutionalCode = course.getInstitutionalCode();
this.cacheWebDocument = course.getCacheWebDocument();
this.externalSitePath = course.getExternalSitePath();
this.externalSiteServer = course.getExternalSiteServer();
 
if(course.getStudiesPlan() != null)
this.studiesPlanStreamId = course.getStudiesPlan();
if(course.getCoordinator() != null)
106,6 → 113,8
c.setImportYear(importYear);
c.setInstitutionalCode(institutionalCode);
c.setName(name);
c.setExternalSitePath(externalSitePath);
c.setExternalSiteServer(externalSiteServer);
if(coordinator != null && coordinator.getId() > 0)
{
Teacher u = DaoFactory.getTeacherDaoImpl().load(coordinator.getId());
283,4 → 292,46
{
this.director = director;
}
 
 
public String getHtmlResult()
{
return htmlResult;
}
 
public void setHtmlResult(String htmlResult)
{
this.htmlResult = htmlResult;
}
 
 
public String getCacheWebDocument()
{
return cacheWebDocument;
}
 
public void setCacheWebDocument(String cacheWebDocument)
{
this.cacheWebDocument = cacheWebDocument;
}
 
public String getExternalSiteServer()
{
return externalSiteServer;
}
 
public void setExternalSiteServer(String externalSiteServer)
{
this.externalSiteServer = externalSiteServer;
}
 
public String getExternalSitePath()
{
return externalSitePath;
}
 
public void setExternalSitePath(String externalSitePath)
{
this.externalSitePath = externalSitePath;
}
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
8,6 → 8,11
*/
public class DomainObjectFactory {
 
public static JobImpl createJobImpl()
{
return new JobImpl();
}
 
public static CourseUnitGradeImpl createCourseUnitGradeImpl()
{
return new CourseUnitGradeImpl();
/impl/src/java/pt/estgp/estgweb/web/StartPathLayoutProxy.java
New file
0,0 → 1,103
package pt.estgp.estgweb.web;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.web.controllers.courseunits.CourseUnitLayoutProxy;
import pt.estgp.estgweb.web.exceptions.InternalException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 12:46:16
* @see pt.estgp.estgweb.web
*/
public class StartPathLayoutProxy extends LayoutProxy
{
 
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
*/
 
private static final Logger logger = Logger.getLogger(CourseUnitLayoutProxy.class);
 
 
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try
{
String startPath = request.getParameter("startPath");
if (startPath != null)
{
request.setAttribute("startPath", startPath);
startPath = "startPath=" + startPath;
}
else
startPath = "";
String from = "";
if (request.getParameter("from") != null)
from = "&from=" + request.getParameter("from");
 
StringBuilder queryString = new StringBuilder();
queryString.append(startPath + from);
Enumeration<String> enumeration = request.getParameterNames();
while(enumeration.hasMoreElements())
{
String attr = enumeration.nextElement();
if(attr.startsWith("nav"))
{
queryString.append("&").append(attr).append("=").append(request.getParameter(attr));
}
}
super.setQueryString(queryString.toString(), request);
super.processRequest(request, response);
}
catch (Throwable e)
{
logger.error(e, e);
throw new InternalException(e.toString());
}
}
 
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
 
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
 
/**
* Returns a short description of the servlet.
*/
public String getServletInfo()
{
return "Proxy Servlet to get pages form static web page servers";
}
// </editor-fold>
}
/impl/src/java/pt/estgp/estgweb/web/tags/OwnerTag.java
New file
0,0 → 1,101
package pt.estgp.estgweb.web.tags;
 
import org.apache.log4j.Logger;
import org.apache.struts.util.RequestUtils;
 
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
 
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.IOwned;
import pt.estgp.estgweb.domain.IInternal;
import pt.estgp.estgweb.domain.IValid;
import pt.estgp.estgweb.Globals;
 
public class OwnerTag extends BodyTagSupport
{
 
private static final Logger logger = Logger.getLogger(OwnerTag.class);
 
private String name;
 
private String property;
 
private String valid;
 
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
public String getProperty()
{
return property;
}
 
public void setProperty(String property)
{
this.property = property;
}
 
 
public String getValid()
{
return valid;
}
 
public void setValid(String valid)
{
this.valid = valid;
}
 
public int doStartTag() throws JspException
{
if (go())
{
return EVAL_BODY_TAG;
}
else
return SKIP_BODY;
}
 
public boolean go() throws JspException
{
 
UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY);
 
IOwned owned = (IOwned) RequestUtils.lookup(pageContext, name, property, null);
return owned != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());
 
}
 
public int doEndTag() throws JspException
{
if(go())
{
String toPage = bodyContent.getString().trim();
JspWriter writer = pageContext.getOut();
try
{
writer.write(toPage);
}
catch (Exception e)
{
logger.error(e, e);
throw new JspException(e);
}
}
 
// Continue processing this page
return EVAL_PAGE;
}
 
 
}
/impl/src/java/pt/estgp/estgweb/web/WebProxy.java
1,19 → 1,21
package pt.estgp.estgweb.web;
 
import org.apache.commons.httpclient.util.URIUtil;
import org.apache.log4j.Logger;
import org.apache.commons.httpclient.util.URIUtil;
import pt.estgp.estgweb.utils.ConfigProperties;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.*;
import javax.servlet.jsp.JspWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
 
import pt.estgp.estgweb.utils.ConfigProperties;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
31,7 → 33,7
 
 
 
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
protected static void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String path = (String) request.getAttribute("path");
88,6 → 90,42
 
}
 
public static void processHttpRequestService(JspWriter out, String server, String path) throws IOException, ServletException
{
String serverUrl = ConfigProperties.getProperty("server." + server);
String serverEncoding = ConfigProperties.getProperty(server + ".encoding");
String confStartPath = ConfigProperties.getProperty("server." + server + ".start.path");
if(confStartPath != null)
path = confStartPath + path;
 
 
try
{
URL url = new URL(serverUrl + URIUtil.encodePath(path,"ISO-8859-1"));
URLConnection con = url.openConnection();
InputStream stream = con.getInputStream();
 
byte[] buf = new byte[1024];
int readedBytes;
 
while((readedBytes = stream.read(buf)) > 0)
{
String str = new String(buf,0,readedBytes,serverEncoding);
out.print(str);
}
}
catch(FileNotFoundException e)
{
throw new FileNotFoundException("url not found for server:" + server + " and path:" + path);
}
catch(Exception e)
{
throw new IOException(e.toString());
}
 
}
 
 
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
/impl/src/java/pt/estgp/estgweb/web/utils/ProxyUtils.java
New file
0,0 → 1,96
package pt.estgp.estgweb.web.utils;
 
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
 
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
 
/**
* @author Jorge Machado
* @date 8/Out/2008
* @see pt.estgp.estgweb.web.utils
*/
public class ProxyUtils
{
// proxy/accaoSocialAlunosPortalMenu/estgp
private static final Logger logger = Logger.getLogger(ProxyUtils.class);
 
public static String getTopImageLink(HttpServletRequest request)
{
String pathIfo = request.getPathInfo();
String queryString = request.getQueryString();
 
if(request.getServletPath().equals("/proxy"))
{
String finalFileCandidate1 = pathIfo.substring(0,pathIfo.lastIndexOf("/")) + "/top.jpg";
int lastIndexOfDot = pathIfo.lastIndexOf(".");
String finalFileCandidate2 = null;
if(lastIndexOfDot >= 0)
finalFileCandidate2 = pathIfo.substring(0,lastIndexOfDot) + ".jpg";
 
String protocol = request.getRequestURL().substring(0,request.getRequestURL().indexOf("://"));
String finalFileCandidate1total = protocol + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/proxy" + finalFileCandidate1;
String finalFileCandidate2total = null;
if(finalFileCandidate2 != null)
finalFileCandidate2total = protocol + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/proxy" + finalFileCandidate2;
 
if(finalFileCandidate2 != null)
try
{
URL url = new URL(finalFileCandidate2total);
url.openConnection().getInputStream();
return request.getContextPath() + "/proxy" + finalFileCandidate2;
}
catch (MalformedURLException e)
{
logger.error("BAD TOP IMAGE URL 2: " + finalFileCandidate2total);
}
catch (IOException e)
{
logger.debug("candidate 2 don't exist: " + finalFileCandidate2total);
}
 
try
{
URL url = new URL(finalFileCandidate1total);
url.openConnection().getInputStream();
return request.getContextPath() + "/proxy" + finalFileCandidate1;
}
catch (MalformedURLException e)
{
logger.error("BAD TOP IMAGE URL 1: " + finalFileCandidate1total);
}
catch (IOException e)
{
logger.debug("candidate 1 don't exist: " + finalFileCandidate1total);
}
}
else
{
String link = request.getServletPath();
if(pathIfo!=null)
link+= pathIfo;
if(queryString!=null)
link+= "?" + queryString;
 
 
for(int i = 0; i < Globals.TOP_IMAGE_FILTER_LINKS.size();i++)
{
String url = Globals.TOP_IMAGE_FILTER_LINKS.get(i);
if(link.startsWith(url))
{
String finalUrl = Globals.TOP_IMAGE_FILTER_IMAGES_URL.get(i);
if(finalUrl.startsWith("/"))
return request.getContextPath() + finalUrl;
else
return finalUrl;
}
}
}
return null;
}
}
/impl/src/java/pt/estgp/estgweb/web/utils/DomainUtils.java
2,6 → 2,7
 
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.ImageImpl;
import org.apache.struts.upload.FormFile;
import org.apache.log4j.Logger;
import jomm.utils.StreamsUtils;
30,7 → 31,7
logger.error(e,e);
return null;
}
Image i = DomainObjectFactory.createImageImpl();
ImageImpl i = DomainObjectFactory.createImageImpl();
i.setImage(bytes);
i.setContentType(image.getContentType());
i.setSize(image.getFileSize());
/impl/src/java/pt/estgp/estgweb/web/LayoutController.java
54,12 → 54,14
logger.info("requested path:" + path);
logger.info("requested server:" + server);
String startPath = (String) request.getAttribute("startPath");
if(startPath == null)
startPath = ConfigProperties.getProperty("server." + serverParameter + ".start.path");
else
startPath = ConfigProperties.getProperty("server." + serverParameter + ".start.path") + startPath;
 
path = startPath + path;
String confStartPath = ConfigProperties.getProperty("server." + serverParameter + ".start.path");
if(confStartPath != null)
if(startPath == null)
startPath = confStartPath;
else
startPath = confStartPath + startPath;
if(startPath != null)
path = startPath + path;
request.setAttribute("path", path);
request.setAttribute("server", server);
 
103,6 → 105,7
}
 
 
 
protected void processRequestFtp(HttpServletRequest request, String path, String serverStr, String server, String startPath)
throws ServletException, IOException
{
/impl/src/java/pt/estgp/estgweb/web/Globals.java
13,6 → 13,8
public static final String BACO_SESSION_COOKIE = "BACOSESSIONID";
private static final String PORTAL_MENU_START_LINK_START = "/proxy/";
private static final String PORTAL_MENU_START_LINK_END = "/estgp/public/portal";
private static final String PUBLIC_MENU_START_LINK_END = "/estgp/public";
private static final String MENU_START_LINK_END = "/estgp";
private static final String PORTAL_MENU_START_LINK_END_AA = "/estgweb/aa";
private static final String PORTAL_MENU_START_LINK_END_NUCLEO_ENG = "/estgweb/nucleoeng";
public static final String PORTAL_ROLE_VIEW_STUDENT ="?role=student&menu=menu.alunos";
22,9 → 24,18
 
public static final String VISIBLE = "display:;";
public static final String HIDDEN = "display:none";
 
 
public static String getStartPublicLink(String layout)
{
return PORTAL_MENU_START_LINK_START + layout + PUBLIC_MENU_START_LINK_END;
}
 
public static String getStartLink(String layout)
{
return PORTAL_MENU_START_LINK_START + layout + MENU_START_LINK_END;
}
 
public static String getStartLinkPortalMenu(String layout)
{
if(layout.contains("AA"))
/impl/src/java/pt/estgp/estgweb/web/controllers/profile/ProfileController.java
411,9 → 411,9
 
UserView userView;
if(profileForm.getRecordView().getId() > 0)
userView = (UserView) sm.execute(RequestUtils.getRequester(request, response),"EditUserProfileRecord",args,names);
else
userView = (UserView) sm.execute(RequestUtils.getRequester(request, response),"CreateUserProfileRecord",args,names);
else
userView = (UserView) sm.execute(RequestUtils.getRequester(request, response),"EditUserProfileRecord",args,names);
 
addMessage(request,"profile.record.add.sucess",profileForm.getRecordView().getTitle());
profileForm.setUserView(userView);
/impl/src/java/pt/estgp/estgweb/web/controllers/utils/UtilsController.java
New file
0,0 → 1,93
package pt.estgp.estgweb.web.controllers.utils;
 
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.blogs.BlogsController;
import pt.estgp.estgweb.web.controllers.profile.ProfileController;
import pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm;
import pt.estgp.estgweb.web.form.profile.ProfileForm;
import pt.estgp.estgweb.web.form.blogs.BlogForm;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.views.UserView;
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ExecutedFilterException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.InvalidFilterExpressionException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.IncompatibleFilterException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterRetrieveException;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.upload.FormFile;
import org.hibernate.ObjectNotFoundException;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
 
/**
* @author Jorge Machado
* @author Fabio Velez
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class UtilsController extends ApplicationDispatchController
{
private static final Logger logger = Logger.getLogger(UtilsController.class);
 
 
public ActionForward loadPathIntranet(String root,
String layout,
String from,
HttpServletRequest request)
throws Throwable, ServletException
{
return loadPathIntranet(root,layout,from,"",request);
}
public ActionForward loadPathIntranet(String root,
String layout,
String from,
String path,
HttpServletRequest request)
throws Throwable, ServletException
{
 
ActionForward forward = new ActionForward();
forward.setName("startpathproxy");
 
// forward.setPath("/startpathproxy/" + layout + "/ionline" + "/" + path + "/?startPath=" + cV.getPathIntranet() + "&from=" + request.getParameter("from"));
forward.setPath("/startpathproxy/" + layout + "/ionline" + path + "/?startPath=" + root + "&from=" + request.getParameter("from"));
forward.setRedirect(true);
return forward;
}
 
public ActionForward loadRootPath(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
String root = request.getParameter("root");
String layout = request.getParameter("layout");
String from = request.getParameter("from");
String path = request.getParameter("path");
if(path == null)
return loadPathIntranet(root, layout, from, request);
else
return loadPathIntranet(root, layout,path, from, request);
}
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesController.java
56,7 → 56,7
{
String code = cF.getCourseView().getCode();
long id = cF.getCourseView().getId();
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"serializable"};
Object[] args;
149,6 → 149,11
long id = cF.getCourseView().getId();
CourseView cV = (CourseView) sm.execute(RequestUtils.getRequester(request, response), "SubmitCourse", args, names);
request.setAttribute("CourseView",cV);
if(cV.getHtmlResult() != null)
{
return mapping.findForward("submit");
}
 
cF.setCourseView(cV);
if(id > 0)
addMessage(request,"course.updated.success","" + cV.getCode());
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitLayoutProxy.java
2,25 → 2,22
 
import org.apache.log4j.Logger;
import org.hibernate.ObjectNotFoundException;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
 
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.estgp.estgweb.web.LayoutProxy;
import pt.estgp.estgweb.web.exceptions.InternalException;
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.exceptions.NotFoundException;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ExecutedFilterException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileNotFoundException;
 
/**
* @author Jorge Machado
54,7 → 51,10
}
else
startPath = "";
super.setQueryString("courseUnitView.id=" + request.getParameter("courseUnitView.id") + startPath,request);
String from = "";
if(request.getParameter("from") != null)
from = "&from=" + request.getParameter("from");
super.setQueryString("courseUnitView.id=" + request.getParameter("courseUnitView.id") + startPath + from,request);
try
{
CourseUnitView cV = (CourseUnitView) sm.execute(RequestUtils.getRequester(request, response), "LoadCourseUnit", args, names);
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java
689,7 → 689,7
 
ActionForward forward = new ActionForward();
forward.setName("intranetCourseUnit");
forward.setPath("/courseunitproxy/" + layout + "/ionline" + "/" + path + "/?courseUnitView.id="+ cV.getId() + "&startPath=" + cV.getPathIntranet());
forward.setPath("/courseunitproxy/" + layout + "/ionline" + "/" + path + "/?courseUnitView.id="+ cV.getId() + "&startPath=" + cV.getPathIntranet() + "&from=" + request.getParameter("from"));
forward.setRedirect(true);
return forward;
}
/impl/src/java/pt/estgp/estgweb/web/filters/TopImageFilter.java
New file
0,0 → 1,79
package pt.estgp.estgweb.web.filters;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.utils.ProxyUtils;
 
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.io.IOException;
 
/**
*
* @author Jorge Machado
*/
 
public class TopImageFilter implements Filter
{
 
public static final String TOP_IMAGE = "TOP_IMAGE";
 
public TopImageFilter()
{
}
 
public void init(FilterConfig config)
{
 
}
 
/**
*
* @param request The servlet request we are processing
* @param chain The filter chain we are processing
*
* @exception java.io.IOException if an input/output error occurs
* @exception javax.servlet.ServletException if a servlet error occurs
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest hrequest = (HttpServletRequest) request;
String relativePath = hrequest.getServletPath();
if (relativePath == null)
relativePath = "";
 
if (hrequest.getPathInfo() != null && hrequest.getPathInfo().length() > 0)
{
relativePath += hrequest.getPathInfo();
}
 
for (String ignore : Globals.FILTER_IGNORE_EXTENSIONS)
{
if (relativePath.endsWith(ignore))
{
chain.doFilter(request, response);
return;
}
}
for (String ignore : Globals.FILTER_IGNORE_PREFIXES)
{
if (relativePath.startsWith(ignore))
{
chain.doFilter(request, response);
return;
}
}
 
String link = ProxyUtils.getTopImageLink((HttpServletRequest) request);
request.setAttribute(TOP_IMAGE,link);
chain.doFilter(request,response);
}
 
public void destroy()
{
// Nothing
}
}
/impl/src/java/pt/estgp/estgweb/web/FTPProxy.java
108,7 → 108,7
iFiles.add(iFile);
}
List<NavPlace> navPlaces = FtpFile.getNavPlaces(path);
List<NavPlace> navPlaces = FtpFile.getNavPlaces(path,"");
request.setAttribute("NavPlaces",navPlaces);
request.setAttribute("files",iFiles);
getServletContext().getRequestDispatcher("/user/ftpclient/ftpclient.jsp").forward(request,response);
/impl/src/java/pt/estgp/estgweb/web/ImageStream.java
1,7 → 1,9
package pt.estgp.estgweb.web;
 
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.ImageImpl;
import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.data.ImageManager;
 
import java.io.*;
33,7 → 35,7
 
long id = Long.parseLong(imageRequarired.trim());
AbstractDao.getCurrentSession().beginTransaction();
Image image = new ImageDaoImpl().get(id);
ImageImpl image = (ImageImpl) DaoFactory.getImageDaoImpl().get(id);
try
{
response.setContentType(image.getContentType());
/impl/src/java/pt/utl/ist/berserk/storage/hibernate/HibernateTransactionBroker.java
37,28 → 37,36
{
HibernateUtils.getCurrentSession().beginTransaction();
}
public void commitTransaction() throws StorageException
 
public void commitTransaction() throws StorageException
{
HibernateUtils.getCurrentSession().getTransaction().commit();
// HibernateUtils.getCurrentSession().close();
 
}
public void abortTransaction() throws StorageException
 
public void abortTransaction() throws StorageException
{
Session sess = HibernateUtils.getCurrentSession();
Transaction t = sess.getTransaction();
t.rollback();
// sess.close();
}
public void lockRead(List list) throws StorageException
 
public void lockRead(List list) throws StorageException
{
for(Object obj: list)
{
lockRead(obj);
}
}
public void lockRead(Object obj) throws StorageException
public void lockRead(Object obj) throws StorageException
{
HibernateUtils.getCurrentSession().lock(obj, LockMode.READ);
}
public void lockWrite(Object obj) throws StorageException
 
public void lockWrite(Object obj) throws StorageException
{
HibernateUtils.getCurrentSession().lock(obj, LockMode.WRITE);
}
/impl/src/java/pt/ipp/siges/web/services/clients/Test.java
76,10 → 76,10
System.out.println(a.getNumeroBi());
System.out.println(a.getEmail());
System.out.println(a.getUsernameNetpa());
ArrayOfDecimal ad = a.getDisciplinasInscrito();
for(BigDecimal d :ad.getDecimal())
ArrayOfDisciplina ad = a.getDisciplinasInscrito();
for(Disciplina d :ad.getDisciplina())
{
Disciplina dAux = disciplinasMap.get(d.intValue());
Disciplina dAux = disciplinasMap.get(d.getCodigo());
System.out.println(dAux.getNome() + " " + dAux.getNomeCurso());
 
}
/impl/src/doc/estgweb.eap
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/doc/rss/RSS.zip
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/doc/siges/index.zip
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/hbm/pt/estgp/estgweb/domain/GenericUser.hbm.xml
16,6 → 16,7
<property name="superuser" type="boolean"/>
<property name="name" type="string" index="nameIndex"/>
<property name="roles" type="string" index="rolesIndex"/>
<many-to-one name="image" column="image" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all"/>
<subclass name="pt.estgp.estgweb.domain.GenericUserImpl">
<subclass name="pt.estgp.estgweb.domain.Group">
<meta attribute="scope-class">public abstract</meta>
53,15 → 54,15
<key column="user_id"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUserAssociation"/>
</set>
<set name="creatorRecords" lazy="true" order-by="recordId" table="creatorRecords">
<set name="creatorRecords" lazy="true" order-by="recordId" table="creatorrecords">
<key column="creatorId"/>
<many-to-many class="pt.estgp.estgweb.domain.Record" column="recordId"/>
</set>
<set name="contributorRecords" lazy="true" order-by="recordId" table="contributorRecords">
<set name="contributorRecords" lazy="true" order-by="recordId" table="contributorrecords">
<key column="contributorId"/>
<many-to-many class="pt.estgp.estgweb.domain.Record" column="recordId"/>
</set>
<set name="managedIdentifierCollectionsManager" lazy="true" table="managedIdentifierCollectionManagers">
<set name="managedIdentifierCollectionsManager" lazy="true" table="managedidentifiercollectionmanagers">
<key column="managerId"/>
<many-to-many class="pt.estgp.estgweb.domain.ManagedIdentifierCollection" column="collectionId"/>
</set>
97,7 → 98,7
<property name="unitCheck" type="boolean"/>
<property name="academicDegree" type="string"/>
<property name="localRemovedTeachedUnits" type="string"/>
<set name="teachedUnits" lazy="true" order-by="courseUnitId" table="teachedUnits">
<set name="teachedUnits" lazy="true" order-by="courseUnitId" table="teachedunits">
<key column="teacherId"/>
<many-to-many class="pt.estgp.estgweb.domain.CourseUnit" column="courseUnitId"/>
</set>
/impl/src/hbm/pt/estgp/estgweb/domain/Record.hbm.xml
4,7 → 4,7
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.Record" table="profileRecord" abstract="true">
<class name="pt.estgp.estgweb.domain.Record" table="profilerecord" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
24,11 → 24,11
<property name="identifier" type="string"/>
<property name="repositoryStream" type="string" index="repositoryStreamIndex"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/>
<set name="creators" lazy="true" table="creatorRecords">
<set name="creators" lazy="true" table="creatorrecords">
<key column="recordId"/>
<many-to-many class="pt.estgp.estgweb.domain.User" column="creatorId"/>
</set>
<set name="contributors" lazy="true" table="contributorRecords">
<set name="contributors" lazy="true" table="contributorrecords">
<key column="recordId"/>
<many-to-many class="pt.estgp.estgweb.domain.User" column="contributorId"/>
</set>
/impl/src/hbm/pt/estgp/estgweb/domain/RepositoryFile.hbm.xml
4,7 → 4,7
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.RepositoryFile" table="repositoryFile" abstract="true">
<class name="pt.estgp.estgweb.domain.RepositoryFile" table="repositoryfile" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
24,7 → 24,7
<subclass name="pt.estgp.estgweb.domain.RepositoryFileImpl" discriminator-value="RepositoryFileImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.RepositoryFileVersion" table="repositoryFileVersion" abstract="true">
<class name="pt.estgp.estgweb.domain.RepositoryFileVersion" table="repositoryfileversion" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
/impl/src/hbm/pt/estgp/estgweb/domain/Image.hbm.xml
17,7 → 17,6
<property name="contentType" type="string"/>
<property name="size" type="int"/>
<property name="description" type="text"/>
<property name="image" type="binary" length="4194304"/>
<subclass name="pt.estgp.estgweb.domain.ImageImpl" discriminator-value="ImageImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml
21,6 → 21,9
<property name="externalSiteServer" type="string"/>
<property name="externalSitePath" type="string"/>
<property name="degree" type="string"/>
<property name="cacheWebDocument" type="text">
<column name="cacheWebDocument" sql-type="TEXT"/>
</property>
<property name="studiesPlan" type="string" index="studiesPlanIndex"/>
<many-to-one name="director" class="pt.estgp.estgweb.domain.Teacher" outer-join="false" lazy="proxy"/>
<many-to-one name="coordinator" class="pt.estgp.estgweb.domain.Teacher" outer-join="false" lazy="proxy"/>
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
4,7 → 4,7
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseUnit" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunit" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
15,23 → 15,23
<property name="saveDate" type="timestamp"/>
<property name="semestre" type="string" index="semestreIndex"/>
<property name="name" type="string" index="nameIndex"/>
<property name="code" type="string"/>
<property name="courseCode" type="string"/>
<property name="courseName" type="string"/>
<property name="courseYear" type="string"/>
<property name="code" type="string" index="codeIndex"/>
<property name="courseCode" type="string" index="courseCodeIndex"/>
<property name="courseName" type="string" index="courseNameIndex"/>
<property name="courseYear" type="string" index="courseYearIndex"/>
<property name="importYear" type="string" index="importYearIndex"/>
<property name="institutionCode" type="string" />
<property name="institutionCode" type="string" index="institutionCodeIndex" />
<property name="pathIntranet" type="string" />
<property name="normalizedName" type="string" />
<property name="objectives" type="text"/>
<property name="programStreamId" type="string"/>
<property name="status" type="boolean" />
<property name="programStreamId" type="string" index="programStreamIdIndex" />
<property name="status" type="boolean" index="statusIndex" />
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="false" outer-join="true"/>
<set name="blogs" cascade="delete" lazy="true" order-by="saveDate asc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitBlog" />
</set>
<set name="teachers" lazy="true" table="teachedUnits">
<set name="teachers" lazy="true" table="teachedunits">
<key column="courseUnitId"/>
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="teacherId"/>
</set>
54,8 → 54,8
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitQuestion" table="courseUnitQuestion" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<class name="pt.estgp.estgweb.domain.CourseUnitQuestion" table="courseunitquestion" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
66,11 → 66,12
<property name="question" type="text"/>
<property name="answer" type="text"/>
<property name="answred" type="boolean" index="answredIndex"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitQuestionImpl" discriminator-value="CourseUnitQuestionImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitAssignement" table="courseUnitAssignement" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitAssignement" table="courseunitassignement" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
94,7 → 95,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitAssignementImpl" discriminator-value="CourseUnitAssignementImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitDeliverable" table="courseUnitDeliverable" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitDeliverable" table="courseunitdeliverable" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
112,7 → 113,7
<subclass name="pt.estgp.estgweb.domain.CourseUnitDeliverableImpl" discriminator-value="CourseUnitDeliverableImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.CourseUnitGrade" table="courseUnitGrade" abstract="true">
<class name="pt.estgp.estgweb.domain.CourseUnitGrade" table="courseunitgrade" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
123,6 → 124,7
<property name="saveDate" type="timestamp"/>
<property name="publishDate" type="timestamp"/>
<property name="grade" type="int" index="gradeIndex"/>
<property name="normalizedCourseUnitName" type="string"/>
<property name="statusEpoca" type="int" index="statusEpocaIndex"/>
<property name="importYear" type="string" index="importYearIndex"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
130,4 → 132,28
<subclass name="pt.estgp.estgweb.domain.CourseUnitGradeImpl" discriminator-value="CourseUnitGradeImpl"/>
</class>
 
<!--<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunitassignement" 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 name="updateDate" unsaved-value="null"/>-->
<!--<property name="saveDate" type="timestamp"/>-->
<!--<property name="deliverDate" type="timestamp"/>-->
<!--<property name="deliverType" type="string"/>-->
<!--<property name="lateDelivers" type="boolean"/>-->
<!--<property name="title" type="string"/>-->
<!--<property name="description" type="text"/>-->
<!--<property name="repositoryStream" type="string" index="repositoryStreamIndex"/>-->
<!--<property name="status" type="boolean"/>-->
<!--<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>-->
<!--<set name="deliverables" cascade="delete" lazy="true" order-by="deliverDate asc">-->
<!--<key column="courseUnitAssignement"/>-->
<!--<one-to-many class="pt.estgp.estgweb.domain.CourseUnitDeliverable"/>-->
<!--</set>-->
<!--<subclass name="pt.estgp.estgweb.domain.CourseUnitAssignementImpl" discriminator-value="CourseUnitAssignementImpl"/>-->
<!--</class>-->
 
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/IdentifiersManagement.hbm.xml
4,7 → 4,7
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.ManagedIdentifier" table="managedIdentifier" abstract="true">
<class name="pt.estgp.estgweb.domain.ManagedIdentifier" table="managedidentifier" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
20,7 → 20,7
<subclass name="pt.estgp.estgweb.domain.ManagedIdentifierImpl" discriminator-value="ManagedIdentifierImpl"/>
</class>
 
<class name="pt.estgp.estgweb.domain.ManagedIdentifierCollection" table="managedIdentifierCollection" abstract="true">
<class name="pt.estgp.estgweb.domain.ManagedIdentifierCollection" table="managedidentifiercollection" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
33,7 → 33,7
<property name="sequenceNumber" type="long"/>
<property name="description" type="text"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/>
<set name="managers" lazy="true" table="managedIdentifierCollectionManagers">
<set name="managers" lazy="true" table="managedIdentifiercollectionmanagers">
<key column="collectionId"/>
<many-to-many class="pt.estgp.estgweb.domain.User" column="managerId"/>
</set>
/impl/src/hbm/pt/estgp/estgweb/domain/Job.hbm.xml
New file
0,0 → 1,25
<?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.Job" table="job" 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 name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="startDate" type="timestamp" index="startDateIndex"/>
<property name="description" type="string"/>
<property name="executed" type="boolean"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.User" lazy="proxy" outer-join="true"/>
<property name="jobHandler" type="java.io.Serializable">
<column name="jobHandler" sql-type="LONGBLOB"/>
</property>
<subclass name="pt.estgp.estgweb.domain.JobImpl" discriminator-value="JobImpl"/>
</class>
</hibernate-mapping>
/impl/src/scripts/transformXml.bat
New file
0,0 → 1,4
call setenv.bat
set LIBS=lib/dom4j-1.4.jar;lib/saxon9.jar;lib/saxon9-dom4j.jar;lib/log4j-1.2.8.jar;lib/estgweb.jar
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "classes;%LIBS%" pt.estgp.estgweb.services.utils.TransformXmlService in.xml /template/xsd/curso.xsl out.html
 
/impl/src/scripts/importCourseUnits.bat
New file
0,0 → 1,3
call setenv.bat
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "%LIBS%" pt.estgp.estgweb.services.sigesimports.ImportCourseService
 
/impl/src/scripts/jobDeamon.bat
New file
0,0 → 1,3
call setenv.bat
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "%LIBS%" pt.estgp.estgweb.services.jobs.JobDeamon
 
/impl/src/scripts/tempCleaner.bat
New file
0,0 → 1,3
call setenv.bat
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "%LIBS%" pt.estgp.estgweb.services.data.TmpCleaner
 
/impl/src/scripts/importGrades.bat
New file
0,0 → 1,3
call setenv.bat
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "%LIBS%" pt.estgp.estgweb.services.sigesimports.ImportGradesService
 
/impl/src/scripts/importStudents.bat
New file
0,0 → 1,3
call setenv.bat
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "%LIBS%" pt.estgp.estgweb.services.sigesimports.ImportStudentsService
 
/impl/src/scripts/setenv.bat
New file
0,0 → 1,9
SET TOMCAT_HOME=@tomcat.home@
SET JAVA_OPTS=-Xmx1024m -Xms512m -XX:NewRatio=1
call libs.bat
 
 
 
 
 
 
/impl/src/scripts/importTeachers.bat
New file
0,0 → 1,3
call setenv.bat
java %JAVA_OPTS% -Dfile.encoding=UTF-8 -classpath "%LIBS%" pt.estgp.estgweb.services.sigesimports.ImportTeachersService
 
/impl/src/web/imgs/top.jpg
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/web/admin/profile/profileCurriculum.jsp
26,6 → 26,7
%>
<html:form action="/user/profile" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="createRecord">
<html:hidden property="recordView.id"/>
<table class="form">
<tr>
<th>
35,6 → 36,7
<html:select property="recordView.type">
<html:option value="RecordThesisImpl" key="profile.RecordThesisImpl"/>
<html:option value="RecordPaperImpl" key="profile.RecordPaperImpl"/>
<%--todo Falta Artigo de Opinião e falta meter artigo cientifico, revista, conferencia, workshop--%>
<html:option value="RecordJobImpl" key="profile.RecordJobImpl"/>
<html:option value="RecordEventOrganizationImpl" key="profile.RecordEventOrganizationImpl"/>
<html:option value="RecordProjectImpl" key="profile.RecordProjectImpl"/>
/impl/src/web/admin/courses/course.jsp
11,6 → 11,11
<html:form action="/user/courseControllerFromServiceZone" enctype="multipart/form-data">
<input type="hidden" name="dispatch" value="submit"/>
<html:hidden property="courseView.id"/>
<logic:present name="CourseView" property="htmlResult">
<pre class="log">
<bean:write name="CourseView" property="htmlResult"/>
</pre>
</logic:present>
<table class="form">
<tr>
<th>
34,10 → 39,11
</th>
<td>
<html:select property="courseView.degree">
<html:option value="B">Bacharlato</html:option>
<html:option value="L">Lincenciatura</html:option>
<html:option value="M">Mestrado</html:option>
<html:option value="P">Pós Graduação</html:option>
<html:option value="B"><bean:message key="course.B"/></html:option>
<html:option value="L"><bean:message key="course.L"/></html:option>
<html:option value="M"><bean:message key="course.M"/></html:option>
<html:option value="P"><bean:message key="course.P"/></html:option>
<html:option value="E"><bean:message key="course.E"/></html:option>
</html:select>
* SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Confirmar Mestrados e Pos graduacoes e informar equipa de desenvolvimento
</td>
109,6 → 115,18
</td>
</tr>
<tr>
<td>
 
<bean:message key="course.externalSite"/>
</td>
<td>
<html:select property="courseView.externalSiteServer">
<html:option value="estgp">ESTG</html:option>
</html:select>
<html:text property="courseView.externalSitePath"/>
</td>
</tr>
<tr>
<th>
<bean:message key="course.studies.plan"/>
</th>
/impl/src/web/admin/courseunits/courseunit.jsp
84,74 → 84,89
<bean:message key="courseunit.teachers"/>
</th>
<td>
<html:select property="teacherId">
<logic:present name="CourseUnitsForm" property="teachers">
<logic:iterate id="teacher" name="CourseUnitsForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<jomm:option itemName="teacher" itemProperty="id" comparableObjectName="CourseUnitsForm"
comparableObjectProperty="teacherId">
(${teacher.code}) ${teacher.name}
</jomm:option>
</logic:iterate>
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addTeacher');this.form.submit();">
</logic:present>
</html:select>
<logic:greaterThan name="CourseUnitView" property="teachersSize" value="0">
<table class="dataTable removeButton">
<logic:iterate id="userView" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
${userView.code}
</th>
<th>
${userView.name}
</th>
<td><input type="button" class="removeButton"
onclick="CourseUnitsForm.id.value='${userView.id}';set(this.form,'removeTeacher');this.form.submit();">
</td>
</tr>
</logic:iterate>
</table>
<logic:lessEqual value="0" name="CourseUnitView" property="id">
<i><bean:message key="courseunit.to.add.teachers.save.first"/></i>
</logic:lessEqual>
 
<logic:greaterThan value="0" name="CourseUnitView" property="id">
<html:select property="teacherId">
<logic:present name="CourseUnitsForm" property="teachers">
<logic:iterate id="teacher" name="CourseUnitsForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<jomm:option itemName="teacher" itemProperty="id" comparableObjectName="CourseUnitsForm"
comparableObjectProperty="teacherId">
(${teacher.code}) ${teacher.name}
</jomm:option>
</logic:iterate>
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addTeacher');this.form.submit();">
</logic:present>
</html:select>
<logic:greaterThan name="CourseUnitView" property="teachersSize" value="0">
<table class="dataTable removeButton">
<logic:iterate id="userView" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
${userView.code}
</th>
<th>
${userView.name}
</th>
<td><input type="button" class="removeButton"
onclick="CourseUnitsForm.id.value='${userView.id}';set(this.form,'removeTeacher');this.form.submit();">
</td>
</tr>
</logic:iterate>
</table>
</logic:greaterThan>
</logic:greaterThan>
</td>
</tr>
 
<tr>
<th>
<bean:message key="courseunit.students"/>
</th>
<td>
<html:text styleClass="text" property="studentCode"/>
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addStudent');this.form.submit();">
<logic:greaterThan name="CourseUnitView" property="studentsSize" value="0">
<table class="dataTable removeButton">
<logic:iterate id="userView" name="CourseUnitView" property="students" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
${userView.code}
</th>
<th>
${userView.username}
</th>
<th>
${userView.name}
</th>
<th>
${userView.email}
</th>
<th>
${userView.address}
</th>
<td><input type="button" class="removeButton"
onclick="CourseUnitsForm.id.value='${userView.code}';set(this.form,'removeStudent');this.form.submit();">
</td>
</tr>
</logic:iterate>
</table>
 
<logic:lessEqual value="0" name="CourseUnitView" property="id">
<i><bean:message key="courseunit.to.add.students.save.first"/></i>
</logic:lessEqual>
 
<logic:greaterThan value="0" name="CourseUnitView" property="id">
<html:text styleClass="text" property="studentCode"/>
<input type="button" value="<bean:message key="add"/>"
onclick="set(this.form,'addStudent');this.form.submit();">
<logic:greaterThan name="CourseUnitView" property="studentsSize" value="0">
<table class="dataTable removeButton">
<logic:iterate id="userView" name="CourseUnitView" property="students" type="pt.estgp.estgweb.domain.views.UserView">
<tr>
<th>
${userView.code}
</th>
<th>
${userView.username}
</th>
<th>
${userView.name}
</th>
<th>
${userView.email}
</th>
<th>
${userView.address}
</th>
<td><input type="button" class="removeButton"
onclick="CourseUnitsForm.id.value='${userView.code}';set(this.form,'removeStudent');this.form.submit();">
</td>
</tr>
</logic:iterate>
</table>
</logic:greaterThan>
</logic:greaterThan>
</td>
</tr>
 
 
</table>
<input type="button" onclick="set(form,'createOrUpdateAdmin');form.submit()" value="<bean:message key="confirm"/>">
</html:form>
/impl/src/web/admin/announcements/submitAnnouncement.jsp
328,7 → 328,7
</html:select>
<html:text property="announcementView.internalUrlPath"/>
<html:select property="announcementView.internalUrlServer">
<html:option value="estg">ESTG</html:option>
<html:option value="estgp">ESTG</html:option>
<html:option value="ionline">IONLINE</html:option>
</html:select>
</td>
/impl/src/web/css/style.css
13,6 → 13,12
cursor:pointer;
}
 
label.info
{
FONT-SIZE: 10px;
font-style:italic;
padding-left:5px;
}
 
/*Errors and Warnings*/
.statusOK, .active {
33,6 → 39,12
background-color: black;
}
 
.log
{
background:gray;
color:#FFFFFF;
}
 
.requiredField * {
color: red;
}
396,8 → 408,6
}
 
#searchResults li .module {
position: absolute;
visibility: hidden;
margin-left:5px;
}
 
464,6 → 474,7
.block
{
margin-bottom:10px;
border-left: 1px solid #8EC73F;
}
 
.block .zerofound, .block table
483,19 → 494,40
}
.block ul li ul li
{
padding-left: 10px;
padding-left: 0;
}
 
.block p, .navLeftMenu h2 {
background-color: #ededed;
padding-left: 10px;
background-color: #8EC73F;
padding-left: 0;
margin: 0;
 
}
 
.intranetLayout .block ul
{
LIST-STYLE-TYPE: square;
}
.block ul {
LIST-STYLE-TYPE: none;
padding-left: 10px;
 
list-style:none;
padding-left: 18px;
margin-left:0;
}
.intranetLayout .block ul ul{
LIST-STYLE-TYPE: circle;
}
.block ul ul
{
list-style:none;
padding-left: 15px;
margin-left:0;
}
.block ul li{
padding-top:5px;
padding-left:0;
margin-left:0;
}
 
.block a {
color: #4d4d4d;
618,6 → 650,7
background-x-position: 0pt;
background-y-position: 50%;
padding-left: 20px;
padding-top:0;
list-style-type: none;
margin-left:10px;
vertical-align:top;
641,6 → 674,10
margin-left: 15px;
}
 
.listDecimal li
{
padding-top:5px;
}
.listDisc UL /*Lista circulo preto*/
{
/*LIST-STYLE-TYPE: disc;*/
732,7 → 769,7
/*FlashCenterNews*/
#flashCenterNews {
margin-top: 2px;
border-top-style: dotted;
/* border-top-style: dotted;*/
border-top-color: gray;
}
 
746,7 → 783,7
}
 
#flashCenterNews h2 a{
color: #8EC73F;
color: #589A2C;
font-weight: bold;
text-decoration: none;
}
768,14 → 805,59
}
 
#flashBottomNews h2 a {
color: #8EC73F;
color: #589A2C;
font-weight: bold;
}
 
 
#flashBottomNews p a {
color: #4d4d4d;
text-decoration:none;
text-align:justify;
}
 
.flashNew
{
width:100%;
 
}
.flashNew td
{
background-color: #D3D3D3;
}
#flashCenterNews .container td, #flashBottomNews .container td
{
padding:2px;
 
}
#flashCenterNews .container td.cont
{
width:50%;
}
#flashBottomNews .container td.cont
{
width:25%;
}
#flashCenterNews .flashNew td, #flashBottomNews .flashNew td
{
border-right: 1px solid black;
border-bottom: 1px solid black;
border-top: 1px solid black;
padding: 4px;
width:80%;
 
}
 
#flashCenterNews .flashNew th, #flashBottomNews .flashNew th
{
border-left: 1px solid black;
border-bottom: 1px solid black;
border-top: 1px solid black;
border-right: 1px solid gray;
padding: 4px;
}
 
 
/*Last News Block*/
#lastnews {
}
1446,3 → 1528,45
background-color: black;
}
 
 
/*Plano Curricular*/
.planoCurricular td, .planoCurricular th
{
font-family: "bitstream vera sans",Verdana,Arial,Helvetica,sans-serif;
}
.planoCurricular
{
border:1px solid black;
 
}
.planoCurricular th
{
font-weight:normal;
border:1px solid black;
 
}
.planoCurricular td.unidade
{
text-align:right;
}
td.unidade span
{
width:100%;
}
.semestre
{
background-color:#8ec73f;
}
.semestreHead
{
background-color:#8ec73f;
}
.perfilNome, .perfilHead
{
background-color:#D6D6D6
}
.ects
{
background-color:#EBFCD6;
}
 
/impl/src/web/js/functions.js
71,3 → 71,5
{
return confirm(msg);
}
 
 
/impl/src/web/layout/header.jsp
1,3 → 1,5
<%@ page import="pt.estgp.estgweb.web.utils.ProxyUtils" %>
<%@ page import="pt.estgp.estgweb.web.filters.TopImageFilter" %>
<%@ 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" %>
7,7 → 9,22
<table width="100%">
<tr>
<td>
<img alt="estg" src="<%=request.getContextPath()%>/imgs/top.jpg"/>
 
<%
String link = (String) request.getAttribute(TopImageFilter.TOP_IMAGE);
if (link == null)
{
%>
<img alt="estg" src="<%=request.getContextPath()%>/imgs/top.jpg"/>
<%
}
else
{
%>
<img alt="estg" src="<%=link%>"/>
<%
}
%>
</td>
</tr>
</table>
/impl/src/web/layout/headerIntranet.jsp
7,7 → 7,9
<table width="100%" id="headerIntranet">
<tr>
<td class="title">
INTRANET - ESTG (<bean:write name="UserSession" property="user.name"/> online)
<logic:present name="UserSession">
INTRANET - ESTG (<bean:write name="UserSession" property="user.name"/> online)
</logic:present>
</td>
<td class="links">
<ul>
/impl/src/web/layout/topnav.jsp
12,10 → 12,15
List<NavPlace> navKeys = topNav.getNavPlaces();
for (NavPlace navPlace : navKeys)
{
 
 
if (navPlace.getUrl() != null)
{
String context = "";
if(navPlace.getUrl().startsWith("/"))
context = request.getContextPath();
%>
<li class="navPlace"><a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=navPlace.getMessage(request)%></a> &gt;</li>
<li class="navPlace"><a href="<%=context + navPlace.getUrl()%>"><%=navPlace.getMessage(request)%></a> &gt;</li>
<%
}
else
/impl/src/web/layout/layoutintranet.jsp
5,6 → 5,8
<%@ 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" %>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html:html locale="true">
<head>
<title><bean:message key="site.title"/> - <tiles:getAsString name="title"/></title>
12,7 → 14,7
<jsp:include page="/layout/scripts.jsp"/>
</head>
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0">
<div id="body">
<div id="body" class="intranetLayout">
<div id="header">
<tiles:insert attribute="header"/>
</div>
/impl/src/web/layout/navigationTop.jsp
1,4 → 1,5
<%--
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%--
Created by IntelliJ IDEA.
User: Fabio Velez
Date: 13/Mar/2008
29,25 → 30,24
</ul>
</div>
</li>
<li class="submenu"><a href="#">Organização</a>
<li class="submenu"><a href="#"><bean:message key="organization"/> </a>
 
<div class="shadow">
<ul class="menu">
<li><a href="#">Assembleia de Representantes</a></li>
<li><a href="#">Conselho Directivo</a></li>
<li><a href="#">Conselho Ciêntifico</a></li>
<li><a href="#">Conselho Pedagógico</a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartLinkPortalMenu("assembleiaRepresentantes") + "/orgaosAssembleiaRepresentantes.html"%>"><bean:message key="user.role.representativeCouncil"/></a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartLinkPortalMenu("conselhoDirectivo") + "/orgaosConselhoDirectivo.html"%>"><bean:message key="user.role.administrativeCouncil"/></a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartLinkPortalMenu("conselhoCientifico") + "/orgaosConselhoCientifico.html"%>"><bean:message key="user.role.scientificCouncil"/></a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartLinkPortalMenu("conselhoPedagogico") + "/orgaosConselhoPedagogico.html"%>"><bean:message key="user.role.pedagogicCouncil"/></a></li>
</ul>
</div>
</li>
<li class="submenu"><a href="#">Áreas</a>
 
<li class="submenu"><a href="<%=request.getContextPath() + Globals.getStartPublicLink("areas") + "/areas/areas.html"%>"><bean:message key="areas"/> </a>
<div class="shadow ">
<ul class="menu">
<li><a href="#">Engenharias</a></li>
<li><a href="#">Ciências Empresariais</a></li>
<li><a href="#">Ciências Humanas</a></li>
<li><a href="#">Design</a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartPublicLink("areaEG") + "/areas/areaEG.html"%>"><bean:message key="top.menu.area.eg"/> </a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartPublicLink("areaCE") + "/areas/areaEG.html"%>"><bean:message key="top.menu.area.ce"/> </a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartPublicLink("areaCH") + "/areas/areaEG.html"%>"><bean:message key="top.menu.area.ch"/> </a></li>
<li><a href="<%=request.getContextPath() + Globals.getStartPublicLink("areaDG") + "/areas/areaEG.html"%>"><bean:message key="top.menu.area.dg"/> </a></li>
</ul>
</div>
</li>
55,11 → 55,11
 
<div class="shadow ">
<ul class="menu">
<li><a href="#">Cursos</a></li>
<li><a href="#">Mestrados</a></li>
<li><a href="#">Pós Graduações</a></li>
<li><a href="#">Cet´s</a></li>
<li><a href="#">Formação TIC</a></li>
<li><html:link action="/courses"><bean:message key="module.Courses"/></html:link></li>
<li><html:link action="/courses" anchor="M"><bean:message key="course.Ms"/></html:link></li>
<li><html:link action="/courses" anchor="P"><bean:message key="course.Ps"/></html:link></li>
<li><a href="http://www.estgp.pt/cets/index.htm"><bean:message key="course.Es"/></a></li>
<li><a href="http://www.estgp.pt/tic/">Formação TIC</a></li>
<li><a href="#">Formação CTOC</a></li>
<li><a href="#">Acções de Formação de Curta Duração</a></li>
</ul>
/impl/src/web/layout/separators.jsp
33,7 → 33,7
String link3 = "href=\"" + request.getContextPath() + "/user/startProfile.do\"";
String link4 = "href=\"" + request.getContextPath() + "/user/startServiceZone.do\"";
String link5 = "href=\"" + request.getContextPath() + "/proxy/layoutIOnline/ionline/\"";
String link6 = "href=\"" + request.getContextPath() + "/proxy/layoutIntranetUtils/estgp/intranet/index.html\"";
String link6 = "href=\"" + request.getContextPath() + "/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html\"";
 
if(sep == 0)
{
/impl/src/web/public/topMenuNavs/topnavConselhoPedagogico.jsp
New file
0,0 → 1,10
<%@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("/Welcome.do", "Home");
topNav.addNavPlace(null, "user.role.pedagogicCouncil");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavAreaCE.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" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace(Globals.getStartPublicLink("areas") + "/areas/areas.html", "areas");
topNav.addNavPlace(null, "area.ce");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavAreaCH.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" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace(Globals.getStartPublicLink("areas") + "/areas/areas.html", "areas");
topNav.addNavPlace(null, "area.ch");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavAreaDG.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" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace(Globals.getStartPublicLink("areas") + "/areas/areas.html", "areas");
topNav.addNavPlace(null, "area.dg");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavConselhoDirectivo.jsp
New file
0,0 → 1,10
<%@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("/Welcome.do", "Home");
topNav.addNavPlace(null, "user.role.administrativeCouncil");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavAreaEG.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" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace(Globals.getStartPublicLink("areas") + "/areas/areas.html", "areas");
topNav.addNavPlace(null, "area.eg");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavConselhoCientifico.jsp
New file
0,0 → 1,10
<%@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("/Welcome.do", "Home");
topNav.addNavPlace(null, "user.role.scientificCouncil");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavAssembleiaRepresentantes.jsp
New file
0,0 → 1,10
<%@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("/Welcome.do", "Home");
topNav.addNavPlace(null, "user.role.representativeCouncil");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/topMenuNavs/topnavAreas.jsp
New file
0,0 → 1,10
<%@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("/Welcome.do", "Home");
topNav.addNavPlace(null, "areas");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/profile/profileHome.jsp
81,7 → 81,7
<bean:message key="email.institucion"/>
</th>
<td>
<bean:write name="ProfileForm" property="userView.email"/>
${ProfileForm.userView.safeEmail}
</td>
</tr>
 
115,7 → 115,7
<ul>
<logic:iterate id="courseUnit" name="course" property="courseUnits">
<li>
<html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link>
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link>
</li>
</logic:iterate>
</ul>
/impl/src/web/public/profile/recordViews.jsp
1,3 → 1,4
<%@ page import="jomm.utils.MessageResources" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
6,70 → 7,81
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<div class="listClean">
<ul>
<logic:iterate id="recordView" name="RecordViews" type="pt.estgp.estgweb.domain.views.RecordView">
<li>
<table>
<logic:present name="recordView" property="title">
<tr>
<th><bean:message key="profile.record.title"/></th>
<td>
<logic:equal value="false" name="recordView" property="haveIdentifier">
${recordView.title}
<logic:present name="recordView" property="subtitle">
- ${recordView.subtitle}
</logic:present>
</logic:equal>
<logic:equal value="true" name="recordView" property="haveIdentifier">
<a href="${recordView.identifier}">
<ul>
<logic:iterate id="recordView" name="RecordViews" type="pt.estgp.estgweb.domain.views.RecordView">
<li>
<table>
<logic:present name="recordView" property="title">
<tr>
<th><bean:message key="profile.record.title"/></th>
<td>
<logic:equal value="false" name="recordView" property="haveIdentifier">
${recordView.title}
 
<logic:present name="recordView" property="subtitle">
- ${recordView.subtitle}
</logic:present>
</a>
</logic:equal>
</logic:equal>
<logic:equal value="true" name="recordView" property="haveIdentifier">
<a href="${recordView.identifier}">
${recordView.title}
<logic:present name="recordView" property="subtitle">
- ${recordView.subtitle}
</logic:present>
</a>
</logic:equal>
&nbsp;
<baco:isOwner name="recordView">
<html:link action="/user/startChangeRecordProfile?recordView.id=${recordView.id}"><bean:message key="edit"/></html:link>
<%
String confirmDelete = MessageResources.getMessage(request, "profile.record.confirm.delete");
request.setAttribute("confirmDelete", confirmDelete);
%>
<html:link onclick="return confirm('${confirmDelete}')" action="/user/startDeleteRecordProfile?recordView.id=${recordView.id}">
<bean:message key="delete"/>
</html:link>
</baco:isOwner>
</td>
</tr>
</logic:present>
<logic:present name="recordView" property="date">
<tr>
<th><bean:message key="profile.record.date"/></th>
<td>${recordView.date}</td>
</tr>
</logic:present>
<logic:present name="recordView" property="publisher">
<tr>
<th><bean:message key="profile.record.publisher"/></th>
<td>${recordView.publisher}</td>
</tr>
</logic:present>
 
</td>
</tr>
</logic:present>
<logic:present name="recordView" property="date">
<tr>
<th><bean:message key="profile.record.date"/></th>
<td>${recordView.date}</td>
</tr>
</logic:present>
<logic:present name="recordView" property="publisher">
<tr>
<th><bean:message key="profile.record.publisher"/></th>
<td>${recordView.publisher}</td>
</tr>
</logic:present>
 
<logic:present name="recordView" property="copyright">
<tr>
<th><bean:message key="profile.record.copyright"/></th>
<td>${recordView.copyright}</td>
</tr>
</logic:present>
<logic:present name="recordView" property="description">
<tr>
<th><bean:message key="profile.record.description"/></th>
<td>${recordView.description}</td>
</tr>
</logic:present>
<logic:present name="recordView" property="repositoryStream">
<tr>
<th >
<bean:message key="profile.record.file"/>
</th>
<td>
<a target="blank" href="<%=request.getContextPath()%>/repositoryStream/${recordView.repositoryStream}">${recordView.repositoryFile.lastVersion.name}</a>
(${recordView.repositoryFile.lastVersion.sizeKb} Kb)
</td>
</tr>
</logic:present>
</table>
</li>
</logic:iterate>
</ul>
<logic:present name="recordView" property="copyright">
<tr>
<th><bean:message key="profile.record.copyright"/></th>
<td>${recordView.copyright}</td>
</tr>
</logic:present>
<logic:present name="recordView" property="description">
<tr>
<th><bean:message key="profile.record.description"/></th>
<td>${recordView.description}</td>
</tr>
</logic:present>
<logic:present name="recordView" property="repositoryStream">
<tr>
<th >
<bean:message key="profile.record.file"/>
</th>
<td>
<a target="blank" href="<%=request.getContextPath()%>/repositoryStream/${recordView.repositoryStream}">${recordView.repositoryFile.lastVersion.name}</a>
(${recordView.repositoryFile.lastVersion.sizeKb} Kb)
</td>
</tr>
</logic:present>
</table>
</li>
</logic:iterate>
</ul>
</div>
/impl/src/web/public/index.jsp
16,9 → 16,6
String subTarget = null;
String[] names = new String[]{};
Object[] args = new Object[]{Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS, subTarget};
int topAnnouncements = 1;
int centerAnnouncements = 1;
int bottomAnnouncements = 1;
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request, response), "LoadTypeMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
49,169 → 46,130
</table>
</div>
 
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="bottom.flash.news" name="item" property="type">
 
<%
if (centerAnnouncements <= Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
if(announcementViews != null && announcementViews.size() > 0)
{
if (centerAnnouncements == 1)
{
%>
<div id="flashCenterNews">
<table class="container">
<tr>
<%
}
%>
<td class="imageContainer">
<%
if (item.getSmallImage() != null)
{
%><img alt="<%=item.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</td>
<td class="textContainer">
<logic:empty name="item" property="url">
<h2>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
 
<p>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%
if (!item.getHaveAllText())
{
%>
<h2>
<html:link href="${item.url}">${item.title}</html:link>
</h2>
 
<p>
<html:link href="${item.url}">${item.textSummarySmall}</html:link>
</p>
<%
}
else
{
%>
<h2>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
 
<p>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
<%}%>
</logic:notEmpty>
</td>
 
<%
if (centerAnnouncements == Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
<div id="flashCenterNews">
<table class="container" cellspacing="0">
<tr>
<%
int i;
for(i = 0; i < announcementViews.size() && i < 2; i++)
{
%>
</tr>
</table>
</div>
AnnouncementView announcementView = announcementViews.get(i);
request.setAttribute("item",announcementView);
%> <td class="cont">
<table class="flashNew" cellpadding="0" cellspacing="0"><tr>
<th class="imageContainer">
<logic:present name="item" property="smallImage">
<img alt="${item.title}" src="<%=request.getContextPath()%>/imageStream/${item.smallImage.id}">
</logic:present>
</th>
<td class="textContainer">
<logic:empty name="item" property="url">
<h2>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
<p>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<logic:equal value="false" name="item" property="haveAllText">
<h2>
<html:link href="${item.url}">${item.title}</html:link>
</h2>
<p>
<html:link href="${item.url}">${item.textSummarySmall}</html:link>
</p>
</logic:equal>
<logic:equal value="true" name="item" property="haveAllText">
<h2>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
<p>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
</logic:equal>
</logic:notEmpty>
</td>
</tr></table>
<%
}
centerAnnouncements++;
}
else if (bottomAnnouncements <= Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
if (bottomAnnouncements == 1)
{
}
%>
</tr>
</table>
</div>
<%
if(i < announcementViews.size())
{
%>
<div id="flashBottomNews">
<table class="container" cellspacing="0">
<%
while(i < announcementViews.size())
{
%>
<tr>
<% int j;
 
<div id="flashBottomNews">
<table class="container">
<tr>
<%}%>
<td>
<div class="imageContainer">
<%
if (item.getSmallImage() != null)
{
%><img alt="<%=item.getTitle()%>"
src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</div>
<div class="textContainer">
<logic:empty name="item" property="url">
<h2>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
 
<p>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%
if (!item.getHaveAllText())
{
%>
<h2>
<html:link href="${item.url}">${item.title}</html:link>
</h2>
 
<p>
<html:link href="${item.url}">${item.textSummarySmall}</html:link>
</p>
<%
for(j = i; j < announcementViews.size() && j - i < 4; j++)
{
AnnouncementView announcementView = announcementViews.get(j);
request.setAttribute("item",announcementView);
%>
<td class="cont">
<table class="flashNew" cellpadding="0" cellspacing="0"><tr>
<th class="imageContainer">
<logic:present name="item" property="smallImage">
<img alt="${item.title}" src="<%=request.getContextPath()%>/imageStream/${item.smallImage.id}">
</logic:present>
</th>
<td class="textContainer">
<logic:empty name="item" property="url">
<h2>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
<p>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<logic:equal value="false" name="item" property="haveAllText">
<h2>
<html:link href="${item.url}">${item.title}</html:link>
</h2>
<p>
<html:link href="${item.url}">${item.textSummarySmall}</html:link>
</p>
</logic:equal>
<logic:equal value="true" name="item" property="haveAllText">
<h2>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
<p>
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
</logic:equal>
</logic:notEmpty>
</td>
</tr></table>
<%
}
else
{
%>
<h2>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</h2>
i = j;
%>
</td>
</tr>
 
<p>
<html:link
action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link>
</p>
<%}%>
</logic:notEmpty>
</div>
</td>
<%
if (bottomAnnouncements == Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
%>
</tr>
</table>
</div>
<%
}
%>
</table>
</div>
<%
}
 
bottomAnnouncements++;
}
%>
</logic:equal>
</logic:iterate>
<%
if (bottomAnnouncements > 1 && bottomAnnouncements <= Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
%>
</div>
<%}%>
<%
if (centerAnnouncements > 1 && centerAnnouncements <= Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
%>
</tr>
</table>
</div>
<%}%>
</div>
 
/impl/src/web/public/courses/index.jsp
New file
0,0 → 1,87
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.web.WebProxy" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.estgp.estgweb.domain.views.AnnouncementView" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ 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" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
 
List<CourseView> courses = (List<CourseView>) sm.execute(RequestUtils.getRequester(request, response), "LoadCoursesImportYear", args, names);
request.setAttribute("Courses", courses);
 
List<CourseView> bs = new ArrayList<CourseView>();
List<CourseView> ls = new ArrayList<CourseView>();
List<CourseView> ms = new ArrayList<CourseView>();
List<CourseView> ps = new ArrayList<CourseView>();
List<CourseView> es = new ArrayList<CourseView>();
 
for (CourseView cv : courses)
{
if (cv.getDegree().equals("B"))
bs.add(cv);
else if (cv.getDegree().equals("L"))
ls.add(cv);
else if (cv.getDegree().equals("M"))
ms.add(cv);
else if (cv.getDegree().equals("P"))
ps.add(cv);
else if (cv.getDegree().equals("E"))
es.add(cv);
}
 
request.setAttribute("bs",bs);
request.setAttribute("ls",ls);
request.setAttribute("ms",ms);
request.setAttribute("ps",ps);
request.setAttribute("es",es);
%>
<div class="seccao" >
<logic:notEmpty name="bs">
<a name="B"></a>
<h2><bean:message key="course.Bs"/></h2>
<%
request.setAttribute("courses",bs);
%>
<jsp:include page="courseList.jsp"/>
</logic:notEmpty>
 
<logic:notEmpty name="ls">
<a name="L"></a>
<h2><bean:message key="course.Ls"/></h2>
<%
request.setAttribute("courses",ls);
%>
<jsp:include page="courseList.jsp"/>
</logic:notEmpty>
 
<logic:notEmpty name="ms">
<a name="M"></a>
<h2><bean:message key="course.Ms"/></h2>
<%
request.setAttribute("courses",ms);
%>
<jsp:include page="courseList.jsp"/>
</logic:notEmpty>
 
<logic:notEmpty name="ps">
<a name="P"></a>
<h2><bean:message key="course.Ps"/></h2>
<%
request.setAttribute("courses",ps);
%>
<jsp:include page="courseList.jsp"/>
</logic:notEmpty>
</div>
/impl/src/web/public/courses/topnavCourse.jsp
6,6 → 6,7
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace("/courses.do", "module.Courses");
topNav.addNavPlace(null, "course", CourseView.getName());
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/courses/topnavCourses.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("/Welcome.do", "Home");
topNav.addNavPlace(null, "courses");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/courses/courseList.jsp
New file
0,0 → 1,21
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ 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" %>
<jsp:useBean id="courses" type="java.util.List" scope="request"/>
<div class="listClean">
<ul>
<logic:iterate id="courseView" name="courses" type="pt.estgp.estgweb.domain.views.CourseView">
<li>
<a href="<%=request.getContextPath() + "/startLoadCourse.do?courseView.id=" + courseView.getId()%>">${courseView.name}</a>
<logic:notEmpty name="courseView" property="description">
<br/>
${courseView.description}
</logic:notEmpty>
</li>
</logic:iterate>
</ul>
</div>
/impl/src/web/public/courses/course.jsp
1,8 → 1,5
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="java.util.List" %>
<%@ page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.web.WebProxy" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
13,28 → 10,29
<jsp:useBean id="CourseView" type="pt.estgp.estgweb.domain.views.CourseView" scope="request"/>
 
<div class="seccao">
<h2>${CourseView.name}</h2>
<table class="dataTable">
<tr>
<th>
Nome
</th>
<td>
${CourseView.name}
</td>
</tr>
</table>
</div>
<h2>${CourseView.name} (<%=Globals.NATIONAL_INSTITUTION_CODE%> / ${CourseView.code})</h2>
 
<div class="seccao">
<h2>Unidades Curriculares</h2>
<ul>
<logic:iterate id="courseUnitView" name="CourseView" property="courseUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView">
<li>
${courseUnitView.name}
</li>
</logic:iterate>
</ul>
<logic:notEmpty name="CourseView" property="externalSitePath">
<%
WebProxy.processHttpRequestService(out,CourseView.getExternalSiteServer(),CourseView.getExternalSitePath());
%>
</logic:notEmpty>
<logic:empty name="CourseView" property="cacheWebDocument">
<div class="seccao">
<h2>Unidades Curriculares</h2>
<ul>
<logic:iterate id="courseUnitView" name="CourseView" property="courseUnits" type="pt.estgp.estgweb.domain.views.CourseUnitView">
<li>
${courseUnitView.name}
</li>
</logic:iterate>
</ul>
</div>
</logic:empty>
<logic:notEmpty name="CourseView" property="cacheWebDocument">
<h3><bean:message key="course.studies.plan"/></h3>
<bean:write name="CourseView" property="cacheWebDocument" filter="no"/>
</logic:notEmpty>
</div>
 
 
/impl/src/web/public/courses/courseMenuList.jsp
New file
0,0 → 1,24
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ 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" %>
<jsp:useBean id="courses" type="java.util.List" scope="request"/>
<jsp:useBean id="typeKey" type="java.lang.String" scope="request"/>
<div class="linkMenuBlock">
<div class="linkMenuBlockTitle"><bean:message key="${typeKey}"/></div>
<div class="linkLeftMenu">
<div class="listClean">
<ul>
<logic:iterate id="courseView" name="courses" type="pt.estgp.estgweb.domain.views.CourseView">
<li>
<html:link action="/startLoadCourse?courseView.id=${courseView.id}">${courseView.name}</html:link>
</li>
</logic:iterate>
</ul>
</div>
</div>
</div>
/impl/src/web/public/courses/courses.jsp
3,6 → 3,7
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
14,18 → 15,64
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{};
List<CourseView> courseViews = (List<CourseView>) sm.execute(RequestUtils.getRequester(request, response), "LoadCourses", args, names);
request.setAttribute("Courses", courseViews);
List<CourseView> courses = (List<CourseView>) sm.execute(RequestUtils.getRequester(request, response), "LoadCoursesImportYear", args, names);
request.setAttribute("Courses", courses);
List<CourseView> bs = new ArrayList<CourseView>();
List<CourseView> ls = new ArrayList<CourseView>();
List<CourseView> ms = new ArrayList<CourseView>();
List<CourseView> ps = new ArrayList<CourseView>();
List<CourseView> es = new ArrayList<CourseView>();
 
for (CourseView cv : courses)
{
if (cv.getDegree().equals("B"))
bs.add(cv);
else if (cv.getDegree().equals("L"))
ls.add(cv);
else if (cv.getDegree().equals("M"))
ms.add(cv);
else if (cv.getDegree().equals("P"))
ps.add(cv);
else if (cv.getDegree().equals("E"))
es.add(cv);
}
 
request.setAttribute("bs", bs);
request.setAttribute("ls", ls);
request.setAttribute("ms", ms);
request.setAttribute("ps", ps);
request.setAttribute("es", es);
%>
<jsp:useBean id="Courses" type="java.util.List" scope="request"/>
<div class="linkLeftMenu">
<div class="listClean">
<ul>
<logic:iterate id="courseView" name="Courses" type="pt.estgp.estgweb.domain.views.CourseView">
<li>
<html:link action="/startLoadCourse?courseView.id=${courseView.id}">${courseView.name}</html:link>
</li>
</logic:iterate>
</ul>
</div>
</div>
 
 
<logic:notEmpty name="bs">
<%
request.setAttribute("typeKey","course.Bs");
request.setAttribute("courses",bs);
%>
<jsp:include page="courseMenuList.jsp"/>
</logic:notEmpty>
 
<logic:notEmpty name="ls">
<%
request.setAttribute("typeKey","course.Ls");
request.setAttribute("courses",ls);
%>
<jsp:include page="courseMenuList.jsp"/>
</logic:notEmpty>
 
<logic:notEmpty name="ms">
<%
request.setAttribute("typeKey","course.Ms");
request.setAttribute("courses",ms);
%>
<jsp:include page="courseMenuList.jsp"/>
</logic:notEmpty>
 
<logic:notEmpty name="ps">
<%
request.setAttribute("typeKey","course.Ps");
request.setAttribute("courses",ps);
%>
<jsp:include page="courseMenuList.jsp"/>
</logic:notEmpty>
/impl/src/web/public/search/searchResults.jsp
15,7 → 15,7
var moduleResults = <%=ICommonSearchResults.getTotalResults()%>;
var query = '<%=ICommonSearchResults.getQuery()%>';
var searchType = '<%=ICommonSearchResults.getSearchType()%>';
if (moduleResults == 0 )
if (moduleResults == 0 )
{
window.location = "<%=request.getContextPath()%>/noresults.do?query=" + query + "&searchType=" + searchType;
}
154,11 → 154,9
<%
String visibility;
if (ICommonSearchResults.getSearchResults().size() == 1)
{
visibility = Globals.VISIBLE;
}
else
visibility = Globals.HIDDEN;
visibility = Globals.HIDDEN;
%>
<div class="module" id="<%=searchResults.getModule().getMessageKey()%>" style="<%=visibility%>">
<div id="${searchResults.module.messageKey}Results">
/impl/src/web/public/announcements/announcementsPortalLeft.jsp
21,7 → 21,7
IServiceManager sm = ServiceManager.getInstance();
String subTarget = null;
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS, subTarget};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS + "," +Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS, subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request, response), "LoadRoleTypeMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
 
/impl/src/web/public/announcements/loadAnnouncement.jsp
2,6 → 2,7
<%@ page import="pt.estgp.estgweb.domain.UserSessionImpl" %>
<%@ page import="pt.estgp.estgweb.domain.enums.AnnouncementStyleEnum" %>
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %>
<%@ page import="jomm.utils.MessageResources" %>
<%@ 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-logic.tld" prefix="logic" %>
18,18 → 19,22
<%
String fromAction = "";
String user = "";
if(request.getParameter("from")!=null)
if (request.getParameter("from") != null)
{
user = "/user";
fromAction = "From" + request.getParameter("from");
}
request.setAttribute("user",user);
request.setAttribute("fromAction",fromAction);
request.setAttribute("user", user);
request.setAttribute("fromAction", fromAction);
 
String confirmDelete = MessageResources.getMessage(request, "announcement.confirm.delete");
request.setAttribute("confirmDelete", confirmDelete);
 
%>
<html:link action="${user}/startEditAnnouncement${fromAction}?id=${Announcement.id}">
<bean:message key="edit"/>
</html:link>
<html:link action="${user}/startDeleteAnnouncement${fromAction}?id=${Announcement.id}">
<html:link onclick="return confirm('${confirmDelete}')" action="${user}/startDeleteAnnouncement${fromAction}?id=${Announcement.id}">
<bean:message key="delete"/>
</html:link>
</baco:canManage>
80,9 → 85,13
if (Announcement.getUrl() != null)
{
%>
<html:link href="${Announcement.url}">Ver +</html:link>
&nbsp;&nbsp;&gt;&gt; <html:link href="${Announcement.url}">Ver +</html:link>
<%
}%>
 
<div class="pFooter">
Posted by: ${Announcement.ownerUsername} AT ${Announcement.formatedSaveDate}
</div>
</p>
<%
}
115,6 → 124,14
<tr>
<td>${Announcement.formatedText}</td>
</tr>
<tr>
<td> &nbsp;&nbsp;&gt;&gt; <html:link href="${Announcement.url}">${Announcement.url}</html:link></td>
</tr>
<tr>
<td class="pFooter">
Posted by: ${Announcement.ownerUsername} AT ${Announcement.formatedSaveDate}
</td>
</tr>
</table>
<%
}
145,6 → 162,14
</td>
<td>${Announcement.formatedText}</td>
</tr>
<tr>
<td colspan="2"> &nbsp;&nbsp;&gt;&gt; <html:link href="${Announcement.url}">${Announcement.url}</html:link></td>
</tr>
<tr>
<td colspan="2" class="pFooter">
Posted by: ${Announcement.ownerUsername} AT ${Announcement.formatedSaveDate}
</td>
</tr>
</table>
<%
}
175,6 → 200,14
</div>
</td>
</tr>
<tr>
<td colspan="2"> &nbsp;&nbsp;&gt;&gt; <html:link href="${Announcement.url}">${Announcement.url}</html:link></td>
</tr>
<tr>
<td colspan="2" class="pFooter">
Posted by: ${Announcement.ownerUsername} AT ${Announcement.formatedSaveDate}
</td>
</tr>
</table>
<%
}
/impl/src/web/public/announcements/topnavLoadAnnouncement.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" %>
<jsp:useBean id="Announcement" type="pt.estgp.estgweb.domain.views.AnnouncementView" scope="request"/>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace(null, "Announcement",Announcement.getTitle());
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/templates/intranet/escola/secretaria/folhasPresencas.html
New file
0,0 → 1,89
<div id="contentIntranet"><div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria/legislacao.html
New file
0,0 → 1,89
<div id="contentIntranet"><div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria/formulariosAlunos.html
New file
0,0 → 1,89
<div id="contentIntranet"><div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria/calendariosExames.html
New file
0,0 → 1,90
<div id="contentIntranet">
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria/documentosApoio.html
New file
0,0 → 1,92
<div id="contentIntranet">
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
 
<a href="teste/teste.html?nav0=Documentos de apoio&navUrl0=../documentosApoio.html%3Fnav0%3DDocumentos de Apoio&nav1=teste">teste</a>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria/projectos.html
New file
0,0 → 1,89
<div id="contentIntranet"><div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria/calendarioEscolar.html
New file
0,0 → 1,90
<div id="contentIntranet">
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>Formulários para pedidos de contratação de Pessoal Docente</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/Documentos/PropostasPessoalDocente/PropostaAdmissaoPessoalDocente-Tipounico.doc">Proposta de contratação de pessoal docente e anexo com as instruções de preenchimento [documento novo]</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Normas de Funcionamento</h2>
<ul>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/Normas%20de%20Funcionamento%202007-2008.pdf">Normas de Funcionamento - Ano Lectivo 2007/2008</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/AcessoLaboratorio.doc">a. Formulário de autorização de acesso aos laboratórios</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/RequerimentoAulas.doc">b. Requerimento para compensação de aulas</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloProvaExame.doc">c. Modelo/cabeçalho para provas de exame</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ModeloComunicacaoInterna.doc">d. Modelo de Comunicação Interna [novo]</a>
</li>
<li>
<a href="http://www.global.estgp.pt/escola/NormasFuncionamento/ActualizacaoBibliografias.doc">e. Formulário para requisição bibliográfica</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="listClean">
<ul>
<li>
<h2>Relatórios de Auto-Avaliação</h2>
<ul>
<li>
Avaliação do Curso de Engenharia Civil - <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AdendaEC2003.pdf">Adenda</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEC2003.pdf">Engenharia Civil</a> - Ano Lectivo de 2003/2004
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEEM200203.pdf">Engenharia Electromecânica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoEIQ20012002.pdf">Engenharia Industrial e da Qualidade</a> - Ano Lectivo de 2001/2002
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoGE.pdf">Gestão Estratégica</a> - Ano Lectivo de 2002/2003
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoAA.pdf">Assessoria de Administração</a>
</li>
<li>
Avaliação do Curso de <a href="http://www.global.estgp.pt/escola/Documentos/Avaliacao/AvaliacaoMKT.pdf">Marketing</a> - Ano Lectivo de 2001/2002
</li>
</ul>
</li>
</ul>
</div>
 
<div class="listClean">
<ul>
<li>
<h2>Comissão de Assessoria e de Coordenação Técnica de Reformulação Curricular 2005/2006</h2>
<ul>
<li>
2º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento2.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a>
</li>
<li>
1º documento de trabalho <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.pdf"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Acrobat.gif"></a> <a href="http://www.global.estgp.pt/escola/Documentos/ComissoaRC/Documento1.doc"><img border="0" width="20px" src="http://www.global.estgp.pt/imagens/IconsOfficce/Word.gif"></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/Legislacao/EstatutosDocente/dl18581i.htm
New file
0,0 → 1,68
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html><head>
 
 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document"><title>Estatuto da Carreira do pessoal Docente do Ensino Superior Politécnico - Índice</title></head><body bgcolor="#ffffff">
 
<p align="center"><em><b><font color="#004080" face="Verdana" size="4">DECRETO-LEI N.º 185/81,</font></b></em></p>
<p align="center"><font face="Verdana" size="2">de 1 de Julho</font></p>
<p align="center"><font face="Verdana" size="2">(<font color="#0080c0">com
as alterações introduzidas pelo Decretos-Leis n.ºs 69/88, de 3 de
Março, 408/89, de 18 de Novembro, 245/91 de 6 de Julho, 212/97 de 16 de
Agosto</font>)</font></p>
<p align="center"><em><b><font color="#004080" face="Verdana" size="2">ESTATUTO DA CARREIRA DO PESSOAL DOCENTE<br>
DO ENSINO SUPERIOR POLITÉCNICO</font></b></em></p>
<hr>
<p align="center"><b><font face="Verdana" size="2">ÍNDICE DE ARTIGOS</font></b></p>
<ul>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A01">Artigo 1.º</a> - Âmbito</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A02">Artigo 2.º</a> - Categorias</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A03">Artigo 3.º</a> - Conteúdo funcional das categorias</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A04">Artigo 4.º</a> - Recrutamento de assistentes</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A05">Artigo 5.º</a> - Acesso à categoria de professor-adjunto</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A06">Artigo 6.º</a> - Acesso à categoria de professor-coordenador</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A07">Artigo 7.º</a> - Outras formas de recrutamento</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A08">Artigo 8.º</a> - Pessoal especialmente contratado</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A09">Artigo 9.º</a> - Provimento dos assistentes</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A10">Artigo 10.º</a> - Provimento dos professores-adjuntos e dos professores-coordenadores</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A11">Artigo 11.º</a> - Tramitação do processo de nomeação definitiva</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A12">Artigo 12.º</a> - Provimento do pessoal especialmente contratado</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A13">Artigo 13.º</a> - Provimento por urgente conveniência de serviço</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A14">Artigo 14.º</a> - Denúncia e rescisão contratual</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A15">Artigo 15.º</a> - Concursos</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A16">Artigo 16.º</a> - Conteúdo dos editais dos concursos</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A17">Artigo 17.º</a> - Candidatos aos concursos documentais para recrutamento de professores-adjuntos</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A18">Artigo 18.º</a> - Candidatos aos concursos de provas públicas para professores-adjuntos</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A19">Artigo 19.º</a> - Candidatos aos concursos de provas públicas para professores-coordenadores</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A20">Artigo 20.º</a> - Requerimento de admissão</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A21">Artigo 21.º</a> - Júris dos concursos documentais para recrutamento de assistentes e professores-adjuntos</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A22">Artigo 22.º</a> - Júri do concurso de provas públicas para professor-adjunto</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A23">Artigo 23.º</a> - Júri dos concursos de provas públicas para professor-coordenador</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A24">Artigo 24.º</a> - Impedimento na constituição dos júris</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A25">Artigo 25.º</a> - Provas públicas para professor-adjunto</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A26">Artigo 26.º</a> - Provas públicas para professor-coordenador</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A27">Artigo 27.º</a> - Regime de prestação de provas</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A28">Artigo 28.º</a> - Apreciação das provas</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A29">Artigo 29.º</a> - lrrecorribilidade</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A30">Artigo 30.º</a> - Quadros</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A31">Artigo 31.º</a> - Liberdade de orientação e opinião científica</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A32">Artigo 32.º</a> - Programas das disciplinas</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A33">Artigo 33.º</a> - Sumários</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A34">Artigo 34.º</a> - Regime de prestação de serviço</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A35">Artigo 35.º</a> - Vencimento e remunerações</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A36">Artigo 36.º</a> - Dispensa de serviço docente</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A37">Artigo 37.º</a> - Formação e orientação dos assistentes</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A38">Artigo 38.º</a> - Distribuição de serviço docente</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A39">Artigo 39.º</a> - Serviço docente nocturno</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A40">Artigo 40.º</a> - Serviço em instituição diferente</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A41">Artigo 41.º</a> - Serviço prestado em outras funções públicas</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A42">Artigo 42.º</a> - Serviço prestado por docentes aposentados</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A43">Artigo 43.º</a> - Mobilidade de efectivos</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A44">Artigo 44.º</a> - Antiguidade e precedência</font></li>
<li><font face="Verdana" size="1"><a href="http://www.global.estgp.pt/escola/Legislacao/EstatutosDocente/dl18581.htm#A45">Artigo 45.º</a> - Dúvidas</font></li>
</ul>
 
</body></html>
/impl/src/web/templates/intranet/escola/utils.html
New file
0,0 → 1,33
<div id="contentIntranet">
 
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>
Estrutura Organizativa
</h2>
<p>Documentação sobre a organização interna da ESTG, superintendida pelos órgãos da Escola. Constituição e estatutos da Assembleia de Representantes e dos Conselhos Directivo, Cientifico e Pedagógico.</p>
</li>
<li>
<h2>
Secretaria
</h2>
<p>Documentação de apoio ao funcionamento das várias etapas do ano lectivo.</p>
</li>
<li>
<h2>
Ensino
</h2>
<p>Documentação directamente relacionada com a estrutura curricular dos cursos em funcionamento.</p>
</li>
<li>
<h2>
Horários
</h2>
<p>Disponibilização dos horários das turmas, dos docentes e das salas e laboratórios. O objectivo principal da colocação ONLINE dos horários é funcionar como ferramenta de apoio ao planeamento das várias actividades no decorrer do ano lectivo, tanto para alunos como docentes.</p>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/bolonha.html
New file
0,0 → 1,33
<div id="contentIntranet">
 
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>
Estrutura Organizativa
</h2>
<p>Documentação sobre a organização interna da ESTG, superintendida pelos órgãos da Escola. Constituição e estatutos da Assembleia de Representantes e dos Conselhos Directivo, Cientifico e Pedagógico.</p>
</li>
<li>
<h2>
Secretaria
</h2>
<p>Documentação de apoio ao funcionamento das várias etapas do ano lectivo.</p>
</li>
<li>
<h2>
Ensino
</h2>
<p>Documentação directamente relacionada com a estrutura curricular dos cursos em funcionamento.</p>
</li>
<li>
<h2>
Horários
</h2>
<p>Disponibilização dos horários das turmas, dos docentes e das salas e laboratórios. O objectivo principal da colocação ONLINE dos horários é funcionar como ferramenta de apoio ao planeamento das várias actividades no decorrer do ano lectivo, tanto para alunos como docentes.</p>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/secretaria.html
New file
0,0 → 1,28
<div id="contentIntranet">
<div class="seccao">
<h2>Secretaria - conteúdos disponíveis</h2>
<div class="listDecimal">
<ul>
<li><a href="../../../../../startpathproxy/utilsLayoutIOnlineConfigurable/ionline/?startPath=/Intranet/Escola/Secretaria/CalEscolar&nav0=Calendario%20Escolar">Calendário Escolar</a></li>
<li><a href="../../../../../startpathproxy/utilsLayoutIOnlineConfigurable/ionline/?startPath=/Intranet/Escola/Secretaria/CalExames&nav0=Calendários Exames">Calendários de Exames</a></li>
<li><a href="../../../../layoutIntranetUtilsSecretariaConfigurable/estgp/intranet/escola/secretaria/documentosApoio.html?nav0=Documentos de apoio">Documentos de apoio</a> <label class="info">Normas de funcionamento, Relatórios de auto-avaliação</label></li>
<li><a href="../../../../../startpathproxy/utilsLayoutIOnlineConfigurable/ionline/?startPath=/Intranet/Escola/Secretaria/Forms.Alunos&nav0=Formulários [alunos]">Formulários [alunos]</a> <label class="info">Formulários para requisição de documentos na Secretaria</label></li>
<li><a href="../../../../layoutIntranetUtilsSecretariaConfigurable/estgp/intranet/secretaria/legislacao.html?nav0=Legislação">Legislação</a></li>
<li><a href="../../../../../startpathproxy/utilsLayoutIOnlineConfigurable/ionline/?startPath=/Intranet/Escola/Secretaria/Folhas.Presencas&nav0=Folhas de Presenças">Folhas de Presenças</a></li>
<li><a href="../../../../../startpathproxy/utilsLayoutIOnlineConfigurable/ionline/?startPath=/Intranet/Escola/Secretaria/Projectos.Finais&nav0=Projectos-AA,CA,GE,MKT">Projectos-AA,CA,GE,MKT</a></li>
<li><a href="../../../../../startpathproxy/utilsLayoutIOnlineActas/ionline/?startPath=/Actas/Arquivo">Actas</a> <label class="info">Acesso restricto ao seus membros</label></li>
<li>Estágios
<div class="listSquare">
<ul>
<li><a href="http://www.global.estgp.pt/avisos/BASE%20GERAL.xls">Base de Dados de Empresas onde podes solicitar o teu estágio</a></li>
<li><a href="http://www.global.estgp.pt/escola/Secretaria/CalendarizacaoActividadesEstagios.pdf">Calendarizacao de Actividades para Estagios</a></li>
<li><a href="http://www.global.estgp.pt/avisos/Calend%E1rio%20estagios%2007%2008.pdf">Calendário de Estágios do Corrente ano lectivo</a></li>
<li><a href="http://www.global.estgp.pt/escola/Secretaria/Modelo%20de%20Proposta.doc">Modelo de Proposta</a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/horarios.html
New file
0,0 → 1,33
<div id="contentIntranet">
 
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>
Estrutura Organizativa
</h2>
<p>Documentação sobre a organização interna da ESTG, superintendida pelos órgãos da Escola. Constituição e estatutos da Assembleia de Representantes e dos Conselhos Directivo, Cientifico e Pedagógico.</p>
</li>
<li>
<h2>
Secretaria
</h2>
<p>Documentação de apoio ao funcionamento das várias etapas do ano lectivo.</p>
</li>
<li>
<h2>
Ensino
</h2>
<p>Documentação directamente relacionada com a estrutura curricular dos cursos em funcionamento.</p>
</li>
<li>
<h2>
Horários
</h2>
<p>Disponibilização dos horários das turmas, dos docentes e das salas e laboratórios. O objectivo principal da colocação ONLINE dos horários é funcionar como ferramenta de apoio ao planeamento das várias actividades no decorrer do ano lectivo, tanto para alunos como docentes.</p>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/org.html
New file
0,0 → 1,33
<div id="contentIntranet">
 
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>
Estrutura Organizativa
</h2>
<p>Documentação sobre a organização interna da ESTG, superintendida pelos órgãos da Escola. Constituição e estatutos da Assembleia de Representantes e dos Conselhos Directivo, Cientifico e Pedagógico.</p>
</li>
<li>
<h2>
Secretaria
</h2>
<p>Documentação de apoio ao funcionamento das várias etapas do ano lectivo.</p>
</li>
<li>
<h2>
Ensino
</h2>
<p>Documentação directamente relacionada com a estrutura curricular dos cursos em funcionamento.</p>
</li>
<li>
<h2>
Horários
</h2>
<p>Disponibilização dos horários das turmas, dos docentes e das salas e laboratórios. O objectivo principal da colocação ONLINE dos horários é funcionar como ferramenta de apoio ao planeamento das várias actividades no decorrer do ano lectivo, tanto para alunos como docentes.</p>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/intranet/escola/ensino.html
New file
0,0 → 1,33
<div id="contentIntranet">
 
<div class="seccao">
<div class="listClean">
<ul>
<li>
<h2>
Estrutura Organizativa
</h2>
<p>Documentação sobre a organização interna da ESTG, superintendida pelos órgãos da Escola. Constituição e estatutos da Assembleia de Representantes e dos Conselhos Directivo, Cientifico e Pedagógico.</p>
</li>
<li>
<h2>
Secretaria
</h2>
<p>Documentação de apoio ao funcionamento das várias etapas do ano lectivo.</p>
</li>
<li>
<h2>
Ensino
</h2>
<p>Documentação directamente relacionada com a estrutura curricular dos cursos em funcionamento.</p>
</li>
<li>
<h2>
Horários
</h2>
<p>Disponibilização dos horários das turmas, dos docentes e das salas e laboratórios. O objectivo principal da colocação ONLINE dos horários é funcionar como ferramenta de apoio ao planeamento das várias actividades no decorrer do ano lectivo, tanto para alunos como docentes.</p>
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/public/areas/areaCE.html
New file
0,0 → 1,5
<div class="seccao">
 
Area de CE teste
</div>
/impl/src/web/templates/public/areas/areaCH.html
New file
0,0 → 1,4
<div class="seccao">
 
Area de CH teste
</div>
/impl/src/web/templates/public/areas/areaDG.html
New file
0,0 → 1,4
<div class="seccao">
Area de DG teste
</div>
/impl/src/web/templates/public/areas/areaEG.html
New file
0,0 → 1,4
<div class="seccao">
 
Area de EG teste
</div>
/impl/src/web/templates/public/areas/areas.html
New file
0,0 → 1,94
<div class="seccao">
<p>
As áreas científicas são compostas pelos Docentes que leccionam disciplinas integradas nas áreas de Ciências Empresariais, Ciências Humanas, Design e Engenharia, respectivamente. Cada área tem, como órgão único de gestão científico-pedagógica, o Conselho de Área. Este é presidido pelo coordenador de área e constituído por todos os Docentes que nela prestam serviço.
</p>
<div class="seccao">
<h3><a href="../../../../areaEG/estgp/public/areas/areaEG.html">Engenharia</a></h3>
<div class="listClean">
<ul>
<li>
<b>Coordenador:</b> Paulo Sérgio Duque Brito
</li>
<li>
<b>Gabinete:</b> 3.05
</li>
<li>
<b>Telefone:</b> 245 300 200; Ext.187
</li>
<li>
<b>Fax:</b> 245 300 230
</li>
<li>
<b>eMail</b> pbrito [AT] estgp [DOT] pt
</li>
</ul>
</div>
</div>
<div class="seccao">
<h3><a href="../../../../areaCE/estgp/public/areas/areaCE.html">Ciências Empresariais</a></h3>
<div class="listClean">
<ul>
<li>
<b>Coordenador:</b> António José Vieira de Azevedo Coutinho
</li>
<li>
<b>Gabinete:</b> 3.06
</li>
<li>
<b>Telefone:</b> 245 300 200; Ext.186
</li>
<li>
<b>Fax:</b> 245 300 230
</li>
<li>
<b>eMail</b> azeco [AT] estgp [DOT] pt
</li>
</ul>
</div>
</div>
<div class="seccao">
<h3><a href="../../../../areaCH/estgp/public/areas/areaCH.html">Ciências Humanas</a></h3>
<div class="listClean">
<ul>
<li>
<b>Coordenador:</b> Maria Helena Serras Reis Freire Camero
</li>
<li>
<b>Gabinete:</b> 3.09
</li>
<li>
<b>Telefone:</b> 245 300 200; Ext.183
</li>
<li>
<b>Fax:</b> 245 300 230
</li>
<li>
<b>eMail</b> helenac [AT] estgp [DOT] pt
</li>
</ul>
</div>
</div>
<div class="seccao">
<h3><a href="../../../../areaDG/estgp/public/areas/areaDG.html">Design</a></h3>
<div class="listClean">
<ul>
<li>
<b>Coordenador:</b> Arsénio da Gama Vieira
</li>
<li>
<b>Gabinete:</b> 3.16
</li>
<li>
<b>Telefone:</b> 245 300 200; Ext. 162
</li>
<li>
<b>Fax:</b> 245 300 230
</li>
<li>
<b>eMail</b> arsenio [AT] estgp [DOT] pt
</li>
</ul>
</div>
</div>
</div>
/impl/src/web/templates/public/cursos/curso_AA.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de AA
</div>
/impl/src/web/templates/public/cursos/curso_DAM.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de DAM
</div>
/impl/src/web/templates/public/cursos/curso_EGI.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de EGI
</div>
/impl/src/web/templates/public/cursos/curso_DC.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de DC
</div>
/impl/src/web/templates/public/cursos/curso_EC.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de EC
</div>
/impl/src/web/templates/public/cursos/curso_APM.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de APM
</div>
/impl/src/web/templates/public/cursos/curso_EI.html
New file
0,0 → 1,3
<div class="seccao">
Teste para o curso de EI
</div>
/impl/src/web/user/utils/utils.jsp
File deleted
\ No newline at end of file
/impl/src/web/user/utils/menu.jsp
11,19 → 11,19
<div class="listClean">
<ul>
<li>
<a href="/proxy/layoutIntranetUtils/estgp/intranet/index.html">Estrutura Organizativa</a>
<a href="<%=request.getContextPath()%>/proxy/layoutIntranetUtilsOrg/estgp/intranet/escola/org.html"><bean:message key="intranet.utils.org"/></a>
</li>
<li>
<a href="/proxy/layoutIntranetUtils/estgp/intranet/index.html">Secretaria</a>
<a href="<%=request.getContextPath()%>/proxy/layoutIntranetUtilsSecretaria/estgp/intranet/escola/secretaria.html"><bean:message key="intranet.utils.services"/></a>
</li>
<li>
<a href="/proxy/layoutIntranetUtils/estgp/intranet/index.html">Ensino</a>
<a href="<%=request.getContextPath()%>/proxy/layoutIntranetUtilsEnsino/estgp/intranet/escola/ensino.html"><bean:message key="intranet.utils.teaching"/></a>
</li>
<li>
<a href="/proxy/layoutIntranetUtils/estgp/intranet/index.html">Horários</a>
<a href="<%=request.getContextPath()%>/proxy/layoutIntranetUtilsHorarios/estgp/intranet/escola/horarios.html"><bean:message key="intranet.utils.schedules"/></a>
</li>
<li>
<a href="/proxy/layoutIntranetUtils/estgp/intranet/index.html">Declaração de Bolonha</a>
<a href="<%=request.getContextPath()%>/proxy/layoutIntranetUtilsBolonha/estgp/intranet/escola/bolonha.html"><bean:message key="intranet.utils.bolonha"/></a>
</li>
</ul>
</div>
/impl/src/web/user/utils/topnavSecretariaActas.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("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace("/proxy/layoutIntranetUtilsSecretaria/estgp/intranet/escola/secretaria.html", "intranet.utils.services");
topNav.addNavPlace(null, "intranet.utils.actas");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/ftpClient.jsp
New file
0,0 → 1,11
<%--
Created by IntelliJ IDEA.
User: Jorge
Date: 9/Jul/2008
Time: 16:52:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<div id="contentIntranet">
<jsp:include page="/user/ftpclient/ftpclient.jsp"/>
</div>
/impl/src/web/user/utils/topnavSecretariaIonlineConfigurable.jsp
New file
0,0 → 1,34
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
String conflevel0 = request.getParameter("nav0");
String conflevel1 = request.getParameter("nav1");
String conflevel2 = request.getParameter("nav2");
String conflevel3 = request.getParameter("nav3");
String confurl0 = request.getParameter("navUrl0");
String confurl1 = request.getParameter("navUrl1");
String confurl2 = request.getParameter("navUrl2");
String confurl3 = request.getParameter("navUrl3");
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace("/proxy/layoutIntranetUtilsSecretaria/estgp/intranet/escola/secretaria.html", "intranet.utils.services");
if(conflevel0 != null)
{
topNav.addNavPlace(confurl0, conflevel0);
if(conflevel1 != null)
{
topNav.addNavPlace(confurl1, conflevel1);
if(conflevel2 != null)
{
topNav.addNavPlace(confurl2, conflevel2);
if(conflevel3 != null)
{
topNav.addNavPlace(confurl3, conflevel3);
}
}
}
}
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/topnavBolonha.jsp
New file
0,0 → 1,10
<%@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("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace(null, "intranet.utils.bolonha");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/topnavSecretaria.jsp
New file
0,0 → 1,10
<%@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("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace(null, "intranet.utils.services");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/topnavSecretariaConfigurable.jsp
New file
0,0 → 1,34
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="jomm.web.utils.NavPlaceServer"%>
<%@ page import="jomm.web.utils.TopNav" %>
<%
String conflevel0 = request.getParameter("nav0");
String conflevel1 = request.getParameter("nav1");
String conflevel2 = request.getParameter("nav2");
String conflevel3 = request.getParameter("nav3");
String confurl0 = request.getParameter("navUrl0");
String confurl1 = request.getParameter("navUrl1");
String confurl2 = request.getParameter("navUrl2");
String confurl3 = request.getParameter("navUrl3");
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace("/proxy/layoutIntranetUtilsSecretaria/estgp/intranet/escola/secretaria.html", "intranet.utils.services");
if(conflevel0 != null)
{
topNav.addNavPlace(confurl0, conflevel0);
if(conflevel1 != null)
{
topNav.addNavPlace(confurl1, conflevel1);
if(conflevel2 != null)
{
topNav.addNavPlace(confurl2, conflevel2);
if(conflevel3 != null)
{
topNav.addNavPlace(confurl3, conflevel3);
}
}
}
}
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/topnavHorarios.jsp
New file
0,0 → 1,10
<%@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("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace(null, "intranet.utils.schedules");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/topnavOrg.jsp
New file
0,0 → 1,10
<%@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("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace(null, "intranet.utils.org");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/utils/topnavEnsino.jsp
New file
0,0 → 1,10
<%@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("/proxy/layoutIntranetUtils/estgp/intranet/escola/utils.html", "intranet.separator.utils.back");
topNav.addNavPlace(null, "intranet.utils.teaching");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/user/courseunits/courseunitworks.jsp
83,7 → 83,7
<bean:message key="courseunit.description"/>
</th>
<td>
<html:textarea styleClass="textarea" property="courseUnitAssignementView.description"/>
<html:textarea styleClass="textarea" property="courseUnitAssignementView.formatedDescription"/>
</td>
</tr>
<tr>
/impl/src/web/user/courseunits/courseunit.jsp
85,7 → 85,7
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${teacher.code}&courseUnitView.id=${CourseUnitView.id}">${teacher.name}</html:link>
</td>
<td>
${teacher.email}
${teacher.safeEmail}
</td>
</tr>
</logic:iterate>
102,7 → 102,7
<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.text}</p>
<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>
/impl/src/web/user/courseunits/menu.jsp
49,9 → 49,9
<li>
<html:link action="/user/startSubmitAnnouncementFromCourseUnit?announcementView.courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.put.announcement"/></html:link>
</li>
<li>
<!--<li>
<a href="<%=request.getContextPath()%>/"><bean:message key="courseunit.menu.put.question"/></a>
</li>
</li>-->
<li>
<a href="<%=request.getContextPath()%>${user}/startLoadCourseUnitWorks${fromAction}.do?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.assignements"/></a>
</li>
/impl/src/web/user/courseunits/students.jsp
44,7 → 44,7
${student.username}
</td>
<td>
${student.email}
${student.safeEmail}
</td>
</tr>
</logic:iterate>
/impl/src/web/user/home.jsp
4,6 → 4,7
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<jomm:messages/>
<html:errors/>
 
11,7 → 12,8
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td id="leftPage">
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=student&from=Home"/>
 
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=${UserSession.user.roles}&from=Home"/>
</td>
<td class="contentPortal">
<jsp:include page="/user/home/student.jsp"/>
22,7 → 24,7
<%--</table>--%>
</td>
<td id="rightPagePortal">
<jsp:include page="/public/announcements/announcementsPortalRight.jsp?role=student&from=Home"/>
<jsp:include page="/public/announcements/announcementsPortalRight.jsp?role=${UserSession.user.roles}&from=Home"/>
</td>
</tr>
</table>
31,7 → 33,7
<table>
<tr>
<td id="leftPage">
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=teacher&from=Home"/>
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=${UserSession.user.roles}&from=Home"/>
</td>
<td class="contentPortal">
<jsp:include page="/user/home/teacher.jsp"/>
42,7 → 44,7
<%--</table>--%>
</td>
<td id="rightPagePortal">
<jsp:include page="/public/announcements/announcementsPortalRight.jsp?role=teacher&from=Home"/>
<jsp:include page="/public/announcements/announcementsPortalRight.jsp?role=${UserSession.user.roles}&from=Home"/>
</td>
</tr>
</table>
/impl/src/web/user/home/student.jsp
8,24 → 8,62
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<div class="portal">
<ul>
<li class="WARNING">
<logic:notMatch value="StudentImpl" name="UserSession" property="user.class.name">
<bean:message key="profile.bad.profile.student.iregular.user.class"/>
</logic:notMatch>
</li>
</ul>
<table class="columnTable" width="100%">
<tbody>
<tr>
<baco:isModuleOn module="courseunits">
<td class="column">
 
<div class="block">
<p><bean:message key="intranet.course.units"/></p>
<ul>
<logic:present name="UserSession" property="user.subscribedUnitsView">
<logic:notEmpty name="UserSession" property="user.subscribedUnitsView">
<logic:iterate id="unit" name="UserSession" property="user.subscribedUnitsView" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name}</html:link>
</li>
</logic:iterate>
</logic:notEmpty>
</logic:present>
<li>
<p><bean:message key="courseunit.semestre"/> 1</p>
<logic:present name="UserSession" property="user.subscribedUnitsCurrentYearViewS1">
<logic:empty name="UserSession" property="user.subscribedUnitsCurrentYearViewS1">
<bean:message key="courseunit.zero.units"/>
</logic:empty>
</logic:present>
<logic:present name="UserSession" property="user.subscribedUnitsCurrentYearViewS1">
<logic:notEmpty name="UserSession" property="user.subscribedUnitsCurrentYearViewS1">
<ul>
<logic:iterate id="unit" name="UserSession" property="user.subscribedUnitsCurrentYearViewS1" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.importYear})</html:link>
</li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</li>
<li>
<p><bean:message key="courseunit.semestre"/> 2</p>
<logic:present name="UserSession" property="user.subscribedUnitsCurrentYearViewS2">
<logic:empty name="UserSession" property="user.subscribedUnitsCurrentYearViewS2">
<bean:message key="courseunit.zero.units"/>
</logic:empty>
</logic:present>
<logic:present name="UserSession" property="user.subscribedUnitsCurrentYearViewS2">
<logic:notEmpty name="UserSession" property="user.subscribedUnitsCurrentYearViewS2">
<ul>
<logic:iterate id="unit" name="UserSession" property="user.subscribedUnitsCurrentYearViewS2" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.importYear})</html:link>
</li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</li>
</ul>
<!--Can put year all other units in the future calling service user.subscribedUnitsOldYearsView-->
</div>
</td>
</baco:isModuleOn>
/impl/src/web/user/home/teacher.jsp
8,6 → 8,13
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<div class="portal">
<ul>
<li class="WARNING">
<logic:notMatch value="TeacherImpl" name="UserSession" property="user.class.name">
<bean:message key="profile.bad.profile.teacher.iregular.user.class"/>
</logic:notMatch>
</li>
</ul>
<table class="columnTable" width="100%">
<tbody>
<tr>
16,17 → 23,45
<div class="block">
<p><bean:message key="intranet.course.units"/></p>
<ul>
<logic:present name="UserSession" property="user.teachedUnitsView">
<logic:notEmpty name="UserSession" property="user.teachedUnitsView">
<logic:iterate id="unit" name="UserSession" property="user.teachedUnitsView" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName})</html:link>
</li>
</logic:iterate>
</logic:notEmpty>
</logic:present>
<li>
<p><bean:message key="courseunit.semestre"/> 1</p>
<logic:present name="UserSession" property="user.teachedUnitsCurrentYearViewS1">
<logic:empty name="UserSession" property="user.teachedUnitsCurrentYearViewS1">
<bean:message key="courseunit.zero.units"/>
</logic:empty>
</logic:present>
<logic:present name="UserSession" property="user.teachedUnitsCurrentYearViewS1">
<logic:notEmpty name="UserSession" property="user.teachedUnitsCurrentYearViewS1">
<ul>
<logic:iterate id="unit" name="UserSession" property="user.teachedUnitsCurrentYearViewS1" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name}</html:link>
</li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</li>
<li>
<p><bean:message key="courseunit.semestre"/> 2</p>
<logic:present name="UserSession" property="user.teachedUnitsCurrentYearViewS2">
<logic:empty name="UserSession" property="user.teachedUnitsCurrentYearViewS2">
<bean:message key="courseunit.zero.units"/>
</logic:empty>
</logic:present>
<logic:present name="UserSession" property="user.teachedUnitsCurrentYearViewS2">
<logic:notEmpty name="UserSession" property="user.teachedUnitsCurrentYearViewS2">
<ul>
<logic:iterate id="unit" name="UserSession" property="user.teachedUnitsCurrentYearViewS2" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name}</html:link>
</li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</li>
</ul>
</div>
</td>
</baco:isModuleOn>
/impl/src/web/user/serviceZone/serviceZone.jsp
85,8 → 85,9
</baco:hasRole>
</baco:isModuleOn>
 
<li>
<baco:isAdmin>
 
<baco:isAdmin>
<li>
<bean:message key="users"/>
<ul>
<li>
112,11 → 113,12
</li>
</baco:isModuleOn>
</ul>
</baco:isAdmin>
</li>
</li>
</baco:isAdmin>
 
<baco:isModuleOn module="courseunits">
<li>
<baco:isAdmin>
<baco:isAdmin>
<li>
<bean:message key="courses"/>
<ul>
<li>
139,8 → 141,16
<bean:message key="courseunit.search"/>
</html:link>
</li>
 
<%--<li>--%>
<%--<html:link action="/user/startFindCourseUnitAdminFromServiceZone">--%>
<%--<bean:message key="courseunit.program.archive"/>--%>
<%--</html:link>--%>
<%--</li>--%>
</ul>
</baco:isAdmin>
</li>
</baco:isAdmin>
<li>
<bean:message key="backups"/>
<ul>
<baco:isAdmin>
162,7 → 172,6
</html:link>
</li>
</baco:hasRole>
 
</ul>
</li>
</baco:isModuleOn>
/impl/src/xsd/curso.xsl
New file
0,0 → 1,168
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:curso="http://www.estgp.pt/xsd/planoestudos/1.0/">
 
<xsl:template match="/">
<html>
<head>
<title></title>
<meta content="UTF-8" http-equiv="encoding"></meta>
<style type="text/css">
body *, .contentPortal, .contentPortal p, .contentPortal li, div
{
font-family: "bitstream vera sans",Verdana,Arial,Helvetica,sans-serif;
font-size: 11px;
}
.planoCurricular td, .planoCurricular th
{
font-family: "bitstream vera sans",Verdana,Arial,Helvetica,sans-serif;
}
.planoCurricular
{
border:1px solid black;
 
}
.planoCurricular th
{
font-weight:normal;
border:1px solid black;
 
}
.planoCurricular td.unidade
{
text-align:right;
}
td.unidade span
{
width:100%;
}
.semestre
{
background-color:#8ec73f;
}
.semestreHead
{
background-color:#8ec73f;
}
.perfilNome, .perfilHead
{
background-color:#D6D6D6
}
.ects
{
background-color:#EBFCD6;
}
</style>
</head>
<body>
<xsl:call-template name="fragmentoCurso"/>
</body>
</html>
</xsl:template>
<xsl:template name="fragmentoCurso">
<div class="seccao">
<table class="planoCurricular">
<xsl:for-each select="//curso:semestre">
<tr>
<th class="semestre">
<xsl:if test="./curso:perfil">
<xsl:attribute name="colspan"><xsl:value-of select="count(distinct-values(//curso:horasContacto/*/name())) + 3"/></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="@id = 'S1'">1º ano 1º semestre</xsl:when>
<xsl:when test="@id = 'S2'">1º ano 2º semestre</xsl:when>
<xsl:when test="@id = 'S3'">2º ano 1º semestre</xsl:when>
<xsl:when test="@id = 'S4'">2º ano 2º semestre</xsl:when>
<xsl:when test="@id = 'S5'">3º ano 1º semestre</xsl:when>
<xsl:when test="@id = 'S6'">3º ano 2º semestre</xsl:when>
<xsl:when test="@id = 'S7'">4º ano 1º semestre</xsl:when>
<xsl:when test="@id = 'S8'">4º ano 2º semestre</xsl:when>
<xsl:when test="@id = 'S9'">5º ano 1º semestre</xsl:when>
<xsl:when test="@id = 'S10'">5º ano 2º semestre</xsl:when>
<xsl:when test="@id = 'S11'">6º ano 1º semestre</xsl:when>
<xsl:when test="@id = 'S12'">6º ano 2º semestre</xsl:when>
<xsl:otherwise><xsl:value-of select="@id"/></xsl:otherwise>
</xsl:choose>
</th>
<xsl:if test="not(./curso:perfil)">
<th class="semestreHead">total</th>
<xsl:if test="//curso:T"><th class="semestreHead">T</th></xsl:if>
<xsl:if test="//curso:TP"><th class="semestreHead">TP</th></xsl:if>
<xsl:if test="//curso:P"><th class="semestreHead">P</th></xsl:if>
<xsl:if test="//curso:PL"><th class="semestreHead">PL</th></xsl:if>
<xsl:if test="//curso:PD"><th class="semestreHead">PD</th></xsl:if>
<xsl:if test="//curso:OT"><th class="semestreHead">OT</th></xsl:if>
<xsl:if test="//curso:E"><th class="semestreHead">E</th></xsl:if>
<xsl:if test="//curso:S"><th class="semestreHead">S</th></xsl:if>
<xsl:if test="//curso:TC"><th class="semestreHead">TC</th></xsl:if>
<xsl:if test="//curso:O"><th class="semestreHead">O</th></xsl:if>
<th class="semestreHead ectsHead">ECTS</th>
</xsl:if>
</tr>
<xsl:choose>
<xsl:when test="./curso:perfil">
<xsl:apply-templates select="./curso:perfil" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="./curso:unidade" />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template match="curso:perfil">
<tr>
<th class="perfilNome">
<xsl:value-of select="@nome"/>
</th>
<th class="perfilHead">total</th>
<xsl:if test="//curso:T"><th class="perfilHead">T</th></xsl:if>
<xsl:if test="//curso:TP"><th class="perfilHead">TP</th></xsl:if>
<xsl:if test="//curso:P"><th class="perfilHead">P</th></xsl:if>
<xsl:if test="//curso:PL"><th class="perfilHead">PL</th></xsl:if>
<xsl:if test="//curso:PD"><th class="perfilHead">PD</th></xsl:if>
<xsl:if test="//curso:OT"><th class="perfilHead">OT</th></xsl:if>
<xsl:if test="//curso:E"><th class="perfilHead">E</th></xsl:if>
<xsl:if test="//curso:S"><th class="perfilHead">S</th></xsl:if>
<xsl:if test="//curso:TC"><th class="perfilHead">TC</th></xsl:if>
<xsl:if test="//curso:O"><th class="perfilHead">O</th></xsl:if>
<th class="perfilHead ectsHead">ECTS</th>
<xsl:apply-templates select="./curso:unidade" mode="perfil"/>
</tr>
</xsl:template>
<xsl:template match="curso:unidade" mode="perfil">
<tr>
<td class="perfil unidadeNome"><span><xsl:value-of select="./curso:nome"/></span></td>
<td class="perfil unidade"><span><xsl:value-of select="./curso:totalHoras"/></span></td>
<xsl:if test="//curso:T"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:T"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:T"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:TP"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:TP"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:TP"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:P"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:P"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:P"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:PL"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:PL"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:PL"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:PD"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:PD"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:PD"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:OT"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:OT"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:OT"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:E"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:E"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:E"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:S"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:S"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:S"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:TC"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:TC"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:TC"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:O"><td class="perfil unidade"><span><xsl:if test="./curso:horasContacto/curso:O"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:O"/></xsl:if></span></td></xsl:if>
<td class="perfil unidade ects"><span><xsl:if test="./curso:ECTS"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:ECTS"/></xsl:if></span></td>
</tr>
</xsl:template>
<xsl:template match="curso:unidade">
<tr>
<td class="unidadeNome"><span><xsl:value-of select="./curso:nome"/></span></td>
<td class="unidade"><span><xsl:value-of select="./curso:totalHoras"/></span></td>
<xsl:if test="//curso:T"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:T"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:T"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:TP"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:TP"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:TP"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:P"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:P"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:P"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:PL"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:PL"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:PL"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:PD"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:PD"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:PD"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:OT"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:OT"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:OT"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:E"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:E"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:E"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:S"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:S"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:S"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:TC"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:TC"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:TC"/></xsl:if></span></td></xsl:if>
<xsl:if test="//curso:O"><td class="unidade"><span><xsl:if test="./curso:horasContacto/curso:O"><xsl:attribute name="class">unidade celula</xsl:attribute><xsl:value-of select="./curso:horasContacto/curso:O"/></xsl:if></span></td></xsl:if>
<td class="unidade ects"><span><xsl:if test="./curso:ECTS"><xsl:value-of select="./curso:ECTS"/></xsl:if></span></td>
</tr>
</xsl:template>
</xsl:stylesheet>
/impl/src/xsd/curso_DC.xml
New file
0,0 → 1,460
<?xml version="1.0" encoding="UTF-8"?>
<curso xmlns="http://www.estgp.pt/xsd/planoestudos/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/xsd/planoestudos/1.0/ planoestudos.xsd">
<nome>Design de Comunicação</nome>
<area>DG</area>
<semestre id="S1">
<unidade>
<nome>Introdução ao Design de Comunicação</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Desenho I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Edição Electrónica I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Fotografia</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Tipografia</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Pensamento e Cultura Contemporânea</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
</semestre>
<semestre id="S2">
<unidade>
<nome>Design de Comunicação I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Técnicas de Expressão Visual I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Edição Electrónica II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Tecnologia e Linguagem Audiovisual I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Desenho II</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Técnicas de Comunicação Verbal e Não Verbal</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
</semestre>
<semestre id="S3">
<unidade>
<nome>Design de Comunicação II</nome>
<area>Design</area>
<totalHoras>240</totalHoras>
<horasContacto>
<TP>90</TP>
<OT>20</OT>
</horasContacto>
<ECTS>9</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Desenho III</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Edição Electrónica III</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Serigrafia I</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>15</TP>
<PL>15</PL>
<OT>10</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>História da Arte Contemporânea</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Sociologia da Comunicação</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Psicologia da Comunicação</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
<semestre id="S4">
<unidade>
<nome>Design de Comunicação III</nome>
<area>Design</area>
<totalHoras>240</totalHoras>
<horasContacto>
<TP>90</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>História e Teoria do Design</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Edição Electrónica IV</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Serigrafia II</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Ergonomia</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>3D Aplicado</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>15</TP>
<PL>15</PL>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Técnicas de Publicidade</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
<semestre id="S5">
<unidade>
<nome>Design de Comunicação IV</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>9</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Design de Ambientes Gráficos</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Projecto I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Produção Multimédia I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Produção Gráfica I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Ilustração</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Design de Interfaces Móveis</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
<semestre id="S6">
<unidade>
<nome>Design de Comunicação V</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Projecto II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>10</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Produção Multimédia II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Produção Gráfica II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Design Sustentável</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>20</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Seminário</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<S>30</S>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
</semestre>
</curso>
/impl/src/xsd/fragmentoCurso.xsl
New file
0,0 → 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:template match="/">
<xsl:call-template name="fragmentoCurso"/>
</xsl:template>
</xsl:stylesheet>
/impl/src/xsd/curso_APM.xml
New file
0,0 → 1,361
<?xml version="1.0" encoding="UTF-8"?>
<curso xmlns="http://www.estgp.pt/xsd/planoestudos/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/xsd/planoestudos/1.0/ planoestudos.xsd">
<nome>Administração de Publicidade e Marketing</nome>
<area>CE</area>
<semestre id="S1">
<unidade>
<nome>Marketing</nome>
<area>Ciências Empresariais</area>
<totalHoras>180</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>8</OT>
</horasContacto>
<ECTS>7</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Introdução à Gestão e à Empresa</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Contabilidade Financeira I</nome>
<area>Ciências Empresariais</area>
<totalHoras>180</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Métodos Quantitativos</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Introdução ao Direito</nome>
<area>Ciências Empresariais</area>
<totalHoras>140</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>4</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs></obs>
</unidade>
</semestre> <!--\\1º semestre de APM-->
<semestre id="S2">
<unidade>
<nome>Comportamento Organizacional</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Administração de Serviços</nome>
<area>Ciências Empresariais</area>
<totalHoras>180</totalHoras>
<horasContacto>
<T>45</T>
<PL>15</PL>
<OT>8</OT>
</horasContacto>
<ECTS>7</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Técnicas de Expressão e Comunicação</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Língua Estrangeira Técnica</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Introdução ao Direito</nome>
<area>Ciências Empresariais</area>
<totalHoras>140</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>4</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs></obs>
</unidade>
</semestre> <!--\\2º semestre de APM-->
<semestre id="S3">
<unidade>
<nome>Comunicação Audiovisual</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>15</T>
<TP>30</TP>
<PL>15</PL>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Direito Comercial e da Empresa</nome>
<area>Ciências Empresariais</area>
<totalHoras>140</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>4</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Comportamento do Consumidor</nome>
<area>Ciências Empresariais</area>
<totalHoras>180</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>4</OT>
</horasContacto>
<ECTS>7</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Marketing Interno e Recursos Humanos</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>45</TP>
<PL>15</PL>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Planeamento e Controlo de Marketing</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>45</TP>
<PL>15</PL>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
</semestre> <!--\\3º semestre de APM-->
<semestre id="S4">
<unidade>
<nome>Relações Públicas</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Marketing de Serviços</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>15</TP>
<PL>45</PL>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Mercados e Negociação Comercial</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>15</T>
<TP>45</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Gestão da comunicação</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>15</TP>
<PL>45</PL>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Pesquisa de Marketing</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>15</PL>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
</semestre> <!--\\4º semestre de APM-->
<semestre id="S5">
<unidade>
<nome>Relações Humanas e Comunicação na Empresa</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Estratégia e Planeamento Publicitário</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>15</T>
<TP>45</TP>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Sistemas de Informação para Marketing</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Marketing Social</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>15</T>
<TP>45</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Marketing Directo</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>15</T>
<TP>45</TP>
<OT>4</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
</semestre> <!--\\5º semestre de APM-->
<semestre id="S5">
<unidade>
<nome>Comunicação Publicitária</nome>
<area>Ciências Empresariais</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>8</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Gestão de Marcas</nome>
<area>Ciências Empresariais</area>
<totalHoras>140</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>8</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Marketing Turístico</nome>
<area>Ciências Empresariais</area>
<totalHoras>120</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>8</OT>
</horasContacto>
<ECTS>4</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Estágio</nome>
<area>Ciências Empresariais</area>
<totalHoras>420</totalHoras>
<horasContacto>
<OT>16</OT>
</horasContacto>
<ECTS>15</ECTS>
<obs></obs>
</unidade>
</semestre><!-- \\6º semestre de APM-->
</curso>
/impl/src/xsd/curso_EI.xml
New file
0,0 → 1,850
<?xml version="1.0" encoding="UTF-8"?>
<curso xmlns="http://www.estgp.pt/xsd/planoestudos/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/xsd/planoestudos/1.0/ planoestudos.xsd">
<nome>Engenharia Informática</nome>
<area>EG</area>
<!--1º semestre de EI - perfil "Programação e Sistemas de Informação"-->
<semestre id="S1">
 
<unidade>
<nome>Sistemas Digitais</nome>
<area>Engenharias</area>
<totalHoras>205</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Introdução à Programação</nome>
<area>Engenharias</area>
<totalHoras>205</totalHoras>
<horasContacto>
<T>30</T>
<PL>30</PL>
<OT>30</OT>
</horasContacto>
<ECTS>8</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Análise Matemática I</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Álgebra e Geometria</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Física</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>(a)</obs>
</unidade>
 
</semestre>
<!--2º semestre de EI- perfil "Programação e Sistemas de Informação"-->
<semestre id="S2">
<unidade>
<nome>Análise Matemática II</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Matemática Discreta</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<TP>30</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Algoritmos e Estruturas de Dados</nome>
<area>Engenharias</area>
<totalHoras>250</totalHoras>
<horasContacto>
<TP>60</TP>
<PL>30</PL>
</horasContacto>
<ECTS>8.5</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Arquitectura de Computadores</nome>
<area>Engenharias</area>
<totalHoras>205</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>8</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Probabilidades e Estatística</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>(a)</obs>
</unidade>
</semestre>
<!--3º semestre de EI- perfil "Programação e Sistemas de Informação"-->
<semestre id="S3">
<unidade>
<nome>Bases de Dados I</nome>
<area>Engenharias</area>
<totalHoras>160</totalHoras>
<horasContacto>
<P>25</P>
<TP>10</TP>
<PL>25</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Programação Orientada a Objectos</nome>
<area>Engenharias</area>
<totalHoras>160</totalHoras>
<horasContacto>
<P>30</P>
<TP>15</TP>
<PL>15</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Computação Gráfica</nome>
<area>Engenharias</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>10</TP>
<PL>20</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Teoria da Computação</nome>
<area>Engenharias</area>
<totalHoras>90</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>4</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Sistemas Operativos</nome>
<area>Engenharias</area>
<totalHoras>230</totalHoras>
<horasContacto>
<TP>90</TP>
</horasContacto>
<ECTS>8</ECTS>
<obs/>
</unidade>
</semestre>
<!--4º semestre de EI- perfil "Programação e Sistemas de Informação"-->
<semestre id="S4">
<unidade>
<nome>Programação Web e Equipamentos Móveis</nome>
<area>Engenharias</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Inteligência Artificial</nome>
<area>Engenharias</area>
<totalHoras>170</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Multimédia Interactiva</nome>
<area>Engenharias</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>10</TP>
<PL>20</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs>(a)</obs>
</unidade>
<unidade>
<nome>Análise de Concepção de Sistemas</nome>
<area>Engenharias</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Seminário</nome>
<area>Engenharias</area>
<totalHoras>10</totalHoras>
<horasContacto>
<S>10</S>
</horasContacto>
<ECTS>2</ECTS>
<obs>(a)</obs>
</unidade>
</semestre>
<!--Ate aqui esta-->
<!--2º semestre de EC-->
<semestre id="S3">
<unidade>
<nome>Análise Matemática III</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Resistência de Materiais I</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Hidráulica Aplicada</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Geologia da Engenharia</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Métodos e Tecnologias da Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Planeamento Regional e Urbano</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência III</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--\\3º semestre de EC-->
<semestre id="S4">
<perfil nome="Perfil de Estruturas e Construção">
<unidade>
<nome>Análise de Estruturas</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Física das Construções</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Mecânica de Solos</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Abastecimento de Água e Saneamento</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Materiais Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Resistência de Materiais II</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência IV</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</perfil>
<perfil nome="Planeamento e Infra-Estruturas">
<unidade>
<nome>Análise de Estruturas</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Física das Construções</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Mecânica de Solos</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Abastecimento de Água e Saneamento</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Materiais Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Hidrologia e Infra-Estruturas Hidráulicas</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência IV</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</perfil>
</semestre>
<semestre id="S5">
<perfil nome="Perfil de Estruturas e Construção">
<unidade>
<nome>Betão Armado</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Organização de Obras e Estaleiros</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Vias de Comunicação I</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Conservação e Reabilitação</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Estruturas Metálicas</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Engenharia Sísmica</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência V</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</perfil>
<perfil nome="Planeamento e Infra-Estruturas">
<unidade>
<nome>Betão Armado</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Organização de Obras e Estaleiros</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Vias de Comunicação I</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Urbanização e Transportes</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Sistemas de Informação Geográfica</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Administração Pública e Gestão Municipal</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência V</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</perfil>
</semestre>
<semestre id="S6">
<perfil nome="Perfil de Estruturas e Construção">
<unidade>
<nome>Qualidade na Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Qualidade na Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Fundações e Estruturas de Suporte</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Betão Armado e Pré-Esforçado</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Direcção de Obras</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Economia e Gestão de Empreendimentos</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Projecto de Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência VI</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</perfil>
<perfil nome="Planeamento e Infra-Estruturas">
<unidade>
<nome>Qualidade na Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Qualidade na Construção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Equipamentos Regionais e Urbanos</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Vias de Comunicação II</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Gestão e Avaliação de Sistemas e Projectos</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Projecto de Planeamento/Infra-Estruturas</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência VI</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</perfil>
</semestre>
</curso>
/impl/src/xsd/curso_AA.xml
New file
0,0 → 1,461
<?xml version="1.0" encoding="UTF-8"?>
<curso xmlns="http://www.estgp.pt/xsd/planoestudos/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/xsd/planoestudos/1.0/ planoestudos.xsd">
<nome>Assessoria de Administração</nome>
<area>EG</area>
<!--1º semestre de AA-->
<semestre id="S1">
<unidade>
<nome>Língua e Cultura Inglesa I</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Língua e Cultura I (Francesa/Alemã/Espanhola)</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Metodologias de Investigação</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Informática</nome>
<area>Ciências Humanas</area>
<totalHoras>160</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Comportamento Organizacional</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--2º semestre de AA-->
<semestre id="S2">
<unidade>
<nome>Fundamentos de Gestão</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Língua e Cultura Inglesa II</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Língua e Cultura II (Francesa, Alemã, Espanhola)</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Língua e Cultura Portuguesa</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Informática Aplicada à Administração</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs/>
</unidade>
</semestre>
<!--3º semestre de AA-->
<semestre id="S3">
<unidade>
<nome>Contabilidade Financeira I</nome>
<area>Ciências Humanas</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Marketing e Relações Públicas</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Inglês Técnico I</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Técnicas de Expressão e Comunicação I</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Práticas Administrativas I</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs/>
</unidade>
</semestre>
<!--4º semestre de AA-->
<semestre id="S4">
<unidade>
<nome>Contabilidade Financeira II</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Direito da Empresa e do Trabalho</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Técnicas de Expressão e Comunicação II</nome>
<area>Ciências Humanas</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Inglês Técnico II</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Oficinas de escrita</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Fiscalidade</nome>
<area>...</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Gestão da Informação</nome>
<area>...</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Estratégias de Marketing</nome>
<area></area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Outra UC em funcionamento na ESTG</nome>
<area>...</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
<!--5º semestre de AA-->
<semestre id="S5">
<unidade>
<nome>Práticas Administrativas II</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Relações Humanas e Comunicação na Empresa</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Técnicas de Documentação e Arquivo</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>7</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Análise e Planeamento Financeiro</nome>
<area>Ciências Humanas</area>
<totalHoras>160</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Cultura Contemporânea</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Contabilidade Pública</nome>
<area>...</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Organização e Representação da informação</nome>
<area>...</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Gestão da Comunicação</nome>
<area>...</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Outra UC em funcionamento na ESTG</nome>
<area>-1</area>
<totalHoras>-1</totalHoras>
<horasContacto>
<PL>-1</PL>
<TP>-1</TP>
</horasContacto>
<ECTS>-1</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
<!--6º semestre de AA-->
<semestre id="S6">
<unidade>
<nome>Sociologia das Organizações</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Técnicas de Tradução de Inglês</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>3ª Língua estrangeira</nome>
<area>Ciências Humanas</area>
<totalHoras>190</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Pesquisa de mercado</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Aprovisionamento e Gestão de stocks</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Arquivos e Bibliotecas digitais</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Outra UC em funcionamento da ESTG</nome>
<area>Ciências Humanas</area>
<totalHoras>130</totalHoras>
<horasContacto>
<PL>30</PL>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Optativa</obs>
</unidade>
<unidade>
<nome>Estágio</nome>
<area>410</area>
<totalHoras>-1</totalHoras>
<horasContacto>
</horasContacto>
<ECTS>15</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
</curso>
/impl/src/xsd/curso_DAM.xml
New file
0,0 → 1,374
<?xml version="1.0" encoding="UTF-8"?>
<curso xmlns="http://www.estgp.pt/xsd/planoestudos/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/xsd/planoestudos/1.0/ planoestudos.xsd">
<nome>Design de Animação e Multimédia</nome>
<area>DG</area>
<semestre id="S1">
<unidade>
<nome>Introdução ao Design de Comunicação</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Desenho I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
<OT>20</OT>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Pensamento e Cultura Contemporânea</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Fotografia</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Tipografia</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Edição Electrónica I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>50</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
</semestre> <!--de dam só está fito o 1º semewstrae-->
<semestre id="S2">
<unidade>
<nome>Design de Comunicação I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Desenho II</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Técnicas de Expressão Visual</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Técnicas de Comunicação Verbal e não Verbal</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Tecnologia e Linguagem Audiovisual I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>10</OT>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Edição Electrónica II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
</semestre>
<semestre id="S3">
<unidade>
<nome>Desenho III</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Tecnologia e Linguagem Audiovisual II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Narrativas para Animação</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Técnicas de Animação</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Animação 2D I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Opção</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
</horasContacto>
<ECTS>3</ECTS>
<obs>Optativa</obs>
</unidade>
</semestre>
<semestre id="S4">
<unidade>
<nome>Desenho IV</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Ergonomia</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<T>30</T>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Multimédia</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Animação 2D II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Projecto de Animação I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Organização e Gestão de Projectos</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
</semestre>
<semestre id="S5">
<unidade>
<nome>Animação 3D I</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Modelação 3D</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Iluminação e Texturização</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Expressão e Caracterização</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Sonoplastia</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
</semestre>
<semestre id="S6">
<unidade>
<nome>Animação 3D II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Aplicações 3D</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Programação</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>60</TP>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Gestão e Produção</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<TP>30</TP>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Projecto de Animação II</nome>
<area>Design</area>
<totalHoras>160</totalHoras>
<horasContacto>
<TP>30</TP>
<PL>30</PL>
</horasContacto>
<ECTS>6</ECTS>
<obs></obs>
</unidade>
<unidade>
<nome>Seminário</nome>
<area>Design</area>
<totalHoras>80</totalHoras>
<horasContacto>
<S>30</S>
</horasContacto>
<ECTS>3</ECTS>
<obs></obs>
</unidade>
</semestre>
</curso>
/impl/src/xsd/planoestudos.xsd
21,15 → 21,15
<xsd:element name="semestre" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice>
<xsd:element name="unidade" type="unidadeType" maxOccurs="unbounded"></xsd:element>
<xsd:element name="perfil" maxOccurs="unbounded">
<xsd:element name="unidade" type="unidadeType" maxOccurs="unbounded"/>
<xsd:element name="perfil" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="unidade" type="unidadeType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="nome" use="required" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:attribute name="nome" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:attribute name="id" use="required">
<xsd:simpleType>
62,21 → 62,23
<xsd:element name="horasContacto">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="T" type="xsd:int" minOccurs="0"/>
<xsd:element name="TP" type="xsd:int" minOccurs="0"/>
<xsd:element name="P" type="xsd:int" minOccurs="0"/>
<xsd:element name="PL" type="xsd:int" minOccurs="0"/>
<xsd:element name="PD" type="xsd:int" minOccurs="0"/>
<xsd:element name="OT" type="xsd:int" minOccurs="0"/>
<xsd:element name="E" type="xsd:int" minOccurs="0"/>
<xsd:element name="S" type="xsd:int" minOccurs="0"/>
<xsd:element name="TC" type="xsd:int" minOccurs="0"/>
<xsd:element name="O" type="xsd:int" minOccurs="0"/>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="T" type="xsd:int" minOccurs="0"/>
<xsd:element name="TP" type="xsd:int" minOccurs="0"/>
<xsd:element name="P" type="xsd:int" minOccurs="0"/>
<xsd:element name="PL" type="xsd:int" minOccurs="0"/>
<xsd:element name="PD" type="xsd:int" minOccurs="0"/>
<xsd:element name="OT" type="xsd:int" minOccurs="0"/>
<xsd:element name="E" type="xsd:int" minOccurs="0"/>
<xsd:element name="S" type="xsd:int" minOccurs="0"/>
<xsd:element name="TC" type="xsd:int" minOccurs="0"/>
<xsd:element name="O" type="xsd:int" minOccurs="0"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ECTS" type="xsd:float"/>
<xsd:element name="obs" type="xsd:string"/>
<xsd:element name="obs" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
/impl/src/xsd/curso_EGI.xml
New file
0,0 → 1,521
<?xml version="1.0" encoding="UTF-8"?>
<curso xmlns="http://www.estgp.pt/xsd/planoestudos/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.estgp.pt/xsd/planoestudos/1.0/ planoestudos.xsd">
<nome>Engenharia de Gestão Industrial</nome>
<area>EG</area>
<semestre id="S1">
<unidade>
<nome>Análise Matemática I</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Álgebra e Geometria</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Física</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Programação</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Química I</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Gestão da Empresa</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência I</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--1º semestre de EGI-->
<semestre id="S2">
<unidade>
<nome>Análise Matemática II</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Estatística</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Química II</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
<OT>30</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Termodinâmica</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Segurança, Higiene e Saúde no Trabalho</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Processos Produtivos</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>30</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência II</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--2º semestre de EGI-->
<semestre id="S3">
<unidade>
<nome>Ciência dos Materiais</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Fenómenos de Transferência</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Contabilidade Financeira</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Desenho e Modelação</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Métodos Numéricos e Optimização</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Análise Matemática III</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
<OT>15</OT>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência III</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--\\3º semestre de EGI-->
<semestre id="S4">
<unidade>
<nome>Segurança no Trabalho</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Operações Unitárias I </nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Mecânica</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Química Analítica e Instrumental</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Gestão de Recursos Humanos</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Gestão e Controlo da Qualidade</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Unidade de Transferência IV</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--\\4º semestre de EGI-->
<semestre id="S5">
<unidade>
<nome>Operações Unitárias II</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Planeamento e Controlo da Produção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Electrotecnia</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Corrosão</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Desenvolvimento, Pessoal e Profissional</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Controlo da Qualidade</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Opção A.</obs>
</unidade>
<unidade>
<nome>Ergonomia</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Opção B.</obs>
</unidade>
<unidade>
<nome>Unidade de Transferência VI ou V</nome>
<area>Engenharias</area>
<totalHoras>150</totalHoras>
<horasContacto>
<PL>30</PL>
<TC>15</TC>
<OT>15</OT>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
</semestre>
<!--\\5º semestre de EGI-->
<semestre id="S6">
<unidade>
<nome>Manutenção e Fiabilidade</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Instrumentação e Controlo de Processos</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Sistemas de Gestão Ambiental</nome>
<area>Engenharias</area>
<totalHoras>65</totalHoras>
<horasContacto>
<T>15</T>
<TP>15</TP>
</horasContacto>
<ECTS>2.5</ECTS>
<obs/>
</unidade>
<unidade>
<nome>Metrologia e Normalização</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Opção A.</obs>
</unidade>
<unidade>
<nome>Sistema de Gestão da Qualidade e Auditorias</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Opção A.</obs>
</unidade>
<unidade>
<nome>Avaliação de Risco e Prevenção</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Opção B</obs>
</unidade>
<unidade>
<nome>Gestão e Organização de Emergência.</nome>
<area>Engenharias</area>
<totalHoras>130</totalHoras>
<horasContacto>
<T>30</T>
<TP>30</TP>
</horasContacto>
<ECTS>5</ECTS>
<obs>Opção B</obs>
</unidade>
<unidade>
<nome>Projecto</nome>
<area>Engenharias</area>
<totalHoras>215</totalHoras>
<horasContacto>
<TP>30</TP>
<OT>15</OT>
</horasContacto>
<ECTS>7.5</ECTS>
<obs/>
</unidade>
</semestre>
<!--\\6º semestre de EGI-->
</curso>
/impl/libs.xml
58,5 → 58,8
<fileset dir="${env.JAVA_HOME}">
<include name="lib/tools.jar"/>
</fileset>
<fileset dir="${common.lib.dir}/saxon">
<include name="**/*.jar"/>
</fileset>
</path>
</project>
/impl/gen/java/pt/ipportalegre/siges/web/services/GetAulas.java
New file
0,0 → 1,146
 
package pt.ipportalegre.siges.web.services;
 
import java.math.BigDecimal;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
 
 
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="codigoInstituicao" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="anolectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoUnidade" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="semestre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"codigoInstituicao",
"anolectivo",
"codigoUnidade",
"semestre"
})
@XmlRootElement(name = "getAulas")
public class GetAulas {
 
@XmlElement(required = true)
protected BigDecimal codigoInstituicao;
protected String anolectivo;
protected String codigoUnidade;
protected String semestre;
 
/**
* Gets the value of the codigoInstituicao property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getCodigoInstituicao() {
return codigoInstituicao;
}
 
/**
* Sets the value of the codigoInstituicao property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setCodigoInstituicao(BigDecimal value) {
this.codigoInstituicao = value;
}
 
/**
* Gets the value of the anolectivo property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAnolectivo() {
return anolectivo;
}
 
/**
* Sets the value of the anolectivo property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAnolectivo(String value) {
this.anolectivo = value;
}
 
/**
* Gets the value of the codigoUnidade property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCodigoUnidade() {
return codigoUnidade;
}
 
/**
* Sets the value of the codigoUnidade property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCodigoUnidade(String value) {
this.codigoUnidade = value;
}
 
/**
* Gets the value of the semestre property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSemestre() {
return semestre;
}
 
/**
* Sets the value of the semestre property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSemestre(String value) {
this.semestre = value;
}
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/ArrayOfAula.java
New file
0,0 → 1,69
 
package pt.ipportalegre.siges.web.services;
 
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
 
 
/**
* <p>Java class for ArrayOfAula complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="ArrayOfAula">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="Aula" type="{http://www.ipportalegre.pt/siges/web/services}Aula" maxOccurs="unbounded" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfAula", propOrder = {
"aula"
})
public class ArrayOfAula {
 
@XmlElement(name = "Aula", nillable = true)
protected List<Aula> aula;
 
/**
* Gets the value of the aula property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the aula property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAula().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Aula }
*
*
*/
public List<Aula> getAula() {
if (aula == null) {
aula = new ArrayList<Aula>();
}
return this.aula;
}
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/SendSmsSeparatedWithComma.java
New file
0,0 → 1,116
 
package pt.ipportalegre.siges.web.services;
 
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
 
 
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="message" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="sPhones" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="secret" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"message",
"sPhones",
"secret"
})
@XmlRootElement(name = "sendSmsSeparatedWithComma")
public class SendSmsSeparatedWithComma {
 
protected String message;
protected String sPhones;
protected String secret;
 
/**
* Gets the value of the message property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getMessage() {
return message;
}
 
/**
* Sets the value of the message property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setMessage(String value) {
this.message = value;
}
 
/**
* Gets the value of the sPhones property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSPhones() {
return sPhones;
}
 
/**
* Sets the value of the sPhones property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSPhones(String value) {
this.sPhones = value;
}
 
/**
* Gets the value of the secret property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSecret() {
return secret;
}
 
/**
* Sets the value of the secret property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSecret(String value) {
this.secret = value;
}
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/Disciplina.java
19,9 → 19,12
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="codigo" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="cdLectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoCurso" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="cdDuracao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoInstituicao" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="cdTurma" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="nome" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoCurso" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="nomeCurso" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="grauCurso" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;/sequence>
35,9 → 38,12
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Disciplina", propOrder = {
"codigo",
"cdLectivo",
"codigoCurso",
"cdDuracao",
"codigoInstituicao",
"cdTurma",
"nome",
"codigoCurso",
"nomeCurso",
"grauCurso"
})
45,11 → 51,14
 
@XmlElement(required = true)
protected BigDecimal codigo;
protected String cdLectivo;
@XmlElement(required = true)
protected BigDecimal codigoCurso;
protected String cdDuracao;
@XmlElement(required = true)
protected BigDecimal codigoInstituicao;
protected String cdTurma;
protected String nome;
@XmlElement(required = true)
protected BigDecimal codigoCurso;
protected String nomeCurso;
protected String grauCurso;
 
78,6 → 87,78
}
 
/**
* Gets the value of the cdLectivo property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCdLectivo() {
return cdLectivo;
}
 
/**
* Sets the value of the cdLectivo property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCdLectivo(String value) {
this.cdLectivo = value;
}
 
/**
* Gets the value of the codigoCurso property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getCodigoCurso() {
return codigoCurso;
}
 
/**
* Sets the value of the codigoCurso property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setCodigoCurso(BigDecimal value) {
this.codigoCurso = value;
}
 
/**
* Gets the value of the cdDuracao property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCdDuracao() {
return cdDuracao;
}
 
/**
* Sets the value of the cdDuracao property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCdDuracao(String value) {
this.cdDuracao = value;
}
 
/**
* Gets the value of the codigoInstituicao property.
*
* @return
102,51 → 183,51
}
 
/**
* Gets the value of the nome property.
* Gets the value of the cdTurma property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getNome() {
return nome;
public String getCdTurma() {
return cdTurma;
}
 
/**
* Sets the value of the nome property.
* Sets the value of the cdTurma property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setNome(String value) {
this.nome = value;
public void setCdTurma(String value) {
this.cdTurma = value;
}
 
/**
* Gets the value of the codigoCurso property.
* Gets the value of the nome property.
*
* @return
* possible object is
* {@link BigDecimal }
* {@link String }
*
*/
public BigDecimal getCodigoCurso() {
return codigoCurso;
public String getNome() {
return nome;
}
 
/**
* Sets the value of the codigoCurso property.
* Sets the value of the nome property.
*
* @param value
* allowed object is
* {@link BigDecimal }
* {@link String }
*
*/
public void setCodigoCurso(BigDecimal value) {
this.codigoCurso = value;
public void setNome(String value) {
this.nome = value;
}
 
/**
/impl/gen/java/pt/ipportalegre/siges/web/services/Docente.java
32,7 → 32,7
* &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="numeroBi" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="usernameNetpa" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="disciplinas" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfDecimal" minOccurs="0"/>
* &lt;element name="disciplinas" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfDisciplina" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
76,7 → 76,7
protected String email;
protected String numeroBi;
protected String usernameNetpa;
protected ArrayOfDecimal disciplinas;
protected ArrayOfDisciplina disciplinas;
 
/**
* Gets the value of the codigoFuncionario property.
371,10 → 371,10
*
* @return
* possible object is
* {@link ArrayOfDecimal }
* {@link ArrayOfDisciplina }
*
*/
public ArrayOfDecimal getDisciplinas() {
public ArrayOfDisciplina getDisciplinas() {
return disciplinas;
}
 
383,10 → 383,10
*
* @param value
* allowed object is
* {@link ArrayOfDecimal }
* {@link ArrayOfDisciplina }
*
*/
public void setDisciplinas(ArrayOfDecimal value) {
public void setDisciplinas(ArrayOfDisciplina value) {
this.disciplinas = value;
}
 
/impl/gen/java/pt/ipportalegre/siges/web/services/Aula.java
New file
0,0 → 1,847
 
package pt.ipportalegre.siges.web.services;
 
import java.math.BigDecimal;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;
 
 
/**
* <p>Java class for Aula complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="Aula">
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="data" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
* &lt;element name="numeroOcupacao" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="tipoOcupacao" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="duracao" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="numeroCelulas" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="observacoes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="numeroAula" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="descricao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoSala" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="codigoResponsavel" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="codigoSituacao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoSumario" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="aula_codigoLectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="aula_codigoDisciplina" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="aula_codigoPeriodo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="aula_codigoTurma" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="aula_codigoDocente" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="aula_codigoSumario" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="aula_codigoSalaAula" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="sum_HoraInicial" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="sum_HoraFinal" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="sum_numeroAlunos" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="sum_numeroAula" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="sum_tipoAula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="sum_titulo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="sum_descricao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="sum_identificador" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="sum_cdEstado" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="sum_numeroPresencas" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Aula", propOrder = {
"data",
"numeroOcupacao",
"tipoOcupacao",
"duracao",
"numeroCelulas",
"observacoes",
"numeroAula",
"descricao",
"codigoSala",
"codigoResponsavel",
"codigoSituacao",
"codigoSumario",
"aulaCodigoLectivo",
"aulaCodigoDisciplina",
"aulaCodigoPeriodo",
"aulaCodigoTurma",
"aulaCodigoDocente",
"aulaCodigoSumario",
"aulaCodigoSalaAula",
"sumHoraInicial",
"sumHoraFinal",
"sumNumeroAlunos",
"sumNumeroAula",
"sumTipoAula",
"sumTitulo",
"sumDescricao",
"sumIdentificador",
"sumCdEstado",
"sumNumeroPresencas"
})
public class Aula {
 
@XmlElement(required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar data;
@XmlElement(required = true)
protected BigDecimal numeroOcupacao;
@XmlElement(required = true)
protected BigDecimal tipoOcupacao;
@XmlElement(required = true)
protected BigDecimal duracao;
@XmlElement(required = true)
protected BigDecimal numeroCelulas;
protected String observacoes;
@XmlElement(required = true)
protected BigDecimal numeroAula;
protected String descricao;
@XmlElement(required = true)
protected BigDecimal codigoSala;
@XmlElement(required = true)
protected BigDecimal codigoResponsavel;
protected String codigoSituacao;
@XmlElement(required = true)
protected BigDecimal codigoSumario;
@XmlElement(name = "aula_codigoLectivo")
protected String aulaCodigoLectivo;
@XmlElement(name = "aula_codigoDisciplina", required = true)
protected BigDecimal aulaCodigoDisciplina;
@XmlElement(name = "aula_codigoPeriodo")
protected String aulaCodigoPeriodo;
@XmlElement(name = "aula_codigoTurma")
protected String aulaCodigoTurma;
@XmlElement(name = "aula_codigoDocente", required = true)
protected BigDecimal aulaCodigoDocente;
@XmlElement(name = "aula_codigoSumario", required = true)
protected BigDecimal aulaCodigoSumario;
@XmlElement(name = "aula_codigoSalaAula", required = true)
protected BigDecimal aulaCodigoSalaAula;
@XmlElement(name = "sum_HoraInicial", required = true)
protected BigDecimal sumHoraInicial;
@XmlElement(name = "sum_HoraFinal", required = true)
protected BigDecimal sumHoraFinal;
@XmlElement(name = "sum_numeroAlunos", required = true)
protected BigDecimal sumNumeroAlunos;
@XmlElement(name = "sum_numeroAula", required = true)
protected BigDecimal sumNumeroAula;
@XmlElement(name = "sum_tipoAula")
protected String sumTipoAula;
@XmlElement(name = "sum_titulo")
protected String sumTitulo;
@XmlElement(name = "sum_descricao")
protected String sumDescricao;
@XmlElement(name = "sum_identificador")
protected String sumIdentificador;
@XmlElement(name = "sum_cdEstado", required = true)
protected BigDecimal sumCdEstado;
@XmlElement(name = "sum_numeroPresencas", required = true)
protected BigDecimal sumNumeroPresencas;
 
/**
* Gets the value of the data property.
*
* @return
* possible object is
* {@link XMLGregorianCalendar }
*
*/
public XMLGregorianCalendar getData() {
return data;
}
 
/**
* Sets the value of the data property.
*
* @param value
* allowed object is
* {@link XMLGregorianCalendar }
*
*/
public void setData(XMLGregorianCalendar value) {
this.data = value;
}
 
/**
* Gets the value of the numeroOcupacao property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getNumeroOcupacao() {
return numeroOcupacao;
}
 
/**
* Sets the value of the numeroOcupacao property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setNumeroOcupacao(BigDecimal value) {
this.numeroOcupacao = value;
}
 
/**
* Gets the value of the tipoOcupacao property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getTipoOcupacao() {
return tipoOcupacao;
}
 
/**
* Sets the value of the tipoOcupacao property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setTipoOcupacao(BigDecimal value) {
this.tipoOcupacao = value;
}
 
/**
* Gets the value of the duracao property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getDuracao() {
return duracao;
}
 
/**
* Sets the value of the duracao property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setDuracao(BigDecimal value) {
this.duracao = value;
}
 
/**
* Gets the value of the numeroCelulas property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getNumeroCelulas() {
return numeroCelulas;
}
 
/**
* Sets the value of the numeroCelulas property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setNumeroCelulas(BigDecimal value) {
this.numeroCelulas = value;
}
 
/**
* Gets the value of the observacoes property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getObservacoes() {
return observacoes;
}
 
/**
* Sets the value of the observacoes property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setObservacoes(String value) {
this.observacoes = value;
}
 
/**
* Gets the value of the numeroAula property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getNumeroAula() {
return numeroAula;
}
 
/**
* Sets the value of the numeroAula property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setNumeroAula(BigDecimal value) {
this.numeroAula = value;
}
 
/**
* Gets the value of the descricao property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getDescricao() {
return descricao;
}
 
/**
* Sets the value of the descricao property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setDescricao(String value) {
this.descricao = value;
}
 
/**
* Gets the value of the codigoSala property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getCodigoSala() {
return codigoSala;
}
 
/**
* Sets the value of the codigoSala property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setCodigoSala(BigDecimal value) {
this.codigoSala = value;
}
 
/**
* Gets the value of the codigoResponsavel property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getCodigoResponsavel() {
return codigoResponsavel;
}
 
/**
* Sets the value of the codigoResponsavel property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setCodigoResponsavel(BigDecimal value) {
this.codigoResponsavel = value;
}
 
/**
* Gets the value of the codigoSituacao property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCodigoSituacao() {
return codigoSituacao;
}
 
/**
* Sets the value of the codigoSituacao property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCodigoSituacao(String value) {
this.codigoSituacao = value;
}
 
/**
* Gets the value of the codigoSumario property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getCodigoSumario() {
return codigoSumario;
}
 
/**
* Sets the value of the codigoSumario property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setCodigoSumario(BigDecimal value) {
this.codigoSumario = value;
}
 
/**
* Gets the value of the aulaCodigoLectivo property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAulaCodigoLectivo() {
return aulaCodigoLectivo;
}
 
/**
* Sets the value of the aulaCodigoLectivo property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAulaCodigoLectivo(String value) {
this.aulaCodigoLectivo = value;
}
 
/**
* Gets the value of the aulaCodigoDisciplina property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getAulaCodigoDisciplina() {
return aulaCodigoDisciplina;
}
 
/**
* Sets the value of the aulaCodigoDisciplina property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setAulaCodigoDisciplina(BigDecimal value) {
this.aulaCodigoDisciplina = value;
}
 
/**
* Gets the value of the aulaCodigoPeriodo property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAulaCodigoPeriodo() {
return aulaCodigoPeriodo;
}
 
/**
* Sets the value of the aulaCodigoPeriodo property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAulaCodigoPeriodo(String value) {
this.aulaCodigoPeriodo = value;
}
 
/**
* Gets the value of the aulaCodigoTurma property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAulaCodigoTurma() {
return aulaCodigoTurma;
}
 
/**
* Sets the value of the aulaCodigoTurma property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAulaCodigoTurma(String value) {
this.aulaCodigoTurma = value;
}
 
/**
* Gets the value of the aulaCodigoDocente property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getAulaCodigoDocente() {
return aulaCodigoDocente;
}
 
/**
* Sets the value of the aulaCodigoDocente property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setAulaCodigoDocente(BigDecimal value) {
this.aulaCodigoDocente = value;
}
 
/**
* Gets the value of the aulaCodigoSumario property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getAulaCodigoSumario() {
return aulaCodigoSumario;
}
 
/**
* Sets the value of the aulaCodigoSumario property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setAulaCodigoSumario(BigDecimal value) {
this.aulaCodigoSumario = value;
}
 
/**
* Gets the value of the aulaCodigoSalaAula property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getAulaCodigoSalaAula() {
return aulaCodigoSalaAula;
}
 
/**
* Sets the value of the aulaCodigoSalaAula property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setAulaCodigoSalaAula(BigDecimal value) {
this.aulaCodigoSalaAula = value;
}
 
/**
* Gets the value of the sumHoraInicial property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getSumHoraInicial() {
return sumHoraInicial;
}
 
/**
* Sets the value of the sumHoraInicial property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setSumHoraInicial(BigDecimal value) {
this.sumHoraInicial = value;
}
 
/**
* Gets the value of the sumHoraFinal property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getSumHoraFinal() {
return sumHoraFinal;
}
 
/**
* Sets the value of the sumHoraFinal property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setSumHoraFinal(BigDecimal value) {
this.sumHoraFinal = value;
}
 
/**
* Gets the value of the sumNumeroAlunos property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getSumNumeroAlunos() {
return sumNumeroAlunos;
}
 
/**
* Sets the value of the sumNumeroAlunos property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setSumNumeroAlunos(BigDecimal value) {
this.sumNumeroAlunos = value;
}
 
/**
* Gets the value of the sumNumeroAula property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getSumNumeroAula() {
return sumNumeroAula;
}
 
/**
* Sets the value of the sumNumeroAula property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setSumNumeroAula(BigDecimal value) {
this.sumNumeroAula = value;
}
 
/**
* Gets the value of the sumTipoAula property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSumTipoAula() {
return sumTipoAula;
}
 
/**
* Sets the value of the sumTipoAula property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSumTipoAula(String value) {
this.sumTipoAula = value;
}
 
/**
* Gets the value of the sumTitulo property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSumTitulo() {
return sumTitulo;
}
 
/**
* Sets the value of the sumTitulo property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSumTitulo(String value) {
this.sumTitulo = value;
}
 
/**
* Gets the value of the sumDescricao property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSumDescricao() {
return sumDescricao;
}
 
/**
* Sets the value of the sumDescricao property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSumDescricao(String value) {
this.sumDescricao = value;
}
 
/**
* Gets the value of the sumIdentificador property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSumIdentificador() {
return sumIdentificador;
}
 
/**
* Sets the value of the sumIdentificador property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSumIdentificador(String value) {
this.sumIdentificador = value;
}
 
/**
* Gets the value of the sumCdEstado property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getSumCdEstado() {
return sumCdEstado;
}
 
/**
* Sets the value of the sumCdEstado property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setSumCdEstado(BigDecimal value) {
this.sumCdEstado = value;
}
 
/**
* Gets the value of the sumNumeroPresencas property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getSumNumeroPresencas() {
return sumNumeroPresencas;
}
 
/**
* Sets the value of the sumNumeroPresencas property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setSumNumeroPresencas(BigDecimal value) {
this.sumNumeroPresencas = value;
}
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/GetAulasResponse.java
New file
0,0 → 1,62
 
package pt.ipportalegre.siges.web.services;
 
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
 
 
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="getAulasResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfAula" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"getAulasResult"
})
@XmlRootElement(name = "getAulasResponse")
public class GetAulasResponse {
 
protected ArrayOfAula getAulasResult;
 
/**
* Gets the value of the getAulasResult property.
*
* @return
* possible object is
* {@link ArrayOfAula }
*
*/
public ArrayOfAula getGetAulasResult() {
return getAulasResult;
}
 
/**
* Sets the value of the getAulasResult property.
*
* @param value
* allowed object is
* {@link ArrayOfAula }
*
*/
public void setGetAulasResult(ArrayOfAula value) {
this.getAulasResult = value;
}
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/SiGesWEBSoap.java
191,6 → 191,29
 
/**
*
* @param codigoInstituicao
* @param anolectivo
* @param semestre
* @param codigoUnidade
* @return
* returns pt.ipportalegre.siges.web.services.ArrayOfAula
*/
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/getAulas")
@WebResult(name = "getAulasResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
@RequestWrapper(localName = "getAulas", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetAulas")
@ResponseWrapper(localName = "getAulasResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetAulasResponse")
public ArrayOfAula getAulas(
@WebParam(name = "codigoInstituicao", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
BigDecimal codigoInstituicao,
@WebParam(name = "anolectivo", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
String anolectivo,
@WebParam(name = "codigoUnidade", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
String codigoUnidade,
@WebParam(name = "semestre", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
String semestre);
 
/**
*
* @param sPhones
* @param message
* @param secret
208,7 → 231,24
 
/**
*
* @param sPhones
* @param message
* @param secret
*/
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/sendSmsSeparatedWithComma")
@RequestWrapper(localName = "sendSmsSeparatedWithComma", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.SendSmsSeparatedWithComma")
@ResponseWrapper(localName = "sendSmsSeparatedWithCommaResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.SendSmsSeparatedWithCommaResponse")
public void sendSmsSeparatedWithComma(
@WebParam(name = "message", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
String message,
@WebParam(name = "sPhones", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
String sPhones,
@WebParam(name = "secret", targetNamespace = "http://www.ipportalegre.pt/siges/web/services")
String secret);
 
/**
*
* @param message
* @param phone
* @param secret
*/
/impl/gen/java/pt/ipportalegre/siges/web/services/SendSmsSeparatedWithCommaResponse.java
New file
0,0 → 1,32
 
package pt.ipportalegre.siges.web.services;
 
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
 
 
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@XmlRootElement(name = "sendSmsSeparatedWithCommaResponse")
public class SendSmsSeparatedWithCommaResponse {
 
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/ObjectFactory.java
30,11 → 30,11
}
 
/**
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestreResponse }
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestre }
*
*/
public GetDisciplinasDaInstituicaoSemestreResponse createGetDisciplinasDaInstituicaoSemestreResponse() {
return new GetDisciplinasDaInstituicaoSemestreResponse();
public GetDisciplinasDaInstituicaoSemestre createGetDisciplinasDaInstituicaoSemestre() {
return new GetDisciplinasDaInstituicaoSemestre();
}
 
/**
46,94 → 46,102
}
 
/**
* Create an instance of {@link GetAlunoInscrito }
* Create an instance of {@link SendSmsS }
*
*/
public GetAlunoInscrito createGetAlunoInscrito() {
return new GetAlunoInscrito();
public SendSmsS createSendSmsS() {
return new SendSmsS();
}
 
/**
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicaoResponse }
* Create an instance of {@link GetAulasResponse }
*
*/
public GetCodigosDocentesInscritosDaInstituicaoResponse createGetCodigosDocentesInscritosDaInstituicaoResponse() {
return new GetCodigosDocentesInscritosDaInstituicaoResponse();
public GetAulasResponse createGetAulasResponse() {
return new GetAulasResponse();
}
 
/**
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicaoResponse }
* Create an instance of {@link ArrayOfNota }
*
*/
public GetCodigosAlunosInscritosDaInstituicaoResponse createGetCodigosAlunosInscritosDaInstituicaoResponse() {
return new GetCodigosAlunosInscritosDaInstituicaoResponse();
public ArrayOfNota createArrayOfNota() {
return new ArrayOfNota();
}
 
/**
* Create an instance of {@link Aluno }
* Create an instance of {@link SendSmsSResponse }
*
*/
public Aluno createAluno() {
return new Aluno();
public SendSmsSResponse createSendSmsSResponse() {
return new SendSmsSResponse();
}
 
/**
* Create an instance of {@link Docente }
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicao }
*
*/
public Docente createDocente() {
return new Docente();
public GetCodigosDocentesInscritosDaInstituicao createGetCodigosDocentesInscritosDaInstituicao() {
return new GetCodigosDocentesInscritosDaInstituicao();
}
 
/**
* Create an instance of {@link SendSmsS }
* Create an instance of {@link SendSmsSeparatedWithCommaResponse }
*
*/
public SendSmsS createSendSmsS() {
return new SendSmsS();
public SendSmsSeparatedWithCommaResponse createSendSmsSeparatedWithCommaResponse() {
return new SendSmsSeparatedWithCommaResponse();
}
 
/**
* Create an instance of {@link GetDocenteResponse }
* Create an instance of {@link Aula }
*
*/
public GetDocenteResponse createGetDocenteResponse() {
return new GetDocenteResponse();
public Aula createAula() {
return new Aula();
}
 
/**
* Create an instance of {@link GetNotasResponse }
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicao }
*
*/
public GetNotasResponse createGetNotasResponse() {
return new GetNotasResponse();
public GetCodigosAlunosInscritosDaInstituicao createGetCodigosAlunosInscritosDaInstituicao() {
return new GetCodigosAlunosInscritosDaInstituicao();
}
 
/**
* Create an instance of {@link ArrayOfDecimal }
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestreResponse }
*
*/
public ArrayOfDecimal createArrayOfDecimal() {
return new ArrayOfDecimal();
public GetCodigosDisciplinasDaInstituicaoSemestreResponse createGetCodigosDisciplinasDaInstituicaoSemestreResponse() {
return new GetCodigosDisciplinasDaInstituicaoSemestreResponse();
}
 
/**
* Create an instance of {@link ArrayOfNota }
* Create an instance of {@link GetDocente }
*
*/
public ArrayOfNota createArrayOfNota() {
return new ArrayOfNota();
public GetDocente createGetDocente() {
return new GetDocente();
}
 
/**
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestreResponse }
* Create an instance of {@link GetAulas }
*
*/
public GetCodigosDisciplinasDaInstituicaoSemestreResponse createGetCodigosDisciplinasDaInstituicaoSemestreResponse() {
return new GetCodigosDisciplinasDaInstituicaoSemestreResponse();
public GetAulas createGetAulas() {
return new GetAulas();
}
 
/**
* Create an instance of {@link GetDisciplinasDaInstituicaoResponse }
*
*/
public GetDisciplinasDaInstituicaoResponse createGetDisciplinasDaInstituicaoResponse() {
return new GetDisciplinasDaInstituicaoResponse();
}
 
/**
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoResponse }
*
*/
142,35 → 150,35
}
 
/**
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicao }
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicaoResponse }
*
*/
public GetCodigosDocentesInscritosDaInstituicao createGetCodigosDocentesInscritosDaInstituicao() {
return new GetCodigosDocentesInscritosDaInstituicao();
public GetCodigosAlunosInscritosDaInstituicaoResponse createGetCodigosAlunosInscritosDaInstituicaoResponse() {
return new GetCodigosAlunosInscritosDaInstituicaoResponse();
}
 
/**
* Create an instance of {@link SendSms }
* Create an instance of {@link GetNotas }
*
*/
public SendSms createSendSms() {
return new SendSms();
public GetNotas createGetNotas() {
return new GetNotas();
}
 
/**
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicao }
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestreResponse }
*
*/
public GetCodigosAlunosInscritosDaInstituicao createGetCodigosAlunosInscritosDaInstituicao() {
return new GetCodigosAlunosInscritosDaInstituicao();
public GetDisciplinasDaInstituicaoSemestreResponse createGetDisciplinasDaInstituicaoSemestreResponse() {
return new GetDisciplinasDaInstituicaoSemestreResponse();
}
 
/**
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestre }
* Create an instance of {@link Disciplina }
*
*/
public GetCodigosDisciplinasDaInstituicaoSemestre createGetCodigosDisciplinasDaInstituicaoSemestre() {
return new GetCodigosDisciplinasDaInstituicaoSemestre();
public Disciplina createDisciplina() {
return new Disciplina();
}
 
/**
182,19 → 190,19
}
 
/**
* Create an instance of {@link ArrayOfString }
* Create an instance of {@link SendSmsSeparatedWithComma }
*
*/
public ArrayOfString createArrayOfString() {
return new ArrayOfString();
public SendSmsSeparatedWithComma createSendSmsSeparatedWithComma() {
return new SendSmsSeparatedWithComma();
}
 
/**
* Create an instance of {@link GetDisciplinasDaInstituicaoResponse }
* Create an instance of {@link SendSms }
*
*/
public GetDisciplinasDaInstituicaoResponse createGetDisciplinasDaInstituicaoResponse() {
return new GetDisciplinasDaInstituicaoResponse();
public SendSms createSendSms() {
return new SendSms();
}
 
/**
206,6 → 214,30
}
 
/**
* Create an instance of {@link Nota }
*
*/
public Nota createNota() {
return new Nota();
}
 
/**
* Create an instance of {@link GetAlunoInscrito }
*
*/
public GetAlunoInscrito createGetAlunoInscrito() {
return new GetAlunoInscrito();
}
 
/**
* Create an instance of {@link GetNotasResponse }
*
*/
public GetNotasResponse createGetNotasResponse() {
return new GetNotasResponse();
}
 
/**
* Create an instance of {@link ArrayOfDisciplina }
*
*/
214,46 → 246,62
}
 
/**
* Create an instance of {@link GetDocente }
* Create an instance of {@link GetDocenteResponse }
*
*/
public GetDocente createGetDocente() {
return new GetDocente();
public GetDocenteResponse createGetDocenteResponse() {
return new GetDocenteResponse();
}
 
/**
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestre }
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicaoResponse }
*
*/
public GetDisciplinasDaInstituicaoSemestre createGetDisciplinasDaInstituicaoSemestre() {
return new GetDisciplinasDaInstituicaoSemestre();
public GetCodigosDocentesInscritosDaInstituicaoResponse createGetCodigosDocentesInscritosDaInstituicaoResponse() {
return new GetCodigosDocentesInscritosDaInstituicaoResponse();
}
 
/**
* Create an instance of {@link SendSmsSResponse }
* Create an instance of {@link ArrayOfAula }
*
*/
public SendSmsSResponse createSendSmsSResponse() {
return new SendSmsSResponse();
public ArrayOfAula createArrayOfAula() {
return new ArrayOfAula();
}
 
/**
* Create an instance of {@link Disciplina }
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestre }
*
*/
public Disciplina createDisciplina() {
return new Disciplina();
public GetCodigosDisciplinasDaInstituicaoSemestre createGetCodigosDisciplinasDaInstituicaoSemestre() {
return new GetCodigosDisciplinasDaInstituicaoSemestre();
}
 
/**
* Create an instance of {@link Nota }
* Create an instance of {@link ArrayOfString }
*
*/
public Nota createNota() {
return new Nota();
public ArrayOfString createArrayOfString() {
return new ArrayOfString();
}
 
/**
* Create an instance of {@link Aluno }
*
*/
public Aluno createAluno() {
return new Aluno();
}
 
/**
* Create an instance of {@link ArrayOfDecimal }
*
*/
public ArrayOfDecimal createArrayOfDecimal() {
return new ArrayOfDecimal();
}
 
/**
* Create an instance of {@link GetCodigosDisciplinasDaInstituicao }
*
*/
262,11 → 310,11
}
 
/**
* Create an instance of {@link GetNotas }
* Create an instance of {@link Docente }
*
*/
public GetNotas createGetNotas() {
return new GetNotas();
public Docente createDocente() {
return new Docente();
}
 
}
/impl/gen/java/pt/ipportalegre/siges/web/services/Nota.java
20,6 → 20,9
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;element name="cd_duracao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigoInstituicao" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="cd_lectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="codigo_disciplina" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="codigo_curso" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
* &lt;element name="status_epoca" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
36,6 → 39,9
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Nota", propOrder = {
"cdDuracao",
"codigoInstituicao",
"cdLectivo",
"codigoDisciplina",
"codigoCurso",
"statusEpoca",
45,6 → 51,12
})
public class Nota {
 
@XmlElement(name = "cd_duracao")
protected String cdDuracao;
@XmlElement(required = true)
protected BigDecimal codigoInstituicao;
@XmlElement(name = "cd_lectivo")
protected String cdLectivo;
@XmlElement(name = "codigo_disciplina", required = true)
protected BigDecimal codigoDisciplina;
@XmlElement(name = "codigo_curso", required = true)
60,6 → 72,78
protected BigDecimal nota;
 
/**
* Gets the value of the cdDuracao property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCdDuracao() {
return cdDuracao;
}
 
/**
* Sets the value of the cdDuracao property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCdDuracao(String value) {
this.cdDuracao = value;
}
 
/**
* Gets the value of the codigoInstituicao property.
*
* @return
* possible object is
* {@link BigDecimal }
*
*/
public BigDecimal getCodigoInstituicao() {
return codigoInstituicao;
}
 
/**
* Sets the value of the codigoInstituicao property.
*
* @param value
* allowed object is
* {@link BigDecimal }
*
*/
public void setCodigoInstituicao(BigDecimal value) {
this.codigoInstituicao = value;
}
 
/**
* Gets the value of the cdLectivo property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCdLectivo() {
return cdLectivo;
}
 
/**
* Sets the value of the cdLectivo property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCdLectivo(String value) {
this.cdLectivo = value;
}
 
/**
* Gets the value of the codigoDisciplina property.
*
* @return
/impl/gen/java/pt/ipportalegre/siges/web/services/Aluno.java
31,7 → 31,7
* &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="numeroBi" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="usernameNetpa" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* &lt;element name="disciplinasInscrito" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfDecimal" minOccurs="0"/>
* &lt;element name="disciplinasInscrito" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfDisciplina" minOccurs="0"/>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
73,7 → 73,7
protected String email;
protected String numeroBi;
protected String usernameNetpa;
protected ArrayOfDecimal disciplinasInscrito;
protected ArrayOfDisciplina disciplinasInscrito;
 
/**
* Gets the value of the codigo property.
344,10 → 344,10
*
* @return
* possible object is
* {@link ArrayOfDecimal }
* {@link ArrayOfDisciplina }
*
*/
public ArrayOfDecimal getDisciplinasInscrito() {
public ArrayOfDisciplina getDisciplinasInscrito() {
return disciplinasInscrito;
}
 
356,10 → 356,10
*
* @param value
* allowed object is
* {@link ArrayOfDecimal }
* {@link ArrayOfDisciplina }
*
*/
public void setDisciplinasInscrito(ArrayOfDecimal value) {
public void setDisciplinasInscrito(ArrayOfDisciplina value) {
this.disciplinasInscrito = value;
}
 
/impl/build.properties
11,16 → 11,21
database.catalog=estgweb
database.username=root
database.password=
database.connection.url=jdbc:mysql://${database.host}:${database.port}/${database.catalog}?useUnicode=true&amp;characterEncoding=UTF-8
database.connection.url=jdbc:mysql://${database.host}:${database.port}/${database.catalog}?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true
hibernate.show.sql=false
 
use.ldap=true
 
#Paths configuration
tomcat.home=C:/Servidores/tomcat
#tomcat 5.5
tomcat.libs.ant.home=${tomcat.home}/server/lib
tomcat.libs.common.home=${tomcat.home}/common/lib
#tomcat 6
#tomcat.libs.ant.home=${tomcat.home}/lib
#tomcat.libs.common.home=${tomcat.home}/lib
 
 
tomcat.host=localhost
tomcat.port=8080
tomcat.url=http://${tomcat.host}:${tomcat.port}
49,6 → 54,8
lib.dir =lib
data.dir =C:/Servidores/DATA/estgweb
src.dir =src/java
src.scripts =src/scripts
src.xsd =src/xsd
hbm.dir =src/hbm
build.dir =build/ant
build.dir.classes =${build.dir}/classes
59,8 → 66,8
dist.dir =dist
gen.dir =gen
gen.dir.java =${gen.dir}/java
scripts.source.dir =etc/source_scripts
 
 
intranet.setup.folders.filename=mkcursos.exe
intranet.setup.folders.file.src=etc/data/intranet/${intranet.setup.folders.filename}
build.dir.relative.intranet.setup.folders=/etc/data/intranet
97,13 → 104,19
log4j.properties=${conf.dir}/${log4j.properties.filename}
 
#log file confirguration
log.file=${data.dir}/estgweb.log
log.file=${data.dir}/../estgweb-local.log
log.level=info
 
#email templates
email.templates.dir=/template/email
email.templates.dir.build=${build.dir.classes}${email.templates.dir}
email.templates.dir.conf=${conf.dir}${email.templates.dir}
 
#email templates
sms.templates.dir=/template/sms
sms.templates.dir.build=${build.dir.classes}${sms.templates.dir}
sms.templates.dir.conf=${conf.dir}${sms.templates.dir}
 
#assignement templates
assignement.templates.dir=/template/assignement
assignement.templates.dir.build=${build.dir.classes}${assignement.templates.dir}
163,4 → 176,4
 
#Google Service Specific Configuration
 
ws.google.package=com.google.api.ws.clients
ws.google.package=com.google.api.ws.clients
/impl/etc/todo/todo.txt
1,25 → 1,39
Jorge
Testes de Segunda oportunidade enviar online
Questão da identificacao dos Noturnos
Listagem de Programas
- Ano > Curso >
[CODIGO-NOMEUNI-SEMESTRE.pdf]
No caso de não haver:
[CODIGO-NOMEUNI-SEMESTRE-FALTA.pdf]
 
Jorge Meu
Tirar o getSerializable de noovo do domainObject e ver de onde devem herdar
 
Mensagens de Email no EI aparecem gigantes
Estilo das páginas do proxy aparecem com o numero de item deslocado
No dia da Instalação:
Pasta de Deliberações CC copy paste.
 
####
Modulo de Gestão de utilizadores Fabio
Eventos com controlo de listagem e controlo de Pagamentos Fabio
Os users que são autenticados do LDAP devem ter imediatamente uma flag no LDAP a true e esses não podem alterar a password os outros podem
Isto deve ser sempre feito, vem do LDAP coloca o ldap a true sempre, porque o alunos e profs que sejam importados irão tela a false, depois de ser colocado o login correcto na autenticacao continuam a tela a false assim que fazem login passa a true no autenticate service
 
####
O Login ainda não vai procurar os users à base de dados Fabio (Fluxograma de identificação, no caso do docente procura pelo email, no aluno por login que ficará preenchido com a importação)
####
Configuracoes de Teste
Server ESTGP esta definido para o localhost
Start Path do IOnline esta para a raiz mas para testar unidades tem de apontar para /Erasmus/baco
(PEDRO) Todos os documentos da Secção escola devem ser transferidos para a mesma pasta na nova web
 
Criação da estrutura de Páginas para a intranet Jorge
Curso > Disciplina (Ignorar Semestre para evitar alterações de plano curricular que envolvam apenas troca de semestres)
Reestruturação das pastas da intranet:
 
As pastas enumeradas adiante tem de possuir permissões de intranet
Escola \ Secretaria:
Documentos Apoio (só os docs) >> passam para ionline
Calendario Escolar > passa a pasta ionline
Calendario de Exames > passa a pasta ionline
Projectos Finais > criar pasta escola\projectos ionline
Actas do Conselho directivo > ionline com permissões especias
Pasta da Legislação > NovaWeb
 
Pasta Bolonha ZIP Pack deploy
Pasta Horarios Criar hierarquia. > Intranet/horarios
 
 
 
Jorge Meu
Tirar o getSerializable de noovo do domainObject e ver de onde devem herdar
 
###
 
Listagem de Docentes a fazer por jorge
39,5 → 53,3
FABIO
Imagens de Origem das noticias, parece-me que estão mal na pasta imgs
criar por defeito no DBInit um user com o role de cada uma das imagens (Secretaria, CI, CD, CC, CP, etc)
 
Meter mensagem no PRIMEIRO Login a dizer que caso não existam unidades curriculares para se deslocar ao Serviços Infpormaticos
/impl/buildCurriculumTransformer.xml
New file
0,0 → 1,39
<?xml version="1.0" encoding="UTF-8"?>
<project name="estgweb" basedir="." default="help">
<import file="build.xml"/>
<target name="buildTransformer" >
<mkdir dir="${dist.dir}/xsd"/>
<mkdir dir="${dist.dir}/xsd/lib"/>
<mkdir dir="${dist.dir}/xsd/classes"/>
<copy todir="${dist.dir}/xsd/lib">
<fileset dir="${common.lib.dir}/dom4j">
<include name="*.jar"/>
</fileset>
<fileset dir="${common.lib.dir}/log4j">
<include name="*.jar"/>
</fileset>
<fileset dir="${common.lib.dir}/saxon">
<include name="*.jar"/>
</fileset>
<fileset dir="${dist.dir}">
<include name="*.jar"/>
</fileset>
</copy>
<copy todir="${dist.dir}/xsd/classes">
<fileset dir="${dist.dir}">
<include name="**/*.txt"/>
<include name="**/*.xml"/>
<include name="**/*.xsd"/>
<include name="**/*.xsl"/>
<include name="**/*.properties"/>
</fileset>
</copy>
<copy todir="${dist.dir}/xsd" file="${src.scripts}/transformXml.bat"/>
<copy file="${src.xsd}/curso_EI.xml" tofile="${dist.dir}/xsd/in.xml"/>
<zip zipfile="dist/xsd.zip">
<fileset dir="dist">
<include name="xsd/**/*"/>
</fileset>
</zip>
</target>
</project>
/impl/build.xml
1,4 → 1,4
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<project name="estgweb" basedir="." default="help">
 
 
29,6 → 29,8
-->
<!--caso queiramos apagar os pregen hbm delPreGenAppScripts-->
<target name="all" depends="clean,initDirs,createConfigurationFiles,generateHibernateDomainObjects,generateHibernateDaoClasses,build,generateHibernateSql,build.war,dbInit"/>
<target name="allWebNode" depends="clean,initDirs,createConfigurationFiles,generateHibernateDomainObjects,generateHibernateDaoClasses,build.war"/>
<target name="dataNode" depends="clean,initDirs,createConfigurationFiles,generateHibernateDomainObjects,generateHibernateDaoClasses,build,generateHibernateSql"/>
 
 
<!--
98,19 → 100,19
<target name="tomcat.redeployContext" depends="tomcat.undeploy,build.war" >
<echo message="${tomcat.manager}"/>
<tomcat.install url="${tomcat.manager}" path="${tomcat.context.path.install}"
config="file:/${basedir}/${dist.dir}/estgweb.xml"
config="file:${basedir}/${dist.dir}/estgweb.xml"
username="${tomcat.username}" password="${tomcat.password}" />
</target>
<target name="tomcat.deploy" depends="build.war" >
<echo message="${tomcat.manager}"/>
<target name="tomcat.deploy" depends="war" >
<echo message="${tomcat.manager} path:${tomcat.context.path.install} warfile:file:${basedir}/${dist.dir}/${tomcat.war.file}"/>
<tomcat.deploy url="${tomcat.manager}" path="${tomcat.context.path.install}"
war="file:/${basedir}/${dist.dir}/${tomcat.war.file}"
war="file:${basedir}/${dist.dir}/${tomcat.war.file}"
username="${tomcat.username}" password="${tomcat.password}" />
</target>
<target name="tomcat.redeploy" depends="tomcat.undeploy,build.war">
<echo message="${tomcat.manager}"/>
<target name="tomcat.redeploy" depends="tomcat.undeploy,war">
<echo message="${tomcat.manager} path:${tomcat.context.path.install} warfile:file:${basedir}/${dist.dir}/${tomcat.war.file}"/>
<tomcat.deploy url="${tomcat.manager}" path="${tomcat.context.path.install}"
war="file:/${basedir}/${dist.dir}/${tomcat.war.file}"
war="file:${basedir}/${dist.dir}/${tomcat.war.file}"
username="${tomcat.username}" password="${tomcat.password}" />
</target>
<target name="tomcat.undeploy">
144,7 → 146,7
<antcall target="createConfigurationFiles"/>
</target>
<target name="compile" depends="initDirs" description="Compile All">
<javac encoding="UTF-8" destdir="${build.dir.classes}" debug="true" optimize="true" fork="true" deprecation="true" verbose="true" failonerror="true">
<javac encoding="UTF-8" source="1.5" target="1.5" destdir="${build.dir.classes}" debug="true" optimize="true" fork="true" deprecation="true" verbose="true" failonerror="true">
<src path="${src.dir}"/>
<src path="${gen.dir.java}"/>
<classpath refid="pathToToolsLib"/>
168,6 → 170,8
<copy overwrite="true" todir="${dist.dir}">
<fileset dir="${build.dir.classes}" includes="**/*.properties"/>
<fileset dir="${build.dir.classes}" includes="**/*.xml"/>
<fileset dir="${build.dir.classes}" includes="**/*.xsd"/>
<fileset dir="${build.dir.classes}" includes="**/*.xsl"/>
</copy>
<copy overwrite="true" todir="${dist.dir}" file="${conf.dir}/tomcat/estgweb.xml"/>
<replace file="${dist.dir}/estgweb.xml" value="">
193,7 → 197,7
</replace>
</target>
 
<target name="build.war" depends="build,dist" description="Make war distribution">
<target name="build.war" depends="dist" description="Make war distribution">
<mkdir dir="${build.dir.war}"/>
<mkdir dir="${build.dir.war}/WEB-INF"/>
<mkdir dir="${build.dir.war}/WEB-INF/lib"/>
234,6 → 238,9
<fileset dir="${common.lib.dir}/jaxrpc">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${common.lib.dir}/saxon">
<include name="**/*.jar"/>
</fileset>
</copy>
<copy file="${dist.dir}/estgweb.jar" todir="${build.dir.war}/WEB-INF/lib"/>
<copy todir="${build.dir.war}/WEB-INF" overwrite="true">
249,6 → 256,8
<include name="**/*.txt"/>
<include name="**/*.xml"/>
<include name="**/*.exe"/>
<include name="**/*.xsl"/>
<include name="**/*.xsd"/>
</fileset>
</copy>
<copy todir="${build.dir.war}" overwrite="true">
283,12 → 292,19
Generate Configuration Files TASKS
==========================================================================================
-->
<target name="createConfigurationFiles" depends="copyConfigurationFiles,replaceFiltersConfigurationFiles,generateHibernateCfgXml"/>
<target name="createConfigurationFiles" depends="compileToolFiles,copyConfigurationFiles,replaceFiltersConfigurationFiles,generateHibernateCfgXml"/>
 
<target name="copyConfigurationFiles">
<copy overwrite="true" todir="${build.dir.classes}">
<fileset dir="${hbm.dir}" includes="**/*.hbm.xml"/>
</copy>
<mkdir dir="${build.dir.classes}/template/xsd"/>
<copy todir="${build.dir.classes}/template/xsd" overwrite="true">
<fileset dir="${src.xsd}">
<include name="**/*.xsl"/>
<include name="**/*.xsd"/>
</fileset>
</copy>
<copy overwrite="true" todir="${build.dir.classes}">
<fileset dir="${src.dir}" includes="**/*.xsl"/>
</copy>
299,6 → 315,10
<copy overwrite="true" todir="${email.templates.dir.build}">
<fileset dir="${email.templates.dir.conf}" includes="*.*"/>
</copy>
<mkdir dir="${sms.templates.dir.build}"/>
<copy overwrite="true" todir="${sms.templates.dir.build}">
<fileset dir="${sms.templates.dir.conf}" includes="*.*"/>
</copy>
<mkdir dir="${assignement.templates.dir.build}"/>
<copy overwrite="true" todir="${assignement.templates.dir.build}">
<fileset dir="${assignement.templates.dir.conf}" includes="*.*"/>
313,13 → 333,15
<copy overwrite="true" todir="${build.dir.intranet.setup.folders.file}" file="${intranet.setup.folders.file.src}"/>
 
<java classname="${scripts.buider.class}" classpath="${build.dir.classes}">
<arg value="${basedir}\..\common"/>
<arg value="${basedir}${file.separator}..${file.separator}common"/>
<arg value="${basedir}${file.separator}build${file.separator}ant${file.separator}classes"/>
<arg value="${build.dir.scripts}"/>
<arg value="${scripts.target.libs.file}"/>
</java>
<copy overwrite="true" todir="${build.dir.scripts}">
<fileset dir="${scripts.source.dir}" includes="*.*"/>
<fileset dir="${src.scripts}" includes="*.*"/>
</copy>
 
</target>
 
<target name="replaceFiltersConfigurationFiles">
354,6 → 376,7
</replace>
<replace file="${build.dir.classes}/${log4j.properties.filename}">
<replacefilter token="@log.file@" value="${log.file}"/>
<replacefilter token="@log.level@" value="${log.level}"/>
</replace>
<replace file="${build.dir.scripts}/${scripts.setenv.file}">
<replacefilter token="@tomcat.home@" value="${tomcat.home}"/>
475,4 → 498,4
<!--<java classname="mitra.oaiharvest.index.IndexEngine" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/>-->
<!--</target>-->
 
</project>
</project>
/common/saxon/saxon9-dom4j.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/common/saxon/saxon9.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream