Class: WorkStateTransition::Base
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
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
|
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_users ⇒ Object
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_class ⇒ Object
20
21
22
|
# File 'app/models/work_state_transition/base.rb', line 20
def notification_class
"#{self.class.name}Notification".constantize
end
|
#notify_users ⇒ Object
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
|
#work ⇒ Object
4
5
6
|
# File 'app/models/work_state_transition/base.rb', line 4
def work
@work ||= Work.find(work_id)
end
|