/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"> |
/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} |
39,7 → 40,7 |
course.C=Acções de Formação de Curta Duração |
course.A=Formações Avançadas |
course.O=Outras Formações |
course.T=TeSP |
course.T=CTeSP |
course.D=Diploma de Estudos Superiores Especializados |
course.H=Doutoramento |
course.Z=Desconhecido |
100,3 → 101,11 |
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 |
course.comissions=Comissões de Curso |
course.list=Listagem de Cursos |
course.course.units=Listagem de Unidades Curriculares |
/impl/conf/language/MessageResources.properties |
---|
521,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 |
548,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 |
564,6 → 573,7 |
job.status.FAILED=Falhado |
job.status.UNKNOWN_ERROR=Erro Desconhecido |
close=Fechar |
602,3 → 612,5 |
/impl/conf/language/MessageResourcesCourseUnits.properties |
---|
11,6 → 11,7 |
course.nav.without.arrow={0} |
courseunit.security.not.implemented=N\u00e3o implementado por raz\u00f5es de seguran\u00e7a |
courseunit.removed=Unidade Removida com sucesso |
courseunit.cant.be.removed=N\u00e3o pode remover esta unidade |
courseunit.menu.unit.old.units=Anos anteriores |
courseunit.menu.unit.other.units=Outros Anos |
courseunit.menu.unit=Unidade |
183,16 → 184,21 |
courseunit.evaluation.mapa1.desc=Dados relativos ao processo de avalia\u00e7\u00e3o |
courseunit.menu.evaluation=Relat\u00f3rio de Avalia\u00e7\u00e3o |
courseunit.evaluation.success=Ficha de Avalia\u00e7\u00e3o alterada com sucesso |
courseunit.evaluation.tryagain=Ocorreu um problema a gravar o seu relat\u00f3rio. Por favor tente novamente |
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. |
courseunit.dossier.tecnico.pedagogico=Dossier T\u00E9cnico Pedag\u00F3gico |
courseunit.delete.administration=Apagar Unidades Curriculares Administra\u00e7\u00e3o |
courseunit.canDelete.true=Permitido |
courseunit.canDelete.false=Não Permitido |
/impl/conf/WEB-INF/struts/struts-courses.xml |
---|
86,8 → 86,18 |
<!-- |
Administração Conselho Pedagógico |
Atividade de entrada de inqueritos pedagogicos |
--> |
<action path="/user/coursePedagogicContents" forward="page.courses.pedagogic.contents"/> |
<action path="/user/courseComissions" forward="page.courses.comissions"/> |
<action path="/user/courseCourseUnits" forward="page.courses.courseunits"/> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
144,6 → 144,41 |
<forward name="edit" path="page.edit.courseunit.admin.from.service.zone"/> |
</action> |
<action path="/admin/courseUnitsDeleteAdmin" forward="page.courseunit.delete.admin"/> |
<action path="/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsAdminController" |
name="CourseUnitsForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.courseunit.delete.admin"> |
<forward name="delete" path="page.courseunit.delete.admin"/> |
</action> |
<action path="/user/startEditCourseUnitAdminFromUnitsDeleteAdministration" forward="/user/courseUnitControllerAdminFromUnitsDeleteAdministration.do?dispatch=edit&from=UnitsDeleteAdministration"/> |
<action path="/user/courseUnitControllerAdminFromUnitsDeleteAdministration" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsAdminController" |
name="CourseUnitsForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.courseunit.delete.admin"> |
<forward name="edit" path="page.edit.courseunit.admin.from.course.unit.delete"/> |
</action> |
<action path="/user/startEditCourseUnitAdminFromCourseCourseUnits" forward="/user/courseUnitControllerAdminFromCourseCourseUnits.do?dispatch=edit&from=CourseCourseUnits"/> |
<action path="/user/courseUnitControllerAdminFromCourseCourseUnits" |
type="pt.estgp.estgweb.web.controllers.courseunits.CourseUnitsAdminController" |
name="CourseUnitsForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.courses.courseunits"> |
<forward name="edit" path="page.edit.courseunit.admin.from.course.course.units"/> |
</action> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/tiles-courseunits.xml |
---|
177,7 → 177,28 |
<put name="left" value="/user/courseunits/menu.jsp"/> |
<put name="body" value="/user/courseunits/dossierTecnicoPedagogico.jsp"/> |
</definition> |
<!--Remocao de unidades curriculares--> |
<definition name="page.courseunit.delete.admin" extends="page.separators.home"> |
<put name="title" value="Apagar Unidades Curriculares Administração"/> |
<put name="topnav" value="/admin/courseunits/topnavCourseUnitDeleteAdministration.jsp"/> |
<put name="body" value="/admin/courseunits/courseUnitDeleteAdministration.jsp"/> |
</definition> |
<definition name="page.edit.courseunit.admin.from.course.unit.delete" extends="page.separators.home"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/admin/courseunits/topnavEditCourseUnitFromDelete.jsp"/> |
<put name="body" value="/admin/courseunits/courseunit.jsp"/> |
</definition> |
<definition name="page.edit.courseunit.admin.from.course.course.units" extends="page.separators.home"> |
<put name="title" value="Unidade Curricular"/> |
<put name="topnav" value="/admin/courseunits/topnavEditCourseUnitFromCourseCourseUnits.jsp"/> |
<put name="body" value="/admin/courseunits/courseunit.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/WEB-INF/struts/tiles-courses.xml |
---|
75,18 → 75,37 |
</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"/> |
</definition> |
<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> |
<definition name="page.courses.comissions" extends="page.separators.home"> |
<put name="title" value="Comissões de Curso"/> |
<put name="topnav" value="/admin/courses/topnavCourseComissions.jsp"/> |
<put name="body" value="/admin/courses/courseComissions.jsp"/> |
</definition> |
<definition name="page.courses.courseunits" extends="page.separators.home"> |
<put name="title" value="Listagem de Unidades"/> |
<put name="topnav" value="/admin/courses/topnavCourseCourseUnits.jsp"/> |
<put name="body" value="/admin/courses/courseCourseUnits.jsp"/> |
</definition> |
/impl/conf/WEB-INF/struts/tiles-intranet.xml |
---|
8,6 → 8,7 |
<tiles-definitions> |
<definition name="base.separators" extends="base.definition" path="/layout/layoutintranet.jsp"> |
<put name="separator" value="1" type="string"/> |
<put name="header" value="/layout/headerIntranet.jsp"/> |
<put name="navigationTop" value="/layout/topnavempty.jsp"/> |
<put name="left" value="/layout/topnavempty.jsp"/> |
/impl/conf/WEB-INF/struts/struts-default.xml |
---|
27,6 → 27,7 |
<forward name="error401" path="/error401.do"/> |
<forward name="error408" path="/error408.do"/> |
<forward name="errorNoCookies" path="page.no.cookies"/> |
<forward name="jsonOk" path="page.service.json.ok"/> |
<!--Announcements--> |
/impl/conf/WEB-INF/struts/tiles-default.xml |
---|
433,4 → 433,11 |
<put name="body" value="/errors/noCookies.jsp" /> |
</definition> |
<definition name="base.empty.json" path="/layout/emptyLayoutJson.jsp"> |
</definition> |
<definition name="page.service.json.ok" extends="base.empty.json"> |
<put name="body" value="/layout/jsonAutoSaveOk.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/app.properties |
---|
460,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 |
469,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 |
487,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@ |
536,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 |
686,8 → 693,8 |
################# |
# SIGES CODES |
# |
# SIGES CODES |
################# |
netpa.tipo.aula.1=Teorica |
netpa.tipo.aula.2=Teorico-pratica |
netpa.tipo.aula.3=Pratica Laboratorial |
696,3 → 703,11 |
netpa.tipo.aula.6=OT-Orientacao Tutorial |
netpa.tipo.aula.7=Ensino Clinico |
netpa.tipo.aula.8=Estagio HO |
################# |
#ORACLE IPP |
################# |
oracle.siges.url=@oracle.siges.url@ |
oracle.siges.username=@oracle.siges.username@ |
oracle.siges.password=@oracle.siges.password@ |
/impl/conf/berserk/sd.xml |
---|
813,7 → 813,7 |
</filterChains> |
</service> |
<service> |
<!--<service> |
<name>DeleteCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass> |
<description>Update course unit objectives and program file</description> |
824,7 → 824,7 |
<chain name="Session"/> |
<chain name="Supers"/> |
</filterChains> |
</service> |
</service>--> |
<service> |
<name>LoadCourseUnit</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass> |
2225,10 → 2225,52 |
</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> |
<service> |
<name>TryDeleteCourseUnitService</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>tryDelete</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
<service> |
<name>LoadCandidatesDeleteCourseUnitService</name> |
<implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass> |
<description></description> |
<isTransactional>true</isTransactional> |
<defaultMethod>loadDeleteCandidates</defaultMethod> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
<chain name="Admins"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/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/DeleteCourseUnitService.java |
---|
New file |
0,0 → 1,208 |
package pt.estgp.estgweb.services.courseunits; |
import jomm.dao.impl.AbstractDao; |
import org.apache.log4j.Logger; |
import org.hibernate.Query; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.util.ArrayList; |
import java.util.Iterator; |
import java.util.List; |
import java.util.Set; |
/** |
* Created by jorgemachado on 15/12/15. |
*/ |
public class DeleteCourseUnitService implements IService |
{ |
private static final Logger logger = Logger.getLogger(DeleteCourseUnitService.class); |
public static class CourseUnitContentsInfo |
{ |
public List<String> warnings = new ArrayList<String>(); |
public String messageResult = ""; |
boolean canDelete = false; |
public CourseUnitView cuv; |
public List<String> getWarnings() { |
return warnings; |
} |
public String getMessageResult() { |
return messageResult; |
} |
public boolean isCanDelete() { |
return canDelete; |
} |
public CourseUnitView getCuv() { |
return cuv; |
} |
} |
/** |
* |
* @param courseUnitId |
* @return a list of warnings |
* |
*/ |
public CourseUnitContentsInfo checkDelete(long courseUnitId,UserSession session) |
{ |
CourseUnitContentsInfo result = new CourseUnitContentsInfo(); |
result.canDelete = true; |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(courseUnitId); |
boolean alert = false; |
if(cu.getStudents() != null && cu.getStudents().size() > 0) |
{ |
result.warnings.add("ALERT - Tem Alunos (NAO PODE APAGAR, remova os alunos primeiro)"); |
result.canDelete = false; |
} |
if(cu.getTeachers() != null && cu.getTeachers().size() > 0) |
{ |
result.warnings.add("ALERT - Tem Professores"); |
} |
if(cu.getAnnouncements() != null && cu.getAnnouncements().size() > 0) |
{ |
result.warnings.add("ALERT - Tem Anuncios"); |
} |
if(cu.getAssignements() != null && cu.getAssignements().size() > 0) |
{ |
result.warnings.add("ALERT - Tem Trabalhos (NAO PODE APAGAR, remova os trabalhos primeiro (tarefa do professor))"); |
} |
if(cu.getBlogs() != null && cu.getBlogs().size() > 0) |
{ |
result.warnings.add("ALERT - Tem BLOGS"); |
} |
if(cu.getCourseUnitEvaluation() != null) |
{ |
result.warnings.add("ALERT - Tem Relatorio de Avaliacao (NAO PODE APAGAR, contacte a equipa de desenvolvimento para encontrar solucao)"); |
result.canDelete = false; |
} |
if(cu.getCourseUnitProgram() != null) |
{ |
result.warnings.add("ALERT - Tem ficha curricular, nao vai apagar a ficha fica em backup id ficha: (" + cu.getCourseUnitProgram().getId() + ") pdf: (http://SITE_URL/repositoryStream/" + cu.getProgramStreamId() + "), exporte a ficha para backup"); |
} |
if(cu.getSummaries() != null && cu.getSummaries().size() > 0) |
{ |
result.warnings.add("ALERT - Tem Sumarios, vai apagar os sumarios localmente"); |
} |
if(result.canDelete) |
{ |
result.messageResult ="Pode Apagar"; |
} |
else |
{ |
result.messageResult ="Não é permitido apagar esta unidade"; |
} |
result.cuv = new CourseUnitView(cu,false,false,false,false); |
return result; |
} |
/** |
* |
* @param courseUnitId |
* @return a list of warnings |
* |
*/ |
public CourseUnitContentsInfo tryDelete(long courseUnitId,UserSession session) |
{ |
CourseUnitContentsInfo result = checkDelete(courseUnitId,session); |
if(result.canDelete) |
{ |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(courseUnitId); |
logger.warn("Will Delete courseUnit: " + cu.getImportYear() + ";" + cu.getSemestre() + ";" + cu.getCode() + ";" + cu.getName() + ";" + cu.getCourseCode() + ";" + cu.getCourseName()); |
if(cu.getTeachers() != null && cu.getTeachers().size() > 0) |
{ |
Iterator<TeacherImpl> teachers = cu.getTeachers().iterator(); |
while(teachers.hasNext()) |
{ |
Teacher t = teachers.next(); |
teachers.remove(); |
t.getTeachedUnits().remove(cu); |
logger.warn("Removing Teacher: " + t.getSigesCode() + " - id:" + t.getId() + " name:" + t.getName()); |
} |
} |
if(cu.getAnnouncements() != null && cu.getAnnouncements().size() > 0) |
{ |
Iterator<CourseUnitAnnouncement> annoucements = cu.getAnnouncements().iterator(); |
while(annoucements.hasNext()) |
{ |
CourseUnitAnnouncement a = annoucements.next(); |
annoucements.remove(); |
a.setCourseUnit(null); |
logger.warn("Removing Annoucement: " + a.getId()); |
DaoFactory.getAnnouncementDaoImpl().delete(a); |
} |
} |
if(cu.getBlogs() != null && cu.getBlogs().size() > 0) |
{ |
Iterator<CourseUnitBlog> blogs = cu.getBlogs().iterator(); |
while(blogs.hasNext()) |
{ |
CourseUnitBlog a = blogs.next(); |
blogs.remove(); |
Set<BlogPost> posts = a.getPosts(); |
Iterator<BlogPost> postsIter = posts.iterator(); |
while(postsIter.hasNext()) |
{ |
BlogPost bp = postsIter.next(); |
a.getPosts().remove(bp); |
bp.setBlog(null); |
DaoFactory.getBlogPostDaoImpl().delete(bp); |
} |
a.setCourseUnit(null); |
logger.warn("Removing Blog: " + a.getId()); |
DaoFactory.getCourseUnitBlogDaoImpl().delete(a); |
} |
} |
if(cu.getCourseUnitProgram() != null) |
{ |
result.warnings.add("ALERT - Tem ficha curricular, nao vai apagar a ficha fica em backup id ficha: (" + cu.getCourseUnitProgram().getId() + ") pdf: (http://SITE_URL/repositoryStream/" + cu.getProgramStreamId() + "), exporte a ficha para backup"); |
cu.setCourseUnitProgram(null); |
} |
if(cu.getSummaries() != null && cu.getSummaries().size() > 0) |
{ |
result.warnings.add("ALERT - Tem Sumarios, vai apagar os sumarios localmente"); |
Iterator<CourseUnitSummary> summaries = cu.getSummaries().iterator(); |
while(summaries.hasNext()) |
{ |
CourseUnitSummary a = summaries.next(); |
summaries.remove(); |
a.setCourseUnit(null); |
logger.warn("Removing Summary: " + a.getId()); |
DaoFactory.getCourseUnitSummaryDaoImpl().delete(a); |
} |
} |
DaoFactory.getCourseUnitDaoImpl().delete(cu); |
result.messageResult = "Unidade Apagada"; |
} |
return result; |
} |
public List<CourseUnitContentsInfo> loadDeleteCandidates(String importYear,UserSession session) |
{ |
List<CourseUnitContentsInfo> courseUnitContentsInfos = new ArrayList<CourseUnitContentsInfo>(); |
Query q = AbstractDao.getCurrentSession().createQuery("select c.id from c in class " + CourseUnit.class.getName() + |
" where size(c.students) = 0 and c.importYear = ? order by c.importYear, c.semestre, c.code"); |
q.setString(0,importYear); |
Iterator iter = q.iterate(); |
while(iter.hasNext()) |
{ |
Long id = (Long) iter.next(); |
CourseUnitContentsInfo cuInfo = checkDelete(id,session); |
courseUnitContentsInfos.add(cuInfo); |
} |
return courseUnitContentsInfos; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
61,7 → 61,6 |
evaluation = new CourseUnitEvaluationImpl(); |
DaoFactory.getCourseUnitEvaluationDaoImpl().save(evaluation); |
c.setCourseUnitEvaluation(evaluation); |
cupv.setCourseUnitEvaluation(evaluation); |
} |
// |
71,17 → 70,17 |
(c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId()) |
)) |
{ |
//PROF OU RESPONSAVEL |
cupv.persistViewInObjectTeacher(evaluation); |
cupv.setCourseUnitEvaluation(evaluation); |
} |
if(usession.getUser() instanceof Teacher |
else if(usession.getUser() instanceof Teacher |
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole()) |
|| |
((usession.getUser()) == c.getCourse().getCoordinator())) |
) |
{ |
//COMISSAO DE CURSO |
cupv.persistViewInObjectTeacher(evaluation); |
cupv.setCourseUnitEvaluation(evaluation); |
} |
List<String> errors = new ArrayList<String>(); |
String estado = "POR ENTREGAR"; |
96,7 → 95,7 |
estado = "Entregue à Comissão de Curso pelo docente"; |
evaluation.setTeacherComplete(true); |
} |
else |
else if(!cupv.isAutosave()) |
{ |
estado = "Alterado pelo docente"; |
evaluation.setClosed(false); |
106,14 → 105,20 |
createPdf(evaluation,c,usession,errors); |
if(usession != null && usession.getUser() != null && usession.getUser() instanceof Teacher) |
DirectedCoordinatedUnitsService.sendNotificationsCourseUnitEvaluationEditedInterestedPeople(c, estado, usession); |
else |
if(!cupv.isAutosave()) |
{ |
logger.info("Nao vai informar docentes"); |
createPdf(evaluation,c,usession,errors); |
if(usession != null && usession.getUser() != null && usession.getUser() instanceof Teacher) |
DirectedCoordinatedUnitsService.sendNotificationsCourseUnitEvaluationEditedInterestedPeople(c, estado, usession); |
else |
{ |
logger.info("Nao vai informar docentes"); |
} |
} |
//passou para aqui para não afetar a persistencia |
//estava em cima no create do new e depois o evaluation interno ficava a nulo |
// e no persist ja nao havia nada para persistir |
cupv.setCourseUnitEvaluation(evaluation); |
return cupv; |
} |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitsummaries.fo.xsl |
---|
242,8 → 242,15 |
<fo:table-body> |
<!--Confirmar isto do cEstado = 1 |
<xsl:for-each select="//summary[./numeroAula != '-1']"> |
Sumarios T_SUMARIOSAULAS.CD_ESTADO |
1 Lançado |
2 Faltou |
3 Cancelado |
4 Pré-lançado |
--> |
<xsl:for-each select="//summary[./numeroAula != '-1' and ./cEstado = '1']"> |
<xsl:sort select="dataAula" case-order="lower-first"/> |
<fo:table-row> |
/impl/src/java/pt/estgp/estgweb/services/courseunits/courseunitprogram.fo.xsl |
---|
608,7 → 608,7 |
</fo:block> |
</fo:table-cell> |
<fo:table-cell background-color="#FFF" color="#000" border-bottom="1px solid gray" padding-right="0.1em" display-align="center"> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve"> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve"> |
<xsl:value-of select="$value"/> |
</fo:block> |
</fo:table-cell> |
646,13 → 646,13 |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" font-weight="bold"> |
1 - <xsl:value-of select="$field1"/> |
</fo:block> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve"> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve"> |
<xsl:value-of select="$value1"/> |
</fo:block> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" font-weight="bold"> |
2 - <xsl:value-of select="$field2"/> |
</fo:block> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve"> |
<fo:block text-align="left" padding="3pt" linefeed-treatment="preserve" wrap-option="wrap" white-space-collapse="false" white-space-treatment="preserve"> |
<xsl:value-of select="$value2"/> |
</fo:block> |
</fo:table-cell> |
/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,23 |
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()); |
} |
List<User> usersServicesPrograms = DaoFactory.getUserDaoImpl().loadRoleUsers("servicesPrograms"); |
try |
{ |
FileWriter batRunner = new FileWriter(tmpDir + "/create.bat"); |
134,6 → 148,44 |
batRunner.write("md " + courseNormalizedName + "\\\n"); |
batRunner.write("md " + relativeDirCourse + "\\\n"); |
/** |
* Relatorio de Curso Novo |
*/ |
batRunner.write("md " + relativeDirCourse + "\\" + "Relatorio.Curso" + "\n"); |
batRunner.write("cd " + relativeDirCourse + "\\\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /p \"Domain Users\":n\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /p \"Authenticated Users\":n\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /p \"Intranet\":n\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /p \"Alunos\":n\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /r \"Domain Users\"\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /r \"Authenticated Users\"\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /r \"Intranet\"\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /r \"Alunos\"\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /g \"" + ConfigProperties.getProperty("ionline.user") + "\":f\n"); |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /g \"Docentes\":r\n"); |
if(c.getUserGroupStudents() != null) |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /g \"" + c.getUserGroupStudents() + "\":r\n"); |
if(c.getDirector() != null) |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /g \"" + c.getDirector().getUsername() + "\":f\n"); |
if(c.getCoordinator() != null) |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /g \"" + c.getCoordinator().getUsername() + "\":f\n"); |
for(User serviceUser: usersServicesPrograms) |
batRunner.write("cacls " + "Relatorio.Curso" + " /t /e /g \"" + serviceUser.getUsername() + "\":f\n"); |
batRunner.write("cd ..\\..\\\n"); |
/*Fim de Relatorio de Curso*/ |
if(s1t) |
batRunner.write("md " + relativeDirCourse + "\\" + Globals.INTRANET_SEMESTRE_S1 + "\\\n"); |
if(s2t) |
157,6 → 209,17 |
// List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadByCourse(c.getId(),importYear); |
for(CourseUnit courseUnit: courseUnits) |
{ |
boolean turmasMultiplas = false; |
for(CourseUnit cuCompare: courseUnits) |
{ |
if(cuCompare.getId() == courseUnit.getId()) |
continue; |
if(((CourseUnitImpl)cuCompare).equalsIgnoringTurma(courseUnit)) |
{ |
turmasMultiplas = true; |
break; |
} |
} |
//FileWriter nowWriter; |
String semestre; |
if(courseUnit.getSemestre().equals("S1")) |
203,9 → 266,23 |
md Unidade\DTP\6.Inquerito.Pedagogico.Unidade.Curricular |
md Unidade\DTP\7.Relatorio.Final*/ |
String normalizedName = StringsUtils.normalizeResourceName(courseUnit.getName()); |
//Em caso de turmas multiplas necessitamos de colocar na path a turma |
//todo mudar isto no futuro para meter sempre que houver turma |
if(turmasMultiplas && courseUnit.getCdTurma() !=null && courseUnit.getCdTurma().trim().length() > 0) |
{ |
normalizedName = normalizedName + "." + courseUnit.getCdTurma(); |
batRunner.write("REM Unidade de Turma Multipla " + courseImportYearPath + "/" + semestre + "/" + normalizedName + " \n"); |
} |
courseUnit.setNormalizedName(normalizedName); |
String unitPath = courseImportYearPath + "/" + semestre + "/" + normalizedName; |
courseUnit.setNormalizedName(normalizedName); |
courseUnit.setPathIntranet(unitPath.substring(tmpDir.length())); |
String semestreUnitName = semestre + "\\" + normalizedName + "\\"; |
237,7 → 314,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 |
289,7 → 368,7 |
batRunner.write("cd ..\\\n"); |
} |
if(Globals.INTRANET_DTP_CourseDirectorWrite && c.getCoordinator() != null) |
if(Globals.INTRANET_DTP_CourseDirectorWrite && c.getDirector() != null) |
{ |
batRunner.write("cacls " + Globals.INTRANET_DTP + " /t /e /g \"" + c.getDirector().getUsername() + "\":c\n"); |
batRunner.write("cd " + Globals.INTRANET_DTP + "\n"); |
297,6 → 376,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/courseunits/courseunitevaluation.fo.xsl |
---|
304,20 → 304,20 |
<fo:table-column/> |
<fo:table-body> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação dos resultados quantitativos obtidos pelos estudantes </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualApreciacaoQuantitivos"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação dos resultados quantitativos obtidos pelos estudantes </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block font-family="monospace" wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve"> <xsl:value-of select="//qualApreciacaoQuantitivos"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação do funcionamento da UC (Condições de funcionamento da UC; problemas detetados; identificação de práticas pedagógicas de mérito ou deficientes; etc.) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualApreciacaoUC"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block font-family="monospace" wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve" > <xsl:value-of select="//qualApreciacaoUC"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Apreciação do cumprimento do programa da UC (Adequação das metodologias de ensino/aprendizagem utilizadas; competências efetivamente adquiridas e cumprimento dos conteúdos planificados) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualApreciacaoCumprimentoPrograma"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block font-family="monospace" wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve" > <xsl:value-of select="//qualApreciacaoCumprimentoPrograma"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="myBorder" display-align="center" padding="3pt"><fo:block font-weight="bold"> Conclusões (Pontos fortes e fracos; sugestões de melhoria e respetivo plano de ação para a sua concretização) </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block > <xsl:value-of select="//qualConclusoes"/> </fo:block> </fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="myBorder" padding="3pt"><fo:block font-family="monospace" wrap-option="wrap" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve"> <xsl:value-of select="//qualConclusoes"/> </fo:block> </fo:table-cell> |
</fo:table-row> |
</fo:table-body> |
</fo:table> |
/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,13 → 44,22 |
int studentsNew = 0; |
int studentsZeroUnits = 0; |
int unitsNotFound = 0; |
int unitsNotFoundTurma = 0; |
int unitsRemovedToStudents = 0; |
int unitsLocalAddedNotRemoved = 0; |
int unitsLocallyRemovedNotAdded = 0; |
int alunosFound = 0; |
int studentsChangeBI = 0; |
int unitsAddedToStudents = 0; |
int alunosErasmusCadeirasEcontradas = 0; |
int turmaMoreThanOneRegularCourse = 0; |
//Vasco da Gama |
//Cadeiras a Vulso |
//Erasmus |
//disciplinas a vulso ESS |
Integer[] cursosFicticios = {19,4,0,22}; |
public ILogMessages run(String year) throws ServiceException |
{ |
58,16 → 67,21 |
studentsNew = 0; |
studentsZeroUnits = 0; |
unitsNotFound = 0; |
unitsNotFoundTurma = 0; |
unitsRemovedToStudents = 0; |
unitsLocalAddedNotRemoved = 0; |
unitsLocallyRemovedNotAdded = 0; |
alunosFound = 0; |
studentsChangeBI = 0; |
unitsAddedToStudents = 0; |
alunosErasmusCadeirasEcontradas = 0; |
turmaMoreThanOneRegularCourse = 0; |
String activeImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
String msgS = "STARTING STUDENTS IMPORT SERVICE FOR YEAR: " + year; |
serviceLogInfo(msgS); |
logger.info(msgS); |
82,6 → 96,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 → 164,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,10 → 214,14 |
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); |
serviceLogInfo("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded); |
serviceLogInfo("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas); |
if(turmaMoreThanOneRegularCourse > 0) |
serviceLogInfo("#########!!!!!!!PROBLEMA TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse); |
logger.info("############################"); |
logger.info("############################"); |
211,10 → 230,15 |
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); |
logger.info("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded); |
logger.info("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas); |
if(turmaMoreThanOneRegularCourse > 0) |
logger.warn("#########!!!!!!!PROBLEMA TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse); |
if(studentsChangeBI>0) |
{ |
serviceLogInfo("#>>>>>AVISO AVISO<<<<<<<<<: "); |
257,8 → 281,116 |
} |
} |
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service, DefaultLogMessages messages) |
{ |
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service,messages); |
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; |
} |
} |
boolean isCursoFicticio(int cursoCode) |
{ |
for(Integer cursoFicticio: cursosFicticios) |
{ |
if(cursoFicticio.intValue() == cursoCode) |
{ |
return true; |
} |
} |
return false; |
} |
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, DefaultLogMessages messages) |
{ |
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) |
{ |
boolean cursoFicticio = isCursoFicticio(turmaCursoPair.getCodigoCurso().intValue()); |
if(!cursoFicticio) |
{ |
cursos.add(turmaCursoPair.getCodigoCurso()); |
msg = "Adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.info(msg); |
serviceLogInfo(msg); |
if(cursos.size()>1) |
{ |
turmaMoreThanOneRegularCourse++; |
msg = "Warning: turma " + turmaCursoPair.getCdTurma() + " has more than one regular course associated "; |
logger.warn(msg); |
serviceLogWarn(msg); |
messages.addMessage(new DefaultLogMessage("", LogMessageTypeEnum.WARNING,msg)); |
} |
} |
else |
{ |
msg = "Not adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso() + " -> Codigo de Curso Ficticio ->não vai ser considerado"; |
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; |
} |
/** |
* Nao esta testado |
* jm |
266,7 → 398,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) |
{ |
358,32 → 490,73 |
//4 - Remover da lista do aluno as unidades que não vêm do SIGES e que não foram adicionadas localmente |
//todo mudar isto |
//todo mudar nos webservices quando vai buscar o mapa de turmas |
final int ERASMUS_CODE = 0; |
//FALTA AQUI O VASCO DA GAMA |
//FALTA AQUI DISCIPLINAS A VULSO |
//PASSO 1 |
Set<CourseUnit> units = new HashSet<CourseUnit>(); |
Set<CourseUnit> unitsFromSigesPersistentInBaco = new HashSet<CourseUnit>(); |
ArrayOfDisciplina disciplinas = alunoSiges.getDisciplinasInscrito(); |
for (Disciplina disciplina : disciplinas.getDisciplina()) |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + disciplina.getCodigoCurso(),disciplina.getCdDuracao(),disciplina.getCdLectivo()); |
boolean cursoFicticio = isCursoFicticio(disciplina.getCodigoCurso().intValue()); |
BigDecimal codigoDoCurso = disciplina.getCodigoCurso(); |
if(disciplina.getCdTipoDisciplina() != null |
&& |
(disciplina.getCdTipoDisciplina().intValue() == ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR |
|| |
cursoFicticio)) |
{ |
if(cursoFicticio) |
{ |
alunosErasmusCadeirasEcontradas++; |
String msg = "Disciplina para Aluno " + student.getSigesCode() + " de Curso Ficticio " +disciplina.getCodigoCurso().intValue() + " encontrada vamos trocar para código de curso real"; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
else |
{ |
String msg = "Disciplina para Aluno " + student.getSigesCode() + " ExtraCurricular " +disciplina.getCodigoCurso().intValue() + " encontrada vamos trocar para código de curso real"; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
codigoDoCurso = getRealCourse(disciplina.getCdTurma(),year,disciplina.getCdDuracao(),service,logMessages); |
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " nome:" + disciplina.getNome() + "turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCurso; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCurso,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() |
,"" + codigoDoCurso.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 (student " + student.getSigesCode() + "): semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCurso + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
serviceLogWarn(msg); |
logger.warn(msg); |
} |
else |
units.add(courseUnit); |
unitsFromSigesPersistentInBaco.add(courseUnit); |
} |
//PASSO 2 |
Iterator<CourseUnit> iter = units.iterator(); |
StudentImpl sImpl = (StudentImpl) DaoFactory.getStudentDaoImpl().narrow(student); |
//PASSO 2 - Sao retiradas da lista unitsFromSigesPersistentInBaco as que o aluno tem mas que foram removidas localmente |
Iterator<CourseUnit> iter = unitsFromSigesPersistentInBaco.iterator(); |
StudentImpl studentImpl = (StudentImpl) DaoFactory.getStudentDaoImpl().narrow(student); |
while (iter.hasNext()) |
{ |
CourseUnit courseUnit = iter.next(); |
//In case of a comming proxy |
if(sImpl.isLocalRemovedUnit(courseUnit)) |
if(studentImpl.isLocalRemovedUnit(courseUnit)) |
{ |
unitsLocallyRemovedNotAdded++; |
String msg = "Removendo unidade: " + ((CourseUnitImpl)courseUnit).getSigesUniqueIdentifiers() + " - do aluno: " + student.getSigesCode() + " - Associacao existe no SIGES mas foi removido LOCALMENTE"; |
393,10 → 566,10 |
} |
} |
//PASSO 3 |
//PASSO 3 - Sao adicionadas ao aluno as unidades que o aluno ainda nao tiver da lista unitsFromSigesPersistentInBaco |
if(student.getSubscribedUnits() != null) |
{ |
for(CourseUnit c: units) |
for(CourseUnit c: unitsFromSigesPersistentInBaco) |
{ |
boolean isIn = false; |
for(CourseUnit tc : student.getSubscribedUnits()) |
418,7 → 591,7 |
} |
} |
else |
student.setSubscribedUnits(units); |
student.setSubscribedUnits(unitsFromSigesPersistentInBaco); |
//PASSO 4 |
//Remover unidades deste ano que nao vem do SIGES e que nao foram adicionadas localmente |
436,7 → 609,7 |
{ |
boolean added = false; |
for(CourseUnit c: units) |
for(CourseUnit c: unitsFromSigesPersistentInBaco) |
{ |
if(cUNow.equals(c)) |
{ |
447,7 → 620,7 |
if(!added) |
{ |
if(!sImpl.isLocalUnit(cUNow)) |
if(!studentImpl.isLocalUnit(cUNow)) |
{ |
String msg = "Removendo unidade: " + ((CourseUnitImpl)cUNow).getSigesUniqueIdentifiers() + " - do aluno: " + student.getSigesCode() + " - Associacao desapareceu do SIGES"; |
serviceLogInfo(msg); |
468,6 → 641,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 → 689,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/oracle/dao/connection/ConnectionManager.java |
---|
New file |
0,0 → 1,27 |
package pt.estgp.estgweb.services.sigesimports.oracle.dao.connection; |
import oracle.jdbc.pool.OracleDataSource; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import java.sql.Connection; |
import java.sql.SQLException; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class ConnectionManager |
{ |
private static Connection connection = null; |
public static Connection openConnection() throws SQLException |
{ |
OracleDataSource ods = new OracleDataSource(); |
ods.setUser(ConfigProperties.getProperty("oracle.siges.username")); |
ods.setPassword(ConfigProperties.getProperty("oracle.siges.password")); |
ods.setURL(ConfigProperties.getProperty("oracle.siges.url")); |
// Connect to the database |
Connection conn = ods.getConnection(); |
return conn; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/AlunoDao.java |
---|
New file |
0,0 → 1,170 |
package pt.estgp.estgweb.services.sigesimports.oracle.dao; |
import pt.estgp.estgweb.services.sigesimports.oracle.domain.Aluno; |
import pt.estgp.estgweb.services.sigesimports.oracle.domain.AlunoHistorico; |
import pt.estgp.estgweb.services.sigesimports.oracle.domain.Disciplina; |
import java.sql.Connection; |
import java.sql.PreparedStatement; |
import java.sql.ResultSet; |
import java.sql.SQLException; |
import java.util.ArrayList; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class AlunoDao extends AbstractDao<Aluno> { |
private static AlunoDao instance = null; |
private AlunoDao() { |
} |
public static AlunoDao getInstance() { |
if (instance == null) |
instance = new AlunoDao(); |
return instance; |
} |
protected String getTable() { |
return "CSE.T_ALUNOS"; |
} |
protected String getIdColumn() { |
return "CD_ALUNO"; |
} |
public Aluno load(ResultSet aReader) throws SQLException { |
Aluno a = new Aluno(); |
a.codigo = getDecimal("CD_ALUNO", aReader); |
//a.nome = getString("NM_ALUNO",aReader); |
a.nome = getString("NM_COMPLETO", aReader); |
//d.nomeFuncionario = getString("NM_COMPLETO", aReader); //ok T_INDIVIDUO FALTA VER O "NOME" |
//d.nomeFuncionarioInt = getString("NM_FUNC_INT", aReader); |
//d.nomeFuncionario = getString("NM_ABREVIADO", aReader); //ok T_INDIVIDUO |
//d.nomeAcademico = getString("NM_ACADEMICO", aReader); //ok T_INDIVIDUO |
//a.sexo = getString("CD_SEXO", aReader); |
a.sexo = getString("SEXO", aReader); |
//a.data_nascimento = getDateTime("DT_NASCIME", aReader); |
//a.morada = getString("DS_MORADA", aReader); |
//a.codigoPostal = getInteger("CD_POSTAL", aReader); |
//a.subCodigoPostal = getInteger("CD_SUBPOS", aReader); |
//a.email = getString("DS_EMAIL", aReader); |
//a.numeroBi = getString("NR_BI", aReader); |
a.telemovel = getString("NR_TELEMOVEL", aReader); |
a.data_nascimento = getDateTime("DT_NASCIMENTO", aReader); |
a.morada = getString("DS_MORADA", aReader); |
a.codigoPostal = getDecimal("CD_POSTAL", aReader); |
a.subCodigoPostal = getDecimal("CD_SUBPOS", aReader); |
a.email = getString("EMAIL", aReader); |
a.numeroBi = getString("IDENTIFICACAO", aReader); |
//a.usernameNetpa = getString("USERNAME_NETPA", aReader); |
a.usernameNetpa = getString("USER_NETPA", aReader); //T_ALUNO |
return a; |
} |
/*Valid with diagrams*/ |
public ArrayList<Integer> loadCodigosAlunos(Integer codigoInstituicao, String ano) throws SQLException { |
ArrayList<Integer> codigos = new ArrayList<Integer>(); |
Connection conn = getCurrentConnection(); |
PreparedStatement catCMD = conn.prepareStatement("SELECT DISTINCT CSE.T_ALUNOS.CD_ALUNO AS CD_ALUNO FROM CSE.T_ALUNOS INNER JOIN (CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP = CSE.T_TBDISCIP.CD_DISCIP) ON CSE.T_ALUNOS.CD_ALUNO = CSE.T_INSCRI.CD_ALUNO WHERE (((CSE.T_TBDISCIP.CD_INSTITUIC)=" + codigoInstituicao + ") AND ((CSE.T_INSCRI.CD_LECTIVO)='" + ano + "') AND ((CSE.T_ALUNOS.CD_SITUA_PAR)=1) AND ((CSE.T_INSCRI.CD_STATUS)<>5))"); |
ResultSet aReader = catCMD.executeQuery(); |
while (aReader.next()) { |
codigos.add(getDecimal("CD_ALUNO", aReader)); |
} |
//close the reader |
aReader.close(); |
return codigos; |
} |
public Aluno loadInscrito(Integer codigo, Integer codigoInstituicao, String ano) throws SQLException { |
Connection conn = getCurrentConnection(); |
PreparedStatement catCMD = conn.prepareStatement("SELECT * FROM " + getTable() + " INNER JOIN SIGES.T_INDIVIDUO on SIGES.T_INDIVIDUO.ID_INDIVIDUO = CSE.T_ALUNOS.ID_INDIVIDUO where CD_SITUA_PAR = 1 AND " + getIdColumn() + "=" + codigo); |
ResultSet aReader = catCMD.executeQuery(); |
if (aReader.next()) { |
Aluno a = load(aReader); |
a.disciplinasInscrito = (Disciplina[]) loadDiscilpinasInscrito(codigo, codigoInstituicao, ano).toArray(); |
a.historicos = (AlunoHistorico[]) getHistorico(codigo).toArray(); |
aReader.close(); |
return a; |
} |
aReader.close(); |
//close the reader |
return null; |
} |
/*Mudar a lista para uma lista de Códigos com pelo menos CD_LECTIVO, CD_DISCIP, CD_CURSO, CD_TURMA*/ |
/*Do lado do Baco as Disciplinas são criadas uma por (CD_LECTIVO, CODIGO, CURSO, SEMESTRE) ficam anexadas todas as turmas encontradas*/ |
/* O Serviço de Leituras de Sumarios pede apenas os detalhe_aula com codigos de turma igual ao pedido e CD_LECTIVO = actual */ |
public ArrayList<Disciplina> loadDiscilpinasInscrito(Integer codigo, Integer codigoInstituicao, String ano) throws SQLException { |
ArrayList<Disciplina> disciplinas = new ArrayList<Disciplina>(); |
Connection conn = getCurrentConnection(); |
PreparedStatement catCMD = conn.prepareStatement("SELECT " + |
"CSE.T_INSCRI.CD_TIPDIS AS CD_TIPDIS, " + |
"CSE.T_INSCRI.CD_DISCIP AS CD_DISCIP, " + |
"CSE.T_INSCRI.CD_DURACAO AS CD_DURACAO, " + |
"CSE.T_INSCRI.CD_CURSO AS CD_CURSO, " + |
"CSE.T_INSCRI.CD_TURMA_T AS CD_TURMA, " + |
"CSE.T_INSCRI.CD_TURMA_P, " + |
"CSE.T_INSCRI.CD_TURMA_L, " + |
"CSE.T_INSCRI.CD_TURMA_TP " + |
"FROM CSE.T_ALUNOS INNER JOIN (CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP = CSE.T_TBDISCIP.CD_DISCIP) ON CSE.T_ALUNOS.CD_ALUNO = CSE.T_INSCRI.CD_ALUNO WHERE CSE.T_ALUNOS.CD_ALUNO = " + codigo + " AND (((CSE.T_TBDISCIP.CD_INSTITUIC)=" + codigoInstituicao + ") AND ((CSE.T_INSCRI.CD_LECTIVO)='" + ano + "') AND ((CSE.T_ALUNOS.CD_SITUA_PAR)=1) AND ((CSE.T_INSCRI.CD_STATUS)<>5) AND (CSE.T_INSCRI.CD_TIPDIS = 2 OR CSE.T_INSCRI.CD_TIPDIS = 1 OR CSE.T_INSCRI.CD_TIPDIS = 6))"); |
//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 |
ResultSet aReader = catCMD.executeQuery(); |
while (aReader.next()) { |
Disciplina d = new Disciplina(); |
d.codigo = getDecimal("CD_DISCIP", aReader); |
d.codigoCurso = getDecimal("CD_CURSO", aReader); |
d.codigoInstituicao = codigoInstituicao; |
d.cdLectivo = ano; |
d.cdTipoDisciplina = getDecimal("CD_TIPDIS", aReader); |
d.cdDuracao = getString("CD_DURACAO", aReader); |
d.cdTurma = getString("CD_TURMA", aReader); |
disciplinas.add(d); |
} |
//close the reader |
aReader.close(); |
return disciplinas; |
} |
/*Mudar a lista para uma lista de Códigos com pelo menos CD_LECTIVO, CD_DISCIP, CD_CURSO, CD_TURMA*/ |
/*Do lado do Baco as Disciplinas são criadas uma por (CD_LECTIVO, CODIGO, CURSO, SEMESTRE) ficam anexadas todas as turmas encontradas*/ |
/* O Serviço de Leituras de Sumarios pede apenas os detalhe_aula com codigos de turma igual ao pedido e CD_LECTIVO = actual */ |
public ArrayList<AlunoHistorico> getHistorico(Integer codigo) throws SQLException { |
ArrayList<AlunoHistorico> historicos = new ArrayList<AlunoHistorico>(); |
Connection conn = getCurrentConnection(); |
PreparedStatement catCMD = conn.prepareStatement("SELECT CSE.T_HISTALUN.CD_LECTIVO AS CD_LECTIVO, CSE.T_HISTALUN.CD_CURSO AS CD_CURSO, CSE.T_HISTALUN.DT_MATRIC AS DT_MATRIC, CSE.T_HISTALUN.PROTEGIDO AS PROTEGIDO, CSE.T_HISTALUN.CD_PROPINA AS CD_PROPINA FROM CSE.T_HISTALUN WHERE CSE.T_HISTALUN.CD_ALUNO = " + codigo + ""); |
ResultSet aReader = catCMD.executeQuery(); |
while (aReader.next()) { |
AlunoHistorico a = new AlunoHistorico(); |
a.codigo = codigo; |
a.codigoCurso = getDecimal("CD_CURSO", aReader); |
a.codigoLectivo = getString("CD_LECTIVO", aReader); |
a.dataMatricula = getDateTime("DT_MATRIC", aReader); |
a.propinaEmDia = getString("CD_PROPINA", aReader); |
a.historicoProtegido = getString("PROTEGIDO", aReader); |
historicos.add(a); |
} |
//close the reader |
aReader.close(); |
return historicos; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/LEMBRETES |
---|
New file |
0,0 → 1,7 |
NO FINAL PROCURAR POR TODOS OS GET CONNECTION E METER CLOSES |
meter closes nos PS quando ha closes nos RS |
TODO ver no Aula Dao o remove trouble chars |
Sumarios de gestão de projecto |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/AulaDao.java |
---|
New file |
0,0 → 1,355 |
package pt.estgp.estgweb.services.sigesimports.oracle.dao; |
import pt.estgp.estgweb.services.sigesimports.oracle.domain.Aula; |
import java.sql.Connection; |
import java.sql.PreparedStatement; |
import java.sql.ResultSet; |
import java.sql.SQLException; |
import java.util.ArrayList; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class AulaDao extends AbstractDao<Aula> |
{ |
private static AulaDao instance = null; |
private AulaDao() { |
} |
public static AulaDao getInstance() { |
if (instance == null) |
instance = new AulaDao(); |
return instance; |
} |
protected String getTable() { |
return "CSE.T_OCUPACOES"; |
} |
protected String getIdColumn() { |
return null; |
} |
public static String RemoveTroublesomeCharacters(String inString) { |
if (inString == null) return null; |
StringBuilder newString = new StringBuilder(); |
char ch; |
for (int i = 0; i < inString.length(); i++) { |
ch = inString.charAt(i); |
// remove any characters outside the valid UTF-8 range as well as all control characters |
// except tabs and new lines |
if ((ch < 0x00FD && ch > 0x001F) || ch == '\t' || ch == '\n' || ch == '\r') |
//if using .NET version prior to 4, use above logic |
//if (XmlConvert.IsXmlChar(ch)) //this method is new in .NET 4 |
{ |
newString.append(ch); |
} |
} |
return newString.toString(); |
} |
/*String RemoveInvalidXmlChars(String text) |
{ |
Regex r = new Regex(@"(?<=\<\w+)[#\{\}\(\)\&](?=\>)|(?<=\</\w+)[#\{\}\(\)\&](?=\>)"); |
text = r.Replace(text, new MatchEvaluator(deleteMatch)); |
return text; |
} |
String deleteMatch(Match m) { return ""; } |
*/ |
protected Aula load(ResultSet aReader) throws SQLException { |
Aula a = new Aula(); |
a.data = getDateTime("DT_OCUPACAO", aReader); |
a.numeroOcupacao = getDecimal("NR_OCUPACAO", aReader); |
a.tipoOcupacao = getDecimal("CD_TIPO_OCUPACAO", aReader); |
a.numeroCelulas = getDecimal("TOTAL_CELULAS", aReader); |
a.observacoes = getString("OBSERVACOES", aReader); |
a.numeroAula = getDecimal("NR_AULA", aReader); |
a.horaInicial = getDecimal("HORA_INICIAL", aReader); |
a.horaFinal = getDecimal("HORA_FINAL", aReader); |
a.descricao = getString("DO_DESCRICAO", aReader); |
if (a.descricao != null) |
a.descricao = RemoveTroublesomeCharacters(a.descricao); |
a.codigoSala = getDecimal("DO_CD_SALA", aReader); |
a.codigoResponsavel = getDecimal("DO_CD_RESPONSAVEL", aReader); |
a.codigoSituacao = getString("DO_CD_SITUACAO", aReader); |
a.codigoSumario = getDecimal("DO_CD_SUMARIO", aReader); |
a.aula_codigoLectivo = getString("DA_CD_LECTIVO", aReader); |
a.aula_codigoPeriodo = getString("DA_CD_PERIODO", aReader); |
a.aula_codigoDisciplina = getDecimal("DA_CD_DISCIP", aReader); |
a.aula_codigoTurma = getString("DA_CD_TURMA", aReader); |
a.aula_codigoDocente = getDecimal("DA_CD_DOCENTE", aReader); |
a.aula_codigoSalaAula = getDecimal("DA_CD_SALA", aReader); |
a.aula_codigoSumario = getDecimal("DA_CD_SUMARIO", aReader); |
a.sum_HoraInicial = getDecimal("SUM_HORA_INICIAL", aReader); |
a.sum_HoraFinal = getDecimal("SUM_HORA_FINAL", aReader); |
a.sum_numeroAlunos = getDecimal("SUM_NUMERO_ALUNOS", aReader); |
a.sum_numeroAula = getDecimal("SUM_NUMERO_AULA", aReader); |
// |
a.sum_tipoAula = "" + getDecimal("SUM_CD_TIPO_AULA", aReader); |
a.sum_titulo = getString("SUM_TITULO", aReader); |
if (a.sum_titulo != null) |
a.sum_titulo = RemoveTroublesomeCharacters(a.sum_titulo); |
a.sum_descricao = getString("SUM_DESCRICAO", aReader); |
if (a.sum_descricao != null) |
a.sum_descricao = RemoveTroublesomeCharacters(a.sum_descricao); |
a.sum_identificador = getString("SUM_IDENTIFICADOR", aReader); |
a.sum_cdEstado = getDecimal("SUM_CD_ESTADO", aReader); |
a.sum_numeroPresencas = getDecimal("SUM_NR_PRESENCAS", aReader); |
return a; |
} |
public ArrayList<Aula> loadAulas(Integer codigoInstituicao, String anolectivo, String codigoUnidade, String semestre, String codigoCurso) throws SQLException { |
Integer limiteSalaInferior = codigoInstituicao * 1000; |
Integer limiteSalaSuperior = (codigoInstituicao + 1) * 1000; |
ArrayList<Aula> aulas = new ArrayList<Aula>(); |
Connection conn = getCurrentConnection(); |
String query; |
query = "SELECT " |
+ "CSH.T_OCUPACOES.DT_OCUPACAO AS DT_OCUPACAO," |
+ "CSH.T_OCUPACOES.NR_OCUPACAO AS NR_OCUPACAO," |
+ "CSH.T_OCUPACOES.CD_TIPO_OCUPACAO AS CD_TIPO_OCUPACAO," |
+ " CSH.T_OCUPACOES.TOTAL_CELULAS AS TOTAL_CELULAS," |
+ " CSH.T_OCUPACOES.OBSERVACOES AS OBSERVACOES," |
+ " CSH.T_OCUPACOES.NR_AULA AS NR_AULA," |
+ " CSH.T_DETALHE_OCUPACAO.DESCRICAO AS DO_DESCRICAO," |
+ " CSH.T_DETALHE_OCUPACAO.CD_SALA AS DO_CD_SALA," |
+ " CSH.T_DETALHE_OCUPACAO.CD_RESPONSAVEL AS DO_CD_RESPONSAVEL," |
+ " CSH.T_DETALHE_OCUPACAO.CD_SITUACAO AS DO_CD_SITUACAO," |
+ " CSH.T_DETALHE_OCUPACAO.CD_SUMARIO AS DO_CD_SUMARIO," |
+ " CSH.T_DETALHE_AULA.CD_LECTIVO AS DA_CD_LECTIVO ," |
+ " CSH.T_DETALHE_AULA.CD_PERIODO AS DA_CD_PERIODO ," |
+ " CSH.T_DETALHE_AULA.CD_DISCIP AS DA_CD_DISCIP ," |
+ " CSH.T_DETALHE_AULA.CD_TURMA AS DA_CD_TURMA ," |
+ " CSH.T_DETALHE_AULA.CD_DOCENTE AS DA_CD_DOCENTE ," |
+ " CSH.T_DETALHE_AULA.CD_SALA AS DA_CD_SALA ," |
+ " CSH.T_DETALHE_AULA.CD_SUMARIO AS DA_CD_SUMARIO ," |
+ " CSD.T_SUMARIOS_AULAS.HORA_INICIAL AS SUM_HORA_INICIAL ," |
+ " CSD.T_SUMARIOS_AULAS.HORA_FINAL AS SUM_HORA_FINAL ," |
+ " CSD.T_SUMARIOS_AULAS.NUMERO_ALUNOS AS SUM_NUMERO_ALUNOS ," |
+ " CSD.T_SUMARIOS_AULAS.NUMERO_AULA AS SUM_NUMERO_AULA ," |
+ " CSD.T_SUMARIOS_AULAS.CD_TIPO_AULA AS SUM_CD_TIPO_AULA ," |
+ " CSD.T_SUMARIOS_AULAS.TITULO AS SUM_TITULO ," |
+ " CSD.T_SUMARIOS_AULAS.DESCRICAO AS SUM_DESCRICAO ," |
+ " CSD.T_SUMARIOS_AULAS.IDENTIFICADOR AS SUM_IDENTIFICADOR ," |
+ " CSD.T_SUMARIOS_AULAS.CD_ESTADO AS SUM_CD_ESTADO ," |
+ " CSD.T_SUMARIOS_AULAS.NR_PRESENCAS AS SUM_NR_PRESENCAS," |
+ " CSD.T_SUMARIOS_AULAS.HORA_INICIAL AS HORA_INICIAL," |
+ " CSD.T_SUMARIOS_AULAS.HORA_FINAL AS HORA_FINAL" |
+ " FROM " |
+ " ((((CSH.T_OCUPACOES LEFT OUTER JOIN CSH.T_DETALHE_OCUPACAO ON " |
+ " CSH.T_DETALHE_OCUPACAO.CAMPO_REFERENCIA = CSH.T_OCUPACOES.CAMPO_REFERENCIA" |
+ " AND" |
+ " CSH.T_DETALHE_OCUPACAO.DT_OCUPACAO = CSH.T_OCUPACOES.DT_OCUPACAO" |
+ " AND" |
+ " CSH.T_DETALHE_OCUPACAO.NR_OCUPACAO = CSH.T_OCUPACOES.NR_OCUPACAO" |
+ " )" |
+ " LEFT OUTER JOIN CSH.T_DETALHE_AULA ON" |
+ " CSH.T_DETALHE_AULA.CAMPO_REFERENCIA = CSH.T_OCUPACOES.CAMPO_REFERENCIA" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.DT_OCUPACAO = CSH.T_OCUPACOES.DT_OCUPACAO" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.NR_OCUPACAO = CSH.T_OCUPACOES.NR_OCUPACAO" |
+ " )" |
+ " LEFT OUTER JOIN CSD.T_SUMARIOS_AULAS ON" |
+ " CSD.T_SUMARIOS_AULAS.CD_SUMARIO = CSH.T_DETALHE_AULA.CD_SUMARIO" |
+ " )" |
+ " LEFT OUTER JOIN CSE.T_TURMA ON" |
+ " CSH.T_DETALHE_AULA.CD_TURMA = CSE.T_TURMA.CD_TURMA" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.CD_LECTIVO = CSE.T_TURMA.CD_LECTIVO" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.CD_PERIODO = CSE.T_TURMA.CD_DURACAO" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.CD_DISCIP = CSE.T_TURMA.CD_DISCIP " |
+ " )" |
+ " WHERE " |
//+ " CD_DOCENTE = 20128 AND CD_LECTIVO = '200708'"; |
+ " CSH.T_DETALHE_AULA.CD_DISCIP = " + codigoUnidade |
+ " AND CSH.T_DETALHE_AULA.CD_LECTIVO = '" + anolectivo + "'" |
+ " AND CSH.T_DETALHE_AULA.CD_SALA > " + limiteSalaInferior + " AND CSH.T_DETALHE_AULA.CD_SALA < " + limiteSalaSuperior |
+ " AND CSH.T_DETALHE_AULA.CD_PERIODO = '" + semestre + "'" |
+ " AND (CSE.T_TURMA.CD_CURSO = '" + codigoCurso + "' OR CSE.T_TURMA.CD_CURSO is NULL)" |
+ " order by CSH.T_OCUPACOES.DT_OCUPACAO asc"; |
PreparedStatement catCMD = conn.prepareStatement(query); |
ResultSet aReader = catCMD.executeQuery(); |
while (aReader.next()) { |
aulas.add(load(aReader)); |
} |
//close the reader |
aReader.close(); |
catCMD.close(); |
conn.close(); |
return aulas; |
} |
/** |
* @deprecated |
* @param aReader |
* @return |
* @throws SQLException |
*/ |
private Aula loadSum(ResultSet aReader) throws SQLException { |
Aula a = new Aula(); |
//a.data = getDateTime("DT_OCUPACAO", aReader); |
//a.numeroOcupacao = getDecimal("NR_OCUPACAO", aReader); |
//a.tipoOcupacao = getDecimal("CD_TIPO_OCUPACAO", aReader); |
//a.numeroCelulas = getDecimal("TOTAL_CELULAS", aReader); |
//a.observacoes = getString("OBSERVACOES", aReader); |
//a.numeroAula = getDecimal("NR_AULA", aReader); |
//a.descricao = getString("DO_DESCRICAO", aReader); |
//a.codigoSala = getDecimal("DO_CD_SALA", aReader); |
//a.codigoResponsavel = getDecimal("DO_CD_RESPONSAVEL", aReader); |
//a.codigoSituacao = getString("DO_CD_SITUACAO", aReader); |
//a.codigoSumario = getDecimal("DO_CD_SUMARIO", aReader); |
a.aula_codigoLectivo = getString("DA_CD_LECTIVO", aReader); |
a.aula_codigoPeriodo = getString("DA_CD_PERIODO", aReader); |
a.aula_codigoDisciplina = getDecimal("DA_CD_DISCIP", aReader); |
a.aula_codigoTurma = getString("DA_CD_TURMA", aReader); |
a.aula_codigoDocente = getDecimal("DA_CD_DOCENTE", aReader); |
a.aula_codigoSalaAula = getDecimal("DA_CD_SALA", aReader); |
a.aula_codigoSumario = getDecimal("DA_CD_SUMARIO", aReader); |
/* |
a.sum_HoraInicial = getDecimal("SUM_HORA_INICIAL", aReader); |
a.sum_HoraFinal = getDecimal("SUM_HORA_FINAL", aReader); |
a.sum_numeroAlunos = getDecimal("SUM_NUMERO_ALUNOS", aReader); |
a.sum_numeroAula = getDecimal("SUM_NUMERO_AULA", aReader); |
// |
a.sum_tipoAula = "" + getDecimal("SUM_CD_TIPO_AULA", aReader); |
a.sum_titulo = getString("SUM_TITULO", aReader); |
a.sum_descricao = getString("SUM_DESCRICAO", aReader); |
a.sum_identificador = getString("SUM_IDENTIFICADOR", aReader); |
a.sum_cdEstado = getDecimal("SUM_CD_ESTADO", aReader); |
a.sum_numeroPresencas = getDecimal("SUM_NR_PRESENCAS", aReader); |
*/ |
return a; |
} |
/** |
* @deprecated apenas para testes |
* @param codigoInstituicao |
* @param anolectivo |
* @param codigoUnidade |
* @param semestre |
* @return |
* @throws SQLException |
*/ |
private ArrayList<Aula> loadSumarios(Integer codigoInstituicao, String anolectivo, String codigoUnidade, String semestre) throws SQLException { |
Integer limiteSalaInferior = codigoInstituicao * 1000; |
Integer limiteSalaSuperior = (codigoInstituicao + 1) * 1000; |
ArrayList<Aula> aulas = new ArrayList<Aula>(); |
Connection conn = getCurrentConnection(); |
String query; |
query = "SELECT " |
/* |
+ "CSH.T_OCUPACOES.DT_OCUPACAO AS DT_OCUPACAO," |
+ "CSH.T_OCUPACOES.NR_OCUPACAO AS NR_OCUPACAO," |
+ "CSH.T_OCUPACOES.CD_TIPO_OCUPACAO AS CD_TIPO_OCUPACAO," |
+ " CSH.T_OCUPACOES.TOTAL_CELULAS AS TOTAL_CELULAS," |
+ " CSH.T_OCUPACOES.OBSERVACOES AS OBSERVACOES," |
+ " CSH.T_OCUPACOES.NR_AULA AS NR_AULA," |
+ " CSH.T_DETALHE_OCUPACAO.DESCRICAO AS DO_DESCRICAO," |
+ " CSH.T_DETALHE_OCUPACAO.CD_SALA AS DO_CD_SALA," |
+ " CSH.T_DETALHE_OCUPACAO.CD_RESPONSAVEL AS DO_CD_RESPONSAVEL," |
+ " CSH.T_DETALHE_OCUPACAO.CD_SITUACAO AS DO_CD_SITUACAO," |
+ " CSH.T_DETALHE_OCUPACAO.CD_SUMARIO AS DO_CD_SUMARIO," |
*/ |
+ " CSH.T_DETALHE_AULA.CD_LECTIVO AS DA_CD_LECTIVO ," |
+ " CSH.T_DETALHE_AULA.CD_PERIODO AS DA_CD_PERIODO ," |
+ " CSH.T_DETALHE_AULA.CD_DISCIP AS DA_CD_DISCIP ," |
+ " CSH.T_DETALHE_AULA.CD_TURMA AS DA_CD_TURMA ," |
+ " CSH.T_DETALHE_AULA.CD_DOCENTE AS DA_CD_DOCENTE ," |
+ " CSH.T_DETALHE_AULA.CD_SALA AS DA_CD_SALA ," |
+ " CSH.T_DETALHE_AULA.CD_SUMARIO AS DA_CD_SUMARIO " //," |
/* |
+ " CSD.T_SUMARIOS_AULAS.HORA_INICIAL AS SUM_HORA_INICIAL ," |
+ " CSD.T_SUMARIOS_AULAS.HORA_FINAL AS SUM_HORA_FINAL ," |
+ " CSD.T_SUMARIOS_AULAS.NUMERO_ALUNOS AS SUM_NUMERO_ALUNOS ," |
+ " CSD.T_SUMARIOS_AULAS.NUMERO_AULA AS SUM_NUMERO_AULA ," |
+ " CSD.T_SUMARIOS_AULAS.CD_TIPO_AULA AS SUM_CD_TIPO_AULA ," |
+ " CSD.T_SUMARIOS_AULAS.TITULO AS SUM_TITULO ," |
+ " CSD.T_SUMARIOS_AULAS.DESCRICAO AS SUM_DESCRICAO ," |
+ " CSD.T_SUMARIOS_AULAS.IDENTIFICADOR AS SUM_IDENTIFICADOR ," |
+ " CSD.T_SUMARIOS_AULAS.CD_ESTADO AS SUM_CD_ESTADO ," |
+ " CSD.T_SUMARIOS_AULAS.NR_PRESENCAS AS SUM_NR_PRESENCAS" |
*/ |
+ " FROM " |
/* |
* |
*/ |
+ " CSH.T_DETALHE_AULA " //LEFT OUTER JOIN CSH.T_DETALHE_AULA ON" |
//+ " CSD.T_SUMARIOS_AULAS.CD_SUMARIO = CSH.T_DETALHE_AULA.CD_SUMARIO " |
/**/ |
/** |
+ " (((CSH.T_OCUPACOES LEFT OUTER JOIN CSH.T_DETALHE_OCUPACAO ON " |
+ " CSH.T_DETALHE_OCUPACAO.CAMPO_REFERENCIA = CSH.T_OCUPACOES.CAMPO_REFERENCIA" |
+ " AND" |
+ " CSH.T_DETALHE_OCUPACAO.DT_OCUPACAO = CSH.T_OCUPACOES.DT_OCUPACAO" |
+ " AND" |
+ " CSH.T_DETALHE_OCUPACAO.NR_OCUPACAO = CSH.T_OCUPACOES.NR_OCUPACAO" |
+ " )" |
+ " LEFT OUTER JOIN CSH.T_DETALHE_AULA ON" |
+ " CSH.T_DETALHE_AULA.CAMPO_REFERENCIA = CSH.T_OCUPACOES.CAMPO_REFERENCIA" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.DT_OCUPACAO = CSH.T_OCUPACOES.DT_OCUPACAO" |
+ " AND" |
+ " CSH.T_DETALHE_AULA.NR_OCUPACAO = CSH.T_OCUPACOES.NR_OCUPACAO" |
+ " )" |
+ " LEFT OUTER JOIN CSD.T_SUMARIOS_AULAS ON" |
+ " CSD.T_SUMARIOS_AULAS.CD_SUMARIO = CSH.T_DETALHE_AULA.CD_SUMARIO" |
+ " )"*/ |
+ " WHERE " |
//+ " CD_DOCENTE = 20128 AND CD_LECTIVO = '200708'"; |
+ " CSH.T_DETALHE_AULA.CD_DISCIP = " + codigoUnidade |
+ " AND CSH.T_DETALHE_AULA.CD_LECTIVO = '" + anolectivo + "'"; |
//+ " AND CSH.T_DETALHE_AULA.CD_SALA > " + limiteSalaInferior + " AND CSH.T_DETALHE_AULA.CD_SALA < " + limiteSalaSuperior |
//+ " AND CSH.T_DETALHE_AULA.CD_PERIODO = '" + semestre + "'"; |
// + " order by CSH.T_OCUPACOES.DT_OCUPACAO asc"; |
PreparedStatement catCMD = conn.prepareStatement(query); |
ResultSet aReader = catCMD.executeQuery(); |
while (aReader.next()) { |
aulas.add(loadSum(aReader)); |
} |
//close the reader |
aReader.close(); |
return aulas; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/AbstractDao.java |
---|
New file |
0,0 → 1,104 |
package pt.estgp.estgweb.services.sigesimports.oracle.dao; |
import pt.estgp.estgweb.services.sigesimports.oracle.dao.connection.ConnectionManager; |
import java.sql.Connection; |
import java.sql.PreparedStatement; |
import java.sql.ResultSet; |
import java.sql.SQLException; |
import java.util.ArrayList; |
import java.util.Date; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public abstract class AbstractDao<CLAZZ> |
{ |
protected Connection getCurrentConnection() throws SQLException |
{ |
return ConnectionManager.openConnection(); |
} |
protected abstract String getTable(); |
protected abstract String getIdColumn(); |
protected abstract CLAZZ load(ResultSet rs) throws SQLException; |
protected CLAZZ load(Integer codigo) throws SQLException |
{ |
Connection conn = getCurrentConnection(); |
PreparedStatement catCMD = conn.prepareStatement("SELECT * FROM " + getTable() + " where " + getIdColumn() + "=" + codigo); |
ResultSet rs = catCMD.executeQuery(); |
if (rs.next()) |
{ |
CLAZZ c = load(rs); |
rs.close(); |
catCMD.close(); |
return c; |
} |
rs.close(); |
catCMD.close(); |
//close the reader |
return null; |
} |
protected ArrayList<CLAZZ> loadAll() throws SQLException { |
ArrayList<CLAZZ> l = new ArrayList<CLAZZ>(); |
Connection conn = getCurrentConnection(); |
PreparedStatement catCMD = conn.prepareStatement("SELECT * FROM " + getTable() + " where ROWNUM < 10"); |
ResultSet rs = catCMD.executeQuery(); |
if (rs.next()) |
{ |
CLAZZ c = load(rs); |
l.add(c); |
} |
//close the reader |
rs.close(); |
catCMD.close(); |
return l; |
} |
protected Integer getDecimal(String column, ResultSet aReader) throws SQLException { |
if (aReader.getObject(column)==null) |
return -1; |
else |
return aReader.getInt(column); |
} |
protected String getString(String column,ResultSet aReader) throws SQLException { |
if (aReader.getObject(column)==null) |
return null; |
else |
return aReader.getString(column); |
} |
/* |
public Int32 getInt32(string column, OdbcDataReader aReader) |
{ |
if (aReader.IsDBNull(aReader.GetOrdinal(column))) |
return -1; |
else |
return aReader.GetInt32(aReader.GetOrdinal(column)); |
} |
public Int64 getInt64(string column, OdbcDataReader aReader) |
{ |
if (aReader.IsDBNull(aReader.GetOrdinal(column))) |
return -1; |
else |
return aReader.GetInt64(aReader.GetOrdinal(column)); |
} |
*/ |
protected Date getDateTime(String column, ResultSet aReader) throws SQLException { |
if (aReader.getObject(column)==null) |
return new Date(0); |
else |
return new Date(aReader.getTimestamp(column).getTime()); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/OracleConnectionTest.java |
---|
New file |
0,0 → 1,39 |
package pt.estgp.estgweb.services.sigesimports.oracle; |
import oracle.jdbc.pool.OracleDataSource; |
import java.sql.Connection; |
import java.sql.PreparedStatement; |
import java.sql.ResultSet; |
import java.sql.SQLException; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class OracleConnectionTest |
{ |
public static void main(String[] args) throws SQLException |
{ |
OracleDataSource ods = new OracleDataSource(); |
ods.setUser("estgac"); |
ods.setPassword("estgac11"); |
ods.setURL("jdbc:oracle:thin:@localhost:1521:SIGES11"); |
// Connect to the database |
Connection conn = ods.getConnection(); |
System.out.println(); |
// Prepare a statement to cleanup the employees table |
PreparedStatement ps = conn.prepareStatement("SELECT DISTINCT CSE.T_TBDISCIP.CD_DISCIP AS CD_DISCIP, CSE.T_TBDISCIP.DS_DISCIP AS DS_DISCIP, CSE.T_TBDISCIP.CD_INSTITUIC AS CD_INSTITUIC, CSE.T_INSCRI.CD_CURSO AS CD_CURSO, CSE.T_CURSOS.NM_CURSO AS NM_CURSO, CSE.T_CURSOS.CD_GRAU1 AS CD_GRAU1 FROM CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP=CSE.T_TBDISCIP.CD_DISCIP INNER JOIN CSE.T_CURSOS ON CSE.T_CURSOS.CD_CURSO = CSE.T_INSCRI.CD_CURSO WHERE (((CSE.T_TBDISCIP.CD_INSTITUIC)=1) AND ((CSE.T_INSCRI.CD_LECTIVO)='201516')) AND (CSE.T_INSCRI.CD_TIPDIS = 1)"); |
ResultSet rs = ps.executeQuery(); |
while(rs.next()) |
{ |
System.out.println(rs.getString("CD_DISCIP") + ";" + rs.getString("DS_DISCIP")); |
} |
rs.close(); |
ps.close(); |
conn.close(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/domain/Disciplina.java |
---|
New file |
0,0 → 1,31 |
package pt.estgp.estgweb.services.sigesimports.oracle.domain; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class Disciplina |
{ |
public Integer codigo; |
public String cdLectivo; |
public Integer codigoCurso; |
public String cdDuracao; |
public Integer codigoInstituicao; |
public String cdTurma; |
public String nome; |
public String nomeCurso; |
public String grauCurso; |
//Tipo 1 ou 6 no caso de ser 6 ignorar o codigo do curso e olhar para a Turma |
//Da turma tirar o código do curso |
//No caso de haver mais que um curso nos pares Curso Turma reportar Inconsistencia e avisar administradores |
//Mas isto tudo do lado do Baco |
public Integer cdTipoDisciplina; |
public Disciplina() |
{ |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/domain/AlunoHistorico.java |
---|
New file |
0,0 → 1,20 |
package pt.estgp.estgweb.services.sigesimports.oracle.domain; |
import java.util.Date; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class AlunoHistorico |
{ |
public Integer codigo; |
public String codigoLectivo; |
public Integer codigoCurso; |
public Date dataMatricula; |
public String historicoProtegido; |
public String propinaEmDia; |
public AlunoHistorico() |
{ |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/domain/Aula.java |
---|
New file |
0,0 → 1,183 |
package pt.estgp.estgweb.services.sigesimports.oracle.domain; |
import java.util.Date; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class Aula { |
public Date data; |
public Integer numeroOcupacao; |
public Integer tipoOcupacao; |
public Integer duracao; |
public Integer numeroCelulas; |
public String observacoes; |
public Integer numeroAula; |
public Integer horaInicial; |
public Integer horaFinal; |
//novo |
public String codigoCurso; |
//DETALHE OCUPACAO |
public String descricao; |
public Integer codigoSala; |
public Integer codigoResponsavel; |
public String codigoSituacao; |
public Integer codigoSumario; |
//Aula |
public String aula_codigoLectivo; |
public Integer aula_codigoDisciplina; |
public String aula_codigoPeriodo; |
public String aula_codigoTurma; |
public Integer aula_codigoDocente; |
public Integer aula_codigoSumario; |
public Integer aula_codigoSalaAula; |
//Sumario |
public Integer sum_HoraInicial; |
public Integer sum_HoraFinal; |
public Integer sum_numeroAlunos; |
public Integer sum_numeroAula; |
public String sum_tipoAula; |
public String sum_titulo; |
public String sum_descricao; |
public String sum_identificador; |
public Integer sum_cdEstado; |
public Integer sum_numeroPresencas; |
public Aula() |
{ |
} |
public Date getData() { |
return data; |
} |
public Integer getNumeroOcupacao() { |
return numeroOcupacao; |
} |
public Integer getTipoOcupacao() { |
return tipoOcupacao; |
} |
public Integer getDuracao() { |
return duracao; |
} |
public Integer getNumeroCelulas() { |
return numeroCelulas; |
} |
public String getObservacoes() { |
return observacoes; |
} |
public Integer getNumeroAula() { |
return numeroAula; |
} |
public Integer getHoraInicial() { |
return horaInicial; |
} |
public Integer getHoraFinal() { |
return horaFinal; |
} |
public String getCodigoCurso() { |
return codigoCurso; |
} |
public String getDescricao() { |
return descricao; |
} |
public Integer getCodigoSala() { |
return codigoSala; |
} |
public Integer getCodigoResponsavel() { |
return codigoResponsavel; |
} |
public String getCodigoSituacao() { |
return codigoSituacao; |
} |
public Integer getCodigoSumario() { |
return codigoSumario; |
} |
public String getAula_codigoLectivo() { |
return aula_codigoLectivo; |
} |
public Integer getAula_codigoDisciplina() { |
return aula_codigoDisciplina; |
} |
public String getAula_codigoPeriodo() { |
return aula_codigoPeriodo; |
} |
public String getAula_codigoTurma() { |
return aula_codigoTurma; |
} |
public Integer getAula_codigoDocente() { |
return aula_codigoDocente; |
} |
public Integer getAula_codigoSumario() { |
return aula_codigoSumario; |
} |
public Integer getAula_codigoSalaAula() { |
return aula_codigoSalaAula; |
} |
public Integer getSum_HoraInicial() { |
return sum_HoraInicial; |
} |
public Integer getSum_HoraFinal() { |
return sum_HoraFinal; |
} |
public Integer getSum_numeroAlunos() { |
return sum_numeroAlunos; |
} |
public Integer getSum_numeroAula() { |
return sum_numeroAula; |
} |
public String getSum_tipoAula() { |
return sum_tipoAula; |
} |
public String getSum_titulo() { |
return sum_titulo; |
} |
public String getSum_descricao() { |
return sum_descricao; |
} |
public String getSum_identificador() { |
return sum_identificador; |
} |
public Integer getSum_cdEstado() { |
return sum_cdEstado; |
} |
public Integer getSum_numeroPresencas() { |
return sum_numeroPresencas; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/domain/Aluno.java |
---|
New file |
0,0 → 1,30 |
package pt.estgp.estgweb.services.sigesimports.oracle.domain; |
import java.util.Date; |
/** |
* Created by jorgemachado on 07/01/16. |
*/ |
public class Aluno |
{ |
public Integer codigo; |
public String nome; |
public String telemovel; |
public String sexo; |
public Date data_nascimento; |
public String morada; |
public Integer codigoPostal; |
public Integer subCodigoPostal; |
public String email; |
public String numeroBi; |
public String usernameNetpa; |
public Disciplina[] disciplinasInscrito; |
public AlunoHistorico[] historicos; |
public Aluno() |
{ |
// |
// TODO: Add constructor logic here |
// |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java |
---|
46,6 → 46,8 |
int teachersNew = 0; |
int teachersZeroUnits = 0; |
int unitsNotFound = 0; |
int unitsNotFoundCourseNotFound = 0; |
int unitsFoundForCourseNotFound = 0; |
int unitsAddedToTeachers = 0; |
int unitsRemovedToTeachers = 0; |
int unitsLocalAddedNotRemoved = 0; |
61,6 → 63,8 |
teachersNew = 0; |
teachersZeroUnits = 0; |
unitsNotFound = 0; |
unitsNotFoundCourseNotFound = 0; |
unitsFoundForCourseNotFound = 0; |
unitsAddedToTeachers = 0; |
unitsRemovedToTeachers = 0; |
unitsLocalAddedNotRemoved = 0; |
121,7 → 125,7 |
t = DomainObjectFactory.createTeacherImpl(); |
DaoFactory.getTeacherDaoImpl().save(t); |
newUser = true; |
teachersNew++; |
//teachersNew++; |
} |
else |
{ |
134,7 → 138,7 |
serviceLogInfo(msgS); |
try |
{ |
persist(d, t, newUser,year); |
persist(d, t, newUser,year,logMessages); |
} |
catch (Exception e) |
{ |
187,6 → 191,7 |
serviceLogInfo("#Teachers New: " + teachersNew); |
serviceLogInfo("#Teachers Zero Units: " + teachersZeroUnits); |
serviceLogInfo("#Units not found: " + unitsNotFound); |
serviceLogInfo("#Units with NULL COURSE : " + unitsNotFoundCourseNotFound); |
serviceLogInfo("#Units removed to Teachers: " + unitsRemovedToTeachers); |
serviceLogInfo("#Units added to Teachers: " + unitsAddedToTeachers); |
serviceLogInfo("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
198,6 → 203,7 |
logger.info("#Teachers New: " + teachersNew); |
logger.info("#Teachers Zero Units: " + teachersZeroUnits); |
logger.info("#Units not found: " + unitsNotFound); |
logger.info("#Units with NULL COURSE : " + unitsNotFoundCourseNotFound); |
logger.info("#Units removed to Teachers: " + unitsRemovedToTeachers); |
logger.info("#Units added to Teachers: " + unitsAddedToTeachers); |
logger.info("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
324,11 → 330,14 |
* @param teacher teacher |
* @throws Exception . |
*/ |
private void persist(Docente teacherSiges, Teacher teacher, boolean newUser, String year) throws Exception |
private void persist(Docente teacherSiges, Teacher teacher, boolean newUser, String year,DefaultLogMessages logmessages) throws Exception |
{ |
String msgS; |
if(teacherSiges.getCodigoFuncionario().longValue()==20115) |
System.out.println("Sergio"); |
if(teacherSiges.getCodigoFuncionario().longValue()==20219) |
System.out.println("Eliseu"); |
try |
{ |
448,16 → 457,74 |
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()); |
List<CourseUnit> loadedunits = new ArrayList<CourseUnit>(); |
if(disciplina.getCodigoCurso().intValue() < 0) |
{ |
//TODO -- CASO ESPECIAL TEM DE SER TRATADO DE FORMA ESPECIAL |
//TODO -- ISTO VAI OBRIGAR A FAZER O MESMO PROCESSO N VEZES MUDAMOS PARA UMA LISTA DE LOADEDUNITS |
//TODO -- TEMOS MESMO DE IR BUSCAR AS CADEIRAS AO MAPA DAS TURMAS PRIMEIRO, O MAPA DEVOLVE O CURSO REAL DA TURMA??? PODE SER QUE NAO |
//TODO -- >>>>>NO CASO DA IMPORTACAO DE ESTUDANTES JA GARANTIMOS QUE A TROCA DE CURSO E FEITA PARA O CORRECTO<<<<<<< |
//TODO -- OU SEJA SE OPTASSEMOS POR IR BUSCAR O CURSO REAL AO MAPA: 1) Caso seja apenas 1 para essa turma é esse o curso real, |
//TODO -- mas nesse caso também existe apenas uma cadeira com essa Turma que é nesse curso |
//TODO -- que é precisamente a cadeira com o curso real, será? pode haver uma cadeira noutro curso nessa turma se o mapa der um curso real unico? Nao. |
//TODO -- O WEB SERVICE DEVOLVE TODAS AS COMBINACOES POSSIVEIS ASSUMIDAS DE INSCRICOES NORMAIS COM CD_TIPDISC = 1 ou 2 |
//TODO -- Caso 2) Caso haja duas metemos o docente em todas as cadeiras possiveis (CASO ESCPECIAL), ou as guardamos no mapa de cursos reais, |
//TODO -- ou então vamos à base de dados buscar todas as possiveis e metemos o docente em todas. |
//TODO -- PORTANTO AS CADEIRAS QUE TEMOS NA NOSSA BD JA SAO APENAS AS VALIDAS GARANTIDAS NA IMPORTACAO DE ESTUDANTES |
//TODO -- NAO HA CURSO VINDO DO WEB-SERVICE METEMOS O DOCENTE COM TODAS AS POSSIVEIS CONSIDERANDO A TURMA |
//TODO -- FORMA DE ENCONTRAR A TURMA DEPOIS, TEM DE MUDAR PORQUE VAI MUDAR DE TABELA |
if (courseUnit == null) |
//TODO -- Isto vai passar a vir com Tipologias. Muda alguma coisa? A mesma cadeira vem duas vezes, mas o procedimento tem de ser o mesmo para as duas vezes |
//TODO -- que ela é devolvida, caso já exista nao se faz nada, pode-se meter na lista à mesma, fica lá duas vezes, sera? |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueAllCourses("" + disciplina.getCodigo(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo(), disciplina.getCdTurma()); |
if(courseUnits!=null) |
loadedunits = courseUnits; |
if(loadedunits.size() > 0) |
{ |
msgS = "Unit No Course -> course = " + disciplina.getCodigoCurso().intValue() + " semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " year:" + disciplina.getCdLectivo() |
+ " will load of all possible courses:{ "; |
for(CourseUnit cc : courseUnits) |
{ |
msgS+= cc.getCourseCode() + ","; |
} |
msgS+=" } all added to teacher: " + teacher.getSigesCode(); |
logmessages.addMessage(new DefaultLogMessage("import.teachers", LogMessageTypeEnum.WARNING,msgS )); |
unitsFoundForCourseNotFound++; |
} |
} |
else{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo(),disciplina.getCdTurma()); |
if(courseUnit != null) |
loadedunits.add(courseUnit); |
} |
//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 (loadedunits.size() == 0) |
{ |
msgS = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo(); |
unitsNotFound++; |
if(disciplina.getCodigoCurso()==null || disciplina.getCodigoCurso().intValue() < 0) |
{ |
unitsNotFoundCourseNotFound++; |
msgS += "... unit with No Course Found in SIGES"; |
logmessages.addMessage(new DefaultLogMessage("import.teachers", LogMessageTypeEnum.WARNING,msgS )); |
} |
else |
{ |
msgS += "... probably unit with zero students not imported in CoursesImport"; |
} |
logger.warn(msgS); |
serviceLogWarn(msgS); |
} |
else |
units.add(courseUnit); |
units.addAll(loadedunits); |
} |
//PASSO 2 |
Iterator<CourseUnit> iter = units.iterator(); |
491,7 → 558,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++; |
535,10 → 602,12 |
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); |
113,9 → 112,11 |
// DaoFactory.getCourseDaoImpl().save(c); |
} |
c.setName(d.getNomeCurso()); |
if(d.getGrauCurso() == null || d.getGrauCurso().trim().length() == 0) |
d.setGrauCurso("unknown"); |
String grauBaco = ConfigProperties.getProperty("siges.degree."+d.getGrauCurso()); |
if(c.getDegree() == null) |
c.setDegree(grauBaco); |
c.setDegree(grauBaco); |
c.setCode("" + d.getCodigoCurso().intValue()); |
c.setImportYear(year); |
c.setInstitutionalCode("" + d.getCodigoInstituicao().intValue()); |
125,13 → 126,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 → 212,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 → 221,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.INFO)); |
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 → 318,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 |
---|
25,10 → 25,9 |
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum; |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage; |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
import pt.estgp.estgweb.services.sigesimports.oracle.dao.AulaDao; |
import pt.estgp.estgweb.utils.Dom4jUtil; |
import pt.estgp.estgweb.web.FtpServer; |
import pt.ipportalegre.siges.web.services.ArrayOfAula; |
import pt.ipportalegre.siges.web.services.Aula; |
import pt.ipportalegre.siges.web.services.SiGesWEB; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
39,7 → 38,6 |
import java.io.FileInputStream; |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.math.BigDecimal; |
import java.net.URL; |
import java.util.ArrayList; |
import java.util.HashMap; |
108,7 → 106,7 |
String nowCode = ""; |
for(Long cId: cUs) |
{ |
nowCode = "BACO_ONLY_CODE" + cId; |
nowCode = "" + cId; |
countUnits++; |
try |
{ |
125,13 → 123,15 |
serviceLogInfo(logMessages.getLastMessage()); |
int tries = 3; |
ArrayOfAula arrayOfAulas = null; |
//ArrayOfAula arrayOfAulas = null; |
ArrayList<pt.estgp.estgweb.services.sigesimports.oracle.domain.Aula> arrayOfAulas = null; |
while(tries > 0) |
{ |
//comentario de teste |
try |
{ |
arrayOfAulas = service.getSiGesWEBSoap().getAulas(new BigDecimal(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()), year,c.getCode(),semestre,c.getCourse().getCode()); |
//arrayOfAulas = service.getSiGesWEBSoap().getAulas(new BigDecimal(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()), year,c.getCode(),semestre,c.getCourse().getCode()); |
arrayOfAulas = AulaDao.getInstance().loadAulas(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode(),year,c.getCode(),semestre,c.getCourse().getCode()); |
break; |
} |
catch(Throwable t) |
143,13 → 143,15 |
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); |
} |
} |
if(arrayOfAulas != null && arrayOfAulas.getAula() != null) |
if(arrayOfAulas != null && arrayOfAulas.size() > 0) |
{ |
List<CourseUnitSummary> courseUnitSummaries = new ArrayList<CourseUnitSummary>(); |
163,9 → 165,24 |
JSONArray summaries = new JSONArray(); |
summariesJson.put("summary",summaries); |
int summariesValid = 0; |
for(Aula aula: arrayOfAulas.getAula()) |
for(pt.estgp.estgweb.services.sigesimports.oracle.domain.Aula aula: arrayOfAulas) |
{ |
//todo cdTurma Rollback aqui não retirar o sumário |
//Mas pensar em separar os sumários na página, podemos |
//separar tendo em conta quem entra, se for aluno só vê os |
//seus sumários, se for prof vê os sumários das suas turmas |
if(c.getCdTurma() != null && aula.getAula_codigoTurma()!=null |
&& c.getCdTurma().trim().length() > 0 |
&& aula.getAula_codigoTurma().trim().length() > 0 |
&& !aula.getAula_codigoTurma().equals(c.getCdTurma())) |
{ |
//Código de Turma diferente |
System.out.println("Ignoring summary code: " + aula.getAula_codigoTurma() + " for unit " + c.getName() + "/" + c.getCode() + " T:" + c.getCdTurma()); |
continue; |
} |
//CourseUnitSummary s = map.get(aula.getSumNumeroAula() + ":" + aula.getCodigoSumario()); |
//if(s == null) |
//{ |
175,16 → 192,19 |
//DaoFactory.getCourseUnitSummaryDaoImpl().save(s); |
//summaries.add(); |
//} |
s.setCdTipoOcupacao(aula.getTipoOcupacao().intValue()); |
s.setNrAula(aula.getNumeroAula().intValue()); |
s.setCodigoSumario(""+aula.getCodigoSumario().intValue()); |
s.setCodigoAula(""+aula.getSumNumeroAula().intValue()); |
s.setNumeroAula(aula.getSumNumeroAula().intValue()); |
s.setDataAula(aula.getData().toGregorianCalendar().getTime()); |
s.setTipoAula(aula.getSumTipoAula()); |
s.setCodigoSalaAula("" + aula.getAulaCodigoSalaAula().intValue()); |
s.setAlunosPresentes(aula.getSumNumeroAlunos().intValue()); |
s.setTitulo(aula.getSumTitulo()); |
s.setDescricao(aula.getSumDescricao()); |
s.setcEstado(""+aula.getSumCdEstado().intValue()); |
s.setCodigoAula("" + aula.getSum_numeroAula().intValue()); |
s.setNumeroAula(aula.getSum_numeroAula().intValue()); |
s.setDataAula(aula.getData()); |
s.setTipoAula(aula.getSum_tipoAula()); |
s.setCodigoSalaAula("" + aula.getAula_codigoSalaAula().intValue()); |
s.setAlunosPresentes(aula.getSum_numeroPresencas().intValue()); |
s.setTitulo(aula.getSum_titulo()); |
s.setCodigoDocente(aula.getAula_codigoDocente()+ ""); |
s.setDescricao(aula.getSum_descricao()); |
s.setcEstado(""+aula.getSum_cdEstado().intValue()); |
s.setNumeroHoras("" + aula.getNumeroCelulas().intValue()); |
summaries.put(s.getJson()); |
courseUnitSummaries.add(s); |
200,6 → 220,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 → 245,7 |
} |
else |
{ |
//NAO METE OK MAS METE ZERO |
countUnitsZeroSummaries++; |
unitsZeroSummaries.add(c.getCode()); |
logger.error("Summaries come null in unit:" + c.getCode()); |
232,6 → 254,7 |
} |
catch(Throwable e) |
{ |
//NAO METE OK |
unitsFailed.add(nowCode); |
logger.error(e,e); |
serviceLogError(e.toString(),e); |
254,23 → 277,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 → 399,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 → 426,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/JobServiceInterfaces.java |
---|
43,7 → 43,8 |
List<JobServiceTaskScheduler> tasks = DaoFactory.getJobServiceTaskSchedulerDaoImpl().findAll(); |
for(JobServiceTaskScheduler jobServiceTaskScheduler: tasks) |
{ |
jobServiceTaskScheduler.getLastJobServiceTask().getId(); |
if(jobServiceTaskScheduler.getLastJobServiceTask() != null) |
jobServiceTaskScheduler.getLastJobServiceTask().getId(); |
} |
return tasks; |
} |
/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/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/CourseUnitEvaluationView.java |
---|
19,6 → 19,7 |
private CourseUnitEvaluation courseUnitEvaluation; |
private boolean fechar = false; |
private boolean teacherComplete = false; |
private boolean autosave = false; |
public Class getReferenceClass() |
{ |
83,4 → 84,12 |
public void setTeacherComplete(boolean teacherComplete) { |
this.teacherComplete = teacherComplete; |
} |
public boolean isAutosave() { |
return autosave; |
} |
public void setAutosave(boolean autosave) { |
this.autosave = autosave; |
} |
} |
/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 |
---|
231,6 → 231,10 |
return responsableId; |
} |
public String getCdTurma() { |
return cdTurma; |
} |
public void setResponsableId(long responsableId) { |
this.responsableId = responsableId; |
} |
358,6 → 362,7 |
c.setImportYear(importYear); |
c.setName(name); |
c.setCode(code); |
c.setCdTurma(cdTurma); |
c.setSemestre(semestre); |
if(courseId > 0) |
{ |
492,6 → 497,10 |
return summariesJson; |
} |
public void setCdTurma(String cdTurma) { |
this.cdTurma = cdTurma; |
} |
List<CourseUnitSummaryView> summariesFromJson = null; |
/** |
* |
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitImpl.java |
---|
94,15 → 94,35 |
if(anotherInstance instanceof CourseUnitImpl) |
{ |
CourseUnitImpl anCourseUnit = (CourseUnitImpl) anotherInstance; |
boolean turmaVazia =getCdTurma() == null || getCdTurma().trim().length() == 0; |
boolean anotherTurmaVazia = anCourseUnit.getCdTurma() == null || anCourseUnit.getCdTurma().trim().length() == 0; |
boolean turmasIguais = (turmaVazia && anotherTurmaVazia) || (!turmaVazia && !anotherTurmaVazia && getCdTurma().equals(anCourseUnit.getCdTurma())); |
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()) && |
turmasIguais; |
} |
return false; |
} |
public boolean equalsIgnoringTurma(Object anotherInstance) |
{ |
if(anotherInstance instanceof CourseUnitImpl) |
{ |
CourseUnitImpl anCourseUnit = (CourseUnitImpl) anotherInstance; |
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()); |
} |
return false; |
} |
/** |
* Means that is teacher os responsable teacher or from course commission |
* Only works in open transaction |
124,6 → 144,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 → 163,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,7 → 12,9 |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import java.io.Serializable; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.Iterator; |
import java.util.List; |
import static org.hibernate.criterion.Restrictions.*; |
133,7 → 135,17 |
public List<User> loadRoleUsers(String role) |
{ |
return createCriteria().add(like("roles", "%" + role + "%")).addOrder(Order.asc("name")).list(); |
if(role == null || role.trim().length() == 0) |
return new ArrayList<User>(); |
List<User> users = createCriteria().add(like("roles", "%" + role + "%")).addOrder(Order.asc("name")).list(); |
Iterator<User> iter = users.iterator(); |
while(iter.hasNext()) |
{ |
User u = iter.next(); |
if(!u.hasRole(role)) |
iter.remove(); |
} |
return users; |
} |
public List<User> loadRoleAreaUsers(String role, String area) |
141,7 → 153,15 |
Criteria c = createCriteria().add(like("roles", "%" + role + "%")).addOrder(Order.asc("name")); |
if(area != null && area.trim().length() > 0) |
c.add(eq("mainArea",area)); |
return c.list(); |
List<User> users = c.list(); |
Iterator<User> iter = users.iterator(); |
while(iter.hasNext()) |
{ |
User u = iter.next(); |
if(!u.hasRole(role)) |
iter.remove(); |
} |
return users; |
} |
public List<User> findUsers(String textToSearch) |
226,10 → 246,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; |
237,6 → 261,23 |
co = or(co, cor); |
} |
criteria.add(co); |
return criteria.list(); |
List<User> users = criteria.list(); |
Iterator<User> iter = users.iterator(); |
while(iter.hasNext()) |
{ |
boolean hasIt = false; |
User u = iter.next(); |
for(String role: roles) |
{ |
if(u.hasRole(role)) |
{ |
hasIt = true; |
break; |
} |
} |
if(!hasIt) |
iter.remove(); |
} |
return users; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java |
---|
53,6 → 53,47 |
.list().size(); |
} |
public int countCoursesUnits(String importYear,long courseId) |
{ |
return createCriteria() |
.createAlias("courseUnits", "c") |
.setProjection(Projections.property("c.id")) |
.add(eq("c.importYear", importYear)) |
.add(eq("id", courseId)) |
.list().size(); |
} |
public int countCoursesUnitsNot(String importYear,long courseId) |
{ |
return createCriteria() |
.createAlias("courseUnits", "c") |
.setProjection(Projections.property("c.id")) |
.add(not(eq("c.importYear", importYear))) |
.add(eq("id", courseId)) |
.list().size(); |
} |
public List<Long> findCoursesUnitsIds(String importYear,long courseId) |
{ |
return createCriteria() |
.createAlias("courseUnits", "c") |
.setProjection(Projections.property("c.id")) |
.add(eq("id", courseId)) |
.add(eq("c.importYear", importYear)) |
.addOrder(Order.asc("c.name")) |
.list(); |
} |
public List<Long> findCoursesUnitsIds(long courseId) |
{ |
return createCriteria() |
.createAlias("courseUnits","c") |
.setProjection(Projections.property("c.id")) |
.add(eq("id", courseId)) |
.addOrder(Order.asc("c.importYear")) |
.addOrder(Order.asc("c.name")) |
.list(); |
} |
public List<Course> searchActualYear(String query, SearchTypeEnum searchTypeEnum, int max, int page) |
{ |
Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "name", "description"); |
209,10 → 250,24 |
public List<Course> findAll(String importYear) |
{ |
return createCriteria().add(eq("importYear", importYear)) |
return createCriteria().add(eq("importYear", importYear)).addOrder(Order.asc("name")) |
.list(); |
} |
public List<Course> findAllStatus(String importYear,boolean status) |
{ |
return createCriteria() |
.add(eq("importYear", importYear)) |
.add(eq("status", status)) |
.addOrder(Order.asc("name")) |
.list(); |
} |
public List<Course> findActiveCourses(String importYear) |
{ |
return findAllStatus(importYear,true); |
} |
public List<Course> findAllNotIn(String importYear) |
{ |
return createCriteria().add(not(eq("importYear", importYear))) |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
220,19 → 220,77 |
} |
//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) |
{ |
//todo cdTurma Rollback |
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) |
{ |
//todo cdTurma Rollback |
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 List<CourseUnit> loadBySigesCodeUniqueAllCourses(String sigesCode, String semestre, String year,String turma) |
{ |
//todo cdTurma Rollback |
return |
createCriteria() |
.add(eq("code", sigesCode)) |
// REMOVED TO LET BE ALL COURSES .add(eq("courseCode", courseCode)) |
.add(eq("semestre", semestre)) |
.add(eq("importYear", year)) |
.add(eq("cdTurma", turma)) |
.list(); |
} |
public CourseUnit loadBySigesCodeUniqueMostRecent(String sigesCode, String courseCode, String semestre) |
{ |
List<CourseUnit> cus = |
406,6 → 464,8 |
{ |
//todo falta a projeccao do teacher id |
return createCriteria() |
.createAlias("course","c") |
.add(eq("c.status", true)) |
.add(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear())) |
.add((or(isNull("programStreamId"), eq("programStreamId", "")))) |
.createAlias("teachers", "th") |
507,10 → 567,16 |
public Course course; |
public List<CourseUnit> courseUnits; |
} |
/** |
* Load all programs from active courses that are for validation |
* @param userSession |
* @return |
*/ |
public List<CourseMissingValidationProgram> loadMissingProgramValidate(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole()) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
528,11 → 594,15 |
return result; |
} |
/** |
* Load all programs missing from active courses |
* @param userSession |
* @return |
*/ |
public List<CourseMissingValidationProgram> loadMissingPrograms(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
for(Course course: courses) |
{ |
if(userSession.getUser().hasRole(course.getValidationRole()) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
/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; |
287,4 → 289,13 |
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 |
---|
36,13 → 36,14 |
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) |
{ |
Configuration config = DaoFactory.getConfigurationDaoImpl().loadSimpleConfigurationForConsult(); |
userSession.setNowConfiguration(config); |
for(SessionObject sessionObject: userSession.getObjects()) |
{ |
51,6 → 52,7 |
} |
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; |
81,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/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/controllers/courseunits/CourseUnitsEvaluationController.java |
---|
85,21 → 85,29 |
HttpServletResponse response) |
throws ServletException |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
try |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
long id = cUF.getCourseUnitView().getId(); |
CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView(); |
if(request.getParameter("json")!=null && request.getParameter("json").equals("true")) |
{ |
cuV.setAutosave(true); |
} |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{cuV, id}; |
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
addMessage(request,"courseunit.evaluation.success"); |
return mapping.findForward("load"); |
if(request.getParameter("json")!=null && request.getParameter("json").equals("true")) |
{ |
return mapping.findForward("jsonOk"); |
} |
else |
return mapping.findForward("load"); |
} |
catch (FilterChainFailedException e) |
{ |
112,7 → 120,8 |
catch (Throwable e) |
{ |
logger.error(e, e); |
return mapping.findForward("error500"); |
addError(request, "courseunit.evaluation.tryagain"); |
return editEvaluation(mapping,cUF,request,response); |
} |
} |
123,17 → 132,18 |
HttpServletResponse response) |
throws ServletException |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
try |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
long id = cUF.getCourseUnitView().getId(); |
CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView(); |
cuV.setTeacherComplete(true); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{cuV, id}; |
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
request.setAttribute("CourseUnitView", cV); |
151,7 → 161,9 |
catch (Throwable e) |
{ |
logger.error(e, e); |
return mapping.findForward("error500"); |
addError(request, "courseunit.evaluation.tryagain"); |
return editEvaluation(mapping,cUF,request,response); |
//return mapping.findForward("error500"); |
} |
} |
161,18 → 173,18 |
HttpServletResponse response) |
throws ServletException |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
try |
{ |
CourseUnitEvaluationForm cUF = (CourseUnitEvaluationForm) form; |
long id = cUF.getCourseUnitView().getId(); |
CourseUnitEvaluationView cuV = cUF.getCourseUnitEvaluationView(); |
cuV.setFechar(true); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{cuV, id}; |
sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
cuV = (CourseUnitEvaluationView) sm.execute(RequestUtils.getRequester(request, response), "SaveCourseUnitEvaluation", args); |
CourseUnitView cV = loadCourseUnitView(id,true,false, mapping, request, response); |
cUF.setCourseUnitView(cV); |
cUF.setCourseUnitEvaluationView(cuV); |
request.setAttribute("CourseUnitView", cV); |
addMessage(request,"courseunit.evaluation.success"); |
return mapping.findForward("load"); |
188,7 → 200,8 |
catch (Throwable e) |
{ |
logger.error(e, e); |
return mapping.findForward("error500"); |
addError(request, "courseunit.evaluation.tryagain"); |
return editEvaluation(mapping,cUF,request,response); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsAdminController.java |
---|
5,14 → 5,10 |
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.services.courseunits.DeleteCourseUnitService; |
import pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
375,23 → 371,25 |
{ |
try { |
// long id = Long.parseLong(request.getParameter("id")); |
// IServiceManager sm = null; |
// sm = ServiceManager.getInstance(); |
// String[] names = new String[]{}; |
// Object[] args = new Object[]{id}; |
long id = Long.parseLong(request.getParameter("id")); |
IServiceManager sm = null; |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{id}; |
// sm.execute(RequestUtils.getRequester(request, response), "DeleteCourseUnit", args, names); |
// addMessage(request,"courseunit.removed"); |
logger.info("N�o implementado por razoes de seguran�a"); |
addMessage(request,"courseunit.security.not.implemented"); |
DeleteCourseUnitService.CourseUnitContentsInfo result = (DeleteCourseUnitService.CourseUnitContentsInfo) sm.execute(RequestUtils.getRequester(request, response), "TryDeleteCourseUnitService", args, names); |
if(result.isCanDelete()) |
addMessage(request,"courseunit.removed"); |
else |
addError(request,"courseunit.cant.be.removed"); |
//logger.info("Não implementado por razoes de segurança"); |
//addMessage(request,"courseunit.security.not.implemented"); |
return mapping.findForward("delete"); |
} catch (Throwable e) { |
addMessage(request,"error.500"); |
logger.error(e,e); |
return mapping.findForward("error500"); |
} |
return mapping.getInputForward(); |
} |
public ActionForward search(ActionMapping mapping, |
/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/updates/version/release2015-11.txt |
---|
82,4 → 82,161 |
- 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 |
* |
* */ |
/*** |
NOTAS SOBRE BASE DE DADOS DE INSCRICOES |
***/ |
Existem Cursos Ficticios na ESTG |
Erasmus |
Cadeiras a Vulso |
Vasco da Gama |
que são cursos que apesar de os alunos terem inscrições normais tem de ser mapeadas |
ao verdadeiro curso indo buscar o curso pela turma indo buscar os pares Turma Curso |
###################### |
REVISAO |
DESCRICAO DO PROCESSO DE IMPORTACOES |
###################### |
1 - O sistema vai buscar todas as disciplinas diferenciando-as por Turma, Codigo, Ano, Semestre, Curso |
considerando as Inscrições de alunos T_INSCR Regulares codigo Tipo 1 e 2 |
obtendo o resto da info da TB_DISCIP |
(DisciplinaDao) |
2 - O Sistema cria uma unidade por cada saida do ponto anterior |
TO BE (Mudar isto-> o sistema tem de criar apenas uma cadeira para todas as turmas) |
Basta mudar no importador para procurar a cadeira sem considerar o código de |
turma e depois adiciona a turma se esta não existe. |
3 - O sistema importa Estudantes e Docentes |
Ambos os casos trazem agregados as suas disciplinas |
- Para o estudante obtém-se essa lista derivado das inscrições |
- Do lado do importador inscrições de código diferente de 1 ou 2 |
ou em cursos ficticios obrigam a uma conversão do código de curso |
para o código do curso Real essa derivação faz-se obtendo uma |
relação das Turmas com os códigos de curso, considerando para isso |
apenas inscrições tipo 1 e cursos não ficticios como o caso do erasmus |
ou disciplinas a vulso ou Vasco da Gama |
TOBE (Os alunos estão a ser colocados nas cadeiras considerando a turma |
isso tem de deixar de acontecer, a cadeira extraida não pode usar o código de turma |
e depois então vai-se colocar o aluno na turma respetiva após termos colocado |
já o aluno na cadeira) |
TOBE (O Workflow de remoção de um aluno de uma cadeira tem de considerar |
que removê-lo de uma cadeira tem também a implicação de o remover da lista da turmas) |
- Pelo docente obtém-se essa lista derivado dos sumários do horário de trabalho |
ou seja o sistema só é capaz de associar um docente a uma disciplina se já houver |
uma AULA criada no sistema NETPA. (A outra hipotese é ir ao Horario de Referência |
mas isto ainda não é feito.) |
As ocorrencias de cadeiras unicas correspondem as combinacoes |
OUTUPUT Turma, Codigo de Cadeira, Codigo Curso |
para o |
INPUT Ano, Semestre, Instituicao escolhidos |
TO BE (O sistema deverá passar a considerar a lista de cadeiras do docente |
sem considerar o código de turma, e depois de adicionar |
o docente à cadeira deverá ir adicioná-lo às Turmas respectivas) |
TOBE (O Workflow de remoção de um professor de uma cadeira tem de considerar |
que removê-lo de uma cadeira tem também a implicação de o remover da lista da turmas) |
TO BE (As ocorrências deverão vir ainda abertas por TIPOLOGIA, |
ou então vir uma lista separada de tipologias para cada docente quando se faz o pedido |
das cadeiras. A politica de escolha da tipologia está por decidir. Deverá |
ser feita neste ponto mas a ser decidida. Hipoteses: |
a) Considerar os sumários (Horario de Trabalho e o campo CD_TIPO_AULA na tabela |
T_SUMARIOS_AULAS)) limitado a 1,2,3,4,5,6,7,8 mas é um campo antigo |
deveria ter texto e não tem correspondencia em tabela nenhuma, desconfia-se que os tipos |
estão na Combobox HardCoded e não servem para mais nada |
b) Considerar o campo CD_TIPO_AULA no Horario de Referência do Docente, |
que corresponde à tabela T_OCUPACOES, neste caso perde-se tudo |
o que não tenha horario de referência criado como por exemplo estágios |
c) considerar o mesmo campo nos DETALHE_AULAS dos sumários, Horario de Trabalho |
mas ai temos informação a mais e a politica poderá ser dizer o que é ou não considerado |
e ignoramos o resto. |
TO BE (Todas as associações Turma Docente são necessárias como a cola entre os alunos e o |
professor, sem isto é impossivel saber que alunos estão com que professor) |
###################### |
REVISAO |
DESCRICAO DO PROCESSO DE IMPORTACOES |
###################### |
Sumarios T_SUMARIOSAULAS.CD_ESTADO |
1 Lançado |
2 Faltou |
3 Cancelado |
4 Pré-lançado |
importa tudo |
Para o Json vai apenas aquilo que tem |
Numero Aula > -1 e |
que tem menos de 48 horas |
e que tem titulo ou descricao e |
ESTADO = 1; |
Para o PDF vai apenas o que tem |
numero de aula > -1 |
e estado do Sumário = 1 |
o tipo 1 apenas |
/impl/src/hbm/pt/estgp/estgweb/domain/CourseUnit.hbm.xml |
---|
48,6 → 48,7 |
<key column="courseUnit"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitBlog" /> |
</set> |
<set name="teachers" lazy="true" table="teachedunits"> |
<key column="courseUnitId"/> |
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="teacherId"/> |
72,6 → 73,10 |
<key column="courseUnit"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitSummary"/> |
</set> |
<set name="turmas" cascade="delete" lazy="true" order-by="saveDate desc"> |
<key column="courseUnit"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitTurma" /> |
</set> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/> |
</class> |
171,12 → 176,15 |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="dataAula" type="timestamp"/> |
<property name="cdTipoOcupacao" type="int"/> |
<property name="tipoAula" type="string"/> |
<property name="codigoAula" type="string"/> |
<property name="codigoSumario" type="string"/> |
<property name="codigoSalaAula" type="string"/> |
<property name="codigoDocente" type="string"/> |
<property name="alunosPresentes" type="int"/> |
<property name="numeroAula" type="int"/> |
<property name="nrAula" type="int"/> |
<property name="titulo" type="string" index="tituloIndex"/> |
<property name="descricao" type="text"/> |
<property name="cEstado" type="string"/> |
284,6 → 292,52 |
</class> |
<!-- todo Verificar o serviço de apagar cadeira |
Parece-me que vai sempre haver aqui turmas a menos que se removam |
as turmas quando nao há mais alunos, pelo menos tem de se vir removendo |
daqui as associações aos estudantes e profs quando saiem da lista primária |
--> |
<class name="pt.estgp.estgweb.domain.CourseUnitTurma" table="courseunitturma" abstract="true"> |
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta> |
<meta attribute="scope-class">public abstract</meta> |
<id name="id" type="long"> |
<generator class="native"/> |
</id> |
<discriminator column="discrimitator"/> |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="turma" type="string"/> |
<set name="docentesTipologia" cascade="delete" lazy="true" order-by="deliverDate asc"> |
<key column="courseUnitTurma"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitTurmaDocenteTipologia"/> |
</set> |
<set name="teachers" lazy="true" table="teachedunits"> |
<key column="courseUnitId"/> |
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="teacherId"/> |
</set> |
<set name="students" lazy="true" table="subscribedunits"> |
<key column="courseUnitId"/> |
<many-to-many class="pt.estgp.estgweb.domain.StudentImpl" column="studentId"/> |
</set> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitTurmaImpl" discriminator-value="CourseUnitTurmaImpl"/> |
</class> |
<class name="pt.estgp.estgweb.domain.CourseUnitTurmaDocenteTipologia" table="courseunitturmadocentetipologia" abstract="true"> |
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta> |
<meta attribute="scope-class">public abstract</meta> |
<id name="id" type="long"> |
<generator class="native"/> |
</id> |
<discriminator column="discrimitator"/> |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="codigoTipoOcupacao" type="string"/> |
<property name="tipoOcupacaoDesc" type="string"/> |
<many-to-one name="teacher" class="pt.estgp.estgweb.domain.Teacher" lazy="false" outer-join="true" not-null="false"/> |
<subclass name="pt.estgp.estgweb.domain.CourseUnitTurmaDocenteTipologiaImpl" discriminator-value="CourseUnitTurmaDocenteTipologiaImpl"/> |
</class> |
<!--<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunitassignement" abstract="true">--> |
<!--<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>--> |
<!--<meta attribute="scope-class">public abstract</meta>--> |
/impl/src/web/imgs/wait.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/auth/index.jsp |
---|
5,6 → 5,11 |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSessionImpl" scope="request"/> |
<html:errors/> |
<% |
%> |
<div class="container"> |
<logic:notEmpty name="UserSession" property="nowConfiguration.openInfoIntranet"> |
<div class="row"> |
32,4 → 37,4 |
</div> |
</div> |
</div> |
/impl/src/web/admin/courses/courseCourseUnits.jsp |
---|
New file |
0,0 → 1,117 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitView" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%-- |
NOTAS DE DESENVOLVIMENTO |
Este serviço pode encaminhar para edição de unidades curriculares |
Portanto a edição de unidades curriculares (Administrativa) envia a CourseUnitView |
que é usada aqui para ler o courseId de forma a não perder o ano onde estavamos |
Por essa razao o courseId tem de estar presente em todos os links de saida desta página |
--%> |
<style> |
.nav-menu li |
{ |
padding-left: 0; |
margin-left: 0; |
padding-bottom: 0; |
padding-top: 0; |
margin-bottom: 0; |
margin-top: 0; |
} |
</style> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
%> |
<% |
String courseId = request.getParameter("courseId"); |
if(courseId == null || courseId.length()==0) |
{ |
CourseUnitView view = (CourseUnitView) request.getAttribute("CourseUnitView"); |
if(view == null) |
{ |
// importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction(); |
} |
else |
{ |
courseId = ""+view.getCourseId(); |
} |
} |
Course c = DaoFactory.getCourseDaoImpl().get(new Long(courseId)); |
CourseView cv = new CourseView(c); |
request.setAttribute("CourseView",cv); |
List<Long> courseUnits = DaoFactory.getCourseDaoImpl().findCoursesUnitsIds(c.getId()); |
request.setAttribute("courseUnits",courseUnits); |
%> |
<div class="container-fluid"> |
<div class="row"> |
<div class="col-md-12"> |
<h1>Unidades Curriculares do Curso de - <bean:message key="course.${CourseView.degreeCleanCode}"/> - <%=c.getCode()%> - <%=c.getName()%></h1> |
</div> |
</div> |
<div class="row"> |
<div class="col-md-12"> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Código</th> |
<th>Nome</th> |
<th>Turma</th> |
<th>Ano</th> |
<th class="filter-name filter-select">Semestre</th> |
<th>Editar</th> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="unitId" name="courseUnits" type="java.lang.Long"> |
<% |
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(unitId); |
CourseUnitView cuv = new CourseUnitView(cu); |
request.setAttribute("cuv",cuv); |
%> |
<tr> |
<td>${cuv.code}</td> |
<td>${cuv.name}</td> |
<td>${cuv.cdTurma}</td> |
<td>${cuv.importYear}</td> |
<td><bean:message key="courseunit.${cuv.semestre}"/></td> |
<td> |
<a class="btn btn-warning" href="<%=request.getContextPath()%>/user/startEditCourseUnitAdminFromCourseCourseUnits.do?id=${cuv.id}&courseId=<%=c.getId()%>"><bean:message key="edit"/><span class="glyphicon glyphicon-pencil"></span></a> |
</td> |
</tr> |
</logic:iterate> |
</tbody> |
</table> |
</div> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/impl/src/web/admin/courses/courseComissions.jsp |
---|
New file |
0,0 → 1,190 |
<%@ page import="jomm.dao.impl.AbstractDao" %> |
<%@ page import="pt.estgp.estgweb.domain.Course" %> |
<%@ page import="pt.estgp.estgweb.domain.User" %> |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseView" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.UserSession" %> |
<%@ page import="pt.estgp.estgweb.web.UserSessionProxy" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<style> |
.nav-menu li |
{ |
padding-left: 0; |
margin-left: 0; |
padding-bottom: 0; |
padding-top: 0; |
margin-bottom: 0; |
margin-top: 0; |
} |
</style> |
<% |
AbstractDao.getCurrentSession().beginTransaction(); |
%> |
<% |
String importYear = request.getParameter("importYear"); |
String nowInterfaceImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
if(importYear == null || importYear.length()==0) |
{ |
importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
} |
List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(importYear); |
%> |
<div class="container-fluid"> |
<div class="row"> |
<div class="col-sm-12 col-md-4"> |
<h1>Listagem de Cursos</h1> |
<form role="form" action="<%=request.getContextPath()%>/user/courseComissions.do" method="post"> |
<div class="form-group"> |
<label for="importYear">Escolha o úlitmo ano em que o curso esteve ativo:</label> |
<select name="importYear" id="importYear" class="form-control" onchange="this.form.submit()"> |
<option value="">Ultimo ano ativo</option> |
<% |
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 class="row"> |
<div class="col-md-12"> |
<h1>Cursos no Sistema ativos no ano <%=importYear%></h1> |
</div> |
</div> |
<div class="row"> |
<div class="col-md-12"> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Codigo</th> |
<th>Tipo de Curso</th> |
<th>Curso</th> |
<baco:hasRole role="services,admin,all"> |
<th>Activo</th> |
<th>Papel Comissão Curso</th> |
<th>Unidades <%=importYear%></th> |
<th>Unidades noutros anos</th> |
</baco:hasRole> |
<th>Comissão de Curso</th> |
<baco:hasRole role="services,admin,all"> |
<th>Unidades</th> |
<th>Editar</th> |
</baco:hasRole> |
</tr> |
</thead> |
<tbody> |
<% |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
for(Course c: courses) |
{ |
CourseView cv = new CourseView(c); |
request.setAttribute("CourseView",cv); |
int unitsSize=DaoFactory.getCourseDaoImpl().countCoursesUnits(importYear,c.getId()); |
int unitsSizeOthers=DaoFactory.getCourseDaoImpl().countCoursesUnitsNot(importYear, c.getId()); |
int totalUnits = unitsSize + unitsSizeOthers; |
//So da verdadeiro se estivermos neste ano e ele estiver inativo |
boolean notActiveAndActualThisYear = nowInterfaceImportYear.equals(importYear) && !cv.isStatus(); |
if((totalUnits > 0 && !notActiveAndActualThisYear) || userSession.getUser().isAdmin() || userSession.getUser().hasRole("services")) |
{ |
%> |
<tr> |
<td>${CourseView.code}</td> |
<td><bean:message key="course.${CourseView.degreeCleanCode}"/></td> |
<td>${CourseView.name}</td> |
<baco:hasRole role="services,admin,all"> |
<td>${CourseView.status}</td> |
<td> |
<logic:notEmpty name="CourseView" property="validationRole"> |
<bean:message key="user.role.${CourseView.validationRole}"/> |
</logic:notEmpty> |
<logic:empty name="CourseView" property="validationRole"> |
Papel não atribuido (Corrigir Situação) |
</logic:empty> |
</td> |
<td> |
<%=unitsSize%> |
</td> |
<td> |
<%=unitsSizeOthers%> |
</td> |
</baco:hasRole> |
<td> |
<div class="list-group"> |
<% |
for(User u:DaoFactory.getUserDaoImpl().loadRoleUsers(c.getValidationRole())) |
{ |
%> |
<div class="list-group-item"> |
<%=u.getName()%> |
<baco:hasRole role="admin,services"> |
<a class="btn btn-default" target="_blank" href="<%=request.getContextPath()%>/user/startProfileFromSearchUsers.do?id=<%=u.getId()%>"> |
<span class="glyphicon glyphicon-pencil"></span> |
</a> |
</baco:hasRole> |
</div> |
<% |
} |
%> |
</div> |
</td> |
<baco:hasRole role="services,admin,all"> |
<td> |
<a class="btn btn-default" target="_blank" href="<%=request.getContextPath()%>/user/courseCourseUnits.do?courseId=<%=c.getId()%>"> |
<span class="glyphicon glyphicon-list-alt"></span> |
</a> |
</td> |
<td> |
<a class="btn btn-warning" target="_blank" href="<%=request.getContextPath()%>/user/courseControllerFromServiceZone.do?dispatch=edit&courseView.id=<%=c.getId()%>"> |
<span class="glyphicon glyphicon-pencil"></span> |
</a> |
</td> |
</baco:hasRole> |
</tr> |
<% |
} |
} |
%> |
</tbody> |
</table> |
</div> |
</div> |
</div> |
<% |
AbstractDao.getCurrentSession().getTransaction().commit(); |
%> |
/impl/src/web/admin/courses/topnavCourseCourseUnits.jsp |
---|
New file |
0,0 → 1,16 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<%@ page import="pt.estgp.estgweb.domain.views.BlogView" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%--<baco:object2Request beanIdName="id" classname="pt.estgp.estgweb.domain.CourseUnit" useBean="CourseUnitView"/>--%> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course.course.units"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/admin/courses/topnavCourseComissions.jsp |
---|
New file |
0,0 → 1,16 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<%@ page import="pt.estgp.estgweb.domain.views.BlogView" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%--<baco:object2Request beanIdName="id" classname="pt.estgp.estgweb.domain.CourseUnit" useBean="CourseUnitView"/>--%> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "course.comissions"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/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,209 |
<%@ 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"); |
AbstractDao.getCurrentSession().beginTransaction(); |
if(importYear == null) |
importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
Criteria c = AbstractDao.getCurrentSession().createCriteria(CourseUnit.class); |
c.setProjection(Projections.property("id")); |
c.createAlias("course","co") |
.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()%>/user/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/topnavEditCourseUnitFromDelete.jsp |
---|
New file |
0,0 → 1,27 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<%-- |
NOTAS DE DESENVOLVIMENTO |
Para voltar à pagina de delete units precisamos de manter o importYear para não se perder o contexto |
do ano onde o user estava a trabalhar no apagar de unidades |
O importYear tem de estar portanto em todas as interações que partem |
do courseUnitDeleteAdministration |
--%> |
<% |
String importYear = request.getParameter("importYear"); |
if(importYear != null) |
{ |
importYear = "?importYear=" + importYear; |
} |
else |
importYear =""; |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace("/admin/courseUnitsDeleteAdmin.do" + importYear, "courseunit.delete.administration"); |
topNav.addNavPlace(null, "courseunit.edit"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/admin/courseunits/topnavEditCourseUnitFromCourseCourseUnits.jsp |
---|
New file |
0,0 → 1,12 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
String courseId = request.getParameter("courseId"); |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace("/user/courseCourseUnits.do?courseId="+courseId, "course.course.units"); |
topNav.addNavPlace(null, "courseunit.edit"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/admin/courseunits/courseUnitDeleteAdministration.jsp |
---|
New file |
0,0 → 1,243 |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService" %> |
<%@ page import="pt.estgp.estgweb.utils.DatesUtils" %> |
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.domain.views.CourseUnitView" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%-- |
NOTAS DE DESENVOLVIMENTO |
Este serviço pode encaminhar para edição de unidades curriculares |
Portanto a edição de unidades curriculares (Administrativa) envia a CourseUnitView |
que é usada aqui para ler o importYear de forma a não perder o ano onde estavamos |
Por essa razao o importYear tem de estar presente em todos os links de saida desta página |
--%> |
<% |
String importYear = request.getParameter("importYear"); |
if(importYear == null || importYear.length()==0) |
{ |
CourseUnitView view = (CourseUnitView) request.getAttribute("CourseUnitView"); |
if(view == null) |
{ |
// importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYearCreateTransaction(); |
} |
else |
{ |
importYear = view.getImportYear(); |
} |
} |
%> |
<div class="container"> |
<div class="row"> |
<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()%>/admin/courseUnitsDeleteAdmin.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()"> |
<option value="">Escolha Ano</option> |
<% |
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> |
<% |
if(importYear == null) |
{ |
} |
else |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{importYear}; |
List<DeleteCourseUnitService.CourseUnitContentsInfo> courseUnitContentsInfos = (List<DeleteCourseUnitService.CourseUnitContentsInfo>) sm.execute(RequestUtils.getRequester(request, response), "LoadCandidatesDeleteCourseUnitService", args, names); |
request.setAttribute("CourseUnitContentsInfos", courseUnitContentsInfos); |
%> |
<style> |
.modal-dialog{ |
position: absolute; |
left: 0; |
//now you must set a margin left under zero - value is a half width your window |
} |
</style> |
<script> |
$(document).ready(function(){ |
$('.deleteModal').on('show.bs.modal', function(e) { |
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href')); |
}); |
}); |
</script> |
<logic:iterate id="contentsInfo" name="CourseUnitContentsInfos" type="pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService.CourseUnitContentsInfo"> |
<div id="info${contentsInfo.cuv.id}" class="modal fade" role="dialog"> |
<div class="modal-dialog modal-sm"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<button type="button" class="close" data-dismiss="modal">×</button> |
<h4 class="modal-title">${contentsInfo.cuv.name}/${contentsInfo.cuv.code} - ${contentsInfo.cuv.courseName}/${contentsInfo.cuv.courseCode} - ${contentsInfo.cuv.semestre} - ${contentsInfo.cuv.importYear}</h4> |
</div> |
<div class="modal-body"> |
<logic:iterate id="msgWarn" name="contentsInfo" property="warnings"> |
<p>${msgWarn}</p> |
</logic:iterate> |
</div> |
<div class="modal-footer"> |
<logic:equal value="true" name="contentsInfo" property="canDelete"> |
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration.do?dispatch=delete&id=${contentsInfo.cuv.id}&importYear=<%=importYear%>" data-toggle="modal" data-target="#confirm-delete${contentsInfo.cuv.id}"> |
<bean:message key="delete"/> |
</button> |
</logic:equal> |
<html:link styleClass="btn btn-default" action="/user/startLoadCourseUnitFromHome?id=${contentsInfo.cuv.id}" target="_blank">Ir para a página</html:link> |
<button type="button" class="btn btn-default" data-dismiss="modal"><bean:message key="close"/></button> |
</div> |
</div> |
</div> |
</div> |
<div class="modal fade deleteModal" id="confirm-delete${contentsInfo.cuv.id}" tabindex="-1" role="dialog" > |
<div class="modal-dialog"> |
<div class="modal-content"> |
<div class="modal-header"> |
<h4 class="modal-title">${contentsInfo.cuv.name}/${contentsInfo.cuv.code} - ${contentsInfo.cuv.courseName}/${contentsInfo.cuv.courseCode} - ${contentsInfo.cuv.semestre} - ${contentsInfo.cuv.importYear}</h4> |
</div> |
<div class="modal-body"> |
<logic:iterate id="msgWarn" name="contentsInfo" property="warnings"> |
<p>${msgWarn}</p> |
</logic:iterate> |
<logic:empty name="contentsInfo" property="warnings"> |
Não tem avisos nesta unidade. |
</logic:empty> |
</div> |
<div class="modal-footer"> |
Tem a certeza que desja apagar esta unidade curricular? |
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> |
<a class="btn btn-danger btn-ok">Delete</a> |
</div> |
</div> |
</div> |
</div> |
</logic:iterate> |
<!--Modais de iformação com avisos de conteudo da unidade--> |
<jomm:messages/> |
<html:errors/> |
<div class="row"> |
<div class="col-sm-12 col-md-12"> |
<div class="panel panel-default"> |
<div class="panel-heading"> |
Administração de Unidades Candidatas a Apagar com Zero Estudantes |
<a href="<%=request.getContextPath()%>/admin/courseUnitsDeleteAdmin.do" class="btn btn-info"><span class="glyphicon glyphicon-refresh"></span></a> |
</div> |
<div class="panel-body"> |
<table class="tablesorter tablesorterfiltered"> |
<thead> |
<tr> |
<th>Código</th> |
<th>Nome</th> |
<th>Turma</th> |
<th>Código Curso</th> |
<th class="filter-name filter-select">Curso</th> |
<th class="filter-name filter-select">Grau Curso</th> |
<th>Ano</th> |
<th class="filter-name filter-select">Semestre</th> |
<th class="filter-name filter-select">Apagar</th> |
<th>Apagar</th> |
<th>Editar</th> |
<th>Info</th> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="contentsInfo" name="CourseUnitContentsInfos" type="pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService.CourseUnitContentsInfo"> |
<tr> |
<td>${contentsInfo.cuv.code}</td> |
<td>${contentsInfo.cuv.name}</td> |
<td>${contentsInfo.cuv.cdTurma}</td> |
<td>${contentsInfo.cuv.courseCode}</td> |
<td>${contentsInfo.cuv.courseName}</td> |
<td><bean:message key="course.${contentsInfo.cuv.courseView.degreeCleanCode}"/></td> |
<td>${contentsInfo.cuv.importYear}</td> |
<td><bean:message key="courseunit.${contentsInfo.cuv.semestre}"/></td> |
<td> |
<bean:message key="courseunit.canDelete.${contentsInfo.canDelete}"/> |
</td> |
<td> |
<logic:equal value="true" name="contentsInfo" property="canDelete"> |
<button class="btn btn-danger" data-href="<%=request.getContextPath()%>/user/startDeleteCourseUnitAdminFromUnitsDeleteAdministration.do?importYear=<%=importYear%>&dispatch=delete&id=${contentsInfo.cuv.id}" data-toggle="modal" data-target="#confirm-delete${contentsInfo.cuv.id}"> |
<bean:message key="delete"/> |
</button> |
</logic:equal> |
</td> |
<td> |
<a class="btn btn-warning" href="<%=request.getContextPath()%>/user/startEditCourseUnitAdminFromUnitsDeleteAdministration.do?id=${contentsInfo.cuv.id}&importYear=<%=importYear%>"><bean:message key="edit"/><span class="glyphicon glyphicon-pencil"></span></a> |
</td> |
<td> |
<logic:notEmpty name="contentsInfo" property="warnings"> |
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#info${contentsInfo.cuv.id}"><span class="glyphicon glyphicon-alert"></span></button> |
</logic:notEmpty> |
</td> |
</tr> |
</logic:iterate> |
</tbody> |
</table> |
</div> |
</div> |
</div> |
</div> |
<% |
} |
%> |
</div> |
/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[]{}; |
44,7 → 55,25 |
<li><html:link action="/user/startLoadCourseUnitFromHome.do?id=${CourseUnitView.id}">Página da Unidade</html:link></li> |
<li><html:link action="/startLoadCourseUnitProgram.do?courseUnitId=${CourseUnitView.id}">Ficha Curricular</html:link></li> |
</ul> |
<html:form styleClass="form" action="/user/courseUnitControllerAdminFromServiceZone" enctype="multipart/form-data"> |
<% |
String fromAction = ""; |
String from = ""; |
String user = ""; |
if (request.getParameter("from") != null) |
{ |
user = "/user"; |
fromAction = "From" + request.getParameter("from"); |
from = "?from=" + request.getParameter("from"); |
} |
request.setAttribute("from", from); |
request.setAttribute("user", user); |
request.setAttribute("fromAction", fromAction); |
%> |
<html:form styleClass="form" action="${user}/courseUnitControllerAdmin${fromAction}${from}" enctype="multipart/form-data"> |
<%--<html:form styleClass="form" action="/user/courseUnitControllerAdminFromServiceZone" enctype="multipart/form-data">--%> |
<input type="hidden" name="dispatch" value="createOrUpdateAdmin"> |
<html:hidden property="courseUnitView.id"/> |
<html:hidden property="id"/> |
62,7 → 91,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 → 111,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 → 127,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 → 156,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 → 183,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 → 220,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/courseunits/topnavCourseUnitDeleteAdministration.jsp |
---|
New file |
0,0 → 1,18 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<%@ page import="pt.estgp.estgweb.domain.views.BlogView" %> |
<%@ page import="pt.estgp.estgweb.domain.CourseUnit" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%--<baco:object2Request beanIdName="id" classname="pt.estgp.estgweb.domain.CourseUnit" useBean="CourseUnitView"/>--%> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/user/startHome.do", "intranet.separator.home.back"); |
topNav.addNavPlace(null, "courseunit.delete.administration"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
Property changes: |
Added: svn:executable |
+ * |
/impl/src/web/admin/configuration/tasks.jsp |
---|
5,13 → 5,12 |
<%@ page import="pt.estgp.estgweb.domain.dao.DaoFactory" %> |
<%@ page import="java.util.List" %> |
<%@ 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" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
<%@ taglib prefix="hmlt" uri="http://jakarta.apache.org/struts/tags-html" %> |
<%@ taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<jomm:messages/> |
<html:errors/> |
88,11 → 87,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/style.css |
---|
802,6 → 802,10 |
margin-bottom: 10px; |
} |
a |
{ |
color: #4d4d4d !important; |
} |
.contentPortal li a .contentPortal li { |
color: #4d4d4d; |
} |
/impl/src/web/css/lavish-bootstrap.css |
---|
3531,7 → 3531,7 |
} |
} |
.navbar-collapse { |
max-height: 340px; |
overflow-x: visible; |
padding-right: 15px; |
padding-left: 15px; |
4571,6 → 4571,15 |
text-decoration: none; |
background-color: #f5f5f5; |
} |
.list-group-item-info { |
color: #8a6100; |
background-color: #ffdb96; |
} |
a.list-group-item-info, |
button.list-group-item-info { |
color: #8a6100; |
} |
.list-group-item.active, |
.list-group-item.active:hover, |
.list-group-item.active:focus { |
4766,18 → 4775,18 |
border-bottom-color: #eed3d7; |
} |
.panel-info { |
border-color: #bce8f1; |
border-color: #e8d68a; |
} |
.panel-info > .panel-heading { |
color: #3a87ad; |
background-color: #d9edf7; |
border-color: #bce8f1; |
color: #8a6100; |
background-color: #ffdb96; |
border-color: #e8d68a; |
} |
.panel-info > .panel-heading + .panel-collapse .panel-body { |
border-top-color: #bce8f1; |
border-color: #e8d68a; |
} |
.panel-info > .panel-footer + .panel-collapse .panel-body { |
border-bottom-color: #bce8f1; |
border-color: #e8d68a; |
} |
.well { |
min-height: 20px; |
/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/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/layout/emptyLayoutJson.jsp |
---|
New file |
0,0 → 1,4 |
<%@page pageEncoding="UTF-8" contentType="application/json"%> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<tiles:insert attribute="body" /> |
Property changes: |
Added: svn:executable |
+ * |
/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,87 |
<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() |
{ |
$.ajax({ |
url: "<%=request.getContextPath()%>/ping.jsp", |
type: "POST", |
dataType: "json", |
success: function(resposta) { |
setTimeout("ping()",10000); |
}, |
error: function() { |
setTimeout("ping()",10000); |
} |
}); |
} |
$(document).ready(function() |
{ |
if($("#myTable")) |
231,7 → 319,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 → 337,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 → 415,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/jsonAutoSaveOk.jsp |
---|
New file |
0,0 → 1,2 |
<%@ page contentType="application/json;charset=UTF-8" language="java" %> |
{"service":"ok"} |
/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/listFilesInqueritoPedagogicoJson.jsp |
---|
New file |
0,0 → 1,41 |
<%@ 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(); |
JSONObject json = new JSONObject(); |
JSONArray filesJson = new JSONArray(); |
if(ftpClient == null) |
{ |
AbstractDao.getCurrentSession().getTransaction().commit(); |
out.print(json.toString()); |
} |
else |
{ |
ftpClient.changeWorkingDirectory("/"); |
boolean existDirectory = ftpClient.changeWorkingDirectory(cu.getInqueritosPedagogicosPathIntranet()); |
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/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"> |
132,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> |
171,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> |
241,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> |
280,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> |
/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 |
---|
24,6 → 24,11 |
<html:errors/> |
<jomm:messages/> |
<script> |
//Manter a sessão activa para os docentes não perderem os dados |
ping(); |
</script> |
<% |
IServiceManager sm = ServiceManager.getInstance(); |
79,7 → 84,7 |
if(!closed) |
{ |
%> |
<p class="WARNING"><bean:message key="courseunit.evaluation.warning"/></p> |
<p><bean:message key="courseunit.evaluation.warning"/></p> |
<% |
} |
%> |
134,12 → 139,12 |
<% |
} |
if(!activePeriodRegular && activePeriod) |
{ |
{ |
%> |
<h2>Esta unidade foi <label style="background-color: #00ff00">ABERTA</label> pela administração para efectuar processo de avaliação extraordinário</h2> |
<br/> |
<% |
} |
} |
if(closed) |
{ |
288,34 → 293,135 |
%> |
<!-- Modal --> |
<!-- Modal --> |
<div class="modal fade" id="myModal" role="dialog" > |
<div class="modal-dialog" data-width="760" style="display: block; width: 760px; margin-left: -380px; margin-top: 50px;" aria-hidden="false"> |
<!-- Modal content--> |
<div class="modal-content"> |
<div class="modal-header"> |
<h1 class="modal-title">Envio em curso</h1> |
</div> |
<div class="modal-body"> |
<p>O relatório está a ser enviado ao sistema... por favor aguarde <img src="<%=request.getContextPath()%>/imgs/wait.gif"/></p> |
</div> |
<div class="modal-footer"> |
</div> |
</div> |
</div> |
</div> |
<script> |
function submitFormWaitAutoSave() |
{ |
stopAutoSave = true; |
$('#myModal').modal({ |
show: 'true' |
}); |
//esperar se houver algum update a executar 1500 segundos é o maximo de espera |
//se a pagina não recarregar e porque a thread parou |
setTimeout("submitForm()",40000); |
} |
//function submitForm() |
//{ |
// $("#formEdit").submit(); |
// } |
$( document ).ready(function() { |
<% |
if(!activePeriod) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
if(closed) |
{ |
else if(closed) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
if(!editTeacherPart && !editCoordinatorPart) |
else if(!editTeacherPart && !editCoordinatorPart) |
{ |
%> |
$("#formEdit :input").attr("disabled", true); |
<% |
} |
else |
{ |
%> |
setTimeout("serData()",5000); |
<% |
} |
%> |
}); |
var stopAutoSave = false; |
function serData() |
{ |
if(stopAutoSave) |
{ |
$("#formEval").submit(); |
return; |
} |
else |
{ |
$("#dispatch").val("saveEvaluation"); |
var data = $("#formEval").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n"); |
//alert(data); |
//alert($("#dispatch").val()) |
$("#autosave").html("Enviando..."); |
$.ajax({ |
url: "<%=request.getContextPath()%>/user/courseUnitEvaluationController.do", |
type: "POST", |
data: data + "&json=true", |
dataType: "json", |
success: function(resposta) { |
if(resposta.service && resposta.service == "ok") |
$("#autosave").html("Salvo Automaticamente (Apenas Dados, não gerou PDF, para gerar PDF terá de salvar o docente)"); |
else |
$("#autosave").html("Deve salvar o seu relatório periodicamente"); |
setTimeout("serData()",5000); |
}, |
error: function() { |
$("#autosave").html("Erro de comunicação, tentando novamente em 5 segundos"); |
setTimeout("serData()",5000); |
} |
}); |
/* $.post('<%=request.getContextPath()%>/user/courseUnitEvaluationController.do', data + "&json=true", |
function(resposta) |
{ |
if(resposta.service && resposta.service == "ok") |
$("#autosave").html("Salvo Automaticamente (Apenas Dados, não gerou PDF, para gerar PDF terá de salvar o docente)"); |
else |
$("#autosave").html("Deve salvar o seu relatório periodicamente"); |
setTimeout("serData()",5000); |
} |
);*/ |
} |
} |
</script> |
<div> |
<a target="_blank" href="<%=request.getContextPath()%>/user/data.jsp?id=<%=CourseUnitView.getEvaluationStreamId()%>">Ver versões salvas pelos docentes</a> |
</div> |
<div id="formEdit"> |
<html:form action="/user/courseUnitEvaluationController"> |
<input type="hidden" name="dispatch" value="saveEvaluation"> |
<html:form styleId="formEval" action="/user/courseUnitEvaluationController"> |
<input type="hidden" id="dispatch" name="dispatch" value="saveEvaluation"> |
<html:hidden property="id"/> |
<html:hidden property="courseUnitView.id"/> |
345,7 → 451,7 |
<% |
} |
%> |
<div id="autosave"></div> |
<table class="dataTable tableDisabled" width="100%"> |
<tr> |
<th colspan="2">Dados alterados pelo Docente da Unidade</th> |
461,11 → 567,12 |
<tr> |
<td colspan="2"> |
<% |
if(activePeriod && !teacherComplete && !closed && (editCoordinatorPart || editTeacherPart)) |
{ |
%> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/> |
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');submitFormWaitAutoSave(form);"/> |
<% |
} |
474,7 → 581,7 |
{ |
%> |
<input type="button" value="<bean:message key="deliverEvaluation"/>" onclick="set(form,'teacherCompleteEvaluation');form.submit()"/> |
<input type="button" value="<bean:message key="deliverEvaluation"/>" onclick="set(form,'teacherCompleteEvaluation');submitFormWaitAutoSave(form);"/> |
<% |
} |
484,7 → 591,7 |
{ |
%> |
<input type="button" value="VALIDAR e FECHAR pela Comissão de Curso" onclick="set(form,'publishEvaluation');form.submit()"/> |
<input type="button" value="VALIDAR e FECHAR pela Comissão de Curso" onclick="set(form,'publishEvaluation');submitFormWaitAutoSave(form);"/> |
<% |
} |
%> |
/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" %> |
2,3 → 4,2 |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
30,7 → 31,7 |
request.setAttribute("fromAction", fromAction); |
String activeEvaluationYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYearCreateTransaction(); |
//String activeEvaluationYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYearCreateTransaction(); |
IServiceManager sm = ServiceManager.getInstance(); |
47,11 → 48,13 |
%> |
<jomm:messages/> |
<div class="panel panel-primary"> |
<div class="panel panel-primary panel-container"> |
<div class="panel-heading"> |
${CourseUnitView.name} (${CourseUnitView.code}) - (${CourseUnitView.semestre}) - ${CourseUnitView.importYear}) |
${CourseUnitView.name} (${CourseUnitView.code}) - semestre ${CourseUnitView.semestre} - ano ${CourseUnitView.importYear} - turma ${CourseUnitView.cdTurma} |
</div> |
<div class="panel-body"> |
145,7 → 148,7 |
<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 src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"/></a> |
<a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.evaluationStreamId}"><img style="clear: both" src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"/></a> |
</span> |
</div> |
<% |
169,32 → 172,33 |
<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:present> |
<%--<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: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> |
<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"> |
<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> |
<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> |
</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"><a href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitView.programStreamId}"><img src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"/></a></span> |
</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> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<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"/> |
217,7 → 221,18 |
<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() |
))) |
{ |
%> |
<h2><bean:message key="module.Announcements"/></h2> |
<logic:notEmpty name="CourseUnitView" property="announcements"> |
<%--<div class="listCircleWhite"> |
232,7 → 247,7 |
</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 panel-info"> |
<div class="panel-heading"> |
<html:link action="/user/startLoadAnnouncementFromCourseUnit?id=${announcement.id}">${announcement.title}</html:link> |
</div> |
248,8 → 263,10 |
<logic:empty name="CourseUnitView" property="announcements"> |
<p><bean:message key="announcement.zero.placed"/></p> |
</logic:empty> |
<% |
} |
%> |
</baco:isAuthenticated> |
</div> |
</div> |
266,7 → 283,12 |
<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></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> |
</div> |
<div class="list-group-item disabled"> ${CourseUnitView.responsableTeacher.safeEmail}</div> |
</div> |
</logic:notEmpty> |
/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 |
---|
107,14 → 107,14 |
{ |
%> |
<h2><a href="javascript:showOrHide('evaluationValidate<%=mis.course.getId()%>')"><%=mis.course.getName()%> / <%=mis.course.getCode()%></a> (<%=mis.courseUnits.size()%>)</h2> |
<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> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%> / <%=cu.getCdTurma()%></a></li> |
<% |
} |
%> |
170,7 → 170,7 |
for(CourseUnit cu: mis.courseUnits) |
{ |
%> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%></a></li> |
<li><a href="<%=request.getContextPath()%>/user/startLoadCourseUnitEvaluation.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%> / <%=cu.getCode()%> / <%=cu.getCdTurma()%></a></li> |
<% |
} |
%> |
/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> |
139,7 → 139,15 |
<!--<p><bean:message key="intranet.home.curricular"/></p>--> |
<!--<ul> |
<li>--> |
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> (Novo Estilo) </html:link> |
<div class="list-group"> |
<div class="list-group-item"> |
<html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> </html:link> |
</div> |
<div class="list-group-item"> |
<html:link action="/user/courseComissions"><bean:message key="course.comissions"/> (Novo) </html:link> |
</div> |
</div> |
<!--</li> |
</ul>--> |
</div> |
173,7 → 181,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()%>/startLoadCourseUnitProgram.do?courseUnitId=<%=cu.getId()%>"><%=cu.getName()%>/<%=cu.getCode()%> (<%=cu.getCourseName() + "/" +cu.getCourseCode() +"/" + cu.getCdTurma()%>)</a></li> |
<% |
} |
%> |
211,7 → 219,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> |
<% |
} |
%> |
/impl/src/web/user/home/user.jsp |
---|
11,127 → 11,118 |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/lavish-bootstrap.css"/> |
<div class="portal"> |
<table class="columnTable" width="100%"> |
<tbody> |
<tr> |
<div class="row"> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<div class="list-group"> |
<baco:hasRole role="services"> |
<td class="column"> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading"><bean:message key="intranet.home.curricular"/></div> |
<div class="panel-body"> |
<!--<p><bean:message key="intranet.home.curricular"/></p>--> |
<ul> |
<li><html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> (Novo Estilo) </html:link></li> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
<li><html:link action="/user/startSelectCourseFromServiceZone"><bean:message key="course.select"/></html:link></li> |
<li><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></li> |
</baco:hasRole> |
</ul> |
</div> |
</div> |
<div class="list-group-item"><html:link action="/user/startLoadCoursesProgramsFromHome"><bean:message key="courseunit.indexes"/> </html:link></div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/horarios/intranet/escola/horarios.html">Horários</a> |
</div> |
<baco:hasRole role="admin,all,services"> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas Académicas</div> |
<div class="panel-body"> |
<ul> |
<li><html:link action="/user/configurationGrades">Épocas de Avaliação</html:link></li> |
<li>Situação de Propinas de Alunos (Por implementar)</li> |
<li><html:link action="/user/findProfile"><bean:message key="profile.search.user"/></html:link></li> |
<li>Gerir Papeis das Comissões Curso (Por Implementar)</li> |
</ul> |
</div> |
</div> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/calEscolar/public/portal/CL20102011.pdf">Calendário Escolar</a> |
</div> |
</baco:hasRole> |
<div class="list-group-item"> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/secretaria/intranet/escola/secretaria.html">Secretaria</a> |
</div> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
<baco:hasRole role="ci"> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas de Gestão do CI</div> |
<div class="panel-body"> |
<ul> |
<li>Configurações Gerais (Por implementar)</li> |
<li>Tarefas Agendadas (Por implementar)</li> |
<li>Criar um Backup SQL Agora (Por Implementar)</li> |
<baco:isModuleOn module="intranet"> |
<li> |
<html:link target="_blank" action="/user/courseUnitControllerAdminFromServiceZone?dispatch=createIntranetFolders"> |
<bean:message key="intranet.create.folders"/> |
</html:link> |
</li> |
</baco:isModuleOn> |
<li><a href="<%=request.getContextPath()%>/user/configurationDirectories.do"><bean:message key="configuration.directories"/></a></li> |
</ul> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Atalhos</div> |
<div class="panel-body"> |
<ul> |
<li> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/horarios/intranet/escola/horarios.html">Horários</a> |
</li> |
<li> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/calEscolar/public/portal/CL20102011.pdf">Calendário Escolar</a> |
</li> |
<li> |
<a href="<%=request.getContextPath()%>/dir/utilsIntranet/secretaria/intranet/escola/secretaria.html">Secretaria</a> |
</li> |
</ul> |
</div> |
</div> |
</div> |
<baco:hasRole role="admin,all,services"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas Académicas</div> |
<div class="panel-body"> |
<div class="list-group"> |
<baco:hasRole role="pedagogicCouncil"> |
<div class="list-group-item"><html:link action="/user/coursePedagogicContents"><bean:message key="course.pedagogic.contents.admin"/> </html:link></div> |
</baco:hasRole> |
<baco:isAdmin> |
<div class="list-group-item"><html:link action="/admin/courseUnitsDeleteAdmin">Administração de Unidades Curriculares (Remoções)</html:link></div> |
</baco:isAdmin> |
<div class="list-group-item"><html:link action="/user/configurationGrades">Épocas de Avaliação</html:link></div> |
<div class="list-group-item">Situação de Propinas de Alunos (Por implementar)</div> |
<div class="list-group-item"><html:link action="/user/findProfile"><bean:message key="profile.search.user"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/startFindCourseUnitAdminFromServiceZone"><bean:message key="courseunit.search"/></html:link></div> |
<div class="list-group-item"><html:link action="/user/courseComissions">Informação Adicional de Cursos</html:link></div> |
<div class="list-group-item"><html:link action="/user/startSelectCourseFromServiceZone"><bean:message key="course.select"/></html:link></div> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<baco:hasRole role="ci"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Ferramentas de Gestão do CI</div> |
<div class="panel-body"> |
<div class="list-group"> |
<div class="list-group-item">Configurações Gerais (Por implementar)</div> |
<div class="list-group-item">>Tarefas Agendadas (Por implementar)</div> |
<div class="list-group-item">Criar um Backup SQL Agora (Por Implementar)</div> |
<baco:isModuleOn module="intranet"> |
<div class="list-group-item"> |
<html:link target="_blank" action="/user/courseUnitControllerAdminFromServiceZone?dispatch=createIntranetFolders"> |
<bean:message key="intranet.create.folders"/> |
</html:link> |
</div> |
</div> |
</baco:isModuleOn> |
<div class="list-group-item"><a href="<%=request.getContextPath()%>/user/configurationDirectories.do"><bean:message key="configuration.directories"/></a></div> |
</div> |
</div> |
</div> |
</baco:hasRole> |
<baco:isModuleOn module="todos"> |
<jsp:include page="/user/home/todos.jsp"/> |
</baco:isModuleOn> |
</div> |
<div class="col-md-6 col-sm-12 col-xs-12"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Comunicar</div> |
<div class="panel-body"> |
<div class="list-group"> |
</td> |
</baco:hasRole> |
<td class="column"> |
<baco:isModuleOn module="todos"> |
<jsp:include page="/user/home/todos.jsp"/> |
</baco:isModuleOn> |
<div class="block"> |
<div class="panel panel-primary"> |
<div class="panel-heading">Comunicar</div> |
<div class="panel-body"> |
<ul> |
<baco:isModuleOn module="todos"> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
<li> |
<html:link action="/user/startSubmitTodoAnnouncementFromServiceZone"> |
<bean:message key="submit.todo.announcement"/> |
</html:link> |
</li> |
<baco:isModuleOn module="todos"> |
<baco:hasRole role="admin,all,services,administrativeCouncil,courseCoordinator,courseDirector,scientificCouncil,pedagogicCouncil"> |
<div class="list-group-item"> |
<html:link action="/user/startSubmitTodoAnnouncementFromServiceZone"> |
<bean:message key="submit.todo.announcement"/> |
</html:link> |
</div> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services,sendMailMessages"> |
<li> |
<html:link action="/user/startSubmitMessage"> |
<bean:message key="submit.todo.message"/> |
</html:link> |
</li> |
</baco:hasRole> |
</baco:isModuleOn> |
</ul> |
</baco:hasRole> |
<baco:hasRole role="admin,all,services,sendMailMessages"> |
<div class="list-group-item"> |
<html:link action="/user/startSubmitMessage"> |
<bean:message key="submit.todo.message"/> |
</html:link> |
</div> |
</baco:hasRole> |
</baco:isModuleOn> |
</div> |
</div> |
</div> |
<jsp:include page="courseComission.jsp"/> |
</td> |
</tbody> |
</table> |
</div> |
</div> |
</div> |
<!-- |
<div class="panel panel-primary"> |
<div class="panel-heading">Atalhos</div> |
<div class="panel-body"> |
<div class="list-group"> |
</div> |
</div> |
</div> |
--> |
<jsp:include page="courseComission.jsp"/> |
</div> |
</div> |
/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/src/web/user/data.jsp |
---|
New file |
0,0 → 1,91 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@ page import="pt.estgp.estgweb.domain.RepositoryFileVersion" %> |
<%@ 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" %> |
<%@ page import="pt.estgp.estgweb.Globals" %> |
<html:html locale="true"> |
<head> |
<title>Histórico de Ficheiros</title> |
<jsp:include page="/layout/scripts.jsp"/> |
</head> |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();" > |
<div class="container"> |
<h1>Serviço de Histórico do Baco</h1> |
<form action="data.jsp"> |
Colque aqui o identificador do Ficheiro: <input name="id"><br/> |
<input type="submit"> |
</form> |
<table class="tablesorterfiltered" border="1" style="border:1px solid black"> |
<thead> |
<tr> |
<th>Nome do Ficheiro</th> |
<th>Content Type</th> |
<th>Descrição</th> |
<th>Tamanho Kb</th> |
<th>Data</th> |
</tr> |
</thead> |
<tbody> |
<% |
String id = request.getParameter("id"); |
if(id != null) |
{ |
pt.utl.ist.berserk.logic.serviceManager.IServiceManager sm = pt.utl.ist.berserk.logic.serviceManager.ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{id}; |
//pt.estgp.estgweb.domain.RepositoryFileImpl view |
// = (pt.estgp.estgweb.domain.RepositoryFileImpl) |
// sm.execute(pt.estgp.estgweb.web.utils.RequestUtils.getRequester(request, response), "LoadRepositoryFileView", args, names); |
jomm.dao.utils.HibernateUtils.getCurrentSession().beginTransaction(); |
pt.estgp.estgweb.domain.RepositoryFileImpl view = new pt.estgp.estgweb.services.data.RepositoryService().loadView(id); |
if(view != null) |
{ |
java.util.List<pt.estgp.estgweb.domain.RepositoryFileVersion> lista = new java.util.ArrayList<pt.estgp.estgweb.domain.RepositoryFileVersion>(view.getRepositoryFileVersions()); |
java.util.Collections.sort(lista,new java.util.Comparator<pt.estgp.estgweb.domain.RepositoryFileVersion>() |
{ |
public int compare(RepositoryFileVersion o1, RepositoryFileVersion o2) { |
return (int) (o2.getId() - o1.getId()); |
} |
}); |
for(pt.estgp.estgweb.domain.RepositoryFileVersion version: lista) |
{ |
%> |
<tr> |
<td><a href="<%=request.getContextPath()%>/repositoryStreamVersion/<%=version.getId()%>"><%=version.getName()%></a></td> |
<td><%=version.getContentType()%></td> |
<td><%=version.getDescription()%></td> |
<td><%=(version.getSize()/1024)%></td> |
<td><%=version.getSaveDate()%></td> |
</tr> |
<% |
} |
} |
jomm.dao.utils.HibernateUtils.getCurrentSession().getTransaction().commit(); |
} |
%> |
</tbody> |
</table> |
<div id="footer"> |
<jsp:include page="/layout/footer.jsp"/> |
<!-- Fundo --> |
</div> |
</div> |
</body> |
</html:html> |
Property changes: |
Added: svn:executable |
+ * |
/impl/libs.xml |
---|
44,6 → 44,9 |
<fileset dir="${common.lib.dir}/mysql"> |
<include name="**/*.jar"/> |
</fileset> |
<fileset dir="${common.lib.dir}/oracle"> |
<include name="**/*.jar"/> |
</fileset> |
<fileset dir="${common.lib.dir}/commons"> |
<include name="**/*.jar"/> |
</fileset> |
92,6 → 95,10 |
<fileset dir="${common.lib.dir}/json"> |
<include name="**/*.jar"/> |
</fileset> |
<!-- nao precisa de ir para o tomcat basta aqui para gerar mapas UML do Hibernate |
<fileset dir="${common.lib.dir}/linguine"> |
<include name="**/*.jar"/> |
</fileset>--> |
</path> |
/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; |
} |
} |
/impl/build.properties |
---|
182,3 → 182,9 |
#Google Service Specific Configuration |
ws.google.package=com.google.api.ws.clients |
ORACLE_SIGES_URL |
oracle.siges.url=jdbc:oracle:thin:@193.137.229.147:1521:SIGES11 |
oracle.siges.username=dummyChangeInLocal |
oracle.siges.password=dummyChangeInLocal |
/impl/build.xml |
---|
228,6 → 228,9 |
<fileset dir="${common.lib.dir}/mysql"> |
<include name="**/*.jar"/> |
</fileset> |
<fileset dir="${common.lib.dir}/oracle"> |
<include name="**/*.jar"/> |
</fileset> |
<fileset dir="${common.lib.dir}/commons"> |
<include name="**/*.jar"/> |
</fileset> |
428,6 → 431,11 |
<replacefilter token="@ws.siges.target.namespace@" value="${ws.siges.target.namespace}"/> |
<replacefilter token="@intranet.setup.folders.file@" value="${build.dir.relative.intranet.setup.folders.file}"/> |
<replacefilter token="@intranet.setup.folders.filename@" value="${intranet.setup.folders.filename}"/> |
<replacefilter token="@oracle.siges.url@" value="${oracle.siges.url}"/> |
<replacefilter token="@oracle.siges.username@" value="${oracle.siges.username}"/> |
<replacefilter token="@oracle.siges.password@" value="${oracle.siges.password}"/> |
</replace> |
<replace file="${build.dir.classes}/${log4j.properties.filename}"> |
<replacefilter token="@log.file@" value="${log.file}"/> |
566,7 → 574,34 |
</delete> |
</target> |
<!-- |
========================================================================================== |
Generate Hibernate UML Diagrams |
========================================================================================== |
<property name="doc" location="build/ant/diagrams"/> |
<property name="dot.exe" location="/usr/local/bin/dot" /> |
<taskdef |
name="hbm2gif" |
classname="com.oy.shared.lm.ant.HBMtoGIFTask" |
classpathref="pathToToolsLib" |
/> |
<target name="generateHibernateUmlDiagram" depends="initDirs"> |
<mkdir dir="${doc}"/> |
<hbm2gif |
caption="XML file for launching Catalina 5.0.25 applications using Apache Ant." |
colors="cyan, lightcyan, orange, black, black" |
inFile="${hbm.dir}/pt/estgp/estgweb/domain/CourseUnit.hbm.xml" |
dotFile="${doc}/CourseUnit.dot" |
outFile="${doc}/CourseUnit.gif" |
exeFile="${dot.exe}" |
/> |
</target> |
--> |
<!-- |
========================================================================================== |
GENERATE WEBSERVICES JAXWS |
645,4 → 680,5 |
</target> |
</project> |
/common/log4j/log4j-1.2.8.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/common/log4j/apache-log4j-extras-1.2.17.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/common/log4j/log4j-1.2.17.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/common/hibernate/log4j-1.2.8.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/common/hibernate/log4j-1.2.11.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/common/oracle/ojdbc6.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |