Class: WorkStateTransition::Base

Inherits:
WorkActivity show all
Defined in:
app/models/work_state_transition/base.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 WorkActivity

activities_for_work, add_work_activity, 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

.data_commons_url(work_id) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'app/models/work_state_transition/base.rb', line 36

def self.data_commons_url(work_id)
  url = if Rails.env.production?
          path = Rails.application.routes.url_helpers.work_path(work_id)
          "https://datacommons.princeton.edu#{path}"
        else
          Rails.application.routes.url_helpers.work_url(work_id)
        end
  url
end

.user_tags(work_id) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/work_state_transition/base.rb', line 8

def self.user_tags(work_id)
  work = Work.find(work_id)
  depositor = work.created_by_user
  group = work.group
  group_administrators = group.administrators
  groups_users_for_tags = ["@#{group.code}"]
  unless group_administrators.include?(depositor)
    groups_users_for_tags << "@#{depositor.uid}"
  end
  groups_users_for_tags.join(", ")
end

Instance Method Details

#group_usersObject



32
33
34
# File 'app/models/work_state_transition/base.rb', line 32

def group_users
  work.group.administrators.reject { |admin| admin.id == work.created_by_user_id }
end

#notification_classObject



20
21
22
# File 'app/models/work_state_transition/base.rb', line 20

def notification_class
  "#{self.class.name}Notification".constantize
end

#notify_usersObject



24
25
26
27
28
29
30
# File 'app/models/work_state_transition/base.rb', line 24

def notify_users
  group_users.each do |admin|
    next if work.created_by_user_id == admin.id
    notification_class.create(work_activity_id: id, user_id: admin.id)
  end
  notification_class.create(work_activity_id: id, user_id: work.created_by_user_id)
end

#workObject



4
5
6
# File 'app/models/work_state_transition/base.rb', line 4

def work
  @work ||= Work.find(work_id)
end