Porting local changes to mneme forward

N.B. this excludes the revert for CKEdit as this should now be working in Sakai 10

WL-1887: Marking > Summary of data: Change 'Grade' to 'Mark'

WL-649 Changed mentions of gradebook to markbook in en_GB resource bundles.

WL-940 Localised grading/gradebook references for the en_GB locale.

In the en_GB locale we have localised gradebook to markbook. The main
thrust of this work was to ensure that this was up to date - I hadn't
modified references to 'grading' before - see WL-649.

WL-760 Added instructions to mneme front page.

WL-761 Added placeholder help for mneme / Tasks, Tests & Surveys.

This is incorporated into the maven build and basically just consists of
a link to the WebLearn guidance site.

WL-1228 Renamed 'Tasks, Tests & Surveys' to 'Tests' in the pop-up help.

Note: When you hover your mouse over the pop-up button ('?' icon) you see the
old name, but I think this is coming from the *tool* name, so when that changes,
so will this.

WL-1009 Rename the tool and description (mneme).

WL-1158 Email student when quiz is complete

This is a squashed import for simplicity. For reference see the commit messages
below or the branch ending with commit 88863956d92f155766ecb7b5c5253c3eefd249fa

WL-1158 Sends an e-mail each time a user submits an assessment.

This commit wires in the EmailService into TT&S via Spring. It sends a simple
parameterised e-mail upon each submission.

WL-1158 Added a boolean property to assessment to send an e-mail / certicate.

This is a boolean property to control whether or not an e-mail gets sent when
a user submits their assessment (a notion of a 'pass mark' is coming later).
This is currently the minimum required (it omits Oracle support and does not
include conditional support for surveys where the concept makes less sense).
However, it goes from UI, through Java Beans / DAO and down to the persistence
layer. The e-mail sending itself does not currently make use of this yet.

WL-1158 Further coding associated with the sendEmailOnSubmission property.

NOTE: This is a ripe candidate for being 'squashed' into the previous commit!

WL-1158 Added functionality which sends a plain text e-mail to the submitter.

This is beginning to flesh out the functionality and includes the required
fields in a plain text format. It takes note of the sendEmailOnSubmission
property. Currently it does not utilize the notion of a pass mark in any way.

WL-1158 Sending of submission e-mail now takes a pass mark into account.

Note: The pass mark is currently 'hard-wired' to 80%.

WL-1158 Removed redundant methods around the sendEmail property.

Several of the properties in the AssessmentImpl class have associated initXxx()
and getXxxChanged() methods. I originally implemented these for
sendEmailOnSubmission because I thought they were the reason my code was failing
(it actually turned out to be my failure to modify the 'clone' method!). On
closer inspection, it seems as though the properties that have these methods
implemented are ones whose (change of) value has an impact on the integration
with GradeBook; as neither sendEmailOnSubmission nor passMark do, I have chosen
not to implement them for these in order to maximise maintainability and
legibility.

WL-1158 Fixed an omission in the last commit.

Note: Yes, this could be squashed into the last commit! Failed to replace use
of removed initXxx() method with a setXxx() instead.

WL-1158 Added a float property to assessment to capture a pass mark.

This is an optional float property intended to be used in conjunction with
sendEmailOnSubmission, to control whether or not an e-mail gets sent when a user
submits their assessment. It used to specify the miniumum percentage score
required before an e-mail is sent. This is currently the minimum required (it
omits Oracle support and does not include conditional support for surveys where
the concept makes less sense). However, it goes from UI, through Java Beans /
DAO and down to the persistence layer. The UI for setting this is currently
simplistic, but I intend to make it more consistent with other analogous mneme
widgets. (Note: The e-mail sending itself does not currently make use of this
yet).

WL-1158 Sending of e-mail now takes pass mark stored in database into account.

If it's specified to send an e-mail on submission, the code now also takes the
pass mark into account. If no pass mark is specified, an e-mail is sent every
time.

WL-1158 Made improvements to the submission e-mail sending method.

- refactored the method name to make it's intent and function clearer.
- the sent e-mail is now HTML (which will allow for richer formatting in
subsequent iterations).
- added constraint that we only handle submissions that are automatically
marked. This is because the test may not have been officially released back to
the student(s) yet and the total mark (after human marking) may well be higher
than it is at this stage.
- text in the e-mail reflects test / survey distinction accordingly.
- scores are only mentioned with tests that have a total possible score > 0.

WL-1158 Added showing the pass mark for students reviewing their submission.

The pass mark is now displayed to a student when reviewing their submission. If
this has also been released, then this will be rendered as a pass or fail with
appropriate text and an icon.

WL-1158 Added validation to the assessment pass mark value.

An assessment will be flagged as invalid if it has a pass mark and it falls
outside the bounds (where 'x' is the value) 0 <= x <= 100, as it is intended to
capture a percentage.

WL-1158 Made tweaks to the UI widgets that set the pass mark and send e-mails.

Part of the the intent here was to capture the fact that a pass mark in itself
is quite orthogonal to e-mail sending and potentially more fundamental, so I
moved it up the list of controls (and changed the wording of the labels
accordingly). I also made the pass mark box narrower (6 columns equates to
'100.00').

WL-1158 Modified the submission e-mail to look much more like a certificate.

WL-1158 Made the content of the certificate locale sensitive to the recipient.

This includes the text, the date format and the number (percentage) format.

WL-1158 Remove additional components for merge

WL-1379 add username to TT&S results page

WL-1379 Ignoring some of the changes to merge

These changes to `gradeAssessmentView.xml` were removed in MN-1088 and
cause the build to fail.

See 96b1f5cf3ab5f200efec2bae03b722bc40af0bc5 (mneme/trunk@74203)

WL-1379 Fix error in Tomcat startup

Invalid property 'userDirectoryService' of bean class [org.etudes.mneme.tool.GradeAssessmentView]

Fix to tomcat startup

Invalid property 'userDirectoryService' of bean class [org.etudes.mneme.tool.GradeAssessmentView]

WL-1029 Added QTI DTD and XML catalog files

I (Ben Holmes) have adjusted the tool pom to enable build I don't really know
what I'm doing here so I I'll review this commit with someone who does.

WL-1029 Turned debugging output off (XML Catalog)

WL-1014 Added code to handle 'shuffle' toggle in QTI importer, made default 'false'.

WL-1014 Corrected/added more handling of 'shuffle' toggle in QTI importer, made default 'false'.

WL-1030 Look for, and set description field when importing question pool.

WL-1031 Added generic import method to handle Bod Questionnaires (as surveys)

WL-1328 Add CSV export of student scores

WL-1125 Show .auth users in the results

WL-1125 Refactored retrieval of results to handle .auth submission as desired.

This just handles the list of actual submissions rather than cross-referencing
this against the list of potential submitters. Potential submitters without a
submission were previously assigned a 'phantom' submission, but this seemed
redundant. The lists of userIds and users also 'fell out' as being redundant
too. The only sticking point at the moment is that the security check to verify
that each submission is from someone who can still submit may be computationally
expensive (?)

WL-1125 Changed implementation to return submissions in all required cases.

The method in question needs to cater for an orthogonal set of cases; a known
group (with phantom submissions assigned to users who are missing one) and
open-ended groups such as .auth, where only the submissions that are actually
found are of interest. Unfortunately I made erroneous assumptions with my
previous commit regarding redundant variables; they are required after all! As
before, there is a possible performance concern around checking that each
submission is from a user who can still submit. However, the intent is to deal
with this *if* and when it arises.

WL-3163 Add user directory dependency

This somehow got missed in the merge.

WL-3163 Fix for bad merge which introduced redirect.

The code had an initial redirect which was always getting called so this then caused the outputting of the CSV to be failing because the headers were already written.

WL-3163 Rename OSS-ID to User Name

WL-3163 Re-add depends-on DisplayIdFormat

I had (carelessly) dropped this from the merge, perhaps this explains why
the right user name is not being used.

WL-3163 Show unlimited in CSV

If the number of tries are unlimited then indicate this, currently null
appears in the report.

WL-3163 Sort users in CSV export

This is so that the list of user attempts that appears in the CSV export
looks like the list that is shown in the reports page.

WL-1918 Only show tries title on best screen

WL-1918 Optionally show the number of tries

WL-3163 Make sorting match mneme code

Specifically they use sorting with case ignored.

WL-1918 Hide tries in CSV export

Temporary hard code tries to not be shown in CSV export until we can use
a reliable method to get the number of tries for a submission.

The whole CSV export code should be moved to respond to a GET method.
Code changes to enable compilation

Similar to some of the changes that were required for etudes-utils, it
looked like I wasn't able to get the project to compile with Java 1.7 and
Maven 3 on my local machine but these changes fixed that.
Merge our local Mneme changes in to the 10.0 branch