app/controllers/events_controller.rb in artfully_ose-1.0.0.rc4 vs app/controllers/events_controller.rb in artfully_ose-1.1.0.rc1

- old
+ new

@@ -1,18 +1,19 @@ class EventsController < ArtfullyOseController respond_to :html, :json - before_filter :find_event, :only => [ :show, :edit, :update, :destroy, :widget, :image, :storefront_link, :prices, :messages, :resell ] + before_filter :find_event, :only => [ :show, :edit, :update, :destroy, :widget, :image, :storefront_link, :prices, :messages, :resell, :wp_plugin ] before_filter :upcoming_shows, :only => :show def create @event = Event.new(params[:event]) @templates = current_organization.charts.template - @event.organization_id = current_user.current_organization.id - @event.is_free = !(current_user.current_organization.can? :access, :paid_ticketing) - @event.venue.organization_id = current_user.current_organization.id - @event.venue.time_zone = current_user.current_organization.time_zone + @event.organization_id = current_organization.id + @event.is_free = !(current_organization.can? :access, :paid_ticketing) + @event.venue.organization_id = current_organization.id + @event.venue.time_zone = current_organization.time_zone + @event.contact_email = current_organization.try(:email) || current_user.email if @event.save redirect_to edit_event_url(@event) else render :new @@ -26,13 +27,10 @@ def show authorize! :view, @event @shows = @event.shows.paginate(:page => params[:page], :per_page => 25) - @charts = current_organization.charts.template - @chart = Chart.new - respond_to do |format| format.json do render :json => @event.as_full_calendar_json end @@ -66,77 +64,82 @@ flash[:error] = @event.errors.full_messages.to_sentence unless @event.errors.empty? redirect_to event_url(@event) end - def update + def update authorize! :edit, @event - @event.update_attributes(params[:event]) - if @event.save - flash[:notice] = "Your event has been updated." - redirect_to event_url(@event) + if @event.update_attributes(params[:event]) + if user_requesting_next_step? + if user_just_uploaded_an_image? + redirect_to messages_event_path(@event) + elsif user_set_special_instructions? + redirect_to event_shows_path(@event) + else + redirect_to edit_event_venue_path(@event) + end + else + flash[:notice] = "Your event has been updated." + redirect_to event_url(@event) + end else render :edit end end def destroy authorize! :destroy, @event @event.destroy + flash[:notice] = "Your event has been deleted" redirect_to events_url end def widget end def storefront_link end + + def wp_plugin + end def prices end - - def messages + + def temp_discounts_index + find_event end - def resell - @organization = current_user.current_organization + def temp_discount_form + find_event - @ticket_offer = TicketOffer.new(params[:ticket_offer]) - @ticket_offer.reseller_profile = ResellerProfile.find_by_id(params[:reseller_profile_id]) + @discount = TempDiscount.new + @discount.promotion_type = 'two-for-one' - # Get the master list of resellers. - @reseller_profiles = ResellerProfile.joins(:organization).order("organizations.name").all - - # Grab the list of Events. - @events = @organization.events.includes(:shows) - - # Build an EventID -> Shows hash. - @shows = @events.to_h { |event| [ event.id, event.shows.unplayed.all ] } - - # Build a ShowID -> Sections hash. - @sections = @shows.values.flatten.to_h { |show| [ show.id, show.tickets.includes(:section).map(&:section).uniq ] } - - # Build a list of ticket counts per section. - @counts = {} - @shows.map do |event_id, shows| - shows.each do |show| - show. - tickets. - resellable. - select("section_id, COUNT(*) AS count"). - group("section_id"). - each do |t| - @counts[show.id] ||= {} - @counts[show.id][t.section_id] = t.count - end - end + @event.charts.collect(&:sections).flatten.each do |section| + @discount.discount_sections.new( + :section => section, + :price => section.price + ) end end + + def messages + end + def resell + @organization = current_organization + @reseller_profiles = ResellerProfile.includes(:organization).order("organizations.name").all + end + private def find_event @event = Event.find(params[:id]) + end + + def user_set_special_instructions? + !params[:event][:special_instructions_caption].nil? end def find_charts ids = params[:charts] || [] ids.collect { |id| Chart.find(id) }