mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-07 03:01:33 +00:00
WIP: BOM Refactor, adding for_line_items action to enterprises controller
This commit is contained in:
@@ -25,9 +25,7 @@ module Admin
|
||||
def index
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.json do
|
||||
render json: @collection, each_serializer: Api::Admin::IndexEnterpriseSerializer, spree_current_user: spree_current_user
|
||||
end
|
||||
format.json { render_as_json @collection, ams_prefix: params[:ams_prefix], spree_current_user: spree_current_user }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -35,7 +33,6 @@ module Admin
|
||||
render layout: "spree/layouts/bare_admin"
|
||||
end
|
||||
|
||||
|
||||
def update
|
||||
invoke_callbacks(:update, :before)
|
||||
if @object.update_attributes(params[object_name])
|
||||
@@ -44,7 +41,7 @@ module Admin
|
||||
respond_with(@object) do |format|
|
||||
format.html { redirect_to location_after_save }
|
||||
format.js { render :layout => false }
|
||||
format.json { render json: @object, serializer: Api::Admin::IndexEnterpriseSerializer, spree_current_user: spree_current_user }
|
||||
format.json { render json: @object, ams_prefix: 'index', spree_current_user: spree_current_user }
|
||||
end
|
||||
else
|
||||
invoke_callbacks(:update, :fails)
|
||||
@@ -99,9 +96,15 @@ module Admin
|
||||
def for_order_cycle
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
render json: ActiveModel::ArraySerializer.new( @collection,
|
||||
each_serializer: Api::Admin::ForOrderCycle::EnterpriseSerializer, spree_current_user: spree_current_user
|
||||
).to_json
|
||||
render json: @collection, each_serializer: Api::Admin::ForOrderCycle::EnterpriseSerializer, spree_current_user: spree_current_user
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def for_line_items
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
render_as_json @collection, ams_prefix: 'basic', spree_current_user: spree_current_user
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -145,10 +148,12 @@ module Admin
|
||||
editable_enterprises.
|
||||
order('is_primary_producer ASC, name')
|
||||
elsif json_request?
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).editable_enterprises
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).editable_enterprises.ransack(params[:q]).result
|
||||
else
|
||||
Enterprise.where("1=0") unless json_request?
|
||||
Enterprise.where("1=0")
|
||||
end
|
||||
when :for_line_items
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).visible_enterprises.ransack(params[:q]).result
|
||||
else
|
||||
# TODO was ordered with is_distributor DESC as well, not sure why or how we want to sort this now
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).
|
||||
@@ -158,7 +163,7 @@ module Admin
|
||||
end
|
||||
|
||||
def collection_actions
|
||||
[:index, :for_order_cycle, :bulk_update]
|
||||
[:index, :for_order_cycle, :for_line_items, :bulk_update]
|
||||
end
|
||||
|
||||
def load_methods_and_fees
|
||||
@@ -248,5 +253,9 @@ module Admin
|
||||
main_app.edit_admin_enterprise_path(@enterprise)
|
||||
end
|
||||
end
|
||||
|
||||
def ams_prefix_whitelist
|
||||
[:index, :basic]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -12,12 +12,6 @@ module Api
|
||||
render params[:template] || :bulk_index
|
||||
end
|
||||
|
||||
def accessible
|
||||
permitted = OpenFoodNetwork::Permissions.new(current_api_user).order_cycle_enterprises
|
||||
@enterprises = permitted.ransack(params[:q]).result
|
||||
render params[:template] || :bulk_index
|
||||
end
|
||||
|
||||
def create
|
||||
authorize! :create, Enterprise
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ Spree::Admin::BaseController.class_eval do
|
||||
end
|
||||
|
||||
def serializer(ams_prefix)
|
||||
if ams_prefix_whitelist.include?(ams_prefix) || ams_prefix.nil?
|
||||
if ams_prefix.nil? || ams_prefix_whitelist.include?(ams_prefix.to_sym)
|
||||
prefix = ams_prefix.andand.classify || ""
|
||||
name = controller_name.classify
|
||||
"Api::Admin::#{prefix}#{name}Serializer".constantize
|
||||
|
||||
Reference in New Issue
Block a user