Handle versions where conference_id is not set

There are version records that exist prior to the when changelog was introduced
These versions do not have conference_id set.
This commit is contained in:
Nishanth Vijayan 2016-08-16 15:15:01 +05:30
parent 3a3d01150a
commit ac420ab3a4

View file

@ -1,18 +1,25 @@
- conference = Conference.find_by(id: version.conference_id)
- conference_short_title = conference.try(:short_title) || 'deleted_conference'
- conference_title = conference.try(:title) || 'Deleted Conference'
- case version.item_type - case version.item_type
- when 'UsersRole' - when 'UsersRole'
- users_role = current_or_last_object_state(version.item_type, version.item_id) - users_role = current_or_last_object_state(version.item_type, version.item_id)
- user = current_or_last_object_state('User', users_role.user_id) - user = current_or_last_object_state('User', users_role.user_id)
= 'role' = 'role'
= link_to users_role.role.name, admin_conference_role_path(conference_id: Conference.find(version.conference_id).short_title, id: users_role.role.name) = link_to users_role.role.name, admin_conference_role_path(conference_id: conference_short_title, id: users_role.role.name)
= version.event == 'create' ? 'to' : 'from' = version.event == 'create' ? 'to' : 'from'
= 'user' = 'user'
= link_to (user.try(:name) || 'deleted user'), admin_user_path(id: users_role.user.id) = link_to (user.try(:name) || 'deleted user'), admin_user_path(id: users_role.user.id)
- when 'Subscription', 'Registration' - when 'Subscription', 'Registration'
- if conference
= 'conference' = 'conference'
= link_to Conference.find(version.conference_id).title, = link_to conference_title,
admin_conference_registrations_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_registrations_path(conference_id: conference_short_title)
- else
= "deleted conference with ID #{version.conference_id}"
- when 'Commercial' - when 'Commercial'
- commercial = current_or_last_object_state(version.item_type, version.item_id) - commercial = current_or_last_object_state(version.item_type, version.item_id)
@ -25,7 +32,7 @@
- if commercialable_last_version.item - if commercialable_last_version.item
event event
= link_to commercialable.title, = link_to commercialable.title,
admin_conference_program_event_path(conference_id: Conference.find(version.conference_id).short_title, id: commercialable.id) admin_conference_program_event_path(conference_id: conference_short_title, id: commercialable.id)
- else - else
= commercialable.title = commercialable.title
@ -33,134 +40,134 @@
commercial in venue commercial in venue
- if commercialable_last_version.item - if commercialable_last_version.item
= link_to commercialable.name, = link_to commercialable.name,
edit_admin_conference_venue_path(conference_id: Conference.find(version.conference_id).short_title, edit_admin_conference_venue_path(conference_id: conference_short_title,
id: commercialable.id, anchor: 'commercials-content') id: commercialable.id, anchor: 'commercials-content')
- else - else
= commercialable.name = commercialable.name
- when 'Conference' - when 'Conference'
= link_to 'commercial', = link_to 'commercial',
admin_conference_commercials_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_commercials_path(conference_id: conference_short_title)
- when 'EventsRegistration', 'Comment', 'Vote', 'Event' - when 'EventsRegistration', 'Comment', 'Vote', 'Event'
= 'event' = 'event'
- object = current_or_last_object_state(version.item_type, version.item_id) - object = current_or_last_object_state(version.item_type, version.item_id)
- event_id = object.try(:id) || object.try(:event_id) || object.commentable_id - event_id = object.try(:id) || object.try(:event_id) || object.commentable_id
= link_to (current_or_last_object_state('Event', event_id).try(:title) || 'deleted event'), = link_to (current_or_last_object_state('Event', event_id).try(:title) || 'deleted event'),
admin_conference_program_event_path(conference_id: Conference.find(version.conference_id).short_title, id: event_id) admin_conference_program_event_path(conference_id: conference_short_title, id: event_id)
- when 'Target' - when 'Target'
= 'target' = 'target'
- target = current_or_last_object_state(version.item_type, version.item_id) - target = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, target.to_s, admin_conference_targets_path(conference_id: Conference.find(version.conference_id).short_title) = link_if_alive version, target.to_s, admin_conference_targets_path(conference_id: conference_short_title)
- when 'EventSchedule' - when 'EventSchedule'
- event_schedule = current_or_last_object_state(version.item_type, version.item_id) - event_schedule = current_or_last_object_state(version.item_type, version.item_id)
event event
= link_to (current_or_last_object_state('Event', event_schedule.event_id).try(:title) || 'deleted event'), = link_to (current_or_last_object_state('Event', event_schedule.event_id).try(:title) || 'deleted event'),
admin_conference_program_event_path(conference_id: Conference.find(version.conference_id).short_title, id: event_schedule.event_id) admin_conference_program_event_path(conference_id: conference_short_title, id: event_schedule.event_id)
in in
= link_to "Schedule #{event_schedule.schedule_id}", = link_to "Schedule #{event_schedule.schedule_id}",
admin_conference_schedule_path(conference_id: Conference.find(version.conference_id).short_title, id: event_schedule.schedule_id) admin_conference_schedule_path(conference_id: conference_short_title, id: event_schedule.schedule_id)
- when 'Schedule' - when 'Schedule'
= link_if_alive version, "Schedule #{version.item_id}", = link_if_alive version, "Schedule #{version.item_id}",
admin_conference_schedule_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id) admin_conference_schedule_path(conference_id: conference_short_title, id: version.item_id)
- when 'Conference' - when 'Conference'
= 'conference' = 'conference'
= link_to Conference.find(version.conference_id).title, = link_to Conference.find(version.item_id).title,
edit_admin_conference_path(id: Conference.find(version.conference_id).short_title) edit_admin_conference_path(id: Conference.find(version.item_id).short_title)
- when 'RegistrationPeriod' - when 'RegistrationPeriod'
= link_if_alive version, 'registration period', = link_if_alive version, 'registration period',
admin_conference_registration_period_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_registration_period_path(conference_id: conference_short_title)
- when 'Contact' - when 'Contact'
= link_if_alive version, 'contact details', = link_if_alive version, 'contact details',
edit_admin_conference_contact_path(conference_id: Conference.find(version.conference_id).short_title) edit_admin_conference_contact_path(conference_id: conference_short_title)
- when 'Program' - when 'Program'
= link_if_alive version, 'program', = link_if_alive version, 'program',
admin_conference_program_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_program_path(conference_id: conference_short_title)
- when 'Cfp' - when 'Cfp'
= link_if_alive version, 'cfp', = link_if_alive version, 'cfp',
admin_conference_program_cfp_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_program_cfp_path(conference_id: conference_short_title)
- when 'Track' - when 'Track'
= 'track' = 'track'
- track = current_or_last_object_state(version.item_type, version.item_id) - track = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, track.name, = link_if_alive version, track.name,
admin_conference_program_track_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id) admin_conference_program_track_path(conference_id: conference_short_title, id: version.item_id)
- when 'EventType' - when 'EventType'
= 'event type' = 'event type'
- event_type = current_or_last_object_state(version.item_type, version.item_id) - event_type = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, event_type.title, = link_if_alive version, event_type.title,
admin_conference_program_event_types_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_program_event_types_path(conference_id: conference_short_title)
- when 'Role' - when 'Role'
= 'role' = 'role'
- role = current_or_last_object_state(version.item_type, version.item_id) - role = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, role.name, = link_if_alive version, role.name,
admin_conference_role_path(conference_id: Conference.find(version.conference_id).short_title, id: role.name) admin_conference_role_path(conference_id: conference_short_title, id: role.name)
- when 'Venue' - when 'Venue'
= 'venue' = 'venue'
- venue = current_or_last_object_state(version.item_type, version.item_id) - venue = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, venue.name, = link_if_alive version, venue.name,
admin_conference_venue_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_venue_path(conference_id: conference_short_title)
- when 'Lodging' - when 'Lodging'
= 'lodging' = 'lodging'
- lodging = current_or_last_object_state(version.item_type, version.item_id) - lodging = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, lodging.name, = link_if_alive version, lodging.name,
admin_conference_lodgings_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_lodgings_path(conference_id: conference_short_title)
- when 'Room' - when 'Room'
= 'room' = 'room'
- room = current_or_last_object_state(version.item_type, version.item_id) - room = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, room.name, = link_if_alive version, room.name,
admin_conference_venue_rooms_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_venue_rooms_path(conference_id: conference_short_title)
- when 'Sponsor' - when 'Sponsor'
= 'sponsor' = 'sponsor'
- sponsor = current_or_last_object_state(version.item_type, version.item_id) - sponsor = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, sponsor.name, = link_if_alive version, sponsor.name,
admin_conference_sponsors_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_sponsors_path(conference_id: conference_short_title)
- when 'SponsorshipLevel' - when 'SponsorshipLevel'
= 'sponsorship level' = 'sponsorship level'
- sponsorship_level = current_or_last_object_state(version.item_type, version.item_id) - sponsorship_level = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, sponsorship_level.title, = link_if_alive version, sponsorship_level.title,
admin_conference_sponsorship_levels_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_sponsorship_levels_path(conference_id: conference_short_title)
- when 'Ticket' - when 'Ticket'
= 'ticket' = 'ticket'
- ticket = current_or_last_object_state(version.item_type, version.item_id) - ticket = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, ticket.title, = link_if_alive version, ticket.title,
admin_conference_ticket_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id) admin_conference_ticket_path(conference_id: conference_short_title, id: version.item_id)
- when 'Campaign' - when 'Campaign'
= 'campaign' = 'campaign'
- campaign = current_or_last_object_state(version.item_type, version.item_id) - campaign = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, campaign.name, = link_if_alive version, campaign.name,
admin_conference_campaigns_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_campaigns_path(conference_id: conference_short_title)
- when 'DifficultyLevel' - when 'DifficultyLevel'
= 'difficulty level' = 'difficulty level'
- difficulty_level = current_or_last_object_state(version.item_type, version.item_id) - difficulty_level = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, difficulty_level.title, = link_if_alive version, difficulty_level.title,
admin_conference_program_difficulty_level_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id) admin_conference_program_difficulty_level_path(conference_id: conference_short_title, id: version.item_id)
- when 'Splashpage' - when 'Splashpage'
= link_if_alive version, 'splashpage', = link_if_alive version, 'splashpage',
admin_conference_splashpage_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_splashpage_path(conference_id: conference_short_title)
- when 'EmailSettings' - when 'EmailSettings'
= link_if_alive version, 'email settings', = link_if_alive version, 'email settings',
admin_conference_emails_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_emails_path(conference_id: conference_short_title)
- when 'User' - when 'User'
- if version.event == 'update' - if version.event == 'update'
@ -168,6 +175,9 @@
= link_to (current_or_last_object_state('User', version.item_id).try(:name) || 'deleted user'), admin_user_path(id: version.item_id) = link_to (current_or_last_object_state('User', version.item_id).try(:name) || 'deleted user'), admin_user_path(id: version.item_id)
- unless %w(Conference Subscription Registration User).include?(version.item_type) - unless %w(Conference Subscription Registration User).include?(version.item_type)
- if conference
= "in conference" = "in conference"
= link_to Conference.find(version.conference_id).short_title, = link_to conference_short_title,
edit_admin_conference_path(id: Conference.find(version.conference_id).short_title) edit_admin_conference_path(id: conference_short_title)
- else
= "in deleted conference with ID #{version.conference_id}"