Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 726 → Rev 730

/impl/conf/language/MessageResourcesComunicationFolder.properties
New file
0,0 → 1,12
################################################################################
#
# ANNOUNCEMENTS MESSAGE RESOURCES
#
################################################################################
module.ComunicationFolder=Pastas de Comunicação
 
comunicationfolder.name=Nome
 
comunicationfolder.code=Code
 
 
/impl/conf/language/MessageResourcesImportSiges.properties
6,10 → 6,13
import.semestre.separated=Importando as disciplinas por Semestre
import.semestre.repeated.S1=Unidade Repetida no 1º semestre
import.semestre.repeated.S2=Unidade Repetida no 2º Semestre
import.semestre.repeated.A=Unidade Repetida Anual
import.semestre.course.units.S1=Importando Unidades Curriculares do 1º Semestre
import.semestre.course.units.S2=Importando Unidades Curriculares do 2º Semestre
import.semestre.course.units.A=Importando Unidades Curriculares Anuais
import.semestre.updating.course.units.S1=Actualizando Unidades Curriculares do 1º Semestre
import.semestre.updating.course.units.S2=Actualizando Unidades Curriculares do 2º Semestre
import.semestre.updating.course.units.A=Actualizando Unidades Curriculares Anuais
import.semestre.updating.courses=Actualizando os Cursos
import.error=Erro na importação
import.students=Importando Estudantes do SiGes
/impl/conf/language/MessageResourcesCourseUnits.properties
8,12 → 8,14
courseunit={0}
 
course.nav.without.arrow={0}
 
courseunit.security.not.implemented=Não implementado por razões de segurança
courseunit.removed=Unidade Removida com sucesso
courseunit.menu.unit.old.units=Anos anteriores
courseunit.menu.unit.other.units=Outros Anos
courseunit.menu.unit=Unidade
courseunit.teachers=Corpo Docente
courseunit.objectives=Objectivos da Unidade
courseunit.programfile.invalid=O programa encontra-se submetido pela administração mas não está validado pelo CTC
courseunit.programfilepath=Programa Curricular
courseunit.programfilepath.not.available=O Programa Curricular não está disponivel
courseunit.objectives.not.available=Os objectivos não estão disponiveis
/impl/conf/app.properties
1,6 → 1,7
 
#FICHEIRO DE CONFIGURACOES
 
import.year=201213
tmp.dir=@tmp.dir@
data.dir=@data.dir@
use.ldap=@use.ldap@
9,10 → 10,9
user.session.timeout.minutes=60
site.url=@site.url@
 
import.year=201213
 
email.local.suffix=estgp.pt
email.server=localhost
email.server=127.0.0.1
email.user=
email.password=
email.from=bacodev@estgp.pt
407,6 → 407,7
 
intranet.semestre.S1=Semestre1
intranet.semestre.S2=Semestre2
intranet.semestre.A=Anual
 
intranet.setup.file=@intranet.setup.folders.file@
intranet.setup.users.filename=cursos.txt
/impl/conf/berserk/sd.xml
751,6 → 751,19
<chain name="OwnersEdit"/>
</filterChains>
</service>
 
<service>
<name>DeleteCourseUnit</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass>
<description>Update course unit objectives and program file</description>
<isTransactional>true</isTransactional>
<defaultMethod>delete</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="Supers"/>
</filterChains>
</service>
<service>
<name>LoadCourseUnit</name>
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
/impl/src/java/jomm/dao/utils/HibernateUtils.java
1,17 → 1,16
package jomm.dao.utils;
 
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.apache.log4j.Logger;
 
import java.sql.SQLException;
 
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.impl.CourseDao;
 
import java.sql.SQLException;
 
public class HibernateUtils implements Runnable{
 
// private static Session session;
/impl/src/java/pt/estgp/estgweb/Globals.java
194,6 → 194,7
 
public static final String INTRANET_SEMESTRE_S1 = ConfigProperties.getProperty("intranet.semestre.S1");
public static final String INTRANET_SEMESTRE_S2 = ConfigProperties.getProperty("intranet.semestre.S2");
public static final String INTRANET_SEMESTRE_A = ConfigProperties.getProperty("intranet.semestre.A");
 
 
public static final String INTRANET_SETUP_FILE = ConfigProperties.getProperty("intranet.setup.file");
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl
2,7 → 2,7
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:uc="http://baco.estgp.pt/schemas/courseunits/program/">
 
<xsl:param name="site">http://localhost/bacoTESTE</xsl:param>
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
60,7 → 60,11
<fo:table-row>
<fo:table-cell >
<fo:block>
 
<fo:external-graphic height="auto" width="auto"
content-height="30">
<!--<xsl:attribute name="src">url('http://www.ipportalegre.pt/imagens/Logos/ESTG/Logotipo%20ESTG.jpg')</xsl:attribute>-->
<xsl:attribute name="src">url('<xsl:value-of select="$site"/>/imgs/logoestg.gif')</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:table-cell>
 
76,34 → 80,36
<fo:static-content flow-name="footer">
 
<fo:table width="100%" table-layout="fixed" border-top="1px solid black" font-size="6.5pt" >
<fo:table-column column-width="20%"/>
<fo:table-column column-width="80%" />
<fo:table-column column-width="20%"/>
<fo:table-column column-width="80%" />
 
 
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-top="3pt">
<fo:block>
<xsl:value-of select="//uc:UnidadeCurricular/@uc:data"/> / Página <fo:page-number/>
</fo:block>
<fo:block font-size="5pt">
ESTG.SA.23-Rev.0
</fo:block>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-top="3pt">
<fo:block>
<xsl:value-of select="//uc:UnidadeCurricular/@uc:data"/> / Página <fo:page-number/>
</fo:block>
<fo:block font-size="5pt">
ESTG.SA.23-Rev.1
</fo:block>
 
</fo:table-cell>
<fo:table-cell padding-top="3pt" >
<fo:block font-size="6pt" text-align="right">
http://www.estgp.pt | gerado pela plataforma baco® 2012
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
<fo:table-cell padding-top="3pt" >
<fo:block font-size="6pt" text-align="right">
http://www.estgp.pt | gerado pela plataforma baco® 2012
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
 
 
</fo:static-content>
<fo:flow flow-name="body">
 
<fo:block>
 
<xsl:apply-templates select="//uc:UnidadeCurricular"/>
</fo:block>
</fo:flow>
154,49 → 160,416
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Ano Lectivo</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:anoLectivo"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Curso</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:curso"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Unidade Curricular</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:unidadeCurricular"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Responsável</xsl:with-param>
<xsl:with-param name="label2">[nome completo e e-mail]</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:responsavel"/> / <xsl:value-of select="//uc:responsavelEmail"/></xsl:with-param>
</xsl:call-template>
 
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Objetivos da aprendizagem (conhecimentos, apetidões e competências) a desenvolver pelos estudantes, operacionalização dos objetivos e medição do seu grau de cumprimento)</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:objetivosDaAprendizagem"/></xsl:with-param>
</xsl:call-template>
 
 
 
 
<xsl:call-template name="ects"/>
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Docente(s)/contacto</xsl:with-param>-->
<!--<xsl:with-param name="label2">[nome completo e e-mail]</xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:responsavel"/> / <xsl:value-of select="//uc:responsavelEmail"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<xsl:if test="//uc:outroDocente1/text() != ''">
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Docente(s)/contacto</xsl:with-param>
<xsl:with-param name="label2">[nome completo e e-mail]</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente1"/> / <xsl:value-of select="//uc:docenteEmail1"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//uc:outroDocente2/text() != ''">
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente2"/> / <xsl:value-of select="//uc:docenteEmail2"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//uc:outroDocente3/text() != ''">
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente3"/> / <xsl:value-of select="//uc:docenteEmail3"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//uc:outroDocente4/text() != ''">
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente4"/> / <xsl:value-of select="//uc:docenteEmail4"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Requisitos Orientadores</xsl:with-param>
<xsl:with-param name="label2">[competências à entrada; pré-requisitos; precedências]</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:preRequisitos"/></xsl:with-param>
</xsl:call-template>
 
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Conteúdos</xsl:with-param>
<xsl:with-param name="label2">[estrutura de conteúdos a desenvolver para o total de horas previsto]</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:conteudosProgramaticos"/></xsl:with-param>
</xsl:call-template>
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoCoerenciaConteudosObjectivos"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Metodologias de ensino e Aprendizagem</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:metodologiasEnsino"/></xsl:with-param>
</xsl:call-template>
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Demonstração da coerência das metodologias de ensino com os objectivos da aprendizagem da unidade curricular</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoDaCoerenciaMetodologiasObjectivos"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Língua de ensino</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:lingua1"/> <xsl:value-of select="//uc:lingua2"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine2Fields">
<xsl:with-param name="label">Avaliação</xsl:with-param>
<xsl:with-param name="label2">[indicar os componentes d sistema de avaliação, tipo, matéria e peso de cada componente na classificação final]</xsl:with-param>
<xsl:with-param name="field1">Avaliação por frequência</xsl:with-param>
<xsl:with-param name="field2">Avaliação por Exame</xsl:with-param>
<xsl:with-param name="value1"><xsl:value-of select="//uc:alunosOrdinariosPorFrequencia"/></xsl:with-param>
<xsl:with-param name="value2"><xsl:value-of select="//uc:alunosOrdinariosPorExame"/></xsl:with-param>
</xsl:call-template>
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Avaliação de Alunos ordinários por frequência</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:alunosOrdinariosPorFrequencia"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Avaliação de Alunos ordinários por exame</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:alunosOrdinariosPorExame"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Avaliação de Alunos em mobilidade e alunos com estatuto especial por frequência</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Avaliação de Alunos em mobilidade e alunos com estatuto especial por exame</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:alunosMobilidadeAlunosComEstatutoEspecialPorExame"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Bibliografia Principal</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:bibliografiaPrincipal"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Bibliografia Complementar</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:bibliografiaComplementar"/></xsl:with-param>
</xsl:call-template>
 
 
<xsl:call-template name="tableWhiteLine2Fields">
<xsl:with-param name="label">Alunos em mobilidade e alunos com estatuto especial</xsl:with-param>
<xsl:with-param name="label2"></xsl:with-param>
<xsl:with-param name="field1">Avaliação por frequência</xsl:with-param>
<xsl:with-param name="field2">Avaliação por Exame</xsl:with-param>
<xsl:with-param name="value1"><xsl:value-of select="//uc:alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia"/></xsl:with-param>
<xsl:with-param name="value2"><xsl:value-of select="//uc:alunosMobilidadeAlunosComEstatutoEspecialPorExame"/></xsl:with-param>
</xsl:call-template>
 
 
 
 
 
 
 
<!---->
<!---->
<!---->
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Adaptação das metodologias de ensino e das didácticas aos objectivos de aprendizagem das unidades curriculares</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:adaptacaoMetodologiasObjectivos"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label"> </xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:verificacaoCargaECTS"/>Verificação de que a carga média de trabalho necessária aos estudantes corresponde ao estimado em ECTS</xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Formas de garantir que a avaliação da aprendizagem dos estudantes é feita em função dos objectivos de aprendizagem da unidade curricular</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:avaliacaoFuncaoObjectivos"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Metodologias de ensino que facilitam a participação dos estudantes nas actividades cientificas</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:metodologiasFacilitamParticipacaoCientificas"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Pré-requisitos</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:preRequisitos"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Natureza opcional ou obrigatória da unidade curricular</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:obrigatoria"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableWhiteLine">-->
<!--<xsl:with-param name="label">Língua de ensino 1</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:lingua1"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
<!--<xsl:call-template name="tableGrayLine">-->
<!--<xsl:with-param name="label">Língua de ensino 2</xsl:with-param>-->
<!--<xsl:with-param name="label2"></xsl:with-param>-->
<!--<xsl:with-param name="value"><xsl:value-of select="//uc:lingua2"/></xsl:with-param>-->
<!--</xsl:call-template>-->
 
 
 
 
</xsl:template>
 
<xsl:template name="ects">
<fo:table-row background-color="#FFFFFF">
 
<fo:table-cell border-bottom="1px solid gray" border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
ECTS/tempo de trabalho (horas)
</fo:block>
</fo:table-cell>
<fo:table-cell background-color="#FFF" color="#000" border-bottom="1px solid gray" padding-right="0.1em" display-align="center">
<fo:block text-align="left" padding="3pt">
 
 
<fo:table table-layout="fixed" border="1px solid gray" margin="0.5em" font-size="8.5pt">
<fo:table-column border="1px solid gray"/>
<fo:table-column border="1px solid gray"/>
<fo:table-column border="1px solid gray"/>
<fo:table-column border="1px solid gray"/>
<fo:table-column border="1px solid gray"/>
<fo:table-column border="1px solid gray" />
<fo:table-column border="1px solid gray" />
<fo:table-column border="1px solid gray"/>
<fo:table-column border="1px solid gray"/>
<fo:table-body text-align="left">
<fo:table-row >
<fo:table-cell >
<fo:block text-align="right" padding="3pt" font-weight="bold">
ECTS
</fo:block>
</fo:table-cell>
<fo:table-cell padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
Total
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" number-columns-spanned="7">
<fo:block text-align="center" padding="3pt" font-weight="bold">
Horas de contacto semestral
</fo:block>
</fo:table-cell>
</fo:table-row>
 
<fo:table-row >
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" number-rows-spanned="2" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:ects"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" number-rows-spanned="2" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaTotal"/>
</fo:block>
</fo:table-cell>
 
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
T
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
TP
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
PL
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
S
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
TC
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
O
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
OT
</fo:block>
</fo:table-cell>
 
</fo:table-row>
 
 
<fo:table-row >
 
 
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaT"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaTP"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaPL"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaS"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaTC"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaO"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaOT"/>
</fo:block>
</fo:table-cell>
 
</fo:table-row>
</fo:table-body>
</fo:table>
 
 
</fo:block>
</fo:table-cell>
</fo:table-row>
 
 
</xsl:template>
 
<xsl:template name="tableWhiteLine">
<xsl:param name="label"/>
<xsl:param name="label2"/>
<xsl:param name="value"/>
<xsl:call-template name="tableLine">
<xsl:with-param name="label"><xsl:value-of select="$label"/></xsl:with-param>
<xsl:with-param name="label2"><xsl:value-of select="$label2"/></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="$value"/></xsl:with-param>
<xsl:with-param name="bgcolor">#FFF</xsl:with-param>
<xsl:with-param name="color">#000</xsl:with-param>
</xsl:call-template>
</xsl:template>
 
<xsl:template name="tableGrayLine">
<xsl:template name="tableWhiteLine2Fields">
<xsl:param name="label"/>
<xsl:param name="label2"/>
<xsl:param name="field1"/>
<xsl:param name="field2"/>
<xsl:param name="value1"/>
<xsl:param name="value2"/>
<xsl:call-template name="tableLine2Fields">
<xsl:with-param name="label"><xsl:value-of select="$label"/></xsl:with-param>
<xsl:with-param name="label2"><xsl:value-of select="$label2"/></xsl:with-param>
<xsl:with-param name="field1"><xsl:value-of select="$field1"/></xsl:with-param>
<xsl:with-param name="field2"><xsl:value-of select="$field2"/></xsl:with-param>
<xsl:with-param name="value1"><xsl:value-of select="$value1"/></xsl:with-param>
<xsl:with-param name="value2"><xsl:value-of select="$value2"/></xsl:with-param>
<xsl:with-param name="bgcolor">#FFF</xsl:with-param>
<xsl:with-param name="color">#000</xsl:with-param>
</xsl:call-template>
</xsl:template>
 
<xsl:template name="tableGrayLine">
<xsl:param name="label"/>
<xsl:param name="label2"/>
<xsl:param name="value"/>
<xsl:call-template name="tableLine">
<xsl:with-param name="label"><xsl:value-of select="$label"/></xsl:with-param>
<xsl:with-param name="label2"><xsl:value-of select="$label2"/></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="$value"/></xsl:with-param>
<xsl:with-param name="bgcolor">#AAA</xsl:with-param>
<xsl:with-param name="color">#FFF</xsl:with-param>
205,6 → 578,7
 
<xsl:template name="tableLine">
<xsl:param name="label"/>
<xsl:param name="label2"/>
<xsl:param name="value"/>
<xsl:param name="bgcolor"/>
<xsl:param name="color"/>
215,13 → 589,16
<xsl:attribute name="color">
<xsl:value-of select="$color"/>
</xsl:attribute>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
<xsl:value-of select="$label"/>
</fo:block>
<fo:block text-align="right" padding="3pt" font-size="6pt">
<xsl:value-of select="$label2"/>
</fo:block>
</fo:table-cell>
<fo:table-cell background-color="#FFF" color="#000" border="1px solid gray" padding-right="0.1em" display-align="center">
<fo:block text-align="left" padding="3pt">
<fo:table-cell background-color="#FFF" color="#000" border-bottom="1px solid gray" padding-right="0.1em" display-align="center">
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve">
<xsl:value-of select="$value"/>
</fo:block>
</fo:table-cell>
231,8 → 608,52
 
 
 
<xsl:template name="tableLine2Fields">
<xsl:param name="label"/>
<xsl:param name="label2"/>
<xsl:param name="field1"/>
<xsl:param name="field2"/>
<xsl:param name="value1"/>
<xsl:param name="value2"/>
<xsl:param name="bgcolor"/>
<xsl:param name="color"/>
<fo:table-row >
<xsl:attribute name="background-color">
<xsl:value-of select="$bgcolor"/>
</xsl:attribute>
<xsl:attribute name="color">
<xsl:value-of select="$color"/>
</xsl:attribute>
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
<xsl:value-of select="$label"/>
</fo:block>
<fo:block text-align="right" padding="3pt" font-size="6pt">
<xsl:value-of select="$label2"/>
</fo:block>
</fo:table-cell>
<fo:table-cell background-color="#FFF" color="#000" border-bottom="1px solid gray" padding-right="0.1em" display-align="center">
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" font-weight="bold">
1 - <xsl:value-of select="$field1"/>
</fo:block>
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve">
<xsl:value-of select="$value1"/>
</fo:block>
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" font-weight="bold">
2 - <xsl:value-of select="$field2"/>
</fo:block>
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve">
<xsl:value-of select="$value2"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
 
</xsl:template>
 
 
 
 
 
 
 
</xsl:stylesheet>
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitDirPackageService.java
1,24 → 1,24
package pt.estgp.estgweb.services.courseunits;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import jomm.utils.BytesUtils;
import jomm.utils.FilesUtils;
import jomm.utils.StringsUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.util.List;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
 
import jomm.utils.BytesUtils;
import jomm.utils.StringsUtils;
import jomm.utils.FilesUtils;
import jomm.dao.impl.AbstractDao;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
64,11 → 64,14
courseImportYearDir.mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1).mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2).mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A).mkdirs();
FilesUtils.copy(CreateCourseUnitDirPackageService.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1 + "/" + Globals.INTRANET_SETUP_FILE_NAME);
FilesUtils.copy(CreateCourseUnitDirPackageService.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2 + "/" + Globals.INTRANET_SETUP_FILE_NAME);
FilesUtils.copy(CreateCourseUnitDirPackageService.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A + "/" + 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);
String callPathA = (courseImportYearPathDos + "\\" + Globals.INTRANET_SEMESTRE_A + "\\").substring(tmpDir.length() + 1);
batRunner.write("cd " + back + callPathS1);
back = "..\\..\\..\\";
batRunner.write("\n");
78,8 → 81,13
batRunner.write("\n");
batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME);
batRunner.write("\n");
batRunner.write("cd " + back + callPathA);
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);
FileWriter confWriterA = new FileWriter(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A + "/" + Globals.INTRANET_USERS_SETUP_FILE_NAME);
 
 
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(c.getId(),importYear);
92,17 → 100,23
nowWriter = confWriterSemestre1;
semestre = Globals.INTRANET_SEMESTRE_S1;
}
else
else if(courseUnit.getSemestre().equals("S2"))
{
nowWriter = confWriterSemestre2;
semestre = Globals.INTRANET_SEMESTRE_S2;
}
else
{
nowWriter = confWriterA;
semestre = Globals.INTRANET_SEMESTRE_A;
}
 
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName());
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName;
courseUnit.setNormalizedName(normalizedName);
courseUnit.setPathIntranet(unitPath.substring(tmpDir.length()));
nowWriter.write(normalizedName);
System.out.println("GENERATING LINE: " + normalizedName);
 
if(courseUnit.getTeachers() != null)
{
120,8 → 134,12
nowWriter.write("\n");
}
}
confWriterSemestre1.flush();
confWriterSemestre2.flush();
confWriterA.flush();
confWriterSemestre1.close();
confWriterSemestre2.close();
confWriterA.close();
}
catch (IOException e)
{
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitWorksBackupService.java
112,10 → 112,14
{
semestre = Globals.INTRANET_SEMESTRE_S1;
}
else
else if(courseUnit.getSemestre().equals("S2"))
{
semestre = Globals.INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.INTRANET_SEMESTRE_A;
}
 
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName());
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName;
297,10 → 301,14
{
semestre = Globals.INTRANET_SEMESTRE_S1;
}
else
else if(courseUnit.getSemestre().equals("S2"))
{
semestre = Globals.INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.INTRANET_SEMESTRE_A;
}
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName());
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName;
copyProgram(courseUnit,unitPath,userSession);
352,10 → 360,14
{
semestre = Globals.INTRANET_SEMESTRE_S1;
}
else
else if (courseUnit.getSemestre().equals("S2"))
{
semestre = Globals.INTRANET_SEMESTRE_S2;
}
else
{
semestre = Globals.INTRANET_SEMESTRE_A;
}
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName());
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName;
copyProgram(courseUnit,unitPath,userSession);
/impl/src/java/pt/estgp/estgweb/services/courseunits/UpdateCourseUnitService.java
1,22 → 1,19
package pt.estgp.estgweb.services.courseunits;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.UserSession;
import jomm.utils.FilesUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.RepositoryFileImpl;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import org.apache.log4j.Logger;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.InputStream;
 
import jomm.utils.MessageResources;
import jomm.utils.MimeTypeGuesser;
import jomm.utils.FilesUtils;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
79,4 → 76,16
}
return loadCourseUnitService.run(cV.getId(),true,false,false,userSession);
}
 
 
public void delete(long id,
UserSession userSession)
throws ServiceException
{
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);
c.setStatus(false);
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl.rev0
New file
0,0 → 1,512
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:uc="http://baco.estgp.pt/schemas/courseunits/program/">
 
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4Vertical" page-width="210mm" page-height="297mm"
margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm"
reference-orientation="0">
<fo:region-body region-name="body" margin-top="20mm" margin-bottom="10mm" margin-right="0"
margin-left="0"/>
 
<fo:region-before region-name="header" extent="15mm"/>
<fo:region-after region-name="footer" extent="1cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="A4HorizontalRot" page-width="210mm" page-height="297mm"
margin-top="0.5cm" margin-bottom="0.5cm" margin-left="0.5cm" margin-right="0.5cm"
reference-orientation="90">
<fo:region-body region-name="body" margin-top="20mm" margin-bottom="10mm" margin-right="0"
margin-left="0"/>
<fo:region-before region-name="header" extent="15mm"/>
<fo:region-after region-name="footer" extent="1cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="A4Horizontal" page-width="297mm" page-height="210mm"
margin-top="0.5cm" margin-bottom="0.5cm" margin-left="0.5cm"
margin-right="0.5cm">
<fo:region-body region-name="body" margin-top="20mm" margin-bottom="15mm" margin-right="0"
margin-left="0"/>
<fo:region-before region-name="header" extent="15mm"/>
<fo:region-after region-name="footer" extent="1cm"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="pages">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="pages" page-position="any"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
 
<!--LAYOUT DE PAGINA ESCOLHIDO-->
<fo:page-sequence master-reference="A4Vertical" initial-page-number="auto">
<xsl:call-template name="page"/>
</fo:page-sequence>
 
 
</fo:root>
</xsl:template>
 
 
<xsl:template name="page">
<fo:static-content flow-name="header">
 
<fo:block text-align="left" >
<fo:table width="100%" table-layout="fixed" border-bottom="1px solid black">
<fo:table-column column-width="100%"/>
 
 
<fo:table-body>
<fo:table-row>
<fo:table-cell >
<fo:block>
 
</fo:block>
</fo:table-cell>
 
</fo:table-row>
 
</fo:table-body>
</fo:table>
 
</fo:block>
 
 
</fo:static-content>
<fo:static-content flow-name="footer">
 
<fo:table width="100%" table-layout="fixed" border-top="1px solid black" font-size="6.5pt" >
<fo:table-column column-width="20%"/>
<fo:table-column column-width="80%" />
 
 
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-top="3pt">
<fo:block>
<xsl:value-of select="//uc:UnidadeCurricular/@uc:data"/> / Página <fo:page-number/>
</fo:block>
<fo:block font-size="5pt">
ESTG.SA.23-Rev.0
</fo:block>
 
</fo:table-cell>
<fo:table-cell padding-top="3pt" >
<fo:block font-size="6pt" text-align="right">
http://www.estgp.pt | gerado pela plataforma baco® 2012
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
 
 
</fo:static-content>
<fo:flow flow-name="body">
<fo:block>
<xsl:apply-templates select="//uc:UnidadeCurricular"/>
</fo:block>
</fo:flow>
</xsl:template>
 
<xsl:template match="/uc:UnidadeCurricular">
<fo:table table-layout="fixed" border="0px solid black" margin="0.5em" font-size="8.5pt">
<xsl:call-template name="gen_cols"/>
<fo:table-body text-align="left">
 
<xsl:call-template name="gen_header"/>
 
<xsl:call-template name="gen_line"/>
 
</fo:table-body>
</fo:table>
</xsl:template>
 
<xsl:template name="gen_cols">
<fo:table-column column-width="15em" />
<fo:table-column/>
</xsl:template>
 
 
 
 
<xsl:template name="gen_header">
<!--<fo:table-row background-color="#000" color="#FFF" height="7mm">-->
<!--<fo:table-cell border="1px solid black" display-align="center" >-->
<!--<fo:block text-align="center" >Pos</fo:block>-->
<!--</fo:table-cell>-->
<!--<fo:table-cell border="1px solid black" display-align="center" >-->
<!--<fo:block text-align="center">Pos. Esc.</fo:block>-->
<!--</fo:table-cell>-->
<!--</fo:table-row>-->
</xsl:template>
 
 
 
 
 
 
 
 
 
 
<xsl:template name="gen_line">
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Ano Lectivo</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:anoLectivo"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Curso</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:curso"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Unidade Curricular</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:unidadeCurricular"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Responsável</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:responsavel"/> / <xsl:value-of select="//uc:responsavelEmail"/></xsl:with-param>
</xsl:call-template>
 
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Objetivos da aprendizagem (conhecimentos, apetidões e competências) a desenvolver pelos estudantes, operacionalização dos objetivos e medição do seu grau de cumprimento)</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:objetivosDaAprendizagem"/></xsl:with-param>
</xsl:call-template>
 
 
 
 
<xsl:call-template name="ects"/>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Docente(s)/contacto</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:responsavel"/> / <xsl:value-of select="//uc:responsavelEmail"/></xsl:with-param>
</xsl:call-template>
 
<xsl:if test="//uc:outroDocente1/text() != ''">
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente1"/> / <xsl:value-of select="//uc:docenteEmail1"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//uc:outroDocente2/text() != ''">
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente2"/> / <xsl:value-of select="//uc:docenteEmail2"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//uc:outroDocente3/text() != ''">
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente3"/> / <xsl:value-of select="//uc:docenteEmail3"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
<xsl:if test="//uc:outroDocente4/text() != ''">
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label"></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:outroDocente4"/> / <xsl:value-of select="//uc:docenteEmail4"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
 
 
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Conteúdos Programáticos</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:conteudosProgramaticos"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoCoerenciaConteudosObjectivos"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Metodologias de ensino</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:metodologiasEnsino"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Demonstração da coerência das metodologias de ensino com os objectivos da aprendizagem da unidade curricular</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:demonstracaoDaCoerenciaMetodologiasObjectivos"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Avaliação de Alunos ordinários por frequência</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:alunosOrdinariosPorFrequencia"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Avaliação de Alunos ordinários por exame</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:alunosOrdinariosPorExame"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Avaliação de Alunos em mobilidade e alunos com estatuto especial por frequência</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Avaliação de Alunos em mobilidade e alunos com estatuto especial por exame</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:alunosMobilidadeAlunosComEstatutoEspecialPorExame"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Bibliografia Principal</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:bibliografiaPrincipal"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Bibliografia Complementar</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:bibliografiaComplementar"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Adaptação das metodologias de ensino e das didácticas aos objectivos de aprendizagem das unidades curriculares</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:adaptacaoMetodologiasObjectivos"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label"> </xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:verificacaoCargaECTS"/>Verificação de que a carga média de trabalho necessária aos estudantes corresponde ao estimado em ECTS</xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Formas de garantir que a avaliação da aprendizagem dos estudantes é feita em função dos objectivos de aprendizagem da unidade curricular</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:avaliacaoFuncaoObjectivos"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Metodologias de ensino que facilitam a participação dos estudantes nas actividades cientificas</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:metodologiasFacilitamParticipacaoCientificas"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Pré-requisitos</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:preRequisitos"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Natureza opcional ou obrigatória da unidade curricular</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:obrigatoria"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableWhiteLine">
<xsl:with-param name="label">Língua de ensino 1</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:lingua1"/></xsl:with-param>
</xsl:call-template>
 
<xsl:call-template name="tableGrayLine">
<xsl:with-param name="label">Língua de ensino 2</xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="//uc:lingua2"/></xsl:with-param>
</xsl:call-template>
 
 
 
 
</xsl:template>
 
<xsl:template name="ects">
<fo:table-row background-color="#FFFFFF">
 
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
ECTS
</fo:block>
</fo:table-cell>
<fo:table-cell background-color="#FFF" color="#000" border="1px solid gray" padding-right="0.1em" display-align="center">
<fo:block text-align="left" padding="3pt">
 
 
<fo:table table-layout="fixed" border="1px solid black" margin="0.5em" font-size="8.5pt">
<fo:table-column border="1px solid black"/>
<fo:table-column border="1px solid black"/>
<fo:table-column border="1px solid black"/>
<fo:table-column border="1px solid black"/>
<fo:table-column border="1px solid black"/>
<fo:table-column border="1px solid black" />
<fo:table-column border="1px solid black" />
<fo:table-column border="1px solid black"/>
<fo:table-column border="1px solid black"/>
<fo:table-body text-align="left">
<fo:table-row >
<fo:table-cell>
<fo:block >
ECTS
</fo:block>
</fo:table-cell>
<fo:table-cell padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
Total
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" number-columns-spanned="7">
<fo:block text-align="center" padding="3pt" font-weight="bold">
Horas de contacto semestral
</fo:block>
</fo:table-cell>
</fo:table-row>
 
<fo:table-row >
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" number-rows-spanned="2" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:ects"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" number-rows-spanned="2" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaTotal"/>
</fo:block>
</fo:table-cell>
 
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
T
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
TP
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
PL
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
S
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
TC
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
O
</fo:block>
</fo:table-cell>
<fo:table-cell border="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
OT
</fo:block>
</fo:table-cell>
 
</fo:table-row>
 
 
<fo:table-row >
 
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaT"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaTP"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaPL"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaS"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaTC"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaO"/>
</fo:block>
</fo:table-cell>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="center" padding="3pt" font-weight="bold">
<xsl:value-of select="//uc:cargaHorariaOT"/>
</fo:block>
</fo:table-cell>
 
</fo:table-row>
</fo:table-body>
</fo:table>
 
 
</fo:block>
</fo:table-cell>
</fo:table-row>
 
 
</xsl:template>
<xsl:template name="tableWhiteLine">
<xsl:param name="label"/>
<xsl:param name="value"/>
<xsl:call-template name="tableLine">
<xsl:with-param name="label"><xsl:value-of select="$label"/></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="$value"/></xsl:with-param>
<xsl:with-param name="bgcolor">#FFF</xsl:with-param>
<xsl:with-param name="color">#000</xsl:with-param>
</xsl:call-template>
</xsl:template>
 
<xsl:template name="tableGrayLine">
<xsl:param name="label"/>
<xsl:param name="value"/>
<xsl:call-template name="tableLine">
<xsl:with-param name="label"><xsl:value-of select="$label"/></xsl:with-param>
<xsl:with-param name="value"><xsl:value-of select="$value"/></xsl:with-param>
<xsl:with-param name="bgcolor">#AAA</xsl:with-param>
<xsl:with-param name="color">#FFF</xsl:with-param>
</xsl:call-template>
</xsl:template>
 
<xsl:template name="tableLine">
<xsl:param name="label"/>
<xsl:param name="value"/>
<xsl:param name="bgcolor"/>
<xsl:param name="color"/>
<fo:table-row >
<xsl:attribute name="background-color">
<xsl:value-of select="$bgcolor"/>
</xsl:attribute>
<xsl:attribute name="color">
<xsl:value-of select="$color"/>
</xsl:attribute>
<fo:table-cell border-right="1px solid black" padding-right="0.1em" display-align="center" >
<fo:block text-align="right" padding="3pt" font-weight="bold">
<xsl:value-of select="$label"/>
</fo:block>
</fo:table-cell>
<fo:table-cell background-color="#FFF" color="#000" border="1px solid gray" padding-right="0.1em" display-align="center">
<fo:block text-align="left" padding="3pt">
<xsl:value-of select="$value"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
 
</xsl:template>
 
 
 
 
 
 
 
</xsl:stylesheet>
/impl/src/java/pt/estgp/estgweb/services/courseunits/ScheduleCourseUnitAnnouncementSmsService.java
65,11 → 65,14
courseImportYearDir.mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1).mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2).mkdirs();
new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A).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);
FilesUtils.copy(ScheduleCourseUnitAnnouncementSmsService.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A + "/" + 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);
String callPathA = (courseImportYearPathDos + "\\" + Globals.INTRANET_SEMESTRE_A + "\\").substring(tmpDir.length() + 1);
batRunner.write("cd " + back + callPathS1);
back = "..\\..\\..\\";
batRunner.write("\n");
79,8 → 82,13
batRunner.write("\n");
batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME);
batRunner.write("\n");
batRunner.write("cd " + back + callPathA);
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);
FileWriter confWriterA = new FileWriter(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A + "/" + Globals.INTRANET_USERS_SETUP_FILE_NAME);
 
 
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(c.getId(),importYear);
93,11 → 101,16
nowWriter = confWriterSemestre1;
semestre = Globals.INTRANET_SEMESTRE_S1;
}
else
else if(courseUnit.getSemestre().equals("S2"))
{
nowWriter = confWriterSemestre2;
semestre = Globals.INTRANET_SEMESTRE_S2;
}
else
{
nowWriter = confWriterA;
semestre = Globals.INTRANET_SEMESTRE_A;
}
 
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName());
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName;
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java
261,6 → 261,7
public static void main(String[] args) throws ServiceException
{
String year = DatesUtils.getImportYear();
System.out.println("YEAR:" + year);
if(args != null && args.length > 0)
year = args[0];
new ImportStudentsService().run(year);
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
49,6 → 49,7
HashMap<String, Disciplina> disciplinasMap = new HashMap<String, Disciplina>();
HashMap<String, Disciplina> disciplinasMapS1 = new HashMap<String, Disciplina>();
HashMap<String, Disciplina> disciplinasMapS2 = new HashMap<String, Disciplina>();
HashMap<String, Disciplina> disciplinasMapA = new HashMap<String, Disciplina>();
HashMap<String, Disciplina> cursosMap = new HashMap<String, Disciplina>();
 
/**
68,6 → 69,7
 
importUnitsSemestre(service, "S1", year, disciplinasMap, disciplinasMapS1, cursosMap, logMessages);
importUnitsSemestre(service, "S2", year, disciplinasMap, disciplinasMapS2, cursosMap, logMessages);
importUnitsSemestre(service, "A", year, disciplinasMap, disciplinasMapA, cursosMap, logMessages);
 
/**
* Import Courses
101,6 → 103,7
*/
updateCourseUnits(disciplinasMapS1, "S1",logMessages,year);
updateCourseUnits(disciplinasMapS2, "S2",logMessages,year);
updateCourseUnits(disciplinasMapA, "A",logMessages,year);
}
catch (Throwable e)
{
/impl/src/java/pt/estgp/estgweb/services/data/RepositoryService.java
1,22 → 1,21
package pt.estgp.estgweb.services.data;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.impl.DefaultRepositoryFile;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
 
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.Document;
 
/**
* @author Jorge Machado
* @date 4/Jun/2008
25,6 → 24,10
public class RepositoryService implements IService
{
 
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, UserSession userSession)
{
return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl,userSession.getUser());
}
/**
* @param stream .
* @param contentType .
33,16 → 36,16
* @param description .
* @param extension .
* @param accessControl .
* @param userSession .
* @param user .
* @return the identifier to retrieve the document
*/
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, UserSession userSession)
public String storeRepositoryFile(InputStream stream, String contentType, String extension, int size, String name, String description, ResourceAccessControlEnum accessControl, User user)
{
RepositoryFileImpl repositoryFile = DomainObjectFactory.createRepositoryFileImpl();
repositoryFile.setSaveDate(new Date());
repositoryFile.setDeleted(false);
repositoryFile.setAccessControl(accessControl.getKey());
repositoryFile.setOwner(userSession.getUser());
repositoryFile.setOwner(user);
DaoFactory.getRepositoryFileDaoImpl().save(repositoryFile);
 
RepositoryFileVersionImpl repositoryFileVersion = createVersion(repositoryFile);
/impl/src/java/pt/estgp/estgweb/domain/StudentImpl.java
60,6 → 60,12
{
return getUnitsSemestre("S2",getSubscribedUnitsView());
}
 
public List<CourseUnit> getSubscribedUnitsViewA()
{
return getUnitsSemestre("A",getSubscribedUnitsView());
}
 
public List<CourseUnit> getSubscribedUnitsView()
{
if(subscribedUnitsView == null)
97,6 → 103,11
{
return getUnitsSemestre("S2",getSubscribedUnitsCurrentYearView());
}
public List<CourseUnit> getSubscribedUnitsCurrentYearViewA()
{
return getUnitsSemestre("A",getSubscribedUnitsCurrentYearView());
}
 
public List<CourseUnit> getSubscribedUnitsCurrentYearView()
{
if(subscribedUnitsCurrentYearView == null)
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitProgramImpl.java
7,6 → 7,8
import org.hibernate.Session;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.utils.Dom4jUtil;
 
75,6 → 77,7
String alunosMobilidadeAlunosComEstatutoEspecialPorExame;
String demonstracaoDaCoerenciaMetodologiasObjectivos;
String bibliografiaPrincipal;
String bibliografiaComplementar;
String adaptacaoMetodologiasObjectivos;
String verificacaoCargaECTS;
String avaliacaoFuncaoObjectivos;
86,6 → 89,16
String lingua1;
String lingua2;
 
 
String cargaHorariaT;
String cargaHorariaTP;
String cargaHorariaPL;
String cargaHorariaS;
String cargaHorariaTC;
String cargaHorariaO;
String cargaHorariaOT;
String cargaHorariaTotal;
 
@Override
public String toString() {
return "CourseUnitInputLine{" +
115,10 → 128,11
", metodologiasEnsino='" + metodologiasEnsino + '\'' +
", alunosOrdinariosPorFrequencia='" + alunosOrdinariosPorFrequencia + '\'' +
", alunosOrdinariosPorExame='" + alunosOrdinariosPorExame + '\'' +
", alunosMobilidadeAlunosComEstatutoEspecialPorFrequência='" + alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia + '\'' +
", alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia='" + alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia + '\'' +
", alunosMobilidadeAlunosComEstatutoEspecialPorExame='" + alunosMobilidadeAlunosComEstatutoEspecialPorExame + '\'' +
", demonstracaoDaCoerenciaMetodologiasObjectivos='" + demonstracaoDaCoerenciaMetodologiasObjectivos + '\'' +
", bibliografiaPrincipal='" + bibliografiaPrincipal + '\'' +
", bibliografiaCompletmentar='" + bibliografiaComplementar + '\'' +
", adaptacaoMetodologiasObjectivos='" + adaptacaoMetodologiasObjectivos + '\'' +
", verificacaoCargaECTS='" + verificacaoCargaECTS + '\'' +
", avaliacaoFuncaoObjectivos='" + avaliacaoFuncaoObjectivos + '\'' +
128,6 → 142,14
", obrigatoria='" + obrigatoria + '\'' +
", lingua1='" + lingua1 + '\'' +
", lingua2='" + lingua2 + '\'' +
", cargaHorariaT='" + cargaHorariaT + '\'' +
", cargaHorariaTP='" + cargaHorariaTP + '\'' +
", cargaHorariaPL='" + cargaHorariaPL + '\'' +
", cargaHorariaS='" + cargaHorariaS + '\'' +
", cargaHorariaTC='" + cargaHorariaTC + '\'' +
", cargaHorariaOT='" + cargaHorariaOT + '\'' +
", cargaHorariaOT='" + cargaHorariaOT + '\'' +
", cargaHorariaTotal='" + cargaHorariaTotal + '\'' +
'}';
}
}
137,11 → 159,11
public static void main(String[] args) throws IOException, MalformedURLException, DocumentException, SQLException, TransformerException, FOPException {
 
List<CourseUnitInputLine> unitsLines = new ArrayList<CourseUnitInputLine>();
Document dom = parse(new FileInputStream(new File("D:\\Jorge\\Documents\\estg\\projectos\\Fichas Curriculares Baco\\APM (1).xml")));
Document dom = parse(new FileInputStream(new File("D:\\Jorge\\Documents\\estg\\projectos\\Fichas Curriculares Baco\\APM.20.dez.12.xml")));
 
Dom4jUtil.writeSout(dom);
 
List<String>[] lista = new ArrayList[43];
List<String>[] lista = new ArrayList[56];
 
Map<String,String> namespaces = new HashMap<String,String>();
namespaces.put("m","urn:schemas-microsoft-com:office:spreadsheet");
150,7 → 172,7
xPath.setNamespaceURIs(namespaces);
List<Element> rows = xPath.selectNodes(dom.getRootElement());
 
for(int r = 3; r < 46; r++)
for(int r = 3; r < 56; r++)
{
lista[r - 3] = new ArrayList<String>();
Element row = rows.get(r);
212,16 → 234,29
courseUnitInputLine.alunosMobilidadeAlunosComEstatutoEspecialPorExame = lista[29].get(unit);
courseUnitInputLine.demonstracaoDaCoerenciaMetodologiasObjectivos = lista[30].get(unit);
courseUnitInputLine.bibliografiaPrincipal = lista[31].get(unit);
courseUnitInputLine.adaptacaoMetodologiasObjectivos = lista[33].get(unit);
courseUnitInputLine.verificacaoCargaECTS = lista[34].get(unit);
courseUnitInputLine.avaliacaoFuncaoObjectivos = lista[35].get(unit);
courseUnitInputLine.metodologiasFacilitamParticipacaoCientificas = lista[36].get(unit);
courseUnitInputLine.ects = lista[38].get(unit);
courseUnitInputLine.preRequisitos = lista[39].get(unit);
courseUnitInputLine.obrigatoria = lista[40].get(unit);
courseUnitInputLine.lingua1 = lista[41].get(unit);
courseUnitInputLine.lingua2 = lista[42].get(unit);
courseUnitInputLine.bibliografiaComplementar = lista[32].get(unit);
courseUnitInputLine.adaptacaoMetodologiasObjectivos = lista[34].get(unit);
courseUnitInputLine.verificacaoCargaECTS = lista[35].get(unit);
courseUnitInputLine.avaliacaoFuncaoObjectivos = lista[36].get(unit);
courseUnitInputLine.metodologiasFacilitamParticipacaoCientificas = lista[37].get(unit);
courseUnitInputLine.ects = lista[39].get(unit);
courseUnitInputLine.preRequisitos = lista[40].get(unit);
courseUnitInputLine.obrigatoria = lista[41].get(unit);
courseUnitInputLine.lingua1 = lista[42].get(unit);
courseUnitInputLine.lingua2 = lista[43].get(unit);
 
courseUnitInputLine.cargaHorariaT = lista[45].get(unit);
courseUnitInputLine.cargaHorariaTP = lista[46].get(unit);
courseUnitInputLine.cargaHorariaPL = lista[47].get(unit);
courseUnitInputLine.cargaHorariaS = lista[48].get(unit);
courseUnitInputLine.cargaHorariaTC = lista[49].get(unit);
courseUnitInputLine.cargaHorariaO = lista[50].get(unit);
courseUnitInputLine.cargaHorariaOT = lista[51].get(unit);
courseUnitInputLine.cargaHorariaTotal = lista[52].get(unit);
 
 
 
 
if(courseUnitInputLine.semestre.equals("S1") || courseUnitInputLine.semestre.equals("S2") || courseUnitInputLine.semestre.equals("A"))
unitsLines.add(courseUnitInputLine);
else
234,10 → 269,11
// System.out.println(line.toString());
HibernateUtils.getCurrentSession().beginTransaction();
 
HibernateUtils.getCurrentSession().connection().setAutoCommit(false);
importCourseUnit(line,importYear);
 
HibernateUtils.getCurrentSession().flush();
HibernateUtils.getCurrentSession().connection().commit();
HibernateUtils.getCurrentSession().getTransaction().commit();
 
}
 
 
286,18 → 322,161
Element responsavelEmail = curriculum.addElement(new QName("responsavelEmail",namespace));
responsavelEmail.setText(line.emailDocenteResponsavel);
 
 
 
Element apresentacaoObjectivos = curriculum.addElement(new QName("objetivosDaAprendizagem",namespace));
apresentacaoObjectivos.setText(line.objetivosDaAprendizagem);
 
 
 
Element codigoSIGESDocente1 = curriculum.addElement(new QName("codigoSIGESDocente1",namespace));
codigoSIGESDocente1.setText(line.codigoSIGESDocente1);
Element outroDocente1 = curriculum.addElement(new QName("outroDocente1",namespace));
outroDocente1.setText(line.outroDocente1);
Element docenteEmail1 = curriculum.addElement(new QName("docenteEmail1",namespace));
docenteEmail1.setText(line.docenteEmail1);
 
 
Element codigoSIGESDocente2 = curriculum.addElement(new QName("codigoSIGESDocente2",namespace));
codigoSIGESDocente2.setText(line.codigoSIGESDocente2);
Element outroDocente2 = curriculum.addElement(new QName("outroDocente2",namespace));
outroDocente2.setText(line.outroDocente2);
Element docenteEmail2 = curriculum.addElement(new QName("docenteEmail2",namespace));
docenteEmail2.setText(line.docenteEmail2);
 
Element codigoSIGESDocente3 = curriculum.addElement(new QName("codigoSIGESDocente3",namespace));
codigoSIGESDocente3.setText(line.codigoSIGESDocente2);
Element outroDocente3 = curriculum.addElement(new QName("outroDocente3",namespace));
outroDocente3.setText(line.outroDocente3);
Element docenteEmail3 = curriculum.addElement(new QName("docenteEmail3",namespace));
docenteEmail3.setText(line.docenteEmail3);
 
 
Element codigoSIGESDocente4 = curriculum.addElement(new QName("codigoSIGESDocente4",namespace));
codigoSIGESDocente4.setText(line.codigoSIGESDocente4);
Element outroDocente4 = curriculum.addElement(new QName("outroDocente4",namespace));
outroDocente4.setText(line.outroDocente4);
Element docenteEmail4 = curriculum.addElement(new QName("docenteEmail4",namespace));
docenteEmail4.setText(line.docenteEmail4);
 
 
Element conteudosProgramaticos = curriculum.addElement(new QName("conteudosProgramaticos",namespace));
conteudosProgramaticos.setText(line.conteudosProgramaticos);
 
Element demonstracaoCoerenciaConteudosObjectivos = curriculum.addElement(new QName("demonstracaoCoerenciaConteudosObjectivos",namespace));
demonstracaoCoerenciaConteudosObjectivos.setText(line.demonstracaoCoerenciaConteudosObjectivos);
 
Element metodologiasEnsino = curriculum.addElement(new QName("metodologiasEnsino",namespace));
metodologiasEnsino.setText(line.metodologiasEnsino);
 
Element alunosOrdinariosPorFrequencia = curriculum.addElement(new QName("alunosOrdinariosPorFrequencia",namespace));
alunosOrdinariosPorFrequencia.setText(line.alunosOrdinariosPorFrequencia);
 
Element alunosOrdinariosPorExame = curriculum.addElement(new QName("alunosOrdinariosPorExame",namespace));
alunosOrdinariosPorExame.setText(line.alunosOrdinariosPorExame);
 
Element alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia = curriculum.addElement(new QName("alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia",namespace));
alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia.setText(line.alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia);
 
Element alunosMobilidadeAlunosComEstatutoEspecialPorExame = curriculum.addElement(new QName("alunosMobilidadeAlunosComEstatutoEspecialPorExame",namespace));
alunosMobilidadeAlunosComEstatutoEspecialPorExame.setText(line.alunosMobilidadeAlunosComEstatutoEspecialPorExame);
 
 
Element demonstracaoDaCoerenciaMetodologiasObjectivos = curriculum.addElement(new QName("demonstracaoDaCoerenciaMetodologiasObjectivos",namespace));
demonstracaoDaCoerenciaMetodologiasObjectivos.setText(line.demonstracaoDaCoerenciaMetodologiasObjectivos);
 
 
Element bibliografiaPrincipal = curriculum.addElement(new QName("bibliografiaPrincipal",namespace));
bibliografiaPrincipal.setText(line.bibliografiaPrincipal);
 
Element bibliografiaComplementar = curriculum.addElement(new QName("bibliografiaComplementar",namespace));
bibliografiaComplementar.setText(line.bibliografiaComplementar);
 
Element adaptacaoMetodologiasObjectivos = curriculum.addElement(new QName("adaptacaoMetodologiasObjectivos",namespace));
adaptacaoMetodologiasObjectivos.setText(line.adaptacaoMetodologiasObjectivos);
 
Element verificacaoCargaECTS = curriculum.addElement(new QName("verificacaoCargaECTS",namespace));
verificacaoCargaECTS.setText(line.verificacaoCargaECTS);
 
Element avaliacaoFuncaoObjectivos = curriculum.addElement(new QName("avaliacaoFuncaoObjectivos",namespace));
avaliacaoFuncaoObjectivos.setText(line.avaliacaoFuncaoObjectivos);
 
Element metodologiasFacilitamParticipacaoCientificas = curriculum.addElement(new QName("metodologiasFacilitamParticipacaoCientificas",namespace));
metodologiasFacilitamParticipacaoCientificas.setText(line.metodologiasFacilitamParticipacaoCientificas);
 
Element ects = curriculum.addElement(new QName("ects",namespace));
ects.setText(line.ects);
 
 
Element preRequisitos = curriculum.addElement(new QName("preRequisitos",namespace));
preRequisitos.setText(line.preRequisitos);
 
Element obrigatoria = curriculum.addElement(new QName("obrigatoria",namespace));
obrigatoria.setText(line.obrigatoria);
 
Element lingua1 = curriculum.addElement(new QName("lingua1",namespace));
lingua1.setText(line.lingua1);
 
Element lingua2 = curriculum.addElement(new QName("lingua2",namespace));
lingua2.setText(line.lingua2);
 
Element cargaHorariaT = curriculum.addElement(new QName("cargaHorariaT",namespace));
cargaHorariaT.setText(line.cargaHorariaT);
Element cargaHorariaTP = curriculum.addElement(new QName("cargaHorariaTP",namespace));
cargaHorariaTP.setText(line.cargaHorariaTP);
Element cargaHorariaPL = curriculum.addElement(new QName("cargaHorariaPL",namespace));
cargaHorariaPL.setText(line.cargaHorariaPL);
Element cargaHorariaS = curriculum.addElement(new QName("cargaHorariaS",namespace));
cargaHorariaS.setText(line.cargaHorariaS);
Element cargaHorariaTC = curriculum.addElement(new QName("cargaHorariaTC",namespace));
cargaHorariaTC.setText(line.cargaHorariaTC);
Element cargaHorariaO = curriculum.addElement(new QName("cargaHorariaO",namespace));
cargaHorariaO.setText(line.cargaHorariaO);
Element cargaHorariaOT = curriculum.addElement(new QName("cargaHorariaOT",namespace));
cargaHorariaOT.setText(line.cargaHorariaOT);
 
Element cargaHorariaTotal = curriculum.addElement(new QName("cargaHorariaTotal",namespace));
cargaHorariaTotal.setText(line.cargaHorariaTotal);
 
 
 
 
 
 
 
 
 
 
 
Dom4jUtil.writeSout(responseDoc);
System.out.println("");
 
 
FileOutputStream teste = new FileOutputStream("D:\\Jorge\\Documents\\estg\\projectos\\Fichas Curriculares Baco\\APM (1).pdf");
PdfUtils.createPdfFromXml(new DOMSource(Dom4jUtil.toW3c(responseDoc)), "pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl", teste);
String path = Globals.TMP_DIR + File.separator + "cu.pdf";
FileOutputStream teste = new FileOutputStream(path);
Map<String,Object> params = new HashMap<String,Object>();
params.put("site", Globals.SITE_URL);
PdfUtils.createPdfFromXml(new DOMSource(Dom4jUtil.toW3c(responseDoc)), "pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl", teste,params);
teste.flush();
teste.close();
 
 
RepositoryService repositoryService = new RepositoryService();
User owner = null;
if(cu.getTeachers() != null && cu.getTeachers().size() > 0)
owner = cu.getTeachers().iterator().next();
else
owner = DaoFactory.getUserDaoImpl().load(1);
if(cu.getProgramStreamId() == null)
{
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + ".pdf", "courseunit.program.description" + cu.getName(), ResourceAccessControlEnum.publicDomain,owner);
cu.setProgramStreamId(identifier);
}
else
{
repositoryService.updateRepositoryFile(cu.getProgramStreamId(), new FileInputStream(path), "application/pdf", "pdf", ((int)new File(path).length()),cu.getCode() + ".pdf", "courseunit.program.description " + cu.getName(), ResourceAccessControlEnum.publicDomain);
}
//Obrigar a ser falso
cu.setValidProgram(false);
}
 
private static void setTeachers(CourseUnit cu, CourseUnitInputLine line)
364,15 → 543,15
}
 
private static void persistCourseUnitProgram(CourseUnit cu, CourseUnitInputLine line) throws IOException, TransformerException, FOPException {
Session sess = HibernateUtils.getCurrentSession();
Session sess = HibernateUtils.getCurrentSession();
 
CourseUnitProgram program = cu.getCourseUnitProgram();
if(program == null)
{
program = new CourseUnitProgramImpl();
program.setSaveDate(new java.util.Date());
sess.save(program);
cu.setCourseUnitProgram(program);
sess.save(program);
}
program.setAdaptacaoObjectivosMetodologia(line.adaptacaoMetodologiasObjectivos);
program.setAvaliacaoEspeciaisFrequencia(line.alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia);
380,6 → 559,7
program.setAvaliacaoOrdinariosFrequencia(line.alunosOrdinariosPorFrequencia);
program.setAvaliacaoOrdinariosExame(line.alunosOrdinariosPorExame);
program.setBibliografia(line.bibliografiaPrincipal);
program.setBibliografiaComplementar(line.bibliografiaComplementar);
program.setConteudos(line.conteudosProgramaticos);
program.setDemonstracaoCargaEcts(line.verificacaoCargaECTS);
program.setDemonstracaoObjectivosMetodologia(line.demonstracaoDaCoerenciaMetodologiasObjectivos);
/impl/src/java/pt/estgp/estgweb/domain/TeacherImpl.java
1,16 → 1,15
package pt.estgp.estgweb.domain;
 
import jomm.utils.StringsUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.utils.RoleManager;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
 
import java.util.ArrayList;
import java.util.List;
import java.util.ArrayList;
 
import org.apache.log4j.Logger;
import jomm.utils.StringsUtils;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
65,6 → 64,10
{
return getUnitsSemestre("S2",getTeachedUnitsView());
}
public List<CourseUnit> getTeachedUnitsViewA()
{
return getUnitsSemestre("A",getTeachedUnitsView());
}
public List<CourseUnit> getTeachedUnitsView()
{
if(teachedUnitsView == null)
102,6 → 105,10
{
return getUnitsSemestre("S2",getTeachedUnitsCurrentYearView());
}
public List<CourseUnit> getTeachedUnitsCurrentYearViewA()
{
return getUnitsSemestre("A",getTeachedUnitsCurrentYearView());
}
public List<CourseUnit> getTeachedUnitsCurrentYearView()
{
if(teachedUnitsCurrentYearView == null)
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java
217,7 → 217,7
.add(eq("status", true))
.add(coSubTargets)
.setMaxResults(maxAnnouncements)
.addOrder(Order.desc("saveDate"));
.addOrder(Order.asc("expireDate"));
return criteria.list();
}
 
308,7 → 308,7
.add(or(or(gt("expireDate", now), eq("expireDate", now)), isNull("expireDate")))
.add(eq("status", true))
.add(coSubTargets)
.addOrder(Order.desc("saveDate"));
.addOrder(Order.asc("expireDate"));
return criteria;
}
 
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsAdminController.java
31,9 → 31,9
 
 
public ActionForward createIntranetFolders(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
62,9 → 62,9
}
 
public ActionForward createAllCourseUnitWorksBackup(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
93,38 → 93,38
}
 
public ActionForward createImportYearCourseUnitWorksBackup(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
{
try
{
String importYear = request.getParameter("importYear");
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{importYear};
String tmpFile = (String) sm.execute(RequestUtils.getRequester(request, response), "CreateImportYearCourseUnitWorksBackup", args, names);
request.getRequestDispatcher("/tmpStream/" + tmpFile).forward(request,response);
return null;
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
String importYear = request.getParameter("importYear");
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] args = new Object[]{importYear};
String tmpFile = (String) sm.execute(RequestUtils.getRequester(request, response), "CreateImportYearCourseUnitWorksBackup", args, names);
request.getRequestDispatcher("/tmpStream/" + tmpFile).forward(request,response);
return null;
}
catch (FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (NotFoundException e)
{
return mapping.findForward("error404");
}
catch (Throwable e)
{
logger.error(e, e);
return mapping.findForward("error500");
}
}
 
 
 
public ActionForward createOrUpdateAdmin(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
197,9 → 197,9
}
 
public ActionForward addTeacher(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
236,9 → 236,9
}
 
public ActionForward addStudent(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
275,9 → 275,9
}
 
public ActionForward removeTeacher(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
312,9 → 312,9
}
 
public ActionForward removeStudent(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
try
362,6 → 362,33
return mapping.findForward("load");
}
 
public ActionForward delete(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws ServletException
{
 
try {
// long id = Long.parseLong(request.getParameter("id"));
// IServiceManager sm = null;
// sm = ServiceManager.getInstance();
// String[] names = new String[]{};
// Object[] args = new Object[]{id};
 
// sm.execute(RequestUtils.getRequester(request, response), "DeleteCourseUnit", args, names);
 
// addMessage(request,"courseunit.removed");
logger.info("Não implementado por razoes de segurança");
addMessage(request,"courseunit.security.not.implemented");
} catch (Throwable e) {
addMessage(request,"error.500");
logger.error(e,e);
}
 
return mapping.getInputForward();
}
 
public ActionForward search(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
396,4 → 423,6
 
 
 
 
 
}
/impl/src/updates/db/update11Programs.sql
1,7 → 1,7
 
ALTER TABLE `courseunit` ADD COLUMN `courseUnitProgram` BIGINT(20) AFTER `validProgram`;
 
create table courseunitprogram (id bigint not null auto_increment, discrimitator varchar(255) not null, updateDate datetime not null, saveDate datetime, objectivos text, conteudos text,demonstracaoCoerenciaConteudos text, metodologiasEnsino text, avaliacaoOrdinariosFrequencia text, avaliacaoOrdinariosExame text, avaliacaoEspeciaisFrequencia text, avaliacaoEspeciaissExame text, demonstracaoObjectivosMetodologia text, bibliografia text, adaptacaoObjectivosMetodologia text, demonstracaoCargaEcts text, garantiaAvaliacaoFuncaObjectivos text, metodologiasActividadeCientifica text, ects varchar(255), prerequisitos text, obrigatoria varchar(255), lingua1 varchar(255), lingua2 varchar(255), primary key (id));
create table courseunitprogram (id bigint not null auto_increment, discrimitator varchar(255) not null, updateDate datetime not null, saveDate datetime, objectivos text, conteudos text,demonstracaoCoerenciaConteudos text, metodologiasEnsino text, avaliacaoOrdinariosFrequencia text, avaliacaoOrdinariosExame text, avaliacaoEspeciaisFrequencia text, avaliacaoEspeciaissExame text, demonstracaoObjectivosMetodologia text, bibliografia text, bibliografiaComplementar text, adaptacaoObjectivosMetodologia text, demonstracaoCargaEcts text, garantiaAvaliacaoFuncaObjectivos text, metodologiasActividadeCientifica text, ects varchar(255), prerequisitos text, obrigatoria varchar(255), lingua1 varchar(255), lingua2 varchar(255), primary key (id)) ENGINE=Innodb DEFAULT CHARSET=latin1;
 
alter table courseunit add index FK9486341F2DE085C4 (courseUnitProgram), add constraint FK9486341F2DE085C4 foreign key (courseUnitProgram) references courseunitprogram (id);
 
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml
188,6 → 188,7
<property name="avaliacaoEspeciaissExame" type="text"/>
<property name="demonstracaoObjectivosMetodologia" type="text"/>
<property name="bibliografia" type="text"/>
<property name="bibliografiaComplementar" type="text"/>
<property name="adaptacaoObjectivosMetodologia" type="text"/>
<property name="demonstracaoCargaEcts" type="text"/>
<property name="garantiaAvaliacaoFuncaObjectivos" type="text"/>
/impl/src/web/imgs/logoestg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/impl/src/web/admin/courseunits/courseunit.jsp
64,6 → 64,7
<html:select property="courseUnitView.semestre">
<html:option value="S1">S1</html:option>
<html:option value="S2">S2</html:option>
<html:option value="A">A</html:option>
</html:select>
</td>
</tr>
/impl/src/web/user/courseunits/courseunit.jsp
63,9 → 63,11
<h2><bean:message key="courseunit.programfilepath"/></h2>
<p>
<baco:canManage name="CourseUnitView">
<!--
<logic:equal value="false" name="CourseUnitView" property="validProgram">
<html:file property="programFile"/>
</logic:equal>
-->
<logic:present name="CourseUnitView" property="programStreamId">
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><bean:message key="courseunit.programfilepath"/></a> (${CourseUnitView.programSize} Kb)
<logic:equal value="true" name="CourseUnitView" property="validProgram">
87,6 → 89,12
<bean:message key="courseunit.programfilepath.not.available"/>
</logic:notPresent>
 
<logic:present name="CourseUnitView" property="programStreamId">
<logic:equal value="false" name="CourseUnitView" property="validProgram">
<bean:message key="courseunit.programfile.invalid"/>
</logic:equal>
</logic:present>
 
</p>
</baco:isAuthenticated>
 
/impl/src/web/user/home/student.jsp
236,6 → 236,44
</logic:notEmpty>
</logic:present>
</li>
 
 
<li>
<p><bean:message key="courseunit.semestre"/> (Anuais)</p>
<logic:present name="UserSession" property="user.subscribedUnitsCurrentYearViewA">
<logic:empty name="UserSession" property="user.subscribedUnitsCurrentYearViewA">
<bean:message key="courseunit.zero.units"/>
</logic:empty>
</logic:present>
<logic:present name="UserSession" property="user.subscribedUnitsCurrentYearViewA">
<logic:notEmpty name="UserSession" property="user.subscribedUnitsCurrentYearViewA">
<ul>
<logic:iterate id="unit" name="UserSession" property="user.subscribedUnitsCurrentYearViewA" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<%
String courseCode = "";
if(unit.getCourse() != null)
{
String courseName = unit.getCourse().getName();
String[] words = courseName.split(" ");
for(String word: words)
{
if(word != null && word.length() > 3 && word.charAt(0) >= 'A' && word.charAt(0) <= 'Z' )
{
courseCode += word.charAt(0);
}
}
}
 
%>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (<%=courseCode%><%//${unit.courseName} (${unit.courseCode})%>) </html:link>
<html:link action="/user/startLoadCourseUnitRootFromHome?courseUnitView.id=${unit.id}"> <img border="0" alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"></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>
/impl/src/web/user/home/teacher.jsp
95,6 → 95,42
</logic:notEmpty>
</logic:present>
</li>
<li>
<p><bean:message key="courseunit.semestre"/> (Anual)</p>
<logic:present name="UserSession" property="user.teachedUnitsCurrentYearViewA">
<logic:empty name="UserSession" property="user.teachedUnitsCurrentYearViewA">
<bean:message key="courseunit.zero.units"/>
</logic:empty>
</logic:present>
<logic:present name="UserSession" property="user.teachedUnitsCurrentYearViewA">
<logic:notEmpty name="UserSession" property="user.teachedUnitsCurrentYearViewA">
<ul>
<logic:iterate id="unit" name="UserSession" property="user.teachedUnitsCurrentYearViewA" type="pt.estgp.estgweb.domain.CourseUnit">
<li>
<%
String courseCode = "";
if(unit.getCourse() != null)
{
String courseName = unit.getCourse().getName();
String[] words = courseName.split(" ");
for(String word: words)
{
if(word != null && word.length() > 3 && word.charAt(0) >= 'A' && word.charAt(0) <= 'Z' )
{
courseCode += word.charAt(0);
}
}
}
 
%>
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}))</html:link>
<html:link action="/user/startLoadCourseUnitRootFromHome?courseUnitView.id=${unit.id}"><img border="0" alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"></html:link>
</li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</li>
</ul>
</div>
<div class="block">
/impl/build.xml
178,6 → 178,7
<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="**/*.gif"/>
<fileset dir="${build.dir.classes}" includes="**/*.xsd"/>
<fileset dir="${build.dir.classes}" includes="**/*.xsl"/>
</copy>
266,6 → 267,7
<include name="**/*.properties"/>
<include name="**/*.txt"/>
<include name="**/*.xml"/>
<include name="**/*.gif"/>
<include name="**/*.exe"/>
<include name="**/*.xsl"/>
<include name="**/*.xsd"/>
344,6 → 346,9
<fileset dir="${src.dir}" includes="**/*.xsl"/>
</copy>
<copy overwrite="true" todir="${build.dir.classes}">
<fileset dir="${src.dir}" includes="**/*.gif"/>
</copy>
<copy overwrite="true" todir="${build.dir.classes}">
<fileset dir="${src.dir}" includes="**/*.csv"/>
</copy>
<copy overwrite="true" todir="${build.dir.classes}">
/common/fop/fop.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/fop/xalan-2.7.0.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/fop/xml-apis-ext-1.3.04.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/fop/avalon-framework-4.2.0.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/fop/xmlgraphics-commons-1.4.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/fop/serializer-2.7.0.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/fop/xml-apis-1.3.04.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/fop/commons-logging-1.0.4.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/fop/commons-io-1.3.1.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/fop/dom4j-1.6.1.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/fop/xercesImpl-2.7.1.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/fop/batik-all-1.7.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/dom4j/dom4j-1.4.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/common/dom4j/dom4j-1.6.1.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream