mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-11 03:40:20 +00:00
Separate showing and rendering report
This commit is contained in:
@@ -6,7 +6,7 @@ module Admin
|
|||||||
include ReportsActions
|
include ReportsActions
|
||||||
helper ReportsHelper
|
helper ReportsHelper
|
||||||
|
|
||||||
before_action :authorize_report, only: [:show]
|
before_action :authorize_report, only: [:show, :create]
|
||||||
|
|
||||||
# Define model class for Can? permissions
|
# Define model class for Can? permissions
|
||||||
def model_class
|
def model_class
|
||||||
@@ -20,14 +20,17 @@ module Admin
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@report = report_class.new(spree_current_user, params, render: render_data?)
|
@report = report_class.new(spree_current_user, params, render: false)
|
||||||
@rendering_options = rendering_options # also stores user preferences
|
@rendering_options = rendering_options # also stores user preferences
|
||||||
|
|
||||||
if render_data?
|
show_report
|
||||||
render_in_background
|
end
|
||||||
else
|
|
||||||
show_report
|
def create
|
||||||
end
|
@report = report_class.new(spree_current_user, params, render: true)
|
||||||
|
@rendering_options = rendering_options # also stores user preferences
|
||||||
|
|
||||||
|
render_in_background
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@@ -54,10 +57,6 @@ module Admin
|
|||||||
@variant_serialized = Api::Admin::VariantSerializer.new(variant)
|
@variant_serialized = Api::Admin::VariantSerializer.new(variant)
|
||||||
end
|
end
|
||||||
|
|
||||||
def render_data?
|
|
||||||
request.post?
|
|
||||||
end
|
|
||||||
|
|
||||||
def render_in_background
|
def render_in_background
|
||||||
cable_ready[ScopedChannel.for_id(params[:uuid])]
|
cable_ready[ScopedChannel.for_id(params[:uuid])]
|
||||||
.inner_html(
|
.inner_html(
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ module Spree
|
|||||||
|
|
||||||
# Reports page
|
# Reports page
|
||||||
can [:admin, :index, :show], ::Admin::ReportsController
|
can [:admin, :index, :show], ::Admin::ReportsController
|
||||||
can [:admin, :show, :customers, :orders_and_distributors, :group_buys, :payments,
|
can [:admin, :show, :create, :customers, :orders_and_distributors, :group_buys, :payments,
|
||||||
:orders_and_fulfillment, :products_and_inventory, :order_cycle_management,
|
:orders_and_fulfillment, :products_and_inventory, :order_cycle_management,
|
||||||
:packing, :enterprise_fee_summary, :bulk_coop], :report
|
:packing, :enterprise_fee_summary, :bulk_coop], :report
|
||||||
end
|
end
|
||||||
@@ -324,7 +324,7 @@ module Spree
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Reports page
|
# Reports page
|
||||||
can [:admin, :index, :show], ::Admin::ReportsController
|
can [:admin, :index, :show, :create], ::Admin::ReportsController
|
||||||
can [:admin, :customers, :group_buys, :sales_tax, :payments,
|
can [:admin, :customers, :group_buys, :sales_tax, :payments,
|
||||||
:orders_and_distributors, :orders_and_fulfillment, :products_and_inventory,
|
:orders_and_distributors, :orders_and_fulfillment, :products_and_inventory,
|
||||||
:order_cycle_management, :xero_invoices, :enterprise_fee_summary, :bulk_coop], :report
|
:order_cycle_management, :xero_invoices, :enterprise_fee_summary, :bulk_coop], :report
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ Openfoodnetwork::Application.routes.draw do
|
|||||||
end
|
end
|
||||||
|
|
||||||
get '/reports', to: 'reports#index', as: :reports
|
get '/reports', to: 'reports#index', as: :reports
|
||||||
match '/reports/:report_type(/:report_subtype)', to: 'reports#show', via: [:get, :post], as: :report
|
match '/reports/:report_type(/:report_subtype)', to: 'reports#show', via: :get, as: :report
|
||||||
|
match '/reports/:report_type(/:report_subtype)', to: 'reports#create', via: :post
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ RSpec.describe Admin::ReportsController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "triggers the delivery report" do
|
it "triggers the delivery report" do
|
||||||
spree_post :show, {
|
spree_post :create, {
|
||||||
q: { completed_at_lt: 1.day.ago },
|
q: { completed_at_lt: 1.day.ago },
|
||||||
shipping_method_in: ["123"], # We just need to search for shipping methods
|
shipping_method_in: ["123"], # We just need to search for shipping methods
|
||||||
report_type: :order_cycle_management,
|
report_type: :order_cycle_management,
|
||||||
|
|||||||
Reference in New Issue
Block a user