Feature #8697

Updated by Tom Clegg over 5 years ago

Implement as a long-running process that polls and then waits {configurable} seconds

When a download job succeeds, create a UserFile record for each file in the output collection that
* has location == output of download job
* belongs to the appropriate participant
* appears does not appear on the participant's public profile page
* appears on the participant's "data files" list
* cannot be edited/overwritten by the participant like a regular uploaded file would

When a processing Processing job succeeds,
succeeds → update report_content_locator = job output
output, send email to user
user, add entry to user log log, set participant_notified_at=now() (code goes in Report model)

When any Any job fails,
fails → send email to site admins

h2. Implementation

New UserFile attributes
* <pre>
t.datetime "sent_notification_at"
t.datetime "seen_by_participant_at"
t.datetime "published_at"

t.integer "study_id"