Skip to content

Commit

Permalink
Merge UW-Madison Changes
Browse files Browse the repository at this point in the history
  • Loading branch information
edalquist committed Jun 14, 2012
1 parent 3f4145f commit acad81f
Show file tree
Hide file tree
Showing 32 changed files with 1,043 additions and 301 deletions.
2 changes: 1 addition & 1 deletion courses-portlet-api/pom.xml
Expand Up @@ -9,7 +9,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>courses-portlet-api</artifactId>
<packaging>jar</packaging>
<name>Courses Portlet API</name>
<name>CoursePortlet - API</name>

<dependencies>
<dependency>
Expand Down
Expand Up @@ -55,6 +55,8 @@
<xs:element name="term_code" type="xs:string"/>
<xs:element name="gpa" type="xs:double" minOccurs="0"/>
<xs:element name="credits" type="xs:double" minOccurs="0"/>
<xs:element name="overallGpa" type="xs:double" minOccurs="0"/>
<xs:element name="overallCredits" type="xs:double" minOccurs="0"/>
<xs:element name="course" type="course" minOccurs="0" maxOccurs="unbounded">
<!-- Enforce course-summary/course having unique code within the term -->
<xs:unique name="unique_course-summary_course_by_term-code">
Expand All @@ -70,16 +72,20 @@
<xs:element name="displayName" type="xs:string"/>
<xs:element name="code" type="xs:string" minOccurs="0"/>
<xs:element name="year" type="xs:integer" minOccurs="0"/>
<xs:element name="start" type="xs:dateTime" minOccurs="0"/>
<xs:element name="end" type="xs:dateTime" minOccurs="0"/>
<xs:element name="termType" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="current" type="xs:boolean" default="false"/>
<xs:attribute name="registered" type="xs:boolean" default="true"/>
</xs:complexType>

<xs:complexType name="course">
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="code" type="xs:string"/>
<xs:element name="school" type="xs:string" minOccurs="0"/>
<xs:element name="subject" type="xs:string" minOccurs="0"/>
<xs:element name="location" type="location" minOccurs="0"/>
<xs:element name="meetingTimes" type="xs:string" minOccurs="0"/>
<xs:element name="url" type="xs:string"/>
Expand Down
67 changes: 66 additions & 1 deletion courses-portlet-webapp/pom.xml
Expand Up @@ -10,7 +10,7 @@
<groupId>org.jasig.portlet.courses</groupId>
<artifactId>courses-portlet-webapp</artifactId>
<packaging>war</packaging>
<name>CoursePortlet</name>
<name>CoursePortlet - Webapp</name>

<dependencies>
<dependency>
Expand Down Expand Up @@ -86,6 +86,15 @@
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
</dependency>
<dependency>
<groupId>org.jasig.resourceserver</groupId>
<artifactId>resource-server-utils</artifactId>
</dependency>
<dependency>
<groupId>org.jasig.resourceserver</groupId>
<artifactId>resource-server-content</artifactId>
<type>war</type>
</dependency>


<dependency>
Expand All @@ -98,6 +107,12 @@
<artifactId>portlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.portals.pluto</groupId>
<artifactId>pluto-taglib</artifactId>
<version>2.1.0-M2</version>
<scope>provided</scope>
</dependency>


<dependency>
Expand All @@ -116,6 +131,56 @@

<build>
<finalName>CoursesPortlet</finalName>
<plugins>
<plugin>
<groupId>org.jasig.resourceserver</groupId>
<artifactId>resource-server-plugin</artifactId>
<version>${resource-server.version}</version>
<configuration>
</configuration>
<executions>
<execution>
<id>aggregate-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>batch-aggregate</goal>
</goals>
<inherited>false</inherited>
<configuration>
<displayJsWarnings>false</displayJsWarnings>
<includes>
<include>resources.xml</include>
</includes>
<sharedJavaScriptDirectory>js/</sharedJavaScriptDirectory>
<useGeneratedSources>true</useGeneratedSources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<attachClasses>true</attachClasses>
<archive>
<index>true</index>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<overlays>
<overlay>
<groupId>org.jasig.resourceserver</groupId>
<artifactId>resource-server-content</artifactId>
<includes>
<include>rs/jquery/1.6.1/</include>
<include>rs/jqueryui/1.8.13/</include>
</includes>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>

</project>
Expand Up @@ -95,12 +95,12 @@ public CourseSummary getCourseSummary(PortletRequest request, String termCode) {
for (ICoursesDao dao : courseDaos) {
try {

final CourseSummary daoSummary = dao.getCourseSummary(request, termCode);
CourseSummary daoSummary = dao.getCourseSummary(request, termCode);

if (summary == null) {
summary = daoSummary;
} else if (daoSummary != null) {
summary = mergeCourseSummaries(summary, daoSummary);
} else {
mergeCourseSummaries(summary, daoSummary);
}


Expand All @@ -119,10 +119,7 @@ protected void mergeTermSummaries(TermSummary original, TermSummary additional)
// if this term already exists in the summary, merge
// information from this DAO into the existing entry
final Term originalTerm = original.getTerm(t.getCode());
if (originalTerm != null) {
if (t.isCurrent()) {
original.getTerm(t.getCode()).setCurrent(true);
}
if (original.getTerm(t.getCode()) != null) {
//TODO nothing to merge as of yet
}

Expand All @@ -134,11 +131,7 @@ protected void mergeTermSummaries(TermSummary original, TermSummary additional)
}
}

protected CourseSummary mergeCourseSummaries(CourseSummary original, CourseSummary additional) {
final CourseSummary newSummary = new CourseSummary();
newSummary.setCredits(original.getCredits());
newSummary.setGpa(original.getGpa());
newSummary.setTermCode(original.getTermCode());
protected void mergeCourseSummaries(CourseSummary original, CourseSummary additional) {

// overall credit total
if (additional.getCredits() != null) {
Expand All @@ -153,25 +146,16 @@ protected CourseSummary mergeCourseSummaries(CourseSummary original, CourseSumma
// merge the course lists for the existing entry
// and new DAO
for (Course c : additional.getCourses()) {
final Course course = original.getCourse(c.getCode());
Course course = original.getCourse(c.getCode());

if (course != null) {
final Course newCourse = mergeCourse(course, c);
newSummary.getCourses().add(newCourse);
mergeCourse(course, c);
}

else {
newSummary.getCourses().add(c);
}
}

for (Course c : original.getCourses()) {
if (additional.getCourse(c.getCode()) == null) {
newSummary.getCourses().add(c);
original.getCourses().add(c);
}
}

return newSummary;

}

Expand All @@ -182,55 +166,42 @@ protected CourseSummary mergeCourseSummaries(CourseSummary original, CourseSumma
* @param original
* @param additional
*/
protected Course mergeCourse(Course original, Course additional) {

final Course newCourse = new Course();
newCourse.setCode(original.getCode());
newCourse.setCredits(original.getCredits());
newCourse.setGrade(original.getGrade());
newCourse.setLocation(original.getLocation());
newCourse.setMeetingTimes(original.getMeetingTimes());
newCourse.setSchool(original.getSchool());
newCourse.setTitle(original.getTitle());
newCourse.setUrl(original.getUrl());

protected void mergeCourse(Course original, Course additional) {
if (additional.getCredits() != null) {
original.setCredits(additional.getCredits());
}

if (additional.getGrade() != null) {
newCourse.setGrade(additional.getGrade());
original.setGrade(additional.getGrade());
}

if (additional.getLocation() != null) {
newCourse.setLocation(additional.getLocation());
original.setLocation(additional.getLocation());
}

if (additional.getCourseUpdates().size() > 0) {
newCourse.getCourseUpdates().addAll(additional.getCourseUpdates());
if (additional.getCourseUpdates() != null) {
original.getCourseUpdates().addAll(additional.getCourseUpdates());
}

if (additional.getInstructors() != null) {
newCourse.getInstructors().addAll(additional.getInstructors());
original.getInstructors().addAll(additional.getInstructors());
}

if (additional.getSchool() != null) {
newCourse.setSchool(additional.getSchool());
original.setSchool(additional.getSchool());
}

if (additional.getMeetingTimes() != null) {
newCourse.setMeetingTimes(additional.getMeetingTimes());
original.setMeetingTimes(additional.getMeetingTimes());
}

if (additional.getTitle() != null) {
newCourse.setTitle(additional.getTitle());
original.setTitle(additional.getTitle());
}

if (additional.getUrl() != null) {
newCourse.setUrl(additional.getUrl());
original.setUrl(additional.getUrl());
}

return newCourse;
}

}

0 comments on commit acad81f

Please sign in to comment.