/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/UsersUnitsService.java |
---|
1,11 → 1,16 |
package pt.estgp.estgweb.services.courseunits; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.util.HashSet; |
import java.util.Iterator; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
23,6 → 28,8 |
public class UsersUnitsService implements IService |
{ |
private static final Logger logger = Logger.getLogger(UsersUnitsService.class); |
LoadCourseUnitService loadCourseUnitService = new LoadCourseUnitService(); |
public CourseUnitView addTeacher(long teacherId,long courseUnitId, UserSession userSession) throws ServiceException |
54,7 → 61,7 |
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession); |
} |
public CourseUnitView addStudent(int code, long courseUnitId, UserSession userSession) throws ServiceException |
public CourseUnitView addStudent(int code, long courseUnitId, String turmaCode,String newTurmaCode,UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId); |
StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code); |
64,6 → 71,9 |
courseUnit.getStudents().remove(s); |
courseUnit.getStudents().add(s); |
s.addUnitLocaly(courseUnit); |
addStudentToTurma(turmaCode, newTurmaCode, courseUnit, s); |
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession); |
} |
else |
74,12 → 84,65 |
} |
} |
private void addStudentToTurma(String turmaCode, String newTurmaCode, CourseUnit courseUnit, StudentImpl s) { |
boolean found = false; |
for(CourseUnitTurma turma: courseUnit.getTurmas()) |
{ |
if(turma.getTurma().trim().equals(turmaCode.trim()) || turma.getTurma().trim().equals(newTurmaCode.trim())) |
{ |
logger.info("Adding student to turma: " + turma.getTurma() + " in courseunit: " + courseUnit.getCode() + " with id:" + courseUnit.getId()); |
found = true; |
if(turma.getStudents() == null) |
turma.setStudents(new HashSet<StudentImpl>()); |
if(!turma.getStudents().contains(s)) |
turma.getStudents().add(s); |
//if(s.getTurmas() == null) |
// s.setTurmas(new HashSet<CourseUnitTurmaImpl>()); |
//if(!s.getTurmas().contains(turma)) |
// s.getTurmas().add((CourseUnitTurmaImpl) turma); |
break; |
} |
} |
if(!found && newTurmaCode.trim().length() > 0) |
{ |
logger.info("Creating new turma to student: " + newTurmaCode + " in courseunit: " + courseUnit.getCode() + " with id:" + courseUnit.getId()); |
CourseUnitTurma courseUnitTurma = DomainObjectFactory.createCourseUnitTurmaImpl(); |
courseUnitTurma.setTurma(newTurmaCode); |
courseUnitTurma.setCourseUnit(courseUnit); |
DaoFactory.getCourseUnitTurmaDaoImpl().save(courseUnitTurma); |
if(courseUnit.getTurmas() == null) |
courseUnit.setTurmas(new HashSet<CourseUnitTurma>()); |
courseUnit.getTurmas().add(courseUnitTurma); |
courseUnitTurma.setStudents(new HashSet<StudentImpl>()); |
courseUnitTurma.getStudents().add(s); |
} |
} |
public CourseUnitView removeStudent(int code,long courseUnitId, UserSession userSession) throws ServiceException |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId); |
StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code); |
courseUnit.getStudents().remove(s); |
s.removeUnitLocaly(courseUnit); |
removeStudentFromTurma(courseUnit, s); |
return loadCourseUnitService.run(courseUnitId,true,true,false,userSession); |
} |
private void removeStudentFromTurma(CourseUnit courseUnit, StudentImpl s) { |
if(courseUnit.getTurmas()!=null) |
{ |
Iterator<CourseUnitTurmaImpl> iter = s.getTurmas().iterator(); |
while(iter.hasNext()) |
{ |
CourseUnitTurma turma=iter.next(); |
if(turma.getCourseUnit() == courseUnit) |
{ |
iter.remove(); |
turma.getStudents().remove(s); |
} |
} |
} |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitProgram.java |
---|
16,7 → 16,6 |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.DatesUtils; |
import pt.estgp.estgweb.utils.Dom4jUtil; |
import pt.estgp.estgweb.utils.StringsUtils; |
173,7 → 172,7 |
private void sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u,String pdfPath,Date versionDate,FTPClient client,List<String> warnings) throws IOException, TransformerException, FOPException { |
if(ConfigProperties.getBooleanProperty("test.control.var.DontSendIonlineFiles")) |
if(Globals.TEST_ENVIRONEMENT) |
{ |
String warn = "System in TEST Environement - will NOT send file to ionline test.control.var.DontSendIonlineFiles = true"; |
if(warnings != null) |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/SaveCourseUnitEvaluation.java |
---|
12,6 → 12,7 |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl; |
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView; |
import pt.estgp.estgweb.domain.views.CourseUnitView; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.IRepositoryFile; |
import pt.estgp.estgweb.services.data.RepositoryService; |
50,11 → 51,11 |
RepositoryService repositoryService = new RepositoryService(); |
public CourseUnitEvaluationView save(CourseUnitEvaluationView cupv, Long coursUnitId, UserSession usession) throws ServiceException, TransformerException, IOException, FOPException { |
public CourseUnitEvaluationView save(CourseUnitEvaluationView cupv, Long coursUnitId, UserSession usession, CourseUnitImpl c) throws ServiceException, TransformerException, IOException, FOPException { |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId); |
CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation(); |
if(evaluation == null) |
{ |
63,16 → 64,22 |
c.setCourseUnitEvaluation(evaluation); |
} |
// |
//O form tem de vir sempre completo com todos os campos |
//Caso isto mude de futuro teremos de usar um novo metodo para |
//comutar o estado e nao o save. |
//Apenas o open muda somente o estado |
if(usession.getUser() instanceof Teacher && |
/*if(usession.getUser() instanceof Teacher && |
((((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true)) |
|| |
(c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId()) |
)) |
{ |
//PROF OU RESPONSAVEL |
cupv.persistViewInObjectTeacher(evaluation); |
} |
//PROF OU RESPONSAVEL*/ |
cupv.persistViewInObjectTeacher(evaluation); |
/*} |
else if(usession.getUser() instanceof Teacher |
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole()) |
|| |
81,7 → 88,8 |
{ |
//COMISSAO DE CURSO |
cupv.persistViewInObjectTeacher(evaluation); |
} |
}*/ |
List<String> errors = new ArrayList<String>(); |
String estado = "POR ENTREGAR"; |
if(cupv.isFechar()) |
122,23 → 130,12 |
return cupv; |
} |
public CourseUnitEvaluationView open(Long coursUnitId, UserSession usession) throws ServiceException { |
public CourseUnitEvaluationView open(Long coursUnitId, UserSession usession,CourseUnitImpl c) throws ServiceException { |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId); |
CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation(); |
if(usession.getUser() instanceof Teacher && |
(((Teacher)usession.getUser()).isTeacherOfCourseUnit(c.getId(),true) |
|| |
c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId() |
|| |
usession.getUser().hasRole(c.getCourse().getValidationRole()) |
|| |
((usession.getUser()) == c.getCourse().getCoordinator()) |
)) |
{ |
evaluation.setClosed(false); |
evaluation.setTeacherComplete(false); |
} |
evaluation.setClosed(false); |
evaluation.setTeacherComplete(false); |
CourseUnitEvaluationView cupv = new CourseUnitEvaluationView(evaluation); |
if(usession != null && usession.getUser() != null && usession.getUser() instanceof Teacher) |
DirectedCoordinatedUnitsService.sendNotificationsCourseUnitEvaluationEditedInterestedPeople(c, "Aberto pela Comissão de Curso", usession); |
146,9 → 143,29 |
return cupv; |
} |
//TODO TEACHER COMPLETE OPEN not in use coordinatores open and close every fields |
public CourseUnitEvaluationView setTeacherIncomplete(Long coursUnitId, UserSession usession) throws ServiceException { |
/** |
* Get the clearances from courseunit loaded by filter and put them in courseUnitView in service paramenter |
* returning the view fullfilled with clearances |
* @param cuv |
* @param courseUnitId |
* @param usession |
* @param c |
* @return |
* @throws ServiceException |
* @throws TransformerException |
* @throws IOException |
* @throws FOPException |
*/ |
public CourseUnitView initClearances(CourseUnitView cuv, Long courseUnitId, UserSession usession, CourseUnitImpl c) throws ServiceException, TransformerException, IOException, FOPException { |
((CourseUnitImpl)cuv.getCourseUnit()).setClearanceRuledSupport(c.getClearanceRuledSupport()); |
return cuv; |
} |
//TODO TEACHER COMPLETE OPEN not in use coordinatores open and close every fields |
/*public CourseUnitEvaluationView setTeacherIncomplete(Long coursUnitId, UserSession usession) throws ServiceException { |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId); |
CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation(); |
//So responsaveis e profs desdemente que a avaliação nao esteja fechada |
179,7 → 196,7 |
} |
CourseUnitEvaluationView cupv = new CourseUnitEvaluationView(evaluation); |
return cupv; |
} |
}*/ |
public void createPdf(CourseUnitEvaluation cuv, CourseUnit cu, UserSession userSession,List<String> errors) throws IOException, TransformerException, FOPException { |
260,6 → 277,12 |
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd.HH_mm_ss"); |
private boolean sendPdfFtpIonline(CourseUnit cu, List<String> errors, UserSession u,InputStream input,Date versionDate,FTPClient client) throws IOException, TransformerException, FOPException { |
if(Globals.TEST_ENVIRONEMENT) |
{ |
String warn = "System in TEST Environement - will NOT send file to ionline test.control.var.DontSendIonlineFiles = true"; |
logger.warn(warn); |
return false; |
} |
FtpServer server = null; |
if(client == null) |
{ |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/LoadCourseUnitService.java |
---|
1,10 → 1,7 |
package pt.estgp.estgweb.services.courseunits; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.CourseUnit; |
import pt.estgp.estgweb.domain.CourseUnitSummary; |
import pt.estgp.estgweb.domain.RepositoryFile; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.domain.views.CourseUnitSummaryView; |
16,6 → 13,7 |
import java.util.ArrayList; |
import java.util.List; |
import java.util.Set; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
91,5 → 89,40 |
return cV; |
} |
public Set<StudentImpl> loadStudents(long id, UserSession userSession) throws ServiceException |
{ |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id); |
Set<StudentImpl> students = c.getStudents(); |
if(students != null) |
for(Student s: students) |
{ |
s.getName(); |
} |
return students; |
} |
public Set<TeacherImpl> loadTeachers(long id, UserSession userSession) throws ServiceException |
{ |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id); |
Set<TeacherImpl> teachers = c.getTeachers(); |
if(teachers != null) |
for(TeacherImpl t: teachers) |
{ |
t.getName(); |
} |
return teachers; |
} |
public Teacher loadResponsibleTeacher(long id, UserSession userSession) throws ServiceException |
{ |
CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id); |
if(c.getResponsableTeacher() != null) |
c.getResponsableTeacher().getName(); |
return c.getResponsableTeacher(); |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/DirectedCoordinatedUnitsService.java |
---|
91,7 → 91,7 |
// return directedCoordinatedCourses; |
// } |
public DirectedCoordinatedCourses loadForServices(String importYear, long courseId, String semestre, String area, TeachersSituationEnum teachersSituationEnum, UserSession userSession) |
public DirectedCoordinatedCourses loadForServices(String importYear, long courseId, String semestre, String area, TeachersSituationEnum teachersSituationEnum, String institutionCode, UserSession userSession) |
{ |
if(importYear == null) |
importYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
148,11 → 148,12 |
CourseView cV = new CourseView(c, false); |
courseViews.add(cV); |
} |
fill(courseViews, semestre, importYear, teachersSituationEnum); |
fill(courseViews, semestre, importYear, teachersSituationEnum,institutionCode); |
directedCoordinatedCourses = new DirectedCoordinatedCourses(); |
directedCoordinatedCourses.setMerge(courseViews); |
directedCoordinatedCourses.setArea(area); |
directedCoordinatedCourses.setCourseId(courseId); |
return directedCoordinatedCourses; |
} |
221,7 → 222,7 |
} |
} |
private void fill(List<CourseView> courseViews, String semestre, String importYear, TeachersSituationEnum teachersSituationEnum) |
private void fill(List<CourseView> courseViews, String semestre, String importYear, TeachersSituationEnum teachersSituationEnum,String institutionCode) |
{ |
boolean withTeacher = true; |
boolean withNoTeacher = true; |
256,7 → 257,7 |
cV.setCourseUnitsWithProgramNotCheckedT4(new ArrayList<CourseUnitView>()); |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(cV.getId(),semestre,importYear,withTeacher,withNoTeacher); |
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(cV.getId(),semestre,importYear,withTeacher,withNoTeacher,institutionCode); |
for (CourseUnit cU : courseUnits) |
{ |
CourseUnitView cUV = new CourseUnitView(cU,true,false,false,false); |