Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1204 → Rev 1232

/impl/conf/language/MessageResourcesCourse.properties
40,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
/impl/conf/language/MessageResourcesCourseUnits.properties
184,8 → 184,8
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
 
 
/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);
}
//
 
73,7 → 72,6
{
//PROF OU RESPONSAVEL
cupv.persistViewInObjectTeacher(evaluation);
cupv.setCourseUnitEvaluation(evaluation);
}
else if(usession.getUser() instanceof Teacher
&& (((usession.getUser())).hasRole(c.getCourse().getValidationRole())
83,7 → 81,6
{
//COMISSAO DE CURSO
cupv.persistViewInObjectTeacher(evaluation);
cupv.setCourseUnitEvaluation(evaluation);
}
List<String> errors = new ArrayList<String>();
String estado = "POR ENTREGAR";
107,6 → 104,7
}
 
 
 
if(!cupv.isAutosave())
{
createPdf(evaluation,c,usession,errors);
117,6 → 115,10
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/CreateCourseUnitDirPackageServiceBat.java
58,6 → 58,11
{
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");
143,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)
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java
51,7 → 51,15
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
{
 
66,6 → 74,8
alunosFound = 0;
studentsChangeBI = 0;
unitsAddedToStudents = 0;
alunosErasmusCadeirasEcontradas = 0;
turmaMoreThanOneRegularCourse = 0;
 
String activeImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear();
 
209,6 → 219,9
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("############################");
222,6 → 235,10
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<<<<<<<<<: ");
264,9 → 281,9
}
}
 
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service)
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service, DefaultLogMessages messages)
{
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service);
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service,messages);
List<BigDecimal> cursos = pairs.get(turma);
if(cursos.size() > 1)
{
299,8 → 316,21
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)
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)
320,12 → 350,31
cursos = new ArrayList<BigDecimal>();
turmaCourses.put(turmaCursoPair.getCdTurma(),cursos);
}
if(turmaCursoPair.getCodigoCurso().intValue() > 0)
if(turmaCursoPair.getCodigoCurso().intValue() >= 0)
{
cursos.add(turmaCursoPair.getCodigoCurso());
msg = "Adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso();
logger.info(msg);
serviceLogInfo(msg);
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
{
441,36 → 490,57
//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> unitsFromSigesPersistentInBaco = new HashSet<CourseUnit>();
ArrayOfDisciplina disciplinas = alunoSiges.getDisciplinasInscrito();
for (Disciplina disciplina : disciplinas.getDisciplina())
{
BigDecimal codigoDoCursoReal = disciplina.getCodigoCurso();
boolean cursoFicticio = isCursoFicticio(disciplina.getCodigoCurso().intValue());
BigDecimal codigoDoCurso = disciplina.getCodigoCurso();
if(disciplina.getCdTipoDisciplina() != null
&& disciplina.getCdTipoDisciplina().intValue()
== ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR)
&&
(disciplina.getCdTipoDisciplina().intValue() == ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR
||
cursoFicticio))
{
 
codigoDoCursoReal = getRealCourse(disciplina.getCdTurma(),year,disciplina.getCdDuracao(),service);
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " nome:" + disciplina.getNome() + "turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCursoReal;
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(),"" + codigoDoCursoReal,disciplina.getCdDuracao(),disciplina.getCdLectivo()
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()
,"" + codigoDoCursoReal.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma());
,"" + codigoDoCurso.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma());
}
if(courseUnit == null)
{
unitsNotFound++;
String msg = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCursoReal + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma();
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);
}
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java
46,6 → 46,7
int teachersNew = 0;
int teachersZeroUnits = 0;
int unitsNotFound = 0;
int unitsNotFoundCourseNotFound = 0;
int unitsAddedToTeachers = 0;
int unitsRemovedToTeachers = 0;
int unitsLocalAddedNotRemoved = 0;
61,6 → 62,7
teachersNew = 0;
teachersZeroUnits = 0;
unitsNotFound = 0;
unitsNotFoundCourseNotFound = 0;
unitsAddedToTeachers = 0;
unitsRemovedToTeachers = 0;
unitsLocalAddedNotRemoved = 0;
121,7 → 123,7
t = DomainObjectFactory.createTeacherImpl();
DaoFactory.getTeacherDaoImpl().save(t);
newUser = true;
teachersNew++;
//teachersNew++;
}
else
{
134,7 → 136,7
serviceLogInfo(msgS);
try
{
persist(d, t, newUser,year);
persist(d, t, newUser,year,logMessages);
}
catch (Exception e)
{
187,6 → 189,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 → 201,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,7 → 328,7
* @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;
 
460,8 → 464,20
if (courseUnit == null)
{
msgS = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo();
unitsNotFound++;
if(disciplina.getCodigoCurso()==null || disciplina.getCodigoCurso().intValue() <= -1)
{
unitsNotFoundCourseNotFound++;
msgS += "... unit with No Course Found in SIGED";
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);
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
300,7 → 300,7
{
c = DomainObjectFactory.createCourseUnitImpl();
DaoFactory.getCourseUnitDaoImpl().save(c);
logMessages.addMessage(new DefaultLogMessage("import.error", "New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso() + " turma(" + d.getCdTurma() + ")", "see log for details", LogMessageTypeEnum.ERROR));
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++;
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportSumariesJson.java
193,7 → 193,7
s.setDataAula(aula.getData().toGregorianCalendar().getTime());
s.setTipoAula(aula.getSumTipoAula());
s.setCodigoSalaAula("" + aula.getAulaCodigoSalaAula().intValue());
s.setAlunosPresentes(aula.getSumNumeroAlunos().intValue());
s.setAlunosPresentes(aula.getSumNumeroPresencas().intValue());
s.setTitulo(aula.getSumTitulo());
s.setDescricao(aula.getSumDescricao());
s.setcEstado(""+aula.getSumCdEstado().intValue());
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java
252,6 → 252,7
*/
public List<CourseUnit> loadBySigesCodeTurmaNull(String sigesCode, String courseCode, String semestre, String year)
{
//todo cdTurma Rollback
return (List<CourseUnit>)
createCriteria()
.add(eq("code", sigesCode))
266,6 → 267,7
//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))
276,6 → 278,19
.uniqueResult();
}
 
public CourseUnit loadBySigesCodeUniqueAllCourses(String sigesCode, String semestre, String year,String turma)
{
//todo cdTurma Rollback
return (CourseUnit)
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))
.uniqueResult();
}
 
public CourseUnit loadBySigesCodeUniqueMostRecent(String sigesCode, String courseCode, String semestre)
{
List<CourseUnit> cus =
/impl/src/java/pt/estgp/estgweb/web/controllers/courseunits/CourseUnitsEvaluationController.java
85,10 → 85,9
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"))
97,7 → 96,7
}
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);
108,6 → 107,7
}
else
return mapping.findForward("load");
 
}
catch (FilterChainFailedException e)
{
120,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);
}
}
 
131,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);
159,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");
}
}
 
169,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");
196,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/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/admin/courses/courseComissions.jsp
34,6 → 34,7
<%
String importYear = request.getParameter("importYear");
 
String nowInterfaceImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear();
 
if(importYear == null || importYear.length()==0)
{
86,16 → 87,18
<thead>
<tr>
<th>Codigo</th>
<th>Grau</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></th>
<th>Unidades</th>
<th>Editar</th>
</baco:hasRole>
</tr>
</thead>
109,7 → 112,9
int unitsSize=DaoFactory.getCourseDaoImpl().countCoursesUnits(importYear,c.getId());
int unitsSizeOthers=DaoFactory.getCourseDaoImpl().countCoursesUnitsNot(importYear, c.getId());
int totalUnits = unitsSize + unitsSizeOthers;
if(totalUnits > 0 || userSession.getUser().isAdmin() || userSession.getUser().hasRole("services"))
//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"))
{
%>
 
118,6 → 123,7
<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}"/>
157,7 → 163,13
<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>
<%
/impl/src/web/layout/scripts.jsp
132,9 → 132,18
 
function ping()
{
$.getJSON( "<%=request.getContextPath()%>/ping.jsp", function( data ) {
setTimeout("ping()",10000);
$.ajax({
url: "<%=request.getContextPath()%>/ping.jsp",
type: "POST",
dataType: "json",
success: function(resposta) {
setTimeout("ping()",10000);
},
error: function() {
setTimeout("ping()",10000);
}
});
 
}
$(document).ready(function()
{
/impl/src/web/user/courseunits/courseunitEvaluation.jsp
84,7 → 84,7
if(!closed)
{
%>
<p class="WARNING"><bean:message key="courseunit.evaluation.warning"/></p>
<p><bean:message key="courseunit.evaluation.warning"/></p>
<%
}
%>
293,50 → 293,126
 
%>
 
 
<!-- 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);
<%
}
%>
 
 
setTimeout("serData()",10000);
 
});
var stopAutoSave = false;
 
function serData()
{
var data = $("#formEval").serialize().replace(/%0D%0A/g, '%0A').replace(/\r?\n/g, "\r\n");
//alert(data);
$("#dispatch").val("saveEvaluation");
//alert($("#dispatch").val())
$("#autosave").html("Enviando...")
$.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);
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>
496,12 → 572,8
{
%>
 
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');form.submit()"/>
<script>
$( document ).ready(function() {
setTimeout("serData()",5000);
});
</script>
<input type="button" value="<bean:message key="save"/>" onclick="set(form,'saveEvaluation');submitFormWaitAutoSave(form);"/>
 
<%
}
 
509,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);"/>
 
<%
}
519,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);"/>
<%
}
%>
/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