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; } }
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); }
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 + "º 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&" + PresentationConstants.EXECUTION_COURSE_OID + "=" + infoExecutionCourse.getExternalId() + "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + PresentationConstants.EXECUTION_DEGREE_OID + "=" + examsMap.getInfoExecutionDegree().getExternalId() + "&" + 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( "&executionPeriodName=" + infoExecutionCourse.getInfoExecutionPeriod().getName()); strBuffer.append( "&executionYear=" + infoExecutionCourse .getInfoExecutionPeriod() .getInfoExecutionYear() .getYear()); strBuffer.append("&comment=" + infoExecutionCourse.getComment()); strBuffer.append("&method=prepare"); strBuffer.append("&indexExecutionCourse=" + i); strBuffer.append( "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + 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( "&executionPeriodName=" + infoExecutionCourse.getInfoExecutionPeriod().getName()); strBuffer.append( "&executionYear=" + infoExecutionCourse .getInfoExecutionPeriod() .getInfoExecutionYear() .getYear()); strBuffer.append("&method=prepare"); strBuffer.append("&indexExecutionCourse=" + i); strBuffer.append( "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + PresentationConstants.EXECUTION_DEGREE_OID + "=" + examsMap.getInfoExecutionDegree().getExternalId() + getCurricularYearsArgs()); strBuffer.append("'>"); strBuffer.append("Definir comentá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 + "'> </td>"); } if (season2Exam == null && !hasComment) { strBuffer.append("<td colspan='3' class='" + rowClass + "'> </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&" + PresentationConstants.EXECUTION_COURSE_OID + "=" + infoExecutionCourse.getExternalId() + "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + PresentationConstants.EXECUTION_DEGREE_OID + "=" + examsMap.getInfoExecutionDegree().getExternalId() + "&" + PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString() + "&" + PresentationConstants.EXAM_OID + "=" + season1Exam.getExternalId() + "'>"); } if (user.equals("sop")) { strBuffer.append("1ª É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&" + PresentationConstants.EXECUTION_COURSE_OID + "=" + infoExecutionCourse.getExternalId() + "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + PresentationConstants.EXECUTION_DEGREE_OID + "=" + examsMap.getInfoExecutionDegree().getExternalId() + "&" + PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString() + "&" + 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&" + PresentationConstants.EXECUTION_COURSE_OID + "=" + infoExecutionCourse.getExternalId() + "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + PresentationConstants.EXECUTION_DEGREE_OID + "=" + examsMap.getInfoExecutionDegree().getExternalId() + "&" + PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString() + "&" + PresentationConstants.EXAM_OID + "=" + season2Exam.getExternalId() + "'>"); } if (user.equals("sop")) { strBuffer.append("2ª "); 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&" + PresentationConstants.EXECUTION_COURSE_OID + "=" + infoExecutionCourse.getExternalId() + "&" + PresentationConstants.EXECUTION_PERIOD_OID + "=" + infoExecutionCourse.getInfoExecutionPeriod().getExternalId() + "&" + PresentationConstants.EXECUTION_DEGREE_OID + "=" + examsMap.getInfoExecutionDegree().getExternalId() + "&" + PresentationConstants.CURRICULAR_YEAR_OID + "=" + curricularYear.toString() + "&" + 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>"); } } }