Peer Review Feature - Backporting to 2.9.x

There are here a list of JIRAs related with Peer Review Feature, developed by Bryan Holladay (Longsight) and included in Sakai 10.

I have backported (with some help of Alex Ballesté) almost all the JIRAs for 2.9.x, but it seems that there aren't resources enough available to merge them and to do QA in 2.9.x, so I document the process and attach the patches right here, just in case somebody wants to include this cool feature in their 2.9 deployment as we plan to do soon at UPNA (Spain).

Our QA in our own test server has gone very fine. No issues found so far, except a minor i18n issue that we are going to send to JIRA. (Edit: reported as SAK-27829 - Getting issue details... STATUS )

Of course, if you find any issue or error in this document or in the patches, do not hesitate in documenting it here or just contact me to fix it.

 

Edit (2014-08-21): Bryan Holladay comments that he already backported Peer Review feature for 2.9.x in a branch for Duke. The patch does not apply well at all into 2.9.x because that branch has other local customizations.

Duke's 2.9.x branch is in https://source.sakaiproject.org/svn/msub/duke.edu/assignment/branches/assignment-2.9.x

The list of patches applied to that branch is in https://source.sakaiproject.org/svn/msub/duke.edu/assignment/branches/assignment-2.9.x/CUSTOMIZATIONS.txt

And if somebody wants to check the Peer Review patch applied to that branch (as I did), it can be downloaded with this command:

svn diff -r 311730:311731 https://source.sakaiproject.org/svn/msub/duke.edu/assignment/branches/assignment-2.9.x/ > patch.txt

 

Basic information

If you want to run the feature, there are some changes you must do previously in your installation:

  • Set the next property in your sakai.properties:

    assignment.usePeerAssessment=true
  • Create a new table in your database. The script (for MySQL) is included in https://source.sakaiproject.org/svn/reference/trunk/docs/conversion/sakai_10_0_mysql_conversion.sql
    A similar script for Oracle can be found there. The SQL needed (for MySQL) is this one.

    -- ------------------------
    --
    -- SAK-23812 Peer Review feature for Assignments
    --
    -- ------------------------
    CREATE TABLE ASN_PEER_ASSESSMENT_ITEM_T  ( 
        SUBMISSION_ID       varchar(255) NOT NULL,
        ASSESSOR_USER_ID    varchar(255) NOT NULL,
        ASSIGNMENT_ID       varchar(255) NOT NULL,
        SCORE               int(11) NULL,
        REVIEW_COMMENT             varchar(6000) NULL,
        REMOVED             bit(1) NULL,
        SUBMITTED             bit(1) NULL,
        PRIMARY KEY(SUBMISSION_ID,ASSESSOR_USER_ID)
    );
    create index PEER_ASSESSOR_I on ASN_PEER_ASSESSMENT_ITEM_T (SUBMISSION_ID, ASSESSOR_USER_ID);
    create index PEER_ASSESSOR2_I on ASN_PEER_ASSESSMENT_ITEM_T (ASSIGNMENT_ID, ASSESSOR_USER_ID);
    -- --------------------
    --
    -- END SAK-23812 Peer Review feature for Assignments
    --
    -- --------------------

    Very important: If you run Peer Review in a cluster environment, you should be aware of SAK-23130 - Getting issue details... STATUS and SAK-13776 - Getting issue details... STATUS . It seems that jobScheduler can fail if it is running in several nodes of a cluster. The solution is enabling jobScheduler in only one of the servers and disabling it in the others.

The patch

This big patch includes the next JIRAs, all related to Peer Review. I have each JIRA isolated in a single patch that I will attach separately, in case somebody prefer to apply them step by step.

patch_PeerReview_Completo_SAK-23812-25609-25610-25611-25638-25639-25644-25645-25660-25666-25719.patch

To apply it, put it in assignments folder and run (in Linux) the next command:

patch -p0 -l < patch_PeerReview_Completo_SAK-23812-25609-25610-25611-25638-25639-25644-25645-25660-25666-25719.patch

Important: You must also apply SAK-25897 separately in jobscheduler folder. Patch is attached below.

 

The JIRAs

SAK-23812 - Getting issue details... STATUS - The main JIRA, with a lot of revisions. There are several conflicts with 2.9, mainly in AssignmentAction, but not difficult to adjust them.

patch_PeerReview_SAK-23812_Completo.patch

 

SAK-25609 - Getting issue details... STATUS - Subtask of SAK-23812. Straightforward backport.

patch_PeerReview_SAK-25609.patch

 

SAK-25610 - Getting issue details... STATUS - Subtask of SAK-23812. Straightforward backport.

patch_PeerReview_SAK-25610.patch

 

SAK-25611 - Getting issue details... STATUS - Subtask of SAK-23812. Straightforward backport.

patch_PeerReview_SAK-25611.patch

 

SAK-25638 - Getting issue details... STATUS - Straightforward backport.

patch_PeerReview_SAK-25638.patch

 

SAK-25639 - Getting issue details... STATUS - Three revisions. Issues backporting this patch because it collides with Group Submissions feature, not included in 2.9. Some diff tweaks were necessary.

patch_PeerReview_SAK-25639_Completo.patch

 

SAK-25644 - Getting issue details... STATUS - A minor issue with a property changed in another JIRA. Quite straightforward backport.

patch_PeerReview_SAK-25644.patch

 

SAK-25645 - Getting issue details... STATUS - Straightforward backport.

patch_PeerReview_SAK-25645.patch

 

SAK-25660 - Getting issue details... STATUS - A minor issue because 2.9 uses deprecated StringUtil instead StringUtils. Quite straightforward backport.

patch_PeerReview_SAK-25660_Completo.patch

 

SAK-25666 - Getting issue details... STATUS - Straightforward backport.

patch_PeerReview_SAK-25666.patch

 

SAK-25716 - Getting issue details... STATUS - Subtask of SAK-23812. It is a straightforward backport and it is included by error (my fault) in SAK-23812 patch, so you can ignore it.

 

SAK-25719 - Getting issue details... STATUS - Straightforward backport.

patch_PeerReview_SAK-25719.patch

 

SAK-25897 - Getting issue details... STATUS - It is addressed in SAK-26050 - Getting issue details... STATUS - Straightforward backport. This patch is for jobscheduler tool.

patch_PeerReview_jobscheduler_SAK-26050.patch

 

Not backported JIRAs

There is a single JIRA that I have not been able to backport.

SAK-27787 - Getting issue details... STATUS - Peer Assessment Student View or Reviews looks ugly

The reason is explained in the comments. This patch uses jQuery accordion widget, which seems to work oddly with 2.9 jQuery version.

A patch including a more recent jQuery library could be done, but I think that is not a good practice at all. And this issue is not a big deal IMHO. If anybody desire to apply it anyway, a patch for Duke University's 2.9.x is included in SAK-27787.