Exemple #1
0
 private void checkSiteQuota(Site site, int size) {
   if (site.hasQuota()) {
     if (site.getUsedQuota() + size > site.getQuota()) {
       throw new SiteFileQuotaExceededException(site, size);
     }
   }
 }
 @Override
 protected String getDirectLinkContext(HttpServletRequest request) {
   Unit unit = getUnit(request);
   Site site = unit.getSite();
   try {
     return site == null
         ? null
         : RequestUtils.absoluteURL(request, site.getReversePath()).toString();
   } catch (MalformedURLException e) {
     return null;
   }
 }
Exemple #3
0
  protected void run(
      Site site,
      Container container,
      File file,
      String originalFilename,
      String displayName,
      Group permittedGroup,
      Person person,
      EducationalResourceType type)
      throws FenixServiceException, DomainException, IOException {

    final VirtualPath filePath = getVirtualPath(site, container);

    Collection<FileSetMetaData> metaData =
        createMetaData(person.getName(), displayName, site.getAuthorName(), type);

    final byte[] bs = FileUtils.readFileToByteArray(file);

    checkSiteQuota(site, bs.length);

    FileContent fileContent =
        new FileContent(filePath, originalFilename, displayName, metaData, bs, permittedGroup);

    container.addFile(fileContent);
  }
Exemple #4
0
  private VirtualPath getVirtualPath(Site site, Container container) {

    List<Content> contents = site.getPathTo(container);

    final VirtualPath filePath = new VirtualPath();

    for (Content content : contents.subList(1, contents.size())) {
      filePath.addNode(
          0,
          new VirtualPathNode(
              content.getClass().getSimpleName().substring(0, 1) + content.getExternalId(),
              content.getName().getContent()));
    }

    String authorName = site.getAuthorName();
    filePath.addNode(
        0,
        new VirtualPathNode(
            "Site" + site.getExternalId(),
            authorName == null ? "Site" + site.getExternalId() : authorName));

    ExecutionSemester executionSemester = site.getExecutionPeriod();
    if (executionSemester == null) {
      filePath.addNode(0, new VirtualPathNode("Intemporal", "Intemporal"));
    } else {
      filePath.addNode(
          0,
          new VirtualPathNode(
              "EP" + executionSemester.getExternalId(), executionSemester.getName()));

      ExecutionYear executionYear = executionSemester.getExecutionYear();
      filePath.addNode(
          0, new VirtualPathNode("EY" + executionYear.getExternalId(), executionYear.getYear()));
    }

    filePath.addNode(0, new VirtualPathNode("Courses", "Courses"));
    return filePath;
  }
  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>");
      }
    }
  }