Merge pull request #4993 from luisramos0/move_ent_fees

Change engine routes to better work with specs in rails 4
This commit is contained in:
Luis Ramos
2020-04-28 11:48:41 +01:00
committed by GitHub
16 changed files with 99 additions and 99 deletions

View File

@@ -1,66 +0,0 @@
module Spree
module Admin
module Reports
class EnterpriseFeeSummariesController < BaseController
before_filter :load_report_parameters
before_filter :load_permissions
def new; end
def create
return respond_to_invalid_parameters unless @report_parameters.valid?
@report_parameters.authorize!(@permissions)
@report = report_klass::ReportService.new(@permissions, @report_parameters)
renderer.render(self)
rescue ::Reports::Authorizer::ParameterNotAllowedError => e
flash[:error] = e.message
render_report_form
end
private
def respond_to_invalid_parameters
flash[:error] = I18n.t("invalid_filter_parameters", scope: i18n_scope)
render_report_form
end
def i18n_scope
"order_management.reports.enterprise_fee_summary"
end
def render_report_form
render action: :new
end
def report_klass
OrderManagement::Reports::EnterpriseFeeSummary
end
def load_report_parameters
@report_parameters = report_klass::Parameters.new(params[:report] || {})
end
def load_permissions
@permissions = report_klass::Permissions.new(spree_current_user)
end
def report_renderer_klass
case params[:report_format]
when "csv"
report_klass::Renderers::CsvRenderer
when nil, "", "html"
report_klass::Renderers::HtmlRenderer
else
raise Reports::UnsupportedReportFormatException
end
end
def renderer
@renderer ||= report_renderer_klass.new(@report)
end
end
end
end
end

View File

@@ -298,11 +298,20 @@ module Spree
end
def url_for_report(report)
public_send("#{report}_admin_reports_url".to_sym)
if report_in_order_management_engine?(report)
main_app.public_send("new_order_management_reports_#{report}_url".to_sym)
else
public_send("#{report}_admin_reports_url".to_sym)
end
rescue NoMethodError
url_for([:new, :admin, :reports, report.to_s.singularize])
end
# List of reports that have been moved to the Order Management engine
def report_in_order_management_engine?(report)
report == :enterprise_fee_summary
end
def timestamp
Time.zone.now.strftime("%Y%m%d")
end

View File

@@ -2830,6 +2830,14 @@ See the %{link} to find out more about %{sitename}'s features and to start using
order_management:
reports:
enterprise_fee_summaries:
filters:
date_range: "Date Range"
report_format_csv: "Download as CSV"
generate_report: "Generate Report"
report:
none: "None"
select_and_search: "Select filters and click on GENERATE REPORT to access your data."
enterprise_fee_summary:
date_end_before_start_error: "must be after start"
parameter_not_allowed_error: "You are not authorized to use one or more selected filters for this report."
@@ -3335,14 +3343,6 @@ See the %{link} to find out more about %{sitename}'s features and to start using
bulk_coop_allocation: 'Bulk Co-op - Allocation'
bulk_coop_packing_sheets: 'Bulk Co-op - Packing Sheets'
bulk_coop_customer_payments: 'Bulk Co-op - Customer Payments'
enterprise_fee_summaries:
filters:
date_range: "Date Range"
report_format_csv: "Download as CSV"
generate_report: "Generate Report"
report:
none: "None"
select_and_search: "Select filters and click on GENERATE REPORT to access your data."
users:
index:
listing_users: "Listing Users"

View File

@@ -89,11 +89,6 @@ Openfoodnetwork::Application.routes.draw do
get 'sitemap.xml', to: 'sitemap#index', defaults: { format: 'xml' }
# Mount engine routes
mount Web::Engine, :at => '/'
mount Catalog::Engine, :at => '/'
mount OrderManagement::Engine, :at => '/'
# Mount Spree's routes
mount Spree::Core::Engine, :at => '/'
end

View File

@@ -1,2 +1,2 @@
Catalog::Engine.routes.draw do
Openfoodnetwork::Application.routes.prepend do
end

View File

@@ -0,0 +1,64 @@
module OrderManagement
module Reports
class EnterpriseFeeSummariesController < Spree::Admin::BaseController
before_filter :load_report_parameters
before_filter :load_permissions
def new; end
def create
return respond_to_invalid_parameters unless @report_parameters.valid?
@report_parameters.authorize!(@permissions)
@report = report_klass::ReportService.new(@permissions, @report_parameters)
renderer.render(self)
rescue ::Reports::Authorizer::ParameterNotAllowedError => e
flash[:error] = e.message
render_report_form
end
private
def respond_to_invalid_parameters
flash[:error] = I18n.t("invalid_filter_parameters", scope: i18n_scope)
render_report_form
end
def i18n_scope
"order_management.reports.enterprise_fee_summary"
end
def render_report_form
render action: :new
end
def report_klass
OrderManagement::Reports::EnterpriseFeeSummary
end
def load_report_parameters
@report_parameters = report_klass::Parameters.new(params[:report] || {})
end
def load_permissions
@permissions = report_klass::Permissions.new(spree_current_user)
end
def report_renderer_klass
case params[:report_format]
when "csv"
report_klass::Renderers::CsvRenderer
when nil, "", "html"
report_klass::Renderers::HtmlRenderer
else
raise Reports::UnsupportedReportFormatException
end
end
def renderer
@renderer ||= report_renderer_klass.new(@report)
end
end
end
end

View File

@@ -1,4 +1,4 @@
= form_for @report_parameters, as: :report, url: spree.admin_reports_enterprise_fee_summary_path, method: :post do |f|
= form_for @report_parameters, as: :report, url: main_app.order_management_reports_enterprise_fee_summary_path, method: :post do |f|
.row.date-range-filter
.sixteen.columns.alpha
= label_tag nil, t(".date_range")

View File

@@ -13,7 +13,7 @@
- if @renderer.data_rows.empty?
%tr
%td{colspan: @renderer.header.length}= t(:none)
%td{colspan: @renderer.header.length}= t('.none')
- else
%p.report__message
= t(".select_and_search")

View File

@@ -1,5 +1,5 @@
Spree::Core::Engine.routes.prepend do
namespace :admin do
Openfoodnetwork::Application.routes.prepend do
namespace :order_management do
namespace :reports do
resource :enterprise_fee_summary, only: [:new, :create]
end

View File

@@ -1,6 +1,6 @@
require "spec_helper"
describe Spree::Admin::Reports::EnterpriseFeeSummariesController, type: :controller do
describe OrderManagement::Reports::EnterpriseFeeSummariesController, type: :controller do
let(:report_klass) { OrderManagement::Reports::EnterpriseFeeSummary }
let!(:distributor) { create(:distributor_enterprise) }
@@ -76,6 +76,6 @@ describe Spree::Admin::Reports::EnterpriseFeeSummariesController, type: :control
end
def new_template_path
"spree/admin/reports/enterprise_fee_summaries/new"
"order_management/reports/enterprise_fee_summaries/new"
end
end

View File

@@ -41,7 +41,7 @@ feature "enterprise fee summaries", js: true do
it "does not allow access to the report" do
visit spree.admin_reports_path
expect(page).to have_no_link(I18n.t("admin.reports.enterprise_fee_summary.name"))
visit spree.new_admin_reports_enterprise_fee_summary_path
visit main_app.new_order_management_reports_enterprise_fee_summary_path
expect(page).to have_content(I18n.t("unauthorized"))
end
end
@@ -49,7 +49,7 @@ feature "enterprise fee summaries", js: true do
describe "smoke test for filters" do
before do
visit spree.new_admin_reports_enterprise_fee_summary_path
visit main_app.new_order_management_reports_enterprise_fee_summary_path
end
context "when logged in as admin" do
@@ -80,7 +80,7 @@ feature "enterprise fee summaries", js: true do
describe "smoke test for generation of report based on permissions" do
before do
visit spree.new_admin_reports_enterprise_fee_summary_path
visit main_app.new_order_management_reports_enterprise_fee_summary_path
end
context "when logged in as admin" do
@@ -138,7 +138,7 @@ feature "enterprise fee summaries", js: true do
let(:current_user) { create(:admin_user) }
before do
visit spree.new_admin_reports_enterprise_fee_summary_path
visit main_app.new_order_management_reports_enterprise_fee_summary_path
end
it "generates file with data for selected order cycle" do
@@ -155,6 +155,6 @@ feature "enterprise fee summaries", js: true do
end
def i18n_scope
"spree.admin.reports.enterprise_fee_summaries"
"order_management.reports.enterprise_fee_summaries"
end
end

View File

@@ -5,7 +5,7 @@ describe OrderManagement::Reports::EnterpriseFeeSummary::Renderers::HtmlRenderer
let!(:permissions) { report_klass::Permissions.new(current_user) }
let!(:parameters) { report_klass::Parameters.new }
let!(:controller) { Spree::Admin::Reports::EnterpriseFeeSummariesController.new }
let!(:controller) { OrderManagement::Reports::EnterpriseFeeSummariesController.new }
let!(:service) { report_klass::ReportService.new(permissions, parameters) }
let!(:renderer) { described_class.new(service) }

View File

@@ -1,9 +1,7 @@
Web::Engine.routes.draw do
namespace :api do
scope '/cookies' do
resource :consent, only: [:show, :create, :destroy], controller: "cookies_consent"
end
Openfoodnetwork::Application.routes.prepend do
scope '/api/cookies' do
resource :consent, only: [:show, :create, :destroy], controller: "web/api/cookies_consent"
end
get "/angular-templates/:id", to: "angular_templates#show", constraints: { name: %r{[\/\w\.]+} }
get "/angular-templates/:id", to: "web/angular_templates#show", constraints: { name: %r{[\/\w\.]+} }
end