]> projects.mako.cc - selectricity/blobdiff - app/controllers/graph_controller.rb
Fix rubydoc generation for the selectricity service.
[selectricity] / app / controllers / graph_controller.rb
index c72da85a6dea19732d070710ff42fb330fbc2c1a..ff29d8ecb91e742f3bcd7113a48c2db2116c36ad 100644 (file)
@@ -3,11 +3,13 @@ class GraphController < ApplicationController
   class GruffGraff
   
     def initialize(options)
   class GruffGraff
   
     def initialize(options)
-      size = "700x400"
+      size = options[:size] ? options[:size] : "400x300" #allow custom sizing
       @graph = options[:graph_type].new(size)
       @graph = options[:graph_type].new(size)
-
-      @graph.theme = { :colors => ['#000000', '#00FFFF', '#FFCC00', '#990033'],
-                       :background_colors => ['#74ce00', '#ffffff'] }
+      
+      @graph.no_data_message = "No Voters"
+      
+      @graph.theme = { :colors => ['#005CD9', '#DC0D13', '#131313', '#990033'],
+                       :background_colors => ['#74CE00', '#FFFFFF'] }
       @graph.font = File.expand_path('/usr/X11R6/lib/X11/fonts/TTF/Vera.ttf',
                                    RAILS_ROOT)
       
       @graph.font = File.expand_path('/usr/X11R6/lib/X11/fonts/TTF/Vera.ttf',
                                    RAILS_ROOT)
       
@@ -72,6 +74,7 @@ class GraphController < ApplicationController
                             :data => data,
                             :interval_labels => labels,
                             :title => "Voters Over Time",
                             :data => data,
                             :interval_labels => labels,
                             :title => "Voters Over Time",
+                            :size => "700x400",
                             :x_axis_label => scale,
                             :y_axis_label => "Number of Votes")
     send_data(*graph.output)
                             :x_axis_label => scale,
                             :y_axis_label => "Number of Votes")
     send_data(*graph.output)
@@ -121,12 +124,21 @@ class GraphController < ApplicationController
   
   def plurality_pie
     @election = Election.find(params[:id])
   
   def plurality_pie
     @election = Election.find(params[:id])
+    @election.results unless @election.plurality_result || @election.approval_result
+    votes = @election.votes.size
+    data = Hash.new
+    names = @election.names_by_id
     
     
-    
-    
-    pie = GruffGraff.new ( :graph_type => Gruff::Pie,
-                           :data =>   ,
-                           :title => "Percentage of First Plce Votes")
+    @election.plurality_result.points.each do |candidate, votes|
+      data[names[candidate]] = votes
+    end
+     
+    pie = GruffGraff.new( :graph_type => Gruff::Pie,
+                           :title => "Percentage of First Place Votes",
+                           :data => data)
+    send_data(*pie.output)
+                           
+  end
   
  private 
   def get_positions_info(election)
   
  private 
   def get_positions_info(election)

Benjamin Mako Hill || Want to submit a patch?