mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-15 23:57:48 +00:00
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:
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
Catalog::Engine.routes.draw do
|
||||
Openfoodnetwork::Application.routes.prepend do
|
||||
end
|
||||
|
||||
@@ -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
|
||||
@@ -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")
|
||||
@@ -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")
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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) }
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user