<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>web/vendor/plugins/to_csv/MIT-LICENSE</filename>
    </added>
    <added>
      <filename>web/vendor/plugins/to_csv/README.rdoc</filename>
    </added>
    <added>
      <filename>web/vendor/plugins/to_csv/init.rb</filename>
    </added>
    <added>
      <filename>web/vendor/plugins/to_csv/lib/to_csv.rb</filename>
    </added>
    <added>
      <filename>web/vendor/plugins/to_csv/test/to_csv_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -109,6 +109,14 @@ class CooksController &lt; ApplicationController
     end
   end
 
+  def events
+    @events = @cook.events
+    
+    respond_to do |format|
+      format.csv { send_data @events.to_csv(:timestamps =&gt; true, :only =&gt; [:created_at, :name, :alarm, :temp], :methods =&gt; [:name]) }
+    end
+  end
+
   private
   
   def find_cook</diff>
      <filename>web/app/controllers/cooks_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ class Adjustment &lt; ActiveRecord::Base
   def differences
     differences = {}
 
-    last_adjustment = self.sensor.adjustments.find(:first, :conditions =&gt; [&quot;created_at &lt; ?&quot;, self.created_at], :order =&gt; &quot;created_at DESC&quot;)
+    last_adjustment = self.sensor.adjustments.find(:first, :conditions =&gt; [&quot;cook_id = ? AND created_at &lt; ?&quot;, self.cook_id, self.created_at], :order =&gt; &quot;created_at DESC&quot;)
     
     [:target, :alarm, :low, :high, :blower].each do |setting|
       if last_adjustment</diff>
      <filename>web/app/models/adjustment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ class Cook &lt; ActiveRecord::Base
   has_many :adjustments
 
   validates_presence_of :stoker_id, :name, :start_time
-  before_create :add_initial_adjustments
+  after_create :add_initial_adjustments
   
   def self.active
     find(:all, :conditions =&gt; [&quot;start_time &lt;= ? AND (end_time &gt;= ? OR end_time IS NULL)&quot;, Time.now, Time.now])
@@ -39,6 +39,20 @@ class Cook &lt; ActiveRecord::Base
       []
     end
   end
+
+  def events
+    # FIXME: need a better way to associate specific sensors to a cook...
+    # Event.find(:all,
+    #   :conditions =&gt; [&quot;stoker_id = ? AND sensor_id IN (?) AND (created_at &gt;= ? AND created_at &lt;= ?)&quot;, 
+    #     self.stoker_id, self.sensors.collect{|s| s.id}, self.start_time, (self.end_time || Time.now)], 
+    #   :order =&gt; &quot;created_at&quot;
+    # )
+    Event.find(:all,
+      :conditions =&gt; [&quot;created_at &gt;= ? AND created_at &lt;= ?&quot;, 
+        self.start_time, (self.end_time || Time.now)], 
+      :order =&gt; &quot;created_at&quot;
+    )
+  end
   
   private
   
@@ -46,7 +60,6 @@ class Cook &lt; ActiveRecord::Base
     Stoker.no_update do
       Cook.transaction do
         begin
-          puts &quot;--------------&gt; #{self.sensors.size}&quot;
           self.sensors.each do |sensor|
             adjustment = self.adjustments.build(
               :sensor_id  =&gt; sensor.id,</diff>
      <filename>web/app/models/cook.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,5 +3,9 @@ class Event &lt; ActiveRecord::Base
   belongs_to :sensor
   
   validates_presence_of :stoker_id, :sensor_id, :temp
-  validates_inclusion_of :alarm, :in =&gt; Sensor::ALARMS  
+  validates_inclusion_of :alarm, :in =&gt; Sensor::ALARMS
+  
+  def name
+    sensor.name
+  end
 end</diff>
      <filename>web/app/models/event.rb</filename>
    </modified>
    <modified>
      <diff>@@ -57,3 +57,7 @@
 &lt;p&gt;
   &lt;%= simple_format(@cook.description) %&gt;
 &lt;/p&gt;
+
+&lt;p&gt;
+  &lt;%= link_to &quot;Export to CSV&quot;, formatted_events_cook_url(@cook, :csv) %&gt;
+&lt;/p&gt;</diff>
      <filename>web/app/views/cooks/show.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 ActionController::Routing::Routes.draw do |map|
   map.resource :page, :member =&gt; {:about =&gt; :get}
 
-  map.resources :cooks, :member =&gt; {:stop =&gt; :put} do |cooks|
+  map.resources :cooks, :member =&gt; {:stop =&gt; :put, :events =&gt; :get} do |cooks|
     cooks.resources :adjustments
   end
 </diff>
      <filename>web/config/routes.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e036d5df2b3d9b88bec26e6e7eb162296c3ecbcf</id>
    </parent>
  </parents>
  <author>
    <name>Tony Buser</name>
    <email>tbuser@gmail.com</email>
  </author>
  <url>http://github.com/tbuser/stoker/commit/29040d8e8ea86abf08b8f153bf4ea22f1aae9205</url>
  <id>29040d8e8ea86abf08b8f153bf4ea22f1aae9205</id>
  <committed-date>2008-07-08T12:46:26-07:00</committed-date>
  <authored-date>2008-07-08T12:46:26-07:00</authored-date>
  <message>added csv download of cook events that can then be loaded into excel</message>
  <tree>72ea464b84acabedbcc25e7e904f315f7724b63c</tree>
  <committer>
    <name>Tony Buser</name>
    <email>tbuser@gmail.com</email>
  </committer>
</commit>
