I am happy to provide you with a status update on the progress that has been made since the previous post: Sakai 2+3 Hybrid pre-alpha. I think you will be most pleased with the outcomes and in many ways provides a better user experience than what is available in the Sakai 2 portal! The speed at which you can switch between tools is quite amazing. Check it out:
Many thanks to: Ian Boston, Paul Bristow, Oszkar Nagy, Christian Vuerings.
As the week begins winding down, I wanted to draw your attention to some progress I have made in this area since my last blog entry: Importing content from Sakai 2 into Sakai 3 (take 2). First, I would like to point you to a screencast I recorded on the subject earlier today:
Next, I would like to address some of the action items from the last post:
- All user uploaded content is currently stored in a BigStore under /_user/files. After discussing with Ian Boston, I will most likely refactor the import code to store its content in that BigStore as well. Although, the BigStore concept will likely be redesigned in the near future, so any work I do in this area will be nicely abstracted so that this behavior can be changed easily when and if BigStore is redesigned.
- With the move to BigStore, I will have to take a look at access control lists (ACLs) so the the user importing content will have the proper permissions.
- Next, I need to take a look at the contract between K2 and the “Content & Media” widget so that the imported content appears properly within the user interface.
This work is complete and you can see it working in the video. The refactor to the /_user/files BigStore was pretty straightforward, except for one self inflicted bug, and luckily the call to FileUtils.saveFile() already handled all of the access control permissions for me. The Content & Media widget expects files to be stored under /_user/files, so things started behaving as expected after #1 was complete.
I do have the plans confirmed with Dr. Chuck and Noah Botimer to spend two days developing a Sakai 3 BasicLTI consumer. I am excited to tackle that problem – coding sprints are always full of such great energy! Until next time, Lance