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