/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&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.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>-></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 |
---|
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> |
<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/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 + |
'}'; |
} |
} |