Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1310 → Rev 1312

/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);