Skip to content

Commit

Permalink
SAK-32151 Sakai Rubrics initial support (sakaiproject#3883)
Browse files Browse the repository at this point in the history
* SAK-32151 Sakai Rubrics initial support. This includes a Rubrics Service API and
Web Components, as well as a Sakai Rubrics Tool for managing Rubrics.

This commit includes the basis for a very minor 3rd party Polymer library
modification. The file is contained in:
rubrics/services/src/main/webapp/lib/polymer-sortablejs/polymer-sortablejs.html
This is the community version that is pulled down as part of the build.
A subsequent commit will apply changes to fix an issue with that
library.

* SAK-32151 Modification to the polymer-sortablejs.html to fix a bug in the library
which affected proper drag and drop sorting behavior.

This modified file is copied over the 3rd party community version during
the build process. The previous commit contained the unmodified
community base version for this library, so this commit shows the
trivial extent of the customization.

* SAK-32151 Sakai Rubrics initial support. This includes a Rubrics Service API and
Web Components, as well as a Sakai Rubrics Tool for managing Rubrics.

This commit includes the basis for a very minor 3rd party Polymer library
modification. The file is contained in:
rubrics/services/src/main/webapp/lib/polymer-sortablejs/polymer-sortablejs.html
This is the community version that is pulled down as part of the build.
A subsequent commit will apply changes to fix an issue with that
library.

* New rebase in rubrics. Pom changes
  • Loading branch information
ddelblanco authored and ern committed Apr 11, 2017
1 parent 7c3f39d commit 62548c1
Show file tree
Hide file tree
Showing 113 changed files with 13,766 additions and 9 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ sakai-demo.zip
.DS_Store
*nb-configuration.xml
velocity.log
node_modules
bower_components
Original file line number Diff line number Diff line change
Expand Up @@ -4788,8 +4788,9 @@
# The email address that will receive the confirmation mails from the import jobs (by default uses the defined in portal.error.email)
#[email protected]

#SAMIGO

# ###############################
#SAMIGO SEARCH AND TAGS
# ###############################

#show the search question option in the question creation page (default is false)
#This needs elasticsearch service working
Expand Down Expand Up @@ -4819,3 +4820,196 @@
#If both samigo.author.multitag.singlequestion and samigo.author.multitag.singlequestion.check are false,
# the tags will be independent in every question and saving one question won’t affect any other question.
#samigo.author.multitag.singlequestion.check=false

# ###############################
# Rubrics service database configuration
# ###############################

spring.datasource.initialize=true

#spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
#spring.datasource.username=user
#spring.datasource.password=password
#spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
#spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
#spring.datasource.tomcat.validation-query=select 1 from DUAL

spring.datasource.url=jdbc:mysql://localhost/rubrics
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.tomcat.validation-query=SELECT 1
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

spring.datasource.tomcat.test-on-borrow=true
spring.jpa.generate-ddl=true

# Automatically validates or exports schema DDL to the database when the SessionFactory is created.
# With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.
# Possible values: validate | update | create | create-drop
#spring.jpa.hibernate.ddl-auto=create-drop
#it should be changed to validate once it is in production and the schema has been created
spring.jpa.hibernate.ddl-auto=create
#spring.jpa.hibernate.ddl-auto=validate

# ###############################
# Rubrics
# ###############################
# Whether or not the rubrics service and view components provide and store an "Overall Comment" field.
# False to disable this feature for the instance. True to enable (which can be overridden by tools and/or during association)
rubrics.instance.overall-comment-enabled=true
#
# Default layout style for rubrics. Must be either 'classic' or 'flex'. (NOTE: Only flex is currently supported)
# Default layout style must be enabled.
# DEFAULT: flex
rubrics.instance.default-layout=flex

# Default layout language for rubrics.
# DEFAULT: en_US
rubrics.instance.default-language=en-US
#
# Whether Flex layout is available for use. Values are either 'true' or 'false'.
# DEFAULT: true
rubrics.instance.layouts[flex].enabled=true
#
# Default order of the ratings sort layout in Flex style from left to right: Low to High (lohi) or High to Low (hilo)
# DEFAULT: hilo
rubrics.instance.layouts[flex].ratings-order=hilo
#
# Whether or not Flex style rubrics support the association option to have a "fine-tune" criterion value selector.
# False to disable this feature for the instance. True to enable it and allow it to be overridden by tools and/or during association.
# DEFAULT: true
rubrics.instance.layouts[flex].criterion-fine-tune-enabled=true
#
# Whether or not Flex style rubrics support the "Not Applicable" rating option.
# False to disable this feature for the instance. True to enable it and allow it to be overridden by tools and/or during association.
# DEFAULT: false
rubrics.instance.layouts[flex].criterion-not-applicable-enabled=false
#
# Whether or not Flex style rubrics support the "Display Titles Only" rating option where descriptions are deprioritized.
# False to disable this feature for the instance. True to enable it and allow it to be overridden by tools and/or during association.
# DEFAULT: false
rubrics.instance.layouts[flex].ratings-titles-only-option-enabled=false
#
# Whether or not Flex style rubrics support the "Feedback Only" rating option where point values are hidden and no value is
# calculated or returned to the tool.
# False to disable this feature for the instance. True to enable it and allow it to be overridden by tools and/or during association.
# DEFAULT: false
rubrics.instance.layouts[flex].ratings-feedback-only-option-enabled=false
#
# Default rubric in a Flex layout.
# Should specify at a minimum one criterion and one rating. Allows for as many default criterions and varied ratings per criterion as desired.

rubrics.instance.layouts[flex].language[en-US].default-rubric.title=New Rubric
rubrics.instance.layouts[flex].language[en-US].default-rubric.description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].title=Criterion 1
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[0].title=Inadequate
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[0].points=0
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[0].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[1].title=Meets expectations
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[1].points=1
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[1].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[2].title=Exceeds expectations
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[2].points=2
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[0].ratings[2].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].title=Criterion 2
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[0].title=Inadequate
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[0].points=0
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[0].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[1].title=Poor
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[1].points=5
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[1].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[2].title=Fair
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[2].points=10
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[2].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[3].title=Good
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[3].points=15
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[3].description=
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[4].title=Exceptional
rubrics.instance.layouts[flex].language[en-US].default-rubric.criterions[1].ratings[4].points=20

#
# Default criterion used when an individual new criterion is added in a flex layout
rubrics.instance.layouts[flex].language[en-US].default-criterion.title=New Criterion
rubrics.instance.layouts[flex].language[en-US].default-criterion.description=
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[0].title=Inadequate
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[0].points=0
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[0].description=
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[1].title=Meets expectations
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[1].points=1
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[1].description=
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[2].title=Exceeds expectations
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[2].points=2
rubrics.instance.layouts[flex].language[en-US].default-criterion.ratings[2].description=

#
# Default rating used when an individual new rating is added in a flex layout
rubrics.instance.layouts[flex].language[en-US].default-rating.title=New Rating
rubrics.instance.layouts[flex].language[en-US].default-rating.description=New rating description
rubrics.instance.layouts[flex].language[en-US].default-rating.points=0

rubrics.instance.layouts[flex].language[es-ES].default-rubric.title=Nueva R\u00FAbrica
rubrics.instance.layouts[flex].language[es-ES].default-rubric.description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].title=Criterio 1
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[0].title=Inadecuado
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[0].points=0
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[0].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[1].title=Cumple las expectativas
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[1].points=1
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[1].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[2].title=Excede las expectativas
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[2].points=2
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[0].ratings[2].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].title=Criterio 2
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[0].title=Inadecuado
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[0].points=0
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[0].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[1].title=Pobre
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[1].points=5
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[1].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[2].title=Aceptable
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[2].points=10
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[2].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[3].title=Bueno
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[3].points=15
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[3].description=
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[4].title=Excepcional
rubrics.instance.layouts[flex].language[es-ES].default-rubric.criterions[1].ratings[4].points=20

#
# Default criterion used when an individual new criterion is added in a flex layout
rubrics.instance.layouts[flex].language[es-ES].default-criterion.title=Nuevo Criterio
rubrics.instance.layouts[flex].language[es-ES].default-criterion.description=
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[0].title=Inadecuado
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[0].points=0
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[0].description=
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[1].title=Cumple las expectativas
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[1].points=1
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[1].description=
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[2].title=Excede las expectativas
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[2].points=2
rubrics.instance.layouts[flex].language[es-ES].default-criterion.ratings[2].description=

#
# Default rating used when an individual new rating is added in a flex layout
rubrics.instance.layouts[flex].language[es-ES].default-rating.title=Nuevo valor
rubrics.instance.layouts[flex].language[es-ES].default-rating.description=
rubrics.instance.layouts[flex].language[es-ES].default-rating.points=0
#
# Whether Classic layout is available for use. Values are either 'true' or 'false'.
# DEFAULT: false
# Classic layout is not yet supported.
rubrics.instance.layouts[classic].enabled=false


# The secret shared between Sakai and the rubrics service to secure JWTs
rubrics.integration.token-secret=12345678900909091234
# The path to the sakai webservices to retrieve info from Sakai
rubrics.integration.sakai-rest-url=http://localhost:8080/sakai-ws/rest/
# The user with access to the webservices. Must be admin to check session status for expired JWTs.
rubrics.integration.sakai-admin-user=admin
rubrics.integration.sakai-admin-password=admin
Original file line number Diff line number Diff line change
Expand Up @@ -691,8 +691,8 @@ protected ResourceBundle getBundle()
bundleMap.putAll(bundleFromDbMap);
bundle = new MapResourceBundle(bundleMap, baseName, loc);
}
if (M_log.isDebugEnabled()) {
M_log.debug("Bundle from db added " + bundleFromDbMap.size() +
if (M_log.isDebugEnabled()) {
M_log.debug("Bundle from db added " + bundleFromDbMap.size() +
" properties to " + baseName + "/" + context + "/" + loc.toString());
}
}
Expand Down
1 change: 1 addition & 0 deletions library/src/morpheus-master/sass/base/_icons.scss
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
sakai-realms : ( extend : fa-sitemap ),
sakai-resetpass : ( extend : fa-user ),
sakai-resources : ( extend : fa-folder-open ),
sakai-rubrics : (extend :fa-table ),
sakai-rwiki : ( extend : fa-edit ),
sakai-samigo : ( extend : fa-check-square-o ),
sakai-schedule : ( extend : fa-calendar ),
Expand Down
16 changes: 16 additions & 0 deletions master/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -75,23 +75,29 @@
<properties>
<sakai.version>12-SNAPSHOT</sakai.version>
<!-- Standard dependency versions -->
<sakai.apache.httpcomponents.httpclient.version>4.1.1</sakai.apache.httpcomponents.httpclient.version>
<sakai.commons.lang.version>2.6</sakai.commons.lang.version>
<sakai.commons.lang3.version>3.5</sakai.commons.lang3.version>
<sakai.commons.fileupload.version>1.3.2</sakai.commons.fileupload.version>
<sakai.commons-math3.version>3.6.1</sakai.commons-math3.version>
<sakai.commons-validator.version>1.6</sakai.commons-validator.version>
<sakai.commons-logging.version>1.2</sakai.commons-logging.version>
<sakai.commons.configuration.version>1.6</sakai.commons.configuration.version>
<sakai.ehcache.groupId>net.sf.ehcache</sakai.ehcache.groupId>
<sakai.ehcache.artifactId>ehcache-core</sakai.ehcache.artifactId>
<sakai.ehcache.version>2.6.11</sakai.ehcache.version>
<sakai.elasticsearch.version>1.7.6</sakai.elasticsearch.version>
<sakai.hibernate.groupId>org.hibernate</sakai.hibernate.groupId>
<sakai.hibernate.artifactId>hibernate-core</sakai.hibernate.artifactId>
<sakai.hibernate.version>4.3.11.Final</sakai.hibernate.version>
<sakai.java.jwt.version>3.1.0</sakai.java.jwt.version>
<sakai.jcr.version>1.0</sakai.jcr.version>
<sakai.jstl.version>1.1.2</sakai.jstl.version>
<sakai.lombok.version>1.16.8</sakai.lombok.version>
<sakai.jackson.version>2.8.6</sakai.jackson.version>
<sakai.java.jwt.version>3.1.0</sakai.java.jwt.version>
<sakai.lucene.version>4.10.4</sakai.lucene.version>
<sakai.org.json.version>20160810</sakai.org.json.version>
<sakai.pluto.version>1.1.7</sakai.pluto.version>
<sakai.quartz.version>2.2.2</sakai.quartz.version>
<sakai.opencsv.version>2.3</sakai.opencsv.version>
Expand All @@ -102,10 +108,13 @@
<sakai.spring.artifactId>spring-core</sakai.spring.artifactId>
<sakai.spring.version>4.3.6.RELEASE</sakai.spring.version>
<sakai.spring.security.version>3.2.10.RELEASE</sakai.spring.security.version>
<sakai.spring.hateoas.version>0.22.0.RELEASE</sakai.spring.hateoas.version>
<sakai.spring.plugin.version>1.2.0.RELEASE</sakai.spring.plugin.version>
<sakai.spring.test.artifactId>spring-test</sakai.spring.test.artifactId>
<sakai.spring.test.version>4.3.6.RELEASE</sakai.spring.test.version>
<sakai.tika.version>1.14</sakai.tika.version>
<sakai.tomcat.version>8.0.41</sakai.tomcat.version>
<sakai.wicket.version>6.16.0</sakai.wicket.version>
<sakai.velocity.version>1.6.4</sakai.velocity.version>
<sakai.xerces.impl.version>2.11.0</sakai.xerces.impl.version>
<sakai.xerces.api.version>2.6.2</sakai.xerces.api.version>
Expand All @@ -116,6 +125,7 @@
<sakai.powermock.version>1.6.6</sakai.powermock.version>
<sakai.okiosid.version>2.0</sakai.okiosid.version>
<joda.time.version>2.9.7</joda.time.version>
<jayway.jsonpath.version>2.2.0</jayway.jsonpath.version>
<sakai.genericdao.version>0.11.0</sakai.genericdao.version>
<reflectutils.version>0.9.20</reflectutils.version>
<json.simple.version>1.1.1</json.simple.version>
Expand Down Expand Up @@ -1446,6 +1456,12 @@
<version>${sakai.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.sakaiproject.rubrics</groupId>
<artifactId>rubrics-service-client-api</artifactId>
<version>${sakai.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.sakaiproject.samigo</groupId>
<artifactId>samigo-services</artifactId>
Expand Down
11 changes: 6 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>master</artifactId>
Expand Down Expand Up @@ -94,6 +93,7 @@
<module>reset-pass</module>
<module>roster2</module>
<module>rsf</module>
<module>rubrics</module>
<module>rwiki</module>
<module>tags</module>
<module>samigo</module>
Expand Down Expand Up @@ -176,6 +176,7 @@
<module>reset-pass</module>
<module>roster2</module>
<module>rss</module>
<module>rubrics</module>
<module>rwiki</module>
<module>tags</module>
<module>samigo</module>
Expand All @@ -201,7 +202,7 @@
<module>yaft</module>
</modules>
</profile>

<!-- pack profiles for building release artifacts -->
<profile>
<id>pack</id>
Expand Down Expand Up @@ -231,7 +232,7 @@
<module>pack/pack-src</module>
</modules>
</profile>

</profiles>
<reporting>
<plugins>
Expand Down
Loading

0 comments on commit 62548c1

Please sign in to comment.