Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 896 → Rev 901

/impl/importRoutines.xml
7,24 → 7,28
 
<target name="courses">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportCourseService" classpath="${build.dir.classes}" classpathref="pathToToolsLib">
<arg value="201314"/>
<!--<arg value="201314"/>-->
<arg value="201415"/>
</java>
</target>
<target name="sincronizeunits">
<java classname="pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib">
<arg value="201314"/>
<!--<arg value="201314"/>-->
<arg value="201415"/>
<arg value="true"/>
<arg value="true"/>
</java>
</target>
<target name="teachers">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportTeachersService" classpath="${build.dir.classes}" classpathref="pathToToolsLib">
<arg value="201314"/>
<!--<arg value="201314"/>-->
<arg value="201415"/>
</java>
</target>
<target name="students">
<java classname="pt.estgp.estgweb.services.sigesimports.ImportStudentsService" classpath="${build.dir.classes}" classpathref="pathToToolsLib">
<arg value="201314"/>
<!--<arg value="201314"/>-->
<arg value="201415"/>
</java>
</target>
<target name="grades">
/impl/conf/language/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
 
61,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/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
 
176,6 → 177,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&amp;from=Home"/>
<action path="/user/startLoadCourseUnitGradesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadGrades&amp;from=Home"/>
<action path="/user/startLoadCourseUnitPresencesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadPresences&amp;from=Home"/>
<action path="/user/startLoadCourseUnitDtpFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadDtp&amp;from=Home"/>
<action path="/user/startCourseUnitBlogFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=startBlog&amp;from=CourseUnit"/>
<action path="/user/startLoadCourseUnitAssignementFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadAssignement&amp;from=Home"/>
<action path="/user/startValidateInvalidateCourseUnitWorksFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=validateInvalidateAssignement&amp;from=Home"/>
94,6 → 96,8
<action path="/user/startLoadTeacherCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadTeacher&amp;from=Home"/>
<action path="/user/startLoadStudentCourseUnitFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadStudent&amp;from=Home"/>
 
<action path="/user/startLoadCourseUnitDossierFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadDossier&amp;from=Home"/>
 
<action path="/user/startLoadCourseUnitSigesFromHome" forward="/user/courseUnitControllerFromHome.do?dispatch=loadCourseUnitWebSiteBySigesCodes&amp;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.Ficha.de.Avaliacao.da.Unidade.Curricular
intranet.dtp.inquerito_pedagogico=6.Inquerito.Pedagogico.Unidade.Curricular
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/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>-&gt;</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/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");
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitDirPackageServiceBat.java
New file
0,0 → 1,323
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.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 " + 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 /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");
 
/*
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_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");
}
if(Globals.INTRANET_DTP_CourseCoordinatorWrite && c.getCoordinator() != null)
{
batRunner.write("CACLS " + Globals.INTRANET_DTP + " /T /E /G " + c.getCoordinator().getUsername() + ":C\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 ..\\..\\\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/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/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/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/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/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/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/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/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
79,7 → 79,7
<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>
102,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/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/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>
&nbsp;&nbsp; <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>
&nbsp;&nbsp; <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
&nbsp;
 
<%
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/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/gen/java/pt/ipportalegre/siges/web/services/Docente.java
390,22 → 390,4
this.disciplinas = value;
}
 
@Override
public String toString() {
return "Docente{" +
"codigoFuncionario=" + codigoFuncionario +
", nomeFuncionario='" + nomeFuncionario + '\'' +
", nomeFuncionarioInt='" + nomeFuncionarioInt + '\'' +
", nomeAcademico='" + nomeAcademico + '\'' +
", sexo='" + sexo + '\'' +
", dataNascimento=" + dataNascimento +
", morada='" + morada + '\'' +
", codigoPostal=" + codigoPostal +
", subCodigoPostal=" + subCodigoPostal +
", email='" + email + '\'' +
", numeroBi='" + numeroBi + '\'' +
", usernameNetpa='" + usernameNetpa + '\'' +
", disciplinas=" + disciplinas +
'}';
}
}