/impl/importRoutines.xml |
---|
7,24 → 7,28 |
<target name="courses"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportCourseService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
</java> |
</target> |
<target name="sincronizeunits"> |
<java classname="pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
<arg value="true"/> |
<arg value="true"/> |
</java> |
</target> |
<target name="teachers"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportTeachersService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
</java> |
</target> |
<target name="students"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportStudentsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
<!--<arg value="201314"/>--> |
<arg value="201415"/> |
</java> |
</target> |
<target name="grades"> |
51,4 → 55,8 |
<arg value="false"/> |
</java> |
</target> |
<target name="storeAllProgramsFtp"> |
<java classname="pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/> |
</target> |
</project> |
/impl/conf/language/MessageResourcesIntranet.properties |
---|
22,6 → 22,7 |
intranet.separator.utils=Utilitários |
intranet.separator.utils.back=Voltar aos Utilitários |
intranet.separator.contacts=Contactos |
intranet.separator.courseunits=Perfil |
intranet.contacts.lists=@Listas de Distribuição |
intranet.contacts.labs=Laboratórios |
/impl/conf/language/MessageResourcesCourse.properties |
---|
27,7 → 27,7 |
course.studies.plan.not.available=Não disponivel |
course.courseunit.program.objectives.todo={0} Unidades em Falta (programa) |
course.externalSite=Site Externo |
course.studies.plan=Plano de Estudos |
#course.studies.plan=Plano de Estudos |
course.directed.coordinated.courses=Gestão de Unidades Curriculares |
course.directed.coordinated.courses.updated.success={0} unidades curriculares actualizadas com sucesso |
39,6 → 39,7 |
course.C=Acções de Formação de Curta Duração |
course.A=Formações Avançadas |
course.O=Outras Formações |
course.T=TeSP |
course.Bs=Bacharelatos |
course.Ls=Licenciaturas |
60,15 → 61,15 |
course.program.courses=Programas Curriculares por Curso |
course.program.coordinated.directed.courses=Programas Curriculares dos Cursos Coordenados e/ou dirigidos |
course.program.courses.choose.year=Escolha o ano que deseja consultar |
course.userGroupStudents=Grupo atribuido aos Alunos na Rede (Criação Pastas DTP) |
#courseunit.programfile.valid=programa <u>Aprovado</u> pela Comissão de Curso |
courseunit.programfile.valid=programa <u>Aprovado</u> pela Comissão de Curso |
courses.all=Todos os Cursos |
course.validation.role=Comissão de Curso para validação de Programas |
/impl/conf/language/MessageResources.properties |
---|
158,6 → 158,7 |
fail.owner=Lamentamos o incómodo, mas não tem permissões sobre o objecto ao qual tentou aceder. |
fail.timer=Lamentamos o incomodo, mas a acção que tentou efectuar não pode ser executada nesta data. |
fail.authenticate=O nome de utilizador ou a palavra passe estão errados. Por favor tente de novo. |
dontexist.authenticate=O utilizador já existe na rede interna mas ainda não está disponivel no sistema BACO, por favor dirija-se ao Centro Informático. |
#palavras comuns |
courseunit=Unidade Curricular |
/impl/conf/language/MessageResourcesCourseUnits.properties |
---|
101,6 → 101,7 |
courseunit.menu.presences=Assiduidade |
courseunit.menu.contents=Conte\u00fados |
courseunit.menu.grades=Avalia\u00e7\u00e3o |
courseunit.menu.dtp=DTP |
replace=Substituir |
169,6 → 170,7 |
courseunit.evaluation=Ficha de Avalia\u00e7\u00e3o da Unidade Curricular |
courseunit.evaluation.warning=Por favor v\u00e1 guardando a sua ficha no bot\u00e3o de Salvar para evitar que caso a sess\u00e3o expire perca o seu trabalho. |
courseunit.evaluation.mapa1=Mapa 1 |
courseunit.evaluation.mapa1.desc=Dados relativos ao processo de avalia\u00e7\u00e3o |
courseunit.menu.evaluation=Relat\u00f3rio de Avalia\u00e7\u00e3o |
176,6 → 178,13 |
courseunit.consultaroutros=Consultar outros programas |
courseunit.confirmaclonagem=Tem a certeza que deseja clonar o programa do ano na caixa de selecção para este programa actualmente aberto para edição? Vai gerar uma nova versão de programa e a anterior será arquivada em PDF. |
courseunit.dossier.tecnico.pedagogico=Dossier T\u00E9cnico Pedag\u00F3gico |
/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
66,6 → 66,7 |
<action path="/user/startLoadCourseUnitEvaluation" forward="/user/courseUnitEvaluationController.do?dispatch=editEvaluation"/> |
<action path="/user/courseUnitEvaluationController" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsEvaluationController" |
name="CourseUnitEvaluationForm" |
83,6 → 84,7 |
<action path="/user/startLoadCourseUnitContentsFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadContents&from=Home"/> |
<action path="/user/startLoadCourseUnitGradesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadGrades&from=Home"/> |
<action path="/user/startLoadCourseUnitPresencesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadPresences&from=Home"/> |
<action path="/user/startLoadCourseUnitDtpFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadDtp&from=Home"/> |
<action path="/user/startCourseUnitBlogFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=startBlog&from=CourseUnit"/> |
<action path="/user/startLoadCourseUnitAssignementFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadAssignement&from=Home"/> |
<action path="/user/startValidateInvalidateCourseUnitWorksFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=validateInvalidateAssignement&from=Home"/> |
94,6 → 96,8 |
<action path="/user/startLoadTeacherCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadTeacher&from=Home"/> |
<action path="/user/startLoadStudentCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStudent&from=Home"/> |
<action path="/user/startLoadCourseUnitDossierFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadDossier&from=Home"/> |
<action path="/user/startLoadCourseUnitSigesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadCourseUnitWebSiteBySigesCodes&from=Home"/> |
112,6 → 116,8 |
<forward name="submit" path="page.submit.courseunit.from.home"/> |
<forward name="load.teacher" path="page.load.courseunit.teacher.from.home"/> |
<forward name="load.student" path="page.load.courseunit.student.from.home"/> |
<forward name="load.dossier" path="page.load.courseunit.dossier.tecnico.pedagogico"/> |
</action> |
/impl/conf/WEB-INF/struts/tiles-courseunits.xml |
---|
115,6 → 115,9 |
<definition name="page.courseLayoutIOnlinePresences.proxy.ftp" extends="page.courseLayoutIOnline.proxy.ftp"> |
<put name="topnav" value="/user/home/topnavCourseUnitPresences.jsp"/> |
</definition> |
<definition name="page.courseLayoutIOnlineDtp.proxy.ftp" extends="page.courseLayoutIOnline.proxy.ftp"> |
<put name="topnav" value="/user/home/topnavCourseUnitDtp.jsp"/> |
</definition> |
165,7 → 168,16 |
<!-- Dossier Tecnico Pedagogico --> |
<definition name="page.load.courseunit.dossier.tecnico.pedagogico" extends="page.separators.home"> |
<put name="title" value="Dossier Técnico Pedagógico"/> |
<put name="topnav" value="/user/courseunits/topnavDossierTecnicoPedagogico.jsp"/> |
<put name="left" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/dossierTecnicoPedagogico.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/WEB-INF/struts/struts-default.xml |
---|
20,6 → 20,7 |
<global-forwards> |
<forward name="welcome" path="/Welcome.do"/> |
<forward name="welcomeBootstrap" path="/WelcomeBootstrap.do"/> |
<forward name="error503" path="/error503.do"/> |
<forward name="error500" path="/error500.do"/> |
<forward name="error404" path="/error404.do"/> |
39,6 → 40,7 |
<!-- Start Pages --> |
<action path="/Welcome" forward="page.welcome"/> |
<action path="/WelcomeBootstrap" forward="page.welcome.bootstrap"/> |
<action path="/StartAuthentication" forward="page.authentication"/> |
<action path="/Logout" forward="/authenticate.do?dispatch=logout"/> |
142,6 → 144,7 |
<forward name="courseLayoutIOnlineContents.ftp" path="page.courseLayoutIOnlineContents.proxy.ftp"/> |
<forward name="courseLayoutIOnlineGrades.ftp" path="page.courseLayoutIOnlineGrades.proxy.ftp"/> |
<forward name="courseLayoutIOnlinePresences.ftp" path="page.courseLayoutIOnlinePresences.proxy.ftp"/> |
<forward name="courseLayoutIOnlineDtp.ftp" path="page.courseLayoutIOnlineDtp.proxy.ftp"/> |
<forward name="layoutIntranetUtils" path="page.layoutIntranetUtils.proxy"/> |
<forward name="layoutIntranetContacts" path="page.layoutIntranetContacts.proxy"/> |
/impl/conf/WEB-INF/struts/tiles-default.xml |
---|
68,12 → 68,40 |
</definition> |
<!-- Layout Old --> |
<definition name="base.layoutWelcome" extends="base.definition" path="/layout/layoutWelcome.jsp"> |
<put name="navigationLeft" value="/layout/navigationLeft.jsp" /> |
<put name="navigationRight" value="/layout/navigationRight.jsp" /> |
</definition> |
<!-- Testes com Layout Novo Bootstrap --> |
<definition name="base.layoutWelcomeBootstrap" path="/layout/layoutWelcomeBootstrap.jsp"> |
<put name="title" value="x"/> |
<put name="announcements" value="/layout/topnavempty.jsp"/> |
<put name="header" value="/layout/header.jsp"/> |
<put name="topnav" value="/layout/topnavempty.jsp" /> |
<put name="footer" value="/layout/footer.jsp" /> |
<put name="navigationTop" value="/layout/navigationTop.jsp"/> |
<put name="navigationLeft" value="/layout/navigationLeft.jsp" /> |
<put name="navigationRight" value="/layout/navigationRight.jsp" /> |
</definition> |
<!--Pagina inicial--> |
<!-- welcome OLD --> |
<definition name="page.welcome" extends="base.layoutWelcome"> |
<put name="title" value="ESTG" /> |
<put name="body" value="/public/index.jsp" /> |
</definition> |
<!-- welcome NEW bootstrap --> |
<definition name="page.welcome.bootstrap" extends="base.layoutWelcomeBootstrap"> |
<put name="title" value="ESTG" /> |
<put name="body" value="/public/indexBootstrap.jsp" /> |
</definition> |
<definition name="base.layoutCourses" extends="base.definition" path="/layout/layout1.jsp"> |
<put name="topnav" value="/user/courses/topnavCourses.jsp"/> |
<put name="navigation" value="/layout/navigationCourse.jsp" /> |
358,13 → 386,9 |
<!--Pagina inicial--> |
<definition name="page.welcome" extends="base.layoutWelcome"> |
<put name="title" value="ESTG" /> |
<put name="body" value="/public/index.jsp" /> |
</definition> |
<!-- Autenticacao --> |
<definition name="page.authentication" extends="base.layout1"> |
<put name="title" value="Authentication" /> |
/impl/conf/WEB-INF/tlds/baco.tld |
---|
252,4 → 252,28 |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>object2Request</name> |
<tagclass>pt.estgp.estgweb.web.tags.Object2RequestTag</tagclass> |
<attribute> |
<name>beanIdName</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>beanIdProperty</name> |
<required>false</required> |
<rtexprvalue>false</rtexprvalue> |
</attribute> |
<attribute> |
<name>classname</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>useBean</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/impl/conf/app.properties |
---|
1,7 → 1,7 |
#FICHEIRO DE CONFIGURACOES |
import.year=201314 |
import.year=201415 |
tmp.dir=@tmp.dir@ |
data.dir=@data.dir@ |
use.ldap=@use.ldap@ |
461,8 → 461,24 |
intranet.contents.dir=Conteudos |
intranet.grades.dir=Avaliacao |
intranet.presences.dir=Assiduidade |
intranet.dtp.dir=DTP |
intranet.dtp.planeamento=1.Planeamento |
intranet.dtp.ficha_curricular=2.Ficha.Curricular |
intranet.dtp.sumarios=3.Sumarios |
intranet.dtp.avaliacao=4.Avaliacao |
intranet.dtp.avaliacao.enunciados=4.1.Enunciados |
intranet.dtp.avaliacao.pautas=4.2.Pautas |
intranet.dtp.ficha_avaliacao=5.Relatorio.de.Avaliacao |
intranet.dtp.inquerito_pedagogico=6.Inquerito.Pedagogico |
intranet.dtp.course.coordinator.write=true |
intranet.dtp.course.director.write=true |
intranet.dtp.course.unit.responsible.write=true |
##COLOCAR AQUI AS DEFINICOES DO DTP |
######################################################################### |
# |
#PopService |
/impl/conf/template/email/unidadeValidada_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {0} |
foi aprovada pela comissão de curso |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/courseUnitWork_pt.txt |
---|
15,7 → 15,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitWorkChange_pt.txt |
---|
19,7 → 19,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitBlogPost_pt.txt |
---|
14,7 → 14,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/courseUnitAnnouncement_pt.txt |
---|
15,7 → 15,8 |
{2} |
Com os melhores cumprimentos {3} |
Cumprimentos |
{3} |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/unidadeEdicao_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {0} |
se encontra disponivel para edição |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/sendPageFriend_pt.txt |
---|
5,7 → 5,7 |
{1} |
Com os Melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/newGrades_pt.txt |
---|
5,7 → 5,7 |
{1} |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/template/email/message_pt.txt |
---|
13,7 → 13,7 |
{2} |
<p>Com os melhores cumprimentos {3}</p> |
<p>Cumprimentos, {3}</p> |
--------------------------------------------- |
<p>Escola Superior de Tecnologia e Gestão</p> |
/impl/conf/template/email/unidadeEditada_pt.txt |
---|
4,7 → 4,7 |
O BACO informa-o de que a ficha curricular da unidade de {1} |
foi editada |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
Instituto Politécnico de Portalegre |
/impl/conf/template/email/summary_pt.txt |
---|
9,7 → 9,7 |
{4} |
Com os melhores cumprimentos |
Cumprimentos |
--------------------------------------------- |
Escola Superior de Tecnologia e Gestão |
/impl/conf/directories/styleMapaDir.xsl |
---|
New file |
0,0 → 1,43 |
<?xml version="1.0" encoding="UTF-8"?> |
<xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:d="http://www.estgp.pt/baco/directory/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > |
<xsl:output method="html" encoding="UTF-8" omit-xml-declaration="yes" /> |
<xsl:template match="/"> |
<h1><xsl:value-of select="//d:directory/@label"/></h1> |
<table border="1" width="100%"> |
<tr> |
<td>NOME</td> |
<td>SALTO EXTERNO</td> |
<td>ULR</td> |
<td width="20%">NOTAS</td> |
</tr> |
<xsl:for-each select="//d:node"> |
<tr> |
<td colspan="4" style="background-color:#aaaaaa"><xsl:value-of select="@label"/></td> |
</tr> |
<xsl:for-each select="./d:leaf"> |
<tr> |
<td><xsl:text>-></xsl:text><xsl:value-of select="@label"/></td> |
<td> |
<xsl:if test="@absolute='true'"> |
<label style="background-color:red">SIM</label> |
</xsl:if> |
<xsl:if test="@proxy='grupos'"> |
<label style="background-color:yellow">PASTA INTRANET</label> |
</xsl:if> |
</td> |
<td><xsl:value-of select="@url"/></td> |
<td></td> |
</tr> |
</xsl:for-each> |
</xsl:for-each> |
</table> |
</xsl:template> |
</xsl:stylesheet> |
Property changes: |
Added: svn:executable |
+ * |
/impl/conf/berserk/sd.xml |
---|
1131,7 → 1131,7 |
<!--CourseUnitAssignements Backups--> |
<service> |
<name>CreateCourseUnitDirPackage</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitDirPackageService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitDirPackageServiceBat</implementationClass> |
<description>Create a zip file with Intranet folders</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
1999,4 → 1999,19 |
</service> |
<!--Atention this method should be used with carefully because loads an object inconditionally without checking permissions--> |
<service> |
<name>LoadObjectService</name> |
<implementationClass>pt.estgp.estgweb.services.common.LoadObjectService</implementationClass> |
<description>Loads an object from Object Repository</description> |
<isTransactional>true</isTransactional> |
<defaultMethod>load</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/impl/src/java/pt/estgp/estgweb/utils/StringsUtils.java |
---|
44,6 → 44,7 |
try{ |
if(nome != null) |
{ |
nome = nome.replace("/","_"); |
String[] partes = nome.split(" "); |
StringBuilder sb = new StringBuilder(); |
for(String n : partes) |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
85,7 → 85,22 |
public static final String INTRANET_CONTENTS = ConfigProperties.getProperty("intranet.contents.dir"); |
public static final String INTRANET_GRADES = ConfigProperties.getProperty("intranet.grades.dir"); |
public static final String INTRANET_PRESENCES = ConfigProperties.getProperty("intranet.presences.dir"); |
public static final String INTRANET_DTP = ConfigProperties.getProperty("intranet.dtp.dir"); |
public static final String INTRANET_DTP_Planeamento = ConfigProperties.getProperty("intranet.dtp.planeamento"); |
public static final String INTRANET_DTP_FichaCurricular = ConfigProperties.getProperty("intranet.dtp.ficha_curricular"); |
public static final String INTRANET_DTP_Sumarios = ConfigProperties.getProperty("intranet.dtp.sumarios"); |
public static final String INTRANET_DTP_Avaliacao = ConfigProperties.getProperty("intranet.dtp.avaliacao"); |
public static final String INTRANET_DTP_Avaliacao_enunciados = ConfigProperties.getProperty("intranet.dtp.avaliacao.enunciados"); |
public static final String INTRANET_DTP_Avaliacao_pautas = ConfigProperties.getProperty("intranet.dtp.avaliacao.pautas"); |
public static final String INTRANET_DTP_FichaAvaliacao = ConfigProperties.getProperty("intranet.dtp.ficha_avaliacao"); |
public static final String INTRANET_DTP_InqueritoPedagogico = ConfigProperties.getProperty("intranet.dtp.inquerito_pedagogico"); |
public static final boolean INTRANET_DTP_CourseCoordinatorWrite = ConfigProperties.getBooleanProperty("intranet.dtp.course.coordinator.write"); |
public static final boolean INTRANET_DTP_CourseDirectorWrite = ConfigProperties.getBooleanProperty("intranet.dtp.course.director.write"); |
public static final boolean INTRANET_DTP_CourseUnitResponsibleWrite = ConfigProperties.getBooleanProperty("intranet.dtp.course.unit.responsible.write"); |
public static final int SEARCH_MAX_RESULTS = ConfigProperties.getIntProperty("search.max.results"); |
public static final int SEARCH_BEST_FRAGMENTS_MAX_FRAGMENT_SIZE = ConfigProperties.getIntProperty("search.best.fragments.max.fragment.size"); |
public static final int SEARCH_BEST_FRAGMENTS_MAX_FRAGMENTS = ConfigProperties.getIntProperty("search.best.fragments.max.fragments"); |
345,4 → 360,10 |
public static final String EMAIL_GRADE_UNIT_TEMPLATE = "GradeUnit.txt"; |
public static final String[] PROXY_EXTENSIONS = ConfigProperties.getProperty("proxy.extensions").split(" "); |
public static final String FTP_IONLINE_URL = ConfigProperties.getProperty("server.ionline") + ConfigProperties.getProperty("server.ionline.start.path"); |
public static final String FTP_IONLINE_USER = ConfigProperties.getProperty("ionline.user"); |
public static final String FTP_IONLINE_PASS = ConfigProperties.getProperty("ionline.pass"); |
public static final String FTP_IONLINE_START_PATH = ConfigProperties.getProperty("server.ionline.start.path"); |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java |
---|
1,12 → 1,17 |
package pt.estgp.estgweb.services.courseunits; |
import jomm.dao.impl.AbstractDao; |
import jomm.utils.PdfUtils; |
import org.apache.commons.net.ftp.FTP; |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.fop.apps.FOPException; |
import org.apache.log4j.Logger; |
import org.dom4j.*; |
import org.hibernate.Query; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl; |
import pt.estgp.estgweb.domain.views.CourseUnitProgramView; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.RepositoryService; |
14,6 → 19,7 |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.estgp.estgweb.utils.Dom4jUtil; |
import pt.estgp.estgweb.utils.StringsUtils; |
import pt.estgp.estgweb.web.FtpServer; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import javax.xml.transform.TransformerException; |
23,10 → 29,7 |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.text.SimpleDateFormat; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
import java.util.*; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
110,9 → 113,86 |
public void createPdf(CourseUnit cu, List<String> errors) throws IOException, TransformerException, FOPException { |
createPdf(cu,errors,null); |
} |
public void createPdf(CourseUnit cu, List<String> errors,UserSession u) throws IOException, TransformerException, FOPException { |
String path = generatePdfFile(cu, errors, u); |
RepositoryService repositoryService = new RepositoryService(); |
User owner; |
if(cu.getTeachers() != null && cu.getTeachers().size() > 0) |
owner = cu.getTeachers().iterator().next(); |
else |
owner = DaoFactory.getUserDaoImpl().load(new Long(1)); |
if(owner.getUsername() == null) |
{ |
errors.add("Docente: " + owner.getName() + " ( " + owner.getId() + " ) don't have username check that situation"); |
// owner.setUsername("UKNOWN"); |
} |
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); |
} |
cu.setObjectives(cu.getCourseUnitProgram().getCourseUnitProgramPart2().getObjectivos()); |
//Obrigar a ser falso |
//NOVO |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getProgramStreamId()); |
sendPdfFtpIonline(cu,errors,u,path,repoFile.getLastVersion().getSaveDate(),null); |
} |
public boolean sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u, FTPClient client) throws IOException, TransformerException, FOPException |
{ |
RepositoryService repositoryService = new RepositoryService(); |
if(cu.getProgramStreamId() != null && cu.getProgramStreamId().length()> 0) |
{ |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getProgramStreamId()); |
String path = generatePdfFile(cu, errors, u); |
sendPdfFtpIonline(cu,errors,u,path,repoFile.getLastVersion().getSaveDate(),client); |
return true; |
} |
return false; |
} |
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd.HH_mm_ss"); |
private void sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u,String pdfPath,Date versionDate,FTPClient client) throws IOException, TransformerException, FOPException { |
FtpServer server = null; |
if(client == null) |
{ |
server = FtpServer.getNewServer(Globals.FTP_IONLINE_URL,Globals.FTP_IONLINE_USER,Globals.FTP_IONLINE_PASS); |
client = server.getClient(); |
} |
client.setFileType(FTP.BINARY_FILE_TYPE); |
String pastaFichaCurricular = Globals.FTP_IONLINE_START_PATH + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_FichaCurricular; |
if(!client.changeWorkingDirectory(pastaFichaCurricular)) |
{ |
logger.error("FTP CANT CHANGE TO PATH: " + pastaFichaCurricular); |
} |
else |
{ |
client.storeFile(cu.getCode() + "_" + cu.getNormalizedName() + "_v" + sdf.format(versionDate) + ".pdf",new FileInputStream(pdfPath)); |
if(server != null) |
{ |
client.quit(); |
client.disconnect(); |
} |
} |
// |
} |
private String generatePdfFile(CourseUnit cu, List<String> errors, UserSession u) throws TransformerException, IOException, FOPException { |
((CourseUnitProgramImpl)cu.getCourseUnitProgram()).consistNullValues(); |
Document responseDoc = DocumentHelper.createDocument(); |
Namespace namespace = new Namespace("uc", "http://baco.estgp.pt/schemas/courseunits/program/"); |
174,7 → 254,6 |
} |
Element apresentacaoObjectivos = curriculum.addElement(new QName("objetivosDaAprendizagem",namespace)); |
apresentacaoObjectivos.setText(cu.getCourseUnitProgram().getCourseUnitProgramPart2().getObjectivos()); |
290,18 → 369,11 |
cargaHorariaTotal.setText(cu.getCourseUnitProgram().getCargaHorariaTotal()); |
// Dom4jUtil.writeSout(responseDoc); |
String path = Globals.TMP_DIR + File.separator + cu.getCode() + "-" + cu.getName() + ".pdf"; |
FileOutputStream teste = new FileOutputStream(path); |
String path = Globals.TMP_DIR + File.separator + cu.getCode() + "-" + cu.getNormalizedName() + ".pdf"; |
FileOutputStream out = new FileOutputStream(path); |
Map<String,Object> params = new HashMap<String,Object>(); |
params.put("site", Globals.SITE_URL); |
if(cu.isValidProgram()) |
314,34 → 386,55 |
org.w3c.dom.Document dd = Dom4jUtil.toW3c(responseDoc); |
PdfUtils.createPdfFromXml(new DOMSource(dd), "pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl", teste,params); |
teste.flush(); |
teste.close(); |
PdfUtils.createPdfFromXml(new DOMSource(dd), "pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl", out, params); |
out.flush(); |
out.close(); |
return path; |
} |
RepositoryService repositoryService = new RepositoryService(); |
User owner; |
if(cu.getTeachers() != null && cu.getTeachers().size() > 0) |
owner = cu.getTeachers().iterator().next(); |
else |
owner = DaoFactory.getUserDaoImpl().load(new Long(1)); |
if(owner.getUsername() == null) |
{ |
errors.add("Docente: " + owner.getName() + " ( " + owner.getId() + " ) don't have username check that situation"); |
// owner.setUsername("UKNOWN"); |
public void storeAllPrograms() throws IOException { |
CourseUnitDaoImpl dao = DaoFactory.getCourseUnitDaoImpl(); |
Query q = AbstractDao.getCurrentSession().createQuery("select c from c in class " + CourseUnit.class.getName() + " where c.importYear = ?"); |
q.setString(0,DatesUtils.getImportYear()); |
Iterator<CourseUnit> cuIter = q.iterate(); |
FtpServer server = FtpServer.getNewServer(Globals.FTP_IONLINE_URL,Globals.FTP_IONLINE_USER,Globals.FTP_IONLINE_PASS); |
FTPClient client = server.getClient(); |
while (cuIter.hasNext()) { |
CourseUnit next = cuIter.next(); |
try { |
List<String> errors = new ArrayList<String>(); |
System.out.print("Sending " + next.getCourse().getName() + " - " + next.getSemestre() + " - " + next.getNormalizedName()); |
if(sendPdfFtpIonline(next,errors,null,client)) |
System.out.print(" ... OK"); |
else |
System.out.print(" ... FAIL probably no StreamID"); |
System.out.print("\n"); |
if(errors.size()>0) |
for(String error:errors) |
logger.warn(error); |
} catch (IOException e) { |
logger.error(e,e); |
} catch (TransformerException e) { |
logger.error(e, e); |
} catch (FOPException e) { |
e.printStackTrace(); |
} |
AbstractDao.getCurrentSession().evict(next); |
} |
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); |
client.quit(); |
client.disconnect(); |
} |
public static void main(String[] args) throws IOException { |
AbstractDao.getCurrentSession().beginTransaction(); |
new SaveCourseUnitProgram().storeAllPrograms(); |
AbstractDao.getCurrentSession().flush(); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
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); |
} |
cu.setObjectives(cu.getCourseUnitProgram().getCourseUnitProgramPart2().getObjectivos()); |
//Obrigar a ser falso |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
1,20 → 1,20 |
package pt.estgp.estgweb.services.courseunits; |
import jomm.utils.PdfUtils; |
import org.apache.commons.net.ftp.FTP; |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.fop.apps.FOPException; |
import org.apache.log4j.Logger; |
import org.dom4j.*; |
import org.dom4j.Document; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView; |
import pt.estgp.estgweb.domain.views.CourseUnitProgramView; |
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.utils.DatesUtils; |
import pt.estgp.estgweb.utils.Dom4jUtil; |
import pt.estgp.estgweb.utils.StringsUtils; |
import pt.estgp.estgweb.web.FtpServer; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import javax.xml.transform.TransformerException; |
24,10 → 24,7 |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.text.SimpleDateFormat; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
import java.util.Map; |
import java.util.*; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
41,8 → 38,8 |
* @author Jorge Machado |
* |
* |
* So pode editar o programa da unidade o coordenador do curso ou o responsavel da unidade |
* ou o docente da unidade ou tem o role de validacao do curso a comissao de curso |
* So pode editar a avaliação da unidade o docente da unidade |
* É gerado um PDF a cada gravação do Ficheiro |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
54,6 → 51,8 |
private static final Logger logger = Logger.getLogger(SaveCourseUnitEvaluation.class); |
RepositoryService repositoryService = new RepositoryService(); |
public CourseUnitEvaluationView run(CourseUnitEvaluationView cupv, Long coursUnitId, UserSession usession) throws ServiceException, TransformerException, IOException, FOPException { |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId); |
84,7 → 83,16 |
cupv.persistViewInObjectTeacher(evaluation); |
} |
List<String> errors = new ArrayList<String>(); |
if(cupv.isFechar()) |
{ |
evaluation.setClosed(true); |
} |
else |
{ |
evaluation.setClosed(false); |
} |
createPdf(evaluation,c,usession,errors); |
if(usession.getUser() instanceof Teacher) |
DirectedCoordinatedUnitsService.sendNotificationsEditedInterestedPeople(c,usession); |
else |
95,5 → 103,106 |
return cupv; |
} |
public void createPdf(CourseUnitEvaluation cuv, CourseUnit cu, UserSession userSession,List<String> errors) throws IOException, TransformerException, FOPException { |
String path = generatePdf(cuv, cu); |
RepositoryService repositoryService = new RepositoryService(); |
User owner = userSession.getUser(); |
if(cu.getEvaluationStreamId() == null) |
{ |
String identifier = repositoryService.storeRepositoryFile(new FileInputStream(path), "application/pdf", "pdf",((int) new File(path).length()), cu.getCode() + "-evaluation.pdf", "courseunit.evaluation.description" + cu.getName(), ResourceAccessControlEnum.privateDomain,owner); |
cu.setEvaluationStreamId(identifier); |
} |
else |
{ |
repositoryService.updateRepositoryFile(cu.getEvaluationStreamId(), new FileInputStream(path), "application/pdf", "pdf", ((int)new File(path).length()),cu.getCode() + "-evaluation.pdf", "evaluation.evaluation.description " + cu.getName(), ResourceAccessControlEnum.privateDomain); |
} |
//Obrigar a ser falso |
//NOVO |
if(cuv.isClosed()) |
{ |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getEvaluationStreamId()); |
sendPdfFtpIonline(cu,errors,userSession,path,repoFile.getLastVersion().getSaveDate(),null); |
} |
} |
public String generatePdf(CourseUnitEvaluation cuv, CourseUnit c) throws IOException, TransformerException, FOPException { |
Document responseDoc = ((CourseUnitEvaluationImpl)cuv).getDom(); |
responseDoc.setXMLEncoding("ISO-8859-1"); |
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); |
responseDoc.getRootElement().addAttribute("data", sdf.format(new java.util.Date())); |
String path = Globals.TMP_DIR + File.separator + c.getCode() + "-" + c.getNormalizedName() + "-eval.pdf"; |
FileOutputStream out = new FileOutputStream(path); |
Map<String,Object> params = new HashMap<String,Object>(); |
params.put("site", Globals.SITE_URL); |
org.w3c.dom.Document dd = Dom4jUtil.toW3c(responseDoc); |
PdfUtils.createPdfFromXml(new DOMSource(dd), "pt/estgp/estgweb/services/courseunits/courseunitevaluation.fo.xsl", out, params); |
out.flush(); |
out.close(); |
return path; |
} |
/* public boolean sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u, FTPClient client) throws IOException, TransformerException, FOPException |
{ |
RepositoryService repositoryService = new RepositoryService(); |
if(cu.getProgramStreamId() != null && cu.getProgramStreamId().length()> 0) |
{ |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getProgramStreamId()); |
String path = generatePdfFile(cu, errors, u); |
sendPdfFtpIonline(cu,errors,u,path,repoFile.getLastVersion().getSaveDate(),client); |
return true; |
} |
return false; |
}*/ |
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd.HH_mm_ss"); |
private void sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u,String pdfPath,Date versionDate,FTPClient client) throws IOException, TransformerException, FOPException { |
FtpServer server = null; |
if(client == null) |
{ |
server = FtpServer.getNewServer(Globals.FTP_IONLINE_URL,Globals.FTP_IONLINE_USER,Globals.FTP_IONLINE_PASS); |
client = server.getClient(); |
} |
client.setFileType(FTP.BINARY_FILE_TYPE); |
String pastaFichaCurricular = Globals.FTP_IONLINE_START_PATH + cu.getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_FichaAvaliacao; |
if(!client.changeWorkingDirectory(pastaFichaCurricular)) |
{ |
logger.error("FTP CANT CHANGE TO PATH: " + pastaFichaCurricular); |
} |
else |
{ |
client.storeFile(cu.getCode() + "_" + cu.getNormalizedName() + "_v" + sdf.format(versionDate) + ".pdf",new FileInputStream(pdfPath)); |
if(server != null) |
{ |
client.quit(); |
client.disconnect(); |
} |
} |
// |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl |
---|
253,11 → 253,12 |
<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>--> |
<!-- Campo Novo Aprovado Luis Batista Mail de 3 de Setembro de 2015 assunto RE: Verificação conteudos - UC - CESH_TD--> |
<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> |
265,12 → 266,14 |
<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>--> |
<!-- Campo Novo Aprovado Luis Batista Mail de 3 de Setembro de 2015 assunto RE: Verificação conteudos - UC - CESH_TD--> |
<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> |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitDirPackageServiceBat.java |
---|
New file |
0,0 → 1,353 |
package pt.estgp.estgweb.services.courseunits; |
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.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.File; |
import java.io.FileWriter; |
import java.io.IOException; |
import java.util.List; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class CreateCourseUnitDirPackageServiceBat implements IService |
{ |
private static final Logger logger = Logger.getLogger(CreateCourseUnitDirPackageServiceBat.class); |
public String run(String importYear, UserSession userSession) throws ServiceException |
{ |
if(importYear == null || importYear.trim().length() == 0) |
importYear = DatesUtils.getImportYear(); |
String importYearIntranet = DatesUtils.getImportYearIntranet(importYear); |
String tmpName = BytesUtils.generateHexKey(); |
String tmpDir = Globals.TMP_DIR + "/" + tmpName; |
new File(tmpDir).mkdirs(); |
//List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(importYear); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
try |
{ |
FileWriter batRunner = new FileWriter(tmpDir + "/create.bat"); |
String back = ""; |
for(Course c: courses) |
{ |
//O curso é sempre o mesmo ID mas muda de Ano consoante o ano de importação |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(c.getId(),importYear); |
if(courseUnits == null || courseUnits.size() == 0) |
{ |
logger.info("Skipping course: " + c.getCode() + ":" + c.getName() + " zero units in " + importYear); |
} |
else{ |
String courseNormalizedName = StringsUtils.normalizeResourceName(c.getName()) + '.' + c.getCode(); |
String couseDirPath = tmpDir + "/" + courseNormalizedName; |
// File courseDir = new File(couseDirPath); |
//courseDir.mkdirs(); |
try |
{ |
String courseImportYearPathDos = couseDirPath + "\\" + importYearIntranet; |
String courseImportYearPath = couseDirPath + "/" + importYearIntranet; |
File courseImportYearDir = new File(courseImportYearPath); |
//courseImportYearDir.mkdirs(); |
//new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1).mkdirs(); |
//new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2).mkdirs(); |
//new File(courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A).mkdirs(); |
//FilesUtils.copy(CreateCourseUnitDirPackageServiceBat.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S1 + "/" + Globals.INTRANET_SETUP_FILE_NAME); |
//FilesUtils.copy(CreateCourseUnitDirPackageServiceBat.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_S2 + "/" + Globals.INTRANET_SETUP_FILE_NAME); |
//FilesUtils.copy(CreateCourseUnitDirPackageServiceBat.class.getResourceAsStream(Globals.INTRANET_SETUP_FILE),courseImportYearPath + "/" + Globals.INTRANET_SEMESTRE_A + "/" + Globals.INTRANET_SETUP_FILE_NAME); |
String relativeDirCourse = courseImportYearPathDos.substring(tmpDir.length() + 1); |
//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 + relativeDirCourse + "\\"); |
//back = "..\\..\\..\\"; |
//back = "..\\..\\"; |
//batRunner.write("\n"); |
/*batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME); |
batRunner.write("\n"); |
batRunner.write("cd " + back + callPathS2); |
batRunner.write("\n"); |
batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME); |
batRunner.write("\n"); |
batRunner.write("cd " + back + callPathA); |
batRunner.write("\n"); |
batRunner.write(Globals.INTRANET_SETUP_FILE_NAME + " " + Globals.INTRANET_USERS_SETUP_FILE_NAME); |
batRunner.write("\n");*/ |
//RETIRADO |
//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); |
batRunner.write("md " + courseNormalizedName + "\\\n"); |
batRunner.write("md " + relativeDirCourse + "\\\n"); |
batRunner.write("md " + relativeDirCourse + "\\" + Globals.INTRANET_SEMESTRE_S1 + "\\\n"); |
batRunner.write("md " + relativeDirCourse + "\\" + Globals.INTRANET_SEMESTRE_S2 + "\\\n"); |
batRunner.write("md " + relativeDirCourse + "\\" + Globals.INTRANET_SEMESTRE_A + "\\\n"); |
batRunner.write("cd " + relativeDirCourse + "\\\n"); |
//back = "..\\..\\"; |
//batRunner.write("\n"); |
// List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(c.getId(),importYear); |
for(CourseUnit courseUnit: courseUnits) |
{ |
//FileWriter nowWriter; |
String semestre; |
if(courseUnit.getSemestre().equals("S1")) |
{ |
//nowWriter = confWriterSemestre1; |
semestre = Globals.INTRANET_SEMESTRE_S1; |
} |
else if(courseUnit.getSemestre().equals("S2")) |
{ |
//nowWriter = confWriterSemestre2; |
semestre = Globals.INTRANET_SEMESTRE_S2; |
} |
else |
{ |
//nowWriter = confWriterA; |
semestre = Globals.INTRANET_SEMESTRE_A; |
} |
/*md Unidade\DTP |
md Unidade\DTP\1.Planeamento |
md Unidade\DTP\2.Ficha.Curricular |
md Unidade\DTP\3.Sumarios |
md Unidade\DTP\4.Avaliacao |
md Unidade\DTP\5.Ficha.de.Avaliacao.da.Unidade.Curricular |
md Unidade\DTP\6.Inquerito.Pedagogico.Unidade.Curricular |
md Unidade\DTP\7.Relatorio.Final*/ |
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName()); |
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName; |
courseUnit.setNormalizedName(normalizedName); |
courseUnit.setPathIntranet(unitPath.substring(tmpDir.length())); |
String semestreUnitName = semestre + "\\" + normalizedName + "\\"; |
String dtpUnitFolder = semestreUnitName + Globals.INTRANET_DTP + "\\"; |
String conteudosUnitFolder = semestreUnitName + Globals.INTRANET_CONTENTS + "\\"; |
batRunner.write("md " + semestreUnitName + "\n"); |
batRunner.write("md " + conteudosUnitFolder + "\n"); |
batRunner.write("md " + dtpUnitFolder + "\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_Planeamento + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_FichaCurricular + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_Sumarios + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_Avaliacao + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_Avaliacao + "\\" + Globals.INTRANET_DTP_Avaliacao_enunciados + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_Avaliacao + "\\" + Globals.INTRANET_DTP_Avaliacao_pautas + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_FichaAvaliacao + "\\\n"); |
batRunner.write("md " + dtpUnitFolder + Globals.INTRANET_DTP_InqueritoPedagogico + "\\\n"); |
batRunner.write("cd " + semestreUnitName + "\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /p \"Domain Users\":n\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /p \"Authenticated Users\":n\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /p \"Intranet\":n\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /p \"Alunos\":n\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /r \"Domain Users\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /r \"Authenticated Users\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /r \"Intranet\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /r \"Alunos\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"Docentes\":r\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + c.getUserGroupStudents() + "\":r\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + ConfigProperties.getProperty("ionline.user") + "\":f\n"); |
/* |
echo CACLS Seminario.Ii /T /E /R [NOME DO GRUPO DE TODOS OS ALUNOS DA ESTG tira os parentisis rectos] |
echo CACLS Seminario.Ii /T /E /G [NOME DO GRUPO DE TODOS OS DOCENTES]:R |
echo CACLS Seminario.Ii /T /E /G [NOME DO GRUPO DE TODOS OS ALUNOS DO CURSO]:R |
echo CACLS Seminario.Ii /T /E /G secundino.lopes:C |
*/ |
//batRunner.write("\n"); |
//nowWriter.write(normalizedName); |
System.out.println("GENERATING LINE: " + normalizedName); |
if(courseUnit.getTeachers() != null) |
{ |
String users = ""; |
int counter = 0; |
for(Teacher t: courseUnit.getTeachers()) |
{ |
if(t.getUsername() != null) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + t.getUsername() + "\":c\n"); |
//batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /r \"" + t.getUsername() + "\":c\n"); |
batRunner.write("cd " + Globals.INTRANET_DTP + "\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaCurricular + " /t /e /r \"" + t.getUsername() + "\"\n"); |
//batRunner.write("cacls " + Globals.INTRANET_DTP_FichaAvaliacao + " /t /e /r \"" + t.getUsername() + "\"\n"); |
batRunner.write("cd ..\\\n"); |
batRunner.write("cacls " + Globals.INTRANET_CONTENTS + " /t /e /g \"" + t.getUsername() + "\":c\n"); |
//users += " " + t.getUsername(); |
//counter++; |
} |
} |
// nowWriter.write(" " + counter + users); |
//nowWriter.write("\n"); |
} |
if(Globals.INTRANET_DTP_CourseUnitResponsibleWrite && courseUnit.getResponsableTeacher() != null ) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + courseUnit.getResponsableTeacher().getUsername() + "\":c\n"); |
batRunner.write("cd " + Globals.INTRANET_DTP + "\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaCurricular + " /t /e /r \"" + courseUnit.getResponsableTeacher().getUsername() + "\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaAvaliacao + " /t /e /r \"" + courseUnit.getResponsableTeacher().getUsername() + "\"\n"); |
batRunner.write("cd ..\\\n"); |
} |
if(Globals.INTRANET_DTP_CourseCoordinatorWrite && c.getCoordinator() != null) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + c.getCoordinator().getUsername() + "\":c\n"); |
batRunner.write("cd " + Globals.INTRANET_DTP + "\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaCurricular + " /t /e /r \"" + c.getCoordinator().getUsername() + "\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaAvaliacao + " /t /e /r \"" + c.getCoordinator().getUsername() + "\"\n"); |
batRunner.write("cd ..\\\n"); |
} |
if(Globals.INTRANET_DTP_CourseDirectorWrite && c.getCoordinator() != null) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + c.getDirector().getUsername() + "\":c\n"); |
batRunner.write("cd " + Globals.INTRANET_DTP + "\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaCurricular + " /t /e /r \"" + c.getDirector().getUsername() + "\"\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaAvaliacao + " /t /e /r \"" + c.getDirector().getUsername() + "\"\n"); |
batRunner.write("cd ..\\\n"); |
} |
batRunner.write("cd ..\\..\\\n"); |
} |
batRunner.write("cd ..\\..\\\n"); |
//confWriterSemestre1.flush(); |
//confWriterSemestre2.flush(); |
// confWriterA.flush(); |
// confWriterSemestre1.close(); |
// confWriterSemestre2.close(); |
// confWriterA.close(); |
} |
catch (IOException e) |
{ |
logger.error(e,e); |
} |
} |
} |
batRunner.write("cd " + back); |
batRunner.close(); |
FilesUtils.zipFolder(tmpDir,tmpDir + ".zip"); |
FilesUtils.delete(tmpDir); |
return tmpName + ".zip"; |
} |
catch (IOException e) |
{ |
logger.error(e,e); |
} |
return null; |
} |
public static void main(String[] args) throws ServiceException |
{ |
String teste = "Sistemas Térmicos, Hidráulicos e Pneumáticos"; |
System.out.println(StringsUtils.normalizeResourceName(teste)); |
// AbstractDao.getCurrentSession().beginTransaction(); |
// new CreateCourseUnitDirPackageService().run(null,null); |
// AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
} |
/****** |
* |
* MEMO COMANDOS WINDOWS |
* Ok Jaime testa este comando se faz favor. |
Por partes: |
O ficheiro de input do mkcursos.exe é assim: |
Seminario.Ii 1 secundino.lopes |
Bases.De.Dados.Ii 1 vrealinho |
Redes.De.Computadores.I 1 secundino.lopes |
Teoria.Da.Computacao 1 jmachado |
Seguranca 1 secundino.lopes |
Em que o primeiro parâmetro é a pasta da unidade |
O segundo é o numero de users que vêm seguidamente |
O programa faz isto |
O inicio cria uma pasta para a cadeira e 3 pastas lá dentro: |
fscanf(fic, " %s", disc); //SCAN DO FICHEIRO DE UMA STRING para a var disc isto é o nome da pasta para a unidade |
if (feof(fic)) exit(0); |
sprintf(linha,"echo md %s", disc); //CONSTRUCAO DO COMANDO DE MD para a var linha para criar os três directorios |
//disc = Seminario.Ii |
//fica: linha = " echo md Seminario.Ii " |
system(linha); //EXECUTA O COMANDO em Linha |
sprintf(linha,"echo md %s\\\\Conteudos", disc); //fica: linha = " echo md Seminario.Ii\\Conteudos " |
system(linha); |
sprintf(linha,"echo md %s\\\\Avaliacao", disc); //fica: linha = " echo md Seminario.Ii\\ Avaliacao " |
system(linha); |
sprintf(linha,"echo md %s\\\\Assiduidade", disc); //fica: linha = " echo md Seminario.Ii\\ Assiduidade " |
system(linha); |
seguidamente o programa lê o inteiro no caso do seminario é "1" e de 0 até 1 ou seja só uma vez neste caso lê a próxima String neste caso secundino.lopes o ActiveDirectory tem lá este user |
fscanf(fic, "%i", &n); |
for (i=0; i<n; i++) { |
fscanf(fic, " %s", doc); //Lê secundino.lopes aqui |
sprintf(linha, "echo CACLS %s /T /E /G %s:C", disc, doc); |
//fica linha=echo CACLS Seminario.Ii /T /E /G secundino.lopes:C |
system(linha); |
} |
O CACLS muda isto: |
discretionary access control list (DACL) da pasta |
JAIME Metes-te no Donald em linha de comandos crias uma pasta num sitio de teste e escreves isto: |
segundo a documentação da Microsoft: |
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cacls.mspx?mfr=true |
O /T significa aplicar às subpastas |
O /E significa editar em vez de a destruir o DACL para manter as permissões anteriores |
O /G para garantir acesso ao user especificado no fomato User:permission permission pode ser C, R etc |
logo Secundino.lopes:CREATE é o que quer dizer o secundino.lopes:C |
/R User revoga direitos de acesso a um User |
O que queremos é revogar a todos os utilizadores e de seguida adicionar permissões de leitura a |
todos os docentes, leitura aos users do Curso e por fim escrita aos docentes da unidade |
Agora resta saber a ordem como fazer isto para funcionar e isso tens de ser tu a testar JAIME |
Tenta isto numa pasta de teste fora do i.online para não estragarmos nada |
Retiramos aos alunos todos, damos leitura aos docentes todos, damos leitura aos alunos do curso |
e por fim escrita ao docente de teste |
echo CACLS Seminario.Ii /T /E /R [NOME DO GRUPO DE TODOS OS ALUNOS DA ESTG tira os parentisis rectos] |
echo CACLS Seminario.Ii /T /E /G [NOME DO GRUPO DE TODOS OS DOCENTES]:R |
echo CACLS Seminario.Ii /T /E /G [NOME DO GRUPO DE TODOS OS ALUNOS DO CURSO]:R |
echo CACLS Seminario.Ii /T /E /G secundino.lopes:C |
Experimenta isto ou noutra ordem e verifica como ficaram as permissões no fim e quando acertares o passo |
manda-me o resultado para eu criar o ficheiro final com os BATS todos |
*/ |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitevaluation.fo.xsl |
---|
New file |
0,0 → 1,275 |
<?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:param name="site">http://localhost/bacoTESTE</xsl:param> |
<xsl:param name="revisor">automático</xsl:param> |
<xsl:param name="validadoCC">false</xsl:param> |
<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: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> |
<xsl:if test="//closed = 'false'"> |
<fo:block font-size="20pt"> |
(Este documento não está fechado) |
</fo:block> |
</xsl:if> |
<xsl:if test="//closed = 'true'"> |
<fo:block font-size="20pt"> |
</fo:block> |
</xsl:if> |
</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 > |
Revisto a <xsl:value-of select="//updateDate"/> por <xsl:value-of select="$revisor"/> / Página <fo:page-number/> |
</fo:block> |
<fo:block font-size="5pt"> |
ESTG.SA.xxxx.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® 2015 |
</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="/CourseUnitEvaluation"/> |
</fo:block> |
</fo:flow> |
</xsl:template> |
<xsl:template match="/CourseUnitEvaluation"> |
<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"> |
</xsl:template> |
<xsl:attribute-set name="myBorder"> |
<xsl:attribute name="border">solid 0.2mm black</xsl:attribute> |
</xsl:attribute-set> |
<xsl:template name="gen_line"> |
<fo:table-row background-color="#FFF" color="#000" padding="0"> |
<fo:table-cell border-right="1px solid gray" border-bottom="1px solid gray" display-align="center" > |
<fo:block text-align="right" padding="3pt" font-weight="bold"> |
Dados relativos ao processo de avaliação |
</fo:block> |
</fo:table-cell> |
<fo:table-cell border-bottom="1px solid gray" padding="0" padding-top="5px" padding-bottom="5px" padding-left="0mm" display-align="center"> |
<fo:table margin="0" margin-left="0mm" border="0px solid black" font-size="5.5pt" > |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-column/> |
<fo:table-body> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" number-rows-spanned="2" padding-top="3pt"><fo:block > Nº Alunos Inscritos </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" number-rows-spanned="2" padding-top="3pt"><fo:block > Nº de alunos sem elementos de avaliação </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" number-rows-spanned="1" number-columns-spanned="5" padding-top="3pt" display-align="center"><fo:block display-align="center"> Nº de alunos aprovados em </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" number-rows-spanned="2" padding-top="3pt"><fo:block > Aprovados com a classificação entre 10 e 13 valores (%) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" number-rows-spanned="2" padding-top="3pt"><fo:block > Aprovados com a classificação entre 14 e 16 valores (%) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" number-rows-spanned="2" padding-top="3pt"><fo:block > Aprovados com a classificação entre 17 e 20 valores (%) </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > Avaliação de frequência </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > Exame Época Normal </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > Exame Época Recurso </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > Exame Época Especial </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > Total </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosInscritos"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosSemElementosAvaliacao"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprovFrequencia"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprovNormal"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprovRecurso"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprovEspecial"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprovTotal"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprov1013"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprov1416"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding-top="3pt"><fo:block > <xsl:value-of select="//numAlunosAprov1720"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
</fo:table-body> |
</fo:table> |
</fo:table-cell> |
</fo:table-row> |
<fo:table-row background-color="#FFF" color="#000"> |
<fo:table-cell border-bottom="1px solid gray" border-right="1px solid gray" padding-right="0.1em" display-align="center"> |
<fo:block text-align="center" font-weight="bold">Auto-avaliação</fo:block> |
</fo:table-cell> |
<fo:table-cell border-bottom="1px solid gray" display-align="center" padding="5px"> |
<fo:table margin="0" margin-left="0mm" border="0px solid black" font-size="5.5pt" > |
<fo:table-column column-width="20%"/> |
<fo:table-column/> |
<fo:table-body> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação dos resultados quantitativos obtidos pelos estudantes </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualApreciacaoQuantitivos"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação do funcionamento da UC (Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualApreciacaoUC"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação do cumprimento do programa da UC (Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualApreciacaoCumprimentoPrograma"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Conclusões (Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualConclusoes"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
</fo:table-body> |
</fo:table> |
</fo:table-cell> |
</fo:table-row> |
</xsl:template> |
</xsl:stylesheet> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java |
---|
64,16 → 64,22 |
for (BigDecimal c : codigos) |
{ |
Docente d = service.getSiGesWEBSoap().getDocente(c, Globals.SIGES_INSTITUTION_CODE, year); |
logger.info("Codigo Funcionario Importado:" + d.getCodigoFuncionario().intValue() + " email IPP SIGES: " + d.getEmail()); |
logger.info("Codigo Funcionario Importado: SIGES(" + d.getCodigoFuncionario().intValue() + ") email IPP SIGES: " + d.getEmail()); |
logger.info("SIGES IMPORTED INFO: " + docenteToString(d)); |
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(d.getCodigoFuncionario().intValue()); |
boolean newUser = false; |
if (t == null) |
{ |
logger.info("Teacher does not exist in baco, will create SIGES:" + d.getCodigoFuncionario().intValue()); |
t = DomainObjectFactory.createTeacherImpl(); |
DaoFactory.getTeacherDaoImpl().save(t); |
newUser = true; |
} |
logger.info("Importing: (" + t.getUsername() + ") " + t.getName()); |
else |
{ |
logger.info("Teacher EXIST in baco with SIGES: " + d.getCodigoFuncionario().intValue()); |
} |
logger.info("Will persist SIGES(" + d.getCodigoFuncionario().intValue() + ") baco (username:" + t.getUsername() + ") baco name:" + t.getName()); |
try |
{ |
persist(d, t, newUser); |
106,6 → 112,30 |
} |
/** |
* Implementação local do toString para a class Docente que foi gerada pelos web-services |
* @param d |
* @return |
*/ |
public String docenteToString(Docente d) |
{ |
return "Docente{" + |
"codigoFuncionario=" + d.getCodigoFuncionario() + |
", nomeFuncionario='" + d.getNomeFuncionario() + '\'' + |
", nomeFuncionarioInt='" + d.getNomeFuncionarioInt() + '\'' + |
", nomeAcademico='" + d.getNomeAcademico() + '\'' + |
", sexo='" + d.getSexo() + '\'' + |
", dataNascimento=" + d.getDataNascimento() + |
", morada='" + d.getMorada() + '\'' + |
", codigoPostal=" + d.getCodigoPostal() + |
", subCodigoPostal=" + d.getSubCodigoPostal() + |
", email='" + d.getEmail() + '\'' + |
", numeroBi='" + d.getNumeroBi() + '\'' + |
", usernameNetpa='" + d.getUsernameNetpa() + '\'' + |
", disciplinas=" + d.getDisciplinas() + |
'}'; |
} |
/** |
* Nao esta testado |
* jm |
* |
127,8 → 157,25 |
{ |
int atIndex = d.getEmail().indexOf("@"); |
if (atIndex > 0) |
{ |
t.setUsername(d.getEmail().substring(0, atIndex)); |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " foi-lhe atribuido o username d" + d.getEmail().substring(0, atIndex)); |
} |
else |
{ |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " NAO lhe foi atribuido username o email não tem o caracter @"); |
} |
} |
else if(t.getUsername() == null || t.getUsername().trim().length() == 0) |
{ |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " nao tem email no SIGES foi-lhe atribuido o username d" + d.getCodigoFuncionario().intValue()); |
t.setUsername("d" + d.getCodigoFuncionario().intValue()); |
} |
else |
{ |
//username não foi alterado |
logger.info("Teacher SIGES:" + d.getCodigoFuncionario().intValue() + " nao lhe foi alterado o username " + t.getUsername()); |
} |
t.setSigesCode(d.getCodigoFuncionario().intValue()); |
if(t.getAddress() == null || t.getAddress().length() == 0) |
t.setAddress(d.getMorada()); |
195,7 → 242,7 |
List<String> arguments = new ArrayList<String>(); |
String cause = e.getCause() == null ? "" : e.getCause().toString(); |
arguments.add((e.toString() + "\n" + cause).replace("\n","<br/>")); |
Email email = new Email("Erro de importação de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
Email email = new Email("Erro de importa��o de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments); |
new SendEmailService().sendEmail(email); |
throw e; |
} |
/impl/src/java/pt/estgp/estgweb/services/common/LoadObjectService.java |
---|
New file |
0,0 → 1,42 |
package pt.estgp.estgweb.services.common; |
import jomm.dao.utils.HibernateUtils; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.Serializable; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 22/Mai/2008 |
* @see pt.estgp.estgweb.services.common |
*/ |
public class LoadObjectService implements IService |
{ |
private static final Logger logger = Logger.getLogger(LoadObjectService.class); |
public Object load(String className, Serializable id, UserSession userSession) throws ServiceException |
{ |
try |
{ |
Object obj = HibernateUtils.getCurrentSession().load(className,id); |
if(obj instanceof CourseUnit) |
return new CourseUnitView((CourseUnit) obj); |
else |
{ |
logger.info("Atention LoadObjectService Only implemented for CourseUnits"); |
return null; |
} |
} |
catch (Throwable throwable) |
{ |
logger.error(throwable,throwable); |
throw new ServiceException("", throwable); |
} |
} |
} |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/java/pt/estgp/estgweb/services/ftpservices/FtpService.java |
---|
1,34 → 1,21 |
package pt.estgp.estgweb.services.ftpservices; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.email.ReadEmailService; |
import pt.estgp.estgweb.services.email.IPopEmail; |
import pt.estgp.estgweb.services.email.IAddress; |
import pt.estgp.estgweb.services.email.impl.DefaultPopEmail; |
import pt.estgp.estgweb.services.email.impl.DefaultAddress; |
import pt.estgp.estgweb.domain.*; |
import jomm.utils.DesUtils; |
import org.apache.commons.fileupload.FileItem; |
import org.apache.commons.net.ftp.FTP; |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.CourseUnitImpl; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import pt.estgp.estgweb.web.FtpServer; |
import org.apache.log4j.Logger; |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.commons.net.ftp.FTP; |
import org.apache.commons.fileupload.FileItem; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.util.List; |
import java.util.Properties; |
import java.util.Date; |
import java.util.ArrayList; |
import java.io.*; |
import java.io.File; |
import java.io.IOException; |
import jomm.utils.DesUtils; |
import jomm.utils.StringsUtils; |
import javax.mail.*; |
import javax.mail.internet.InternetAddress; |
/** |
* @author Jorge Machado |
* @date 20/Mar/2008 |
40,12 → 27,12 |
private static final Logger logger = Logger.getLogger(FtpService.class); |
private static final String FTP_PASSWORD = "pt.estgp.estgweb.services.ftpservices.FtpService.FTP_PASSWORD"; |
public static final String FTP_PASSWORD = "pt.estgp.estgweb.services.ftpservices.FtpService.FTP_PASSWORD"; |
public String run(FtpRequestForm ftpRequestForm, UserSession userSession) throws IOException |
{ |
//userSession.getUser().get |
boolean isStaticAccess = ConfigProperties.getBooleanProperty(ftpRequestForm.getServerConfName()+".use.default.credentials.to.updates.and.deletes"); |
String password = ftpRequestForm.getPassword(); |
String username = ftpRequestForm.getUsername(); |
72,8 → 59,12 |
{ |
((UserSessionImpl)userSession).put(FTP_PASSWORD,DesUtils.getInstance().encrypt(ftpRequestForm.getPassword())); |
} |
//ESTE CAMPO É COLOCADO EM MEMORIA LOGO NA AUTENTICACAO POR ISSO A POP3 PASS NAO CHEGA A SER USADA |
//E A POP3PASS DAVA PROBLEMAS SE O USER ALGUMA VEZ A TINHA INICIADO |
String passwordCode = (String) ((UserSessionImpl)userSession).get(FTP_PASSWORD); |
//System.out.println("SAVEDCODE"+passwordCode); |
if(password != null && password.trim().length() > 0) |
{ |
82,6 → 73,7 |
{ |
logger.info("using saved password"); |
password = DesUtils.getInstance().decrypt(passwordCode); |
//System.out.println("SAVEDPASS:" + password); |
} |
else if(userSession.getUser().getPop3password() != null && userSession.getUser().getPop3password().length() > 0) |
{ |
/impl/src/java/pt/estgp/estgweb/services/assessments/CreateEditAssessmentService.java |
---|
36,7 → 36,7 |
assessmentView.persistViewInObject(a); |
a.setOwner(userSession.getUser()); |
a.setSemester(DatesUtils.getSemestre()); |
a.setYear(DatesUtils.getImportYear()); |
a.setYear(DatesUtils.getImportYear());//nao e' usado este metodo |
a.setSaveDate(new Date()); |
a.setStatusPercentage(0); |
a.setStatus(SurveyStatusEnum.STATUS_STOPPED.getStatus()); |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java |
---|
1,19 → 1,21 |
package pt.estgp.estgweb.services.authenticate; |
import jomm.utils.DesUtils; |
import openldap.ILdapManager; |
import openldap.LdapManagerFactory; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import openldap.ILdapManager; |
import openldap.LdapManagerFactory; |
import java.util.HashMap; |
import java.util.Set; |
import java.util.Iterator; |
import java.util.Map; |
import java.util.Set; |
/* |
70,6 → 72,9 |
if(u == null) |
{ |
logger.warn("user:" + username + " does not exist"); |
throw new AuthenticateException(AuthenticateException.DOES_NOT_EXIST); |
/* |
u = getUserInfo(username); |
u.setPassword(password); |
//put password to be complete for advising |
83,13 → 88,13 |
else if (u.getRoles().contains("student")) |
{ |
} |
}*/ |
} |
else |
{ |
// String passwordAux = u.getPassword(); |
u.setPassword(password); |
//put password to be complete for advising |
CommonServicesManager.getInstance().adviseUpdate(u); |
// u.setPassword(passwordAux); |
u.setPassword(jomm.utils.BytesUtils.getDigestMD5Hex(password)); |
109,6 → 114,9 |
logger.warn("user:" + username + " authenticated"); |
((UserSessionImpl)userSession).clearObjectsWithOpenTransaction(); |
//PASSWORD PARA SERVICOS FTP CLIENT |
((UserSessionImpl)userSession).put(FtpService.FTP_PASSWORD, DesUtils.getInstance().encrypt(password)); |
//put password to be complete for advising |
userSession.setName(u.getName()); |
userSession.setUsername(u.getUsername()); |
userSession.setUser(u); |
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateException.java |
---|
6,6 → 6,7 |
{ |
public static final String ALREADY_AUTHENTICATED = "authenticate.already.authenticated"; |
public static final String FAIL_AUTHENTICATION = "fail.authenticate"; |
public static final String DOES_NOT_EXIST = "dontexist.authenticate"; |
public static final String BLOCKED = "authenticate.blocked"; |
public AuthenticateException() |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitEvaluationView.java |
---|
2,8 → 2,6 |
import pt.estgp.estgweb.domain.CourseUnitEvaluation; |
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl; |
import pt.estgp.estgweb.domain.CourseUnitProgram; |
import pt.estgp.estgweb.domain.CourseUnitProgramImpl; |
import java.io.Serializable; |
19,6 → 17,7 |
private CourseUnitEvaluation courseUnitEvaluation; |
private boolean fechar = false; |
public Class getReferenceClass() |
{ |
67,4 → 66,12 |
c.setQualApreciacaoUC(courseUnitEvaluation.getQualApreciacaoUC()); |
c.setQualConclusoes(courseUnitEvaluation.getQualConclusoes()); |
} |
public boolean isFechar() { |
return fechar; |
} |
public void setFechar(boolean fechar) { |
this.fechar = fechar; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseView.java |
---|
49,6 → 49,7 |
private String externalSitePath; |
private String validationRole; |
private boolean status; |
private String userGroupStudents; |
106,6 → 107,7 |
this.externalSitePath = course.getExternalSitePath(); |
this.externalSiteServer = course.getExternalSiteServer(); |
this.status = course.isStatus(); |
this.userGroupStudents = course.getUserGroupStudents(); |
if(course.getStudiesPlan() != null) |
this.studiesPlanStreamId = course.getStudiesPlan(); |
if(course.getCoordinator() != null) |
140,6 → 142,7 |
c.setExternalSiteServer(externalSiteServer); |
c.setValidationRole(validationRole); |
c.setStatus(status); |
c.setUserGroupStudents(userGroupStudents); |
if(coordinator != null && coordinator.getId() > 0) |
{ |
Teacher u = DaoFactory.getTeacherDaoImpl().load(coordinator.getId()); |
454,5 → 457,11 |
this.courseUnitsWithProgramNotCheckedS2 = courseUnitsWithProgramNotCheckedS2; |
} |
public String getUserGroupStudents() { |
return userGroupStudents; |
} |
public void setUserGroupStudents(String userGroupStudents) { |
this.userGroupStudents = userGroupStudents; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java |
---|
1,11 → 1,5 |
package pt.estgp.estgweb.domain; |
import jomm.dao.impl.AbstractDao; |
import java.io.Serializable; |
import java.util.Date; |
import java.util.Set; |
/** |
* @author Jorge Machado |
* @date 2/Mar/2008 |
111,4 → 105,9 |
} |
return false; |
} |
/*public String getPop3PassDecrypted() |
{ |
return DesUtils.getInstance().decrypt(getPop3password()); |
}*/ |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
207,7 → 207,7 |
} |
//TODO Na actualização de uma cadeira para o curso de TESTE mudar o coursecode para o o coursecode desse curso para nao deixar os dados duplicados e mal |
//TODO Na actualiza��o de uma cadeira para o curso de TESTE mudar o coursecode para o o coursecode desse curso para nao deixar os dados duplicados e mal |
//se nao a carregar unidades vai buscar a errada |
public CourseUnit loadBySigesCodeUnique(String sigesCode, String courseCode, String semestre, String year) |
{ |
220,9 → 220,21 |
.uniqueResult(); |
} |
public CourseUnit loadBySigesCodeUniqueMostRecent(String sigesCode, String courseCode, String semestre) |
{ |
return (CourseUnit) |
createCriteria() |
.add(eq("code", sigesCode)) |
.add(eq("courseCode", courseCode)) |
.add(eq("semestre", semestre)) |
.addOrder(Order.desc("importYear")) |
.setMaxResults(1).list().get(0); |
} |
public CourseUnit loadBySigesCodeUniqueLastYear(String sigesCode, String courseCode, String semestre) |
{ |
return loadBySigesCodeUnique(sigesCode,courseCode,semestre,DatesUtils.getImportYear()); |
return loadBySigesCodeUniqueMostRecent(sigesCode,courseCode,semestre); |
} |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitEvaluationImpl.java |
---|
1,13 → 1,172 |
package pt.estgp.estgweb.domain; |
import org.apache.fop.apps.FOPException; |
import org.dom4j.Document; |
import org.dom4j.Element; |
import org.dom4j.dom.DOMDocumentFactory; |
import pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation; |
import javax.xml.transform.TransformerException; |
import java.beans.ExceptionListener; |
import java.io.FileNotFoundException; |
import java.io.IOException; |
import java.io.OutputStream; |
import java.io.Serializable; |
/** |
* Created by jorgemachado on 03/06/14. |
*/ |
/** |
private String qualConclusoes; |
*/ |
public class CourseUnitEvaluationImpl extends CourseUnitEvaluation { |
@Override |
public Serializable getSerializable() { |
return getId(); |
} |
public CourseUnitEvaluationImpl() { |
} |
public Document getDom(){ |
Document dom = DOMDocumentFactory.getInstance().createDocument(); |
Element elemCourseUnitEvaluationImpl = dom.addElement("CourseUnitEvaluation"); |
Element id = elemCourseUnitEvaluationImpl.addElement("id"); |
id.setText(getId()+""); |
Element updateDate = elemCourseUnitEvaluationImpl.addElement("updateDate"); |
updateDate.setText(getUpdateDate()+""); |
Element saveDate = elemCourseUnitEvaluationImpl.addElement("saveDate"); |
saveDate.setText(getSaveDate()+""); |
Element closed = elemCourseUnitEvaluationImpl.addElement("closed"); |
closed.setText(isClosed()+""); |
Element numAlunosInscritos = elemCourseUnitEvaluationImpl.addElement("numAlunosInscritos"); |
numAlunosInscritos.setText(getNumAlunosInscritos()+""); |
Element numAlunosSemElementosAvaliacao = elemCourseUnitEvaluationImpl.addElement("numAlunosSemElementosAvaliacao"); |
numAlunosSemElementosAvaliacao.setText(getNumAlunosSemElementosAvaliacao()+""); |
Element numAlunosAprovFrequencia = elemCourseUnitEvaluationImpl.addElement("numAlunosAprovFrequencia"); |
numAlunosAprovFrequencia.setText(getNumAlunosAprovFrequencia()+""); |
Element numAlunosAprovNormal = elemCourseUnitEvaluationImpl.addElement("numAlunosAprovNormal"); |
numAlunosAprovNormal.setText(getNumAlunosAprovNormal()+""); |
Element numAlunosAprovRecurso = elemCourseUnitEvaluationImpl.addElement("numAlunosAprovRecurso"); |
numAlunosAprovRecurso.setText(getNumAlunosAprovRecurso()+""); |
Element numAlunosAprovEspecial = elemCourseUnitEvaluationImpl.addElement("numAlunosAprovEspecial"); |
numAlunosAprovEspecial.setText(getNumAlunosAprovEspecial()+""); |
Element numAlunosAprovTotal = elemCourseUnitEvaluationImpl.addElement("numAlunosAprovTotal"); |
numAlunosAprovTotal.setText(getNumAlunosAprovTotal()+""); |
Element numAlunosAprov1013 = elemCourseUnitEvaluationImpl.addElement("numAlunosAprov1013"); |
numAlunosAprov1013.setText(getNumAlunosAprov1013()+""); |
Element numAlunosAprov1416 = elemCourseUnitEvaluationImpl.addElement("numAlunosAprov1416"); |
numAlunosAprov1416.setText(getNumAlunosAprov1416()+""); |
Element numAlunosAprov1720 = elemCourseUnitEvaluationImpl.addElement("numAlunosAprov1720"); |
numAlunosAprov1720.setText(getNumAlunosAprov1720()+""); |
Element numAlunosAprovados = elemCourseUnitEvaluationImpl.addElement("numAlunosAprovados"); |
numAlunosAprovados.setText(getNumAlunosAprovados()+""); |
Element numAlunosReprovados = elemCourseUnitEvaluationImpl.addElement("numAlunosReprovados"); |
numAlunosReprovados.setText(getNumAlunosReprovados()+""); |
Element qualApreciacaoQuantitivos = elemCourseUnitEvaluationImpl.addElement("qualApreciacaoQuantitivos"); |
qualApreciacaoQuantitivos.setText(getQualApreciacaoQuantitivos()+""); |
Element qualApreciacaoUC = elemCourseUnitEvaluationImpl.addElement("qualApreciacaoUC"); |
qualApreciacaoUC.setText(getQualApreciacaoUC()+""); |
Element qualApreciacaoCumprimentoPrograma = elemCourseUnitEvaluationImpl.addElement("qualApreciacaoCumprimentoPrograma"); |
qualApreciacaoCumprimentoPrograma.setText(getQualApreciacaoCumprimentoPrograma()+""); |
Element qualConclusoes = elemCourseUnitEvaluationImpl.addElement("qualConclusoes"); |
qualConclusoes.setText(getQualConclusoes()+""); |
return dom; |
} |
public String writeXml() throws FileNotFoundException { |
StringOutputStream sout = new StringOutputStream(); |
java.beans.XMLEncoder xe1 = new java.beans.XMLEncoder(sout); |
xe1.setExceptionListener(new ExceptionListener() { |
@Override |
public void exceptionThrown(Exception e) { |
System.out.println("Exception:" + e.toString()); |
} |
}); |
//ObjectOutputStream oos = new ObjectOutputStream( baos ); |
xe1.writeObject(this); |
xe1.flush(); |
xe1.close(); |
return sout.getString(); |
} |
public static class StringOutputStream extends OutputStream { |
StringBuilder mBuf = new StringBuilder(); |
public void write(int c) throws IOException { |
mBuf.append((char) c); |
} |
public String getString() { |
return mBuf.toString(); |
} |
} |
public static class Teste |
{ |
public Teste(){} |
private String nome; |
public String getNome() { |
return nome; |
} |
public void setNome(String nome) { |
this.nome = nome; |
} |
} |
public static void main(String [] args) throws IOException, TransformerException, FOPException { |
CourseUnitEvaluationImpl cuv = new CourseUnitEvaluationImpl() { |
@Override |
public Serializable getSerializable() { |
return 1; |
} |
}; |
cuv.setClosed(true); |
cuv.setNumAlunosAprov1013(12); |
cuv.setNumAlunosInscritos("" + 20); |
cuv.setQualConclusoes("conclusoes"); |
SaveCourseUnitEvaluation s = new SaveCourseUnitEvaluation(); |
CourseUnit cu = new CourseUnitImpl(); |
cu.setNormalizedName("teste"); |
cu.setCode("TESTE"); |
s.generatePdf(cuv,cu); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/tags/CanManageTag.java |
---|
70,8 → 70,8 |
IInternal iInternal = (IInternal) owned; |
System.out.println("userSession: " + userSession); |
System.out.println("iInternal: " + iInternal); |
//System.out.println("userSession: " + userSession); |
//System.out.println("iInternal: " + iInternal); |
if((userSession==null || userSession.getUser() == null) && iInternal.isInternal()) |
{ |
return false; |
/impl/src/java/pt/estgp/estgweb/web/tags/OwnerImageRoleTag.java |
---|
39,7 → 39,7 |
public int doStartTag() throws JspException { |
HttpServletRequest hrequest = (HttpServletRequest) pageContext.getRequest(); |
Object bean = null; |
Object bean = null; |
if(name != null) |
bean = RequestUtils.lookup(pageContext, name, property, null); |
/impl/src/java/pt/estgp/estgweb/web/tags/Object2RequestTag.java |
---|
New file |
0,0 → 1,120 |
package pt.estgp.estgweb.web.tags; |
import jomm.utils.MessageResources; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.jsp.JspException; |
import javax.servlet.jsp.JspWriter; |
import javax.servlet.jsp.tagext.TagSupport; |
public class Object2RequestTag extends TagSupport |
{ |
private static final Logger logger = Logger.getLogger(Object2RequestTag.class); |
private String beanIdName; |
private String beanIdProperty; |
private String classname; |
private String useBean; |
public String getUseBean() { |
return useBean; |
} |
public void setUseBean(String useBean) { |
this.useBean = useBean; |
} |
public String getClassname() { |
return classname; |
} |
public void setClassname(String classname) { |
this.classname = classname; |
} |
public String getBeanIdName() { |
return beanIdName; |
} |
public void setBeanIdName(String beanIdName) { |
this.beanIdName = beanIdName; |
} |
public String getBeanIdProperty() { |
return beanIdProperty; |
} |
public void setBeanIdProperty(String beanIdProperty) { |
this.beanIdProperty = beanIdProperty; |
} |
public int doStartTag() throws JspException |
{ |
HttpServletRequest hrequest = (HttpServletRequest) pageContext.getRequest(); |
HttpServletResponse hresponse = (HttpServletResponse) pageContext.getResponse(); |
Object bean = null; |
try{ |
if(beanIdName != null) |
bean = org.apache.struts.util.RequestUtils.lookup(pageContext, beanIdName, beanIdProperty, null); |
}catch(JspException e) |
{ |
} |
Long id; |
if(bean == null) |
bean = hrequest.getParameter(beanIdName); |
if(bean == null) |
{ |
logger.error("Cant find " + beanIdName + " in any scope neither in paramenters"); |
return (SKIP_BODY); |
} |
if(bean instanceof String) |
id = Long.parseLong((String)bean); |
else |
id = (Long) bean; |
try { |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{classname, id}; |
Object loaded = sm.execute(RequestUtils.getRequester(hrequest, hresponse), "LoadObjectService", args, names); |
hrequest.setAttribute(useBean,loaded); |
} catch (FilterRetrieveException e) { |
e.printStackTrace(); |
} catch (InvalidFilterExpressionException e) { |
e.printStackTrace(); |
} catch (InvalidFilterException e) { |
e.printStackTrace(); |
} catch (ClassNotIFilterException e) { |
e.printStackTrace(); |
} catch (IncompatibleFilterException e) { |
e.printStackTrace(); |
} catch (ServiceManagerException e) { |
e.printStackTrace(); |
} catch (NoCookiesException e) { |
e.printStackTrace(); |
} catch (Throwable throwable) { |
throwable.printStackTrace(); |
} |
//JspWriter writer = pageContext.getOut(); |
return (SKIP_BODY); |
} |
} |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/java/pt/estgp/estgweb/web/FtpServer.java |
---|
46,6 → 46,7 |
{ |
FTPClient ftp = new FTPClient(); |
ftp.connect(host, port); |
if (username != null) |
ftp.user(username); |
if (password != null) |
/impl/src/java/pt/estgp/estgweb/web/LayoutController.java |
---|
1,5 → 1,6 |
package pt.estgp.estgweb.web; |
import jomm.utils.DesUtils; |
import jomm.web.ftp.IFile; |
import jomm.web.ftp.impl.FtpFile; |
import jomm.web.utils.NavPlace; |
11,6 → 12,8 |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
130,17 → 133,32 |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
String username = userSession != null ? userSession.getUsername() : "UNKNOWN"; |
String user = ConfigProperties.getProperty(serverStr + ".user"); |
String pass = ConfigProperties.getProperty(serverStr + ".pass"); |
if (path != null) |
{ |
FtpServer ftpServer = FtpServer.getServer(server, user, pass); |
boolean isStaticAccess = ConfigProperties.getBooleanProperty(serverStr+".use.default.credentials.to.updates.and.deletes"); |
String user; |
String pass; |
if(isStaticAccess) |
{ |
user = ConfigProperties.getProperty(serverStr + ".user"); |
pass = ConfigProperties.getProperty(serverStr + ".pass"); |
} |
else |
{ |
logger.warn("Will access using user and pass authnenticated to connect FTP " + serverStr); |
user= username; |
String passwordCode = (String) ((UserSessionImpl)userSession).get(FtpService.FTP_PASSWORD); |
pass= DesUtils.getInstance().decrypt(passwordCode); |
//pass= ((UserImpl)userSession.getUser()).getPop3PassDecrypted(); |
} |
FtpServer ftpServer = FtpServer.getNewServer(server, user, pass); |
FTPClient client = ftpServer.getClient(); |
if(!client.changeWorkingDirectory(path)) |
{ |
logger.warn(username + ": " + request.getRemoteAddr() + "cant access this area server:" + server + " and path:" + path); |
throw new NotAuthorizedException("nao pode aceder a esta area"); |
} |
FTPFile[] files = client.listFiles(); |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsEvaluationController.java |
---|
5,15 → 5,10 |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl; |
import pt.estgp.estgweb.domain.CourseUnitProgram; |
import pt.estgp.estgweb.domain.CourseUnitProgramImpl; |
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl; |
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView; |
import pt.estgp.estgweb.domain.views.CourseUnitProgramView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitEvaluationForm; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
121,7 → 116,44 |
} |
} |
public ActionForward publishEvaluation(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
long id = cUF.getCourseUnitView().getId(); |
CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView(); |
cuV.setFechar(true); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{cuV, id}; |
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
addMessage(request,"courseunit.evaluation.success"); |
return mapping.findForward("load"); |
} |
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"); |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsController.java |
---|
5,17 → 5,16 |
import org.apache.struts.upload.FormFile; |
import org.hibernate.ObjectNotFoundException; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.CourseUnitProgram; |
import pt.estgp.estgweb.domain.CourseUnitProgramImpl; |
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl; |
import pt.estgp.estgweb.domain.views.*; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.controllers.blogs.BlogsController; |
import pt.estgp.estgweb.web.controllers.profile.ProfileController; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.web.form.blogs.BlogForm; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm; |
import pt.estgp.estgweb.web.form.profile.ProfileForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
294,7 → 293,42 |
} |
public ActionForward loadDossier(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
try |
{ |
CourseUnitsForm cUF = (CourseUnitsForm) form; |
long id; |
if(request.getParameter("id")!=null) |
id = Long.parseLong(request.getParameter("id")); |
else |
id = cUF.getCourseUnitView().getId(); |
CourseUnitView cV = loadCourseUnitView(id,false,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
return mapping.findForward("load.dossier"); |
} |
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 loadTeacher(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
845,6 → 879,15 |
{ |
return loadCourseUnitIntranet(Globals.INTRANET_PRESENCES,"courseLayoutIOnlinePresences",mapping,form,request,response); |
} |
public ActionForward loadDtp( |
ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
return loadCourseUnitIntranet(Globals.INTRANET_DTP,"courseLayoutIOnlineDtp",mapping,form,request,response); |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/processes/ProcessEventController.java |
---|
247,8 → 247,57 |
} |
} |
public ActionForward deleteLastProcessEvent(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException |
{ |
try |
{ |
ProcessEventForm f = (ProcessEventForm)form; |
HibernateUtils.getCurrentSession().beginTransaction(); |
Process process = DaoFactory.getProcessDaoImpl().load(Long.parseLong(request.getParameter("id"))); |
User nowUser = UserSessionProxy.loadUserSessionFromRequest(request).getUser(); |
ProcessEvent pLastEvent = process.getLastEvent(); |
//only Last Event |
if(!((ProcessImpl)pLastEvent.getProcess()).canRemoveLastEvent(nowUser)) |
return mapping.findForward("error401"); |
Date now = new Date(); |
logger.warn("Deleting event: " + pLastEvent.toString()); |
pLastEvent.getProcess().setLastEvent(pLastEvent.getPreviousEvent()); |
pLastEvent.getPreviousEvent().setNextEvent(null); |
pLastEvent.getProcess().getEvents().remove(pLastEvent); |
pLastEvent.setProcess(null); |
pLastEvent.getProcess().setLastChangeDate(now); |
pLastEvent.getProcess().setNowState(ProcessImpl.ProcessState.TRANSITION.name()); |
pLastEvent.setNowState(ProcessEventImpl.ProcessEventState.ACCEPTED.name()); |
pLastEvent.setCloseDate(null); |
pLastEvent.setDispatchedDate(null); |
DaoFactory.getProcessEventDaoImpl().delete(pLastEvent); |
logger.warn("DELETED event: " + pLastEvent.toString()); |
//importPossibleFile(request, f, p, now); |
HibernateUtils.getCurrentSession().getTransaction().commit(); |
request.setAttribute("processId",f.getProcessEvent().getProcess().getId()); |
return mapping.getInputForward(); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
return mapping.findForward("error501"); |
} |
} |
public ActionForward reopenProcessEventPerson(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
/impl/src/java/pt/estgp/estgweb/web/ImageStream.java |
---|
57,9 → 57,10 |
out.close(); |
} |
catch (Exception e1) |
catch (Throwable e1) |
{ |
e1.printStackTrace(); |
logger.error(e1 ); |
response.sendError(404); |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
/impl/src/java/pt/estgp/estgweb/examples/DBInit.java |
---|
39,6 → 39,9 |
announcement.setOwner(user); |
announcement.setTitle("Titulo de Teste"); |
announcement.setText("Anuncio de Teste"); |
announcement.setPopupheightpx(0); |
announcement.setPopupwidthpx(0); |
announcement.setPosition(0); |
announcement.setStatus(true); |
announcement.setType(Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS); |
announcement.setTargetRoles("all"); |
51,6 → 54,9 |
announcement2.setText("Anuncio de Teste"); |
announcement2.setStatus(true); |
announcement2.setType(Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS); |
announcement2.setPopupheightpx(0); |
announcement2.setPopupwidthpx(0); |
announcement2.setPosition(0); |
DaoFactory.getAnnouncementDaoImpl().save(announcement2); |
AnnouncementImpl announcement3 = DomainObjectFactory.createAnnouncementImpl(); |
60,6 → 66,9 |
announcement3.setTargetRoles("all"); |
announcement3.setType(Globals.ANNOUNCEMENT_TYPE_NEWS); |
announcement3.setStatus(true); |
announcement3.setPopupheightpx(0); |
announcement3.setPopupwidthpx(0); |
announcement3.setPosition(0); |
DaoFactory.getAnnouncementDaoImpl().save(announcement3); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
/impl/src/doc/estgweb.eap |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/impl/src/doc/baco.ppt |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/impl/src/hbm/pt/estgp/estgweb/domain/Assessment.hbm.xml |
---|
47,8 → 47,8 |
<generator class="native"/> |
</id> |
<discriminator column="discriminator"/> |
<property name="textpt" type="string"/> |
<property name="texten" type="string"/> |
<property name="textpt" type="text"/> |
<property name="texten" type="text"/> |
<property name="type" type="string"/> |
<property name="quotation" type="double"/> |
<property name="textExtra" type="string"/> |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
28,6 → 28,7 |
<property name="validProgram" type="boolean" index="validProgramIndex"/> |
<property name="status" type="boolean" index="statusIndex" /> |
<property name="contentsGrants" type="string"/> |
<property name="evaluationStreamId" type="string" index="evaluationStreamIdIndex" /> |
<many-to-one name="validatorUser" class="pt.estgp.estgweb.domain.Teacher" lazy="false" outer-join="true"/> |
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="false" outer-join="true"/> |
<many-to-one name="courseUnitProgram" class="pt.estgp.estgweb.domain.CourseUnitProgram" lazy="false" outer-join="true"/> |
/impl/src/hbm/pt/estgp/estgweb/domain/Course.hbm.xml |
---|
28,6 → 28,7 |
<property name="studiesPlan" type="string" index="studiesPlanIndex"/> |
<property name="validationRole" type="string" index="validationRoleIndex"/> |
<property name="area" type="string" index="areaIndex"/> |
<property name="userGroupStudents" type="string"/> |
<many-to-one name="director" class="pt.estgp.estgweb.domain.Teacher" outer-join="false" lazy="proxy"/> |
<many-to-one name="coordinator" class="pt.estgp.estgweb.domain.Teacher" outer-join="false" lazy="proxy"/> |
<set name="users" order-by="user.name asc" lazy="true"> |
/impl/src/web/imgs/mime/docx.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/index.jsp |
---|
1,4 → 1,5 |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
<%@page language="java" contentType="UTF-8" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%--<logic:forward name="welcome"/>--%> |
<logic:forward name="welcome"/> |
/impl/src/web/admin/courses/course.jsp |
---|
77,8 → 77,9 |
<html:option value="A"><bean:message key="course.A"/></html:option> |
<html:option value="C"><bean:message key="course.C"/></html:option> |
<html:option value="O"><bean:message key="course.O"/></html:option> |
<html:option value="T"><bean:message key="course.T"/></html:option> |
</html:select> |
* SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Confirmar Mestrados e Pos graduacoes e informar equipa de desenvolvimento |
** SIGES: <bean:write name="CourseForm" property="courseView.degree"/> - Confirmar Mestrados e Pos graduacoes e informar equipa de desenvolvimento |
</td> |
</tr> |
<tr> |
101,8 → 102,18 |
<html:text property="courseView.institutionalCode"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="course.userGroupStudents"/> |
</th> |
<td> |
<html:text property="courseView.userGroupStudents"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="course.description"/> |
</th> |
<td> |
/impl/src/web/layout/layoutWelcome.jsp |
---|
57,7 → 57,7 |
boolean flash = false; |
try |
{ |
java.net.URL url = new java.net.URL("http://baco.estgp.pt:9090/static/public/portal/imagens/HOME.swf"); |
java.net.URL url = new java.net.URL("http://www.estgp.pt:9090/static/public/portal/imagens/HOME.swf"); |
java.io.InputStream s = url.openStream(); |
s.close(); |
flash=true; |
86,7 → 86,7 |
else |
{ |
%> |
<img src="http://baco.estgp.pt:9090/static/public/portal/imagens/HOME.jpg"/> |
<img src="http://www.estgp.pt:9090/static/public/portal/imagens/HOME.jpg"/> |
<% |
} |
%> |
/impl/src/web/layout/layoutintranet.jsp |
---|
7,6 → 7,7 |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
<html:html locale="true"> |
<head> |
<title><bean:message key="site.title"/> - <tiles:getAsString name="title"/></title> |
/impl/src/web/layout/navigationTop.jsp |
---|
61,6 → 61,7 |
<li><html:link action="/courses?type=E"><bean:message key="course.E"/></html:link></li> |
<li><html:link action="/courses?type=A"><bean:message key="course.A"/></html:link></li> |
<li><html:link action="/courses?type=P"><bean:message key="course.P"/></html:link></li> |
<li><html:link action="/courses?type=T"><bean:message key="course.T"/></html:link></li> |
</ul> |
</div> |
</li> |
/impl/src/web/user/courseunits/topnavDossierTecnicoPedagogico.jsp |
---|
New file |
0,0 → 1,21 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<%@ page import="pt.estgp.estgweb.domain.views.BlogView" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%--<baco:object2Request beanIdName="id" classname="pt.estgp.estgweb.domain.CourseUnit" useBean="CourseUnitView"/>--%> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course",CourseUnitView.getCourseName()); |
topNav.addNavPlace("/user/startLoadCourseUnitFromHome.do?courseUnitView.id=" + CourseUnitView.getId(), "courseunit",CourseUnitView.getName()); |
topNav.addNavPlace(null, "courseunit.dossier.tecnico.pedagogico"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/user/courseunits/courseunitEvaluation.jsp |
---|
53,8 → 53,13 |
<div class="seccao"> |
<h2> |
<bean:message key="courseunit.evaluation"/> |
</h2> |
<p class="WARNING"><bean:message key="courseunit.evaluation.warning"/></p> |
<% |
%> |
<% |
boolean editCoordinatorPart = false; |
boolean editTeacherPart = false; |
127,6 → 132,9 |
<html:hidden property="courseUnitView.id"/> |
<%--DOCENTE--%> |
<logic:equal value="true" name="CourseUnitEvaluationForm" property="courseUnitEvaluationView.fechar"> |
<p class="alert-success">Esta avaliação está publicada no DTP em formato PDF</p> |
</logic:equal> |
<table class="dataTable tableDisabled" width="100%"> |
<tr> |
248,6 → 256,7 |
%> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/> |
<!--<input type="button" value="FECHAR E PUBLICAR" onclick="set(form,'publishEvaluation');form.submit()"/>--> |
<% |
} |
%> |
/impl/src/web/user/courseunits/dossierTecnicoPedagogico.jsp |
---|
New file |
0,0 → 1,11 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<div class="seccao"> |
<bean:message key="courseunit.dossier.tecnico.pedagogico"/> |
</div> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/user/courseunits/menu.jsp |
---|
16,7 → 16,9 |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<% |
try{ |
if (request.getAttribute("BlogView") != null) |
{ |
BlogView bV = (BlogView) request.getAttribute("BlogView"); |
57,15 → 59,21 |
<% |
if(Globals.MODULE_STATUS_COURSEUNITEVALUATION) |
try{ |
//System.out.println(CourseUnitView); |
//System.out.println(CourseUnitView.getCourseView()); |
//System.out.println(CourseUnitView.getResponsableTeacher()); |
if(CourseUnitView != null && Globals.MODULE_STATUS_COURSEUNITEVALUATION) |
{ |
//todo é necessário um servico para ver se tem estes papeis |
if(CourseUnitView.getResponsableTeacher().getId() == UserSession.getUser().getId() |
|| |
CourseUnitView.isOwnedBy(UserSession.getUser(),false) |
|| |
// || |
//Validation Role e o papel da comissão de curso |
UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole())) |
//UserSession.getUser().hasRole(CourseUnitView.getCourseView().getValidationRole()) |
) |
{ |
%> |
<li style="background-color: yellow"> |
74,8 → 82,16 |
<% |
} |
} |
}catch(Throwable e) |
{ |
} |
%> |
<li> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
<html:link action="/user/startLoadCourseUnitDossierFromHome.do?id=${CourseUnitView.id}"><bean:message key="courseunit.dossier.tecnico.pedagogico"/></html:link> |
</baco:isTeacherOfCourseUnit> |
</li> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
<li> |
<html:link action="/user/startSubmitAnnouncementFromCourseUnit?announcementView.courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.put.announcement"/></html:link> |
136,6 → 152,9 |
<li> |
<img alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"> <html:link action="/user/startLoadCourseUnitGradesFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.grades"/></html:link> |
</li> |
<li> |
<img alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"> <html:link action="/user/startLoadCourseUnitDtpFromHome?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.dtp"/></html:link> |
</li> |
<% |
} |
%> |
193,3 → 212,10 |
</div> |
</div> |
</logic:present> |
<% |
}catch(Throwable e) |
{ |
System.out.println(e.toString()); |
e.printStackTrace(); |
} |
%> |
/impl/src/web/user/ftpclient/ftpclient.jsp |
---|
151,7 → 151,7 |
|
<% |
if (i.getName().toLowerCase().endsWith("doc") || i.getName().endsWith("rtf")) |
if (i.getName().toLowerCase().endsWith("doc") || i.getName().endsWith("rtf") || i.getName().endsWith("docx")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/doc.gif"> |
244,4 → 244,4 |
<% |
} |
} |
%> |
%> |
/impl/src/web/user/home/topnavCourseUnitDtp.jsp |
---|
New file |
0,0 → 1,13 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course",CourseUnitView.getCourseName()); |
topNav.addNavPlace("/user/startLoadCourseUnitFromHome.do?courseUnitView.id=" + CourseUnitView.getId(), "courseunit",CourseUnitView.getName()); |
topNav.addNavPlace(null, "courseunit.menu.dtp"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/user/home/teacher.jsp |
---|
25,8 → 25,8 |
<div class="block"> |
<% |
java.util.List<String> years = new java.util.ArrayList<String>(); |
years.add("201516"); |
years.add("201415"); |
years.add("201314"); |
java.util.Collections.sort(years, new java.util.Comparator<String>() |
{ |
/impl/src/web/user/processes/openProcess.jsp |
---|
96,6 → 96,38 |
</tr> |
</table> |
<% |
if(((ProcessImpl)process).canRemoveLastEvent(UserSession.getUser())) |
{ |
%> |
<form action="<%=request.getContextPath()%>/user/processEventController.do" method="post"> |
<input type="hidden" name="id" value="<%=processId%>"/> |
<input type="hidden" name="dispatch" value="deleteLastProcessEvent"/> |
<table border="0" style="background-color: #ffc9da"> |
<tr> |
<td> |
<table class="processActivity" cellpadding="0" cellspacing="0" width="100%"> |
<tr> |
<td class="processActivityTail"><img src="<%=request.getContextPath()%>/imgs/process/leftProcess.gif"/></td> |
<td class="processActivityName"> |
<input class="TERMINAR_BTN" type="button" value="ELIMINAR ULTIMO EVENTO" onclick="if(confirm('Tem a certeza que deseja eliminar o ultimo evento deste processo? Esta acção será reportada e ficará registada.')){this.form.submit();}"/> |
</td> |
<td class="processActivityArrow"><img src="<%=request.getContextPath()%>/imgs/process/rightProcess.gif"/></td> |
</tr> |
</table> |
</td> |
<td> |
<img src="<%=request.getContextPath()%>/imgs/process/actor.gif"/> ${UserSession.user.name} |
</td> |
</tr> |
</table> |
</form> |
<input class="TRANSITAR_BTN" type="button" value="TRANSITAR" onclick="if(confirm('Tem a certeza que deseja transitar este processo para ' + this.form.destinationPerson.options[this.form.destinationPerson.selectedIndex].text + '?')){set(form,'transitProcessEventPerson');this.form.submit();}"/> |
<% |
} |
if(process.getNowState().equals(ProcessImpl.ProcessState.CLOSED.name()) && |
process.canReopen(UserSession.getUser())) |
{ |
/impl/build.xml |
---|
9,6 → 9,7 |
--> |
<target name="help"> |
<echo>This is the availible Ant Tasks:</echo> |
<echo message="${env.JAVA_HOME}"></echo> |
</target> |