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 Download job succeeds, create a UserFile record that
* has
succeeds → update user_file data location == = job 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
(code goes in UserFile model)

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