Skip to content

Commit 2057bac

Browse files
committed
Add admin sessions and events models
1 parent 8ba6d97 commit 2057bac

File tree

3 files changed

+128
-0
lines changed

3 files changed

+128
-0
lines changed

app/admin/events.rb

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
ActiveAdmin.register Event do
2+
permit_params :name, :date
3+
4+
config.filters = false
5+
6+
index do
7+
column :id
8+
column :name do |event|
9+
link_to event.name, admin_event_path(event)
10+
end
11+
column("# of Sessions") do |event|
12+
link_to event.sessions.count, admin_sessions_path(q: { event_id_eq: event.id })
13+
end
14+
column :date
15+
end
16+
17+
show do
18+
attributes_table do
19+
row :name
20+
row :date
21+
row :timeslots
22+
row "# of Rooms" do |event|
23+
event.rooms.count
24+
end
25+
row "# of Sessions" do |event|
26+
event.sessions.count
27+
end
28+
row :created_at
29+
row :updated_at
30+
end
31+
32+
panel "Sessions" do
33+
table_for event.sessions.order(:timeslot_id) do
34+
column :title do |session|
35+
link_to session.title, admin_session_path(session)
36+
end
37+
column :presenters do |session|
38+
session.presenters.map { |presenter| link_to presenter.name, admin_participants_path(presenter) }.join(", ").html_safe
39+
end
40+
column :timeslot do |session|
41+
session.timeslot&.to_s
42+
end
43+
column :room do |session|
44+
session.room&.name
45+
end
46+
end
47+
end
48+
end
49+
50+
end

app/admin/sessions.rb

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
ActiveAdmin.register Session do
2+
3+
permit_params(
4+
:participant_id,
5+
:title,
6+
:description,
7+
:event_id,
8+
:timeslot_id,
9+
:room_id,
10+
:summary,
11+
:level_id,
12+
:manually_scheduled,
13+
:manual_attendance_estimate
14+
)
15+
16+
filter :presenter
17+
filter :title
18+
filter :event
19+
20+
index do
21+
column :id
22+
column :title do |session|
23+
link_to session.title, admin_session_path(session)
24+
end
25+
column("Presenters") do |session|
26+
session.presenters.map do |presenter|
27+
link_to presenter.name, admin_participants_path(presenter)
28+
end.join(", ").html_safe
29+
end
30+
column("Event") do |session|
31+
link_to session.event.name, admin_event_path(session.event)
32+
end
33+
column :timeslot
34+
column :room
35+
end
36+
37+
show title: :title do
38+
attributes_table do
39+
row :event do |session|
40+
link_to session.event.name, admin_event_path(session.event)
41+
end
42+
row :title
43+
row :participant
44+
row :presenters
45+
row :description
46+
row :level
47+
row :categories
48+
row :timeslot
49+
row :room
50+
row :manually_scheduled
51+
row :created_at
52+
row :updated_at
53+
end
54+
end
55+
56+
form do |f|
57+
f.inputs do
58+
f.input :title
59+
f.input :description
60+
f.input :participant
61+
f.input :presenters
62+
f.input :level
63+
f.input :categories
64+
f.input :timeslot
65+
f.input :room
66+
f.input :manually_scheduled
67+
end
68+
f.actions
69+
end
70+
end

app/models/event.rb

+8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ def self.current_event
1515
self.order(:date).last
1616
end
1717

18+
def self.ransackable_attributes(auth_object = nil)
19+
["date", "name"]
20+
end
21+
22+
def self.ransackable_associations(auth_object = nil)
23+
["attendances", "participants", "presenter_timeslot_restrictions", "rooms", "sessions", "timeslots"]
24+
end
25+
1826
def current?
1927
if @current.nil?
2028
@current = self == Event.current_event

0 commit comments

Comments
 (0)