Class: WorkStateTransition::NewSubmission

Inherits:
Base show all
Defined in:
app/models/work_state_transition/new_submission.rb

Constant Summary

Constants inherited from WorkActivity

WorkActivity::CHANGES, WorkActivity::CHANGE_LOG_ACTIVITY_TYPES, WorkActivity::DATACITE_ERROR, WorkActivity::EMBARGO, WorkActivity::FILE_CHANGES, WorkActivity::MESSAGE, WorkActivity::MESSAGE_ACTIVITY_TYPES, WorkActivity::MIGRATION_COMPLETE, WorkActivity::MIGRATION_START, WorkActivity::NOTIFICATION, WorkActivity::PROVENANCE_NOTES, WorkActivity::SYSTEM, WorkActivity::USER_REFERENCE

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

data_commons_url, #group_users, #notification_class, user_tags, #work

Methods inherited from WorkActivity

activities_for_work, changes_for_work, #created_by_user, #log_event_type?, #message_event_type?, messages_for_work, #notify_creator, #notify_curator, #notify_group, #renderer, #users_referenced

Class Method Details

.add_work_activity(work_id, current_user_id) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'app/models/work_state_transition/new_submission.rb', line 4

def self.add_work_activity(work_id, current_user_id)
  work_title = Work.find(work_id).title
  work_url = data_commons_url(work_id)
  message = "[#{work_title}](#{work_url}) has been created."
  activity = NewSubmission.new(work_id:, activity_type: WorkActivity::NOTIFICATION, message:, created_by_user_id: current_user_id)
  activity.save!
  activity.notify_users

  activity
end

Instance Method Details

#notify_usersObject

explicitly email the submitter of the new submission activity the NewSubmissionNotification additionally use the generic notification class to notify the group administrators that a submission has been created



17
18
19
20
# File 'app/models/work_state_transition/new_submission.rb', line 17

def notify_users
  group_users.each { |user| WorkActivityNotification.create(work_activity_id: id, user_id: user.id) }
  NewSubmissionNotification.create(work_activity_id: id, user_id: work.created_by_user_id)
end