<% %> <%require 'whois/whois' %>

Results

<% if @election.shortdesc %>

Description:

<%= @election.shortdesc %> <% if @election.longdesc -%>
<%= h(@election.longdesc) -%> <% end -%>
<% end %>

Candidates/choices:

    <% for candidate in @election.candidates.sort %>
  1. <%= candidate.name.capitalize %>
  2. <% end %>

Number of voters:

<%= @election.voters.reject {|v| not v.voted? }.length %> (see below for details)

Winners

Schulze Method Results

<%= render :partial => 'result', :object => @election.ssd_result %>
About the Schulze Method

The <%= link_to "Schulze method", "http://en.wikipedia.org/wiki/Schulze_method" %> is a preferential voting system. It is based on the Condorcet method but includes a set of methods for resolving "circular" defeats.

The Schulze method is also known as Schwartz Sequential Dropping (SSD), Cloneproof Schwartz Sequential Dropping (CSSD), Beatpath Method, Beatpath Winner, Path Voting, and Path Winner.

Plurality Results

<%= render :partial => 'result', :object => @election.plurality_result %>
About Plurality Voting

<%= link_to "Plurality voting", "http://en.wikipedia.org/wiki/Plurality_electoral_system" %> selects the winner who has received the most "number one" votes, regardless of whether or not he or she has a majority of votes.

Plurality voting is also variously referred to as, "first past the post," "winner-take-all," "majoritarian" or "simple majority" voting.

Approval Result

(This algorithm assumes that top two choices are "approved.")

<%= render :partial => 'result', :object => @election.approval_result %>
About Approval Voting

<%= link_to "Approval voting", "http://en.wikipedia.org/wiki/Approval_voting" %> is a voting system in which each voter can vote for as many or as few candidates as the voter chooses. Approval voting is a limited form of range voting, where the range that voters are allowed to express is extremely constrained: accept or not.

Simple Condorcet Results

<%= render :partial => 'result', :object => @election.condorcet_result %>
About Simple Cordorcet Voting

<%= link_to "Condorcet", "http://en.wikipedia.org/wiki/Condorcet_method" %> allows voters to rank candidates in order of preference. If there is a choice whom voters prefer to each other choice when compared to one at a time, that choice will be the winner.

There is a family of Condorcet methods. This method is referred to as "Simple Condorcet" to distinguish it from the Schulze method which is another Condorcet system.

Borda Count Results

<%= render :partial => 'result', :object => @election.borda_result %>
About Borda Count

<%= link_to "Borda count", "http://en.wikipedia.org/wiki/Borda_count" %> is an election method in which voters rank candidates in order of preference. The Borda count determines the winner of an election by giving each candidate a certain number of points corresponding to the position in which he or she is ranked by each voter. Once all votes have been counted the candidate with the most points is the winner.

Instant Runoff (IRV) Results

About Instant Runoff Voting

<%= link_to "Instant runoff voting", "http://en.wikipedia.org/wiki/Instant_Runoff_Voting" %> is an electoral system in which voters rank candidates in order of preference. In an IRV election, if no candidate receives an overall majority of first preferences the candidates with fewest votes are eliminated one by one, and their votes transferred according to their second and third preferences (and so on), until one candidate achieves a majority.

Instant-runoff voting (IRV) is also known as the Alternative Vote (AV) and by several other names.

Voters <%= link_to "[Stalk Voters]", :controller => "quickvote", :action => "mapvoters", :id => @election.id %>

<% for voter in @election.voters %> <% next unless voter.voted? %> <% end %>
IP/Host Origin Vote
<% begin %> <% raise ArgumentError.new, "Local Server" if voter.ipaddress == "127.0.0.1" %> <% raise ArgumentError.new, "XML-RPC Voter" if voter.ipaddress == "XMLRPC Request" %> <% w= Whois::Whois.new(IPAddr.new(voter.ipaddress).to_s,true)%> <%=(w.host == nil or w.host.empty?) ? voter.ipaddress : w.host%> <%w.search_whois%> <%= (w.all.grep(/^(OrgName|org-name)/)[0] or "").sub(/^(OrgName|org-name)\:/,'').strip -%> - <%= (w.all.grep(/^(NetName|netname)/)[0] or "").sub(/^(NetName|netname)\:/,'').strip %> <% rescue ArgumentError => err %> <%= err %> <%= err%> <% end %> <%= voter.vote.votestring %>
<%= render :partial => 'victories_ties' %> <%= render :partial => 'pref_table' %> <%= image_tag( graph_url( :action => 'votes_per_day', :id => @election ) ) %>
<%= image_tag( graph_url( :action => 'votes_per_interval', :id => @election ))%>
<%= image_tag( graph_url( :action => 'borda_bar', :id => @election ) ) %>
<%= image_tag( graph_url( :action => 'choices_positions', :id => @election ) ) %>