예제 #1
0
  private void renderExamsExecutionCourseTableForYear(
      StringBuilder strBuffer, Integer year, PageContext pageContext) {
    // PRINT EXECUTION DEGREE
    strBuffer.append(
        "<strong>"
            + examsMap
                .getInfoExecutionDegree()
                .getInfoDegreeCurricularPlan()
                .getInfoDegree()
                .getNome()
            + "</strong><br />");
    strBuffer.append("<strong>" + year + "&ordm; ");
    strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.year"));
    strBuffer.append("</strong>");
    if (!examsMap.getExecutionCourses().isEmpty()) {
      strBuffer.append(
          " - <strong>"
              + ((InfoExecutionCourse) examsMap.getExecutionCourses().iterator().next())
                  .getInfoExecutionPeriod()
                  .getSemester()
              + "&ordm; ");
      strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.semester"));
      strBuffer.append("</strong>");
    }
    strBuffer.append(
        " - <strong>"
            + examsMap.getInfoExecutionDegree().getInfoExecutionYear().getYear()
            + "</strong><br />");
    strBuffer.append("<table border='1' cellspacing='0' cellpadding='3' width='95%'>");

    renderExamsTableHeader(strBuffer, pageContext);

    Collections.sort(examsMap.getExecutionCourses(), new BeanComparator("nome"));

    for (int i = 0; i < examsMap.getExecutionCourses().size(); i++) {
      InfoExecutionCourse infoExecutionCourse =
          (InfoExecutionCourse) examsMap.getExecutionCourses().get(i);
      if (infoExecutionCourse.getCurricularYear().equals(year)
          && !infoExecutionCourse.getAssociatedInfoExams().isEmpty()) {
        strBuffer.append("<tr>");
        strBuffer.append("<td rowspan='2'>");
        strBuffer.append(infoExecutionCourse.getNome());
        strBuffer.append("</td>");

        writeLineForExecutionCourseAndExamOfSeason(strBuffer, infoExecutionCourse, Season.SEASON1);
        strBuffer.append("</tr>");

        strBuffer.append("<tr>");
        writeLineForExecutionCourseAndExamOfSeason(strBuffer, infoExecutionCourse, Season.SEASON2);
        strBuffer.append("</tr>");
      }
    }

    strBuffer.append("</table>");
  }
예제 #2
0
  private void renderExecutionCourseListForYear(
      StringBuilder strBuffer, Integer curricularYear, PageContext pageContext) {
    if (!examsMap.hasExecutionCoursesForGivenCurricularYear(curricularYear)) {
      strBuffer
          .append("<i>")
          .append(getMessageResource(pageContext, "no.execution.courses.for.curricular.year"))
          .append(curricularYear)
          .append("</i>");
    } else {
      if (user.equals("public")) {
        strBuffer.append("<table class='tab_exams_details' cellspacing='0'>");
        strBuffer.append("<tr><th rowspan='2' width='250' class='ordYear'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.year"));
        strBuffer.append(" ");
        strBuffer.append(curricularYear);
        strBuffer.append("</th>");
        strBuffer.append("<th colspan='3' width='250'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.times"));
        strBuffer.append(" 1");
        strBuffer.append("</th>");
        strBuffer.append("<th colspan='3'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.times"));
        strBuffer.append(" 2");
        strBuffer.append("</th></tr>");
        strBuffer.append("<tr><td class='subheader' width='70'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.day"));
        strBuffer.append("</td><td class='subheader' width='50'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.hour"));
        strBuffer.append("</td><td class='subheader' width='130'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.room"));
        strBuffer.append("</td>");
        strBuffer.append("<td class='subheader' width='70'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.day"));
        strBuffer.append("</td>" + "<td class='subheader' width='50'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.hour"));
        strBuffer.append("</td><td class='subheader' width='130'>");
        strBuffer.append(getMessageResource(pageContext, "public.degree.information.label.room"));
        strBuffer.append("</td></tr>");
      } else {
        strBuffer.append("<strong>");
        strBuffer.append(
            getMessageResource(pageContext, "public.degree.information.label.courseOf"));
        strBuffer.append(curricularYear + "&ordm; ano:</strong>");
      }

      Collections.sort(examsMap.getExecutionCourses(), new BeanComparator("sigla"));
      String rowClass = "notFirstRow"; // used for CSS style
      for (int i = 0; i < examsMap.getExecutionCourses().size(); i++) {
        InfoExecutionCourse infoExecutionCourse =
            (InfoExecutionCourse) examsMap.getExecutionCourses().get(i);

        if (user.equals("sop")) {
          strBuffer.append("<table border='1' cellspacing='0' cellpadding='3' width='95%'>");
          strBuffer.append("<tr>");
        }

        if (i == 0) {
          rowClass = "firstRow";
        }

        if (infoExecutionCourse.getCurricularYear().equals(curricularYear)) {
          boolean showCreateExamLink = infoExecutionCourse.getAssociatedInfoExams().size() < 2;
          if (user.equals("sop")) {
            strBuffer.append("<td colspan='6'>");
          }

          if (user.equals("public")) {
            strBuffer.append("<tr valign='top'>");
            strBuffer.append("<td class='" + rowClass + "'>");

            final Site site = infoExecutionCourse.getExecutionCourse().getSite();
            strBuffer.append(GenericChecksumRewriter.NO_CHECKSUM_PREFIX);
            strBuffer
                .append("<a href=\"")
                .append(((HttpServletRequest) pageContext.getRequest()).getContextPath());
            strBuffer.append(site.getReversePath());
            strBuffer.append("\">");

          } else if (showCreateExamLink && user.equals("sop")) {
            strBuffer.append(
                "<a href='"
                    + addPublicPrefix("showExamsManagement.do")
                    + "?method=createByCourse&amp;"
                    + PresentationConstants.EXECUTION_COURSE_OID
                    + "="
                    + infoExecutionCourse.getExternalId()
                    + "&amp;"
                    + PresentationConstants.EXECUTION_PERIOD_OID
                    + "="
                    + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                    + "&amp;"
                    + PresentationConstants.EXECUTION_DEGREE_OID
                    + "="
                    + examsMap.getInfoExecutionDegree().getExternalId()
                    + "&amp;"
                    + PresentationConstants.CURRICULAR_YEAR_OID
                    + "="
                    + curricularYear.toString()
                    + "'>");
          }

          strBuffer.append(infoExecutionCourse.getSigla());
          strBuffer.append(" - ");
          strBuffer.append(infoExecutionCourse.getNome());

          if (user.equals("public")) {
            strBuffer.append("</a>");
            strBuffer.append("</td>");
          }

          boolean hasComment =
              infoExecutionCourse.getComment() != null
                  && infoExecutionCourse.getComment().length() > 0
                  && !infoExecutionCourse.getComment().equals(" ");

          if (hasComment) {
            if (user.equals("sop")) {
              strBuffer.append(" : ");
              strBuffer.append(
                  "<a href='" + addPublicPrefix("defineComment.do") + "?executionCourseCode=");
              strBuffer.append(infoExecutionCourse.getSigla());
              strBuffer.append(
                  "&amp;executionPeriodName="
                      + infoExecutionCourse.getInfoExecutionPeriod().getName());
              strBuffer.append(
                  "&amp;executionYear="
                      + infoExecutionCourse
                          .getInfoExecutionPeriod()
                          .getInfoExecutionYear()
                          .getYear());
              strBuffer.append("&amp;comment=" + infoExecutionCourse.getComment());
              strBuffer.append("&amp;method=prepare");
              strBuffer.append("&amp;indexExecutionCourse=" + i);
              strBuffer.append(
                  "&amp;"
                      + PresentationConstants.EXECUTION_PERIOD_OID
                      + "="
                      + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                      + "&amp;"
                      + PresentationConstants.EXECUTION_DEGREE_OID
                      + "="
                      + examsMap.getInfoExecutionDegree().getExternalId()
                      + getCurricularYearsArgs());
              strBuffer.append("'>");
            } else if (user.equals("public")) {
              strBuffer.append("<td colspan='6' class='" + rowClass + "'><i>");
            }

            strBuffer.append(infoExecutionCourse.getComment());

            if (user.equals("sop")) {
              strBuffer.append("</a>");
            } else if (user.equals("public")) {
              strBuffer.append("</i></td>");
            }

          } else {
            if (user.equals("sop")) {
              strBuffer.append(" : ");
              strBuffer.append(
                  "<a href='" + addPublicPrefix("defineComment.do") + "?executionCourseCode=");
              strBuffer.append(infoExecutionCourse.getSigla());
              strBuffer.append(
                  "&amp;executionPeriodName="
                      + infoExecutionCourse.getInfoExecutionPeriod().getName());
              strBuffer.append(
                  "&amp;executionYear="
                      + infoExecutionCourse
                          .getInfoExecutionPeriod()
                          .getInfoExecutionYear()
                          .getYear());
              strBuffer.append("&amp;method=prepare");
              strBuffer.append("&amp;indexExecutionCourse=" + i);
              strBuffer.append(
                  "&amp;"
                      + PresentationConstants.EXECUTION_PERIOD_OID
                      + "="
                      + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                      + "&amp;"
                      + PresentationConstants.EXECUTION_DEGREE_OID
                      + "="
                      + examsMap.getInfoExecutionDegree().getExternalId()
                      + getCurricularYearsArgs());
              strBuffer.append("'>");
              strBuffer.append("Definir coment&aacute;rio");
              strBuffer.append("</a>");
            }
          }

          if (user.equals("sop")) {
            strBuffer.append("</td>");
            strBuffer.append("</tr>");
          }

          if (infoExecutionCourse.getAssociatedInfoExams().isEmpty() && !hasComment) {
            strBuffer.append("<td colspan='6' align='center' class='" + rowClass + "'>");
            strBuffer
                .append("<i>")
                .append(getMessageResource(pageContext, "no.exams.for.curricular.year"))
                .append("</i>");
            strBuffer.append("</td>");
          } else {
            // Get 1st season exam
            InfoExam season1Exam =
                (InfoExam)
                    CollectionUtils.find(
                        infoExecutionCourse.getAssociatedInfoExams(),
                        new Predicate() {
                          @Override
                          public boolean evaluate(Object obj) {
                            InfoExam infoExam = (InfoExam) obj;
                            return infoExam.getSeason().equals(new Season(Season.SEASON1));
                          }
                        });
            // Get 2nd season exam
            InfoExam season2Exam =
                (InfoExam)
                    CollectionUtils.find(
                        infoExecutionCourse.getAssociatedInfoExams(),
                        new Predicate() {
                          @Override
                          public boolean evaluate(Object obj) {
                            InfoExam infoExam = (InfoExam) obj;
                            return infoExam.getSeason().equals(new Season(Season.SEASON2));
                          }
                        });

            if (user.equals("public")) {
              if (season1Exam == null && !hasComment) {
                strBuffer.append("<td colspan='3' class='" + rowClass + "'>&nbsp;</td>");
              }
              if (season2Exam == null && !hasComment) {
                strBuffer.append("<td colspan='3' class='" + rowClass + "'>&nbsp;</td>");
              }
            }

            if ((season1Exam != null)
                // && season1Exam.getAssociatedRooms() != null
                // && season1Exam.getAssociatedRooms().size() >
                // 0)
                || (season2Exam != null))
            // && season2Exam.getAssociatedRooms() != null
            // && season2Exam.getAssociatedRooms().size() > 0))
            {
              if (season1Exam != null) {
                if (user.equals("sop")) {
                  strBuffer.append("<tr>");
                  strBuffer.append("<td>");

                  strBuffer.append(
                      "<a href='"
                          + addPublicPrefix("showExamsManagement.do")
                          + "?method=edit&amp;"
                          + PresentationConstants.EXECUTION_COURSE_OID
                          + "="
                          + infoExecutionCourse.getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_PERIOD_OID
                          + "="
                          + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_DEGREE_OID
                          + "="
                          + examsMap.getInfoExecutionDegree().getExternalId()
                          + "&amp;"
                          + PresentationConstants.CURRICULAR_YEAR_OID
                          + "="
                          + curricularYear.toString()
                          + "&amp;"
                          + PresentationConstants.EXAM_OID
                          + "="
                          + season1Exam.getExternalId()
                          + "'>");
                }

                if (user.equals("sop")) {
                  strBuffer.append("1&ordf; &Eacute;poca");
                  strBuffer.append("</a>");
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                  strBuffer.append(season1Exam.getDate());
                  strBuffer.append("<br/>");
                  strBuffer.append(season1Exam.getBeginningHour());
                  strBuffer.append("-");
                  strBuffer.append(season1Exam.getEndHour());
                } else if (user.equals("public")) {
                  strBuffer.append("<td class='" + rowClass + "'>");
                  strBuffer.append(season1Exam.getDate());
                  strBuffer.append("</td>");
                  strBuffer.append("<td class='" + rowClass + "'>");
                  strBuffer.append(season1Exam.getBeginningHour());
                  strBuffer.append("</td>");
                  // strBuffer.append("-");
                  // strBuffer.append(season1Exam.getEndHour())
                  // ;
                }

                if (user.equals("sop")) {
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");

                  // Integer numAlunos =
                  // infoExecutionCourse.
                  // getNumberOfAttendingStudents();

                  Integer numAlunos = season1Exam.getEnrolledStudents();

                  strBuffer.append(numAlunos);
                  strBuffer.append(
                      getMessageResource(
                          pageContext, "public.degree.information.label.enrolledPupils"));
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.lack"));

                  // Obter o num de lugares de exame das salas
                  List roomOccupation = season1Exam.getWrittenEvaluationSpaceOccupations();
                  int numLugaresSalas = 0;

                  for (int iterRO = 0; iterRO < roomOccupation.size(); iterRO++) {
                    InfoRoomOccupation infoRO = (InfoRoomOccupation) roomOccupation.get(iterRO);

                    numLugaresSalas += infoRO.getInfoRoom().getCapacidadeExame().intValue();
                  }

                  int numLugaresAPreencher = numAlunos.intValue() - numLugaresSalas;

                  // if (numLugaresAPreencher < 0)
                  // numLugaresAPreencher = 0;

                  strBuffer.append(numLugaresAPreencher);
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.places"));

                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                }

                List infoRoomOccupations = season1Exam.getWrittenEvaluationSpaceOccupations();

                if (infoRoomOccupations != null && infoRoomOccupations.size() > 0) {
                  if (user.equals("sop")) {
                    strBuffer.append(
                        getMessageResource(pageContext, "public.degree.information.label.rooms"));
                    strBuffer.append("<br/>");
                  } else if (user.equals("public")) {
                    strBuffer.append("<td class='" + rowClass + "'>");
                  }

                  for (int iterIRO = 0; iterIRO < infoRoomOccupations.size(); iterIRO++) {
                    InfoRoomOccupation infoRoomOccupation =
                        (InfoRoomOccupation) infoRoomOccupations.get(iterIRO);

                    strBuffer.append(infoRoomOccupation.getInfoRoom().getNome() + "; ");
                  }
                } else {
                  if (user.equals("sop")) {
                    strBuffer.append("-");
                  } else if (user.equals("public")) {
                    strBuffer.append("<td class='" + rowClass + "'>");
                    strBuffer.append("<i>");
                    strBuffer.append(
                        getMessageResource(
                            pageContext, "public.degree.information.label.noRoomsAttributed"));
                    strBuffer.append("</i>");
                  }
                }

                if (user.equals("sop")) {
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");

                  strBuffer.append(
                      "<a href='"
                          + addPublicPrefix("showExamsManagement.do")
                          + "?method=delete&amp;"
                          + PresentationConstants.EXECUTION_COURSE_OID
                          + "="
                          + infoExecutionCourse.getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_PERIOD_OID
                          + "="
                          + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_DEGREE_OID
                          + "="
                          + examsMap.getInfoExecutionDegree().getExternalId()
                          + "&amp;"
                          + PresentationConstants.CURRICULAR_YEAR_OID
                          + "="
                          + curricularYear.toString()
                          + "&amp;"
                          + PresentationConstants.EXAM_OID
                          + "="
                          + season1Exam.getExternalId()
                          + "'>");
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.delete"));
                  strBuffer.append("</a>");
                  strBuffer.append("</td>");
                }
              }

              if (season2Exam != null) {
                if (user.equals("sop")) {
                  strBuffer.append("<tr>");

                  strBuffer.append("<td>");

                  strBuffer.append(
                      "<a href='"
                          + addPublicPrefix("showExamsManagement.do")
                          + "?method=edit&amp;"
                          + PresentationConstants.EXECUTION_COURSE_OID
                          + "="
                          + infoExecutionCourse.getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_PERIOD_OID
                          + "="
                          + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_DEGREE_OID
                          + "="
                          + examsMap.getInfoExecutionDegree().getExternalId()
                          + "&amp;"
                          + PresentationConstants.CURRICULAR_YEAR_OID
                          + "="
                          + curricularYear.toString()
                          + "&amp;"
                          + PresentationConstants.EXAM_OID
                          + "="
                          + season2Exam.getExternalId()
                          + "'>");
                }

                if (user.equals("sop")) {
                  strBuffer.append("2&ordf; ");
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.times"));
                  strBuffer.append("</a>");
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                  strBuffer.append(season2Exam.getDate());
                  strBuffer.append("<br/>");
                  strBuffer.append(season2Exam.getBeginningHour());
                  strBuffer.append("-");
                  strBuffer.append(season2Exam.getEndHour());
                } else if (user.equals("public")) {
                  strBuffer.append("<td class='" + rowClass + "'>");
                  strBuffer.append(season2Exam.getDate());
                  strBuffer.append("</td>");
                  strBuffer.append("<td class='" + rowClass + "'>");
                  strBuffer.append(season2Exam.getBeginningHour());
                  strBuffer.append("</td>");
                  // strBuffer.append("-");
                  // strBuffer.append(season2Exam.getEndHour())
                  // ;
                }

                if (user.equals("sop")) {
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                  // Integer numAlunos =
                  // infoExecutionCourse.
                  // getNumberOfAttendingStudents();
                  Integer numAlunos = season2Exam.getEnrolledStudents();

                  strBuffer.append(numAlunos);
                  strBuffer.append(
                      getMessageResource(
                          pageContext, "public.degree.information.label.enrolledPupils"));

                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.lack"));

                  // Obter o num de lugares de exame das salas
                  List roomOccupation = season2Exam.getWrittenEvaluationSpaceOccupations();
                  int numLugaresSalas = 0;

                  for (int iterRO = 0; iterRO < roomOccupation.size(); iterRO++) {
                    InfoRoomOccupation infoRO = (InfoRoomOccupation) roomOccupation.get(iterRO);

                    numLugaresSalas += infoRO.getInfoRoom().getCapacidadeExame().intValue();
                  }

                  int numLugaresAPreencher = numAlunos.intValue() - numLugaresSalas;

                  // if (numLugaresAPreencher < 0)
                  // numLugaresAPreencher = 0;

                  strBuffer.append(numLugaresAPreencher);
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.places"));
                  strBuffer.append("</td>");

                  strBuffer.append("<td>");
                }

                List infoRoomOccupations = season2Exam.getWrittenEvaluationSpaceOccupations();

                if (infoRoomOccupations != null && infoRoomOccupations.size() > 0) {
                  if (user.equals("sop")) {
                    strBuffer.append(
                        getMessageResource(pageContext, "public.degree.information.label.rooms")
                            + ":");
                    strBuffer.append("<br/>");
                  } else if (user.equals("public")) {
                    strBuffer.append("<td class='" + rowClass + "'>");
                  }

                  for (int iterIRO = 0; iterIRO < infoRoomOccupations.size(); iterIRO++) {
                    InfoRoomOccupation infoRoomOccupation =
                        (InfoRoomOccupation) infoRoomOccupations.get(iterIRO);

                    strBuffer.append(infoRoomOccupation.getInfoRoom().getNome() + "; ");
                  }

                  if (user.equals("public")) {
                    strBuffer.append("</td>");
                  }
                } else {
                  if (user.equals("sop")) {
                    strBuffer.append("-");
                  } else if (user.equals("public")) {
                    strBuffer.append("<td class='" + rowClass + "'>");
                    strBuffer.append("<i>");
                    strBuffer.append(
                        getMessageResource(
                            pageContext, "public.degree.information.label.noRoomsAttributed"));
                    strBuffer.append("</i>");
                    strBuffer.append("</td>");
                  }
                }

                if (user.equals("sop")) {
                  strBuffer.append("</td>");
                  strBuffer.append("<td>");
                  strBuffer.append(
                      "<a href='"
                          + addPublicPrefix("showExamsManagement.do")
                          + "?method=delete&amp;"
                          + PresentationConstants.EXECUTION_COURSE_OID
                          + "="
                          + infoExecutionCourse.getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_PERIOD_OID
                          + "="
                          + infoExecutionCourse.getInfoExecutionPeriod().getExternalId()
                          + "&amp;"
                          + PresentationConstants.EXECUTION_DEGREE_OID
                          + "="
                          + examsMap.getInfoExecutionDegree().getExternalId()
                          + "&amp;"
                          + PresentationConstants.CURRICULAR_YEAR_OID
                          + "="
                          + curricularYear.toString()
                          + "&amp;"
                          + PresentationConstants.EXAM_OID
                          + "="
                          + season2Exam.getExternalId()
                          + "'>");
                  strBuffer.append(
                      getMessageResource(pageContext, "public.degree.information.label.delete"));
                  strBuffer.append("</a>");
                  strBuffer.append("</td>");
                }
              }
            }
          }

          if (user.equals("public")) {
            strBuffer.append("</tr>");
            if (rowClass == "firstRow") {
              rowClass = "notFirstRow";
            }
          }
        }

        if (user.equals("sop")) {
          strBuffer.append("</tr>");
          strBuffer.append("</table>");
          strBuffer.append("<br />");
        }
      }

      if (user.equals("public")) {
        strBuffer.append("</table>");
      }
    }
  }