app/models/event.rb in artfully_ose-1.2.0.pre.15 vs app/models/event.rb in artfully_ose-1.2.0.pre.16

- old
+ new

@@ -70,18 +70,24 @@ def single_show? shows.length == 1 end - def self.for_storefront(organization, member = nil) - event_rel = Event.joins(:shows).where(:organization_id => organization.id).where('shows.datetime > ?', DateTime.now).group(:event_id).public + # + # The list of events do be deplayed on their event index + # + def self.for_event_storefront(organization, member = nil) + event_rel = organization.events.joins(:shows).where('shows.datetime > ?', DateTime.now).group(:event_id).public event_rel = event_rel.where(:members_only => false) if member.nil? event_rel.all end + # + # Find a single event for the single event storefront view + # def self.storefront_find(id, member = nil) - event_rel = Event.includes(:venue, :shows => [:chart => [:sections => :ticket_types]]) + event_rel = Event.includes(:venue) event_rel = event_rel.where(:members_only => false) if member.nil? event_rel.find(id) end def destroyable? @@ -113,16 +119,21 @@ def default_chart charts.first end + def upcoming_shows_rel + shows.includes(:event => :venue).where('shows.datetime > ?', (DateTime.now - 1.hours)) + end + # # You'll almost always want upcoming_public_shows instead # def upcoming_shows(limit = 5) - @upcoming ||= shows.includes(:event => :venue).select { |show| show.datetime_local_to_event > (DateTime.now - 1.hours) } - return @upcoming if limit == :all - @upcoming.take(limit) + shows_rel = upcoming_shows_rel + shows_rel = upcoming_shows_rel.limit(limit) unless limit == :all + @upcoming ||= shows_rel.all + @upcoming end def played_shows(limit = 5) played = shows.select { |show| show.datetime_local_to_event < (DateTime.now - 1.hours) } return played if limit == :all