Sakai 2.9 release notes

  

Sakai 2.9

Released: November 2012

Release Dates

Sakai 2.9 release dates:

2.9.0 - 7 November 2012

2.9.1 - 11 February 2013

2.9.2 - 01 June 2013

2.9.3 - 22 August 2013

About Sakai

Sakai software is a Java-based, service-oriented web application that provides a variety of capabilities supporting teaching and learning, portfolios, research, and ad-hoc project collaboration. The Sakai is typically deployed using Apache Tomcat as its servlet container and scalability is achieved by running multiple instances of Tomcat in a clustered environment, each deploying a copy of the Sakai. It integrates with a variety of external authentication services including CAS, Kerberos, LDAP, Shibboleth and WebAuth. A single database, usually MySQL or Oracle, provides a transactional store of information while file storage is typically delegated to NAS or SAN solutions. In most production settings, the Sakai relies on a back-end student information system (SIS) to provide it with student and course information, which the Sakai consults via provider APIs.

What's new

OVERVIEW

Sakai 2.9 contains significant performance improvements, updated technical infrastructure, hundreds of bug fixes (over 600 bug fixes and over 20 security improvements), and it sports a new, updated look and feel, including smoother navigation, with a new neo-portal skin. Significant features have been added to the Resources, Gradebook, and Section Info tools in core Sakai. Major additions and improvements have been made to the “Indies,” including Lessons, which is now turned on by default, Samigo Test & Quizzes, Profile 2, Forums and Messages. 


RELEASE HIGHLIGHTS

Accessibility

• CK editor inclusion improves accessibility
• Accessibility improvements to the brand new NeoPortal
• Significantly improved the accessibility of dynamic menus in the resources tool
• For a complete and in-depth analysis of all accessibility improvements to Sakai 2.9.0 visit the Accessibility Working Group’s webpage http://bit.ly/sak-awg


Assignments
• 
Instructor can submit assignment on behalf of a student -  SAK-7475 - Getting issue details... STATUS


Basic LTI (IMS Learning Tools Interoperability)
•  Support for Basic LTI was upgraded from version 1.3 to 2.0 in Sakai 2.9.0 and 2.9.1 
•  Support for Basic LTI was upgraded from version 2.0 to 2.1 in Sakai 2.9.2 . Please see LTI - Release 2.1.0 Notes


Delegated Access

• Delegated Access Tool - not OOTB - new Contrib Tool


Forums  
• Statistics and Grading (check all cases where you can grade (bulk grading, etc))
• Require users to post before they can read posts - setting per forum -  MSGCNTR-411 - Getting issue details... STATUS
• Word count for messages
• Improved permissions settings layout -  MSGCNTR-542 - Getting issue details... STATUS
• Checks for, and prevents, duplicate Forum and Topic names
• Profile picture displays next to each post -  MSGCNTR-584 - Getting issue details... STATUS
• Option to set open (show) and close (hide) dates -  MSGCNTR-309 - Getting issue details... STATUS
• Options to duplicate forum and duplicate topic
• The term "threads" changed to "conversations" throughout UI
• In Topic menu, "Display Entire Message" option changed to "Display Message Content"
• Topic menu always displays at top of Topic screen (previously, it displayed beneath breadcrumbs when in "Display Subject Only" mode and at the top when in "Display Entire Message" mode.

 

Gradebook  
Drop highest, drop lowest and keep highest grade options -  SAK-19964 - Getting issue details... STATUS
• Hide/show columns in All Grades page -  SAK-19731 - Getting issue details... STATUS
• PDF export option added -  SAK-20118 - Getting issue details... STATUS
• Institutionally defined final course grade export, in addition to existing grade export options -  SAK-22204 - Getting issue details... STATUS   (New in Sakai 2.9.2)

 

Groups 
•  Ability to define and import a group with a CSV file. -  SAK-21407 - Getting issue details... STATUS
• Randomly assign users to a set of groups (maintainer specifies the desired group size or the desired number of groups) -  SAK-22253 - Getting issue details... STATUS


Help Documentation (new for Sakai 2.9.1 and updated in Sakai 2.9.3)

Sakai online Help has been updated to reflect tool changes between 2.8.x and 2.9.x


Languages 

• Ability to set a language different than the system default on a site level.


Lessons - Lessons (formerly Lesson Builder)
•  New part of core Sakai !!!
•  Student-centric features added including allowing students to create pages and comment on pages.
•  An anonymous option is available.
•  Support for IMS Common Cartridge import. Version 1.1 for 2.9.0 and version 1.2 for 2.9.1. Support for IMS Basic LTI tools have been added.


Messages  

• New permissions settings to allow finer-grained control over who may send to generic recipient groups -  MSGCNTR-401 - Getting issue details... STATUS

• Ability to hide groups from specified roles. An example use case is to have a group with learning disabilities which may need private communications. -  MSGCNTR-438 - Getting issue details... STATUS


• BCC (blind cc option)

 

NeoChat - experimental tool - being piloted at smaller installations. For information contact sakai-dev@collab.sakaiproject.org

• NeoChat is a new social network chat tool which has not been thoroughly vetted for performance at large scale.  


Neo-portal and updated skin - (for more information see Sakai 2.9 portal changes and see Sakai 2.9 and Sakai 10 skin guide for updates in Sakai 2.9.2)
• Provides an improved user interface design, including collapsible toolbar navigation enhanced with descriptive icons, and direct navigation to a tool from the site navigation bar. 

 

Profile 2 
• Once logged in, a user can go to profile settings from My Workspace or by clicking the icon in the top right corner. 
• Ability to create a new site with selected connections. -  PRFL-388 - Getting issue details... STATUS
• More flexiblity with preferences, searching and privacy. 


Resources 
• Provides zip expansion of uploaded files. -  KNL-273 - Getting issue details... STATUS
• Allows export of files to zip format. (System property setting required.
• Optional URL shortening for resource access


Section Info 
• Ability to select a date when the sections tool is open for student viewing. -  SAK-20612 - Getting issue details... STATUS
• Now allows students to view their section information.
 

 

Sites
• Unpublished sites can be published with a single click. -  SAK-22732 - Getting issue details... STATUS
• Language preferences are now supported at the local worksite level, overriding system-wide language default.
Import from Site updates links to content correctly - SAK-16568 - Getting issue details... STATUS


Tests & Quizzes (Samigo) 
• Easier distinction between published and working copies of quizzes. - SAM-894 - Getting issue details... STATUS
• Ability to set score for students who have not submitted their work. -  SAM-904 - Getting issue details... STATUS

• After a Test has been published, random question ordering option within Part. -  SAM-1328 - Getting issue details... STATUS
• Can now place due date on Schedule tool -  SAM-1121 - Getting issue details... STATUS
• A new matrix survey question type has been added.
• Scientific and complex number notation support. -  SAM-1221 - Getting issue details... STATUS

• Grader's comments included in Export -  SAM-1323 - Getting issue details... STATUS
• Additional enhancements

Turnitin Integration 

• Add the new options from TII 2.9.2 in the Assignments Tool. 
• Target a repository, target databases
• An institution can choose which settings are available via sakai.properties


Updated Editor
• 
CKEditor 3.6.2 has replaced the FCKEditor as the default.
• CKEditor provides major accessibility improvements, speed increases, Word-format-stripping by default, and works better with most mobile devices.
• Addition of Math Editing in CK Editor - Added in 2.9.2 -  SAK-23266 - Getting issue details... STATUS  

 

Web Content Tool (updated in 2.9.2)  
• Technical upgrade to Web Content Tool, using JSR-168 Portlet -  SAK-12563 - Getting issue details... STATUS
• Improved management of embedded web sites -  SAK-21624 - Getting issue details... STATUS


Administration and System Management

• Improved stability, security, and sustainability.
• Tomcat 7/Java 6 recommended configuration and support for Java 7.
• Well over 700 bug fixes and several dozen security fixes. 
• New security infrastructure introduced in Sakai 2.9.2 (off by default, to allow piloting) - KNL-1015 - Getting issue details... STATUS   

• Support for delegated administration has been added. (Not OOTB, but support to plug in feature is included.) 
• Ability to host uploaded content on a separate domain. - Implementation Documentation
• Improved caching for performance -  KNL-532 - Getting issue details... STATUS
• Has been enhanced to support Polls, Basic LTI, Questions Pools and Assignment supplements.
• Bulk CSV user management support has been added.
• Improvements to configuration management and system documentation. 


 

 

 


Detailed Feature List

 Click here to expand...
Project
Key
Summary
Description
 

BasicLTI

BasicLTIBLTI-119Improve IMS Learning Tools Interoperability Support (Basic LTI, IMS CC 1.1 Support, Full LTI)This is an umbrella JIRA to capture a series of improvements to the LTI support in Sakai. At a high level, the following are the tasks:

- Build an administrator user interface that allows creation of new Basic LTI tools without using an XML descriptor
- Build an instructor user interface to create BLTI virtual tools for placement in Lesson Builder
- Add support for BLTI to Lesson Builder, integrated with the new LTI Service
- Add support for importing and exporting BLTI placements - similar to what was done for Moodle 2.1 - http://tracker.moodle.org/browse/MDL-20534
- Add support for dynamic URL remapping and instructor custom parameter configuration per the soon-to-be released Basic LTI 1.1 best practices.

The UI for this will look a *lot* like the Moodle Basic LTI Module and the ATutor Basic LTI support. In particular you can see the use cases of the Administrator UI and the Instructor UI. ATutor is more like what the Sakai UI will be like as ATutor supports instructor custom properties ( new Basic LTI 1.1 best practice) as well as instructor configured tools.

Moodle:
http://www.vimeo.com/9957979

ATutor:
http://www.vimeo.com/18074396

This will also lay down some workflow and data model elements that will be needed for Full LTI - mostly about tool lifecycle. I won't yet build the Full LTI user interface, profiles, and services - but I will put elements in place and have UI hooks that will make Full LTI provisioning, launch, import, and export come in pretty easily.
BasicLTIBLTI-104Version specified for provided jarsthe root dependency management specifies versions for servelet-api and commons-logging - both of these are provided by sakai-standard-tool and intorduce risk of dependency drift in the future
BasicLTIBLTI-123Add Support for new IMS POX-Style ServicesAdd support for the emerging IMS Plain Old XML (POX) services for outcomes, roster, etc.
BasicLTIBLTI-156Site info External Tools generates 'unexpected error'Error in Site info:

When the user clicks on External Tools the page says an unexpected error has occurred. Please find the screenshots of the error in the attachments.
Kernel-K1
Kernel - K1KNL-934Authz performance issuesHere is the patch file for our (VT) local changes to the authz service to support that query change (discussed in the TCC meeting).

Since the parameter order had to be tweaked to accomodate our change, and since we implemented a static role-key cache to support the hardcoding of role key values into the query, the patch is somewhat complicated.

There's also a change to ehcache.xml that I'm not certain is related to the function of this patch at all, but I wanted to get this patch to you right away rather than spending a bunch of time verifying things.

Will and I worked together on redesigning the query itself, starting from a suggestion by Richard Quintin. Jihane did most of the work on implementing the role key cache, I believe. This patch tweaks the query for all DB implementations, but Oracle is the only one we've tested at production scale.

I'm guessing some actual stats on the improvement this query makes in performance would be worthwhile. I will try to dig those up from my email archive or I might resort to recalculating them if need be. It should be relatively straightforward to do so.

The patch applies cleanly against kernel 1.2.6 (the one paired with Sakai 2.8.1). My understanding is that this query or the role key cache would need to be made optional if this were to be included in 2.9. I'm guessing Will and/or Jihane are better equipped to help out with that effort than I would be. Otherwise, let me know what else I can do to help the effort to get this work into the community code.
Kernel - K1KNL-970Update default role permissions in sakai_realm.sql for Lesson Builder, SiteStats, and roleswapWhen you first add Lessons to a site - in this case a project site - the default permissions are still missing. I know we talked about this a while back and was not sure if this was done in kernel configuration scripts or conversion scripts - but I tried this on the current 2.9 Longsight Server today and it is still unfixed. I checked out a copy of 2-9-x last week and it was still unfixed.

So I am putting it in because I could not find the JIRA that tracks this and I just don't want us to forget about it.
Kernel - K1KNL-629Allow content from CHS to be filtered when servedSAK-13492 has details of how the kernel can filter served up content.
This is useful initially to add headers and footers to HTML fragments created by the FCKEditor in resources.
Kernel - K1KNL-742Add new Messages permissions to sakai_realm.sqlA new feature was added to the Messages tool in MSGCNTR-401 that introduced new permissions that need to be added to the sakai_realm script:
msg.permissions.allowToField.allParticipants
msg.permissions.allowToField.groups
msg.permissions.allowToField.roles

Patch attached for sql additions. Please let me know if there is a different route I need to take to get these permissions added for ootb sakai. Thanks!
Kernel - K1KNL-897Admin Worksite Setup - Unpublished sites not appearing in listWhile experimenting on the nightly server (http://nightly2.sakaiproject.org:8082/portal/), I noticed that a new site I created as "unpublished" was not appearing at all in My Workspace > Worksite Setup. It was appearing as a "tab" up top, since I called the site "A test site" so it was alphabetically available. However, it should also be listed in the "Worksite Setup" area since an admin should be able to view all sites, not just published sites. (Like a faculty member can see his/her published and unpublished sites if they are the site owner/maintain/instructor role.)

I opened a new browser and could reproduce the behavior. I logged out and logged back in and it still happened. I created a new site ("A test site 2"), also unpublished, and it wasn't listed either. I created another ("A test site 3"), this one published, and it did appear in the list.

Please see the screenshot for the visual.
Kernel - K1KNL-807ContentHosting should post an event whenever a change is made in the availability of a resourcePlease add a new event "content.upd.visibility" that will be posted whenever a previously shown resource becomes hidden, whenever a previously hidden resource becomes shown, and whenever release and/or retract dates for a resource are added, changed or deleted.
Kernel - K1KNL-919Delegated Access Sakai patchesThe following patch need to be in Sakai for the delegated access tool to work properly

https://source.sakaiproject.org/contrib/delegatedaccess/trunk/delegatedaccess_kernel.patch

This patch do not modify the user experience in any way unless the system has enabled the delegated access tool.
Kernel - K1KNL-946Standardize parsing of property values in sakai.propertiesThere currently are multiple strategies invoked for parsing property values in sakai.properties. One of the side-effects of these multiple approaches is that they split comma-separated parameters up in different ways with regards to white-space, some of which are not as well equipped variations as others (e.g., SAK-9447). We should standardize on how white-space is treated in sakai.properties, and provide developers with uniform methods for parsing their parameters.
Kernel - K1KNL-342Allow ToolListener to be configured to use a path other than /tools/I was doing a little bit of development and had ny tool registration files in /WEB-INF/tools/ which is wrong (should be in /tools/) the ToolListener doesn't warn when it can't find the folder (or it doesn't register any files). So I've added some logging at WARN level as if you have the ToolListener but not tool registration files you can probably remove the listener (or add a tool registration file in the correct place.

I also allowed for the tool registration folder to be configurable with a context init parameter (defaulting to /tools/), context listeners can't have configuration directly so we have to use a context init parameter.
Kernel - K1KNL-356Automatically remove dropboxes for users who aren't members of the siteSAK-7964 Was the original issue.

When a user is added to a site a dropbox is created for them, however if they leave the site the dropbox remains even if the user didn't ever upload anything into it.

The attached patch removes empty dropboxes of users who are no longer members of the site.
Kernel - K1KNL-655Upgrade to Ehcache to 1.7.2We're using ehchache 1.6.0 at the moment. This is now 2 year old. Also later versions have a smaller memory footprint:

"Update: Ehcache 2.0 will introduce a new implementation for MemoryStore based on a custom ConcurrentHashMap. This version provides fast iteration and does away with the need for the keyArray thus bringing memory use back down to pre 1.6 levels. And with other memory optimisations made to Element in 1.7, memory use will actually be considerably lower than pre 1.6 levels."

http://ehcache.org/documentation/faq.html#Why_does_Ehcache_1.6_use_more_memory_than_1.5


http://ehcache.org/changes-report.html
Kernel - K1KNL-885The group property to enable Site Info to see groups should be moved out of site-manage and into kernel-apiIn order for a group to show up in the Manage Groups part of Site Info, it must have the property:

group_prop_wsetup_created=true

This is defined in:
site-manage-util/util/src/java/org/sakaiproject/site/util/SiteConstants.java: public static final String GROUP_PROP_WSETUP_CREATED = "group_prop_wsetup_created";

Therefore, other tools that want to create groups with this property must either take a chance that the property won't change and hard code it themselves, or use the constant from the site manage utils, creating a hard dependency.

Ideally, this property would be moved to the kernel.
Kernel - K1KNL-893KNL-532 AuthenticationCache cache not serializedClick here for more information.
Kernel - K1KNL-895No way to override/clear the force.url.secure propertyI have an installation defined with the property force.url.secure=443 in sakai.properties

I also have a local.properties and security.properties file for specific overrides.

On a particular instance I want to disable the force secure setting as I am running http only.

However there is no way to do that. If I set the value to a blank value (in local or security.properties, ie as an override) in an attempt to clear it, then it throws a NumberFormatException.

So once the setting has a value it must always have a value, AND forces URLs to be https. The code should be adjusted so that a blank value negates any previous value that has been set.
Kernel - K1KNL-817rename method in BaseContentService is actually copy/removeThe "rename" method in BaseContentService does not actually rename resources or collections. It copies them and then removes the old copy. This may work all right for relatively small files and collections, but for large files and collections this can create I/O throughput issues as well as potential risks in multi-volume storage setups, when all that is needed is to update a few fields in existing database records. We've recently been experiencing performance problems on application servers struggling to keep up with multiple large "rename" activities on directories full of multi-gigabyte files, which quickly saturates the NFS I/O throughput available on that application server.
Kernel - K1KNL-705CLONE - The ability to move a site to a recycle bin and then purge it after a set period of timeThis is a set of patches that add some interesting behaviour to site deletions.

It adds the capability for sites to be softly deleted, and after a set period of time, purged from the system. The way it works is thusly:

A maintainer of a site deletes that site. If this is enabled, the user receives a message about this instead of the normal message. The site is then, for all intents and purposes, deleted. It does not show in any lists and users cannot navigate to it. However the site still exists and is completely intact with all content and user lists. Users with the appropriate permission (site.visit.softly.deleted) can manually navigate to the url. They get a message that the site is due to be purged but can still act on the site, perhaps retrieving content.

Normal users of a softly deleted site cannot access the site at all.

After a configured grace period, a Quartz job purges softly deleted sites from the system.

In addition, another permission is added, site.del.softly.deleted. This allows users with this permission to issue another removeSite call, perhaps from a webservice or similar, and that will manually purge the site from the system.

The sakai.properties:
# enable soft site deletions when a site is deleted normally
# if true, they will be softly delete and then purged after 30 days
# if false, thet will be deleted immediately
# defaults to false.
site.soft.deletion=true

# the number of days to keep softly deleted sites until they are purged.
# if not set and site.soft.deletion=true, defaults to 30 days.
site.soft.deletion.gracetime=30


There are a couple of components touched by this, and for trunk, there are two patches per component (I haven't merged the patches together sorry). Simply apply the -trunk patch, then the -trunk-2 patch.
Kernel - K1KNL-976MultiRefCacheEntry is not serializableClick here for more information.
 

Lesson Builder

Lesson BuilderLSNBLDR-32Lesson Builder has dependencies on contrib toolsThe LessonBuilder code has dependencies on contrib tools (yaft and mneme). Core tools should never depend on contrib tools -- see lessonbuilder/pom.xml:

<sakai.yaft.version>1.2.1-SNAPSHOT</sakai.yaft.version>
<sakai.mneme.version>1.2-hack</sakai.mneme.version>

These dependencies should be removed for the 2.9 release
Lesson BuilderLSNBLDR-69Regression : Change links broken in current 1.4.x @107763On 2.9.0-b05 it works if you create a quiz, hit "Change quiz", however on 1.4.x after what I believe after this commit:

https://source.sakaiproject.org/viewsvn?view=revision&revision=107525

nothing happens clicking this link. I don't think it's only limited to quizzes. This only happens in the 1.4.x when

lessonbuilder.use-new-popups=false

It works in the trunk and on the 2.9 QA servers (running b05)

It looks like this is because there is an onclick="return false" in the anchor now. And the jquery click handler is stopping it now in ui.js.
$('.add-quiz-link, #change-quiz').click(function(event){
if (!picker) return true;
Lesson BuilderLSNBLDR-15Revise LB poms so that we can perform separate API and tool releasesAs discussed in the LA project planning meeting one change we intend to make for 2.9+ is to perform API releases independently and ahead of tool releases. In the case of LB, sometime after code freeze we would release sakai-lessonbuilder-api-1.0 (or 1.2 whatever you want). In order to do this we will need to replace the api's current <parent> (the LB base pom) with a purepom-like "sakai api" pom that will be released first so that an LB api release can actually be performed (currently, you can't do a release of an api that has a snapshot dependency on its own project base pom). Ideally, once we hit code freeze, we release the kernel apis, then all the tool apis. We should then be able to better reflect version-wise the actual steady state of most project apis. LB tool 1x tool releases should then be able to bind to lessonbuilder-api-1.0 for the life of the 1x series.
Lesson BuilderLSNBLDR-11Prep LessonBuilder poms for off-cycle releasesPrepping LessonBuilder poms to utilize the release plugin. Also tidy up the poms as necessary.

1. Change the <groupId> to org.sakaiproject.lessonbuilder. LB's coordinates will adhere to the pattern adopted for other indies, which is reflective of broader Maven naming practices including that practiced by Apache.

2. Change trunk versionId to 1.3-SNAPSHOT. This is necessary because it reflects accurately the unstable nature of trunk and is required in order for Maven to deploy snapshot artifacts to the snapshot repo.

3. Set up LB so that we can deploy binaries to the snapshot repo. Basically boilerplate additions to the base pom. Add <distributionManagement>, <repositories>, <pluginRepositories> and <reporting> declarations to base pom. Update the current Jenkins job to deploy snapshot updates.
example: https://source.sakaiproject.org/svn/basiclti/trunk/pom.xml

4. Add an assembly which provides a Tomcat-overlay zip of LB. As I noted in LA we will not substitute an assembly for a full source check out of LB but the assemblies have proven quite useful to msub deployers such as Steve Swinsburg. Plus, if we ever get the app store concept going a zip of LB binaries will prove quite useful. Again, this code, a pom file and deploy.xml is largely boilerplate. It takes about 5 minutes to write.
example: https://source.sakaiproject.org/svn/basiclti/trunk/basiclti-assembly/

5. Set LB up to use the release plugin. Involves swapping out the master pom for the edu-tool purepom like other indies. We have 2.6, 2.7, 2.8, 2.9 versions of purepoms. I expect that LB will benefit from use of the release plugin (which the purepoms provide) which provides the ability to generate off-cycle releases in a simple, nay trivial manner.

6. Tidy up the poms. For example, substitute standard Maven variables such as ${project.groupId} and ${project.version} where appropriate for LB's own "internal" dependencies.

7. Delete tool/src/maven2 folder. It is now redundant as updated sakairsf 0.8-SNAPSHOT artifacts exist.
Lesson BuilderLSNBLDR-7Breadcrumb trail titles and Index titles don't update when user changes page titles in settingsBreadcrumb trail titles and Index titles don't update when user changes page titles in settings

See short screencast video of Rutgers instance: http://www.screencast.com/users/midonz/folders/Default/media/aacce2f4-058e-4a79-8db8-322bd4d6656f

(Attached screenshots of Ithaca College's instance.)
Lesson BuilderLSNBLDR-8Inconsistent and icorrect use of Custom Sakai Maven variablesThe tool pom references version properties from master/pom.xml. As maven variables have a scope of the pom their in this will cause some plugins to fail. Also the versions are inconsistent and sometimes incorrect:

<dependency>
<groupId>org.sakaiproject.samigo</groupId>
<artifactId>samigo-qti</artifactId>
<version>${sakai.samigo.version}</version>
</dependency>
<dependency>
<groupId>org.sakaiproject.samigo</groupId>
<artifactId>samigo-hibernate</artifactId>
<version>${sakai.version}</version>
<scope>provided</scope>
</dependency>

sakai.version <> sakai.samigo.version

<dependency>
<groupId>org.sakaiproject.msgcntr</groupId>
<artifactId>messageforums-api</artifactId>
<version>${sakai.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.sakaiproject.msgcntr</groupId>
<artifactId>messageforums-hbm</artifactId>
<version>${sakai.version}</version>
<scope>provided</scope>
</dependency>

sakai.version <> message center version

Dependency management should be used rather than inheriting custom variables
Lesson BuilderLSNBLDR-28Oracle auto ddl problem with LessonBuilder tablesI've seen those errors in my log:

2011-08-12 16:47:32,905 WARN main org.sakaiproject.springframework.orm.hibernate.AddableSessionFactoryBean - Unsuccessful schema statement: create table lesson_builder_comments (id number(19,0) not null, itemId number(19,0) not null, pageId number(19,0) not null, timePosted timestamp not null, author varchar2(36 char) not null, comment clob, UUID varchar2(36 char) not null, html number(1,0) not null, primary key (id))
java.sql.SQLException: ORA-00904: : invalid identifier

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:753)


2011-08-12 16:37:33,902 WARN main org.sakaiproject.springframework.orm.hibernate.AddableSessionFactoryBean - Unsuccessful schema statement: alter table lesson_builder_comments add comment clob
java.sql.SQLException: ORA-00904: : invalid identifier

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)


all the error seems to be related with clob fields.
Lesson BuilderLSNBLDR-59Common Cartridge Import - IssueWhile CC import,

1. IMS CC 1.1 - error: Unable to create file while importing Common Cartridge: 100 copies already exist:
2. IMS CC 1.0 - Assessment is migrated in to tests and quiz but no question appeared.

Note: IMS cc 1.1 working fine in BlackBorad 9.1
Lesson BuilderLSNBLDR-80Help pages displaying underneath when adding textWhen the instructor starts with a brand new 'Lesson', and clicks 'Add Text', 'Add Assignment', etc, the help page for Lesson Builder displays behind the add item.

From Site Info -> Edit Tools, add Lessons
Click on Lessons -> Add Text
Add text and save

The help page is displayed while adding text and after text has been added.
In order to get rid of the background help page, the browser needs to be refreshed.
Lesson BuilderLSNBLDR-107Fatal Error Showing When Adding Student Comments Tool in LessonsClick here to for more information.
Lesson BuilderLSNBLDR-97MP3s are not uploadable in LessonsTried to add an mp3 file to lessons, both under Add Multimedia and Add Resource. Received the following error:

Unable to add resource: org.sakaiproject.exception.ServerOverloadException id=failed to write file from stream to database

I then recorded a file on Win7, which Windows saved as a wma file. This file uploads, and when clicked on, opens a new window, a pop-up displays asking if I want to open with the Windows Media Player. Of course, this does not work on the MAC.

Currently, there seems to be no way to make audio files available to all students. MP3 files should be supported in case the instructor wants to give audio instructions or wants students to upload audio recordings.

To reproduce:
Click on Lessons, then either choose Add Multimedia or Add Resource
Upload an mp3 file

Error message displays
Lesson BuilderLSNBLDR-120Comments tool displays a page or more of unrelated contentTested on trunk.sakaiqa.org - Sakai Revision: 114139 (Kernel 1.4.0-SNAPSHOT)- Server sakai-nightly.uits.iupui.edu

Tested also on qa29-3.sakaiqa.org - tags/sakai-2.9.0-rc01 QA on Oracle - Built: 09/27/12 11:28 - Sakai tags/sakai-2.9.0-rc01 (Kernel 1.3.0-rc01)- Server qa3-us

To reproduce:

1) Add Lessons tool to a site
2) Choose "More Tools" -> "Add Comments Tool"

Results: Text editor box with two Submit buttons followed by a number of things including the text below, preceeded by the two Submit button comment entry and followed by a number of things which I've enclosed as screenshot page3.png, page4.png, page5.png, page6.png.


Page "2", text on page with Comment submission:

Require that the student submit this assessment.
Require that the student submit this assignment.
Require that the student submit a posting to this topic.
Require that the student use this item
Require that the student receive
points on this assessment.
points on this assignment.
Require that the student <b>Pass</b> this assignment
Require that the student receive at least a
Require that the student receive a Checkmark
Title must not be blank.
This must be a Youtube URL
Item Name must not be blank
Page Title must not be blank.
"iframe"
"img"
Edit Quiz
Edit Quiz Settings
Edit Assignment
Edit Forum Topic
Edit external tool
Number of pages must be a number
Title must contain a number
Site CSS
System CSS
Points must be set to a valid number.
The width and height must be positive numbers, i.e. "500" or "500px," or a percentage below 100%
You may not have a height or width larger than 100%.
Lesson BuilderLSNBLDR-24Allow subpages to be time released independently of their parent pages.Allow subpages to be time released independently of their parent pages. Currently the only way to time release content is to have each branch of material in a LB tool placement. This could get very unwieldy.
 

Mailsender

MailsenderMSND-60When an email has an attachment, a stracktrace is thrownClick here for more information.
 

Messages & Forums

Messages & ForumsMSGCNTR-403Grading Forums - Easier way to view all messages from one person and enter grade in one screen, or view list of all users with counts of posts and grade entry boxMake grading by Forum/Topic easier
Messages & ForumsSAK-14081The word count of the messages (threads) text in forums has to be evaluated and stored in the databaseStrip the html tags from the text and evaluate the word count for all the messages in the forums. Add an additional column in the table 'mfr_message_t', to store the word count of the messages.
Messages & ForumsMSGCNTR-516Catalan translation for sakai 2.9Updates to the catalan translation
Messages & ForumsMSGCNTR-6523.0 conversion scripts missing semicolonThe following statement is missing a semicolon in the 2.8 --> 3.0 conversion scripts (and incidentally the 2.9 sakai conversion scripts):

--MSGCNTR-569
alter table MFR_TOPIC_T modify CONTEXT_ID varchar(255)
Messages & ForumsMSGCNTR-86Permission level names are not internationalizedCustomizing the permision levels in DF for instance by changing the owner permission to:

-- owner type
INSERT INTO CMN_TYPE_T VALUES (null, 0,
'00000000-0000-0000-1111-000000000000', 'admin',
SYSDATE(), 'admin', SYSDATE(),
'org.sakaiproject.component.app.messageforums', 'sakai_messageforums',
'Manager Permission Level', 'Manager Permission Level', 'Manager
Permission Level');


and

-- owner permission level
INSERT INTO MFR_PERMISSION_LEVEL_T VALUES (
null, 0, '00000000-0000-0000-0000-111111111111', SYSDATE(), 'admin',
SYSDATE(), 'admin',
'Manger', '00000000-0000-0000-1111-000000000000', 1, 1, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 1);

On gets the following errors:

1) roles are not mapped to the default permission level as defined in sakai.properties
2) setting a role to the permission produces errors in the UI.
Messages & ForumsMSGCNTR-109Display photo alongside name in Forums tool when viewing responses to threadLike Moodle, 'twould be good to have ones photo (from 'Profile') displayed in miniturised form alongside ones name in the Forums tool.

This would be on the page where one views responses to a posed topic, ie, next to

Re: TOPIC_HERE - Marshall, Adam (Jul 17, 2007 10:04 AM)

I leave it to the tool author to decide upon positioning!
Messages & ForumsMSGCNTR-683Performance issue due to duplicate forums iterated over in the DiscussionForumTool.getForums()In org.sakaiproject.tool.messageforums.DiscussionForumTool.getForums(), a List of DiscussionForum's called 'tempForums' gets populated with duplicates and soon gets iterated over:
for (DiscussionForum forum: tempForums) {

This loop has a nested loop that iterates over topics, so for some sites with lots of topics, the tempForums loop takes an excessive amounts of time often causing users to wait several minutes to do most actions within the forums tool. By removing duplicates (in java code), I've cut the loading time for a forum with 500 topics from ~1 minute to ~5 seconds.
Messages & ForumsMSGCNTR-711Search Content producer needs to implement PortalUrlEnabledProducerAs it returns real urls it needs to implement this method
Messages & ForumsMSGCNTR-426Page size incorrect with new CKEditorThe page size is doing the double window iframe issue when the page has the new CKEditor
Messages & ForumsMSGCNTR-231Ability to create Forum Topics/Forums based on groups.Private, group based discussions are a common use of Forums across institutions. Unfortunately the permissions that need to be configured for each Forum/Topic are complex and tedious.

To configure a private group Forum/Topic requires setting all student's (and any other group) permissions' set to none and then to set the specific group to be a contributor. These steps are multiplied by the number of groups. This is a relatively common task that is very complex.

Would it be possible to simplify the process to "create a group topic" that simply presented a list of existing groups/roles and then assumes all of these settings?

I appreciate your consideration.

--- Updated Wednesday June 16, 2010 - Denver Sakai Conference
Messages & ForumsMSGCNTR-529MSGCNTR-528 Add conditional descriptive text in entry page to guide usersThe entry page is where a site organizer (or similar role) structures the forum interaction. Although the auto-created default forum and topic are a help, we have found that users still need a bit of guidance. Propose to add help text/links that will the user in the following circumstances:


1. Default forum and topic
"Use Forum Settings and Topic Settings to change the title and other details of this forum.
New forums and topics can only be created by you or someone with your level of access.
Use Template Settings to set up a template for all new forums."

2. Childless forum
(displayed below childless forum) "You need to add at least one topic for the forum above to be active. <link>Create a topic?</link>"

3. No Forums (either defaults have not been created or all have been deleted)
"No forums have been created. <link>Create a forum?</link>"

4. All forums are draft
"Note: All forums are draft. Forums saved as drafts cannot be seen by all participants. "

5. All topics are draft
"Note: All topics are draft. Topics saved as drafts cannot be seen by all participants. "

6. No topics
"Note: You need to add at least one topic."
(displayed below childless forum) "You need to add at least one topic for the forum above to be active. <link>Create a topic?</link>"

7. All Forums or all topics are draft, or there is just forums (no topics). Stock MSGCNTR does not display a message to access user saying that no forums are available.
(displayed to access type user)"There may be forums that are not yet available for participation. Contact the site owner if you have questions about the status of a forum."

For reference to BRD: Req 1 "Add conditional descriptive text to guide users through topic creation"
Messages & ForumsMSGCNTR-555register Messages tool as group-aware when starting PermissionHelperThis is cloned from SAK-19819:

Permission helper will only show group options if invoked with "groupAware" attribute set to Boolean.TRUE
Messages & ForumsMSGCNTR-636More than 1000 topics in Forums causes Oracle failureWe're seeing an ORA-01795, which can be caused by any query that has IN (.....) list, in production.

Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2108)
at org.hibernate.loader.Loader.list(Loader.java:2103)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:340)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1122)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.sakaiproject.component.app.messageforums.PermissionLevelManagerImpl$4.doInHibernate(PermissionLevelManagerImpl.java:677)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
... 101 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-01795: maximum number of expressions in a list is 1000

This can be traced back to line 677 of org.sakaiproject.component.app.messageforums.PermissionLevelManagerImpl

This query needs to check for more than 1000 taskIds, and if so, break the query into several IN () statements, for example: ... IN (x,y,z) OR IN (x1, y1, z1) OR IN (x2, y2, z2) ...
Messages & ForumsMSGCNTR-647Create sequence statement missing from conversion scriptClick here for more information.
Messages & ForumsMSGCNTR-691NPE caused Forum messages not searchable under server-client search configClick here for more information.
Messages & ForumsMSGCNTR-524Strange behavior when grading forum postingsCreate a forum and topic. Link your topic to a gradebook item.
Make a post to the topic.
The grading behavior seems strange.
First, click on the topic and then "Display Entire Message". Click the "Grade" link for the message. A new browser window opens with the grading widget. If you then enter a grade and submit, the window refreshes with a success message and all of the form fields are empty.
Now try grading from the actual message view. The grading thickbox appears, but it is cut off and has a scrollbar. You are unable to scroll enough to use the buttons. See screenshot.

This occurs in both FF and Safari using Nightly - sakai/trunk on Oracle - Built: 06/21/11 12:00 - Sakai Revision: 93919.
PollsPOLL-151Catalan translation for sakai 2.9 (polls)Updates to the catalan translation.
PollsPOLL-137Accessibility: Polls tool brings up the FCKEdit instead of the CKEditorThe polls tool didn't switch over to the CKEditor on qa1-nl when the default WYSIWYG editor was set to the CKEditor.

To reproduce:
1. Log into qa1-nl
2. Verify other tools use CKEditor (go to add an assignment page and check the WYSIWYG editor)
3. Switch to the polls tool and go to the "Add a poll" page.
4. Check the WYSIWYG editor
 KERN-149Ability to set privacy settings on different parts of profileYou should be able to specify for each key in your profile file whether it's publicly visible or visible for your connections only.
Profile2PRFL-388Allow user to create a worksite containing a selection of users from their connections[we decided to limit this to a user's connections and forget about search results for now]

[note: Sakai administrators should specify the default tool set required for sites of type "project" in toolOrder.xml and/or use sakai.properties with the wsetup.home.toolids properties (seeSakai 2.8 configuration)]

Allow user to create a worksite containing a selection of users from search matches. It seems to make sense to be able to select a number of hits from a connection search and just click a button to create a project site with those members. The site could be created and site invites (maybe including a connection request) could be sent out via emails containing a link signalling assent. A quartz job could periodically check for positive responses and add the user into the site.

Something like this would really enhance the research collaboration aspects of Sakai.
Profile2PRFL-7762.9 Oracle conversion script has an errorThis sql:
-- PRFL-612 add avatar image url column to uploaded and external image records
alter table PROFILE_IMAGES_T add RESOURCE_AVATAR varchar2(4000) not null;

Gives this error:
>[Error] Script lines: 701-703 ----------------------
ORA-01758: table must be empty to add mandatory (NOT NULL) column
Script line 703, statement line 2, column 13
Profile2PRFL-632Catalan translation for sakai 2.9 (profile2)Catalan translation updates for sakai
Profile2PRFL-695Update Spanish translations files in trunk, 1.5.xI can provide different patches or you can assign me the Jira to make the changes in _es.properties.

The goal is to have Profile2 fully translated to spanish in Sakai 2.9+
Profile2PRFL-730Searching on Common interest is case sensitiveWhen searching profiles, search term is case-sensitive and should be case-insensitive

Click on Profile -> Search
Select Common interest and enter a term you know will be found, but use a different case
Click Search - no results found

Now enter the same term in the correct case and click Search
Now results display

E.g.:

Searched on rollins because a couple of users had this as a favorite author
No results found
Entered Rollins and now I have results
 

Reset Password & Account Validation

Reset Password & Account ValidationRES-25Catalan translation for sakai 2.9 (reset-pass)Catalan translation updates for sakai
Samigo
SamigoSAM-1236Catalan translation for sakai 2.9 (samigo)Updates for catalan bundles
SamigoSAM-15422.8 2.9 conversion for mysql missing ;there is a semicolon missing after the SAM-1255 update
SamigoSAM-1793Regresion: GradingService.validate no longer accepts , as a decimalAll UI documentation indicates that , is a valid numerical separator for numbers in numeric questions but as of 2.9 these are no longer accepted.

More seriously accessing the answers of a test where , was used by a student results in a UI error
SamigoSAM-1401"Delivery Date is not of correct format" is seen even if the date is in correct formatHere is how to reproduce:

1. Login to Sakai.
2. Without going to Assessment Settings page. Create an assessment and add some questions.
3. In Edit Assessment page, click on "Publish" link directly.
4. You will see an error asking you to select a retract date.
5. Select the date and click on "Save and Publish".
6. The error "Delivery Date is not of correct format: mm/dd/yyyy hh:mm:ss:aa." is seen.

Note: this error can only be seen if there is an error happens at step 4.
SamigoSAM-691Exported assessment does not want to import againExported an assessment, when trying to import it into another site, get error:

There was an error importing this assessment. Ensure that the file is correctly formatted IMS QTI. Error details:org.sakaiproject.tool.assessment.services.qti.QTIServiceException: java.lang.RuntimeException: java.lang.RuntimeException: resourceId is null

Attach content package
SamigoSAM-822Timer does not continue to count down when 5 minutes popup window appears.Click here for more information.
SamigoSAM-998Audio recordings play automatically in Safari on Mac.This is reported by Stanford (CW-2708):

In Safari on a mac, if you go to the grading page to grading audio questions, all audio recordings play back at the same time, e.g. An instructor loads a grading page with 10 answers and all audio files play simultaneously.
SamigoSAM-1099Samigo uses old version of Apache PoiSamige uses poi-3.5-Final this version of poi is now more than 2 years old and there have been significant bug fixes and performance improvements. It seems the latest stable release (3.7) is compatible with Samigo
SamigoSAM-1232Accessibility: Many Question Types Marked-Up Entirely As a Level 5 HeadingThe entire markup for many question types as delivered in Test and Quizzes are the child of the level 5 heading that starts at the question number text. This might have been an accident, but if it was done to make the entire question appear in bold font it is inappropriate.

Some adaptive technologies include all of the child text as the heading; this means the JavaScript code that appears in the child script elements is also announced (see TQHeadingsListExample.png (attached)). Also, as the screen-reader user navigates through the parts of the question, each part is announced as a level 5 heading which is very distracting and adds to the chatter that they have to tune out when trying to decide what is the real content they need to pay attention to.

Suggestion:

Only have the "Question x of y d.dd Points" part be the level 5 heading that precedes the question text. Use CSS as appropriate to keep the existing bold font styling.
SamigoSAM-1347Importing assessment with (large) attachments as ZIP file fails with error messageThis is reported by Stanford (CW-2812):

Steps to repro:
1. Create an assessment with at least one part, at least one question in the part, and at least one attachment for each part and question.
2. Export the assessment as a ZIP file.
3. Import the exported assessment.

Observe: Get error message on page: "There was an error importing this assessment. Ensure that the file is correctly formatted IMS QTI. "
Expect: No error, ZIP imported

Expected result:
UI change on student side
For File Upload question type:
-Change the limit to 100MB. There is slight change in wording "(Maximum file size: 100MB)". Please see attachment "StudentFileUploadModified.png". Please note, the limit (100MB) is set in the sakai.properties. So it can be changed.

UI change on instructor side
-The current error message appears on the landing page (please see attachment "ImportErrorOriginal.png")
-The modified error message should appear on the Import Assessment page (please see attachment "ImportErrorModified.jpg")
-Text of error message: "<ZIP file name> could not be imported because there is a file size limit of 100MB per import."

-Please also change the instructional text to say "Choose an IMS QTI-compliant XML file or an IMS Content Packaging ZIP file from your computer."
(please see attachment "Import.jpg")
SamigoSAM-1435When a student is dropped from a site/course, s/he is still included in in-progress and submitted countsIf a student drops a course or is manually removed from a site, his or her attempts are still reflected in the submitted and in-progress counts shown for published assessments on the main Assessments screen. As a result, when the instructor access the total scores page, the number of students who have submitted will be < than the "submitted" account, which is concerning to instructors.

To reproduce.

1. Publish a new assessment.
2. Log in as a student and take the assessment.
3. Log in as instructor and note the submitted count is 1 and one student has a submission on the total scores page.
4. Now remove the student from the site.
5. Return to T&Q. Not that teh submitted count is still 1. However, when you click the link to go to the total scores page, no submissions are visible.
SamigoSAM-1429if instructor takes an assesment in student/access view, in-progress and/or submitted count is incrementedWhile in student/access view mode, if the instructor starts an assessment, this will cause it to count as an in-progress assessment. If the instructor submits in student view, the submission count is incremented by 1, which can be misleading. The in-progress and submitted counts shown on the main assessment screens should not include attempts made by the instructor in student view.

Reproduction:
1) Create an assessment and publish it
2) Click on 'Enter student view'
3) Take the publish assessment and save an answer but do not hit submit
4) Logout and close browser
5) Go back into the course as the instructor
6) In T&SB it shows an In Progress of 1 now
7) Now return to student view and submit the assessment. The "Submitted" count us incremented by one on main assessments page.
SamigoSAM-1512problems with "show feedback" and "feedback immediate" on character "Hi

If we have a test configurated with "feedback inmediate" and it has a fill in blank question whose correct answer contains the character ", when student, during assessment, selects "show feedback" it always shows the wrong feedback because the question's correct answer has been stored with &quot; instead of character ".

The question text to reproduce this could be:

'How many fingers do you have in your hand? {"five"}'

Sometimes the question's correct answer that it's stored is &quot;five&quot;. When it happens, if student, during assessment, selects "show feedback" always gets the wrong feedback despite of writing the correct answer.

We think it is a bug. Thanks
SamigoSAM-1734Duplicated explanation for buttonsThe following explanation for buttons is duplicated:

Random access to questions from a Table of Contents. (There are "Next" and "Previous" buttons on each page for navigation.) (There are only "Next" buttons to go forward. There is NO Table of Contents page.)

in random_access of AssessmentSettingsMessages.properties
SamigoSAM-1139Calculated questionsAt the moment the calculated question type is missing in Samigo, i.e. the ability to have questions which contains variables, a method of setting the range of those variables and the number of questions to be generated of that type.
eg. what is {x} + {y} where 0 < x < 100 and 0 < y < 50

i.e., integration with equation editors.
SamigoSAM-1257Move action labels to CommonMessages bundlesAt AuthorBean.getPendingSelectActionListX (X=Æ, 1, 2) methods I've seen that two properties bundles are used: AuthorMessages and CommonMessages. From my point of view, it would better if the AuthorMessages key would be moved to CommonMessages because that will ease translationa&updates and i18n testing. Additionally, all of them are related to actions (print, preview and so on), so they can probably general, which is the purpose of CommonMessages.
SamigoSAM-1278SAM-1277 Cleanup Javascript importsA Javascript import should just be:

<script type="text/javascript">

Some tags are just <script>. Others add the deprecated Language="JAvaScript". This patch cleans it up.
SamigoSAM-1620statistics do not show when random draw from pool is usedWhen an assessment involves random draw from pool, no statistics link shows. This is a problem. Both total score and score per question are still meaningful, although interpreting them is slightly different than if you're not using a random draw.
SamigoSAM-1130Emailing test takers in Chrome or Safari causes stacktraceThe feature that allows instructors to email test-takers in Tests & Quizzes causes a stacktrace in Chrome or Safari. To reproduce:

In Chrome or Safari, go to Tests and Quizzes and view the scores of a published test. (At least one user must complete the test first.)
Click on the "Email" link under one of the users' names.
Click "Send"

This will cause a stacktrace.

I did some poking around and found the problem is caused by the "clickEmailLink()" javascript function on the totalScores.jsp (and some other pages as well). The problem boils down to the fact that the script tries to submit a form and then also load a different web page in the same script. Firefox and Internet Explorer seem to be able to handle this, but Chrome and Safari won't. They'll either load the page or submit the form, but not both. In the current configuration, Chrome/Safari don't submit the form. Since the form isn't submitted, Sakai doesn't know who the recipient of the email is supposed to be. When it tries to send it, it finds a null email address which causes a stacktrace.

I tried to reshuffle the script to make it work in Chrome/Safari, but almost any changes caused the script to break in Firefox. Firefox would tend to stop navigating back to the totalScores page with any change. I'm not familiar enough with the inner workings of Tests and Quizzes to know what other solution to attempt.
SamigoSAM-1140NPE from mailerClick here for more information.
SamigoSAM-1237Show images attached when viewing printable versionShow images attached when viewing printable version, in this way, users can print the complete quizz with referenced images included.
SamigoSAM-1249Email feature in Submission Status sends feedback to wrong addressSee the following screencast:

http://screencast.com/t/C9GAEJP2OFD

If a user forgets to click send or cancel a previously started message and clicks on the Email link in Submission status, the previous addressee gets the message.

Observed on QA3 http://qa3-us.sakaiproject.org:8086/portal and on our Delaware production environment (Sakai 2.8.0 (Kernel 1.2.1))

UD Jira reference: UDSAKAI-433
SamigoSAM-1255Grading default should be that student's identities can be seen by gradersDuring the LA conference we had discussions after the SAMigo BoF about how anonymous grading is still the default OOTB for Samigo, which causes much instructor confusion.

I think may agreed that the default should be that student's identities can be seen by graders.

I'd be interested to hear use cases around why anonymous grading (something I perceive to be a bit of an edge case) should be the default OOTB.
SamigoSAM-1385Importing Tests from Site doesn't clear out "Release To" infoWhen you import tests from another site, the Release To information doesn't get cleared out and set to the current site. This prevents students from viewing the test if the test is published from the direct drop down "Publish" link.

To Reproduce:

1) Create 2 sites
2) 1st site: create a test with at least 1 question
3) 2nd site: import from 1st site (Site Info)
4) In dropdown, click publish and publish test
5) Become student in the 2nd site and notice the test doesn't show up
SamigoSAM-1398Default the "Release to" to Site if the imported assessment release to groupThis is similar to https://jira.sakaiproject.org/browse/SAM-1383. Here are how to reproduce the issue:

1. In site A, create an assessment and release it to groups.
2. Export that assessment.
3. In site B, import that assessment.
4. Go to the setting page of the imported assessment. You will see nothing is selected in the "Release To" section.

Desired behavior:
The "Release To" should be set to the site.
SamigoSAM-1555Anonymous setting still reveals some identifying infoI have a survey in Samigo which I set to anonymous, however when I go through and have a look at the answers in a response, I see at the bottom a link to email the person who submitted it, with their first name.
SamigoSAM-1779IE9: Student unable to record for audio questionUsing IE9, a student cannot record for an audio question.
Tested on both http://qa3-us.sakaiproject.org:8086/portal and http://nightly2.sakaiproject.org:8082/portal/.

To reproduce:
As the instructor, create a test with an audio question
Publish the test

As the student, log in using IE9
Open the test and try to record for the audio question
SamigoSAM-1216HTTP Status 500 Error when downloading audio file from audio question in Tests & QuizzesClick here for more information.
SamigoSAM-1468Duplicate file name breaks donwload zipWe had a case where a student uploaded 2 files with the same name as part of an file upload question.

This causes the download zip to fail with an error:

011-11-10 15:37:56,013 ERROR TP-Processor236 org.sakaiproject.tool.assessment.ui.servlet.delivery.DownloadAllMediaServlet - duplicate entry: Pretorius_Willem-petrus_prtwil005_IS2011B_PRTWIL005.accdb
java.util.zip.ZipException: duplicate entry: Pretorius_Willem-petrus_prtwil005_IS2011B_PRTWIL005.accdb
at java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:175)
at org.sakaiproject.tool.assessment.ui.servlet.delivery.DownloadAllMediaServlet.processOneMediaData(DownloadAllMediaServlet.java:334)
at org.sakaiproject.tool.assessment.ui.servlet.delivery.DownloadAllMediaServlet.processNonAnonymous(DownloadAllMediaServlet.java:292)
at org.sakaiproject.tool.assessment.ui.servlet.delivery.DownloadAllMediaServlet.doPost(DownloadAllMediaServlet.java:131)
at org.sakaiproject.tool.assessment.ui.servlet.delivery.DownloadAllMediaServlet.doGet(DownloadAllMediaServlet.java:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)


1) the download all shouldn't assume the name us unique.
2) The catch needs to finer so that subsequent files get added to the zip
SamigoSAM-1641Float comparison errorsFindbugs identifies a number of places where floats are compared using ==

in the form:

data.getFinalScore() != originalFinalScore

Due to the way floats are represented in binary this could fail as no precision is specified.

Suggestion:

use commons-math Precision.equals(Float 1, Float 2, Float eps)

The question is what degree of precision should we allow?
SamigoSAM-1841Calculated questions does not accept valid Formula, and doesn't report why, eitherI created this calculated question:

Two cars left from the same point at the same time, one traveling East at {x} mph and the other traveling South at {y} mph. In how many minutes will they be {z} miles apart? Round to the nearest minute.

{{abc}}

For the abc formula, I used:

SQRT({z}^2/({x}^2+{y}^2)) * 60

The system rejects that, saying that it is missing a parenthesis. It isn't. When I adjusted it by removing the outermost pair of parens (just as a test even though I think that makes the calculation not work) the formula field was still pink, but there was no error explanation for why.
SamigoSAM-1905samigo / FCK editor question text always appears boldThe question text in samigo always appears in bold. If a instructor wants to place emphasis (by using bold) on a word or statement in the question it does not render properly on the student/preview assessment side. While creating the questions it appears that the text shows up properly. Using the headings of h4 or h5 also do not render properly. There is a notable difference when using h2 and h3.

Replication:

1) Create an assessment
2) In the question text bold a choice word or small statement but not the entire question
3) Save the question - NOTE: it appears properly when creating the assessment.
4) Next preview the assessment / publish assessment and login as a student
5) The question is bold and the emphasis you placed in earlier is not noticeable
SamigoSAM-1234email command compromises anonymityWe set up a test to be graded anonymously, as part of a survey.

When grading, at the bottom of each test is a link "email ...." where .... is the name of the person submitting the test. This is a bad idea.
SamigoSAM-1393Timer starts even if the username and password is not correctThis is reported by IU:

1) Create a timed assessment using a username and password (under the high security in settings).
2) As a student attempt to take this assessment entering the incorrect username and password combination
3) Wait a few minutes and try step 2 again but this time use the correct username and password
4) Notice that the timer had already started prior to you accessing the assessment
SamigoSAM-1205SAMigo integration with Respondus LockDown BrowserSAMigo integration with locked browsers. Contributed by Respondus.
SamigoSAM-1440Samigo has some heavy queries when a user first enteres the tool, we need to make sure these queries limit by SITE_IDWe have identified the following Samigo queries when a user first clicks on the tool inside of a site. These queries are not limiting by SITE_ID and thus are pulling all published assessments, this is not scaling at all in our environment where we have thousdands of sites and tens of thousands of published assessments.

Here are the problem queries that we have identified:

select publishedf0_.ASSESSMENTID as col_0_0_, publishedf0_.FEEDBACKDELIVERY as col_1_0_, publishedf0_.FEEDBACKAUTHORING as col_2_0_, publishedf0_.EDITCOMPONENTS as col_3_0_, publishedf0_.SHOWQUESTIONTEXT as col_4_0_, publishedf0_.SHOWSTUDENTRESPONSE as col_5_0_, publishedf0_.SHOWCORRECTRESPONSE as col_6_0_, publishedf0_.SHOWSTUDENTSCORE as col_7_0_, publishedf0_.SHOWSTUDENTQUESTIONSCORE as col_8_0_, publishedf0_.SHOWQUESTIONLEVELFEEDBACK as col_9_0_, publishedf0_.SHOWSELECTIONLEVELFEEDBACK as col_10_0_, publishedf0_.SHOWGRADERCOMMENTS as col_11_0_, publishedf0_.SHOWSTATISTICS as col_12_0_ from SAM_PUBLISHEDFEEDBACK_T publishedf0_

select assessment0_.PUBLISHEDASSESSMENTID as col_0_0_, count(assessment0_.ASSESSMENTGRADINGID) as col_1_0_ from SAM_ASSESSMENTGRADING_T assessment0_ group by assessment0_.PUBLISHEDASSESSMENTID

select publisheds0_.ASSESSMENTID as col_0_0_ from SAM_PUBLISHEDSECTION_T publisheds0_, SAM_PUBLISHEDSECTIONMETADATA_T publisheds1_ where publisheds0_.SECTIONID=publisheds1_.SECTIONID and publisheds1_.LABEL='AUTHOR_TYPE' and publisheds1_.ENTRY='2' group by publisheds0_.ASSESSMENTID
SamigoSAM-1120Audio Files in Assignments get cut off when played in Firefox/QuicktimeThis is reported by Stanford (CW-2740):

There has been a longstanding issue with Firefox cutting off playback of audio recording files (.au). I just got a ticket from Ken Romeo, reporting that he had students upload mp3 files using the File Upload question type. These files also experience the same problem as the audio recording files, in that they play for a few seconds then get cut off when using the Firefox browser.
SamigoSAM-1259Bad concatenation procedureJean-François Levêque has found some issues related with concatenating strings to make a complete UI message:
samigo-app/src/webapp/jsf/author/publishAssessment.jsp has:
<h:outputText value="#{assessmentSettingsMessages.cancel_message_1}
<b>#{commonMessages.cancel_action}</b>
#{assessmentSettingsMessages.cancel_message_3}" escape="false"/>
SamigoSAM-1835Student able to submit second assessment after due dateThe setting for late submissions accepted states that late submissions will only be allowed for students who do not have a prior submission:

Late submissions WILL be accepted after the due date. However, this applies only to students who have not submitted their work prior to the due date. They will be given one chance to do so and their submission will be tagged as late.

Currently, with this option checked and a due date, students can submit another submission after the due date even if they have a previous submission.

To reproduce:
Create an assessment with a due date, 2 submissions and Late allowed
Publish the assessment

As the student, take and submit the assessment before the due date
Before the due date, start the test a second time
Leave the test open until the due date passes
After the due date has passed, submit the assessment

Student is allowed to submit even though it is after the due date and one submission was already made before the due date.
SamigoSAM-925NPE occurs in DeliveryBean.timeExpiredClick here for more information.
SamigoSAM-1828Unexpected Error with Partial Credit with Multiple ChoiceClick here for more information.
SamigoSAM-1693NPE exporting to spreadsheetSeen in production:

caused by: java.lang.NullPointerException
at org.sakaiproject.tool.assessment.ui.bean.evaluation.ExportResponsesBean.getSpreadsheetData(ExportResponsesBean.java:208)
at org.sakaiproject.tool.assessment.ui.bean.evaluation.ExportResponsesBean.exportExcel(ExportResponsesBean.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
SamigoSAM-787Incorrect internationalization in survey questions1) Select language to english.
2) In any assessment add a question of survey type. Select Answer: Disagree, Agree.
3) Change the language (for example spanish)
4) Edit the above assessment. You can see the answer with values: Disagree, Agree instead of En desacuerdo, de acuerdo witch is the same in spanish.
SamigoSAM-2004sam.assesment.remove logged with null contextWhen a working copy is deleted a null context is pas