/impl/importRoutines.xml |
---|
28,8 → 28,8 |
<target name="teachers"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportTeachersService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<!--<arg value="201314"/>--> |
<!--<arg value="201415"/>--> |
<arg value="201516"/> |
<arg value="201415"/> |
<!--<arg value="201516"/>--> |
</java> |
</target> |
<target name="students"> |
67,7 → 67,7 |
</java> |
</target> |
<target name="grades"> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportGradesService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<!--<java classname="pt.estgp.estgweb.services.sigesimports.ImportGradesService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="200809"/> |
</java> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportGradesService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
81,10 → 81,11 |
</java> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportGradesService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201213"/> |
</java> |
</java>--> |
<java classname="pt.estgp.estgweb.services.sigesimports.ImportGradesService" classpath="${build.dir.classes}" classpathref="pathToToolsLib"> |
<arg value="201314"/> |
</java> |
</target> |
<target name="setAreas"> |
107,9 → 108,13 |
<java classname="pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/> |
</target> |
<target name="storeAllEvaluationsFtp"> |
<java classname="pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/> |
</target> |
<target name="loadSummariesAtsi"> |
<java classname="pt.estgp.estgweb.services.sigesimports.LoadSumariesToPDF" classpath="${build.dir.classes}" classpathref="pathToToolsLib"/> |
</target> |
/impl/conf/language/MessageResourcesCourse.properties |
---|
3,6 → 3,7 |
# COURSE UNITS MESSAGE RESOURCES |
# |
################################################################################ |
course.label=Curso |
module.Courses=Cursos |
course.new=Criar Curso |
course.submit.edit=Editar Curso {0} |
100,3 → 101,5 |
status=Curso Activo |
courses.fill.course=Por favor escolha pelo menos um curso nos filtros. |
course.pedagogic.contents.admin=Administração de Inquéritos Pedagógicos |
/impl/conf/language/MessageResources.properties |
---|
475,6 → 475,9 |
user.role.courseValidateProgramTGI=Comissão de Curso de TGI |
user.role.courseValidateProgramRU=Comissão de Curso de RU |
user.role.courseValidateProgramCF=Comissão de Curso de Contabilidade e Finanças |
user.role.courseValidateProgramTPB=Comissão de Curso de Tecnologias de Produção de Biocombustíveis |
configuration.grades=Configuração Pautas |
configuration=Configurações |
configuration.directories=Configuração de Directórios |
518,7 → 521,8 |
configuration.task.weekday=Dia da semana |
configuration.task.monthday=Dia do Mês |
configuration.task.now=Agendar para correr agora |
configuration.tasks.canceled=Calcelado |
configuration.tasks.saved=Tarefa agendada com sucesso |
configuration.task.records=Registos de Tarefas Agendadas |
configuration.task.log=Ficheiro de Registo |
configuration.task.progress=Progresso |
545,6 → 549,14 |
weekday.Sat=Sabados |
weekday.Sun=Domingos |
weekday.2=Segundas |
weekday.3=Terças |
weekday.4=Quartas |
weekday.5=Quintas |
weekday.6=Sextas |
weekday.7=Sabados |
weekday.1=Domingos |
monthday.day=ao dia |
weekday.day=às |
day.time=às |
/impl/conf/language/MessageResourcesCourseUnits.properties |
---|
94,7 → 94,7 |
courseunit.students=Estudantes |
courseunit.students.count=Total de estudantes inscritos |
courseunit.program=Ficha Curricular |
courseunit.edit.program=Editar Programa |
courseunit.edit.program=Editar Ficha Curricular |
courseunit.assignement.deliver.time=Entregue |
courseunit.assignement.deliver.time.ok=Entregue a Horas |
142,10 → 142,10 |
courseunits.contentsGrants=Permiss\u00f5es de Consulta dos Ficheiros de Conte\u00fados |
courseunits.contentsGrants.PUBLIC=PUBLICAS |
courseunits.contentsGrants.PRIVATE=PRIVADOS A ESTUDANTES E DOCENTES DA UNIDADE |
courseunits.contentsGrants.INTERNAL=COMUNIDADE ACAD\u00c9MICA |
courseunits.contentsGrants=Anuncios e Blog |
courseunits.contentsGrants.PUBLIC=PUBLICO |
courseunits.contentsGrants.PRIVATE=privado unidade |
courseunits.contentsGrants.INTERNAL=interno ESTG |
courseunit.program.objectivos=Objetivos da aprendizagem (conhecimentos, aptid\u00f5es e compet\u00eancias) a desenvolver pelos estudantes, operacionaliza\u00e7\u00e3o dos objetivos e medi\u00e7\u00e3o do seu grau de cumprimento) |
185,12 → 185,12 |
courseunit.evaluation.success=Ficha de Avalia\u00e7\u00e3o alterada com sucesso |
courseunit.turma=Turma |
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. |
/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
86,8 → 86,16 |
<!-- |
Administração Conselho Pedagógico |
Atividade de entrada de inqueritos pedagogicos |
--> |
<action path="/user/coursePedagogicContents" forward="page.courses.pedagogic.contents"/> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/tiles-courses.xml |
---|
75,12 → 75,12 |
</definition> |
<definition name="page.directed.coordinated.courses.from.home" extends="page.separators.home"> |
<definition name="page.directed.coordinated.courses.from.home" extends="base.separators"> |
<put name="title" value="Ver Cursos e Unidades"/> |
<put name="topnav" value="/user/courses/topnavDirectedCoordinatedCourses.jsp"/> |
<put name="body" value="/user/courses/directedCoordinatedCourses.jsp"/> |
</definition> |
<definition name="page.courses.programs.from.home" extends="page.separators.home"> |
<definition name="page.courses.programs.from.home" extends="base.separators"> |
<put name="title" value="Ver Cursos e Unidades"/> |
<put name="topnav" value="/user/courses/topnavDirectedCoordinatedCourses.jsp"/> |
<put name="body" value="/user/courses/directedCoordinatedCourses.jsp"/> |
88,6 → 88,11 |
<definition name="page.courses.pedagogic.contents" extends="page.separators.serviceZone"> |
<put name="title" value="Conselho Pedagógico Inquéritos"/> |
<put name="topnav" value="/user/serviceZone/topnavCoursePedagogicContents.jsp"/> |
<put name="body" value="/admin/courses/coursePedagogicContents.jsp"/> |
</definition> |
/impl/conf/app.properties |
---|
257,6 → 257,8 |
user.role.78=courseValidateProgramRPS |
user.role.79=courseValidateProgramTGI |
user.role.80=courseValidateProgramRU |
user.role.85=courseValidateProgramCF |
user.role.86=courseValidateProgramTPB |
user.role.81=courseValidatePrograms |
458,7 → 460,7 |
######################################################################### |
# Common Services |
# |
search.max.results=8 |
search.max.results=30 |
search.best.fragments.max.fragment.size=80 |
search.best.fragments.max.fragments=3 |
467,6 → 469,9 |
# Imports SIGoES |
# |
#Disciplinas extracurriculares tem 6 no CdTipoDisci nas inscrições |
siges.codigo.tipo.disciplina.extra.curricular=6 |
siges.degree.1=L |
siges.degree.2=B |
siges.degree.3=D |
485,6 → 490,8 |
siges.degree.16=C |
siges.degree.17=O |
siges.degree.unknown=Z |
# DONT USE ANY MORE NOW IS IN CONFIGURATION DAO national.institution.code=3122 |
# DONT USE ANY MORE NOW IS IN CONFIGURATION DAO siges.institution.code=1 |
# DONT USE ANY MORE NOW IS IN CONFIGURATION DAO ws.siges.wsdl=@ws.siges.wsdl@ |
534,6 → 541,8 |
intranet.dtp.course.coordinator.write=true |
intranet.dtp.course.director.write=true |
intranet.dtp.course.unit.responsible.write=true |
intranet.dtp.course.unit.fullcontrol.roles= |
intranet.dtp.course.unit.inquerito_pedagogico.role=pedagogicCouncil |
##COLOCAR AQUI AS DEFINICOES DO DTP |
/impl/conf/directories/topMenus.xsl |
---|
57,4 → 57,86 |
</xsl:if> |
</li> |
</xsl:template> |
<xsl:template match="/" mode="new" > |
<nav class="navbar navbar-default"> |
<div class="container-fluid"> |
<div class="navbar-header"> |
</div> |
<ul class="nav navbar-nav"> |
<xsl:apply-templates select="/d:directory/d:leaf" mode="root"/> |
</ul> |
</div> |
</nav> |
</xsl:template> |
<xsl:template match="d:leaf" mode="new"> |
<xsl:choose> |
<xsl:when test="./d:leaf"> |
<li class="dropdown"> |
<a class="dropdown-toggle" data-toggle="dropdown" > |
<xsl:attribute name="href"> |
<xsl:choose> |
<xsl:when test="@url and @absolute='true'"> |
<xsl:value-of select="@url"/> |
</xsl:when> |
<xsl:when test="@url and @absolute='false'"> |
<xsl:value-of select="$contextPath"/><xsl:value-of select="@url"/> |
</xsl:when> |
<xsl:otherwise>#</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
<xsl:value-of select="@label"/> |
<span class="caret"></span> |
</a> |
<ul class="dropdown-menu"> |
<xsl:for-each select="./d:leaf"> |
<li> |
<a> |
<xsl:attribute name="href"> |
<xsl:choose> |
<xsl:when test="@url and @absolute='true'"> |
<xsl:value-of select="@url"/> |
</xsl:when> |
<xsl:when test="@url and @absolute='false'"> |
<xsl:value-of select="$contextPath"/><xsl:value-of select="@url"/> |
</xsl:when> |
<xsl:otherwise>#</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
<xsl:value-of select="@label"/> |
</a> |
</li> |
</xsl:for-each> |
</ul> |
</li> |
</xsl:when> |
<xsl:otherwise> |
<li> |
<a> |
<xsl:attribute name="href"> |
<xsl:choose> |
<xsl:when test="@url and @absolute='true'"> |
<xsl:value-of select="@url"/> |
</xsl:when> |
<xsl:when test="@url and @absolute='false'"> |
<xsl:value-of select="$contextPath"/><xsl:value-of select="@url"/> |
</xsl:when> |
<xsl:otherwise>#</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
<xsl:value-of select="@label"/> |
</a> |
</li> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
</xsl:stylesheet> |
/impl/conf/berserk/sd.xml |
---|
2225,10 → 2225,24 |
</filterChains> |
</service> |
<service> |
<name>SaveJobServiceTaskScheduler</name> |
<implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>save</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
saveJobServiceTaskScheduler |
</serviceDefinitions> |
/impl/src/java/jomm/dao/impl/AbstractDao.java |
---|
937,4 → 937,6 |
} |
return deletedObjects; |
} |
} |
/impl/src/java/pt/estgp/estgweb/utils/StringsUtils.java |
---|
48,7 → 48,8 |
List<String> l = new ArrayList<String>(); |
for (String role : roles) |
{ |
l.add(role); |
if(role != null && role.trim().length() > 0) |
l.add(role); |
} |
return l; |
} |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
1,6 → 1,7 |
package pt.estgp.estgweb; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.StringsUtils; |
import java.util.List; |
97,6 → 98,9 |
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"); |
//use , as separator |
public static final List<String> INTRANET_DTP_FULLCONTROL_ROLES = StringsUtils.getStringsFromSerial(ConfigProperties.getProperty("intranet.dtp.course.unit.fullcontrol.roles"),","); |
public static final String INTRANET_DTP_INQUERITO_PEDAGOGICO_ROLE = ConfigProperties.getProperty("intranet.dtp.course.unit.inquerito_pedagogico.role"); |
242,8 → 246,10 |
public static final String PROFILE_SCHOLAR_DEGREE_SUPERIOR = "superior"; |
public static final String PROFILE_DEGREE_NOTSET = "notset"; |
public static final String COURSE_DEGREE_UNKNOWN = ConfigProperties.getProperty("siges.degree.unknown"); |
public static final boolean SMS_COURSEUNIT_ANNOUNCEMENT = ConfigProperties.getBooleanProperty("sms.courseunit.announcement"); |
public static final boolean SMS_NEW_GRADES = ConfigProperties.getBooleanProperty("sms.new.grades"); |
public static final boolean EMAIL_NEW_GRADES = ConfigProperties.getBooleanProperty("email.new.grades"); |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
1,5 → 1,6 |
package pt.estgp.estgweb.services.courseunits; |
import jomm.dao.impl.AbstractDao; |
import jomm.utils.PdfUtils; |
import org.apache.commons.net.ftp.FTP; |
import org.apache.commons.net.ftp.FTPClient; |
9,8 → 10,10 |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl; |
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.IRepositoryFile; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.utils.Dom4jUtil; |
19,10 → 22,7 |
import javax.xml.transform.TransformerException; |
import javax.xml.transform.dom.DOMSource; |
import java.io.File; |
import java.io.FileInputStream; |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.io.*; |
import java.text.SimpleDateFormat; |
import java.util.*; |
200,13 → 200,13 |
//NOVO |
/* |
if(cuv.isClosed()) |
{ |
RepositoryFileImpl repoFile = repositoryService.loadView(cu.getEvaluationStreamId()); |
sendPdfFtpIonline(cu,errors,userSession,path,repoFile.getLastVersion().getSaveDate(),null); |
sendPdfFtpIonline(cu,errors,userSession,new FileInputStream(path),repoFile.getLastVersion().getSaveDate(),null); |
} |
*/ |
} |
public String generatePdf(CourseUnitEvaluation cuv, CourseUnit c) throws IOException, TransformerException, FOPException { |
253,7 → 253,7 |
}*/ |
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd.HH_mm_ss"); |
private void sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u,String pdfPath,Date versionDate,FTPClient client) throws IOException, TransformerException, FOPException { |
private boolean sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u,InputStream input,Date versionDate,FTPClient client) throws IOException, TransformerException, FOPException { |
FtpServer server = null; |
if(client == null) |
264,7 → 264,7 |
{ |
logger.warn("###################"); |
logger.warn("################### > CANT CONNECT FTP"); |
return; |
return false; |
} |
} |
client.setFileType(FTP.BINARY_FILE_TYPE); |
273,18 → 273,70 |
if(!client.changeWorkingDirectory(pastaFichaCurricular)) |
{ |
logger.error("FTP CANT CHANGE TO PATH: " + pastaFichaCurricular); |
return false; |
} |
else |
{ |
client.storeFile(cu.getCode() + "_" + cu.getNormalizedName() + "_v" + sdf.format(versionDate) + ".pdf",new FileInputStream(pdfPath)); |
client.storeFile(cu.getCode() + "_" + cu.getNormalizedName() + "_v" + sdf.format(versionDate) + ".pdf",input); |
if(server != null) |
{ |
client.quit(); |
client.disconnect(); |
} |
return true; |
} |
// |
} |
public void storeAllClosedEvaluationsInActivePeriod() throws IOException |
{ |
CourseUnitDaoImpl dao = DaoFactory.getCourseUnitDaoImpl(); |
List<Long> unitsIds = dao.loadClosedCourseUnitsEvaluations(); |
List<String> errors = new ArrayList<String>(); |
for (Long unitId: unitsIds) { |
CourseUnit next = DaoFactory.getCourseUnitDaoImpl().load(unitId); |
try { |
if(next.getEvaluationStreamId() == null) |
{ |
System.out.print("Generating PDF for evaluation report for: " + next.getCourse().getName() + " - " + next.getSemestre() + " - " + next.getNormalizedName()); |
createPdf(next.getCourseUnitEvaluation(),next,null,errors); |
} |
System.out.print("Sending evaluation report for: " + next.getCourse().getName() + " - " + next.getSemestre() + " - " + next.getNormalizedName()); |
RepositoryFileImpl repoFile = repositoryService.loadView(next.getEvaluationStreamId()); |
IRepositoryFile iRepoFile = repositoryService.loadByIdentifier(next.getEvaluationStreamId()); |
if(sendPdfFtpIonline(next,errors,null,iRepoFile.getInput(),repoFile.getLastVersion().getSaveDate(),null)) |
System.out.print(" ... OK"); |
else |
System.out.print(" ... FAIL probably no StreamID"); |
System.out.print("\n"); |
if(errors.size()>0) |
for(String error:errors) |
logger.warn(error); |
} catch (IOException e) { |
logger.error(e,e); |
} catch (TransformerException e) { |
logger.error(e, e); |
} catch (FOPException e) { |
e.printStackTrace(); |
} |
AbstractDao.getCurrentSession().evict(next); |
} |
} |
public static void main(String[] args) throws IOException { |
AbstractDao.getCurrentSession().beginTransaction(); |
new SaveCourseUnitEvaluation().storeAllClosedEvaluationsInActivePeriod(); |
AbstractDao.getCurrentSession().flush(); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java |
---|
90,4 → 90,6 |
} |
return cV; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitDirPackageServiceBat.java |
---|
5,10 → 5,7 |
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.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.utils.ConfigProperties; |
49,6 → 46,18 |
new File(tmpDir).mkdirs(); |
//List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(importYear); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
List<User> usersFullControlDtp = null; |
if(Globals.INTRANET_DTP_FULLCONTROL_ROLES != null && Globals.INTRANET_DTP_FULLCONTROL_ROLES.size() > 0) |
{ |
usersFullControlDtp = DaoFactory.getUserDaoImpl().loadRolesUsers(Globals.INTRANET_DTP_FULLCONTROL_ROLES); |
} |
List<User> usersInqueritoPedagogico = null; |
if(Globals.INTRANET_DTP_INQUERITO_PEDAGOGICO_ROLE != null && Globals.INTRANET_DTP_INQUERITO_PEDAGOGICO_ROLE.trim().length() > 0) |
{ |
usersInqueritoPedagogico = DaoFactory.getUserDaoImpl().loadRoleUsers(Globals.INTRANET_DTP_INQUERITO_PEDAGOGICO_ROLE.trim()); |
} |
try |
{ |
FileWriter batRunner = new FileWriter(tmpDir + "/create.bat"); |
237,7 → 246,9 |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + c.getUserGroupStudents() + "\":r\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + ConfigProperties.getProperty("ionline.user") + "\":f\n"); |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + ConfigProperties.getProperty("ionline.user") + "\":f\n"); |
/* |
echo CACLS Seminario.Ii /T /E /R [NOME DO GRUPO DE TODOS OS ALUNOS DA ESTG tira os parentisis rectos] |
echo CACLS Seminario.Ii /T /E /G [NOME DO GRUPO DE TODOS OS DOCENTES]:R |
297,6 → 308,28 |
batRunner.write("cacls " + Globals.INTRANET_DTP_FichaAvaliacao + " /t /e /r \"" + c.getDirector().getUsername() + "\"\n"); |
batRunner.write("cd ..\\\n"); |
} |
if(usersInqueritoPedagogico != null && usersInqueritoPedagogico.size() > 0) |
{ |
for(User u: usersInqueritoPedagogico) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + u.getUsername() + "\":r\n"); |
} |
batRunner.write("cd " + Globals.INTRANET_DTP + "\n"); |
for(User u: usersInqueritoPedagogico) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP_InqueritoPedagogico + " /t /e /g \"" + u.getUsername() + "\":f\n"); |
} |
batRunner.write("cd ..\\\n"); |
} |
if(usersFullControlDtp != null && usersFullControlDtp.size() > 0) |
{ |
for(User u: usersFullControlDtp) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + u.getUsername() + "\":f\n"); |
} |
} |
batRunner.write("cd ..\\..\\\n"); |
} |
batRunner.write("cd ..\\..\\\n"); |
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java |
---|
204,8 → 204,15 |
} |
} |
public Email getMessageEmail(String from, String subject,String text, LangEnum langEnum, String target, List<User> users, User user) |
public static class SendTo |
{ |
public String name; |
public String email; |
public String outEmail; |
} |
public Email getMessageEmail(String from, String subject,String text, LangEnum langEnum, String target, List<String> emails, User user) |
{ |
// # 0 : From |
// # 1 : Subject |
// # 2 : Text |
230,6 → 237,52 |
} |
List<String> recipients = new ArrayList<String>(); |
for(String e: emails) |
{ |
if(Email.validEmail(e)) |
recipients.add(e); |
} |
logger.info("subject: " + subject); |
logger.info("user: " + user.getEmail()); |
logger.info("template: " + template); |
logger.info("arguments:"); |
for(String arg: arguments) |
logger.info(arg); |
logger.info("recipients:"); |
for(String rec: recipients) |
logger.info(rec); |
logger.info("arguments end"); |
Email email = new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC); |
email.setFromName(from + " (ESTG)"); |
return email; |
} |
public Email getMessageEmailOld(String from, String subject,String text, LangEnum langEnum, String target, List<User> users, User user) |
{ |
// # 0 : From |
// # 1 : Subject |
// # 2 : Text |
// # 3 : person |
// # 4 : target |
List<String> arguments = new ArrayList<String>(); |
arguments.add(from); |
arguments.add(subject); |
arguments.add(text); |
arguments.add(user.getName()); |
arguments.add(target); |
String template; |
if(langEnum == LangEnum.PORTUGUESE) |
{ |
template = Globals.EMAIL_MESSAGE_TEMPLATE_PT; |
} |
else |
{ |
template = Globals.EMAIL_MESSAGE_TEMPLATE_EN; |
} |
List<String> recipients = new ArrayList<String>(); |
for(User u: users) |
{ |
if(Email.validEmail(u.getEmail())) |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/CleanCourseUnitsZeroStudents.java |
---|
New file |
0,0 → 1,72 |
package pt.estgp.estgweb.services.sigesimports; |
import jomm.dao.impl.AbstractDao; |
import org.hibernate.Query; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import java.util.Iterator; |
/** |
* Created by jorgemachado on 01/12/15. |
*/ |
public class CleanCourseUnitsZeroStudents |
{ |
public static void main(String[] args) |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
Query q = AbstractDao.getCurrentSession().createQuery("select c.id from c in class " + CourseUnit.class.getName() + |
" where size(c.students) = 0 and (c.importYear = '201415' or c.importYear='201516') order by c.importYear, c.semestre, c.code"); |
Iterator iter = q.iterate(); |
System.out.println("ANO;SEMESTRE;CODIGO;NOME;CODIGOCURSO;NOMECURSO"); |
while(iter.hasNext()) |
{ |
Long id = (Long) iter.next(); |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(id); |
System.out.println(cu.getImportYear() + ";" + cu.getSemestre() + ";" + cu.getCode() + ";" + cu.getName() + ";" + cu.getCourseCode() + ";" +cu.getCourseName()); |
boolean alert = false; |
if(cu.getAnnouncements() != null && cu.getAnnouncements().size() > 0) |
{ |
System.out.println("ALERT - Tem Announcements"); |
} |
if(cu.getAssignements() != null && cu.getAssignements().size() > 0) |
{ |
System.out.println("ALERT - Tem Assignements"); |
} |
if(cu.getBlogs() != null && cu.getBlogs().size() > 0) |
{ |
System.out.println("ALERT - Tem BLOGS"); |
} |
if(cu.getCourseUnitEvaluation() != null) |
{ |
System.out.println("ALERT - Tem Evaluation"); |
alert = true; |
} |
if(cu.getCourseUnitProgram() != null) |
{ |
System.out.println("ALERT - Tem program"); |
alert = true; |
} |
if(cu.getSummaries() != null && cu.getSummaries().size() > 0) |
{ |
System.out.println("ALERT - Tem SUMMARIES"); |
} |
if(alert) |
{ |
System.out.println(">>>>>>>>>>>>>>NAO APAGA"); |
} |
else |
{ |
System.out.println("+++++++++++++++CANDIDATA A APAGAR"); |
} |
} |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportGradesService.java |
---|
11,6 → 11,7 |
import pt.estgp.estgweb.services.email.SendEmailService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.services.jobs.JobScheduleService; |
import pt.estgp.estgweb.services.jobs.ServiceJob; |
import pt.estgp.estgweb.services.logresults.ILogMessages; |
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum; |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage; |
33,7 → 34,7 |
* @time 12:51:32 |
* @see pt.estgp.estgweb |
*/ |
public class ImportGradesService implements IService |
public class ImportGradesService extends ServiceJob implements IService |
{ |
private static final Logger logger = Logger.getLogger(ImportGradesService.class); |
46,23 → 47,31 |
{ |
DefaultLogMessages logMessages = new DefaultLogMessages(); |
logMessages.addMessage(new DefaultLogMessage("import.grades", LogMessageTypeEnum.INFO, "instituicao " + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode() + " ano : " + year)); |
logger.info("starting grades import " + year); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
Map<Integer,Integer> alunos = new HashMap<Integer,Integer>(); |
Map<String,String> alunoCadeira = new HashMap<String,String>(); |
int foundTotal = 0; |
try |
{ |
logger.info("Loading Epocas de avaliacao"); |
serviceLogInfo("Loading Epocas de avaliacao"); |
List<ConfigurationGradesEpocaAvaliacao> epocas = DaoFactory.getConfigurationGradesEpocaAvaliacaoDaoImpl().findAll(); |
if(epocas == null || epocas.size() == 0) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.grades",LogMessageTypeEnum.WARNING,"Sem Epocas de Avaliacao, por favor adicione as epocas ao sistema")); |
logger.warn("Sem Epocas de Avaliacao, por favor adicione as epocas ao sistema"); |
logger.warn(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
return logMessages; |
} |
List<ConfigurationGradesStatusEpoca> statusEpocas = DaoFactory.getConfigurationGradesStatusEpocaDaoImpl().findAll(); |
if(statusEpocas == null || statusEpocas.size() == 0) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.grades",LogMessageTypeEnum.WARNING,"Sem Status de epocas de avaliacao, por favor adicione as epocas ao sistema")); |
logger.warn("Sem Status de epocas de avaliacao, por favor adicione as epocas ao sistema"); |
logger.warn(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
return logMessages; |
} |
HashMap<String,String> mapaEpocasAvaliacao = new HashMap<String, String>(); |
88,18 → 97,21 |
{ |
logMessages.addMessage(new DefaultLogMessage("import.error",e.toString(),"erro na configuracao do WEB Service", LogMessageTypeEnum.INFO)); |
logger.fatal(e, e); |
serviceLogFatal(logMessages.getLastMessage()); |
return logMessages; |
} |
ArrayOfNota arrayOfNotas = service.getSiGesWEBSoap().getNotas(new BigDecimal(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()), year); |
List<Nota> notas = arrayOfNotas.getNota(); |
int i = 0; |
for (Nota nota : notas) |
{ |
foundTotal++; |
if (i++ > MAX_COMMIT) |
{ |
i = 0; |
AbstractDao.getCurrentSession().getTransaction().commit(); |
AbstractDao.getCurrentSession().beginTransaction(); |
setProgress((int) (((float)foundTotal)/((float)notas.size())*100.0f)); |
commitPartially(); |
} |
/** |
113,7 → 125,9 |
*/ |
int codAluno = nota.getCodigoAluno().intValue(); |
alunos.put(codAluno,codAluno); |
int codUnidade = nota.getCodigoDisciplina().intValue(); |
alunoCadeira.put(codAluno + "$" + codUnidade,codAluno + "$" + codUnidade); |
int codCurso = nota.getCodigoCurso().intValue(); |
String cdDuracao = nota.getCdDuracao(); |
int valor = nota.getNota().intValue(); |
121,6 → 135,7 |
Date data = nota.getDataAvaliacao().toGregorianCalendar().getTime(); |
int momento = nota.getMomentoAvaliacao().intValue(); |
int epoca = nota.getEpocaAvaliacao().intValue(); |
//boolean eFinal = nota.get |
String descricaoEpoca = mapaEpocasAvaliacao.get(epoca + "-" + momento); |
130,9 → 145,25 |
if(descricaoEpoca!= null && s != null) |
{ |
CourseUnit courseUnit; |
CourseUnit courseUnit = null; |
try{ |
courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueSubscribed("" + codUnidade, year, "" + codCurso,s.getId(),cdDuracao); |
List<CourseUnit> cus = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + codUnidade, "" + codCurso,cdDuracao,year); |
//Uma cadeira atribuida a uma nota que pode nao ser de facto a turma dela |
//A nota tem de passar a deixar de ter obrigatoriamente a cadeira |
//ha que mudar isso na interface e colocar apenas o descritivo nesses casos e manter a cadeira |
//a null para nao haver hipoteses de confusao |
if(cus != null && cus.size() > 0) |
courseUnit = cus.get(0); |
if(cus.size() > 1) |
{ |
CourseUnit c1 = cus.get(0); |
CourseUnit c2 = cus.get(1); |
logMessages.addMessage(new DefaultLogMessage("import.warning","", |
"Mais que uma unidade para o código(unidade,curso): " + codUnidade + "," + codCurso + " -> " + courseUnit.getName() + " possiveis duas turmas: " + c1.getCdTurma() + " - " + c2.getCdTurma() , LogMessageTypeEnum.INFO)); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
} |
if(courseUnit != null) |
{ |
CourseUnitGrade grade = DaoFactory.getCourseUnitGradeDaoImpl().find(courseUnit.getId(),s.getId(),""+momento,""+epoca); |
166,12 → 197,16 |
} |
else |
{ |
logMessages.addMessage(new DefaultLogMessage("import.warning","","CourseUnit: " + codUnidade + " course: " + codCurso + " student: " + s.getSigesCode() + " semestre: " + cdDuracao + " year: " + year + " does not exist", LogMessageTypeEnum.WARNING)); |
logger.warn("CourseUnit: " + codUnidade + " course: " + codCurso + " student: " + s.getSigesCode() + " semestre: " + cdDuracao + " year: " + year + " does not exist"); |
logMessages.addMessage(new DefaultLogMessage("import.warning","","CourseUnit: " + codUnidade + " course: " + codCurso + " searching for student" + s.getSigesCode() + " semestre: " + cdDuracao + " year: " + year + " does not exist", LogMessageTypeEnum.WARNING)); |
logger.warn(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
} |
}catch(Exception e) |
{ |
logger.warn("Error : unit:" + codUnidade + " course:" + codCurso + " student:" + s.getId(),e); |
logMessages.addMessage(new DefaultLogMessage("import.warning","","Error : unit:" + codUnidade + " course:" + codCurso + " student:" + s.getId(), LogMessageTypeEnum.WARNING)); |
logger.warn(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
} |
} |
179,12 → 214,14 |
{ |
if(descricaoEpoca == null) |
{ |
logger.info(epoca + "-" + momento + " nao esta catalogada para atribuicao de nota"); |
logMessages.addMessage(new DefaultLogMessage("import.warning","",epoca + "-" + momento + " nao esta catalogada para atribuicao de nota", LogMessageTypeEnum.WARNING)); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
}else |
{ |
logMessages.addMessage(new DefaultLogMessage("import.warning","","Student: " + codAluno + " does not exist", LogMessageTypeEnum.WARNING)); |
logger.warn("Student: " + codAluno + " does not exist"); |
logger.warn(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
} |
} |
192,19 → 229,39 |
} |
sendSms(null); |
sendEmail(null); |
//AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
//AbstractDao.getCurrentSession().getTransaction().rollback(); |
logMessages.addMessage(new DefaultLogMessage("import.error", e.toString(), "see log for details", LogMessageTypeEnum.ERROR)); |
serviceLogError(logMessages.getLastMessage()); |
throw new ServiceException(e.toString(), e); |
} |
setProgress(100); |
logger.info("######################################"); |
serviceLogInfo("######################################"); |
logger.info("######################################"); |
serviceLogInfo("######################################"); |
logger.info("STATS " + year); |
serviceLogInfo("STATS " + year); |
logger.info("Total Notas: " + foundTotal); |
serviceLogInfo("Total Notas: " + foundTotal); |
logger.info("Alunos: " + alunos.size()); |
serviceLogInfo("Alunos: " + alunos.size()); |
logger.info("Notas de Alunos em cadeiras: " + alunoCadeira.size()); |
serviceLogInfo("Notas de Alunos em cadeiras: " + alunoCadeira.size()); |
logMessages.addMessage(new DefaultLogMessage("import.teachers.terminating", LogMessageTypeEnum.INFO)); |
logger.info("terminating grades import"); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
return logMessages; |
} |
271,6 → 328,7 |
} |
} |
/** |
* Testar por aqui poi requer Super Role e assim e' autmatico |
* |
288,4 → 346,9 |
} |
@Override |
protected ILogMessages runJobServiceTask() throws Throwable { |
String importYear = getParametersMap().get(JOB_importYear_KEY).getObject(); |
return run(importYear); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java |
---|
44,6 → 44,7 |
int studentsNew = 0; |
int studentsZeroUnits = 0; |
int unitsNotFound = 0; |
int unitsNotFoundTurma = 0; |
int unitsRemovedToStudents = 0; |
int unitsLocalAddedNotRemoved = 0; |
int unitsLocallyRemovedNotAdded = 0; |
58,6 → 59,7 |
studentsNew = 0; |
studentsZeroUnits = 0; |
unitsNotFound = 0; |
unitsNotFoundTurma = 0; |
unitsRemovedToStudents = 0; |
unitsLocalAddedNotRemoved = 0; |
unitsLocallyRemovedNotAdded = 0; |
68,6 → 70,8 |
String activeImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
String msgS = "STARTING STUDENTS IMPORT SERVICE FOR YEAR: " + year; |
serviceLogInfo(msgS); |
logger.info(msgS); |
82,6 → 86,7 |
{ |
serviceLogInfo("STARTING WEB SERVICE AT " + WSDL); |
service = new SiGesWEB(new URL(WSDL), new QName(Globals.SIGES_WEBSERVICE_TARGET_NAMESPACE, "SiGesWEB")); |
} |
catch (MalformedURLException e) |
{ |
149,7 → 154,7 |
DaoFactory.getStudentDaoImpl().save(s); |
newUser = true; |
} |
persist(alunoSiges, s, newUser,year,activeImportYear); |
persist(alunoSiges, s, newUser,year,activeImportYear,logMessages,service); |
//Advising CommonsServicesManager before change password |
if (newUser) |
199,6 → 204,7 |
serviceLogInfo("#Students Merged: " + studentsMerged); |
serviceLogInfo("#Students Zero Units: " + studentsZeroUnits); |
serviceLogInfo("#Units not found: " + unitsNotFound); |
serviceLogInfo("#Units not found in real course (turma ok): " + unitsNotFoundTurma); |
serviceLogInfo("#Units added to Students: " + unitsAddedToStudents); |
serviceLogInfo("#Units removed to Students: " + unitsRemovedToStudents); |
serviceLogInfo("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
211,6 → 217,7 |
logger.info("#Students Merged: " + studentsMerged); |
logger.info("#Students Zero Units: " + studentsZeroUnits); |
logger.info("#Units not found: " + unitsNotFound); |
logger.info("#Units not found in real course (turma ok): " + unitsNotFoundTurma); |
logger.info("#Units added to Students: " + unitsAddedToStudents); |
logger.info("#Units removed to Students: " + unitsRemovedToStudents); |
logger.info("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
257,6 → 264,82 |
} |
} |
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service) |
{ |
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service); |
List<BigDecimal> cursos = pairs.get(turma); |
if(cursos.size() > 1) |
{ |
String msgAdmin = ""; |
String msg = "####Atenção existe um caso de dúvida nas inscrições : " + year + "-" + semestre + " turma " + turma; |
msgAdmin += msg + "\n"; |
logger.warn(msg); |
serviceLogWarn(msg); |
msg = "####A turma " + turma + " tem " + cursos.size() + " cursos associados: "; |
logger.warn(msg); |
serviceLogWarn(msg); |
msgAdmin += msg + "\n"; |
for(BigDecimal curso: cursos) |
{ |
msg = "######->turma:" + turma + " -> curso siges: " + curso.longValue(); |
msgAdmin += msg + "\n"; |
logger.warn(msg); |
serviceLogWarn(msg); |
} |
sendNotificationAdmin("Atenção existe um caso de dúvida nas inscrições",msgAdmin); |
} |
if(cursos.size() > 0) |
return cursos.get(0); |
else |
{ |
String msg = "####Atenção existe um em que uma turma nao tem curso associado : " + year + "-" + semestre + " turma " + turma; |
sendNotificationAdmin("Atenção existe um em que uma turma nao tem curso associado",msg); |
logger.error(msg); |
serviceLogError(msg); |
return null; |
} |
} |
HashMap<String,HashMap<String,List<BigDecimal>>> semestreTurmaCursosPairs = new HashMap<String, HashMap<String, List<BigDecimal>>>(); |
private HashMap<String,List<BigDecimal>> getCourseTurmaPairs(String year,String semestre, SiGesWEB service) |
{ |
HashMap<String,List<BigDecimal>> turmaCourses = semestreTurmaCursosPairs.get(year + ";" + semestre); |
if(turmaCourses == null) |
{ |
String msg = "Starting structure pairs turma curso para : " + year + "-" + semestre; |
logger.info(msg); |
serviceLogInfo(msg); |
ArrayOfTurmaCurso arrayOfTurmaCurso = service.getSiGesWEBSoap().loadParesTurmaCurso( |
new BigDecimal(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()) |
, year,semestre); |
turmaCourses = new HashMap<String, List<BigDecimal>>(); |
for(TurmaCurso turmaCursoPair: arrayOfTurmaCurso.getTurmaCurso()) |
{ |
List<BigDecimal> cursos = turmaCourses.get(turmaCursoPair.getCdTurma()); |
if(cursos == null) |
{ |
cursos = new ArrayList<BigDecimal>(); |
turmaCourses.put(turmaCursoPair.getCdTurma(),cursos); |
} |
if(turmaCursoPair.getCodigoCurso().intValue() > 0) |
{ |
cursos.add(turmaCursoPair.getCodigoCurso()); |
msg = "Adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.info(msg); |
serviceLogInfo(msg); |
} |
else |
{ |
msg = "Excluding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.warn(msg); |
serviceLogInfo(msg); |
} |
} |
semestreTurmaCursosPairs.put(year + ";" + semestre,turmaCourses); |
/***END INICIALIZACAO***/ |
} |
/**Inicialização da Estrutura de Suporte aos Cursos/Turma*/ |
return turmaCourses; |
} |
/** |
266,7 → 349,7 |
* @param alunoSiges Aluno |
* @param student Student |
*/ |
private void persist(Aluno alunoSiges, Student student, boolean newUser, String year, String activeImportYear) |
private void persist(Aluno alunoSiges, Student student, boolean newUser, String year, String activeImportYear, DefaultLogMessages logMessages, SiGesWEB service) |
{ |
if(newUser) |
{ |
363,11 → 446,29 |
ArrayOfDisciplina disciplinas = alunoSiges.getDisciplinasInscrito(); |
for (Disciplina disciplina : disciplinas.getDisciplina()) |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + disciplina.getCodigoCurso(),disciplina.getCdDuracao(),disciplina.getCdLectivo()); |
BigDecimal codigoDoCursoReal = disciplina.getCodigoCurso(); |
if(disciplina.getCdTipoDisciplina() != null && disciplina.getCdTipoDisciplina().intValue() == ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR) |
{ |
codigoDoCursoReal = getRealCourse(disciplina.getCdTurma(),year,disciplina.getCdDuracao(),service); |
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " nome:" + disciplina.getNome() + "turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCursoReal; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCursoReal,disciplina.getCdDuracao(),disciplina.getCdLectivo() |
,disciplina.getCdTurma()); |
//Special procedure for Aluno to check if turma not exist will find without turma code to keep old years compatibility |
if(courseUnit == null) |
{ |
unitsNotFoundTurma++; |
courseUnit = tryFindCourseUnitWithOutTurma(logMessages,disciplina.getCdDuracao(),""+disciplina.getCodigo().intValue() |
,"" + codigoDoCursoReal.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma()); |
} |
if(courseUnit == null) |
{ |
unitsNotFound++; |
String msg = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo(); |
String msg = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCursoReal + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
serviceLogWarn(msg); |
logger.warn(msg); |
} |
468,6 → 569,41 |
} |
} |
private CourseUnit tryFindCourseUnitWithOutTurma(DefaultLogMessages logMessages, String cdDuracao, String codigo,String codigoCurso,String cdLectivo,String cdTurma) |
{ |
CourseUnit courseUnit = null; |
String msg = "Unit not found with turma code : semestre:" + cdDuracao + " codigo:" + codigo + " course:" + codigoCurso + " year:" + cdLectivo + " turma: " + cdTurma; |
logMessages.addMessage(new DefaultLogMessage("", LogMessageTypeEnum.WARNING,msg)); |
serviceLogWarn(msg); |
logger.warn(msg); |
msg = "Trying without Turma code..."; |
serviceLogWarn(msg); |
logger.warn(msg); |
List<CourseUnit> cus = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + codigo,"" + codigoCurso,cdDuracao,cdLectivo); |
if(cus != null && cus.size() == 1) |
{ |
courseUnit = cus.get(0); |
msg = "Found ok..."; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
else if(cus !=null && cus.size() > 1) |
{ |
courseUnit = cus.get(0); |
msg = "Found More than one, unexpected situation..." + cus.get(0).getId() + " - " + cus.get(1).getId(); |
logMessages.addMessage(new DefaultLogMessage("", LogMessageTypeEnum.WARNING,msg)); |
serviceLogWarn(msg); |
logger.warn(msg); |
} |
else |
{ |
msg = "Not Found ..."; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
return courseUnit; |
} |
private void cloneFields(Aluno alunoSiges, Student student) { |
student.setName(alunoSiges.getNome()); |
student.setEmail(alunoSiges.getEmail()); |
481,9 → 617,6 |
student.setBirthDate(alunoSiges.getDataNascimento().toGregorianCalendar().getTime()); |
student.setUsername("a" + alunoSiges.getCodigo().intValue()); |
} |
public static final String JOB_importYear_KEY = "JOB_importYear_KEY"; |
@Override |
protected ILogMessages runJobServiceTask() throws Throwable { |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/SincronizeLastYearCourseUnitProgramsService.java |
---|
386,10 → 386,6 |
} |
public static final String JOB_importYear_KEY = "JOB_importYear_KEY"; |
public static final String JOB_cloneOnlyNews_KEY = "JOB_cloneOnlyNews_KEY"; |
public static final String JOB_generateAllPdfs_KEY = "JOB_generateAllPdfs_KEY"; |
public static final String JOB_validate_KEY = "JOB_validade_KEY"; |
/** |
* Parameters for ServiceJob |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java |
---|
328,7 → 328,10 |
{ |
String msgS; |
if(teacherSiges.getCodigoFuncionario().longValue()==20115) |
System.out.println("Sergio"); |
if(teacherSiges.getCodigoFuncionario().longValue()==20219) |
System.out.println("Eliseu"); |
try |
{ |
448,8 → 451,12 |
Set<CourseUnit> units = new HashSet<CourseUnit>(); |
for (Disciplina disciplina : teacherSiges.getDisciplinas().getDisciplina()) |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo()); |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo(),disciplina.getCdTurma()); |
//Ja todas as unidades tem todas turma, um dos docentes vai perder uma e o outro docente perde a outra |
//por exemplo uma que era dos dois vai continuar nos dois e será removida de um deles |
//a outra será adicionada |
if (courseUnit == null) |
{ |
msgS = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo(); |
491,7 → 498,7 |
} |
if (!isIn) |
{ |
String msg = "Adicionando unidade: " + ((CourseUnitImpl)c).getSigesUniqueIdentifiers() + " - ao teacher: " + teacher.getSigesCode() + " - Associacao nova no SIGES"; |
String msg = "Adicionando unidade: " + ((CourseUnitImpl)c).getSigesUniqueIdentifiers() + " - ao teacher: " + teacher.getSigesCode() + " turma " + c.getCdTurma() + " - Associacao nova no SIGES"; |
serviceLogInfo(msg); |
logger.info(msg); |
unitsAddedToTeachers++; |
533,12 → 540,14 |
if(!added) |
{ |
if(!tImpl.isLocalRemovedUnit(cUNow)) |
if(!tImpl.isLocalUnit(cUNow)) |
{ |
String msg = "Removendo unidade: " + ((CourseUnitImpl)cUNow).getSigesUniqueIdentifiers() + " - do docente: " + teacher.getSigesCode() + " - Associacao desapareceu do SIGES"; |
//todo e tirar a linha de baixo no futuro - String msg = "Removendo unidade: " + ((CourseUnitImpl)cUNow).getSigesUniqueIdentifiers() + " - do docente: " + teacher.getSigesCode() + " - Associacao desapareceu do SIGES"; |
String msg = "Temporariamente não mas sim adicionando localmente, Removendo unidade: " + ((CourseUnitImpl)cUNow).getSigesUniqueIdentifiers() + " - do docente: " + teacher.getSigesCode() + " - Associacao desapareceu do SIGES"; |
((TeacherImpl)tImpl).addUnitLocaly(cUNow); |
serviceLogInfo(msg); |
logger.info(msg); |
iterNowUnits.remove(); |
//todo iterNowUnits.remove(); |
unitsRemovedToTeachers++; |
} |
else |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java |
---|
19,9 → 19,7 |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.Email; |
import pt.ipportalegre.siges.web.services.ArrayOfDisciplina; |
import pt.ipportalegre.siges.web.services.Disciplina; |
import pt.ipportalegre.siges.web.services.SiGesWEB; |
import pt.ipportalegre.siges.web.services.*; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import javax.xml.namespace.QName; |
84,6 → 82,7 |
return logMessages; |
} |
importUnitsSemestre(service, "S1", year, disciplinasMap, disciplinasMapS1, cursosMap, logMessages); |
importUnitsSemestre(service, "S2", year, disciplinasMap, disciplinasMapS2, cursosMap, logMessages); |
importUnitsSemestre(service, "A", year, disciplinasMap, disciplinasMapA, cursosMap, logMessages); |
125,13 → 124,13 |
/** |
* Update Course Units |
*/ |
updateCourseUnits(disciplinasMapS1, "S1",logMessages,year); |
updateCourseUnits(disciplinasMapS2, "S2",logMessages,year); |
updateCourseUnits(disciplinasMapA, "A",logMessages,year); |
updateCourseUnits(disciplinasMapT1, "T1",logMessages,year); |
updateCourseUnits(disciplinasMapT2, "T2",logMessages,year); |
updateCourseUnits(disciplinasMapT3, "T3",logMessages,year); |
updateCourseUnits(disciplinasMapT4, "T4",logMessages,year); |
updateCourseUnits(disciplinasMapS1, "S1",logMessages,year,service); |
updateCourseUnits(disciplinasMapS2, "S2",logMessages,year,service); |
updateCourseUnits(disciplinasMapA, "A",logMessages,year,service); |
updateCourseUnits(disciplinasMapT1, "T1",logMessages,year,service); |
updateCourseUnits(disciplinasMapT2, "T2",logMessages,year,service); |
updateCourseUnits(disciplinasMapT3, "T3",logMessages,year,service); |
updateCourseUnits(disciplinasMapT4, "T4",logMessages,year,service); |
serviceLogInfo("######################################"); |
serviceLogInfo("######################################"); |
211,6 → 210,8 |
HashMap<String, Disciplina> cursosMap, |
DefaultLogMessages logMessages) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.semestre.course.units." + semestre, LogMessageTypeEnum.INFO)); |
serviceLogInfo("importing " + semestre + " course units"); |
logger.info("importing " + semestre + " course units"); |
218,43 → 219,94 |
List<Disciplina> disciplinas = arrayOfDisciplina.getDisciplina(); |
for (Disciplina d : disciplinas) |
{ |
if (disciplinasMap.get(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":" + semestre) != null) |
if (disciplinasMap.get(getDisciplinaUniqueRef(d)) != null) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.semestre.repeated." + semestre, "unit: " + d.getCodigo().intValue(), "", LogMessageTypeEnum.WARNING)); |
serviceLogWarn("repeated unit in " + semestre + ":" + d.getCodigo().intValue()); |
logger.warn("repeated unit in " + semestre + ":" + d.getCodigo().intValue()); |
} |
disciplinasMap.put(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":" + semestre, d); |
disciplinasMapSemestre.put(d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":" + semestre, d); |
disciplinasMap.put(getDisciplinaUniqueRef(d), d); |
disciplinasMapSemestre.put(getDisciplinaUniqueRef(d), d); |
cursosMap.put(d.getCodigoCurso().intValue()+":"+year, d); |
} |
} |
private void updateCourseUnits(HashMap<String, Disciplina> disciplinasMapS, String semestre, DefaultLogMessages logMessages, String year) |
private String getDisciplinaUniqueRef(Disciplina d) |
{ |
return d.getCodigo().intValue() + ":" + d.getCodigoCurso() + ":" + d.getCdDuracao() + ":" + d.getCdTurma(); |
} |
public static final int SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR = ConfigProperties.getIntProperty("siges.codigo.tipo.disciplina.extra.curricular"); |
private void updateCourseUnits(HashMap<String, Disciplina> disciplinasMapS, String semestre, DefaultLogMessages logMessages, String year,SiGesWEB service) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.semestre.updating.course.units." + semestre, LogMessageTypeEnum.INFO)); |
logger.info("updating " + semestre + " course units"); |
serviceLogInfo("updating " + semestre + " course units"); |
Set<Map.Entry<String, Disciplina>> set = disciplinasMapS.entrySet(); |
for (Map.Entry<String, Disciplina> entry : set) |
{ |
Disciplina d = entry.getValue(); |
//TIPO 6 é uma EXTRA CURRICULAR |
if(d.getCdTipoDisciplina().longValue() == SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR) |
{ |
logMessages.addMessage(new DefaultLogMessage("import.error","Ignorando disciplina com tipo = " + d.getCdTipoDisciplina(), "see log for details", LogMessageTypeEnum.WARNING)); |
logger.warn(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
continue; |
} |
CourseUnit c; |
try{ |
c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year); |
c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year, d.getCdTurma()); |
}catch(NonUniqueResultException e) |
{ |
logger.fatal("Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year); |
serviceLogFatal("Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year); |
logMessages.addMessage(new DefaultLogMessage("import.error","Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year, "see log for details", LogMessageTypeEnum.ERROR)); |
logger.fatal(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
throw e; |
} |
//NOVO pode ainda nao ter turma |
if(c == null) |
{ |
List<CourseUnit> cus = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeTurmaNull("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year); |
if(cus == null || cus.size() == 0 ) |
{ |
// nao faz nada deixa ir null para criar |
} |
else if(cus.size() == 1) |
{ |
//Tem de levar turma |
c = cus.get(0); |
c.setCdTurma(d.getCdTurma()); |
//é a primeira leva com o primeiro código de turma mete-se já este mas a seguir pode vir outro |
logger.info("Adding turma code: " + d.getCdTurma() + " to unit:" + d.getCodigo() + "/" + d.getNome() + " curso:" + d.getCodigoCurso() + "/" + d.getNomeCurso()); |
serviceLogInfo("Adding turma code: " + d.getCdTurma() + " to unit:" + d.getCodigo() + "/" + d.getNome() + " curso:" + d.getCodigoCurso() + "/" + d.getNomeCurso()); |
} |
else |
{ |
logMessages.addMessage(new DefaultLogMessage("import.error", "Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year + " " + d.getCdTurma(), "see log for details", LogMessageTypeEnum.ERROR)); |
logger.fatal(logMessages.getLastMessage()); |
serviceLogWarn(logMessages.getLastMessage()); |
} |
} |
//NOVO |
if (c == null) |
{ |
c = DomainObjectFactory.createCourseUnitImpl(); |
DaoFactory.getCourseUnitDaoImpl().save(c); |
serviceLogInfo("New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso()); |
logMessages.addMessage(new DefaultLogMessage("import.error", "New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso() + " turma(" + d.getCdTurma() + ")", "see log for details", LogMessageTypeEnum.ERROR)); |
logger.info(logMessages.getLastMessage()); |
serviceLogInfo(logMessages.getLastMessage()); |
newUnits++; |
} |
//NOVO |
c.setCdTurma("" + d.getCdTurma()); |
//FIM NOVO |
c.setName(d.getNome()); |
c.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()); |
c.setCode("" + d.getCodigo().intValue()); |
264,11 → 316,9 |
c.setImportYear(year); |
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode()); |
c.setCourse(course); |
} |
} |
public static final String JOB_importYear_KEY = "JOB_importYear_KEY"; |
@Override |
protected ILogMessages runJobServiceTask() throws Throwable { |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportSumariesJson.java |
---|
108,7 → 108,7 |
String nowCode = ""; |
for(Long cId: cUs) |
{ |
nowCode = "BACO_ONLY_CODE" + cId; |
nowCode = "" + cId; |
countUnits++; |
try |
{ |
143,8 → 143,10 |
break; |
} |
logger.error("WebService Fail, trying " + tries + " times sleeping a while"); |
serviceLogError("WebService Fail, trying " + tries + " times sleeping a while"); |
serviceLogError("WebService Fail, trying " + tries + " times sleeping a while " + t.toString()); |
serviceLogError("WebService Fail, trying " + tries + " times sleeping a while " + t.getCause()); |
Thread.sleep(5000); |
} |
} |
166,6 → 168,16 |
for(Aula aula: arrayOfAulas.getAula()) |
{ |
if(c.getCdTurma() != null && aula.getAulaCodigoTurma()!=null |
&& c.getCdTurma().trim().length() > 0 |
&& aula.getAulaCodigoTurma().trim().length() > 0 |
&& !aula.getAulaCodigoTurma().equals(c.getCdTurma())) |
{ |
//Código de Turma diferente |
System.out.println("Ignoring summary code: " + aula.getAulaCodigoTurma() + " for unit " + c.getName() + "/" + c.getCode() + " T:" + c.getCdTurma()); |
continue; |
} |
//CourseUnitSummary s = map.get(aula.getSumNumeroAula() + ":" + aula.getCodigoSumario()); |
//if(s == null) |
//{ |
200,6 → 212,7 |
} |
else if(summariesValid == 0) |
{ |
//NAO METE OK NEM ZERO |
countUnitsZeroValidSummaries++; |
unitsZeroSummaries.add(c.getCode()); |
logger.info("ZERO VALID SUMARIES unit:" + c.getCode() + " course: " + c.getCourseCode()); |
224,6 → 237,7 |
} |
else |
{ |
//NAO METE OK MAS METE ZERO |
countUnitsZeroSummaries++; |
unitsZeroSummaries.add(c.getCode()); |
logger.error("Summaries come null in unit:" + c.getCode()); |
232,6 → 246,7 |
} |
catch(Throwable e) |
{ |
//NAO METE OK |
unitsFailed.add(nowCode); |
logger.error(e,e); |
serviceLogError(e.toString(),e); |
254,23 → 269,33 |
logger.info("terminating summaries import"); |
serviceLogInfo(logMessages.getLastMessage()); |
StringBuilder failedUnitsExc = new StringBuilder(); |
for(String cId: unitsFailed) |
failedUnitsExc.append(cId).append(";"); |
serviceLogInfo("#######################################"); |
serviceLogInfo("#######################################"); |
serviceLogInfo("UNITS PROCESSED: " + countUnits); |
serviceLogInfo("UNITS FAILED: " + (countUnits - countUnitsZeroSummaries - countUnitsOk)); |
serviceLogInfo("UNITS FAILED: " + (countUnits - countUnitsZeroSummaries - countUnitsOk - countUnitsZeroValidSummaries)); |
serviceLogInfo("UNITS FAILED EXCEPTION PARSING XML WEB SERVICE: " + unitsFailed.size()); |
serviceLogInfo("UNITS IMPORT OK: " + countUnitsOk); |
serviceLogInfo("UNITS ZERO SUMARIES: " + countUnitsZeroSummaries); |
serviceLogInfo("UNITS ZERO VALID SUMARIES: " + countUnitsZeroValidSummaries); |
serviceLogInfo("#######################################"); |
serviceLogWarn("####FAILED Exception (Check exceptions in log): Units Baco Id Code : " + failedUnitsExc.toString()); |
logger.info("#######################################"); |
logger.info("#######################################"); |
logger.info("UNITS PROCESSED: " + countUnits); |
logger.info("UNITS FAILED: " + (countUnits - countUnitsZeroSummaries - countUnitsOk)); |
logger.info("UNITS FAILED: " + (countUnits - countUnitsZeroSummaries - countUnitsOk - countUnitsZeroValidSummaries)); |
logger.info("UNITS FAILED EXCEPTION PARSING XML WEB SERVICE: " + unitsFailed.size()); |
logger.info("UNITS IMPORT OK: " + countUnitsOk); |
logger.info("UNITS ZERO SUMARIES: " + countUnitsZeroSummaries); |
logger.info("UNITS ZERO VALID SUMARIES: " + countUnitsZeroValidSummaries); |
logger.info("#######################################"); |
logger.warn("####FAILED Exception (Check exceptions in log): Units Baco Id Code : " + failedUnitsExc.toString()); |
return logMessages; |
} |
366,8 → 391,8 |
String year = DaoFactory.getConfigurationDaoImpl().getImportsDefaultImportYearCreateTransaction(); |
String semestre = null; |
boolean sendIonline = true; |
boolean sendEmail = true; |
boolean sendIonline = false; |
boolean sendEmail = false; |
if(args != null && args.length > 0) |
year = args[0]; |
393,11 → 418,6 |
} |
public static final String JOB_importYear_KEY = "JOB_importYear_KEY"; |
public static final String JOB_semestre_KEY = "JOB_semestre_KEY"; |
public static final String JOB_sendIonline_KEY = "JOB_sendIonline_KEY"; |
public static final String JOB_sendEmail_KEY = "JOB_sendEmail_KEY"; |
@Override |
protected ILogMessages runJobServiceTask() throws Throwable { |
/impl/src/java/pt/estgp/estgweb/services/jobs/JobScheduleService.java |
---|
143,6 → 143,125 |
DaoFactory.getJobServiceTaskSchedulerDaoImpl().delete(persistent); |
} |
public void save(JobServiceTaskSchedulerImpl scheduler |
,String jobCloneOnlyNewsKey |
,String jobJobGenerateAllPdfsKey |
,String jobJobImportYearKey |
,String jobJobSemestreKey |
,String jobSendEmailKey |
,String jobSendIonlineKey |
,String jobJobValidateKey |
,UserSession sess) |
{ |
JobServiceTaskSchedulerImpl persistent; |
if(scheduler.getId() <= 0) |
{ |
persistent = DomainObjectFactory.createJobServiceTaskSchedulerImpl(); |
persistent.setSaveDate(new Date()); |
persistent.setActive(false); |
persistent.setCreatedBy(sess.getUser()); |
DaoFactory.getJobServiceTaskSchedulerDaoImpl().save(persistent); |
logger.info("Will create task scheduller " + persistent.getTargetService() + " id:" + scheduler.getId()); |
} |
else |
{ |
persistent = (JobServiceTaskSchedulerImpl) DaoFactory.getJobServiceTaskSchedulerDaoImpl().load(scheduler.getId()); |
logger.warn("Will update task scheduller " + persistent.getTargetService() + " id:" + scheduler.getId()); |
} |
persistent.setTargetService(scheduler.getTargetService()); |
persistent.setDaily(scheduler.isDaily()); |
persistent.setMonthly(scheduler.isMonthly()); |
persistent.setWeekly(scheduler.isWeekly()); |
persistent.setHour(scheduler.getHour()); |
persistent.setMinute(scheduler.getMinute()); |
persistent.setSecond(scheduler.getSecond()); |
persistent.setDescription(scheduler.getDescription()); |
Set<JobServiceTaskSchedulerParameter> params = persistent.getServiceTaskSchedulerParameters(); |
if(persistent.getTargetService().equals(ImportCourseService.class.getName()) || |
persistent.getTargetService().equals(ImportGradesService.class.getName()) || |
persistent.getTargetService().equals(ImportStudentsService.class.getName()) || |
persistent.getTargetService().equals(ImportTeachersService.class.getName())) |
{ |
if(params == null || params.size() == 0) |
{ |
createParameter(persistent,ServiceJob.JOB_importYear_KEY); |
} |
JobServiceTaskSchedulerParameter parameter = params.iterator().next(); |
parameter.setObject(jobJobImportYearKey); |
} |
else if(persistent.getTargetService().equals(ImportSumariesJson.class.getName())) |
{ |
if(params == null || params.size() == 0) |
{ |
createParameter(persistent,ServiceJob.JOB_importYear_KEY); |
createParameter(persistent,ServiceJob.JOB_semestre_KEY); |
createParameter(persistent,ServiceJob.JOB_sendIonline_KEY); |
createParameter(persistent,ServiceJob.JOB_sendEmail_KEY); |
} |
for(JobServiceTaskSchedulerParameter param:persistent.getServiceTaskSchedulerParameters()) |
{ |
if(param.getName().equals(ServiceJob.JOB_importYear_KEY)) |
{ |
param.setObject(jobJobImportYearKey); |
} |
else if(param.getName().equals(ServiceJob.JOB_semestre_KEY)) |
{ |
param.setObject(jobJobSemestreKey); |
} |
else if(param.getName().equals(ServiceJob.JOB_sendIonline_KEY)) |
{ |
param.setObject(jobSendIonlineKey); |
} |
else if(param.getName().equals(ServiceJob.JOB_sendEmail_KEY)) |
{ |
param.setObject(jobSendEmailKey); |
} |
} |
} |
else if(persistent.getTargetService().equals(SincronizeLastYearCourseUnitProgramsService.class.getName())) |
{ |
if(params == null || params.size() == 0) |
{ |
createParameter(persistent,ServiceJob.JOB_importYear_KEY); |
createParameter(persistent,ServiceJob.JOB_cloneOnlyNews_KEY); |
createParameter(persistent,ServiceJob.JOB_generateAllPdfs_KEY); |
createParameter(persistent,ServiceJob.JOB_validate_KEY); |
} |
for(JobServiceTaskSchedulerParameter param:persistent.getServiceTaskSchedulerParameters()) |
{ |
if(param.getName().equals(ServiceJob.JOB_importYear_KEY)) |
{ |
param.setObject(jobJobImportYearKey); |
} |
else if(param.getName().equals(ServiceJob.JOB_cloneOnlyNews_KEY)) |
{ |
param.setObject(jobCloneOnlyNewsKey); |
} |
else if(param.getName().equals(ServiceJob.JOB_generateAllPdfs_KEY)) |
{ |
param.setObject(jobJobGenerateAllPdfsKey); |
} |
else if(param.getName().equals(ServiceJob.JOB_validate_KEY)) |
{ |
param.setObject(jobJobValidateKey); |
} |
} |
} |
} |
private void createParameter(JobServiceTaskSchedulerImpl persistent,String name) { |
JobServiceTaskSchedulerParameterImpl param = DomainObjectFactory.createJobServiceTaskSchedulerParameterImpl(); |
param.setJobServiceTaskScheduler(persistent); |
persistent.getServiceTaskSchedulerParameters().add(param); |
param.setName(name); |
DaoFactory.getJobServiceTaskSchedulerParameterDaoImpl().save(param); |
} |
public static void main(String[] args) throws SQLException |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
/impl/src/java/pt/estgp/estgweb/services/jobs/ServiceJob.java |
---|
22,7 → 22,15 |
public abstract class ServiceJob implements JobHandler |
{ |
public static final String JOB_importYear_KEY = "JOB_importYear_KEY"; |
public static final String JOB_semestre_KEY = "JOB_semestre_KEY"; |
public static final String JOB_sendIonline_KEY = "JOB_sendIonline_KEY"; |
public static final String JOB_sendEmail_KEY = "JOB_sendEmail_KEY"; |
public static final String JOB_cloneOnlyNews_KEY = "JOB_cloneOnlyNews_KEY"; |
public static final String JOB_generateAllPdfs_KEY = "JOB_generateAllPdfs_KEY"; |
public static final String JOB_validate_KEY = "JOB_validade_KEY"; |
/*Log for service run*/ |
protected final Logger serviceLog = Logger.getLogger(ServiceJob.class); |
/*Class regular log*/ |
136,8 → 144,10 |
protected abstract ILogMessages runJobServiceTask() throws Throwable; |
protected void commitPartially() { |
AbstractDao.getCurrentSession().getTransaction().commit(); |
AbstractDao.getCurrentSession().beginTransaction(); |
AbstractDao.getCurrentSession().update(jobServiceTask); |
if(jobServiceTask != null) |
AbstractDao.getCurrentSession().update(jobServiceTask); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/data/RepositoryService.java |
---|
115,6 → 115,10 |
return repositoryFile; |
} |
public IRepositoryFile loadByIdentifier(String identifier) |
{ |
return load(identifier,null); |
} |
/** |
* @param identifier . |
* @param userSession . |
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java |
---|
4,6 → 4,7 |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.impl.AnnouncementDaoImpl; |
import pt.estgp.estgweb.domain.enums.LangEnum; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.domain.views.UserView; |
85,7 → 86,7 |
return all; |
} |
} |
public List<UserView> sendMessage(HttpServletRequest request, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession) |
public List<UserView> sendMessageOld(HttpServletRequest request, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession) |
{ |
List<User> users = DaoFactory.getAnnouncementDaoImpl().findUsers(year,department,courseId,courseUnitId,semestre,target); |
List<User> usersToConsume = new ArrayList<User>(); |
103,6 → 104,41 |
iter.remove(); |
contador++; |
} |
Email e = sendEmailService.getMessageEmailOld( |
jomm.utils.MessageResources.getMessage(request, "user.role." + from), |
subject, |
text, |
LangEnum.PORTUGUESE, |
jomm.utils.MessageResources.getMessage(request, "submit.todo.message." + target.getTarget()), |
usersToJob, |
userSession.getUser()); |
e.setHtml(true); |
EMAILJob emailJob = new EMAILJob(e); |
JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email from " + userSession.getUsername() + " as " + from + ": year:" + year + " - department:" + department + " - courseId:" + courseId + " - courseUnitId:" + courseUnitId + " - semestre:" + semestre + " - target:" + target + " - subject:" + subject ,userSession); |
} |
List<UserView> userViews = UserView.getViews(users); |
return userViews; |
} |
public Integer sendMessage(HttpServletRequest request, String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, String text,String subject, UserSession userSession) |
{ |
//List<User> users = DaoFactory.getAnnouncementDaoImpl().findUsers(year,department,courseId,courseUnitId,semestre,target); |
AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getAnnouncementDaoImpl().findUsersEmails(year, department, courseId, courseUnitId, semestre, target); |
List<String> usersToConsume = result.emails; |
logger.info("Scheduling mail jobs to " + result.users + " users: " + usersToConsume.size() + " recipients"); |
while(usersToConsume.size() > 0) |
{ |
Iterator<String> iter = usersToConsume.iterator(); |
List<String> usersToJob = new ArrayList<String>(); |
int contador = 0; |
while(iter.hasNext() && contador < 20) |
{ |
usersToJob.add(iter.next()); |
iter.remove(); |
contador++; |
} |
Email e = sendEmailService.getMessageEmail( |
jomm.utils.MessageResources.getMessage(request,"user.role." + from), |
subject, |
115,8 → 151,8 |
EMAILJob emailJob = new EMAILJob(e); |
JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email from " + userSession.getUsername() + " as " + from + ": year:" + year + " - department:" + department + " - courseId:" + courseId + " - courseUnitId:" + courseUnitId + " - semestre:" + semestre + " - target:" + target + " - subject:" + subject ,userSession); |
} |
List<UserView> userViews = UserView.getViews(users); |
return userViews; |
return result.users; |
} |
public AnnouncementView run(AnnouncementView announcementView, Image imageBig, Image imageSmall, UserSession userSession) |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitProgramImpl.java |
---|
505,9 → 505,13 |
private static void importCourseUnit(CourseUnitInputLine line, String importYear) throws TransformerException, IOException, FOPException { |
CourseUnit cu; |
CourseUnit cu = null; |
try{ |
cu = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique(line.codigoSIGESUnidade,line.codigoCurso,line.semestre, importYear); |
//todo revisao necessaria |
System.out.println("######FRAGMENTO DE CODIGO DESATUALIZADO, NESTE MOMENTO UMA CADEIRA AQUI NAO E UNICA (FALTA ID DE TURMA) -> NECESSITA DE REVISAO"); |
List<CourseUnit> cs = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode(line.codigoSIGESUnidade,line.codigoCurso,line.semestre, importYear); |
if(cs!=null && cs.size() > 0) |
cu=cs.get(0); |
}catch(NonUniqueResultException e) |
{ |
errors.add("unidade nao unica: " + line.codigoSIGESUnidade + ":" + line.codigoCurso + ":" + line.semestre + ":" + importYear ); |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseView.java |
---|
6,10 → 6,12 |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.web.utils.DatesUtils; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
/** |
22,6 → 24,15 |
{ |
private static final Logger logger = Logger.getLogger(CourseView.class); |
static HashMap<String,String> degrees = new HashMap<String, String>(); |
static |
{ |
List<String> degreesProps = ConfigProperties.getListValues("siges.degree."); |
for(String degree: degreesProps) |
{ |
degrees.put(degree,degree); |
} |
} |
private long id; |
250,7 → 261,15 |
{ |
return degree; |
} |
public String getDegreeCleanCode() |
{ |
if(degree == null || degree.trim().length() > 0) |
if(degrees.get(degree)!=null) |
return degree; |
return Globals.COURSE_DEGREE_UNKNOWN; //for unknown |
} |
public void setDegree(String degree) |
{ |
this.degree = degree; |
/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java |
---|
62,6 → 62,7 |
private String extension; |
private List<CourseUnitAssignementView> courseUnitAssignements; |
private String sumariosPathFileIntranet; |
private String cdTurma; |
private boolean notFound = false; |
136,6 → 137,7 |
this.summariesJson = courseUnit.getSummariesJson(); |
this.sumariosPathFileIntranet = ((CourseUnitImpl)courseUnit).getSummariosPathFileIntranet(); |
this.evaluationOpenByAdmin = courseUnit.isEvaluationOpenByAdmin(); //nao tem persistencia propria tem de ser feito num serviço |
this.cdTurma = courseUnit.getCdTurma(); |
// this.objectives = courseUnit.getObjectives(); DEPRECATED |
if(courseUnit.getCourseUnitProgram() !=null && courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2() != null) |
229,6 → 231,10 |
return responsableId; |
} |
public String getCdTurma() { |
return cdTurma; |
} |
public void setResponsableId(long responsableId) { |
this.responsableId = responsableId; |
} |
356,6 → 362,7 |
c.setImportYear(importYear); |
c.setName(name); |
c.setCode(code); |
c.setCdTurma(cdTurma); |
c.setSemestre(semestre); |
if(courseId > 0) |
{ |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
97,7 → 97,8 |
return anCourseUnit.getCode() != null && getCode() != null && getCode().equals(anCourseUnit.getCode()) && |
anCourseUnit.getCourseCode() != null && getCourseCode() != null && getCourseCode().equals(anCourseUnit.getCourseCode()) && |
anCourseUnit.getSemestre() != null && getSemestre() != null && getSemestre().equals(anCourseUnit.getSemestre()) && |
anCourseUnit.getImportYear() != null && getImportYear() != null && getImportYear().equals(anCourseUnit.getImportYear()); |
anCourseUnit.getImportYear() != null && getImportYear() != null && getImportYear().equals(anCourseUnit.getImportYear()) && |
anCourseUnit.getCdTurma() != null && getCdTurma() != null && getCdTurma().equals(anCourseUnit.getCdTurma()); |
} |
return false; |
124,6 → 125,12 |
return Globals.FTP_IONLINE_START_PATH + "/" + getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_Sumarios; |
} |
public String getInqueritosPedagogicosPathIntranet() |
{ |
return Globals.FTP_IONLINE_START_PATH + getPathIntranet() + "/" + Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_InqueritoPedagogico; |
} |
public String getSummariosPathFileIntranet() |
{ |
return getSummariosPathIntranet() + "/" + getSummariosFileNameIntranet(); |
137,7 → 144,7 |
public String getSigesUniqueIdentifiers() |
{ |
return "SIGES:" + getCode() + ", COURSE: " + getCourseCode() + |
", " + getSemestre() + " of " + getImportYear() + " - " + getName(); |
", " + getSemestre() + " of " + getImportYear() + " - " + getName() + " Turma - " + getCdTurma(); |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/UserDaoImpl.java |
---|
12,6 → 12,7 |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.List; |
133,6 → 134,8 |
public List<User> loadRoleUsers(String role) |
{ |
if(role == null || role.trim().length() == 0) |
return new ArrayList<User>(); |
return createCriteria().add(like("roles", "%" + role + "%")).addOrder(Order.asc("name")).list(); |
} |
226,10 → 229,14 |
// Duarte Santos |
public List<User> loadRolesUsers(List<String> roles) |
{ |
if(roles == null || roles.size() == 0) |
return new ArrayList<User>(); |
Criteria criteria = createCriteria(); |
Criterion co = null; |
for (String role : roles) |
{ |
if(role.trim().length() == 0) |
continue; |
Criterion cor = like("roles", "%" + role + "%"); |
if (co == null) |
co = cor; |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/ConfigurationDaoImpl.java |
---|
59,6 → 59,17 |
return config; |
} |
public Configuration loadSimpleConfigurationForConsult() |
{ |
List<Configuration> configs = createCriteria().list(); |
if(configs.size() == 0) |
{ |
return null; |
} |
else |
return configs.get(0); |
} |
public void updateInterfaceImportYearCreateTransaction(String importYear) |
{ |
getCurrentSession().beginTransaction(); |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java |
---|
4,6 → 4,8 |
import org.hibernate.Criteria; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.ProjectionList; |
import org.hibernate.criterion.Projections; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
34,6 → 36,292 |
} |
public static class FindUsersResult |
{ |
public int users; |
public List<String> emails; |
} |
public FindUsersResult findUsersEmails(String year, String department, long courseId, long courseUnitId, String semestre, CreateAnnouncementService.MessageTarget target) |
{ |
FindUsersResult findUsersResult = new FindUsersResult(); |
List<String> users = new ArrayList<String>(); |
findUsersResult.emails = users; |
ProjectionList projList = Projections.projectionList(); |
projList.add(Projections.distinct(Projections.property("id"))); |
projList.add(Projections.property("sigesCode")); |
projList.add(Projections.property("email")); |
projList.add(Projections.property("outEmail")); |
if(target.isWorkers()) |
{ |
Criteria criteria = createCriteria(User.class); |
criteria.add(like("roles", "%worker%")); |
List<User > l = criteria.list(); |
findUsersResult.users = l.size(); |
for(User u: l) |
{ |
if(u.getEmail() != null) |
users.add(u.getEmail()); |
if(u.getOutEmail() != null) |
users.add(u.getOutEmail()); |
} |
} |
if(courseUnitId > 0) |
{ |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(courseUnitId); |
if(target.isTeachers()) |
{ |
findUsersResult.users = cu.getTeachers().size(); |
for(Teacher t: cu.getTeachers()) |
{ |
if(t.getEmail() != null) |
users.add(t.getEmail()); |
if(t.getOutEmail() != null) |
users.add(t.getOutEmail()); |
} |
} |
if(target.isStudents()) |
{ |
findUsersResult.users = cu.getStudents().size(); |
for(Student t: cu.getStudents()) |
{ |
if(t.getEmail() != null) |
users.add(t.getEmail()); |
if(t.getOutEmail() != null) |
users.add(t.getOutEmail()); |
} |
} |
} |
else if(semestre != null && semestre.length() > 0) |
{ |
if(target.isTeachers()) |
{ |
Criteria usersC = createCriteria(Teacher.class); |
usersC.setProjection(projList); |
usersC.createAlias("teachedUnits", "tU"); |
usersC.createAlias("tU.course","tUC"); |
usersC.add(eq("tU.semestre",semestre)) |
.add(eq("tUC.id",courseId)); |
//NOVO |
if(year != null && year.length() > 0) |
usersC.add(eq("tU.importYear",year)); |
//NOVO |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
if(target.isStudents()) |
{ |
Criteria usersC = createCriteria(Student.class); |
usersC.setProjection(projList); |
usersC.createAlias("subscribedUnits", "sU"); |
usersC.createAlias("sU.course","sUC"); |
usersC.add(eq("sU.semestre",semestre)) |
.add(eq("sUC.id",courseId)); |
if(year != null && year.length() > 0) |
usersC.add(eq("sU.importYear",year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
} |
else if(courseId > 0) |
{ |
if(target.isTeachers()) |
{ |
Criteria usersC = createCriteria(Teacher.class); |
usersC.setProjection(projList); |
usersC.createAlias("teachedUnits", "tU"); |
usersC.createAlias("tU.course","tUC"); |
usersC.add(eq("tUC.id",courseId)); |
if(year != null && year.length() > 0) |
usersC.add(eq("tU.importYear",year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
if(target.isStudents()) |
{ |
Criteria usersC = createCriteria(Student.class); |
usersC.setProjection(projList); |
usersC.createAlias("subscribedUnits", "sU"); |
usersC.createAlias("sU.course","sUC"); |
usersC.add(eq("sUC.id",courseId)); |
if(year != null && year.length() > 0) |
usersC.add(eq("sU.importYear",year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
} |
else if(department != null && department.length() > 0) |
{ |
if(target.isTeachers()) |
{ |
Criteria usersC = createCriteria(Teacher.class); |
usersC.setProjection(projList); |
usersC.createAlias("teachedUnits", "tU"); |
usersC.createAlias("tU.course","tUC"); |
usersC.add(eq("tUC.area",department)); |
if(year != null && year.length() > 0) |
usersC.add(eq("tU.importYear",year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
if(target.isStudents()) |
{ |
Criteria usersC = createCriteria(Student.class); |
usersC.setProjection(projList); |
usersC.createAlias("subscribedUnits", "sU"); |
usersC.createAlias("sU.course","sUC"); |
usersC.add(eq("sUC.area",department)); |
if(year != null && year.length() > 0) |
usersC.add(eq("sU.importYear",year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
} |
else if(year != null && year.length() > 0) |
{ |
if(target.isTeachers()) |
{ |
Criteria usersC = createCriteria(Teacher.class). |
setProjection(projList). |
createAlias("teachedUnits", "tU") |
.add(eq("tU.importYear", year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
if(target.isStudents()) |
{ |
Criteria usersC = createCriteria(Student.class). |
setProjection(projList). |
createAlias("subscribedUnits", "sU"). |
add(eq("sU.importYear", year)); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(t[1] + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
} |
else |
{ |
if(target.isTeachers()) |
{ |
Criteria usersC = createCriteria(Teacher.class). |
setProjection(projList); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
//if(t[1] != null) |
// users.add(((String) t[1]) + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
if(target.isStudents()) |
{ |
Criteria usersC = createCriteria(Student.class). |
setProjection(projList); |
List<Object[]> l = usersC.list(); |
findUsersResult.users = l.size(); |
for(Object[] t: l) |
{ |
// if(t[1] != null) |
// users.add(((String) t[1]) + "@" + Globals.EMAIL_LOCAL_SUFFIX); |
if(t[2] != null) |
users.add((String) t[2]); |
if(t[3] != null) |
users.add((String) t[3]); |
} |
} |
} |
// System.out.println("Selected People:" + users.size()); |
// for(User u : users) |
// { |
// System.out.println(u.getName()); |
// } |
// System.out.println("/Selected Students:" + users.size()); |
return findUsersResult; |
} |
public List<User> findUsers(String year, String department, long courseId, long courseUnitId, String semestre, CreateAnnouncementService.MessageTarget target) |
{ |
List<User> users = new ArrayList<User>(); |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
5,7 → 5,9 |
import org.hibernate.Query; |
import org.hibernate.criterion.Criterion; |
import org.hibernate.criterion.Order; |
import org.hibernate.criterion.Projections; |
import org.hibernate.sql.JoinFragment; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.DaoUtils; |
218,28 → 220,75 |
} |
//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 actualizacao 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) |
/** |
* Turma required to be unique in BACO Model |
* @param sigesCode |
* @param courseCode |
* @param semestre |
* @param year |
* @return |
*/ |
public List<CourseUnit> loadBySigesCode(String sigesCode, String courseCode, String semestre, String year) |
{ |
return |
createCriteria() |
.add(eq("code", sigesCode)) |
.add(eq("courseCode", courseCode)) |
.add(eq("semestre", semestre)) |
.add(eq("importYear", year)) |
.list(); |
} |
/** |
* Metodo especial para a fase de transicao para terem código de turma |
* @param sigesCode |
* @param courseCode |
* @param semestre |
* @param year |
* @return |
*/ |
public List<CourseUnit> loadBySigesCodeTurmaNull(String sigesCode, String courseCode, String semestre, String year) |
{ |
return (List<CourseUnit>) |
createCriteria() |
.add(eq("code", sigesCode)) |
.add(eq("courseCode", courseCode)) |
.add(eq("semestre", semestre)) |
.add(eq("importYear", year)) |
.add(isNull("cdTurma")) |
.list(); |
} |
//TODO Na actualizacao 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,String turma) |
{ |
return (CourseUnit) |
createCriteria() |
.add(eq("code", sigesCode)) |
.add(eq("courseCode", courseCode)) |
.add(eq("semestre", semestre)) |
.add(eq("importYear", year)) |
.add(eq("cdTurma", turma)) |
.uniqueResult(); |
} |
public CourseUnit loadBySigesCodeUniqueMostRecent(String sigesCode, String courseCode, String semestre) |
{ |
return (CourseUnit) |
List<CourseUnit> cus = |
createCriteria() |
.add(eq("code", sigesCode)) |
.add(eq("courseCode", courseCode)) |
.add(eq("semestre", semestre)) |
.addOrder(Order.desc("importYear")) |
.setMaxResults(1).list().get(0); |
.setMaxResults(1).list(); |
if(cus.size() > 0) |
return cus.get(0); |
logger.warn("Accessing unit not existent with siges code " + sigesCode + " course code: " + courseCode + " semestre: " + semestre); |
return null; |
} |
507,7 → 556,7 |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
if(userSession.getUser().hasRole(course.getValidationRole()) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
List<CourseUnit> courseUnits = loadMissingProgramValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
521,13 → 570,15 |
} |
return result; |
} |
public List<CourseMissingValidationProgram> loadMissingPrograms(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
if(userSession.getUser().hasRole(course.getValidationRole()) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
List<CourseUnit> courseUnits = loadMissingProgramGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
553,7 → 604,7 |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
if(userSession.getUser().hasRole(course.getValidationRole()) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluationValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
568,6 → 619,8 |
return result; |
} |
/* |
* Neste caso apenas se validam as do ano anterior*/ |
591,6 → 644,30 |
} |
/** |
* |
* @return devolve todos os ids de unidades que verifiquem a condição de avaliação |
* do periodo actual e tenham o programa fechado pela comissão |
*/ |
public List<Long> loadClosedCourseUnitsEvaluations() |
{ |
String activeYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYear(); |
Criterion degreesCrit = getCourseUnitActiveDegreeCourseIdsCriterion(activeYear); |
if(degreesCrit == null) |
return new ArrayList<Long>(); |
return createCriteria() |
.setProjection(Projections.property("id")) |
.createAlias("course", "c") |
.createAlias("courseUnitEvaluation", "ce") |
.add(eq("importYear", activeYear)) |
.add(degreesCrit) |
.add((eq("ce.closed", true))) |
.list(); |
} |
/** |
* Devolve um criteio OR para todos os cursos de grau pertencente à lista de graus |
* ou pertencete à lista de cursoIds |
655,7 → 732,7 |
createCriteria() |
.createAlias("course", "c") |
.createAlias("courseUnitEvaluation", "ce") |
.createAlias("teachers","t") |
.createAlias("teachers", "t") |
.add(eq("t.id", userSession.getUser().getId())) |
.add(eq("importYear", activeYear)) |
//.add(not(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()))) |
676,7 → 753,7 |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole())) |
if(userSession.getUser().hasRole(course.getValidationRole()) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluation(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
/impl/src/java/pt/estgp/estgweb/domain/JobServiceTaskSchedulerImpl.java |
---|
53,4 → 53,55 |
return "unknown"; |
} |
private String calendarization; |
public String getCalendarization() { |
if(calendarization == null) |
{ |
if(isDaily()) |
return CalendarizationEnum.DAILY.name(); |
else if(isMonthly()) |
return CalendarizationEnum.MONTLY.name(); |
else if(isWeekly()) |
return CalendarizationEnum.WEEKLY.name(); |
else |
return CalendarizationEnum.DAILY.name(); |
} |
return calendarization; |
} |
public void setCalendarization(String calendarization) { |
this.calendarization = calendarization; |
CalendarizationEnum calendarizationEnum = CalendarizationEnum.parse(calendarization); |
setDaily(false); |
setMonthly(false); |
setWeekly(false); |
if(calendarizationEnum == CalendarizationEnum.DAILY) |
setDaily(true); |
else if(calendarizationEnum == CalendarizationEnum.MONTLY) |
setMonthly(true); |
else if(calendarizationEnum == CalendarizationEnum.WEEKLY) |
setWeekly(true); |
} |
public enum CalendarizationEnum |
{ |
DAILY,WEEKLY,MONTLY; |
public static CalendarizationEnum parse(String cal) |
{ |
if(cal == null) |
return MONTLY; |
for(CalendarizationEnum en: CalendarizationEnum.values()) |
if(en.name().equals(cal)) |
return en; |
return MONTLY; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/UserSessionImpl.java |
---|
1,7 → 1,9 |
package pt.estgp.estgweb.domain; |
import jomm.utils.DesUtils; |
import org.apache.commons.io.output.ByteArrayOutputStream; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
24,6 → 26,7 |
{ |
private Set<SessionObject> removeList; |
private Configuration nowConfiguration; |
/** |
* @return |
279,4 → 282,20 |
} |
} |
public Configuration getNowConfiguration() { |
return nowConfiguration; |
} |
public void setNowConfiguration(Configuration nowConfiguration) { |
this.nowConfiguration = nowConfiguration; |
} |
public String getUserPasswordInSession() |
{ |
String passCrypt = (String) get(FtpService.FTP_PASSWORD); |
if(passCrypt != null) |
return DesUtils.getInstance().decrypt(passCrypt); |
return null; |
} |
} |
/impl/src/java/pt/estgp/estgweb/filters/filters/Session.java |
---|
3,10 → 3,7 |
import org.apache.log4j.Logger; |
import org.hibernate.ObjectNotFoundException; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.SessionObject; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.filters.chains.FlowFilter; |
import pt.estgp.estgweb.utils.ConfigProperties; |
39,16 → 36,23 |
public void execute(ServiceRequest request, ServiceResponse response, FilterParameters filterParameters) throws FilterException, Exception { |
UserSessionImpl userSession = null; |
Configuration config = DaoFactory.getConfigurationDaoImpl().loadSimpleConfigurationForConsult(); |
try |
{ |
userSession = (UserSessionImpl) DaoFactory.getUserSessionDaoImpl().get((Serializable) request.getRequester()); |
if(userSession != null && userSession.getObjects() != null) |
{ |
userSession.setNowConfiguration(config); |
for(SessionObject sessionObject: userSession.getObjects()) |
{ |
sessionObject.getObject(); |
} |
} |
if(userSession != null && new Date().getTime() - userSession.getSaveDate().getTime() < TIMEOUT_SESSION) |
{ |
userSession.setNowConfiguration(config); |
putSessionInArgs(userSession,request); |
userSession.setSaveDate(new Date()); //todo NOVO refrescar a sessao |
return; |
79,6 → 83,8 |
userSession.setUpdateDate(new Date()); |
DaoFactory.getUserSessionDaoImpl().saveOrUpdate(userSession); |
// System.out.println(Thread.currentThread().getId() +"UPDATE: " + request.getRequester()); |
userSession.setNowConfiguration(config); |
putSessionInArgs(userSession,request); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/FtpServer.java |
---|
2,7 → 2,10 |
import org.apache.commons.net.ftp.FTPClient; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import javax.servlet.http.HttpServletRequest; |
import java.io.IOException; |
import java.io.InputStream; |
import java.net.MalformedURLException; |
43,6 → 46,19 |
this.password = password; |
} |
public static FtpServer getFtpServerForCurrentUser(String urlStr, HttpServletRequest request) throws MalformedURLException |
{ |
URL url = new URL(urlStr); |
int port = url.getPort(); |
if (port <= 0) |
port = 21; |
String host = url.getHost(); |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
String username = userSession.getUsername(); |
String password = ((UserSessionImpl)userSession).getUserPasswordInSession(); |
return new FtpServer(host,port,username,password); |
} |
private static final int FTP_TIMEOUT_SECONDS = pt.estgp.estgweb.Globals.FTP_TIMEOUT_SECONDS; |
public FTPClient getClient() throws IOException |
{ |
/impl/src/java/pt/estgp/estgweb/web/LayoutController.java |
---|
1,6 → 1,5 |
package pt.estgp.estgweb.web; |
import jomm.utils.DesUtils; |
import jomm.web.ftp.IFile; |
import jomm.web.ftp.impl.FtpFile; |
import jomm.web.utils.NavPlace; |
12,8 → 11,6 |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.services.ftpservices.FtpService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
120,7 → 117,7 |
protected void processRequestFtp(HttpServletRequest request, HttpServletResponse response, String path, String serverStr, String server, String startPath) |
protected void processRequestFtp(HttpServletRequest request, HttpServletResponse response, String path, String server, String serverUrl, String startPath) |
throws ServletException, IOException |
{ |
try |
131,17 → 128,20 |
FtpManager.checkOperations(this,request,response); |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
String username = userSession != null ? userSession.getUsername() : "UNKNOWN"; |
//String username = userSession != null ? userSession.getUsername() : "UNKNOWN"; |
FTPFileProxy.UserCredentialsForFtp u = FTPFileProxy.getUserCredentialsForFtp(server, userSession); |
String username = u.username; |
String password = u.password; |
if (path != null) |
{ |
boolean isStaticAccess = ConfigProperties.getBooleanProperty(serverStr+".use.default.credentials.to.updates.and.deletes"); |
String user; |
String pass; |
//boolean isStaticAccess = ConfigProperties.getBooleanProperty(serverStr+".use.default.credentials.to.updates.and.deletes"); |
//String user; |
//String pass; |
/* |
if(isStaticAccess) |
{ |
user = ConfigProperties.getProperty(serverStr + ".user"); |
155,8 → 155,9 |
pass= DesUtils.getInstance().decrypt(passwordCode); |
//pass= ((UserImpl)userSession.getUser()).getPop3PassDecrypted(); |
} |
FtpServer ftpServer = FtpServer.getNewServer(server, user, pass); |
FTPClient client = ftpServer.getClient(); |
*/ |
FtpServer ftpServer = FtpServer.getNewServer(serverUrl, username, password); |
FTPClient client = FTPFileProxy.getFtpClient(ftpServer,userSession,server,serverUrl); |
if(client == null) |
{ |
logger.warn("###################"); |
175,8 → 176,8 |
{ |
IFile iFile; |
if (path.endsWith("/")) |
iFile = new FtpFile(ftpFile, server + URIUtil.encodePath(path +ftpFile.getName(),"ISO-8859-1"), path); |
else iFile = new FtpFile(ftpFile, server + URIUtil.encodePath(path + "/" + ftpFile.getName(),"ISO-8859-1"), path); |
iFile = new FtpFile(ftpFile, serverUrl + URIUtil.encodePath(path +ftpFile.getName(),"ISO-8859-1"), path); |
else iFile = new FtpFile(ftpFile, serverUrl + URIUtil.encodePath(path + "/" + ftpFile.getName(),"ISO-8859-1"), path); |
iFiles.add(iFile); |
} |
List<NavPlace> navPlaces = FtpFile.getNavPlaces(path,startPath); |
187,7 → 188,7 |
} |
else |
{ |
throw new FileNotFoundException("url not found for server:" + server + " and path:" + path); |
throw new FileNotFoundException("url not found for server:" + serverUrl + " and path:" + path); |
} |
} |
catch (Throwable e) |
/impl/src/java/pt/estgp/estgweb/web/form/courses/CourseForm.java |
---|
67,7 → 67,7 |
public List<String> getImportYears() |
{ |
return DatesUtils.getImportYears(5); |
return DatesUtils.getImportYears(20); |
} |
/impl/src/java/pt/estgp/estgweb/web/form/courseunits/CourseUnitsForm.java |
---|
3,28 → 3,16 |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.upload.FormFile; |
import pt.estgp.estgweb.web.form.AddRolesForm; |
import pt.estgp.estgweb.web.form.ApplicationForm; |
import pt.estgp.estgweb.web.form.commons.TeachersForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseUnitAssignementView; |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.domain.views.CourseUnitDeliverableView; |
import pt.estgp.estgweb.domain.TeacherImpl; |
import pt.estgp.estgweb.domain.Teacher; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
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 pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.estgp.estgweb.web.form.commons.TeachersForm; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.util.List; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
/** |
* @author Jorge Machado |
97,7 → 85,7 |
public List<String> getImportYears() |
{ |
return DatesUtils.getImportYears(5); |
return DatesUtils.getImportYears(15); |
} |
/impl/src/java/pt/estgp/estgweb/web/form/configuration/SchedulleTasksForm.java |
---|
18,13 → 18,82 |
private Long id; |
private String jobImportYearKey; |
private String jobSemestreKey; |
private String jobSendIonlineKey; |
private String jobSendEmailKey; |
private String jobCloneOnlyNewsKey; |
private String jobGenerateAllPdfsKey; |
private String jobValidateKey; |
public SchedulleTasksForm() |
{ |
if(jobScheduller == null) |
{ |
jobScheduller = DomainObjectFactory.createJobServiceTaskSchedulerImpl(); |
} |
} |
public String getJobImportYearKey() { |
return jobImportYearKey; |
} |
public void setJobImportYearKey(String jobImportYearKey) { |
this.jobImportYearKey = jobImportYearKey; |
} |
public String getJobSemestreKey() { |
return jobSemestreKey; |
} |
public void setJobSemestreKey(String jobSemestreKey) { |
this.jobSemestreKey = jobSemestreKey; |
} |
public String getJobSendIonlineKey() { |
return jobSendIonlineKey; |
} |
public void setJobSendIonlineKey(String jobSendIonlineKey) { |
this.jobSendIonlineKey = jobSendIonlineKey; |
} |
public String getJobSendEmailKey() { |
return jobSendEmailKey; |
} |
public void setJobSendEmailKey(String jobSendEmailKey) { |
this.jobSendEmailKey = jobSendEmailKey; |
} |
public String getJobCloneOnlyNewsKey() { |
return jobCloneOnlyNewsKey; |
} |
public void setJobCloneOnlyNewsKey(String jobCloneOnlyNewsKey) { |
this.jobCloneOnlyNewsKey = jobCloneOnlyNewsKey; |
} |
public String getJobGenerateAllPdfsKey() { |
return jobGenerateAllPdfsKey; |
} |
public void setJobGenerateAllPdfsKey(String jobGenerateAllPdfsKey) { |
this.jobGenerateAllPdfsKey = jobGenerateAllPdfsKey; |
} |
public String getJobValidateKey() { |
return jobValidateKey; |
} |
public void setJobValidateKey(String jobValidateKey) { |
this.jobValidateKey = jobValidateKey; |
} |
public JobServiceTaskSchedulerImpl getDirectory() |
{ |
if(jobScheduller == null) |
32,6 → 101,10 |
return jobScheduller; |
} |
public JobServiceTaskSchedulerImpl getJobScheduller() { |
return jobScheduller; |
} |
public void setJobScheduller(JobServiceTaskSchedulerImpl jobScheduller) { |
this.jobScheduller = jobScheduller; |
} |
52,4 → 125,6 |
public void setJobServiceTask(JobServiceTaskImpl jobServiceTask) { |
this.jobServiceTask = jobServiceTask; |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/UserSessionProxy.java |
---|
96,6 → 96,24 |
} |
} |
public static UserSession createUserSession(HttpServletRequest request, HttpServletResponse response) throws Throwable |
{ |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{RequestUtils.getRequester(request, response)}; |
UserSession userSession = (UserSession) sm.execute(RequestUtils.getRequester(request, response),"LoadUserSession",args); |
request.setAttribute(Globals.USER_SESSION_KEY,userSession); |
return userSession; |
} |
catch (Throwable e) |
{ |
throw e; |
} |
} |
public static UserSession loadUserSessionFromRequest(HttpServletRequest request) |
{ |
return (UserSession) request.getAttribute(Globals.USER_SESSION_KEY); |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsAdminController.java |
---|
5,14 → 5,9 |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
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.CourseUnitProgramView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitProgramForm; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
384,7 → 379,7 |
// sm.execute(RequestUtils.getRequester(request, response), "DeleteCourseUnit", args, names); |
// addMessage(request,"courseunit.removed"); |
logger.info("N�o implementado por razoes de seguran�a"); |
logger.info("Não implementado por razoes de segurança"); |
addMessage(request,"courseunit.security.not.implemented"); |
} catch (Throwable e) { |
addMessage(request,"error.500"); |
/impl/src/java/pt/estgp/estgweb/web/controllers/configuration/SchedulerTasksController.java |
---|
4,10 → 4,10 |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.JobServiceTaskImpl; |
import pt.estgp.estgweb.domain.JobServiceTaskScheduler; |
import pt.estgp.estgweb.domain.JobServiceTaskSchedulerImpl; |
import pt.estgp.estgweb.services.directories.xsd.*; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.services.directories.xsd.LeafT; |
import pt.estgp.estgweb.services.directories.xsd.LeafTImpl; |
import pt.estgp.estgweb.services.jobs.ServiceJob; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.form.configuration.DirectoriesForm; |
20,7 → 20,6 |
import javax.servlet.ServletException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.util.Iterator; |
/** |
* @author Jorge Machado |
33,7 → 32,19 |
private static final Logger logger = Logger.getLogger(SchedulerTasksController.class); |
public ActionForward newTask(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable |
{ |
SchedulleTasksForm sf = (SchedulleTasksForm) form; |
sf.setJobScheduller(DomainObjectFactory.createJobServiceTaskSchedulerImpl()); |
return mapping.findForward("task"); |
} |
public ActionForward load(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
50,7 → 61,39 |
try |
{ |
JobServiceTaskSchedulerImpl d = (JobServiceTaskSchedulerImpl) sm.execute(RequestUtils.getRequester(request, response), "LoadJobServiceTaskScheduler", args, names); |
for(JobServiceTaskSchedulerParameter p: d.getServiceTaskSchedulerParameters()) |
{ |
if(p.getName().equals(ServiceJob.JOB_importYear_KEY)) |
{ |
sf.setJobImportYearKey(p.getObject()); |
}else if(p.getName().equals(ServiceJob.JOB_semestre_KEY)) |
{ |
sf.setJobSemestreKey(p.getObject()); |
} |
else if(p.getName().equals(ServiceJob.JOB_cloneOnlyNews_KEY)) |
{ |
sf.setJobCloneOnlyNewsKey(p.getObject()); |
} |
else if(p.getName().equals(ServiceJob.JOB_generateAllPdfs_KEY)) |
{ |
sf.setJobGenerateAllPdfsKey(p.getObject()); |
} |
else if(p.getName().equals(ServiceJob.JOB_sendEmail_KEY)) |
{ |
sf.setJobSendEmailKey(p.getObject()); |
} |
else if(p.getName().equals(ServiceJob.JOB_sendIonline_KEY)) |
{ |
sf.setJobSendIonlineKey(p.getObject()); |
} |
else if(p.getName().equals(ServiceJob.JOB_validate_KEY)) |
{ |
sf.setJobValidateKey(p.getObject()); |
} |
} |
sf.setJobScheduller(d); |
} |
catch (FilterChainFailedException e) |
{ |
64,6 → 107,44 |
return mapping.findForward("task"); |
} |
public ActionForward save(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable |
{ |
SchedulleTasksForm sf = (SchedulleTasksForm) form; |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{sf.getJobScheduller() |
,sf.getJobCloneOnlyNewsKey() |
,sf.getJobGenerateAllPdfsKey() |
,sf.getJobImportYearKey() |
,sf.getJobSemestreKey() |
,sf.getJobSendEmailKey() |
,sf.getJobSendIonlineKey() |
,sf.getJobValidateKey() |
}; |
try |
{ |
sm.execute(RequestUtils.getRequester(request, response), "SaveJobServiceTaskScheduler", args, names); |
addMessage(request, "configuration.tasks.saved"); |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
throw e; |
} |
return mapping.findForward("tasks"); |
} |
public ActionForward loadLog(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
239,234 → 320,21 |
return mapping.findForward("directory"); |
} |
public ActionForward save(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable { |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{df.getDirectory()}; |
try { |
sm.execute(RequestUtils.getRequester(request, response), "SaveDirectoryService", args, names); |
} |
catch (FilterChainFailedException e) |
{ |
return mapping.findForward("error401"); |
} |
catch (Throwable e) |
{ |
logger.error(e, e); |
throw e; |
} |
addMessage(request, "directories.saved"); |
return mapping.findForward("directories"); |
} |
public ActionForward cancel(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
addMessage(request, "directories.canceled"); |
return mapping.findForward("directories"); |
addMessage(request, "configuration.tasks.canceled"); |
return mapping.findForward("tasks"); |
} |
public ActionForward removeLeaf(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
String idParent = df.getId(); |
LeafT leaf = LeafTImpl.removeLeaf(df.getDirectory(), idParent); |
if(leaf == null) |
{ |
addError(request,"directories.leaf.not.found",idParent); |
return mapping.findForward("directories"); |
} |
addMessage(request, "directories.removed.leaf", idParent); |
leaf.getLeaf().add(new LeafTImpl()); |
return mapping.findForward("directory"); |
} |
public ActionForward addRight(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
String idParent = df.getId(); |
LeafT leaf = LeafTImpl.findLeaf(df.getDirectory(), idParent); |
if(leaf == null) |
{ |
addError(request,"directories.leaf.not.found",idParent); |
return mapping.findForward("directories"); |
} |
leaf.getRights().getRight().add(new RightImpl()); |
addMessage(request, "directories.add.right", idParent); |
return mapping.findForward("directory"); |
} |
public ActionForward removeRight(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
String idParent = df.getId(); |
LeafT leaf = LeafTImpl.findLeaf(df.getDirectory(), idParent); |
if(leaf == null) |
{ |
addError(request,"directories.leaf.not.found",idParent); |
return mapping.findForward("directories"); |
} |
Iterator<RightsT.Right> iter = leaf.getRights().getRight().iterator(); |
while(iter.hasNext()) |
{ |
RightsT.Right r =iter.next(); |
if(r.getName().equals(df.getRname()) && r.getTarget().equals(df.getRtarget()) && df.getRtype().equals(r.getType())) |
{ |
iter.remove(); |
} |
} |
addMessage(request, "directories.remove.right", df.getRname(),df.getRtarget(),df.getRtype()); |
return mapping.findForward("directory"); |
} |
public ActionForward addDirRight(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
String idParent = df.getId(); |
df.getDirectory().getRights().getRight().add(new RightImpl()); |
addMessage(request, "directories.add.right"); |
return mapping.findForward("directory"); |
} |
public ActionForward removeDirRight(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
Iterator<RightsT.Right> iter = df.getDirectory().getRights().getRight().iterator(); |
while(iter.hasNext()) |
{ |
RightsT.Right r =iter.next(); |
if(r.getName().equals(df.getRname()) && r.getTarget().equals(df.getRtarget()) && df.getRtype().equals(r.getType())) |
{ |
iter.remove(); |
} |
} |
addMessage(request, "directories.remove.right", df.getRname(),df.getRtarget(),df.getRtype()); |
return mapping.findForward("directory"); |
} |
public ActionForward addDirGroup(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
String idParent = df.getId(); |
df.getDirectory().getGroupsDeclaration().getGroup().add(new GroupImpl()); |
addMessage(request, "directories.add.group"); |
return mapping.findForward("directory"); |
} |
public ActionForward removeDirGroup(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException |
{ |
if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("services")) |
{ |
return mapping.findForward("error401"); |
} |
DirectoriesForm df = (DirectoriesForm) form; |
Iterator<GroupDeclarationT.Group> iter = df.getDirectory().getGroupsDeclaration().getGroup().iterator(); |
while(iter.hasNext()) |
{ |
GroupDeclarationT.Group g =iter.next(); |
if(g.getName().equals(df.getRname())) |
{ |
iter.remove(); |
} |
} |
addMessage(request, "directories.remove.group"); |
return mapping.findForward("directory"); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/MessagesController.java |
---|
6,7 → 6,6 |
import org.apache.struts.action.ActionMapping; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.domain.views.CourseView; |
import pt.estgp.estgweb.domain.views.UserView; |
import pt.estgp.estgweb.filters.exceptions.NotFoundException; |
import pt.estgp.estgweb.services.announcements.CreateAnnouncementService; |
import pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsController; |
141,9 → 140,9 |
String[] names = new String[]{}; |
Object[] args = new Object[]{request, mF.getFromRole(),mF.getImportYear(),mF.getDepartamento(),mF.getCourseId(),mF.getCourseUnitId(),mF.getSemestre(), CreateAnnouncementService.MessageTarget.parse(mF.getTarget()),mF.getText(),mF.getSubject()}; |
// String from, String year, String department, long courseId, long courseUnitId, String semestre, MessageTarget target, |
List<UserView> users = (List<UserView>) sm.execute(RequestUtils.getRequester(request, response), "SendMessage", args, names); |
Integer size = (Integer) sm.execute(RequestUtils.getRequester(request, response), "SendMessage", args, names); |
addMessage(request,"submit.todo.message.success","" + users.size()); |
addMessage(request,"submit.todo.message.success","" + size); |
return mapping.findForward("success"); |
} |
catch (FilterChainFailedException e) |
/impl/src/java/pt/estgp/estgweb/web/filters/UserSessionFilter.java |
---|
3,6 → 3,7 |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
12,6 → 13,7 |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import java.io.IOException; |
import java.util.Date; |
import java.util.List; |
import java.util.Locale; |
96,6 → 98,20 |
try |
{ |
UserSessionImpl userSession = (UserSessionImpl) UserSessionProxy.loadUserSession(hrequest,((HttpServletResponse) response)); |
boolean dummy = false; |
if(userSession == null) |
{ |
dummy = true; |
System.out.println("Creating dummy UserSession"); |
userSession = new UserSessionImpl();//creating a dummy there is no cookie |
request.setAttribute(Globals.USER_SESSION_KEY,userSession); |
userSession.setIpAddress(request.getRemoteAddr() + " : " + request.getRemoteHost() + " : " + request.getRemotePort()); |
userSession.setSaveDate(new Date()); |
userSession.setNowConfiguration(DaoFactory.getConfigurationDaoImpl().loadSimpleConfigurationForConsult()); |
chain.doFilter(request,response); |
return; |
} |
request.setAttribute(Globals.USER_SESSION_KEY,userSession); |
userSession.setIpAddress(request.getRemoteAddr() + " : " + request.getRemoteHost() + " : " + request.getRemotePort()); |
String lang = request.getParameter("language"); |
/impl/src/java/pt/estgp/estgweb/web/FTPFileProxy.java |
---|
50,7 → 50,9 |
{ |
UserCredentialsForFtp u = new UserCredentialsForFtp(); |
boolean useDefaultCredentialsRead = ConfigProperties.getBooleanProperty(server + ".use.default.credentials.to.read"); |
String passwordUserInSessionCript = (String) ((UserSessionImpl)userSession).get(FtpService.FTP_PASSWORD); |
String passwordUserInSessionCript = null; |
if(userSession != null && ((UserSessionImpl)userSession).get(FtpService.FTP_PASSWORD) != null) |
passwordUserInSessionCript = (String) ((UserSessionImpl)userSession).get(FtpService.FTP_PASSWORD); |
if(!useDefaultCredentialsRead && // DEVE USAR AS DO USER |
passwordUserInSessionCript != null && userSession.getUser() != null) // E ESTA AUTENTICADO |
195,7 → 197,7 |
InputStream stream = client.retrieveFileStream(file.getName()); |
response.setContentLength((int)file.getSize()); |
response.setContentType(MimeTypeGuesser.getInstance().guessMimeType(file.getName())); |
response.setHeader("Content-disposition","inline; filename=" + file.getName()); |
response.setHeader("Content-disposition","attachment; filename=" + file.getName()); |
StreamsUtils.inputStream2OutputStream(stream, response.getOutputStream()); |
stream.close(); |
/impl/src/updates/version/release2015-11.txt |
---|
82,4 → 82,63 |
- Framework de Autorizações para processos |
Nomeadamente incluir Workflow de Tarefas e Responsáveis |
Incluir serviços de Verficicação de tarefas por realizar que deverá servir para |
validar as tentativas de modificação e de visualização de coisas a fazer |
validar as tentativas de modificação e de visualização de coisas a fazer |
- Framework de Roles Configuráveis |
SIGES WEB |
/** |
* DOCUMENTACAO |
* Um aluno está inscrito numa disciplina na tabela T_INSCRI |
* Se o aluno frequentar uma unidade extracurrilar do plano de outro curso não há forma |
* de associar essa cadeira ao curso certo. A associação no SIGES é feita criando um grupo |
* especial com a Turma e usando os planos de estudos mas não fica nenhuma associação |
* entre turmas e cursos, nem entre grupos e cursos uma vez que os funcionaros criam muitas |
* vezes grupos especiais para as extracurriculares |
* A Turma pode também ela não ter associação ao curso precisamente para poderem ser colocados |
* alunos de cadeiras extracurriculares |
* |
* Solução: |
* |
* A tabela T_INSCRI tem as inscrições dos alunos nas disciplinas, no entanto o codigo de curso é |
* sempre o curso do aluno e não o curtsdo onde está a cadeira extracurricular |
* A inscrição tem o campo CD_TIPDIS que tem o valor 6 no caso das extracurriculares. Quando |
* o campo tem 1 significa inscrição regular e nesse caso o PAR turma, Curso está correcto |
* A turma é sempre escrita no campo TURMA_T mas existe o campo TURMA_P e TURMA_L |
* Vamos manter configuravel o campo TURMA_T mas na chamada do WEB-SERVICE |
* Assim saberemos que Turma está em que curso |
* |
* De seguida quando importamos as inscrições vamos sacar o curso mas também a turma |
* e dessa forma o cliente poderá fazer o que quiser com essa informação |
* |
* Para sacar as cadeiras de um curso excluimos a chamada pelo CD_TIPDIS = 1 |
* Para sacar alunos escrevemos toda a informação incluindo a TURMA_T e o código do curso |
* e o código CD_TIPDIS e o cliente decide o que fazer com isso |
* |
* Nas cadeiras de um CURSO vamos enviar também o código da TURMA_T, TURMA_P e TURMA_L e TURMA_TP |
* para o cliente executar como quiser e poder inclusivamente criar várias cadeiras |
* uma por turma se necessário. |
* |
* Portanto a turma vai ser o PONTO chave de todas as importações |
* |
* notas: |
* Nos alunos o CD_SITUA_PAR significa situação parcial servia para identificar bacharelatos no passado |
* CSE.T_INSCRI.CD_STATUS <>5 para evitar anuladas |
* CSE.T_INSCRI.CD_TIPDIS = 6 significa extracurricular |
* CSE.T_INSCRI.CD_TIPDIS = 1 significa regular |
* |
* CD_TIPDISC = 1 Inscricoes normais |
* CD_TIPDISC = 2 Nao conta para media |
* CD_TIPDISC = 3 Qualitativa |
* CD_TIPDISC = 4 Equivalencia |
* CD_TIPDISC = 5 Equivalencia sem nota |
* CD_TIPDISC = 6 Extra Curricular |
* CD_TIPDISC = 7 Suplemento Diploma |
* CD_TIPDISC = 8 Integracao ou refazimento do plano de estudos |
* |
* */ |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
35,6 → 35,7 |
<property name="summariesJson" type="text"> |
<column name="summariesJson" sql-type="TEXT"/> |
</property> |
<property name="cdTurma" type="string" index="cdTurmaIndex" /> |
<!--Not In Use--> |
<many-to-one name="validatorUser" class="pt.estgp.estgweb.domain.User" lazy="false" outer-join="true" /> |
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="false" outer-join="true"/> |
/impl/src/hbm/pt/estgp/estgweb/domain/Configuration.hbm.xml |
---|
32,6 → 32,10 |
<property name="courseUnitEvaluationActiveDegrees" type="string"/> |
<property name="courseUnitEvaluationActiveCourseIds" type="string"/> |
<property name="openInfoIntranet" type="string"> |
<column name="openInfoIntranet" sql-type="TEXT"/> |
</property> |
<many-to-one name="configurationGrades" class="pt.estgp.estgweb.domain.ConfigurationGrades" lazy="proxy" outer-join="false"/> |
<subclass name="pt.estgp.estgweb.domain.ConfigurationImpl" discriminator-value="ConfigurationImpl"/> |
</class> |
/impl/src/web/auth/index.jsp |
---|
1,21 → 1,40 |
<%@ 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-bean.tld" prefix="bean" %> |
<%@ taglib prefix="logic" uri="http://jakarta.apache.org/struts/tags-logic" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<html:errors/> |
<html:errors/> |
<html:form action="/authenticate"> |
<input type="hidden" name="dispatch" value="login"> |
<table class="boxHorizontal"> |
<tr> |
<th><bean:message key="username"/></th> |
<td><input type="text" name="username"></td> |
</tr> |
<tr> |
<th><bean:message key="password"/></th> |
<td><input type="password" name="password"></td> |
</tr> |
<tr class="buttons"> |
<td colspan="2"><html:submit titleKey="submit"/></td> |
</tr> |
</table> |
</html:form> |
<% |
%> |
<div class="container"> |
<logic:notEmpty name="UserSession" property="nowConfiguration.openInfoIntranet"> |
<div class="row"> |
<div class="col-sm-8"> |
<div class="alert alert-warning" role="alert">${UserSession.nowConfiguration.openInfoIntranet}</div> |
</div> |
</div> |
</logic:notEmpty> |
<div class="row"> |
<div class="col-sm-4"> |
<form role="form" action="<%=request.getContextPath()%>/authenticate.do" method="post"> |
<input type="hidden" name="dispatch" value="login"> |
<div class="form-group"> |
<label for="login"><bean:message key="username"/></label> |
<input type="text" class="form-control" id="login" name="username"/> |
</div> |
<div class="form-group"> |
<label for="pwd"><bean:message key="password"/></label> |
<input type="password" class="form-control" id="pwd" name="password"/> |
</div> |
<button type="submit" class="btn btn-default"><bean:message key="submit"/></button> |
</form> |
</div> |
</div> |
</div> |
/impl/src/web/admin/courses/listFilesInqueritoPedagogicoJson.jsp |
---|
New file |
0,0 → 1,32 |
<%@ page import="jomm.dao.impl.AbstractDao"%><%@ page import="org.apache.commons.net.ftp.FTPClient"%><%@ page import="org.apache.commons.net.ftp.FTPFile"%><%@ page import="org.json.JSONArray"%><%@ page import="org.json.JSONObject"%><%@ page import="pt.estgp.estgweb.Globals"%><%@ page import="pt.estgp.estgweb.domain.CourseUnitImpl"%><%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory"%><%@ page import="pt.estgp.estgweb.web.FtpServer"%><%@ page import="java.io.PrintWriter"%><%@ page contentType="application/json;charset=UTF-8" language="java" %> |
<% |
String courseUnitId = request.getParameter("courseUnitId"); |
AbstractDao.getCurrentSession().beginTransaction(); |
CourseUnitImpl cu = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().load(new Long(courseUnitId)); |
FtpServer ftpServer = FtpServer.getFtpServerForCurrentUser(Globals.FTP_IONLINE_URL,request); |
FTPClient ftpClient = ftpServer.getClient(); |
ftpClient.changeWorkingDirectory("/"); |
boolean existDirectory = ftpClient.changeWorkingDirectory(cu.getInqueritosPedagogicosPathIntranet()); |
JSONObject json = new JSONObject(); |
JSONArray filesJson = new JSONArray(); |
if(existDirectory) |
{ |
FTPFile[] files = existDirectory? ftpClient.listFiles(): null; |
if(files != null) |
for(FTPFile f : files) |
{ |
JSONObject fileJson = new JSONObject(); |
fileJson.put("name",f.getName()); |
fileJson.put("completePath",cu.getInqueritosPedagogicosPathIntranet() + "/" + f.getName()); |
filesJson.put(fileJson); |
} |
} |
json.put("files",filesJson); |
ftpClient.logout(); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
out.print(json.toString()); |
%> |
/impl/src/web/admin/courses/course.jsp |
---|
12,6 → 12,17 |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<jsp:useBean id="CourseView" type="pt.estgp.estgweb.domain.views.CourseView" scope="request"/> |
<script> |
function alertPermissions() |
{ |
alert("Este procedimento afecta as permissões atuais no sistema de ficheiros da intranet. Após salvar estas alterações, por favor gere o BAT de geração de pastas e corra-o novamente na raiz do servidor IONLINE") |
} |
function alertFolders(place) |
{ |
alert("Caro administrador, lembramos-lhe que alterar o " + place + " de uma unidade curricular implica trocar a pasta de ficheiros da intranet do " + place + " onde esta se encontrava para o " + place + " onde actualmente se encontra. O BACO irá actualizar a nova LOCALIZAÇÃO da pasta de ficheiros na sua base de dados. Mas a pasta terá de ser fisicamente alterada pela administração de sistemas."); |
} |
</script> |
<html:errors/> |
<jomm:messages/> |
<html:form action="/user/courseControllerFromServiceZone" enctype="multipart/form-data"> |
22,6 → 33,7 |
<bean:write name="CourseView" property="htmlResult"/> |
</pre> |
</logic:present> |
<table class="form"> |
<tr> |
<th> |
79,7 → 91,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"/> - Qualquer erro de atrbuição informar imediatamente a equipa de desenvolvimento |
</td> |
</tr> |
<tr> |
108,7 → 120,7 |
<bean:message key="course.userGroupStudents"/> |
</th> |
<td> |
<html:text property="courseView.userGroupStudents"/> |
<html:text onchange="alertPermissions()" property="courseView.userGroupStudents"/> |
</td> |
</tr> |
125,7 → 137,7 |
<bean:message key="course.coordinator"/> |
</th> |
<td> |
<html:select property="courseView.coordinator.id"> |
<html:select onchange="alertPermissions()" property="courseView.coordinator.id"> |
<html:option value="0"> |
<bean:message key="none"/> |
</html:option> |
144,7 → 156,7 |
<bean:message key="course.director"/> |
</th> |
<td> |
<html:select property="courseView.director.id"> |
<html:select onchange="alertPermissions()" property="courseView.director.id"> |
<html:option value="0"> |
<bean:message key="none"/> |
</html:option> |
178,7 → 190,7 |
request.setAttribute("targetRoles",targetRoles); |
%> |
<td> |
<html:select property="courseView.validationRole"> |
<html:select onchange="alertPermissions()" property="courseView.validationRole"> |
<logic:iterate id="role" name="targetRoles"> |
<html:option value="${role}" key="user.role.${role}"/> |
</logic:iterate> |
191,10 → 203,9 |
<tr> |
<td> |
<th> |
<bean:message key="course.externalSite"/> |
</td> |
</th> |
<td> |
<html:select property="courseView.externalSiteServer"> |
<html:option value="estgp">ESTG</html:option> |
/impl/src/web/admin/courses/coursePedagogicContents.jsp |
---|
New file |
0,0 → 1,208 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="org.apache.commons.net.ftp.FTPClient" %> |
<%@ page import="org.hibernate.Criteria" %> |
<%@ page import="org.hibernate.criterion.Order" %> |
<%@ page import="org.hibernate.criterion.Projections" %> |
<%@ page import="org.hibernate.criterion.Restrictions" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnitImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="pt.estgp.estgweb.web.FtpServer" %> |
<%@ page import="java.util.List" %> |
<%@ page import="org.apache.commons.net.ftp.FTPFile" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<baco:hasRole role="pedagogicCouncil,admin,services"> |
<% |
String importYear = request.getParameter("importYear"); |
if(importYear == null) |
importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
AbstractDao.getCurrentSession().beginTransaction(); |
Criteria c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class); |
c.setProjection(Projections.property("id")); |
c.createAlias("course","co") |
.add(Restrictions.eq("co.importYear",importYear)) |
.add(Restrictions.eq("importYear",importYear)) |
//.add(Restrictions.eq("status",true)) |
.addOrder(Order.asc("co.name")) |
.addOrder(Order.asc("name")); |
List<Long> courseUnitIds = c.list(); |
%> |
<div class="container"> |
<div class="row"> |
<div class="col-sm-12 col-md-6"> |
<div class="alert alert-warning" role="alert"> |
Atenção, apenas utilizadores com o papel <bean:message key="user.role.pedagogicCouncil"/>, ou utilizadores especialmente designados pela administração das pasts têm permissão para inserir ficheiros nas pastas de inquéritos pedagógicos |
</div> |
</div> |
<div class="col-sm-12 col-md-6"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="course.pedagogic.contents.admin"/> - <%=importYear%></div> |
<div class="panel-body"> |
<form role="form" action="<%=request.getContextPath()%>/user/coursePedagogicContents.do" method="post"> |
<div class="form-group"> |
<label for="importYear"><bean:message key="courseunit.importYear"/></label> |
<select name="importYear" id="importYear" class="form-control" onchange="this.form.submit()"> |
<% |
List<String> years = DatesUtils.getImportYears(10); |
for(String year: years) |
{ |
String activo = year.equals(importYear)?"selected":""; |
%> |
<option value="<%=year%>" <%=activo%>><%=year%></option> |
<% |
} |
%> |
</select> |
</div> |
</form> |
</div> |
</div> |
</div> |
</div> |
<div class="row"> |
<div class="col-sm-12 col-md-12"> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th class="filter-name filter-select"><bean:message key="status"/></th> |
<th><bean:message key="course.code"/> <bean:message key="course.label"/> (SIGES)</th> |
<th class="filter-name filter-select"><bean:message key="course.label"/></th> |
<th><bean:message key="courseunit.code"/> <bean:message key="courseunit"/> (SIGES)</th> |
<th><bean:message key="courseunit"/></th> |
<th class="filter-name filter-select"><bean:message key="course.importYear"/></th> |
<th class="filter-name filter-select"><bean:message key="courseunit.semestre"/></th> |
<th data-placeholder="--- p/ vazios">Ficheiros</th> |
<th>Editar</th> |
</tr> |
</thead> |
<tbody> |
<% |
//FtpServer ftpServer = FtpServer.getFtpServerForCurrentUser(Globals.FTP_IONLINE_URL,request); |
//FTPClient ftpClient = ftpServer.getClient(); |
//ftpClient.changeWorkingDirectory("/"); |
//ftpClient.changeWorkingDirectory(Globals.FTP_IONLINE_START_PATH); |
for(Long courseUnitId: courseUnitIds) |
{ |
CourseUnitImpl cu = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().load(courseUnitId); |
//ftpClient.changeWorkingDirectory("/"); |
//boolean existDirectory = ftpClient.changeWorkingDirectory(cu.getInqueritosPedagogicosPathIntranet()); |
//FTPFile[] files = existDirectory? ftpClient.listFiles(): null; |
request.setAttribute("CourseUnit",cu); |
%> |
<jsp:useBean id="CourseUnit" type="pt.estgp.estgweb.domain.CourseUnit" scope="request"/> |
<tr> |
<td> |
<logic:equal value="true" name="CourseUnit" property="course.status"> |
<bean:message key="yes"/> |
</logic:equal> |
<logic:equal value="false" name="CourseUnit" property="course.status"> |
<bean:message key="no"/> |
</logic:equal> |
</td> |
<td>${CourseUnit.courseCode}</td> |
<td>${CourseUnit.courseName}</td> |
<td>${CourseUnit.code}</td> |
<td>${CourseUnit.name}</td> |
<td>${CourseUnit.importYear}</td> |
<td><bean:message key="courseunit.${CourseUnit.semestre}"/></td> |
<!--<td> |
<a class="btn btn-warning" href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${course.id}"> |
<span class="glyphicon glyphicon-pencil"></span> |
</a> |
</td>--> |
<td> |
<div class="list-group" id="filesUnit${CourseUnit.id}"> |
</div> |
</td> |
<td> |
<a class="btn btn-default" target="_blank" href="<%=request.getContextPath()%>/courseunitproxy/courseLayoutIOnlineDtp/ionline/<%=Globals.INTRANET_DTP + "/" + Globals.INTRANET_DTP_InqueritoPedagogico%>/?courseUnitView.id=${CourseUnit.id}&startPath=${CourseUnit.pathIntranet}&from=Home"> |
<span class="glyphicon glyphicon-pencil"></span> |
</a> |
</td> |
</tr> |
<% |
} |
%> |
</tbody> |
</table> |
</div> |
</div> |
<script> |
function updateUnit(unitId) |
{ |
$("#filesUnit" + unitId).html("Aguarde por favor"); |
$.ajax({ |
dataType: "json", |
url: "<%=request.getContextPath()%>/admin/courses/listFilesInqueritoPedagogicoJson.jsp?courseUnitId=" + unitId, |
async: true, |
success: function(data) { |
if(data.files == null || data.files.length == 0) |
{ |
$("#filesUnit" + unitId).html("---"); |
} |
else |
{ |
$("#filesUnit" + unitId).html(""); |
var i; |
for(i=0;i<data.files.length;i++) |
{ |
var name = data.files[i].name; |
var path = data.files[i].completePath; |
$("#filesUnit" + unitId).append('<div class="list-group-item"><a target="_blank" href="<%=request.getContextPath()%>/ftpProxyStream/ionline/' + path + '">' + name + '</a></div>') |
} |
} |
} |
}); |
} |
function updateAll() |
{ |
<% |
for(Long courseUnitId: courseUnitIds) |
{ |
%> |
updateUnit('<%=courseUnitId%>'); |
<% |
} |
%> |
} |
function updateTable(){ |
$(".tablesorterfiltered").trigger('update'); |
setTimeout("updateTable()",5000); |
} |
$(document).ready(function(){ |
setTimeout("updateAll()",1000); |
setTimeout("updateTable()",5000); |
}); |
</script> |
<% |
//ftpClient.logout(); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</div> |
</baco:hasRole> |
/impl/src/web/admin/courseunits/courseunit.jsp |
---|
12,6 → 12,17 |
<%@ 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" %> |
<script> |
function alertPermissions() |
{ |
alert("Este procedimento afecta as permissões atuais no sistema de ficheiros da intranet. Após salvar estas alterações, por favor gere o BAT de geração de pastas e corra-o novamente na raiz do servidor IONLINE") |
} |
function alertFolders(place) |
{ |
alert("Caro administrador, lembramos-lhe que alterar o " + place + " de uma unidade curricular implica trocar a pasta de ficheiros da intranet do " + place + " onde esta se encontrava para o " + place + " onde actualmente se encontra. O BACO irá actualizar a nova LOCALIZAÇÃO da pasta de ficheiros na sua base de dados. Mas a pasta terá de ser fisicamente alterada pela administração de sistemas."); |
} |
</script> |
<% |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
62,7 → 73,7 |
<bean:message key="courseunit.course"/> |
</th> |
<td> |
<html:select property="courseUnitView.courseId"> |
<html:select onchange="alertFolders('curso')" property="courseUnitView.courseId"> |
<logic:iterate id="course" name="Courses" type="pt.estgp.estgweb.domain.views.CourseView"> |
<html:option value="${course.id}">(${course.code}) ${course.name}</html:option> |
</logic:iterate> |
82,14 → 93,14 |
<bean:message key="courseunit.semestre"/> |
</th> |
<td> |
<html:select property="courseUnitView.semestre"> |
<html:option value="S1">S1</html:option> |
<html:option value="S2">S2</html:option> |
<html:option value="A">A</html:option> |
<html:option value="T1">T1</html:option> |
<html:option value="T2">T2</html:option> |
<html:option value="T3">T3</html:option> |
<html:option value="T4">T4</html:option> |
<html:select onchange="alertFolders('semestre')" property="courseUnitView.semestre"> |
<html:option value="S1"><bean:message key="courseunit.S1"/></html:option> |
<html:option value="S2"><bean:message key="courseunit.S2"/></html:option> |
<html:option value="A"><bean:message key="courseunit.A"/></html:option> |
<html:option value="T1"><bean:message key="courseunit.T1"/></html:option> |
<html:option value="T2"><bean:message key="courseunit.T2"/></html:option> |
<html:option value="T3"><bean:message key="courseunit.T3"/></html:option> |
<html:option value="T4"><bean:message key="courseunit.T4"/></html:option> |
</html:select> |
</td> |
</tr> |
98,13 → 109,21 |
<bean:message key="courseunit.importYear"/> |
</th> |
<td> |
<html:select property="courseUnitView.importYear"> |
<html:select onchange="alertFolders('ano')" property="courseUnitView.importYear"> |
<logic:iterate id="item" name="CourseUnitsForm" property="importYears"> |
<html:option value="${item}">${item}</html:option> |
</logic:iterate> |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.turma"/> |
</th> |
<td> |
<html:text styleClass="text" property="courseUnitView.cdTurma"/> (Esta ação vai influênciar as importações SIGES) |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.pathIntranet"/> |
119,7 → 138,7 |
<bean:message key="courseunit.responsable"/> |
</th> |
<td> |
<html:select property="courseUnitView.responsableId"> |
<html:select onchange="alertPermissions();" property="courseUnitView.responsableId"> |
<html:option value="0"></html:option> |
<logic:iterate id="teacher" name="CourseUnitsForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<html:option value="${teacher.id}">(${teacher.code}) ${teacher.name}</html:option> |
146,7 → 165,7 |
</jomm:option> |
</logic:iterate> |
<input type="button" value="<bean:message key="add"/>" |
onclick="set(this.form,'addTeacher');this.form.submit();"> |
onclick="alertPermissions();set(this.form,'addTeacher');this.form.submit();"> |
</logic:present> |
</html:select> |
<logic:greaterThan name="CourseUnitView" property="teachersSize" value="0"> |
183,7 → 202,7 |
<logic:greaterThan value="0" name="CourseUnitView" property="id"> |
<html:text styleClass="text" property="studentCode"/> |
<input type="button" value="<bean:message key="add"/>" |
onclick="if(this.form.studentCode.value=='0' || this.form.studentCode.value==''){alert('Por favor coloque o numero de aluno antes de adicionar');}else{set(this.form,'addStudent');this.form.submit();}"> |
onclick="if(this.form.studentCode.value=='0' || this.form.studentCode.value==''){alert('Por favor coloque o numero de aluno antes de adicionar');}else{alertPermissions();set(this.form,'addStudent');this.form.submit();}"> |
<logic:greaterThan name="CourseUnitView" property="studentsSize" value="0"> |
<table id="myTable" class="tablesorter dataTable removeButton"> |
/impl/src/web/admin/courseunits/findCourseunit.jsp |
---|
39,28 → 39,33 |
</table> |
</html:form> |
<logic:present name="ISearchResults" property="results"> |
<table class="dataTable"> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th><bean:message key="courseunit.code"/> </th> |
<th><bean:message key="courseunit.name"/> </th> |
<th><bean:message key="courseunit.semestre"/></th> |
<th><bean:message key="courseunit.importYear"/></th> |
<th><bean:message key="courseunit.course"/></th> |
<th class="filter-name filter-select"><bean:message key="courseunit.semestre"/></th> |
<th class="filter-name filter-select"><bean:message key="courseunit.importYear"/></th> |
<th class="filter-name filter-select"><bean:message key="courseunit.course"/></th> |
<th></th> |
<th></th> |
</tr> |
</thead> |
<tbody> |
/user/startLoadCourseUnitFromHome.do?id=421 |
<logic:iterate id="courseunitresult" name="ISearchResults" property="results" type="pt.estgp.estgweb.services.courseunits.impl.CourseUnitViewResult" > |
<tr> |
<td>${courseunitresult.object.code}</td> |
<td>${courseunitresult.object.name}</td> |
<td>${courseunitresult.object.semestre}</td> |
<td style="text-align: right">${courseunitresult.object.code}</td> |
<td><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=${courseunitresult.object.id}">${courseunitresult.object.name}</a></td> |
<td><bean:message key="courseunit.${courseunitresult.object.semestre}"/></td> |
<td>${courseunitresult.object.importYear}</td> |
<td>${courseunitresult.object.courseName}</td> |
<td><html:link action="/user/startEditCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="edit"/></html:link></td> |
<td><html:link action="/user/startDeleteCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="delete"/></html:link></td> |
<td><a href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${courseunitresult.object.courseId}">${courseunitresult.object.courseName}</a></td> |
<td><html:link styleClass="btn btn-warning" action="/user/startEditCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="edit"/><span class="glyphicon glyphicon-pencil"></span></html:link></td> |
<td><html:link styleClass="btn btn-danger" action="/user/startDeleteCourseUnitAdminFromServiceZone?id=${courseunitresult.object.id}"><bean:message key="delete"/><span class="glyphicon glyphicon-remove"></span></html:link></td> |
<td></td> |
</tr> |
</logic:iterate> |
</tbody> |
</table> |
<p class="pages"> |
<bean:message key="search.pages"/>: |
/impl/src/web/admin/configuration/tasks.jsp |
---|
88,11 → 88,11 |
<a href="<%=request.getContextPath()%>/user/configurationJobTasks.do" style="float:right" class="btn btn-default"><span class="glyphicon glyphicon-list-alt">Consultar Todos os Logs</span></a> |
<button type="button" style="float:right" class="btn btn-success" onclick="set(form,'new');form.submit();"><span class="glyphicon glyphicon-plus">Agendar</span></button> |
<a href="<%=request.getContextPath()%>/user/configurationTasks.do?dispatch=newTask" style="float:right" class="btn btn-success" onclick="set(form,'new');form.submit();"><span class="glyphicon glyphicon-plus">Agendar</span></a> |
<a href="<%=request.getContextPath()%>/user/configurationSchedulleTasks.do" class="btn btn-info"><span class="glyphicon glyphicon-refresh"></span></a> |
</div> |
<div class="panel-body"> |
<table id="myTable" class="tablesorter"> |
<table id="myTable" class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Agora</th> |
/impl/src/web/admin/configuration/task.jsp |
---|
2,6 → 2,8 |
<%@ page import="pt.estgp.estgweb.domain.JobServiceTaskScheduler" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="com.sun.mail.handlers.image_gif" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
11,111 → 13,300 |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib prefix="hmlt" uri="http://jakarta.apache.org/struts/tags-html" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jsp:useBean id="SchedulleTasksForm" type="pt.estgp.estgweb.web.form.configuration.SchedulleTasksForm" scope="request"/> |
<jomm:messages/> |
<html:errors/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/variables.less"/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/lavish-bootstrap.css"/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap.css"/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap-theme.css"/> |
<script> |
$(document).ready(function() |
{ |
<logic:equal value="true" name="SchedulleTasksForm" property="jobScheduller.weekly"> |
$("#weekdaySelection").show(); |
$("#monthdaySelection").hide(); |
</logic:equal> |
<logic:equal value="true" name="SchedulleTasksForm" property="jobScheduller.monthly"> |
$("#weekdaySelection").hide(); |
$("#monthdaySelection").show(); |
</logic:equal> |
<logic:equal value="true" name="SchedulleTasksForm" property="jobScheduller.daily"> |
$("#weekdaySelection").hide(); |
$("#monthdaySelection").hide(); |
</logic:equal> |
<logic:equal value="false" name="SchedulleTasksForm" property="jobScheduller.daily"> |
<logic:equal value="false" name="SchedulleTasksForm" property="jobScheduller.monthly"> |
<logic:equal value="false" name="SchedulleTasksForm" property="jobScheduller.weekly"> |
$("#weekdaySelection").hide(); |
$("#monthdaySelection").hide(); |
</logic:equal> |
</logic:equal> |
</logic:equal> |
changeParameters(); |
<script src="<%=request.getContextPath()%>/js/jquerytables/jquery-2.1.4.min.js"></script> |
<script src="<%=request.getContextPath()%>/js/jquerytables/bootstrap/js/bootstrap.min.js"></script> |
} |
); |
function changeForms(calendarization) |
{ |
if(calendarization == "DAILY") |
{ |
$("#weekdaySelection").hide(); |
$("#monthdaySelection").hide(); |
} |
else if(calendarization == "MONTLY") |
{ |
$("#weekdaySelection").hide(); |
$("#monthdaySelection").show(); |
} |
else if(calendarization == "WEEKLY") |
{ |
$("#weekdaySelection").show(); |
$("#monthdaySelection").hide(); |
} |
} |
function changeParameters() |
{ |
$("#jobImportYearKeyPart").hide(); |
$("#jobSemestreKeyPart").hide(); |
$("#jobSendIonlineKeyPart").hide(); |
$("#jobSendEmailKeyPart").hide(); |
$("#jobCloneOnlyNewsKeyPart").hide(); |
$("#jobGenerateAllPdfsKeyPart").hide(); |
$("#jobValidateKeyPart").hide(); |
type = $("#targetService").val(); |
if(type == "pt.estgp.estgweb.services.sigesimports.ImportCourseService") |
{ |
$("#jobImportYearKeyPart").show(); |
} |
else if(type == "pt.estgp.estgweb.services.sigesimports.ImportGradesService") |
{ |
$("#jobImportYearKeyPart").show(); |
} |
else if(type == "pt.estgp.estgweb.services.sigesimports.ImportTeachersService") |
{ |
$("#jobImportYearKeyPart").show(); |
} |
else if(type == "pt.estgp.estgweb.services.sigesimports.ImportStudentsService") |
{ |
$("#jobImportYearKeyPart").show(); |
} |
else if(type == "pt.estgp.estgweb.services.sigesimports.ImportSumariesJson") |
{ |
$("#jobImportYearKeyPart").show(); |
$("#jobSemestreKeyPart").show(); |
$("#jobSendIonlineKeyPart").show(); |
$("#jobSendEmailKeyPart").show(); |
} |
else if(type == "pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService") |
{ |
$("#jobImportYearKeyPart").show(); |
//$("#jobSemestreKeyPart").show(); |
$("#jobCloneOnlyNewsKeyPart").show(); |
$("#jobGenerateAllPdfsKeyPart").show(); |
$("#jobValidateKeyPart").show(); |
} |
else |
{ |
$("#jobImportYearKeyPart").show(); |
} |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
List<JobServiceTaskScheduler> schedulledTasks = DaoFactory.getJobServiceTaskSchedulerDaoImpl().findAll(); |
request.setAttribute("tasks",schedulledTasks); |
%> |
} |
</script> |
<div class="container-fluid"> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="configuration.tasks"/> |
<button type="button" style="float:right" class="btn btn-default" onclick="set(form,'new');form.submit();"><span class="glyphicon glyphicon-list-alt">Consultar Todos os Logs</span></button> |
<button type="button" style="float:right" class="btn btn-success" onclick="set(form,'new');form.submit();"><span class="glyphicon glyphicon-plus">Agendar</span></button> |
<bean:message key="configuration.task"/> |
</div> |
<div class="panel-body"> |
<table class="datatable tablesorter"> |
<thead> |
<tr> |
<th><bean:message key="configuration.task"/></th> |
<th>Tipo</th> |
<th>Calendarização</th> |
<th>Criador</th> |
<th>Parametros</th> |
<th>Última</th> |
<th>Progresso</th> |
<th></th> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="task" name="tasks" type="pt.estgp.estgweb.domain.JobServiceTaskSchedulerImpl"> |
<tr> |
<td><bean:message key="targetService.${task.targetService}"/></td> |
<td><bean:message key="configuration.task.${task.typeMsgKey}"/></td> |
<td> |
<logic:equal value="true" name="task" property="weekly"> |
<bean:message key="weekday.day"/> <bean:message key="weekday.${task.weekDayMsgKey}"/> |
</logic:equal> |
<logic:equal value="true" name="task" property="monthly"> |
<bean:message key="monthday.day"/> ${task.monthday} |
</logic:equal> |
<bean:message key="day.time"/> |
${task.hour}:${task.minute} |
</td> |
<html:form action="/user/configurationTasks" > |
<input type="hidden" name="dispatch" value="save"/> |
<html:hidden property="jobScheduller.id"/> |
<div class="form-group"> |
<label for="targetService">Tarefa:</label> |
<html:select onchange="changeParameters()" property="jobScheduller.targetService" styleClass="form-control" styleId="targetService"> |
<html:option value="pt.estgp.estgweb.services.sigesimports.ImportCourseService">Importação de Cursos</html:option> |
<html:option value="pt.estgp.estgweb.services.sigesimports.ImportGradesService">Importação de Notas</html:option> |
<html:option value="pt.estgp.estgweb.services.sigesimports.ImportTeachersService">Importação de Docentes</html:option> |
<html:option value="pt.estgp.estgweb.services.sigesimports.ImportStudentsService">Importação de Estudantes</html:option> |
<html:option value="pt.estgp.estgweb.services.sigesimports.ImportSumariesJson">Importação de Sumários</html:option> |
<html:option value="pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService">Clonagem de Fichas Curriculares</html:option> |
</html:select> |
</div> |
<div class="form-group"> |
<label for="description">Descrição:</label> |
<html:textarea styleClass="form-control" styleId="description" property="jobScheduller.description"/> |
</div> |
<div class="form-group"> |
<label for="description">Calendarização:</label> |
<html:select styleClass="form-control" property="jobScheduller.calendarization" onchange="changeForms(this.value)"> |
<html:option value="DAILY">Diário</html:option> |
<html:option value="WEEKLY">Semanal</html:option> |
<html:option value="MONTLY">Mensal</html:option> |
</html:select> |
</div> |
<div class="form-group" id="weekdaySelection"> |
<label for="weekday">Dia da Semana:</label> |
<html:select styleClass="form-control" styleId="weekday" property="jobScheduller.weekday"> |
<% |
for(int i=1;i<=7;i++) |
{ |
request.setAttribute("i",i); |
%> |
<html:option value="${i}"><bean:message key="weekday.${i}"/></html:option> |
<% |
} |
%> |
</html:select> |
</div> |
<div class="form-group" id="monthdaySelection"> |
<label for="monthday">Dia do Mês:</label> |
<html:select styleClass="form-control" styleId="monthday" property="jobScheduller.monthday"> |
<% |
for(int i=1;i<31;i++) |
{ |
request.setAttribute("i",i); |
%> |
<html:option value="${i}">${i}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
<div class="form-group"> |
<div class="row"> |
<div class="col-sm-4"> |
<label for="hour">Hora:</label> |
<html:select styleClass="form-control" styleId="hour" property="jobScheduller.hour"> |
<% |
for(int i=0;i<24;i++) |
{ |
request.setAttribute("i",i); |
%> |
<html:option value="${i}">${i}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
<div class="col-sm-4"> |
<label for="minute">Minuto:</label> |
<html:select styleClass="form-control" styleId="minute" property="jobScheduller.minute"> |
<% |
for(int i=0;i<60;i++) |
{ |
request.setAttribute("i",i); |
%> |
<html:option value="${i}">${i}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
<div class="col-sm-4"> |
<label for="second">Segundo:</label> |
<html:select styleClass="form-control" styleId="second" property="jobScheduller.second"> |
<% |
for(int i=0;i<60;i++) |
{ |
request.setAttribute("i",i); |
%> |
<html:option value="${i}">${i}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
</div> |
</div> |
<!-- |
; |
<td>${task.createdBy.username}</td> |
<td> |
<table cellspacing="0" cellspadding="0"> |
<logic:iterate id="taskParam" name="task" property="serviceTaskSchedulerParameters" type="pt.estgp.estgweb.domain.JobServiceTaskSchedulerParameter"> |
<tr> |
<td> |
${taskParam.name} |
</td> |
<td> |
${taskParam.object} |
</td> |
</tr> |
</logic:iterate> |
</table> |
</td> |
<td class="jobStatus${task.lastJobServiceTask.status}"> |
<logic:notEmpty name="task" property="lastJobServiceTask"> |
<bean:message key="job.status.${task.lastJobServiceTask.status}"/> |
</logic:notEmpty> |
</td> |
<td style="text-align: right"> |
<logic:notEmpty name="task" property="lastJobServiceTask"> |
${task.lastJobServiceTask.progress} % |
</logic:notEmpty> |
</td> |
<td> |
<button type="button" class="btn btn-default"> |
<span class="glyphicon glyphicon-list-alt"></span> |
</button> |
private String jobGenerateAllPdfsKey; |
private String jobValidateKey;--> |
<div class="form-group" id="jobImportYearKeyPart"> |
<label for="jobImportYearKey">Ano:</label> |
<% |
List<String> years = DatesUtils.getImportYears(10); |
%> |
<html:select styleClass="form-control" styleId="jobImportYearKey" property="jobImportYearKey"> |
<% |
for(String year:years) |
{ |
request.setAttribute("year",year); |
%> |
<html:option value="${year}">${year}</html:option> |
<% |
} |
%> |
</html:select> |
</div> |
<div class="form-group" id="jobSemestreKeyPart"> |
<label for="jobSemestreKey">Semestre:</label> |
<html:select styleClass="form-control" styleId="jobSemestreKey" property="jobSemestreKey"> |
<html:option value="A">Anual</html:option> |
<html:option value="S1">Semestre 1</html:option> |
<html:option value="S2">Semestre 2</html:option> |
<html:option value="T1">Trimestre 1</html:option> |
<html:option value="T2">Trimestre 2</html:option> |
<html:option value="T3">Trimestre 3</html:option> |
<html:option value="T4">Trimestre 4</html:option> |
</html:select> |
</div> |
</td> |
<div class="form-group" id="jobSendIonlineKeyPart"> |
<label for="jobSendIonlineKey">Enviar para a pasta do DTP:</label> |
<html:select styleClass="form-control" styleId="jobSendIonlineKey" property="jobSendIonlineKey"> |
<html:option value="true">Sim</html:option> |
<html:option value="false">Não</html:option> |
</html:select> |
</div> |
</tr> |
</logic:iterate> |
</tbody> |
<div class="form-group" id="jobSendEmailKeyPart"> |
<label for="jobSendEmailKey">Enviar email de notificação:</label> |
<html:select styleClass="form-control" styleId="jobSendEmailKey" property="jobSendEmailKey"> |
<html:option value="true">Sim</html:option> |
<html:option value="false">Não</html:option> |
</html:select> |
</div> |
</table> |
<div class="form-group" id="jobCloneOnlyNewsKeyPart"> |
<label for="jobCloneOnlyNewsKey">Clonar apenas quando não existe ficha (Se escolher não irá clonar também fichas inválidas):</label> |
<html:select styleClass="form-control" styleId="jobCloneOnlyNewsKey" property="jobCloneOnlyNewsKey"> |
<html:option value="true">Sim</html:option> |
<html:option value="false">Não</html:option> |
</html:select> |
</div> |
<div class="form-group" id="jobGenerateAllPdfsKeyPart"> |
<label for="jobGenerateAllPdfsKey">Gerar PDF's mesmo que não clone as fichas:</label> |
<html:select styleClass="form-control" styleId="jobGenerateAllPdfsKey" property="jobGenerateAllPdfsKey"> |
<html:option value="true">Sim</html:option> |
<html:option value="false">Não</html:option> |
</html:select> |
</div> |
<div class="form-group" id="jobValidateKeyPart"> |
<label for="jobValidateKey">Validar Fichas ao Clonar:</label> |
<html:select styleClass="form-control" styleId="jobValidateKey" property="jobValidateKey"> |
<html:option value="true">Sim</html:option> |
<html:option value="false">Não</html:option> |
</html:select> |
</div> |
<button type="submit" class="btn btn-default"><bean:message key="confirm"/></button> |
</html:form> |
</div> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
</div> |
/impl/src/web/css/lavish-bootstrap.css |
---|
254,7 → 254,7 |
font-size: 14px; |
line-height: 1.428571429; |
color: #a67b50; |
background-color: #fbfbfa; |
background-color: #FFFFFF; |
} |
input, |
button, |
/impl/src/web/css/intranet.css |
---|
9,10 → 9,10 |
{ |
background-color: lightsteelblue; |
} |
td.icons |
.icons a img |
{ |
width: 60px; |
white-space: nowrap; |
width: 60px !important; |
white-space: nowrap !important; |
} |
#headerIntranet td.links |
/impl/src/web/ping.jsp |
---|
New file |
0,0 → 1,4 |
<%-- |
Serviço de PING para manter a sessao online |
--%> |
{"result" : "PING OK"} |
/impl/src/web/layout/scripts.jsp |
---|
1,6 → 1,7 |
<%@ page import="pt.estgp.estgweb.web.filters.TopImageFilter" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<meta name="viewport" content="width=device-width, initial-scale=1"> |
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/menu/assets/skins/sam/menu.css" /> |
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/button/assets/skins/sam/button.css" /> |
8,13 → 9,20 |
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/container/assets/skins/sam/container.css" /> |
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/editor/assets/skins/sam/editor.css" /> |
<!--OFF CANVAS É PARA METER O BODY ABAIXO DO MENU DESLIZANTE DE TOPO--> |
<!--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>--> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/style.css"/> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/functions.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/compactedPopup.js"></script> |
<!-- |
<style> |
body |
{ |
background: url('http://www.ist.utl.pt/img/page/cubes.png') |
} |
</style>--> |
<!-- |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/js/jquery/style.css"/> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-latest.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.tablesorter.js"></script> |
56,7 → 64,78 |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/variables.less"/> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/lavish-bootstrap.css"/> |
<script type="text/javascript" language="JavaScript"> |
var cal = new CalendarPopup(); |
/* |
//TABLE SORTER |
$(document).ready(function() |
{ |
$("#myTable").tablesorter(); |
} |
); |
*/ |
function isBreakpoint( alias ) { |
return $('.device-' + alias).is(':visible'); |
} |
$(document).ready( |
function(){ |
$("#network").hide(); |
$("#network2").hide(); |
$("#network").mouseleave( |
function(){ |
$("#network").animate({ |
height: 'hide' |
}); |
} |
); |
$("#network2").mouseleave( |
function(){ |
$("#network2").animate({ |
height: 'hide' |
}); |
} |
); |
} |
); |
function openNetwork(){ |
$("#network2").animate({ |
height: 'hide' |
}); |
$("#network").animate({ |
height: 'toggle' |
}); |
} |
function openNetwork2(){ |
$("#network").animate({ |
height: 'hide' |
}); |
$("#network2").animate({ |
height: 'toggle' |
}); |
} |
</script> |
<script language="javascript"> |
function ping() |
{ |
$.getJSON( "<%=request.getContextPath()%>/ping.jsp", function( data ) { |
setTimeout("ping()",10000); |
}); |
} |
$(document).ready(function() |
{ |
if($("#myTable")) |
231,7 → 310,7 |
widgets: ["zebra","filter"], |
ignoreCase: false, |
widthFixed : true, |
widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : false}, |
widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true}, |
textExtraction: function(node) { |
// extract data from markup and return it |
if($(node).find(':input').size()>0) |
249,8 → 328,67 |
); |
} |
if($(".tablesorterfiltered")) |
{ |
$(".tablesorterfiltered").tablesorter({ |
theme: 'blue', |
sortMultiSortKey: 'altKey', |
//sortList: [[0,0]], |
widgets: ["zebra","filter"], |
ignoreCase: false, |
widthFixed : true, |
widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true}, |
textExtraction: function(node) { |
// extract data from markup and return it |
if($(node).find(':input').size()>0) |
{ |
var values = $(node).find(":input").map(function() { |
return $(this).val() |
}).get().join(","); |
return values; |
} |
return $(node).text(); |
} |
} |
); |
} |
if($(".tablesorterfiltered")) |
{ |
$(".tablesorterfiltered").tablesorter({ |
theme: 'blue', |
sortMultiSortKey: 'altKey', |
//sortList: [[0,0]], |
widgets: ["zebra","filter"], |
ignoreCase: false, |
widthFixed : true, |
widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true}, |
textExtraction: function(node) { |
// extract data from markup and return it |
if($(node).find(':input').size()>0) |
{ |
var values = $(node).find(":input").map(function() { |
return $(this).val() |
}).get().join(","); |
return values; |
} |
return $(node).text(); |
} |
} |
); |
} |
// External search |
// buttons set up like this: |
// <button type="button" data-filter-column="4" data-filter-text="2?%">Saved Search</button> |
268,7 → 406,13 |
$.tablesorter.setFilters( $('#myTable'), filters, true ); // new v2.9 |
if($('#myTable2')) |
$.tablesorter.setFilters( $('#myTable2'), filters, true ); // new v2.9 |
if($('.tablesorterfiltered')) |
$.tablesorter.setFilters( $('.tablesorterfiltered'), filters, true ); // new v2.9 |
/* |
if($('.tablesorterfiltered')) |
$.tablesorter.setFilters( $('.tablesorterfiltered'), filters, true ); // new v2.9 |
*/ |
/** old method (prior to tablsorter v2.9 *** |
var filters = $('table.tablesorter').find('input.tablesorter-filter'); |
filters.val(''); // clear all filters |
/impl/src/web/layout/navigationLeftMenu.jsp |
---|
23,7 → 23,7 |
</li> |
<baco:isAuthenticated> |
<li> |
<a href=" http://mail.google.com/a/estgp.pt." target="_blank"> |
<a href=" http://mail.google.com/a/estgp.pt" target="_blank"> |
Webmail [Nova Plataforma] |
</a> |
</li> |
/impl/src/web/public/profile/profileGrades.jsp |
---|
100,7 → 100,7 |
total+=nota; |
float media = total/((float)unidadeNota.size()); |
%> |
Média: <%=media%> |
<%--Média: <%=media%>--%> |
</div> |
<table id="myTable" class="dataTable tablesorter"> |
<thead> |
112,6 → 112,9 |
<bean:message key="course.unit"/> |
</th> |
<th> |
<bean:message key="course.label"/> |
</th> |
<th> |
<bean:message key="grade"/> |
</th> |
<th> |
135,6 → 138,9 |
${grade.courseUnit.name} |
</td> |
<td> |
${grade.courseUnit.courseName} |
</td> |
<td> |
<logic:greaterThan value="0" name="grade" property="grade"> |
${grade.grade} |
</logic:greaterThan> |
/impl/src/web/user/courses/directedCoordinatedCoursesCourseView.jsp |
---|
18,6 → 18,17 |
<jsp:useBean id="SEMESTRE" type="java.lang.String" scope="request"/> |
<jsp:useBean id="courseView" type="pt.estgp.estgweb.domain.views.CourseView" scope="request"/> |
<style> |
td .icons |
{ |
white-space: nowrap !important; |
} |
td .icons a img |
{ |
width: 15px !important; |
} |
</style> |
<% |
boolean canChange = false; |
%> |
42,11 → 53,12 |
} |
); |
</script> |
<table id="myTable${SEMESTRE}NP${courseView.id}" class="dataTable tablesorter"> |
<table id="myTable${SEMESTRE}NP${courseView.id}" class="dataTable tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Código</th> |
<th>Unidade</th> |
<th>Turma</th> |
<th>Docente</th> |
<td></td> |
</tr> |
56,6 → 68,7 |
<tr> |
<td>${courseUnitView.code}</td> |
<td>${courseUnitView.name}</td> |
<td>${courseUnitView.cdTurma}</td> |
<td>${courseUnitView.teachersSnipet}</td> |
<td class="icons"> |
68,17 → 81,24 |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</logic:equal> |
<logic:notEqual value="${courseView.coordinator.id}" name="UserSession" property="user.id"> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</baco:hasRole> |
</logic:notEqual> |
<logic:notEqual value="${courseView.coordinator.id}" name="UserSession" property="user.id"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</baco:hasNotRole> |
</baco:isTeacherOfCourseUnit> |
</logic:notEqual> |
</logic:equal> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms"> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
</logic:equal> |
</baco:hasRole> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms"> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
125,12 → 145,13 |
} |
); |
</script> |
<table id="myTable${SEMESTRE}PI${courseView.id}" class="dataTable tablesorter"> |
<table id="myTable${SEMESTRE}PI${courseView.id}" class="dataTable tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<td></td> |
<th>Código</th> |
<th>Unidade</th> |
<th>Turma</th> |
<th>Docente</th> |
<td></td> |
</tr> |
164,7 → 185,9 |
<nested:checkbox property="validProgram"/></td> |
</baco:hasRole> |
<td>${courseUnitView.code}</td> |
<td>${courseUnitView.name}</td> |
<td>${courseUnitView.name}</td> |
<td>${courseUnitView.cdTurma}</td> |
<td>${courseUnitView.cdTurma}</td> |
<td>${courseUnitView.teachersSnipet}</td> |
<td class="icons"> |
<a href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/home.png"/></a> |
175,17 → 198,24 |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</logic:equal> |
<logic:notEqual value="${courseView.coordinator.id}" name="UserSession" property="user.id"> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</baco:hasRole> |
</logic:notEqual> |
<logic:notEqual value="${courseView.coordinator.id}" name="UserSession" property="user.id"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</baco:hasNotRole> |
</baco:isTeacherOfCourseUnit> |
</logic:notEqual> |
</logic:equal> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms"> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
</logic:equal> |
</baco:hasRole> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms"> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
227,12 → 257,13 |
} |
); |
</script> |
<table id="myTable${SEMESTRE}PV${courseView.id}" class="dataTable tablesorter"> |
<table id="myTable${SEMESTRE}PV${courseView.id}" class="dataTable tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<td></td> |
<th>Código</th> |
<th>Unidade</th> |
<th>Turma</th> |
<th>Docente</th> |
<td></td> |
</tr> |
266,6 → 297,7 |
</baco:hasRole> |
<td>${courseUnitView.code}</td> |
<td>${courseUnitView.name}</td> |
<td>${courseUnitView.cdTurma}</td> |
<td>${courseUnitView.teachersSnipet}</td> |
<td class="icons"> |
<a href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/home.png"/></a> |
278,23 → 310,30 |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</logic:equal> |
<logic:notEqual value="${courseView.coordinator.id}" name="UserSession" property="user.id"> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</baco:hasRole> |
</logic:notEqual> |
<logic:notEqual value="${courseView.coordinator.id}" name="UserSession" property="user.id"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
</baco:hasNotRole> |
</baco:isTeacherOfCourseUnit> |
</logic:notEqual> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms"> |
</logic:equal> |
<baco:hasRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
</logic:equal> |
</baco:hasRole> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms,servicesPrograms"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
</logic:equal> |
</baco:hasRole> |
<baco:hasNotRole role="${courseView.validationRole},courseValidatePrograms"> |
<baco:isTeacherOfCourseUnit courseUnitId="${courseUnitView.id}"> |
<logic:equal value="true" name="courseUnitView" property="validEvaluation"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${courseUnitView.evaluationStreamId}"><img src="<%=request.getContextPath()%>/imgs/avaliacao_icon.png"/></a> |
</logic:equal> |
</baco:isTeacherOfCourseUnit> |
</baco:hasNotRole> |
</logic:equal> |
</baco:isTeacherOfCourseUnit> |
</baco:hasNotRole> |
</baco:isNotAdmin> |
<baco:isAdmin> |
<html:link action="/startLoadCourseUnitProgram?courseUnitId=${courseUnitView.id}"><img src="<%=request.getContextPath()%>/imgs/edit.png"/></html:link> |
/impl/src/web/user/courses/selectCourse.jsp |
---|
21,14 → 21,60 |
<div class="seccao"> |
<h2><bean:message key="course.select.message"/> </h2> |
<div class="form"> |
<html:form action="/user/courseControllerFromServiceZone"> |
<input type="hidden" name="dispatch" value="edit"/> |
<html:select property="courseView.id"> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th class="filter-name filter-select"><bean:message key="status"/></th> |
<th><bean:message key="course.code"/>(SIGES)</th> |
<th><bean:message key="course.label"/></th> |
<th class="filter-name filter-select"><bean:message key="course.degree"/></th> |
<th class="filter-name filter-select"><bean:message key="course.importYear"/></th> |
<th><bean:message key="course.validation.role"/></th> |
<th><bean:message key="course.studies.plan"/></th> |
<th></th> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="course" name="Courses" type="pt.estgp.estgweb.domain.views.CourseView"> |
<html:option value="${course.id}">(${course.code}) ${course.name}</html:option> |
<tr> |
<td> |
<logic:equal value="true" name="course" property="status"> |
<bean:message key="yes"/> |
</logic:equal> |
<logic:equal value="false" name="course" property="status"> |
<bean:message key="no"/> |
</logic:equal> |
</td> |
<td>${course.code}</td> |
<td>${course.name}</td> |
<td><bean:message key="course.${course.degreeCleanCode}"/></td> |
<td>${course.importYear}</td> |
<td> |
<logic:present name="course" property="validationRole"> |
<bean:message key="user.role.${course.validationRole}"/> |
</logic:present> |
<logic:notPresent name="course" property="validationRole"> |
--- |
</logic:notPresent> |
</td> |
<td> |
<logic:present name="CourseView" property="studiesPlan"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${course.studiesPlanStreamId}"><bean:message key="course.studies.plan"/></a> |
</logic:present> |
<logic:notPresent name="CourseView" property="studiesPlan"> |
--- |
</logic:notPresent> |
</td> |
<td> |
<a class="btn btn-warning" href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${course.id}"> |
<span class="glyphicon glyphicon-pencil"></span> |
</a> |
</td> |
</tr> |
</logic:iterate> |
</html:select> |
<input type="submit" value="<bean:message key="edit"/>"> |
</html:form> |
</tbody> |
</table> |
</div> |
</div> |
/impl/src/web/user/courseunits/courseunitworks.jsp |
---|
158,6 → 158,9 |
</td> |
<td> |
<a href="javascript:showOrHideOne('assignement${work.id}')">${work.title}</a> |
<div style="padding:5px;border:1px solid gray" id="assignement${work.id}" style="<%=Globals.HIDDEN%>"> |
${work.formatedDescription} |
</div> |
</td> |
<td> |
<logic:notEmpty name="work" property="workFile"> |
289,11 → 292,6 |
</td> |
</logic:notEmpty> |
</tr> |
<tr id="assignement${work.id}" style="<%=Globals.HIDDEN%>"> |
<td colspan="${colspanAssignement}"> |
${work.formatedDescription} |
</td> |
</tr> |
</logic:iterate> |
</tbody> |
</table> |
305,4 → 303,4 |
</div> |
</div> |
</div> |
</div> |
/impl/src/web/user/courseunits/courseunitEvaluation.jsp |
---|
6,6 → 6,7 |
<%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
<%@ page import="pt.estgp.estgweb.domain.ConfigurationImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ 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" %> |
23,12 → 24,18 |
<html:errors/> |
<jomm:messages/> |
<script> |
//Manter a sessão activa para os docentes não perderem os dados |
ping(); |
</script> |
<% |
IServiceManager sm = ServiceManager.getInstance(); |
List<pt.estgp.estgweb.domain.views.CourseUnitView> otherYearUnits; |
/*List<pt.estgp.estgweb.domain.views.CourseUnitView> otherYearUnits; |
otherYearUnits = new ArrayList<pt.estgp.estgweb.domain.views.CourseUnitView>(); |
try{ |
String[] names = new String[]{}; |
Object[] args = new Object[]{new Long(CourseUnitView.getId())}; |
otherYearUnits = |
46,7 → 53,7 |
{ |
System.err.print(e.toString()); |
e.printStackTrace(); |
} |
}*/ |
boolean closed = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isClosed(); |
boolean teacherComplete = CourseUnitEvaluationForm.getCourseUnitEvaluationView().getCourseUnitEvaluation().isTeacherComplete(); |
118,7 → 125,9 |
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()) |
|| |
UserSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
/impl/src/web/user/courseunits/courseunitProgram.jsp |
---|
20,6 → 20,10 |
<div id="contentPane"> |
<html:errors/> |
<jomm:messages/> |
<script> |
//Manter a sessão activa para os docentes não perderem os dados |
ping(); |
</script> |
<% |
IServiceManager sm = ServiceManager.getInstance(); |
/impl/src/web/user/courseunits/courseunit.jsp |
---|
1,3 → 1,5 |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page import="pt.estgp.estgweb.domain.UserImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
29,7 → 31,7 |
request.setAttribute("fromAction", fromAction); |
String activeEvaluationYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYearCreateTransaction(); |
//String activeEvaluationYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYearCreateTransaction(); |
IServiceManager sm = ServiceManager.getInstance(); |
42,20 → 44,25 |
request.setAttribute("CourseUnitInEvaluation",courseUnitViewInEvaluation); |
} |
boolean showEvaluationReport = false; |
%> |
<jomm:messages/> |
<div id="contentPane"> |
<h1>${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre}) - ${CourseUnitView.importYear})</h1> |
<table width="100%" cellpadding="0" cellspacing="2" border="0"> |
<tr> |
<td valign="top" class="seccao"> |
<div class="panel panel-primary panel-container"> |
<div class="panel-heading"> |
${CourseUnitView.name} (${CourseUnitView.code}) - semestre ${CourseUnitView.semestre} - ano ${CourseUnitView.importYear} - turma ${CourseUnitView.cdTurma} |
</div> |
<div class="panel-body"> |
<baco:isAuthenticated> |
<% |
if(activeEvaluationYear != null) |
{ |
%> |
<% |
64,300 → 71,298 |
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()) |
|| |
UserSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
if(CourseUnitView.isValidEvaluation()) |
{ |
%> |
<p> |
<label class="INFO"> <a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">Relatório de avaliação em PDF</a></label> |
</p> |
<% |
showEvaluationReport = true; |
} |
if(courseUnitViewInEvaluation != null) |
{ |
%> |
<p> |
<label class="WARNING">Atenção tem um relatório de avaliação em fase de preenchimento no ano <%=courseUnitViewInEvaluation.getImportYear()%> (Entrar no <%=courseUnitViewInEvaluation.getImportYear()%> pelo menu lateral esquerdo antes de clicar em relatório de avaliação e confirmar no titulo da unidade).</label> |
</p> |
<% |
%> |
<div class="row"> |
<div class="col-sm-8"> |
<div class="alert alert-warning" role="alert">Atenção tem um relatório de avaliação em fase de preenchimento no ano <%=courseUnitViewInEvaluation.getImportYear()%> (Entrar no <%=courseUnitViewInEvaluation.getImportYear()%> pelo menu lateral esquerdo antes de clicar em relatório de avaliação e confirmar no titulo da unidade).</div> |
</div> |
</div> |
<% |
} |
} |
} |
%> |
</baco:isAuthenticated> |
<baco:hasRole role="admin,all,services"> |
<ul> |
<li> |
<html:link action="/user/startEditCourseUnitAdminFromServiceZone.do?id=${CourseUnitView.id}"> |
Editar Dados Administrativos Unidade |
</html:link> |
</li> |
<li> |
<html:link action="/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${CourseUnitView.courseId}"> |
Editar Dados Administrativos Curso |
</html:link> |
</li> |
</ul> |
<html:form styleClass="form" action="/user/courseUnitControllerFromHome" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="update"/> |
<html:hidden property="courseUnitView.id"/> |
</baco:hasRole> |
<html:form styleClass="form" action="/user/courseUnitControllerFromHome" enctype="multipart/form-data"> |
<input type="hidden" name="dispatch" value="update"/> |
<html:hidden property="courseUnitView.id"/> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="courseunit.objectives"/> |
</div> |
<div class="panel-body"> |
<p><logic:present name="CourseUnitView" property="objectives"> |
${CourseUnitView.formatedObjectives} |
</logic:present> |
<logic:notPresent name="CourseUnitView" property="objectives"> |
<bean:message key="courseunit.objectives.not.available"/> |
</logic:notPresent></p> |
</div> |
</div> |
<div class="row"> |
<div class="col-md-8 col-sm-6 col-xs-12"> |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<p> |
<%--<baco:cantManage name="CourseUnitView">--%> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="courseunit.objectives"/> |
</div> |
<div class="panel-body"> |
<p><logic:present name="CourseUnitView" property="objectives"> |
${CourseUnitView.formatedObjectives} |
</logic:present> |
<logic:notPresent name="CourseUnitView" property="objectives"> |
<bean:message key="courseunit.objectives.not.available"/> |
</logic:notPresent></p> |
</div> |
</div> |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Recursos |
</div> |
<div class="panel-body"> |
<%--</baco:cantManage>--%> |
<%--<baco:canManage name="CourseUnitView">--%> |
<%--<html:textarea styleClass="textarea" property="courseUnitView.objectives"/>--%> |
<%--</baco:canManage>--%> |
</p> |
<baco:canManage name="CourseUnitView"> |
<h2><bean:message key="courseunits.contentsGrants"/></h2> |
<p> |
<html:select property="courseUnitView.contentsGrants"> |
<%--<html:option value="PUBLIC"><bean:message key="courseunits.contentsGrants.PUBLIC"/></html:option>--%> |
<html:option value="INTERNAL"><bean:message key="courseunits.contentsGrants.INTERNAL"/></html:option> |
<html:option value="PRIVATE"><bean:message key="courseunits.contentsGrants.PRIVATE"/></html:option> |
</html:select> |
<baco:canManage name="CourseUnitView"> |
<input type="button" onclick="set(form,'update');form.submit()" value="<bean:message key="confirm"/>"> |
</baco:canManage> |
</p> |
</baco:canManage> |
<baco:isAuthenticated> |
<h2><bean:message key="courseunit.programfilepath"/> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
Ficha aberta para edição: (<html:link action="/startLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}"><bean:message key="courseunit.edit.program"/></html:link>) |
</logic:equal> |
<div class="list-group"> |
</baco:isTeacherOfCourseUnit> |
<logic:equal value="${CourseUnitView.coordinatorId}" name="UserSession" property="user.id"> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
Ficha aberta para edição: (<html:link action="/startLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}"><bean:message key="courseunit.edit.program"/></html:link>) |
</logic:equal> |
</logic:equal> |
<baco:hasRole role="admin,all,services,ci"> |
<div class="list-group-item"> |
<html:link action="/user/startEditCourseUnitAdminFromServiceZone.do?id=${CourseUnitView.id}"> |
Editar Dados Administrativos Unidade |
</html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=${CourseUnitView.courseId}"> |
Editar Dados Administrativos Curso |
</html:link> |
</div> |
</baco:hasRole> |
<% |
if(showEvaluationReport) |
{ |
%> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/repositoryStream/<%=CourseUnitView.getEvaluationStreamId()%>">Relatório de avaliação (ano ${CourseUnitView.importYear})</a> |
<span class="badge"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.evaluationStreamId}"><img style="clear: both" src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"/></a> |
</span> |
</div> |
<% |
} |
%> |
<baco:canManage name="CourseUnitView"> |
<baco:isAdmin> |
Ficha aberta para edição: (<html:link action="/startLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}"><bean:message key="courseunit.edit.program"/></html:link>) |
</baco:isAdmin> |
<div class="list-group-item"> |
<bean:message key="courseunits.contentsGrants"/> - |
<%--<html:option value="PUBLIC"><bean:message key="courseunits.contentsGrants.PUBLIC"/></html:option>--%> |
<html:radio onclick="set(form,'update');form.submit()" property="courseUnitView.contentsGrants" value="INTERNAL"/> <bean:message key="courseunits.contentsGrants.INTERNAL"/> |
<html:radio onclick="set(form,'update');form.submit()" property="courseUnitView.contentsGrants" value="PRIVATE" /> <bean:message key="courseunits.contentsGrants.PRIVATE"/> |
</div> |
</baco:canManage> |
<baco:isAuthenticated> |
<logic:equal value="true" name="CourseUnitView" property="validProgram"> |
(Ficha curricular validada) |
</logic:equal> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
(<label style="color:red">Ficha curricular ainda não validada pela Comissão de Curso</label>) |
</logic:equal> |
</h2> |
<p> |
<baco:canManage name="CourseUnitView"> |
<!-- |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
<html:file property="programFile"/> |
</logic:equal> |
--> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><bean:message key="courseunit.programfilepath"/></a> (${CourseUnitView.programSize} Kb) |
<logic:equal value="true" name="CourseUnitView" property="validProgram"> |
(<bean:message key="courseunit.programfile.valid"/>) |
</logic:equal> |
</logic:present> |
</baco:canManage> |
<baco:cantManage name="CourseUnitView"> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<logic:equal value="true" name="CourseUnitView" property="validProgram"> |
(<bean:message key="courseunit.programfile.valid"/>) |
</logic:equal> |
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><bean:message key="courseunit.programfilepath"/></a> (${CourseUnitView.programSize} Kb) |
</logic:present> |
</baco:cantManage> |
<div class="list-group-item"> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><bean:message key="courseunit.programfilepath"/></a> <!--(${CourseUnitView.programSize} Kb)--> |
<logic:notPresent name="CourseUnitView" property="programStreamId"> |
<bean:message key="courseunit.programfilepath.not.available"/> |
</logic:notPresent> |
<%--<logic:equal value="true" name="CourseUnitView" property="validProgram"> |
(<bean:message key="courseunit.programfile.valid"/>) |
</logic:equal>--%> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
(<label style="color:red">Não validada pela Comissão de Curso</label>) |
</logic:equal> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
<bean:message key="courseunit.programfile.invalid"/> |
</logic:equal> |
</logic:present> |
<baco:isNotAdmin> |
<logic:notEqual value="${CourseUnitView.coordinatorId}" name="UserSession" property="user.id"> |
<baco:isTeacherOfCourseUnit courseUnitId="${CourseUnitView.id}"> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
<span class="badge"> <html:link action="/startLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}"><span class="glyphicon glyphicon-pencil"></span></html:link></span> |
</logic:equal> |
</baco:isTeacherOfCourseUnit> |
</logic:notEqual> |
<logic:equal value="${CourseUnitView.coordinatorId}" name="UserSession" property="user.id"> |
<logic:equal value="false" name="CourseUnitView" property="validProgram"> |
<span class="badge"><html:link action="/startLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}"><span class="glyphicon glyphicon-pencil"></span></html:link></span> |
</logic:equal> |
</logic:equal> |
</baco:isNotAdmin> |
<baco:isAdmin> |
<html:link styleClass="btn btn-warning" action="/startLoadCourseUnitProgram?courseUnitId=${CourseUnitView.id}"><span class="glyphicon glyphicon-pencil"></span></html:link> |
</baco:isAdmin> |
<span class="badge" style="overflow: auto;display: inline-flex;height: 20px;"><a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><img src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"/></a></span> |
</logic:present> |
<logic:notPresent name="CourseUnitView" property="programStreamId"> |
<bean:message key="courseunit.programfilepath.not.available"/> |
</logic:notPresent> |
</div> |
<div class="list-group-item"> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<baco:hasRole role="teacher,admin,all,services,servicesPrograms,courseValidatePrograms"> |
<a href="<%=request.getContextPath()%>/admin/data.jsp?id=${CourseUnitView.programStreamId}">Ver todas as versoes do programa</a> |
</baco:hasRole> |
</logic:present> |
</div> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<baco:hasRole role="teacher,admin,all"> |
<a href="<%=request.getContextPath()%>/admin/data.jsp?id=${CourseUnitView.programStreamId}">Ver todas as versoes do programa</a> |
</baco:hasRole> |
</logic:present> |
</baco:isAuthenticated> |
</div> |
</div> |
</div> |
</div> |
</div> |
<div class="row"> |
<div class="col-md-12 col-sm-12 col-xs-12"> |
<baco:isAuthenticated> |
<% |
if(CourseUnitView.getContentsGrants() == null) |
CourseUnitView.setContentsGrants("INTERNAL"); |
if(CourseUnitView.getContentsGrants().equals("INTERNAL") || (CourseUnitView.getContentsGrants().equals("PRIVATE") && |
( |
((UserImpl)UserSession.getUser()).isTeacherOfCourseUnit(CourseUnitView.getId()) || |
((UserImpl)UserSession.getUser()).isStudentfCourseUnit(CourseUnitView.getId()) || |
(UserSession.getUser()).getId() == CourseUnitView.getResponsableId() |
))) |
{ |
</p> |
</baco:isAuthenticated> |
%> |
<h2><bean:message key="module.Announcements"/></h2> |
<logic:notEmpty name="CourseUnitView" property="announcements"> |
<%--<div class="listCircleWhite"> |
<ul> |
<logic:iterate id="announcement" name="CourseUnitView" property="announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView"> |
<li> |
<h3><html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link></h3> |
<p>${announcement.formatedText}</p> |
<p class="pFooterSeccao"><bean:message key="from"/>: ${announcement.owner.name} (${announcement.owner.username}) <bean:message key="at"/> ${announcement.formatedSaveDate} </p> |
</li> |
</logic:iterate> |
</ul> |
</div>--%> |
<logic:iterate id="announcement" name="CourseUnitView" property="announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView"> |
<div class="panel panel-info"> |
<div class="panel-heading"> |
<html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link> |
</div> |
<div class="panel-body"> |
<p>${announcement.formatedText}</p> |
</div> |
<div class="panel-footer"><bean:message key="from"/>: ${announcement.owner.name} (${announcement.owner.username}) <bean:message key="at"/> ${announcement.formatedSaveDate} </div> |
</div> |
</logic:iterate> |
</html:form> |
</logic:notEmpty> |
<logic:empty name="CourseUnitView" property="announcements"> |
<p><bean:message key="announcement.zero.placed"/></p> |
</logic:empty> |
<% |
} |
%> |
</baco:isAuthenticated> |
</div> |
</div> |
</div> |
<div class="col-md-4 col-sm-6 col-xs-12"> |
<baco:isAuthenticated> |
<h2><bean:message key="module.Announcements"/></h2> |
<logic:notEmpty name="CourseUnitView" property="announcements"> |
<%--<div class="listCircleWhite"> |
<ul> |
<logic:iterate id="announcement" name="CourseUnitView" property="announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView"> |
<li> |
<h3><html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link></h3> |
<p>${announcement.formatedText}</p> |
<p class="pFooterSeccao"><bean:message key="from"/>: ${announcement.owner.name} (${announcement.owner.username}) <bean:message key="at"/> ${announcement.formatedSaveDate} </p> |
</li> |
</logic:iterate> |
</ul> |
</div>--%> |
<logic:iterate id="announcement" name="CourseUnitView" property="announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView"> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link> |
</div> |
<div class="panel-body"> |
<p>${announcement.formatedText}</p> |
</div> |
<div class="panel-footer"><bean:message key="from"/>: ${announcement.owner.name} (${announcement.owner.username}) <bean:message key="at"/> ${announcement.formatedSaveDate} </div> |
</div> |
</logic:iterate> |
<div class="panel-heading"> |
<bean:message key="courseunit.teachers"/> |
</div> |
<div class="panel-body"> |
<logic:notEmpty name="CourseUnitView" property="responsableTeacher"> |
<div class="list-group"> |
<div class="list-group-item"><bean:message key="courseunit.responsable"/></div> |
<div class="list-group-item"> |
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${CourseUnitView.responsableTeacher.code}&courseUnitView.id=${CourseUnitView.id}">${CourseUnitView.responsableTeacher.name}</html:link> |
<span class="badge">${CourseUnitView.responsableTeacher.code}</span> |
</logic:notEmpty> |
<logic:empty name="CourseUnitView" property="announcements"> |
<p><bean:message key="announcement.zero.placed"/></p> |
</logic:empty> |
</td> |
</div> |
<div class="list-group-item disabled"> ${CourseUnitView.responsableTeacher.safeEmail}</div> |
</div> |
</logic:notEmpty> |
<div class="list-group"> |
<logic:iterate id="teacher" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<div class="list-group-item"><html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${teacher.code}&courseUnitView.id=${CourseUnitView.id}">${teacher.name}</html:link> <span class="badge">${teacher.code}</span></div> |
<div class="list-group-item disabled"> ${teacher.safeEmail}</div> |
</logic:iterate> |
</div> |
</baco:isAuthenticated> |
</td> |
<td valign="top" class="seccao"> |
</div> |
<div class="seccao"> |
<logic:notEmpty name="CourseUnitView" property="responsableTeacher"> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="courseunit.responsable"/> |
</div> |
<div class="panel-body"> |
<table class="dataTable"> |
<tr> |
<th><bean:message key="number"/></th> |
<th><bean:message key="name"/></th> |
<th><bean:message key="email"/></th> |
</tr> |
<tr> |
<td> |
${CourseUnitView.responsableTeacher.code} |
</td> |
<td> |
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${CourseUnitView.responsableTeacher.code}&courseUnitView.id=${CourseUnitView.id}">${CourseUnitView.responsableTeacher.name}</html:link> |
</td> |
<td> |
${CourseUnitView.responsableTeacher.safeEmail} |
</td> |
</tr> |
</table> |
</div> |
</div> |
</logic:notEmpty> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="courseunit.teachers"/> |
</div> |
<div class="panel-body"> |
<table class="dataTable tablesorter"> |
<tr> |
<th><bean:message key="number"/></th> |
<th><bean:message key="name"/></th> |
<th><bean:message key="email"/></th> |
</tr> |
<logic:iterate id="teacher" name="CourseUnitView" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<tr> |
<td> |
${teacher.code} |
</td> |
<td> |
<html:link action="${user}/startLoadTeacherCourseUnit${fromAction}?code=${teacher.code}&courseUnitView.id=${CourseUnitView.id}">${teacher.name}</html:link> |
</td> |
<td> |
${teacher.safeEmail} |
</td> |
</tr> |
</logic:iterate> |
</table> |
</div> |
</div> |
</div> |
<div class="seccao"> |
<h2><bean:message key="courseunit.summaries"/></h2> |
<logic:notEmpty name="CourseUnitView" property="summariesFromJson"> |
<baco:hasRole role="teacher"> |
<p><a href="<%=request.getContextPath()%>/ftpProxyStream/ionline${CourseUnitView.sumariosPathFileIntranet}">Descarregar PDF</a></p> |
<logic:greaterThan value="0" name="CourseUnitView" property="lateSummaries"> |
<p style="background-color: yellow">Alerta.Tem <bean:write name="CourseUnitView" property="lateSummaries"/> |
<logic:equal name="CourseUnitView" property="lateSummaries" value="1">Sumário</logic:equal> |
<logic:greaterThan name="CourseUnitView" property="lateSummaries" value="1">Sumários</logic:greaterThan> |
lançados pelos serviços que não estão preenchidos e estão abertos há mais de 48 horas. Se este for um falso alerta pedimos desculpa pelo incómodo. |
<a target="_blank" href="http://netpa.ipportalegre.pt">Aceda ao NETPA para regularizar</a> |
ou entre em contacto com o Sr José Luis para confirmar a situação:</a> |
</p> |
<ul> |
<logic:iterate id="sumLate" name="CourseUnitView" property="lateSummariesDates"> |
<li>Por lançar: <bean:write name="sumLate"/></li> |
</logic:iterate> |
</ul> |
</logic:greaterThan> |
</baco:hasRole> |
</logic:notEmpty> |
<baco:isAuthenticated> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
<bean:message key="courseunit.summaries"/> |
</div> |
<div class="panel-body"> |
<logic:notEmpty name="CourseUnitView" property="summariesFromJson"> |
<baco:hasRole role="teacher"> |
<p><a href="<%=request.getContextPath()%>/ftpProxyStream/ionline${CourseUnitView.sumariosPathFileIntranet}">Descarregar PDF <img src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"/></a></p> |
<logic:greaterThan value="0" name="CourseUnitView" property="lateSummaries"> |
<p style="background-color: yellow">Alerta.Tem <bean:write name="CourseUnitView" property="lateSummaries"/> |
<logic:equal name="CourseUnitView" property="lateSummaries" value="1">Sumário</logic:equal> |
<logic:greaterThan name="CourseUnitView" property="lateSummaries" value="1">Sumários</logic:greaterThan> |
lançados pelos serviços que não estão preenchidos e estão abertos há mais de 48 horas. Se este for um falso alerta pedimos desculpa pelo incómodo. |
<a target="_blank" href="http://netpa.ipportalegre.pt">Aceda ao NETPA para regularizar</a> |
ou entre em contacto com o Sr José Luis para confirmar a situação:</a> |
<logic:notEmpty name="CourseUnitView" property="summariesFromJson"> |
<logic:iterate id="summary" name="CourseUnitView" property="summariesFromJson" type="pt.estgp.estgweb.domain.views.CourseUnitSummaryView"> |
<div class="blockData"> |
<div class="blockDataTitle">Aula ${summary.number} - ${summary.title}</div> |
<div class="blockDataContent">${summary.description}</div> |
<div class="blockDataFooter">${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/> </div> |
</p> |
<ul> |
<logic:iterate id="sumLate" name="CourseUnitView" property="lateSummariesDates"> |
<li>Por lançar: <bean:write name="sumLate"/></li> |
</logic:iterate> |
</ul> |
</logic:greaterThan> |
</baco:hasRole> |
</logic:notEmpty> |
<logic:notEmpty name="CourseUnitView" property="summariesFromJson"> |
<logic:iterate id="summary" name="CourseUnitView" property="summariesFromJson" type="pt.estgp.estgweb.domain.views.CourseUnitSummaryView"> |
<div class="blockData"> |
<div class="blockDataTitle">Aula ${summary.number} - ${summary.title}</div> |
<div class="blockDataContent">${summary.description}</div> |
<div class="blockDataFooter">${summary.date} - ${summary.horas} Horas - ${summary.students} <bean:message key="courseunit.summary.present.students"/> </div> |
</div> |
</logic:iterate> |
</logic:notEmpty> |
<logic:empty name="CourseUnitView" property="summariesFromJson"> |
<p><bean:message key="courseunit.summaries.zero.placed"/></p> |
</logic:empty> |
</div> |
</div> |
</logic:iterate> |
</logic:notEmpty> |
<logic:empty name="CourseUnitView" property="summariesFromJson"> |
<p><bean:message key="courseunit.summaries.zero.placed"/></p> |
</logic:empty> |
</baco:isAuthenticated> |
</div> |
</div> |
</td> |
</tr> |
</table> |
</html:form> |
</div> |
</div> |
/impl/src/web/user/courseunits/menu.jsp |
---|
13,6 → 13,7 |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitView" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSessionImpl" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
21,6 → 22,11 |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
<% |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
if(userSession == null) |
request.setAttribute("UserSession",new UserSessionImpl()); |
%> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
148,7 → 154,7 |
<baco:isAuthenticated> |
<% |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
CourseUnitContentsGrants contentsGrants = CourseUnitContentsGrants.parse(CourseUnitView.getContentsGrants()); |
if ( contentsGrants == CourseUnitContentsGrants.PUBLIC || |
/impl/src/web/user/home.jsp |
---|
41,75 → 41,19 |
} |
%> |
<div class="row"> |
<div class="col-md-2 col-sm-2 hidden-xs" style=" padding-right: 0"> |
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=${UserSession.user.roles}&from=Home"/> |
</div> |
<div class="col-md-7 col-sm-7 col-xs-12" style="padding-left: 3px; padding-right: 3px"> |
<baco:hasRole role="student"><jsp:include page="/user/home/student.jsp"/></baco:hasRole> |
<baco:hasRole role="teacher"><jsp:include page="/user/home/teacher.jsp"/></baco:hasRole> |
<baco:hasNotRole role="student,teacher"><jsp:include page="/user/home/user.jsp"/></baco:hasNotRole> |
</div> |
<div class="col-md-3 col-sm-3 col-xs-12" style="padding-left: 0"> |
<jsp:include page="/public/announcements/announcementsPortalRightHome.jsp?role=${UserSession.user.roles}&from=Home"/> |
</div> |
</div> |
<baco:hasRole role="student"> |
<table width="100%" cellpadding="0" cellspacing="0"> |
<tr> |
<td id="leftPage"> |
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=${UserSession.user.roles}&from=Home"/> |
</td> |
<td class="contentPortal"> |
<jsp:include page="/user/home/student.jsp"/> |
<%--<table width="100%" cellpadding="0" cellspacing="0" class="portalServices">--%> |
<%--<tr>--%> |
<%--<td class="messagesContainer"><jsp:include page="/user/pop/messagesContainer.jsp"/></td>--%> |
<%--</tr>--%> |
<%--</table>--%> |
</td> |
<td id="rightPagePortal"> |
<jsp:include page="/public/announcements/announcementsPortalRightHome.jsp?role=${UserSession.user.roles}&from=Home"/> |
</td> |
</tr> |
</table> |
</baco:hasRole> |
<baco:hasRole role="teacher"> |
<table width="100%"> |
<tr> |
<td id="leftPage"> |
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=${UserSession.user.roles}&from=Home"/> |
</td> |
<td class="contentPortal"> |
<jsp:include page="/user/home/teacher.jsp"/> |
<%--<table width="100%" cellpadding="0" cellspacing="0">--%> |
<%--<tr>--%> |
<%--<td class="messagesContainer"><jsp:include page="/user/pop/messagesContainer.jsp"/></td>--%> |
<%--</tr>--%> |
<%--</table>--%> |
</td> |
<td id="rightPagePortal"> |
<jsp:include page="/public/announcements/announcementsPortalRightHome.jsp?role=${UserSession.user.roles}&from=Home"/> |
</td> |
</tr> |
</table> |
</baco:hasRole> |
<baco:hasNotRole role="student"> |
<baco:hasNotRole role="teacher"> |
<table> |
<tr> |
<td id="leftPage"> |
<jsp:include page="/public/announcements/announcementsPortalLeft.jsp?role=all&from=Home"/> |
</td> |
<td class="contentPortal"> |
<jsp:include page="/user/home/user.jsp"/> |
<%--<table width="100%" cellpadding="0" cellspacing="0">--%> |
<%--<tr>--%> |
<%--<td class="messagesContainer"><jsp:include page="/user/pop/messagesContainer.jsp"/></td>--%> |
<%--</tr>--%> |
<%--</table> --%> |
</td> |
<td id="rightPagePortal"> |
<jsp:include page="/public/announcements/announcementsPortalRightHome.jsp?role=all&from=Home"/> |
</td> |
</tr> |
</table> |
</baco:hasNotRole> |
</baco:hasNotRole> |
/impl/src/web/user/home/courseComission.jsp |
---|
New file |
0,0 → 1,200 |
<%@ page import="jomm.dao.utils.HibernateUtils" %> |
<%@ page import="jomm.utils.MessageResources" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl" %> |
<%@ page import="java.util.List" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<% |
try{ |
HibernateUtils.getCurrentSession().beginTransaction(); |
String activeYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYear(); |
List<String> activeDegrees = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveDegrees(); |
List<CourseUnitDaoImpl.CourseMissingValidationProgram> result0 = DaoFactory.getCourseUnitDaoImpl().loadMissingPrograms(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationProgram> result1 = DaoFactory.getCourseUnitDaoImpl().loadMissingProgramValidate(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationEvaluation> result2 = DaoFactory.getCourseUnitDaoImpl().loadMissingEvaluationValidate(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationEvaluation> result3 = DaoFactory.getCourseUnitDaoImpl().loadMissingEvaluation(UserSession); |
if(result0.size() > 0 || result1.size() > 0 || result2.size() > 0 || result3.size()>0) |
{ |
%> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Tarefas das Comissões de Curso (<%=activeYear%>)</div> |
<div class="panel-body"> |
<p>Expanda os cursos e clique nas unidades para validar os relatórios de avaliação.</p> |
<p>No final de cada relatório existe um botão de validação para os membros das comissões dos cursos respectivos.</p> |
<% |
if(result1.size()>0) |
{ |
%> |
<div class="panel-body-h1">Fichas curriculares por validar</div> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result1) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></li> |
<% |
} |
%> |
</ul> |
<% |
} |
%> |
<% |
if(result0.size()>0) |
{ |
%> |
<div class="panel-body-h1">Fichas curriculares por preencher</div> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result0) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></li> |
<% |
} |
%> |
</ul> |
<% |
} |
%> |
<% |
if(result2.size()>0) |
{ |
%> |
<div class="panel-body-h1">Relatórios de avaliação por validar |
<% |
String sep = ""; |
if(activeDegrees != null) |
{ |
%> |
(graus em processo de validação: |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ", "; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
<h2><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%> </a> (<%=mis.courseUnits.size()%>)</h2> |
<div id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%> / <%=cu.getCdTurma()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
<% |
} |
%> |
<% |
} |
%> |
<% |
if(result3.size()>0) |
{ |
%> |
<div class="panel-body-h1">Relatórios de avaliação ainda não preenchidos |
<% |
String sep = ""; |
if(activeDegrees != null) |
{ |
%> |
(graus em processo de validação: |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ","; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result3) |
{ |
%> |
<h2><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2> |
<div id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%> / <%=cu.getCdTurma()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
<% |
} |
%> |
<% |
} |
%> |
</div> |
</div> |
</div> |
<% |
} |
HibernateUtils.getCurrentSession().getTransaction().commit(); |
}catch(Throwable e) |
{ |
System.out.println(e); |
e.printStackTrace(); |
} |
%> |
/impl/src/web/user/home/student.jsp |
---|
127,7 → 127,7 |
<ul> |
<logic:iterate id="unit" name="units" type="pt.estgp.estgweb.domain.CourseUnit"> |
<li> |
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}))</html:link> |
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}) (${unit.cdTurma})</html:link> |
<html:link action="/user/startLoadCourseUnitRootFromHome?courseUnitView.id=${unit.id}"><img border="0" alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"></html:link> |
</li> |
</logic:iterate> |
/impl/src/web/user/home/teacher.jsp |
---|
102,7 → 102,7 |
<ul> |
<logic:iterate id="unit" name="units" type="pt.estgp.estgweb.domain.CourseUnit"> |
<li> |
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}))</html:link> |
<html:link action="/user/startLoadCourseUnitFromHome?id=${unit.id}">${unit.name} (${unit.courseName} (${unit.courseCode}) (${unit.cdTurma})</html:link> |
<html:link action="/user/startLoadCourseUnitRootFromHome?courseUnitView.id=${unit.id}"><img border="0" alt="Pastas" src="<%=request.getContextPath()%>/imgs/folder.gif"></html:link> |
</li> |
</logic:iterate> |
173,7 → 173,7 |
for(CourseUnit cu: programs) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%>/<%=cu.getCode()%> (<%=cu.getCourseName() + "/" +cu.getCourseCode()%>)</a></li> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%>/<%=cu.getCode()%> (<%=cu.getCourseName() + "/" +cu.getCourseCode() +"/" + cu.getCdTurma()%>)</a></li> |
<% |
} |
%> |
211,7 → 211,7 |
for(CourseUnit cu: evaluations) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=<%=cu.getId()%>"><%=cu.getName()%>/<%=cu.getCode()%> (<%=cu.getCourseName() + "/" +cu.getCourseCode()%>)</a></li> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitFromHome.do?id=<%=cu.getId()%>"><%=cu.getName()%>/<%=cu.getCode()%> (<%=cu.getCourseName() + "/" +cu.getCourseCode()+"/" + cu.getCdTurma()%>)</a></li> |
<% |
} |
%> |
233,202 → 233,11 |
} |
%> |
<jsp:include page="courseComission.jsp"/> |
<% |
try{ |
HibernateUtils.getCurrentSession().beginTransaction(); |
String activeYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYear(); |
List<String> activeDegrees = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveDegrees(); |
List<CourseUnitDaoImpl.CourseMissingValidationProgram> result0 = DaoFactory.getCourseUnitDaoImpl().loadMissingPrograms(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationProgram> result1 = DaoFactory.getCourseUnitDaoImpl().loadMissingProgramValidate(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationEvaluation> result2 = DaoFactory.getCourseUnitDaoImpl().loadMissingEvaluationValidate(UserSession); |
List<CourseUnitDaoImpl.CourseMissingValidationEvaluation> result3 = DaoFactory.getCourseUnitDaoImpl().loadMissingEvaluation(UserSession); |
if(result0.size() > 0 || result1.size() > 0 || result2.size() > 0 || result3.size()>0) |
{ |
%> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Tarefas das Comissões de Curso (<%=activeYear%>)</div> |
<div class="panel-body"> |
<p>Expanda os cursos e clique nas unidades para validar os relatórios de avaliação.</p> |
<p>No final de cada relatório existe um botão de validação para os membros das comissões dos cursos respectivos.</p> |
<% |
if(result1.size()>0) |
{ |
%> |
<div class="panel-body-h1">Fichas curriculares por validar</div> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result1) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></li> |
<% |
} |
%> |
</ul> |
<% |
} |
%> |
<% |
if(result0.size()>0) |
{ |
%> |
<div class="panel-body-h1">Fichas curriculares por preencher</div> |
<ul> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationProgram mis:result0) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCoursesProgramsFromHome.do?courseId=<%=mis.course.getId()%>#<%=mis.course.getId()%>"><%=mis.course.getName()%> (<%=mis.courseUnits.size()%>)</a></li> |
<% |
} |
%> |
</ul> |
<% |
} |
%> |
<% |
if(result2.size()>0) |
{ |
%> |
<div class="panel-body-h1">Relatórios de avaliação por validar |
<% |
String sep = ""; |
if(activeDegrees != null) |
{ |
%> |
(graus em processo de validação: |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ", "; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result2) |
{ |
%> |
<h2><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2> |
<div id="evaluationValidate<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
<% |
} |
%> |
<% |
} |
%> |
<% |
if(result3.size()>0) |
{ |
%> |
<div class="panel-body-h1">Relatórios de avaliação ainda não preenchidos |
<% |
String sep = ""; |
if(activeDegrees != null) |
{ |
%> |
(graus em processo de validação: |
<% |
for(String activeDegree: activeDegrees) |
{ |
%> |
<%=sep + MessageResources.getInstance(request).getMessage("course."+activeDegree)%> |
<% |
sep = ","; |
} |
%> |
) |
<% |
} |
%> |
</div> |
<% |
for(CourseUnitDaoImpl.CourseMissingValidationEvaluation mis:result3) |
{ |
%> |
<h2><a href="javascript:showOrHide('evaluationFill<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2> |
<div id="evaluationFill<%=mis.course.getId()%>" style="display: none"> |
<ul> |
<% |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<% |
} |
%> |
</ul> |
</div> |
<% |
} |
%> |
<% |
} |
%> |
</div> |
</div> |
</div> |
<% |
} |
HibernateUtils.getCurrentSession().getTransaction().commit(); |
}catch(Throwable e) |
{ |
System.out.println(e); |
e.printStackTrace(); |
} |
%> |
</td> |
</tr> |
</tbody> |
/impl/src/web/user/home/user.jsp |
---|
77,7 → 77,7 |
</baco:hasRole> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Atalhas</div> |
<div class="panel-heading">Atalhos</div> |
<div class="panel-body"> |
<ul> |
<li> |
130,6 → 130,7 |
</div> |
</div> |
</div> |
<jsp:include page="courseComission.jsp"/> |
</td> |
</tbody> |
</table> |
/impl/src/web/user/serviceZone/topnavCoursePedagogicContents.jsp |
---|
New file |
0,0 → 1,10 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course.pedagogic.contents.admin"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetTurmasAuxResponse.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="getTurmasAuxResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfTurma" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"getTurmasAuxResult" |
}) |
@XmlRootElement(name = "getTurmasAuxResponse") |
public class GetTurmasAuxResponse { |
protected ArrayOfTurma getTurmasAuxResult; |
/** |
* Gets the value of the getTurmasAuxResult property. |
* |
* @return |
* possible object is |
* {@link ArrayOfTurma } |
* |
*/ |
public ArrayOfTurma getGetTurmasAuxResult() { |
return getTurmasAuxResult; |
} |
/** |
* Sets the value of the getTurmasAuxResult property. |
* |
* @param value |
* allowed object is |
* {@link ArrayOfTurma } |
* |
*/ |
public void setGetTurmasAuxResult(ArrayOfTurma value) { |
this.getTurmasAuxResult = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/Disciplina.java |
---|
27,6 → 27,7 |
* <element name="nome" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="nomeCurso" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="grauCurso" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="cdTipoDisciplina" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
45,7 → 46,8 |
"cdTurma", |
"nome", |
"nomeCurso", |
"grauCurso" |
"grauCurso", |
"cdTipoDisciplina" |
}) |
public class Disciplina { |
61,6 → 63,8 |
protected String nome; |
protected String nomeCurso; |
protected String grauCurso; |
@XmlElement(required = true) |
protected BigDecimal cdTipoDisciplina; |
/** |
* Gets the value of the codigo property. |
278,4 → 282,28 |
this.grauCurso = value; |
} |
/** |
* Gets the value of the cdTipoDisciplina property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCdTipoDisciplina() { |
return cdTipoDisciplina; |
} |
/** |
* Sets the value of the cdTipoDisciplina property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCdTipoDisciplina(BigDecimal value) { |
this.cdTipoDisciplina = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/SiGesWEBSoap.java |
---|
309,4 → 309,97 |
@WebParam(name = "secret", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String secret); |
/** |
* |
* @param codigoInstituicao |
* @param cdDuracao |
* @param cdLectivo |
* @return |
* returns pt.ipportalegre.siges.web.services.ArrayOfTurmaCurso |
*/ |
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/loadParesTurmaCurso") |
@WebResult(name = "loadParesTurmaCursoResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
@RequestWrapper(localName = "loadParesTurmaCurso", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.LoadParesTurmaCurso") |
@ResponseWrapper(localName = "loadParesTurmaCursoResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.LoadParesTurmaCursoResponse") |
public ArrayOfTurmaCurso loadParesTurmaCurso( |
@WebParam(name = "codigoInstituicao", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
BigDecimal codigoInstituicao, |
@WebParam(name = "cdLectivo", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdLectivo, |
@WebParam(name = "cdDuracao", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdDuracao); |
/** |
* |
* @param codigoDiscip |
* @return |
* returns pt.ipportalegre.siges.web.services.ArrayOfDisciplina |
*/ |
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/getDisciplinasDaInstituicaoSemestreDiscipAux") |
@WebResult(name = "getDisciplinasDaInstituicaoSemestreDiscipAuxResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
@RequestWrapper(localName = "getDisciplinasDaInstituicaoSemestreDiscipAux", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetDisciplinasDaInstituicaoSemestreDiscipAux") |
@ResponseWrapper(localName = "getDisciplinasDaInstituicaoSemestreDiscipAuxResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetDisciplinasDaInstituicaoSemestreDiscipAuxResponse") |
public ArrayOfDisciplina getDisciplinasDaInstituicaoSemestreDiscipAux( |
@WebParam(name = "codigoDiscip", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String codigoDiscip); |
/** |
* |
* @param cdAluno |
* @return |
* returns pt.ipportalegre.siges.web.services.ArrayOfInscricao |
*/ |
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/getInscricoesAux") |
@WebResult(name = "getInscricoesAuxResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
@RequestWrapper(localName = "getInscricoesAux", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetInscricoesAux") |
@ResponseWrapper(localName = "getInscricoesAuxResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetInscricoesAuxResponse") |
public ArrayOfInscricao getInscricoesAux( |
@WebParam(name = "cdAluno", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdAluno); |
/** |
* |
* @param cdLectivo |
* @param cdDiscip |
* @return |
* returns pt.ipportalegre.siges.web.services.ArrayOfInscricao |
*/ |
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/getInscricoesDisciplinaAux") |
@WebResult(name = "getInscricoesDisciplinaAuxResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
@RequestWrapper(localName = "getInscricoesDisciplinaAux", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetInscricoesDisciplinaAux") |
@ResponseWrapper(localName = "getInscricoesDisciplinaAuxResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetInscricoesDisciplinaAuxResponse") |
public ArrayOfInscricao getInscricoesDisciplinaAux( |
@WebParam(name = "cdDiscip", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdDiscip, |
@WebParam(name = "cdLectivo", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdLectivo); |
/** |
* |
* @param cdTurma |
* @return |
* returns pt.ipportalegre.siges.web.services.ArrayOfTurma |
*/ |
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/getTurmasAux") |
@WebResult(name = "getTurmasAuxResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
@RequestWrapper(localName = "getTurmasAux", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetTurmasAux") |
@ResponseWrapper(localName = "getTurmasAuxResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetTurmasAuxResponse") |
public ArrayOfTurma getTurmasAux( |
@WebParam(name = "cdTurma", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdTurma); |
/** |
* |
* @param cdCurso |
* @return |
* returns pt.ipportalegre.siges.web.services.ArrayOfTurma |
*/ |
@WebMethod(action = "http://www.ipportalegre.pt/siges/web/services/getTurmasCursoAux") |
@WebResult(name = "getTurmasCursoAuxResult", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
@RequestWrapper(localName = "getTurmasCursoAux", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetTurmasCursoAux") |
@ResponseWrapper(localName = "getTurmasCursoAuxResponse", targetNamespace = "http://www.ipportalegre.pt/siges/web/services", className = "pt.ipportalegre.siges.web.services.GetTurmasCursoAuxResponse") |
public ArrayOfTurma getTurmasCursoAux( |
@WebParam(name = "cdCurso", targetNamespace = "http://www.ipportalegre.pt/siges/web/services") |
String cdCurso); |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/ObjectFactory.java |
---|
30,35 → 30,35 |
} |
/** |
* Create an instance of {@link ArrayOfNota } |
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestreDiscipAux } |
* |
*/ |
public ArrayOfNota createArrayOfNota() { |
return new ArrayOfNota(); |
public GetDisciplinasDaInstituicaoSemestreDiscipAux createGetDisciplinasDaInstituicaoSemestreDiscipAux() { |
return new GetDisciplinasDaInstituicaoSemestreDiscipAux(); |
} |
/** |
* Create an instance of {@link Aluno } |
* Create an instance of {@link GetAlunoInscritoResponse } |
* |
*/ |
public Aluno createAluno() { |
return new Aluno(); |
public GetAlunoInscritoResponse createGetAlunoInscritoResponse() { |
return new GetAlunoInscritoResponse(); |
} |
/** |
* Create an instance of {@link SendSmsSeparatedWithComma } |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoResponse } |
* |
*/ |
public SendSmsSeparatedWithComma createSendSmsSeparatedWithComma() { |
return new SendSmsSeparatedWithComma(); |
public GetCodigosDisciplinasDaInstituicaoResponse createGetCodigosDisciplinasDaInstituicaoResponse() { |
return new GetCodigosDisciplinasDaInstituicaoResponse(); |
} |
/** |
* Create an instance of {@link Aula } |
* Create an instance of {@link GetAulasResponse } |
* |
*/ |
public Aula createAula() { |
return new Aula(); |
public GetAulasResponse createGetAulasResponse() { |
return new GetAulasResponse(); |
} |
/** |
70,254 → 70,270 |
} |
/** |
* Create an instance of {@link GetDocente } |
* Create an instance of {@link GetAlunoInscrito } |
* |
*/ |
public GetDocente createGetDocente() { |
return new GetDocente(); |
public GetAlunoInscrito createGetAlunoInscrito() { |
return new GetAlunoInscrito(); |
} |
/** |
* Create an instance of {@link AddAlunoLdapResponse } |
* Create an instance of {@link Inscricao } |
* |
*/ |
public AddAlunoLdapResponse createAddAlunoLdapResponse() { |
return new AddAlunoLdapResponse(); |
public Inscricao createInscricao() { |
return new Inscricao(); |
} |
/** |
* Create an instance of {@link SendSmsSeparatedWithCommaResponse } |
* Create an instance of {@link SendSmsSResponse } |
* |
*/ |
public SendSmsSeparatedWithCommaResponse createSendSmsSeparatedWithCommaResponse() { |
return new SendSmsSeparatedWithCommaResponse(); |
public SendSmsSResponse createSendSmsSResponse() { |
return new SendSmsSResponse(); |
} |
/** |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestre } |
* Create an instance of {@link GetTurmasCursoAux } |
* |
*/ |
public GetCodigosDisciplinasDaInstituicaoSemestre createGetCodigosDisciplinasDaInstituicaoSemestre() { |
return new GetCodigosDisciplinasDaInstituicaoSemestre(); |
public GetTurmasCursoAux createGetTurmasCursoAux() { |
return new GetTurmasCursoAux(); |
} |
/** |
* Create an instance of {@link Docente } |
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicao } |
* |
*/ |
public Docente createDocente() { |
return new Docente(); |
public GetCodigosAlunosInscritosDaInstituicao createGetCodigosAlunosInscritosDaInstituicao() { |
return new GetCodigosAlunosInscritosDaInstituicao(); |
} |
/** |
* Create an instance of {@link GetAulas } |
* Create an instance of {@link ArrayOfAula } |
* |
*/ |
public GetAulas createGetAulas() { |
return new GetAulas(); |
public ArrayOfAula createArrayOfAula() { |
return new ArrayOfAula(); |
} |
/** |
* Create an instance of {@link SendSms } |
* Create an instance of {@link AddAlunoLdap } |
* |
*/ |
public SendSms createSendSms() { |
return new SendSms(); |
public AddAlunoLdap createAddAlunoLdap() { |
return new AddAlunoLdap(); |
} |
/** |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicao } |
* Create an instance of {@link GetSumarios } |
* |
*/ |
public GetCodigosDisciplinasDaInstituicao createGetCodigosDisciplinasDaInstituicao() { |
return new GetCodigosDisciplinasDaInstituicao(); |
public GetSumarios createGetSumarios() { |
return new GetSumarios(); |
} |
/** |
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestre } |
* Create an instance of {@link GetInscricoesDisciplinaAuxResponse } |
* |
*/ |
public GetDisciplinasDaInstituicaoSemestre createGetDisciplinasDaInstituicaoSemestre() { |
return new GetDisciplinasDaInstituicaoSemestre(); |
public GetInscricoesDisciplinaAuxResponse createGetInscricoesDisciplinaAuxResponse() { |
return new GetInscricoesDisciplinaAuxResponse(); |
} |
/** |
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicaoResponse } |
* Create an instance of {@link ArrayOfAlunoHistorico } |
* |
*/ |
public GetCodigosAlunosInscritosDaInstituicaoResponse createGetCodigosAlunosInscritosDaInstituicaoResponse() { |
return new GetCodigosAlunosInscritosDaInstituicaoResponse(); |
public ArrayOfAlunoHistorico createArrayOfAlunoHistorico() { |
return new ArrayOfAlunoHistorico(); |
} |
/** |
* Create an instance of {@link GetAlunoInscrito } |
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicaoResponse } |
* |
*/ |
public GetAlunoInscrito createGetAlunoInscrito() { |
return new GetAlunoInscrito(); |
public GetCodigosDocentesInscritosDaInstituicaoResponse createGetCodigosDocentesInscritosDaInstituicaoResponse() { |
return new GetCodigosDocentesInscritosDaInstituicaoResponse(); |
} |
/** |
* Create an instance of {@link ArrayOfAlunoHistorico } |
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestreDiscipAuxResponse } |
* |
*/ |
public ArrayOfAlunoHistorico createArrayOfAlunoHistorico() { |
return new ArrayOfAlunoHistorico(); |
public GetDisciplinasDaInstituicaoSemestreDiscipAuxResponse createGetDisciplinasDaInstituicaoSemestreDiscipAuxResponse() { |
return new GetDisciplinasDaInstituicaoSemestreDiscipAuxResponse(); |
} |
/** |
* Create an instance of {@link GetDisciplinasDaInstituicaoResponse } |
* Create an instance of {@link GetDocente } |
* |
*/ |
public GetDisciplinasDaInstituicaoResponse createGetDisciplinasDaInstituicaoResponse() { |
return new GetDisciplinasDaInstituicaoResponse(); |
public GetDocente createGetDocente() { |
return new GetDocente(); |
} |
/** |
* Create an instance of {@link SendSmsSResponse } |
* Create an instance of {@link GetTurmasCursoAuxResponse } |
* |
*/ |
public SendSmsSResponse createSendSmsSResponse() { |
return new SendSmsSResponse(); |
public GetTurmasCursoAuxResponse createGetTurmasCursoAuxResponse() { |
return new GetTurmasCursoAuxResponse(); |
} |
/** |
* Create an instance of {@link AddAlunoLdap } |
* Create an instance of {@link ArrayOfNota } |
* |
*/ |
public AddAlunoLdap createAddAlunoLdap() { |
return new AddAlunoLdap(); |
public ArrayOfNota createArrayOfNota() { |
return new ArrayOfNota(); |
} |
/** |
* Create an instance of {@link GetSumarios } |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicao } |
* |
*/ |
public GetSumarios createGetSumarios() { |
return new GetSumarios(); |
public GetCodigosDisciplinasDaInstituicao createGetCodigosDisciplinasDaInstituicao() { |
return new GetCodigosDisciplinasDaInstituicao(); |
} |
/** |
* Create an instance of {@link GetAulasResponse } |
* Create an instance of {@link SendSmsResponse } |
* |
*/ |
public GetAulasResponse createGetAulasResponse() { |
return new GetAulasResponse(); |
public SendSmsResponse createSendSmsResponse() { |
return new SendSmsResponse(); |
} |
/** |
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicaoResponse } |
* Create an instance of {@link Disciplina } |
* |
*/ |
public GetCodigosDocentesInscritosDaInstituicaoResponse createGetCodigosDocentesInscritosDaInstituicaoResponse() { |
return new GetCodigosDocentesInscritosDaInstituicaoResponse(); |
public Disciplina createDisciplina() { |
return new Disciplina(); |
} |
/** |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoResponse } |
* Create an instance of {@link LoadParesTurmaCursoResponse } |
* |
*/ |
public GetCodigosDisciplinasDaInstituicaoResponse createGetCodigosDisciplinasDaInstituicaoResponse() { |
return new GetCodigosDisciplinasDaInstituicaoResponse(); |
public LoadParesTurmaCursoResponse createLoadParesTurmaCursoResponse() { |
return new LoadParesTurmaCursoResponse(); |
} |
/** |
* Create an instance of {@link GetNotasResponse } |
* Create an instance of {@link GetAulas } |
* |
*/ |
public GetNotasResponse createGetNotasResponse() { |
return new GetNotasResponse(); |
public GetAulas createGetAulas() { |
return new GetAulas(); |
} |
/** |
* Create an instance of {@link ArrayOfDecimal } |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestre } |
* |
*/ |
public ArrayOfDecimal createArrayOfDecimal() { |
return new ArrayOfDecimal(); |
public GetCodigosDisciplinasDaInstituicaoSemestre createGetCodigosDisciplinasDaInstituicaoSemestre() { |
return new GetCodigosDisciplinasDaInstituicaoSemestre(); |
} |
/** |
* Create an instance of {@link GetAlunoInscritoResponse } |
* Create an instance of {@link ArrayOfTurma } |
* |
*/ |
public GetAlunoInscritoResponse createGetAlunoInscritoResponse() { |
return new GetAlunoInscritoResponse(); |
public ArrayOfTurma createArrayOfTurma() { |
return new ArrayOfTurma(); |
} |
/** |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestreResponse } |
* Create an instance of {@link GetInscricoesAuxResponse } |
* |
*/ |
public GetCodigosDisciplinasDaInstituicaoSemestreResponse createGetCodigosDisciplinasDaInstituicaoSemestreResponse() { |
return new GetCodigosDisciplinasDaInstituicaoSemestreResponse(); |
public GetInscricoesAuxResponse createGetInscricoesAuxResponse() { |
return new GetInscricoesAuxResponse(); |
} |
/** |
* Create an instance of {@link GetDocenteResponse } |
* Create an instance of {@link GetDisciplinasDaInstituicaoResponse } |
* |
*/ |
public GetDocenteResponse createGetDocenteResponse() { |
return new GetDocenteResponse(); |
public GetDisciplinasDaInstituicaoResponse createGetDisciplinasDaInstituicaoResponse() { |
return new GetDisciplinasDaInstituicaoResponse(); |
} |
/** |
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicao } |
* Create an instance of {@link GetInscricoesAux } |
* |
*/ |
public GetCodigosAlunosInscritosDaInstituicao createGetCodigosAlunosInscritosDaInstituicao() { |
return new GetCodigosAlunosInscritosDaInstituicao(); |
public GetInscricoesAux createGetInscricoesAux() { |
return new GetInscricoesAux(); |
} |
/** |
* Create an instance of {@link SendSmsS } |
* Create an instance of {@link GetTurmasAux } |
* |
*/ |
public SendSmsS createSendSmsS() { |
return new SendSmsS(); |
public GetTurmasAux createGetTurmasAux() { |
return new GetTurmasAux(); |
} |
/** |
* Create an instance of {@link ArrayOfAula } |
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestreResponse } |
* |
*/ |
public ArrayOfAula createArrayOfAula() { |
return new ArrayOfAula(); |
public GetDisciplinasDaInstituicaoSemestreResponse createGetDisciplinasDaInstituicaoSemestreResponse() { |
return new GetDisciplinasDaInstituicaoSemestreResponse(); |
} |
/** |
* Create an instance of {@link Disciplina } |
* Create an instance of {@link ArrayOfTurmaCurso } |
* |
*/ |
public Disciplina createDisciplina() { |
return new Disciplina(); |
public ArrayOfTurmaCurso createArrayOfTurmaCurso() { |
return new ArrayOfTurmaCurso(); |
} |
/** |
* Create an instance of {@link AlunoHistorico } |
* Create an instance of {@link GetCodigosDisciplinasDaInstituicaoSemestreResponse } |
* |
*/ |
public AlunoHistorico createAlunoHistorico() { |
return new AlunoHistorico(); |
public GetCodigosDisciplinasDaInstituicaoSemestreResponse createGetCodigosDisciplinasDaInstituicaoSemestreResponse() { |
return new GetCodigosDisciplinasDaInstituicaoSemestreResponse(); |
} |
/** |
* Create an instance of {@link Nota } |
* Create an instance of {@link Aula } |
* |
*/ |
public Nota createNota() { |
return new Nota(); |
public Aula createAula() { |
return new Aula(); |
} |
/** |
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestreResponse } |
* Create an instance of {@link Docente } |
* |
*/ |
public GetDisciplinasDaInstituicaoSemestreResponse createGetDisciplinasDaInstituicaoSemestreResponse() { |
return new GetDisciplinasDaInstituicaoSemestreResponse(); |
public Docente createDocente() { |
return new Docente(); |
} |
/** |
* Create an instance of {@link SendSmsSeparatedWithCommaResponse } |
* |
*/ |
public SendSmsSeparatedWithCommaResponse createSendSmsSeparatedWithCommaResponse() { |
return new SendSmsSeparatedWithCommaResponse(); |
} |
/** |
* Create an instance of {@link ArrayOfDisciplina } |
* |
*/ |
public ArrayOfDisciplina createArrayOfDisciplina() { |
return new ArrayOfDisciplina(); |
} |
/** |
* Create an instance of {@link GetDisciplinasDaInstituicao } |
* |
*/ |
326,30 → 342,62 |
} |
/** |
* Create an instance of {@link SendSmsResponse } |
* Create an instance of {@link TurmaCurso } |
* |
*/ |
public SendSmsResponse createSendSmsResponse() { |
return new SendSmsResponse(); |
public TurmaCurso createTurmaCurso() { |
return new TurmaCurso(); |
} |
/** |
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicao } |
* Create an instance of {@link GetDisciplinasDaInstituicaoSemestre } |
* |
*/ |
public GetCodigosDocentesInscritosDaInstituicao createGetCodigosDocentesInscritosDaInstituicao() { |
return new GetCodigosDocentesInscritosDaInstituicao(); |
public GetDisciplinasDaInstituicaoSemestre createGetDisciplinasDaInstituicaoSemestre() { |
return new GetDisciplinasDaInstituicaoSemestre(); |
} |
/** |
* Create an instance of {@link ArrayOfDisciplina } |
* Create an instance of {@link GetDocenteResponse } |
* |
*/ |
public ArrayOfDisciplina createArrayOfDisciplina() { |
return new ArrayOfDisciplina(); |
public GetDocenteResponse createGetDocenteResponse() { |
return new GetDocenteResponse(); |
} |
/** |
* Create an instance of {@link GetNotasResponse } |
* |
*/ |
public GetNotasResponse createGetNotasResponse() { |
return new GetNotasResponse(); |
} |
/** |
* Create an instance of {@link AlunoHistorico } |
* |
*/ |
public AlunoHistorico createAlunoHistorico() { |
return new AlunoHistorico(); |
} |
/** |
* Create an instance of {@link ArrayOfInscricao } |
* |
*/ |
public ArrayOfInscricao createArrayOfInscricao() { |
return new ArrayOfInscricao(); |
} |
/** |
* Create an instance of {@link Nota } |
* |
*/ |
public Nota createNota() { |
return new Nota(); |
} |
/** |
* Create an instance of {@link ArrayOfString } |
* |
*/ |
358,6 → 406,22 |
} |
/** |
* Create an instance of {@link GetCodigosDocentesInscritosDaInstituicao } |
* |
*/ |
public GetCodigosDocentesInscritosDaInstituicao createGetCodigosDocentesInscritosDaInstituicao() { |
return new GetCodigosDocentesInscritosDaInstituicao(); |
} |
/** |
* Create an instance of {@link Turma } |
* |
*/ |
public Turma createTurma() { |
return new Turma(); |
} |
/** |
* Create an instance of {@link GetSumariosResponse } |
* |
*/ |
365,4 → 429,84 |
return new GetSumariosResponse(); |
} |
/** |
* Create an instance of {@link LoadParesTurmaCurso } |
* |
*/ |
public LoadParesTurmaCurso createLoadParesTurmaCurso() { |
return new LoadParesTurmaCurso(); |
} |
/** |
* Create an instance of {@link Aluno } |
* |
*/ |
public Aluno createAluno() { |
return new Aluno(); |
} |
/** |
* Create an instance of {@link GetCodigosAlunosInscritosDaInstituicaoResponse } |
* |
*/ |
public GetCodigosAlunosInscritosDaInstituicaoResponse createGetCodigosAlunosInscritosDaInstituicaoResponse() { |
return new GetCodigosAlunosInscritosDaInstituicaoResponse(); |
} |
/** |
* Create an instance of {@link AddAlunoLdapResponse } |
* |
*/ |
public AddAlunoLdapResponse createAddAlunoLdapResponse() { |
return new AddAlunoLdapResponse(); |
} |
/** |
* Create an instance of {@link ArrayOfDecimal } |
* |
*/ |
public ArrayOfDecimal createArrayOfDecimal() { |
return new ArrayOfDecimal(); |
} |
/** |
* Create an instance of {@link GetTurmasAuxResponse } |
* |
*/ |
public GetTurmasAuxResponse createGetTurmasAuxResponse() { |
return new GetTurmasAuxResponse(); |
} |
/** |
* Create an instance of {@link GetInscricoesDisciplinaAux } |
* |
*/ |
public GetInscricoesDisciplinaAux createGetInscricoesDisciplinaAux() { |
return new GetInscricoesDisciplinaAux(); |
} |
/** |
* Create an instance of {@link SendSmsS } |
* |
*/ |
public SendSmsS createSendSmsS() { |
return new SendSmsS(); |
} |
/** |
* Create an instance of {@link SendSms } |
* |
*/ |
public SendSms createSendSms() { |
return new SendSms(); |
} |
/** |
* Create an instance of {@link SendSmsSeparatedWithComma } |
* |
*/ |
public SendSmsSeparatedWithComma createSendSmsSeparatedWithComma() { |
return new SendSmsSeparatedWithComma(); |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/LoadParesTurmaCurso.java |
---|
New file |
0,0 → 1,119 |
package pt.ipportalegre.siges.web.services; |
import java.math.BigDecimal; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="codigoInstituicao" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="cdLectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="cdDuracao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"codigoInstituicao", |
"cdLectivo", |
"cdDuracao" |
}) |
@XmlRootElement(name = "loadParesTurmaCurso") |
public class LoadParesTurmaCurso { |
@XmlElement(required = true) |
protected BigDecimal codigoInstituicao; |
protected String cdLectivo; |
protected String cdDuracao; |
/** |
* Gets the value of the codigoInstituicao property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCodigoInstituicao() { |
return codigoInstituicao; |
} |
/** |
* Sets the value of the codigoInstituicao property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCodigoInstituicao(BigDecimal value) { |
this.codigoInstituicao = value; |
} |
/** |
* Gets the value of the cdLectivo property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdLectivo() { |
return cdLectivo; |
} |
/** |
* Sets the value of the cdLectivo property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdLectivo(String value) { |
this.cdLectivo = value; |
} |
/** |
* Gets the value of the cdDuracao property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdDuracao() { |
return cdDuracao; |
} |
/** |
* Sets the value of the cdDuracao property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdDuracao(String value) { |
this.cdDuracao = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/TurmaCurso.java |
---|
New file |
0,0 → 1,144 |
package pt.ipportalegre.siges.web.services; |
import java.math.BigDecimal; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for TurmaCurso complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType name="TurmaCurso"> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="cdLectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="cdDuracao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="codigoCurso" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="cdTurma" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "TurmaCurso", propOrder = { |
"cdLectivo", |
"cdDuracao", |
"codigoCurso", |
"cdTurma" |
}) |
public class TurmaCurso { |
protected String cdLectivo; |
protected String cdDuracao; |
@XmlElement(required = true) |
protected BigDecimal codigoCurso; |
protected String cdTurma; |
/** |
* Gets the value of the cdLectivo property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdLectivo() { |
return cdLectivo; |
} |
/** |
* Sets the value of the cdLectivo property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdLectivo(String value) { |
this.cdLectivo = value; |
} |
/** |
* Gets the value of the cdDuracao property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdDuracao() { |
return cdDuracao; |
} |
/** |
* Sets the value of the cdDuracao property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdDuracao(String value) { |
this.cdDuracao = value; |
} |
/** |
* Gets the value of the codigoCurso property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCodigoCurso() { |
return codigoCurso; |
} |
/** |
* Sets the value of the codigoCurso property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCodigoCurso(BigDecimal value) { |
this.codigoCurso = value; |
} |
/** |
* Gets the value of the cdTurma property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdTurma() { |
return cdTurma; |
} |
/** |
* Sets the value of the cdTurma property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdTurma(String value) { |
this.cdTurma = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/Inscricao.java |
---|
New file |
0,0 → 1,399 |
package pt.ipportalegre.siges.web.services; |
import java.math.BigDecimal; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for Inscricao complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType name="Inscricao"> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="CD_LECTIVO" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="CD_CURSO" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_ALUNO" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_DISCIP" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_DURACAO" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="CD_STATUS" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_CUR_DIS" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_TIP_INS" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_TIPDIS" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="CD_TIPO_ORIGEM" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="CD_TURMA_T" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="CD_TURMA_P" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="CD_TURMA_L" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "Inscricao", propOrder = { |
"cdlectivo", |
"cdcurso", |
"cdaluno", |
"cddiscip", |
"cdduracao", |
"cdstatus", |
"cdcurdis", |
"cdtipins", |
"cdtipdis", |
"cdtipoorigem", |
"cdturmat", |
"cdturmap", |
"cdturmal" |
}) |
public class Inscricao { |
@XmlElement(name = "CD_LECTIVO") |
protected String cdlectivo; |
@XmlElement(name = "CD_CURSO", required = true) |
protected BigDecimal cdcurso; |
@XmlElement(name = "CD_ALUNO", required = true) |
protected BigDecimal cdaluno; |
@XmlElement(name = "CD_DISCIP", required = true) |
protected BigDecimal cddiscip; |
@XmlElement(name = "CD_DURACAO") |
protected String cdduracao; |
@XmlElement(name = "CD_STATUS", required = true) |
protected BigDecimal cdstatus; |
@XmlElement(name = "CD_CUR_DIS", required = true) |
protected BigDecimal cdcurdis; |
@XmlElement(name = "CD_TIP_INS", required = true) |
protected BigDecimal cdtipins; |
@XmlElement(name = "CD_TIPDIS", required = true) |
protected BigDecimal cdtipdis; |
@XmlElement(name = "CD_TIPO_ORIGEM") |
protected String cdtipoorigem; |
@XmlElement(name = "CD_TURMA_T") |
protected String cdturmat; |
@XmlElement(name = "CD_TURMA_P") |
protected String cdturmap; |
@XmlElement(name = "CD_TURMA_L") |
protected String cdturmal; |
/** |
* Gets the value of the cdlectivo property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCDLECTIVO() { |
return cdlectivo; |
} |
/** |
* Sets the value of the cdlectivo property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCDLECTIVO(String value) { |
this.cdlectivo = value; |
} |
/** |
* Gets the value of the cdcurso property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDCURSO() { |
return cdcurso; |
} |
/** |
* Sets the value of the cdcurso property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDCURSO(BigDecimal value) { |
this.cdcurso = value; |
} |
/** |
* Gets the value of the cdaluno property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDALUNO() { |
return cdaluno; |
} |
/** |
* Sets the value of the cdaluno property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDALUNO(BigDecimal value) { |
this.cdaluno = value; |
} |
/** |
* Gets the value of the cddiscip property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDDISCIP() { |
return cddiscip; |
} |
/** |
* Sets the value of the cddiscip property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDDISCIP(BigDecimal value) { |
this.cddiscip = value; |
} |
/** |
* Gets the value of the cdduracao property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCDDURACAO() { |
return cdduracao; |
} |
/** |
* Sets the value of the cdduracao property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCDDURACAO(String value) { |
this.cdduracao = value; |
} |
/** |
* Gets the value of the cdstatus property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDSTATUS() { |
return cdstatus; |
} |
/** |
* Sets the value of the cdstatus property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDSTATUS(BigDecimal value) { |
this.cdstatus = value; |
} |
/** |
* Gets the value of the cdcurdis property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDCURDIS() { |
return cdcurdis; |
} |
/** |
* Sets the value of the cdcurdis property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDCURDIS(BigDecimal value) { |
this.cdcurdis = value; |
} |
/** |
* Gets the value of the cdtipins property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDTIPINS() { |
return cdtipins; |
} |
/** |
* Sets the value of the cdtipins property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDTIPINS(BigDecimal value) { |
this.cdtipins = value; |
} |
/** |
* Gets the value of the cdtipdis property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCDTIPDIS() { |
return cdtipdis; |
} |
/** |
* Sets the value of the cdtipdis property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCDTIPDIS(BigDecimal value) { |
this.cdtipdis = value; |
} |
/** |
* Gets the value of the cdtipoorigem property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCDTIPOORIGEM() { |
return cdtipoorigem; |
} |
/** |
* Sets the value of the cdtipoorigem property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCDTIPOORIGEM(String value) { |
this.cdtipoorigem = value; |
} |
/** |
* Gets the value of the cdturmat property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCDTURMAT() { |
return cdturmat; |
} |
/** |
* Sets the value of the cdturmat property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCDTURMAT(String value) { |
this.cdturmat = value; |
} |
/** |
* Gets the value of the cdturmap property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCDTURMAP() { |
return cdturmap; |
} |
/** |
* Sets the value of the cdturmap property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCDTURMAP(String value) { |
this.cdturmap = value; |
} |
/** |
* Gets the value of the cdturmal property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCDTURMAL() { |
return cdturmal; |
} |
/** |
* Sets the value of the cdturmal property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCDTURMAL(String value) { |
this.cdturmal = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/LoadParesTurmaCursoResponse.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="loadParesTurmaCursoResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfTurmaCurso" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"loadParesTurmaCursoResult" |
}) |
@XmlRootElement(name = "loadParesTurmaCursoResponse") |
public class LoadParesTurmaCursoResponse { |
protected ArrayOfTurmaCurso loadParesTurmaCursoResult; |
/** |
* Gets the value of the loadParesTurmaCursoResult property. |
* |
* @return |
* possible object is |
* {@link ArrayOfTurmaCurso } |
* |
*/ |
public ArrayOfTurmaCurso getLoadParesTurmaCursoResult() { |
return loadParesTurmaCursoResult; |
} |
/** |
* Sets the value of the loadParesTurmaCursoResult property. |
* |
* @param value |
* allowed object is |
* {@link ArrayOfTurmaCurso } |
* |
*/ |
public void setLoadParesTurmaCursoResult(ArrayOfTurmaCurso value) { |
this.loadParesTurmaCursoResult = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetInscricoesDisciplinaAux.java |
---|
New file |
0,0 → 1,89 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="cdDiscip" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="cdLectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"cdDiscip", |
"cdLectivo" |
}) |
@XmlRootElement(name = "getInscricoesDisciplinaAux") |
public class GetInscricoesDisciplinaAux { |
protected String cdDiscip; |
protected String cdLectivo; |
/** |
* Gets the value of the cdDiscip property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdDiscip() { |
return cdDiscip; |
} |
/** |
* Sets the value of the cdDiscip property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdDiscip(String value) { |
this.cdDiscip = value; |
} |
/** |
* Gets the value of the cdLectivo property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdLectivo() { |
return cdLectivo; |
} |
/** |
* Sets the value of the cdLectivo property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdLectivo(String value) { |
this.cdLectivo = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetInscricoesAux.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="cdAluno" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"cdAluno" |
}) |
@XmlRootElement(name = "getInscricoesAux") |
public class GetInscricoesAux { |
protected String cdAluno; |
/** |
* Gets the value of the cdAluno property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdAluno() { |
return cdAluno; |
} |
/** |
* Sets the value of the cdAluno property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdAluno(String value) { |
this.cdAluno = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/Turma.java |
---|
New file |
0,0 → 1,227 |
package pt.ipportalegre.siges.web.services; |
import java.math.BigDecimal; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for Turma complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType name="Turma"> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="codigoTurma" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="cdLectivo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="codigoCurso" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="cdDuracao" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="cdTurma" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* <element name="cdDisciplina" type="{http://www.w3.org/2001/XMLSchema}decimal"/> |
* <element name="turmaUnica" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "Turma", propOrder = { |
"codigoTurma", |
"cdLectivo", |
"codigoCurso", |
"cdDuracao", |
"cdTurma", |
"cdDisciplina", |
"turmaUnica" |
}) |
public class Turma { |
@XmlElement(required = true) |
protected BigDecimal codigoTurma; |
protected String cdLectivo; |
@XmlElement(required = true) |
protected BigDecimal codigoCurso; |
protected String cdDuracao; |
protected String cdTurma; |
@XmlElement(required = true) |
protected BigDecimal cdDisciplina; |
protected String turmaUnica; |
/** |
* Gets the value of the codigoTurma property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCodigoTurma() { |
return codigoTurma; |
} |
/** |
* Sets the value of the codigoTurma property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCodigoTurma(BigDecimal value) { |
this.codigoTurma = value; |
} |
/** |
* Gets the value of the cdLectivo property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdLectivo() { |
return cdLectivo; |
} |
/** |
* Sets the value of the cdLectivo property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdLectivo(String value) { |
this.cdLectivo = value; |
} |
/** |
* Gets the value of the codigoCurso property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCodigoCurso() { |
return codigoCurso; |
} |
/** |
* Sets the value of the codigoCurso property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCodigoCurso(BigDecimal value) { |
this.codigoCurso = value; |
} |
/** |
* Gets the value of the cdDuracao property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdDuracao() { |
return cdDuracao; |
} |
/** |
* Sets the value of the cdDuracao property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdDuracao(String value) { |
this.cdDuracao = value; |
} |
/** |
* Gets the value of the cdTurma property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdTurma() { |
return cdTurma; |
} |
/** |
* Sets the value of the cdTurma property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdTurma(String value) { |
this.cdTurma = value; |
} |
/** |
* Gets the value of the cdDisciplina property. |
* |
* @return |
* possible object is |
* {@link BigDecimal } |
* |
*/ |
public BigDecimal getCdDisciplina() { |
return cdDisciplina; |
} |
/** |
* Sets the value of the cdDisciplina property. |
* |
* @param value |
* allowed object is |
* {@link BigDecimal } |
* |
*/ |
public void setCdDisciplina(BigDecimal value) { |
this.cdDisciplina = value; |
} |
/** |
* Gets the value of the turmaUnica property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getTurmaUnica() { |
return turmaUnica; |
} |
/** |
* Sets the value of the turmaUnica property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setTurmaUnica(String value) { |
this.turmaUnica = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetInscricoesAuxResponse.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="getInscricoesAuxResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfInscricao" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"getInscricoesAuxResult" |
}) |
@XmlRootElement(name = "getInscricoesAuxResponse") |
public class GetInscricoesAuxResponse { |
protected ArrayOfInscricao getInscricoesAuxResult; |
/** |
* Gets the value of the getInscricoesAuxResult property. |
* |
* @return |
* possible object is |
* {@link ArrayOfInscricao } |
* |
*/ |
public ArrayOfInscricao getGetInscricoesAuxResult() { |
return getInscricoesAuxResult; |
} |
/** |
* Sets the value of the getInscricoesAuxResult property. |
* |
* @param value |
* allowed object is |
* {@link ArrayOfInscricao } |
* |
*/ |
public void setGetInscricoesAuxResult(ArrayOfInscricao value) { |
this.getInscricoesAuxResult = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetInscricoesDisciplinaAuxResponse.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="getInscricoesDisciplinaAuxResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfInscricao" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"getInscricoesDisciplinaAuxResult" |
}) |
@XmlRootElement(name = "getInscricoesDisciplinaAuxResponse") |
public class GetInscricoesDisciplinaAuxResponse { |
protected ArrayOfInscricao getInscricoesDisciplinaAuxResult; |
/** |
* Gets the value of the getInscricoesDisciplinaAuxResult property. |
* |
* @return |
* possible object is |
* {@link ArrayOfInscricao } |
* |
*/ |
public ArrayOfInscricao getGetInscricoesDisciplinaAuxResult() { |
return getInscricoesDisciplinaAuxResult; |
} |
/** |
* Sets the value of the getInscricoesDisciplinaAuxResult property. |
* |
* @param value |
* allowed object is |
* {@link ArrayOfInscricao } |
* |
*/ |
public void setGetInscricoesDisciplinaAuxResult(ArrayOfInscricao value) { |
this.getInscricoesDisciplinaAuxResult = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetDisciplinasDaInstituicaoSemestreDiscipAux.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="codigoDiscip" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"codigoDiscip" |
}) |
@XmlRootElement(name = "getDisciplinasDaInstituicaoSemestreDiscipAux") |
public class GetDisciplinasDaInstituicaoSemestreDiscipAux { |
protected String codigoDiscip; |
/** |
* Gets the value of the codigoDiscip property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCodigoDiscip() { |
return codigoDiscip; |
} |
/** |
* Sets the value of the codigoDiscip property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCodigoDiscip(String value) { |
this.codigoDiscip = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetTurmasCursoAux.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="cdCurso" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"cdCurso" |
}) |
@XmlRootElement(name = "getTurmasCursoAux") |
public class GetTurmasCursoAux { |
protected String cdCurso; |
/** |
* Gets the value of the cdCurso property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdCurso() { |
return cdCurso; |
} |
/** |
* Sets the value of the cdCurso property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdCurso(String value) { |
this.cdCurso = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetDisciplinasDaInstituicaoSemestreDiscipAuxResponse.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="getDisciplinasDaInstituicaoSemestreDiscipAuxResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfDisciplina" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"getDisciplinasDaInstituicaoSemestreDiscipAuxResult" |
}) |
@XmlRootElement(name = "getDisciplinasDaInstituicaoSemestreDiscipAuxResponse") |
public class GetDisciplinasDaInstituicaoSemestreDiscipAuxResponse { |
protected ArrayOfDisciplina getDisciplinasDaInstituicaoSemestreDiscipAuxResult; |
/** |
* Gets the value of the getDisciplinasDaInstituicaoSemestreDiscipAuxResult property. |
* |
* @return |
* possible object is |
* {@link ArrayOfDisciplina } |
* |
*/ |
public ArrayOfDisciplina getGetDisciplinasDaInstituicaoSemestreDiscipAuxResult() { |
return getDisciplinasDaInstituicaoSemestreDiscipAuxResult; |
} |
/** |
* Sets the value of the getDisciplinasDaInstituicaoSemestreDiscipAuxResult property. |
* |
* @param value |
* allowed object is |
* {@link ArrayOfDisciplina } |
* |
*/ |
public void setGetDisciplinasDaInstituicaoSemestreDiscipAuxResult(ArrayOfDisciplina value) { |
this.getDisciplinasDaInstituicaoSemestreDiscipAuxResult = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetTurmasCursoAuxResponse.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="getTurmasCursoAuxResult" type="{http://www.ipportalegre.pt/siges/web/services}ArrayOfTurma" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"getTurmasCursoAuxResult" |
}) |
@XmlRootElement(name = "getTurmasCursoAuxResponse") |
public class GetTurmasCursoAuxResponse { |
protected ArrayOfTurma getTurmasCursoAuxResult; |
/** |
* Gets the value of the getTurmasCursoAuxResult property. |
* |
* @return |
* possible object is |
* {@link ArrayOfTurma } |
* |
*/ |
public ArrayOfTurma getGetTurmasCursoAuxResult() { |
return getTurmasCursoAuxResult; |
} |
/** |
* Sets the value of the getTurmasCursoAuxResult property. |
* |
* @param value |
* allowed object is |
* {@link ArrayOfTurma } |
* |
*/ |
public void setGetTurmasCursoAuxResult(ArrayOfTurma value) { |
this.getTurmasCursoAuxResult = value; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/ArrayOfTurmaCurso.java |
---|
New file |
0,0 → 1,69 |
package pt.ipportalegre.siges.web.services; |
import java.util.ArrayList; |
import java.util.List; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for ArrayOfTurmaCurso complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType name="ArrayOfTurmaCurso"> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="TurmaCurso" type="{http://www.ipportalegre.pt/siges/web/services}TurmaCurso" maxOccurs="unbounded" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "ArrayOfTurmaCurso", propOrder = { |
"turmaCurso" |
}) |
public class ArrayOfTurmaCurso { |
@XmlElement(name = "TurmaCurso", nillable = true) |
protected List<TurmaCurso> turmaCurso; |
/** |
* Gets the value of the turmaCurso property. |
* |
* <p> |
* This accessor method returns a reference to the live list, |
* not a snapshot. Therefore any modification you make to the |
* returned list will be present inside the JAXB object. |
* This is why there is not a <CODE>set</CODE> method for the turmaCurso property. |
* |
* <p> |
* For example, to add a new item, do as follows: |
* <pre> |
* getTurmaCurso().add(newItem); |
* </pre> |
* |
* |
* <p> |
* Objects of the following type(s) are allowed in the list |
* {@link TurmaCurso } |
* |
* |
*/ |
public List<TurmaCurso> getTurmaCurso() { |
if (turmaCurso == null) { |
turmaCurso = new ArrayList<TurmaCurso>(); |
} |
return this.turmaCurso; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/ArrayOfInscricao.java |
---|
New file |
0,0 → 1,69 |
package pt.ipportalegre.siges.web.services; |
import java.util.ArrayList; |
import java.util.List; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for ArrayOfInscricao complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType name="ArrayOfInscricao"> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="Inscricao" type="{http://www.ipportalegre.pt/siges/web/services}Inscricao" maxOccurs="unbounded" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "ArrayOfInscricao", propOrder = { |
"inscricao" |
}) |
public class ArrayOfInscricao { |
@XmlElement(name = "Inscricao", nillable = true) |
protected List<Inscricao> inscricao; |
/** |
* Gets the value of the inscricao property. |
* |
* <p> |
* This accessor method returns a reference to the live list, |
* not a snapshot. Therefore any modification you make to the |
* returned list will be present inside the JAXB object. |
* This is why there is not a <CODE>set</CODE> method for the inscricao property. |
* |
* <p> |
* For example, to add a new item, do as follows: |
* <pre> |
* getInscricao().add(newItem); |
* </pre> |
* |
* |
* <p> |
* Objects of the following type(s) are allowed in the list |
* {@link Inscricao } |
* |
* |
*/ |
public List<Inscricao> getInscricao() { |
if (inscricao == null) { |
inscricao = new ArrayList<Inscricao>(); |
} |
return this.inscricao; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/ArrayOfTurma.java |
---|
New file |
0,0 → 1,69 |
package pt.ipportalegre.siges.web.services; |
import java.util.ArrayList; |
import java.util.List; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for ArrayOfTurma complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType name="ArrayOfTurma"> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="Turma" type="{http://www.ipportalegre.pt/siges/web/services}Turma" maxOccurs="unbounded" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "ArrayOfTurma", propOrder = { |
"turma" |
}) |
public class ArrayOfTurma { |
@XmlElement(name = "Turma", nillable = true) |
protected List<Turma> turma; |
/** |
* Gets the value of the turma property. |
* |
* <p> |
* This accessor method returns a reference to the live list, |
* not a snapshot. Therefore any modification you make to the |
* returned list will be present inside the JAXB object. |
* This is why there is not a <CODE>set</CODE> method for the turma property. |
* |
* <p> |
* For example, to add a new item, do as follows: |
* <pre> |
* getTurma().add(newItem); |
* </pre> |
* |
* |
* <p> |
* Objects of the following type(s) are allowed in the list |
* {@link Turma } |
* |
* |
*/ |
public List<Turma> getTurma() { |
if (turma == null) { |
turma = new ArrayList<Turma>(); |
} |
return this.turma; |
} |
} |
/impl/gen/java/pt/ipportalegre/siges/web/services/GetTurmasAux.java |
---|
New file |
0,0 → 1,62 |
package pt.ipportalegre.siges.web.services; |
import javax.xml.bind.annotation.XmlAccessType; |
import javax.xml.bind.annotation.XmlAccessorType; |
import javax.xml.bind.annotation.XmlRootElement; |
import javax.xml.bind.annotation.XmlType; |
/** |
* <p>Java class for anonymous complex type. |
* |
* <p>The following schema fragment specifies the expected content contained within this class. |
* |
* <pre> |
* <complexType> |
* <complexContent> |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> |
* <sequence> |
* <element name="cdTurma" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> |
* </sequence> |
* </restriction> |
* </complexContent> |
* </complexType> |
* </pre> |
* |
* |
*/ |
@XmlAccessorType(XmlAccessType.FIELD) |
@XmlType(name = "", propOrder = { |
"cdTurma" |
}) |
@XmlRootElement(name = "getTurmasAux") |
public class GetTurmasAux { |
protected String cdTurma; |
/** |
* Gets the value of the cdTurma property. |
* |
* @return |
* possible object is |
* {@link String } |
* |
*/ |
public String getCdTurma() { |
return cdTurma; |
} |
/** |
* Sets the value of the cdTurma property. |
* |
* @param value |
* allowed object is |
* {@link String } |
* |
*/ |
public void setCdTurma(String value) { |
this.cdTurma = value; |
} |
} |