Functional tests now work properly, bearing in mind whether a user is logged in or...
[depot.git] / app / models / product.rb
index 4cd770b8408e024060066222912e8afdb473d4e7..4854ee5c213d4f31da3bae6e6a31466582157667 100644 (file)
@@ -1,4 +1,7 @@
 class Product < ActiveRecord::Base
+  has_many :line_items
+  has_many :orders, :through => :line_items
+
   validates_presence_of :title, :description, :image_url
   validates_numericality_of :price
   validate :price_must_be_at_least_a_penny
@@ -7,6 +10,12 @@ class Product < ActiveRecord::Base
                       :with    => %r{\.(gif|jpg|png)$}i,
                       :message => "must be a URL for GIF, JPG, or PNG image."
   
+  def self.find_products_for_sale
+    find(:all, 
+      :conditions => "date_available <= now() and (date_available_until is null or date_available_until >= now())",
+      :order => :title)
+  end
+  
 protected
   def price_must_be_at_least_a_penny
     errors.add(:price, 'should be at least 0.01') if price.nil? || price < 0.01