mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
88 lines
2.8 KiB
Ruby
88 lines
2.8 KiB
Ruby
module ChangeDescriptionHelper
|
|
##
|
|
# Groups functions related to change description
|
|
##
|
|
def subscription_change_description(version)
|
|
user = current_or_last_object_state(version.item_type, version.item_id).user
|
|
user_name = user.name unless user.id.to_s == version.whodunnit
|
|
version.event == 'create' ? "subscribed #{user_name} to" : "unsubscribed #{user_name} from"
|
|
end
|
|
|
|
def registration_change_description(version)
|
|
if version.item_type == 'Registration'
|
|
user = current_or_last_object_state(version.item_type, version.item_id).user
|
|
elsif version.item_type == 'EventsRegistration'
|
|
registration_id = current_or_last_object_state(version.item_type, version.item_id).registration_id
|
|
user = current_or_last_object_state('Registration', registration_id).user
|
|
end
|
|
|
|
if user.id.to_s == version.whodunnit
|
|
case version.event
|
|
when 'create' then 'registered to'
|
|
when 'update' then "updated #{updated_attributes(version)} of the registration for"
|
|
when 'destroy' then 'unregistered from'
|
|
end
|
|
else
|
|
case version.event
|
|
when 'create' then "registered #{user.name} to"
|
|
when 'update' then "updated #{updated_attributes(version)} of #{user.name}'s registration for"
|
|
when 'destroy' then "unregistered #{user.name} from"
|
|
end
|
|
end
|
|
end
|
|
|
|
def comment_change_description(version)
|
|
user = current_or_last_object_state(version.item_type, version.item_id).user
|
|
if version.event == 'create'
|
|
version.previous.nil? ? 'commented on' : "re-added #{user.name}'s comment on"
|
|
else
|
|
"deleted #{user.name}'s comment on"
|
|
end
|
|
end
|
|
|
|
def vote_change_description(version)
|
|
user = current_or_last_object_state(version.item_type, version.item_id).user
|
|
if version.event == 'create'
|
|
version.previous.nil? ? 'voted on' : "re-added #{user.name}'s vote on"
|
|
elsif version.event == 'update'
|
|
"updated #{user.name}'s vote on"
|
|
else
|
|
"deleted #{user.name}'s vote on"
|
|
end
|
|
end
|
|
|
|
def general_change_description(version)
|
|
if version.event == 'create'
|
|
'created new'
|
|
elsif version.event == 'update'
|
|
"updated #{updated_attributes(version)} of"
|
|
else
|
|
'deleted'
|
|
end
|
|
end
|
|
|
|
def event_change_description(version)
|
|
case
|
|
when version.event == 'create' then 'submitted new'
|
|
|
|
when version.changeset['state']
|
|
case version.changeset['state'][1]
|
|
when 'unconfirmed' then 'accepted'
|
|
when 'withdrawn' then 'withdrew'
|
|
when 'canceled', 'rejected', 'confirmed' then version.changeset['state'][1]
|
|
when 'new' then 'resubmitted'
|
|
end
|
|
|
|
else
|
|
"updated #{updated_attributes(version)} of"
|
|
end
|
|
end
|
|
|
|
def event_schedule_change_description(version)
|
|
case version.event
|
|
when 'create' then 'scheduled'
|
|
when 'update' then 'rescheduled'
|
|
when 'destroy' then 'unscheduled'
|
|
end
|
|
end
|
|
end
|