mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Cleanup obj_desc_and_link
This commit is contained in:
parent
7d70f7685e
commit
75ee1371de
3 changed files with 138 additions and 140 deletions
|
|
@ -392,13 +392,22 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
# Recieves a PaperTrail::Version object
|
||||
# Recieves a model_name and id
|
||||
# Returns nil if model_name is invalid
|
||||
# Returns object in its current state if its alive
|
||||
# Returns object as it was before version's change(unless its a create event's version)
|
||||
# Else Returns object as it was after version's change
|
||||
def get_version_object(version)
|
||||
return nil unless version
|
||||
version.item || version.reify || version.next.reify
|
||||
# Otherwise Returns object state just before deletion
|
||||
def current_or_last_object_state(model_name, id)
|
||||
begin
|
||||
object = model_name.constantize.find_by(id: id)
|
||||
rescue NameError
|
||||
return nil
|
||||
end
|
||||
|
||||
if object.nil?
|
||||
object_last_version = PaperTrail::Version.where(item_type: model_name, item_id: id).last
|
||||
object = object_last_version.reify if object_last_version
|
||||
end
|
||||
object
|
||||
end
|
||||
|
||||
def event_change_description(version)
|
||||
|
|
@ -423,18 +432,17 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def subscription_change_description(version)
|
||||
user = get_version_object(version).user
|
||||
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 = get_version_object(version).user
|
||||
else
|
||||
registration_id = get_version_object(version).registration_id
|
||||
registration_last_version = PaperTrail::Version.where(item_type: 'Registration', item_id: registration_id).last
|
||||
user = get_version_object(registration_last_version).user
|
||||
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
|
||||
|
|
@ -453,7 +461,7 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def comment_change_description(version)
|
||||
user = get_version_object(version).user
|
||||
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
|
||||
|
|
@ -462,7 +470,7 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def vote_change_description(version)
|
||||
user = get_version_object(version).user
|
||||
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'
|
||||
|
|
@ -506,9 +514,7 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
def object_last_description(model_name, id)
|
||||
object_version = PaperTrail::Version.where(item_type: model_name, item_id: id).last
|
||||
object = (object_version.reify || object_version.item) if object_version
|
||||
object.try(:name) || object.try(:title)
|
||||
def link_if_alive(version, link_text, link_url)
|
||||
version.item ? link_to(link_text, link_url) : link_text
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue