Sha256: a9b3ca30db966c326838e8f6eab17da695f0ecd791604fa24f4c25097b6b9c41
Contents?: true
Size: 1.74 KB
Versions: 2
Compression:
Stored size: 1.74 KB
Contents
class OrdersController < Admin::BaseController before_filter :login_required, :except => [:create, :edit, :update] before_filter :load_object, :only => [:checkout] layout 'application' helper :products resource_controller create.after do # add the specified product to the order @order.add_variant(Variant.find(params[:id])) @order.save end # override the default r_c behavior (remove flash - redirect to edit details instead of show) create do flash nil wants.html {redirect_to edit_order_url(@order)} end # override the default r_c behavior (r_c doesn't realize we're in a multi step process here) edit.before {@order.edit!} def checkout if @order.state == "in_progress" @order.update_attribute :user, current_user @order.update_attribute :ip_address, request.env['REMOTE_ADDR'] @order.next! end if object.checkout_complete # remove the order from the session session[:order_id] = nil redirect_to object_url and return else # note: controllers participating in checkout process are responsible for calling Order#next! next_url = self.send("new_order_#{object.state}_url", @order) redirect_to next_url end end # override the default r_c flash behavior update.flash nil update.response do |wants| wants.html {redirect_to edit_order_url(object)} end destroy do flash nil wants.html {redirect_to new_order_url} end private def build_object find_order end def object if params[:id] begin @order = Order.find params[:id] rescue ActiveRecord::RecordNotFound @order = find_order ensure return @order end end find_order end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spree-0.4.1 | app/controllers/orders_controller.rb |
spree-0.4.0 | app/controllers/orders_controller.rb |