Rev 1572 | Rev 1623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1572 | Rev 1585 | ||
---|---|---|---|
Line 314... | Line 314... | ||
314 | logger.warn(logMessages.getLastMessage()); |
314 | logger.warn(logMessages.getLastMessage()); |
315 | serviceLogError(logMessages.getLastMessage()); |
315 | serviceLogError(logMessages.getLastMessage()); |
316 | throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos num questioário com respostas"); |
316 | throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos num questioário com respostas"); |
317 | } |
317 | } |
318 | 318 | ||
- | 319 | //aqui sacamos os cursos seleccionados que sao serializados em JSON no Questionario e sao necessários como parametro ao serviço |
|
319 | 1.5.0/docs/api/java/lang/String.html">String[] coursesList = deserializeCoursesList(q); |
320 | 1.5.0/docs/api/java/lang/String.html">String[] coursesList = deserializeCoursesList(q); |
320 | //Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre |
321 | //Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre |
321 | 322 | ||
322 | /**logging**/ |
323 | /**logging**/ |
323 | 1.5.0/docs/api/java/lang/String.html">String msg = "Starting running service for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle(); |
324 | 1.5.0/docs/api/java/lang/String.html">String msg = "Starting running service for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle(); |
Line 455... | Line 456... | ||
455 | */ |
456 | */ |
456 | private void createCursoAfeto(QuestionarioImpl q, Course c, DefaultLogMessages logMessages) throws 1.5.0/docs/api/java/io/IOException.html">IOException, TransformationException |
457 | private void createCursoAfeto(QuestionarioImpl q, Course c, DefaultLogMessages logMessages) throws 1.5.0/docs/api/java/io/IOException.html">IOException, TransformationException |
457 | { |
458 | { |
458 | 1.5.0/docs/api/java/lang/String.html">String msg; |
459 | 1.5.0/docs/api/java/lang/String.html">String msg; |
459 | QuestionarioPedagogicoCursoAfetoImpl cursoAfeto = null; |
460 | QuestionarioPedagogicoCursoAfetoImpl cursoAfeto = null; |
- | 461 | //esta aqui um to_do mas foi revisto e nao aparenta haver problemas |
|
- | 462 | // As unidades do curso sao carregadas mais abaixo e são adicionadas, |
|
- | 463 | // Todas as não adicionadas são removidas seguidamente usando a lista de adicionadas. |
|
460 | //todo fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto |
464 | // to_do antigo: fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto |
461 | //reativar o set e testar isso |
465 | //reativar o set e testar isso |
- | 466 | ||
- | 467 | //isto serve para o caso do curso ter sido afeto mais que uma vez, tem de se remover as afetacoes e deixar apenas uma |
|
462 | List<QuestionarioPedagogicoCursoAfeto> cursosFound = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId(),c.getCode()); |
468 | List<QuestionarioPedagogicoCursoAfeto> cursosFound = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId(),c.getCode()); |
463 | if(cursosFound != null && cursosFound.size() > 1) |
469 | if(cursosFound != null && cursosFound.size() > 1) |
464 | { |
470 | { |
465 | msg = "Encontrados mais que um curso nos mesmos códigos:" + c.getCode() + " apagando um"; |
471 | msg = "Encontrados mais que um curso nos mesmos códigos:" + c.getCode() + " apagando um"; |
466 | serviceLogWarn(msg); |
472 | serviceLogWarn(msg); |
Line 502... | Line 508... | ||
502 | 508 | ||
503 | 509 | ||
504 | 510 | ||
505 | List<Long> newUnitCodesList = new ArrayList<Long>(); |
511 | List<Long> newUnitCodesList = new ArrayList<Long>(); |
506 | int countUnits = 0; |
512 | int countUnits = 0; |
- | 513 | //vai buscar todas as unidades da base de dados que fazem match as necessidades |
|
507 | List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear()); |
514 | List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear()); |
508 | int totalUnits = results.size(); |
515 | int totalUnits = results.size(); |
509 | for(CourseUnitDaoImpl.CourseUnitResult cur : results) |
516 | for(CourseUnitDaoImpl.CourseUnitResult cur : results) |
510 | { |
517 | { |
511 | countUnits++; |
518 | countUnits++; |
Line 514... | Line 521... | ||
514 | /** logging **/ |
521 | /** logging **/ |
515 | msg = "---->(" + countUnits + " of " + totalUnits +") CourseUnit loaded: " + cu.getName() + "(" + cu.getCode() + ")"; |
522 | msg = "---->(" + countUnits + " of " + totalUnits +") CourseUnit loaded: " + cu.getName() + "(" + cu.getCode() + ")"; |
516 | serviceLogInfo(msg); |
523 | serviceLogInfo(msg); |
517 | logger.info(msg); |
524 | logger.info(msg); |
518 | /** logging **/ |
525 | /** logging **/ |
- | 526 | //este metodo procura a unidade primeiro e apenas a cria se ela ainda nao existir como afeta |
|
519 | createUnidadeAfeta(cursoAfeto, cur,cu, logMessages); |
527 | createUnidadeAfeta(cursoAfeto, cur,cu, logMessages); |
520 | DaoFactory.getCourseUnitDaoImpl().evict(cu); |
528 | DaoFactory.getCourseUnitDaoImpl().evict(cu); |
521 | } |
529 | } |
522 | 530 | ||
- | 531 | //o problema poderia dar-se se uma unidade desaparece da base de dados, nesse caso ela já era afeta e o sistema nao a iria remover |
|
- | 532 | //porque apesar de nao estar na nova lista de codigos, tb nao esta no curso afeto, mas o sistema |
|
- | 533 | //o que faz é carregar todas as afetas e remover todas as que nao estejam na lista de novas |
|
523 | removeUnselectedUnits(cursoAfeto,newUnitCodesList); |
534 | removeUnselectedUnits(cursoAfeto,newUnitCodesList); |
524 | } |
535 | } |
525 | 536 | ||
526 | /** |
537 | /** |
527 | * |
538 | * |