Skip to content

Commit 4592957

Browse files
committed
Fix admin participants bug when presenting sessions are canceled
1 parent 80743f4 commit 4592957

File tree

1 file changed

+29
-14
lines changed

1 file changed

+29
-14
lines changed

app/admin/participants.rb

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,28 +43,43 @@
4343
end
4444

4545
panel "Presentations (#{participant.presentations_count})" do
46-
table_for participant.presentations.includes(session: :event).order(created_at: :desc) do
47-
column(:title) do |p|
48-
(link_to(p.session.title, admin_session_path(p.session)) +
49-
(p.session.canceled? ? " (CANCELED)" : "")).html_safe
46+
presented_sessions = Session.with_canceled
47+
.joins(:presentations)
48+
.includes(:event)
49+
.where(presentations: { participant_id: participant.id })
50+
.order("presentations.created_at DESC")
51+
table_for presented_sessions do
52+
column(:title) do |session|
53+
(link_to(session.title, admin_session_path(session)) +
54+
(session.canceled? ? " (CANCELED)" : "")).html_safe
5055
end
51-
column(:event) do |p|
52-
(link_to(p.session.event.name, admin_event_path(p.session.event)) + " (#{p.session.event.date.year})").html_safe if p.session.event
56+
column(:event) do |session|
57+
if session.event
58+
(link_to(session.event.name, admin_event_path(session.event)) + " (#{session.event.date.year})").html_safe
59+
end
5360
end
5461
end
5562
end
5663

5764
panel "Interested Sessions (#{participant.attendances_count})" do
58-
table_for participant.attendances.includes(session: :event).order('events.date desc, sessions.title') do
59-
column(:title) do |attendance|
60-
(link_to(attendance.session.title, admin_session_path(attendance.session)) +
61-
(attendance.session.canceled? ? " (CANCELED)" : "")).html_safe
65+
interested_sessions = Session.with_canceled
66+
.joins(:attendances)
67+
.includes(:event)
68+
.where(attendances: { participant_id: participant.id })
69+
.order("events.date DESC, sessions.title")
70+
table_for interested_sessions do
71+
column(:title) do |session|
72+
(link_to(session.title, admin_session_path(session)) +
73+
(session.canceled? ? " (CANCELED)" : "")).html_safe
6274
end
63-
column(:event) do |attendance|
64-
(link_to(attendance.session.event.name, admin_event_path(attendance.session.event)) +
65-
" (#{attendance.session.event.date.year})").html_safe if attendance.session.event
75+
column(:event) do |session|
76+
if session.event
77+
(link_to(session.event.name, admin_event_path(session.event)) + " (#{session.event.date.year})").html_safe
78+
end
79+
end
80+
column(:created_at) do |session|
81+
session.attendances.find_by(participant_id: participant.id)&.created_at&.strftime("%-m/%-d/%y")
6682
end
67-
column(:created_at) { |a| a.created_at.strftime("%-m/%-d/%y") }
6883
end
6984
end
7085
end

0 commit comments

Comments
 (0)