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 that
* has location == output of download job
* belongs to the appropriate participant
* 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

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

Any job 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"