avatar

32

add some stats methods

by chrisk, 19 Jun, 2007 07:35 PM
19 32  
11 class Activity < ActiveRecord::Base
22   has_many :exercises, :order => 'created_at desc', :dependent => :destroy
3   
4   def total_weight_from_previous_day
5     prev = self.previous_active_date
6     sets = exercises.find(:all, :conditions => ["created_at >= ? AND created_at <= ?", prev.beginning_of_day, prev.end_of_day])
7     sets.collect(&:total_weight).sum
8   end
9   
10   def last_active_date
11     exercises.find(:first).created_at.to_date
12   end
13   
14   def previous_active_date
15     previous_date = exercises.find(:first, :conditions => ["created_at < ?", last_active_date.beginning_of_day]).created_at.to_date
16   end
317 end
30 32  
88     <% if cur_activity != exercise.activity.name %>
99       <tr><td colspan="4" style="padding-top: 1em">
1010         <strong><%= link_to((cur_activity = exercise.activity.name), activity_path(exercise.activity)) %></strong>
11         <small>(<%= exercise.activity.previous_active_date.to_s(:short) %>: <%= exercise.activity.total_weight_from_previous_day %> lbs.)</small>
1112       </td></tr>
1213     <% end %>
1314