- unless version.item_type == 'Role' || version.item_type == 'UsersRole' - conference = Conference.find_by(id: version.conference_id) - conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' ' - case version.item_type - when 'Organization' organization = link_to_organization(version.item_id) - when 'UsersRole' - users_role = current_or_last_object_state(version.item_type, version.item_id) - role = Role.find_by(id: users_role.role_id) if users_role role - if role.name == 'organization_admin' - if Organization.find_by(id: version.conference_id) -# organization_admin belongs to organization and not conferences - organization = Organization.find_by(id: version.conference_id) = link_if_alive version, role.name, admins_admin_organization_path(organization), organization - else (Deleted Organization) - else - conference = Conference.find_by(id: version.conference_id) - conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' ' = link_if_alive version, role.try(:name), admin_conference_role_path(conference_short_title,role.try(:name) || ' '), conference = version.event == 'create' ? 'to' : 'from' user = link_to_user(users_role.user_id) - when 'Subscription', 'Registration' conference = link_to_conference(version.conference_id) - when 'Commercial' - commercial = current_or_last_object_state(version.item_type, version.item_id) - commercialable = current_or_last_object_state(commercial.commercialable_type, commercial.commercialable_id) - case commercial.commercialable_type - when 'Event' commercial in event - if commercialable && conference = link_to commercialable.title, admin_conference_program_event_path(conference, commercialable.id) - else = commercialable.title = "with ID #{commercialable.id}" - when 'Venue' commercial in venue - if commercialable && conference = link_to commercialable.name, edit_admin_conference_venue_path(conference_short_title, commercialable.id, anchor: 'commercials-content') - else = commercialable.name = "with ID #{commercialable.id}" - when 'Conference' commercial in conference - if commercialable = link_to commercialable.short_title, admin_conference_commercials_path(commercialable.short_title) - else = commercialable.short_title = "with ID #{commercialable.id}" - when 'EventsRegistration', 'Comment', 'Vote', 'Event' event - object = current_or_last_object_state(version.item_type, version.item_id) - event_id = object.try(:event_id) || object.try(:commentable_id) || object.id = link_to (current_or_last_object_state('Event', event_id).try(:title) || 'deleted event'), admin_conference_program_event_path(conference_short_title, event_id) - when 'Target' target - target = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, target.to_s, admin_conference_targets_path(conference_short_title), conference - when 'EventSchedule' - event_schedule = current_or_last_object_state(version.item_type, version.item_id) event = link_to (current_or_last_object_state('Event', event_schedule.event_id).try(:title) || 'deleted'), admin_conference_program_event_path(conference_short_title, event_schedule.event_id) in = link_to "Schedule #{event_schedule.schedule_id}", admin_conference_schedule_path(conference_short_title, event_schedule.schedule_id) - when 'Schedule' = link_if_alive version, "Schedule #{version.item_id}", admin_conference_schedule_path(conference_short_title, version.item_id), conference - when 'Conference' conference = link_to_conference(version.item_id) - when 'RegistrationPeriod' = link_if_alive version, 'registration period', admin_conference_registration_period_path(conference_short_title), conference - when 'Contact' = link_if_alive version, 'contact details', edit_admin_conference_contact_path(conference_short_title), conference - when 'Booth' = 'booth' - booth = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, booth.title, admin_conference_booth_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id ), conference - when 'Program' = link_if_alive version, 'program', admin_conference_program_path(conference_short_title), conference - when 'Cfp' cfp for - cfp = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, cfp.cfp_type, admin_conference_program_cfp_path(conference_short_title, version.item_id), conference - when 'Track' track - track = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, track.name, admin_conference_program_track_path(conference_short_title, track.try(:short_name)), conference - when 'EventType' event type - event_type = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, event_type.title, admin_conference_program_event_types_path(conference_short_title), conference - when 'Role' role - role = current_or_last_object_state(version.item_type, version.item_id) - role_name = role.try(:name) || PaperTrail::Version.where(item_type: 'Role', item_id: version.item_id).last.changeset[:name].second - if role_name == 'organization_admin' - if Organization.find_by(id: version.conference_id) -# organization_admin belongs to organization and not conferences - organization = Organization.find_by(id: version.conference_id) = link_if_alive version, role.name, admins_admin_organization_path(organization), organization - else (Role Deleted) - else - conference = Conference.find_by(id: version.conference_id) - conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' ' = link_if_alive version, role_name, admin_conference_role_path(conference_short_title, role_name), conference - when 'Venue' venue - venue = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, venue.name, admin_conference_venue_path(conference_short_title), conference - when 'Lodging' lodging - lodging = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, lodging.name, admin_conference_lodgings_path(conference_short_title), conference - when 'Room' room - room = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, room.name, admin_conference_venue_rooms_path(conference_short_title), conference - when 'Sponsor' sponsor - sponsor = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, sponsor.name, admin_conference_sponsors_path(conference_short_title), conference - when 'SponsorshipLevel' sponsorship level - sponsorship_level = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, sponsorship_level.title, admin_conference_sponsorship_levels_path(conference_short_title), conference - when 'Ticket' ticket - ticket = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, ticket.title, admin_conference_ticket_path(conference_short_title, version.item_id), conference - when 'Campaign' campaign - campaign = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, campaign.name, admin_conference_campaigns_path(conference_short_title), conference - when 'DifficultyLevel' difficulty level - difficulty_level = current_or_last_object_state(version.item_type, version.item_id) = link_if_alive version, difficulty_level.title,admin_conference_program_difficulty_levels_path(conference_short_title), conference - when 'Splashpage' = link_if_alive version, 'splashpage', admin_conference_splashpage_path(conference_short_title), conference - when 'EmailSettings' = link_if_alive version, 'email settings', admin_conference_emails_path(conference_short_title), conference - when 'User' - if version.event == 'update' user = link_to_user(version.item_id) - unless %w(Conference Subscription Registration User Organization).include?(version.item_type) - if (version.item_type == 'Role' && role_name == 'organization_admin') || (version.item_type == 'UsersRole' && role.name == 'organization_admin') in organization - if Organization.find_by(id: version.conference_id) -# organization_admin belongs to organization and not conferences - organization = Organization.find_by(id: version.conference_id) = link_to_organization(version.conference_id) - else (Organization Deleted) - elsif version.item_type == 'Commercial' - commercial = current_or_last_object_state(version.item_type, version.item_id) - commercialable = current_or_last_object_state(commercial.commercialable_type, commercial.commercialable_id) - unless commercial.commercialable_type == 'Conference' in conference = link_to_conference(version.conference_id) - else in conference = link_to_conference(version.conference_id)