diff --git a/app/models/poll/stats.rb b/app/models/poll/stats.rb
index cc4e5318d..191139d5a 100644
--- a/app/models/poll/stats.rb
+++ b/app/models/poll/stats.rb
@@ -2,22 +2,26 @@ class Poll::Stats
include Statisticable
alias_method :poll, :resource
+ CHANNELS = %i[web booth mail]
+
def self.stats_methods
super +
%i[total_valid_votes total_white_votes total_null_votes
total_participants_web total_web_valid total_web_white total_web_null
total_participants_booth total_booth_valid total_booth_white total_booth_null
+ total_participants_mail total_mail_valid total_mail_white total_mail_null
total_participants_web_percentage total_participants_booth_percentage
- valid_percentage_web valid_percentage_booth total_valid_percentage
- white_percentage_web white_percentage_booth total_white_percentage
- null_percentage_web null_percentage_booth total_null_percentage]
+ total_participants_mail_percentage
+ valid_percentage_web valid_percentage_booth valid_percentage_mail total_valid_percentage
+ white_percentage_web white_percentage_booth white_percentage_mail total_white_percentage
+ null_percentage_web null_percentage_booth null_percentage_mail total_null_percentage]
end
def total_participants
total_participants_web + total_participants_booth
end
- %i[web booth].each do |channel|
+ CHANNELS.each do |channel|
define_method :"total_participants_#{channel}" do
send(:"total_#{channel}_valid") +
send(:"total_#{channel}_white") +
@@ -53,8 +57,20 @@ class Poll::Stats
recounts.sum(:null_amount)
end
+ def total_mail_valid
+ 0 # TODO
+ end
+
+ def total_mail_white
+ 0 # TODO
+ end
+
+ def total_mail_null
+ 0 # TODO
+ end
+
%i[valid white null].each do |type|
- %i[web booth].each do |channel|
+ CHANNELS.each do |channel|
define_method :"#{type}_percentage_#{channel}" do
calculate_percentage(send(:"total_#{channel}_#{type}"), send(:"total_#{type}_votes"))
end
diff --git a/app/views/polls/stats.html.erb b/app/views/polls/stats.html.erb
index db9dfd83d..a97e5ec43 100644
--- a/app/views/polls/stats.html.erb
+++ b/app/views/polls/stats.html.erb
@@ -30,51 +30,53 @@
<%= t("polls.show.stats.votes") %>
- <%= t("polls.show.stats.web") %>
- <%= t("polls.show.stats.booth") %>
+ <% Poll::Stats::CHANNELS.each do |channel| %>
+ <%= t("polls.show.stats.#{channel}") %>
+ <% end %>
<%= t("polls.show.stats.total") %>