Class: CalendarController
- Inherits:
-
KitController
- Object
- ActionController::Base
- KitController
- CalendarController
- Defined in:
- app/controllers/calendar_controller.rb
Constant Summary
Constants inherited from KitController
Instance Attribute Summary
Attributes inherited from KitController
#is_image_request, #kit_request, #layout_being_used, #requested_url, #template_being_used
Instance Method Summary collapse
- #buy_tickets ⇒ Object
-
#sell_tickets_setup ⇒ Object
to handle ticket sales, the item model should include: alter table calendar_entries add sell_tickets tinyint default 0, add tickets_remaining integer default 0, add ticket_price float, add ticket_label varchar(200); it must also have a ‘name’ field.
- #sold_as_csv ⇒ Object
- #update_entry ⇒ Object
Methods inherited from KitController
#anti_spam_okay?, #app_name, #can_moderate, #can_use, #captcha_okay?, #check_and_record_goal, #check_user, #csv_headers, #dif, #edit_page_path, #feature?, #get_asset, #get_view_content, #host_name, #index_name, #info_page_path, #kit_layout_in_use, #kit_render, #kit_session, #kit_session_end, #link_to, #mailchimp_connect, #mobile_template, #no_read, #no_write, #not_found, #not_found_404, #offline, #page_path, #pref, #rails_app_name, #render, #render_error, #render_page, #render_page_by_url, #routing_error, #sanity_check_okay?, #session_id, #set_requested_url, #show_form, #stylesheets, #super_render, #user_sees_menu?
Instance Method Details
#buy_tickets ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/controllers/calendar_controller.rb', line 27 def buy_tickets redirect_to "/" and return unless ["CalendarEntry"].include?(params[:item_model]) @item = Kernel.const_get(params[:item_model]).find(params[:item_id]) redirect_to "/" and return unless @item @item.tickets_remaining = @item.tickets_remaining - params[:quantity].to_i ts = TicketSale.new ts.firstname = params[:firstname] ts.lastname = params[:lastname] ts.email = params[:email] ts.unit_price = @item.ticket_price ts.tax_rate = @item.tax_rate ts.user_id = current_user.id if current_user ts.quantity = params[:quantity] ts.telephone = params[:telephone] @item.ticket_sales << ts @item.save redirect_to "#{params[:after_url]}?sale_id=#{ts.id}" end |
#sell_tickets_setup ⇒ Object
to handle ticket sales, the item model should include: alter table calendar_entries add sell_tickets tinyint default 0, add tickets_remaining integer default 0, add ticket_price float, add ticket_label varchar(200); it must also have a ‘name’ field
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/controllers/calendar_controller.rb', line 9 def sell_tickets_setup redirect_to "/" unless ["CalendarEntry"].include?(params[:item_model]) item = Kernel.const_get(params[:item_model]).find(params[:item_id]) redirect_to "/" unless item item.sell_tickets = 1 if current_user.admin? item.tickets_remaining = params[:quantity] item.ticket_price = params[:price] item.tax_rate = params[:tax_rate] item.seller_id = item.user_id item.save unless current_user.admin? Notification.moderation_required("Ticket Sales", "Ticket sales set up for #{item.calendar.name}. View: #{Preference.get_cached(_sid, 'host')}/admin/calendar_entries/#{item.id}", _sid).deliver if params[:item_model]=="CalendarEntry" end redirect_to (params[:redirect] || "/") and return end |
#sold_as_csv ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'app/controllers/calendar_controller.rb', line 48 def sold_as_csv redirect_to "/" and return unless ["CalendarEntry"].include?(params[:item_model]) item = Kernel.const_get(params[:item_model]).find(params[:item_id]) redirect_to "/" and return unless item csv_headers("sold.csv") csv_string = CSV.generate do |csv| csv << ["id", "reference", "firstname", "lastname", "email", "telephone", "quantity", "price"] item.ticket_sales.each do |tick| csv << [ tick.id, tick.payment_reference, tick.firstname, tick.lastname, tick.email, tick.telephone, tick.quantity, tick.unit_price] end end render :text=>csv_string end |
#update_entry ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'app/controllers/calendar_controller.rb', line 65 def update_entry unless current_user redirect_to "/users/sign_in" return end params[:calendar_entry][:system_id] = _sid params[:calendar_entry][:location_attributes][:system_id] = _sid @calendar_entry = nil if params[:calendar_entry][:id].not_blank? if can?(:moderate, :calendar) @calendar_entry = CalendarEntry.find_sys_id(_sid, params[:calendar_entry][:id]) save_okay = @calendar_entry.update_attributes(params[:calendar_entry]) end else add_sid(:calendar_entry) @calendar_entry = CalendarEntry.new(params[:calendar_entry]) @calendar_entry.location.address3 = '' @calendar_entry.user_id = current_user.id save_okay = @calendar_entry.save end if save_okay Activity.add(_sid, "Calendar entry '#{@calendar_entry.name}' on calendar '#{@calendar_entry.calendar.name}'", current_user.id, "Calendar") if can?(:moderate, :calendar) @calendar_entry.approved_at = Time.now @calendar_entry.save else Notification.moderation_required("Calendar Entry", "New entry made to calendar #{@calendar_entry.calendar.name}. View: #{Preference.get_cached(_sid, 'host')}/admin/calendar_entries/#{@calendar_entry.id}", _sid).deliver end url = params[:success] url ||= '/system/sell-tickets' if url.include?('?') url += "&" else url += "?" end url += "id=#{@calendar_entry.id}" if @calendar_entry redirect_to url and return else url = params[:edit_url] if url =~ /^\/admin\// render "/admin/calendar_entries/edit", :layout=>"cms" else render_page_by_url(params[:edit_url]) end end end |