Skip to content

Commit 69ff512

Browse files
committed
add votes to show page
1 parent 8d87fa7 commit 69ff512

3 files changed

Lines changed: 45 additions & 1 deletion

File tree

app/controllers/meetings_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ def index
66
end
77

88
def show
9-
@meeting = Meeting.includes(agenda_versions: { agenda_sections: :agenda_items }).find(params[:id])
9+
@meeting = Meeting.includes(agenda_versions: { agenda_sections: { agenda_items: { votes: :council_member } } }).find(params[:id])
1010
@agenda_version = if params[:version].present?
1111
@meeting.version(params[:version])
1212
else

app/helpers/meetings_helper.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
module MeetingsHelper
2+
def result_badge_class(result)
3+
case result
4+
when "approved", "adopted", "carried"
5+
"bg-green-100 text-green-800"
6+
when "defeated"
7+
"bg-red-100 text-red-800"
8+
when "withdrawn"
9+
"bg-gray-100 text-gray-600"
10+
when "introduced", "tabled"
11+
"bg-yellow-100 text-yellow-800"
12+
else
13+
"bg-gray-100 text-gray-800"
14+
end
15+
end
16+
17+
def vote_badge_class(position)
18+
case position
19+
when "aye"
20+
"bg-green-50 text-green-700"
21+
when "nay"
22+
"bg-red-50 text-red-700"
23+
when "abstain"
24+
"bg-yellow-50 text-yellow-700"
25+
when "absent"
26+
"bg-gray-50 text-gray-500"
27+
end
28+
end
29+
end

app/views/meetings/show.html.erb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@
6060
<p class="text-sm text-gray-900"><%= item.title %></p>
6161
<% end %>
6262
<div class="mt-1.5 flex flex-wrap items-center gap-2">
63+
<% if item.result.present? %>
64+
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium <%= result_badge_class(item.result) %>"><%= item.result.titleize %></span>
65+
<% if item.vote_tally.present? %>
66+
<span class="text-xs font-medium text-gray-500">(<%= item.vote_tally %>)</span>
67+
<% end %>
68+
<% end %>
6369
<% if item.file_number.present? %>
6470
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-blue-50 text-blue-700"><%= item.file_number %></span>
6571
<% end %>
@@ -70,6 +76,15 @@
7076
<%= link_to "PDF", item.url, target: "_blank", rel: "noopener noreferrer", class: "inline-flex items-center gap-1 text-xs text-blue-600 hover:text-blue-800" %>
7177
<% end %>
7278
</div>
79+
<% if item.votes.any? %>
80+
<div class="mt-2 flex flex-wrap gap-1.5">
81+
<% item.votes.sort_by { |v| v.council_member.last_name }.each do |vote| %>
82+
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium <%= vote_badge_class(vote.position) %>">
83+
<%= vote.council_member.last_name.sub(/\s+(Jr|Sr|II|III|IV)\.?\s*$/i, "") %> · <%= vote.position.capitalize %>
84+
</span>
85+
<% end %>
86+
</div>
87+
<% end %>
7388
</div>
7489
</div>
7590
</li>

0 commit comments

Comments
 (0)