Put all tiebreaker rounds in a single table

To align votes vertically across rounds
This commit is contained in:
ricola 2026-01-20 22:24:58 -06:00
parent 720dd8cd56
commit 4ac2aeaf5e
2 changed files with 46 additions and 36 deletions

View file

@ -85,40 +85,37 @@
<div class="col"><%= _("Votes for this candidate") %></div>
<div class="col text-end"><%= _("Votes for the winning candidate") %></div>
</div>
<% n = 0 %>
<% previous = 0 %>
<% c.mj.break_tie(@results.first.mj).each do |a, b| %>
<hr>
<% if n == 0 %>
<div class="row">
<div class="col"><%= _("Without removing any vote.") %></div>
</div>
<% end %>
<% if n == 1 %>
<% value = settings.values.select { |e| e[:id] == previous }.first %>
<div class="row">
<div class="col">
<%= _("Removing a vote of value: ") %>
<span class="badge bg-<%= value[:id] %>"><%= _(value[:label]) %></span>
</div>
</div>
<% end %>
<% if n > 1 %>
<% value = settings.values.select { |e| e[:id] == previous }.first %>
<div class="row">
<div class="col">
<%= _("Removing another vote of value: ") %>
<span class="badge bg-<%= value[:id] %>"><%= _(value[:label]) %></span>
</div>
</div>
<% end %>
<% previous = a.mj %>
<table class="table table-borderless">
<table class="table table-borderless tiebreak">
<% n = 0 %>
<% previous = 0 %>
<% max = @results.first.mj.n * 2 + 1 %>
<% c.mj.break_tie(@results.first.mj).each do |a, b| %>
<tr class="tiebreak-top">
<td colspan="<%= max %>"></td>
</tr>
<tr class="tiebreak-round">
<td colspan="<%= max %>">
<% if n == 0 %>
<%= _("Without removing any vote.") %>
<% end %>
<% if n == 1 %>
<% value = settings.values.select { |e| e[:id] == previous }.first %>
<%= _("Removing a vote of value: ") %>
<span class="badge bg-<%= value[:id] %>"><%= _(value[:label]) %></span>
<% end %>
<% if n > 1 %>
<% value = settings.values.select { |e| e[:id] == previous }.first %>
<%= _("Removing another vote of value: ") %>
<span class="badge bg-<%= value[:id] %>"><%= _(value[:label]) %></span>
<% end %>
<% previous = a.mj %>
</td>
</tr>
<tr>
<% (1..a.n).each do |i| %>
<td class="p-0 text-center <% unless i == a.majority %>opacity-0<% end %>">↓</td>
<% end %>
<th></th>
<td colspan="<%= max - a.n - b.n %>"></td>
<% (1..b.n).each do |i| %>
<td class="p-0 text-center <% unless b.n - i + 1 == b.majority %>opacity-0<% end %>">↓</td>
<% end %>
@ -131,7 +128,7 @@
<td class="p-0 mj-cell mj-cell-<%= v[:id] %><% if i == a.majority and a.mj == b.mj %> mj-cell-majority<% end %>">&nbsp;</td>
<% end %>
<% end %>
<td class="p-0 text-center fw-bold">
<td class="p-0 text-center fw-bold" colspan="<%= max - a.n - b.n %>">
<% if a.mj < b.mj %><<% end %>
<% if a.mj > b.mj %>><% end %>
<% if a.mj == b.mj %>=<% end %>
@ -144,9 +141,9 @@
<% end %>
<% end %>
</tr>
</table>
<% n = n + 1 %>
<% end %>
<% n = n + 1 %>
<% end %>
</table>
</div>
<% end %>
</div>