15,6 → 15,7 |
import pt.estgp.estgweb.utils.DatesUtils; |
|
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.List; |
|
import static org.hibernate.criterion.Restrictions.*; |
658,6 → 659,21 |
.list(); |
} |
|
public List<CourseUnit> loadMissingProgramOptimizedComissionsAndSecreariat(User u) |
{ |
Criteria crit = createCriteria() |
.createAlias("course", "c") |
.add(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear())) |
.add(eq("semestre", DatesUtils.getSemestre())) |
.add((or(isNull("programStreamId"), eq("programStreamId", "")))); |
|
crit = DaoFactory.getCourseDaoImpl().getCriteriaForComissionsAndCoordinationsOr(u,"c",crit); |
if(crit == null) |
return new ArrayList<CourseUnit>(); |
else |
return crit.list(); |
} |
|
public List<CourseUnit> loadMissingProgramGivenCourse(long courseId) |
{ |
return createCriteria() |
675,12 → 691,29 |
.createAlias("course", "c") |
.add(eq("c.id", courseId)) |
.add(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear())) |
.add(eq("semestre", DatesUtils.getSemestre())) |
//.add(eq("semestre", DatesUtils.getSemestre())) |
.add((and(isNotNull("programStreamId"), not(eq("programStreamId", ""))))) |
.add((eq("validProgram", false))) |
.list(); |
} |
|
public List<CourseUnit> loadMissingProgramValidateOptimizedComissionsAndSecreariat(User u) |
{ |
Criteria crit = createCriteria() |
.createAlias("course", "c") |
.add(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear())) |
//.add(eq("semestre", DatesUtils.getSemestre())) |
.add((and(isNotNull("programStreamId"), not(eq("programStreamId", ""))))) |
.add((eq("validProgram", false))); |
crit = DaoFactory.getCourseDaoImpl().getCriteriaForComissionsAndCoordinationsOr(u,"c",crit); |
if(crit == null) |
return new ArrayList<CourseUnit>(); |
else |
return crit.list(); |
} |
|
|
|
public List<CourseUnit> loadMissingObjectivesOrProgramGivenCourse(long courseId) |
{ |
return createCriteria() |
728,12 → 761,13 |
public List<CourseMissingValidationProgram> loadMissingProgramValidate(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
//List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(),userSession.getUser()); |
for(Course course: courses) |
{ |
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
//CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
//if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
//{ |
List<CourseUnit> courseUnits = loadMissingProgramValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
742,11 → 776,43 |
c.courseUnits = courseUnits; |
result.add(c); |
} |
//} |
} |
return result; |
} |
//TODO |
|
public List<CourseMissingValidationProgram> loadMissingProgramValidateOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
|
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
//devolvo a lista final |
HashMap<Course,CourseMissingValidationProgram> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationProgram>(); |
|
List<CourseUnit> courseUnits = loadMissingProgramValidateOptimizedComissionsAndSecreariat(userSession.getUser()); |
for(CourseUnit cu : courseUnits) |
{ |
if(mapaUnidadesCurso.get(cu.getCourse()) == null) |
{ |
CourseMissingValidationProgram c = new CourseMissingValidationProgram(); |
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse()); |
c.courseUnits = new ArrayList<CourseUnit>(); |
c.courseUnits.add(cu); |
result.add(c); |
mapaUnidadesCurso.put(c.course,c); |
} |
else |
{ |
CourseMissingValidationProgram c = mapaUnidadesCurso.get(cu.getCourse()); |
c.courseUnits.add(cu); |
} |
} |
return result; |
} |
|
/** |
* Load all programs missing from active courses |
* @param userSession |
755,13 → 821,13 |
public List<CourseMissingValidationProgram> loadMissingPrograms(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
//List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCourses(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()); |
List<Course> courses = DaoFactory.getCourseDaoImpl().findActiveCoursesCoordinationsOrCommissions(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(),userSession.getUser()); |
for(Course course: courses) |
{ |
//TODO IR BUSCAR APENAS CURSOS DAS COMISSOES OU COORDENACOES PARA ABREVIAR |
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
//CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
//if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
//{ |
List<CourseUnit> courseUnits = loadMissingProgramGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
{ |
770,16 → 836,54 |
c.courseUnits = courseUnits; |
result.add(c); |
} |
//} |
} |
return result; |
} |
|
public List<CourseMissingValidationProgram> loadMissingProgramsOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationProgram> result = new ArrayList<CourseMissingValidationProgram>(); |
|
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
//devolvo a lista final |
HashMap<Course,CourseMissingValidationProgram> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationProgram>(); |
|
List<CourseUnit> courseUnits = loadMissingProgramOptimizedComissionsAndSecreariat(userSession.getUser()); |
for(CourseUnit cu : courseUnits) |
{ |
if(mapaUnidadesCurso.get(cu.getCourse()) == null) |
{ |
CourseMissingValidationProgram c = new CourseMissingValidationProgram(); |
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse()); |
c.courseUnits = new ArrayList<CourseUnit>(); |
c.courseUnits.add(cu); |
result.add(c); |
mapaUnidadesCurso.put(c.course,c); |
} |
else |
{ |
CourseMissingValidationProgram c = mapaUnidadesCurso.get(cu.getCourse()); |
c.courseUnits.add(cu); |
} |
} |
return result; |
} |
|
public static class CourseMissingValidationEvaluation |
{ |
public Course course; |
public List<CourseUnit> courseUnits; |
} |
|
/** |
* METODO ANTIGO QUE ESTAVA NA COURSE COMISSION |
* @param userSession |
* @return |
*/ |
public List<CourseMissingValidationEvaluation> loadMissingEvaluationValidate(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
787,7 → 891,7 |
for(Course course: courses) |
{ |
CourseImpl cImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(course); |
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
if(cImpl.isFromCourseCommission(userSession) || userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE)) |
{ |
List<CourseUnit> courseUnits = loadMissingEvaluationValidateGivenCourse(course.getId()); |
if(courseUnits != null && courseUnits.size() > 0) |
802,8 → 906,73 |
return result; |
} |
|
public List<CourseMissingValidationEvaluation> loadMissingEvaluationValidateOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
|
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
//devolvo a lista final |
HashMap<Course,CourseMissingValidationEvaluation> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationEvaluation>(); |
|
List<CourseUnit> courseUnits = loadMissingEvaluationValidateOptimizedComissionsAndSecreariat(userSession.getUser()); |
for(CourseUnit cu : courseUnits) |
{ |
if(mapaUnidadesCurso.get(cu.getCourse()) == null) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse()); |
c.courseUnits = new ArrayList<CourseUnit>(); |
c.courseUnits.add(cu); |
result.add(c); |
mapaUnidadesCurso.put(c.course,c); |
} |
else |
{ |
CourseMissingValidationEvaluation c = mapaUnidadesCurso.get(cu.getCourse()); |
c.courseUnits.add(cu); |
} |
} |
return result; |
} |
|
|
//TODO PARA USAR MAIS TARDE |
|
/** |
* @param u utilizador com vista para cursos |
* Se for secretaria considera todos os cursos |
* Se nao for considera apenas comissoes de curso do professor se for TeacherImpl |
* @return |
*/ |
|
public List<CourseUnit> loadMissingEvaluationValidateOptimizedComissionsAndSecreariat(User u) |
{ |
|
String activeYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYear(); |
|
Criterion degreesCrit = getCourseUnitActiveDegreeCourseIdsCriterion(activeYear); |
if(degreesCrit == null) |
return new ArrayList<CourseUnit>(); |
|
Criteria c = createCriteria() |
.createAlias("course", "c") |
.createAlias("courseUnitEvaluation", "ce") |
.add(eq("importYear", activeYear)) |
.add(degreesCrit) |
.add((eq("ce.closed", false))) |
.add((eq("ce.teacherComplete", true))); |
|
//NOVO para restringir os cursos de que é coordenador ou todos se for da secretaria de cursos |
c = DaoFactory.getCourseDaoImpl().getCriteriaForComissionsAndCoordinationsOr(u,"c",c); |
if(c == null) |
return new ArrayList<CourseUnit>(); |
else |
return c.list(); |
} |
|
/* |
* Neste caso apenas se validam as do ano anterior*/ |
|
929,7 → 1098,38 |
return teacherCompleteFalse; |
} |
|
public List<CourseMissingValidationEvaluation> loadMissingEvaluationOptimized(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
|
//todo Em vez de FindAll faco a listagem total de cadeiras e é la dentro que restringe ou a todas |
//os cursos caso seja da secretaria ou aos cursos de que faz parte da comissao |
//Obtenho todas as cadeiras de todos os cursos |
//Organizo-as por curso |
//devolvo a lista final |
HashMap<Course,CourseMissingValidationEvaluation> mapaUnidadesCurso = new HashMap<Course, CourseMissingValidationEvaluation>(); |
|
List<CourseUnit> courseUnits = loadMissingEvaluationOptimizedComissionsAndSecreariat(userSession.getUser()); |
for(CourseUnit cu : courseUnits) |
{ |
if(mapaUnidadesCurso.get(cu.getCourse()) == null) |
{ |
CourseMissingValidationEvaluation c = new CourseMissingValidationEvaluation(); |
c.course = DaoFactory.getCourseDaoImpl().narrow(cu.getCourse()); |
c.courseUnits = new ArrayList<CourseUnit>(); |
c.courseUnits.add(cu); |
result.add(c); |
mapaUnidadesCurso.put(c.course,c); |
} |
else |
{ |
CourseMissingValidationEvaluation c = mapaUnidadesCurso.get(cu.getCourse()); |
c.courseUnits.add(cu); |
} |
} |
return result; |
} |
|
public List<CourseMissingValidationEvaluation> loadMissingEvaluation(UserSession userSession) |
{ |
List<CourseMissingValidationEvaluation> result = new ArrayList<CourseMissingValidationEvaluation>(); |
952,6 → 1152,43 |
return result; |
} |
|
public List<CourseUnit> loadMissingEvaluationOptimizedComissionsAndSecreariat(User u) |
{ |
|
String activeYear = DaoFactory.getConfigurationDaoImpl().getCourseUnitEvaluationActiveYear(); |
|
Criterion degreesCrit = getCourseUnitActiveDegreeCourseIdsCriterion(activeYear); |
if(degreesCrit == null) |
return new ArrayList<CourseUnit>(); |
|
|
Criteria nullsCrit = createCriteria() |
.createAlias("course", "c") |
.add(eq("importYear", activeYear)) |
.add(degreesCrit) |
.add(isNull("courseUnitEvaluation")); |
|
Criteria teachrCompleteCrit = createCriteria() |
.createAlias("course", "c") |
.createAlias("courseUnitEvaluation", "ce") |
.add(degreesCrit) |
.add(eq("importYear", activeYear)) |
.add(eq("ce.teacherComplete", false)); |
|
|
//NOVO para restringir os cursos de que é coordenador ou todos se for da secretaria de cursos |
nullsCrit = DaoFactory.getCourseDaoImpl().getCriteriaForComissionsAndCoordinationsOr(u,"c",nullsCrit); |
if(nullsCrit == null) |
return new ArrayList<CourseUnit>(); |
teachrCompleteCrit = DaoFactory.getCourseDaoImpl().getCriteriaForComissionsAndCoordinationsOr(u,"c",teachrCompleteCrit); |
if(teachrCompleteCrit == null) |
return new ArrayList<CourseUnit>(); |
List<CourseUnit> nulls = nullsCrit.list(); |
List<CourseUnit> teacherCompleteFalse = teachrCompleteCrit.list(); |
teacherCompleteFalse.addAll(nulls); |
return teacherCompleteFalse; |
} |
|
public List<CourseUnit> loadMissingEvaluation(long courseId) |
{ |
|