mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-21 00:47:26 +00:00
47 lines
1.4 KiB
Ruby
47 lines
1.4 KiB
Ruby
module Spree
|
|
module Admin
|
|
class ShippingMethodsController < ResourceController
|
|
before_filter :load_data, except: [:index]
|
|
before_filter :set_shipping_category, only: [:create, :update]
|
|
before_filter :set_zones, only: [:create, :update]
|
|
|
|
def destroy
|
|
@object.touch :deleted_at
|
|
|
|
flash[:success] = flash_message_for(@object, :successfully_removed)
|
|
|
|
respond_with(@object) do |format|
|
|
format.html { redirect_to collection_url }
|
|
format.js { render_js_for_destroy }
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_shipping_category
|
|
return true if params["shipping_method"][:shipping_categories] == ""
|
|
@shipping_method.shipping_categories =
|
|
Spree::ShippingCategory.where(id: params["shipping_method"][:shipping_categories])
|
|
@shipping_method.save
|
|
params[:shipping_method].delete(:shipping_categories)
|
|
end
|
|
|
|
def set_zones
|
|
return true if params["shipping_method"][:zones] == ""
|
|
@shipping_method.zones = Spree::Zone.where(id: params["shipping_method"][:zones])
|
|
@shipping_method.save
|
|
params[:shipping_method].delete(:zones)
|
|
end
|
|
|
|
def location_after_save
|
|
edit_admin_shipping_method_path(@shipping_method)
|
|
end
|
|
|
|
def load_data
|
|
@available_zones = Zone.order(:name)
|
|
@calculators = ShippingMethod.calculators.sort_by(&:name)
|
|
end
|
|
end
|
|
end
|
|
end
|