Track Schedule and EventSchedule

This commit is contained in:
Nishanth Vijayan 2016-08-18 00:32:16 +05:30
parent b982d18bbb
commit 7d70f7685e
5 changed files with 44 additions and 6 deletions

View file

@ -413,12 +413,6 @@ module ApplicationHelper
when 'new' then 'resubmitted'
end
when version.changeset['start_time'] && version.changeset['start_time'][0].nil?
'scheduled'
when version.changeset['start_time'] && version.changeset['start_time'][1].nil?
'unscheduled'
else
"updated #{updated_attributes(version)} of"
end
@ -494,6 +488,14 @@ module ApplicationHelper
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
def general_change_description(version)
if version.event == 'create'
'created new'

View file

@ -3,6 +3,8 @@ class EventSchedule < ActiveRecord::Base
belongs_to :event
belongs_to :room
has_paper_trail ignore: [:updated_at], meta: { conference_id: :conference_id }
validates :schedule, presence: true
validates :event, presence: true
validates :room, presence: true
@ -28,4 +30,10 @@ class EventSchedule < ActiveRecord::Base
def intersecting_events
room.event_schedules.where(start_time: start_time, schedule: schedule).where.not(id: id)
end
private
def conference_id
schedule.program.conference_id
end
end

View file

@ -2,4 +2,12 @@ class Schedule < ActiveRecord::Base
belongs_to :program
has_many :event_schedules, dependent: :destroy
has_many :events, through: :event_schedules
has_paper_trail ignore: [:updated_at], meta: { conference_id: :conference_id }
private
def conference_id
program.conference_id
end
end

View file

@ -49,6 +49,23 @@
- else
= PaperTrail::Version.where(item_type: 'Target', item_id: version.item_id).last.reify.to_s
- elsif version.item_type == 'EventSchedule'
- event_schedule = get_version_object(version)
event
= link_to Event.find(event_schedule.event_id),
admin_conference_program_event_path(conference_id: Conference.find(version.conference_id).short_title, id: event_schedule.event_id)
in
= link_to "Schedule #{event_schedule.schedule_id}",
admin_conference_schedules_path(conference_id: Conference.find(version.conference_id).short_title, id: event_schedule.schedule_id)
- elsif version.item_type == 'Schedule'
- schedule = get_version_object(version)
- if version.item
= link_to "Schedule #{event_schedule.schedule_id}",
admin_conference_schedules_path(conference_id: Conference.find(version.conference_id).short_title, id: event_schedule.schedule_id)
- else
= "Schedule #{event_schedule.schedule_id}"
- elsif version.item
- case version.item_type
- when 'Conference'

View file

@ -41,6 +41,9 @@
- when 'User'
= user_change_description(version)
- when 'EventSchedule'
= event_schedule_change_description(version)
- else
= general_change_description(version)