Submission System Updates

'''Status: Implementation complete. These changes were rolled out with release 1.7 (phase 1) and release 1.9 (phase 2).'''

Goal: Move the stand-alone submission system into the DSpace application.

Requirements for phase 1

 * Move the current submission system into DSpace using the XMLUI.
 * Retain all existing user interface features, including:
 * Simplified 3-step workflow, with integrated file upload and metadata description for data files.
 * Automatic linking of data package and data file items.
 * Import of metadata from Dryad's store of journal metadata records. When metadata is imported, it is not editable in the submission interface.
 * Submissions in progress are stored in the normal DSpace workflow system.
 * NESCent will continue to manage the processing of journal metadata.

Stages in the submission process:
 * 1) Submission -- The author is working on the package, but it has not been finalized. When the author clicks on "finalize", the package moves to the next stage.
 * 2) Workflow -- The curator can review the item, edit metadata, and ultimately approve/reject the package. When a package is approved, a DOI is assigned, and the package moves to the next stage.
 * 3) Online early -- The curator has approved, but the associated publication has not yet appeared. This item does not appear in the "recently added" list, but is available to normal searches. The DOI is assigned and resolves.
 * 4) * If the author selected "embargo until article appears", the bitstreams are not available -- viewers see a message about the item becoming available shortly after the associated article is published. (We're currently indicating this with a bogus embargo date of 9999-01-01.)
 * 5) * If the author selected "embargo for 1 year", the bitstreams are under normal embargo -- viewers see a message about the item becoming available 1 year after the article is published. (Note that when the curator enters a real embargo date, viewers will see a message with that date.)
 * 6) * If the author selected "publish immediately", the bitstreams become available and searchable immediately.
 * 7) Archived -- When the article is published, the curator adds full article metadata, and the package moves to this stage. Item is fully available in Dryad (though the bitstreams may still be under embargo).

Requirements for phase 2, anonymous data review
Stages in the submission process:
 * 1) Submission stage -- The author is working on the package, but it has not been finalized. When the author clicks on "finalize", the package moves to the next stage.
 * 2) In Review stage -- When metadata is imported from a journal, if the "Article Status" field is "in review", the associated content should be placed in the "In Review" stage. If not, the data package automatically proceeds to the Workflow stage.
 * 3) This content should not appear in the normal workflow for curators, but it needs to be visible to both the submitter and to anonymous reviewers via the Reviewer PIN:
 * 4) A Reviewer PIN is a type of password that allows a user to view (not edit) a submission that is in the "In Review" stage.
 * 5) Reviewers do not need to be logged in to use a Reviewer PIN.
 * 6) When a submission that is "In Review" is accessed by anyone other than a Dryad Curator, the Reviewer PIN must be entered before access is granted.
 * 7) Dryad curators have access to the Reviewer PIN.
 * 8) When an author sends a submission to the "In Review" stage, the access URL for the data package and the Reviewer PIN are mailed to the author and the appropriate journal representative.
 * 9) When the article is accepted, the journal will send a metadata update with "Article Status" set to "accepted". The metadata needs to be updated, and the data package should be shifted to the Workflow stage.
 * 10) When an article is rejected (receive a notice with "Article Status" set to "rejected"), the entire data package should be marked for deletion. Actual deletion will take place after a package has spent 1 month with the deletion mark active. (During the time an item is marked for deletion, it is still effectively "In Review" and can be accessed by the curators and reviewers.
 * 11) One possible implementation: Create a curator-level user called "In Review". All items with the "in review" status automatically get assigned to this user's pool. This would keep the content out of the real curator's workflow, but allow the real curator to login and act on something in extreme cases.
 * 12) Workflow stage -- The curator can review the item, edit metadata, and ultimately approve/reject the package. When a package is approved:
 * 13) The dryad.status field is set to "Approved" for all records associated with the package (package, publication, and file records)
 * 14) a DOI is assigned
 * 15) the package moves to the next stage
 * 16) Online early stage -- The curator has approved, but the associated publication has not yet appeared. The DOI is assigned and resolves. When the article is published, the curator adds full article metadata, and the package moves to the next stage.
 * 17) * If the author selected "embargo until article appears", the bitstreams are not available -- viewers see "this item is in process, and will become available shortly after the associated article is published". (We're currently indicating this with an embargo date of 9999-01-01.)
 * 18) * If the author selected "embargo for 1 year", the bitstreams are under normal embargo. -- viewers see a message about the item becoming available 1 year after the article is published. (Note that when the curator enters a real embargo date, viewers will see a message with that date.)
 * 19) * If the author selected "publish immediately", the bitstreams become available and searchable immediately.
 * 20) * The curator needs a way to locate all items in this status, with the ability to organize the list by journal.
 * 21) Archived stage -- Item is fully available in Dryad (though the bitstreams may still be under embargo).

Answered questions

 * 1) What should appear in "recently added"? What should appear in RSS,OAI,email notifications, etc.?
 * 2) * Answer: Only display items for which we have complete article metadata (i.e., the "online early" stage described above)
 * 3) When should content be available in search? We had decided that content should not be searchable until the article appears, but this doesn't work for items when the author selected the "publish immediately" option.
 * 4) * Anything that is marked "approved" by the curator is searchable, though it won't appear in the "recently added" list until the publication metadata is complete.

Documentation
Code for the submission system uses a MVC architecture.
 * view classes: dspace/modules/xmlui/src/main/java/org/dspace/app/xmlui/aspect/submission
 * model classes: dspace/modules/api/src/main/java/org/dspace/submit/bean, dspace/modules/api/src/main/java/org/dspace/submit/model
 * controller classes: dspace/modules/api/src/main/java/org/dspace/submit/step

Feature wishlist for future phases

 * 1) Ideally, we want to allow authors to add new data files while the package is "in review", but not modify anything else. Is there a simple way to do this?
 * 2) Emails confirming deposits should be copied to the proper journal representatives, and should include the manuscript number to help the journal representatives match the package DOI to the proper article.
 * 3) When a submission is rejected by the curator, it would be useful for the curator comments to be stored with the item, so the author and other curators could refer to the comments later. If the item is later approved, these comments should be removed (for privacy reasons).