solidus_admin_insights 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +54 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +26 -0
  5. data/README.md +71 -0
  6. data/Rakefile +21 -0
  7. data/app/assets/javascripts/spree/backend/jquery.tablesorter.min.js +4 -0
  8. data/app/assets/javascripts/spree/backend/solidus_admin_insights.js +2 -0
  9. data/app/assets/javascripts/spree/backend/solidus_admin_insights/paginator.js +128 -0
  10. data/app/assets/javascripts/spree/backend/solidus_admin_insights/report_loader.js +265 -0
  11. data/app/assets/javascripts/spree/backend/solidus_admin_insights/searcher.js +72 -0
  12. data/app/assets/javascripts/spree/backend/solidus_admin_insights/table_sorter.js +47 -0
  13. data/app/assets/javascripts/spree/backend/tmpl.js +87 -0
  14. data/app/assets/javascripts/spree/frontend/solidus_admin_insights.js +2 -0
  15. data/app/assets/stylesheets/spree/backend/override_pdf.css +71 -0
  16. data/app/assets/stylesheets/spree/backend/solidus_admin_insights.css +132 -0
  17. data/app/assets/stylesheets/spree/frontend/solidus_admin_insights.css +4 -0
  18. data/app/controllers/spree/admin/insights_controller.rb +103 -0
  19. data/app/helpers/spree/admin/base_helper_decorator.rb +17 -0
  20. data/app/models/spree/app_configuration_decorator.rb +3 -0
  21. data/app/models/spree/product_decorator.rb +3 -0
  22. data/app/models/spree/promotion_action_decorator.rb +3 -0
  23. data/app/models/spree/return_authorization_decorator.rb +4 -0
  24. data/app/permissions/spree/permission_sets/insight_display.rb +9 -0
  25. data/app/reports/spree/best_selling_products_report.rb +42 -0
  26. data/app/reports/spree/cart_additions_report.rb +36 -0
  27. data/app/reports/spree/cart_removals_report.rb +36 -0
  28. data/app/reports/spree/cart_updations_report.rb +40 -0
  29. data/app/reports/spree/payment_method_transactions_conversion_rate_report.rb +74 -0
  30. data/app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb +39 -0
  31. data/app/reports/spree/payment_method_transactions_report.rb +60 -0
  32. data/app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb +36 -0
  33. data/app/reports/spree/product_views_report.rb +46 -0
  34. data/app/reports/spree/product_views_to_cart_additions_report.rb +53 -0
  35. data/app/reports/spree/product_views_to_purchases_report.rb +54 -0
  36. data/app/reports/spree/promotional_cost_report.rb +84 -0
  37. data/app/reports/spree/promotional_cost_report/promotional_cost_chart.rb +37 -0
  38. data/app/reports/spree/promotional_cost_report/usage_count_chart.rb +41 -0
  39. data/app/reports/spree/report.rb +131 -0
  40. data/app/reports/spree/report/chart.rb +11 -0
  41. data/app/reports/spree/report/configuration.rb +40 -0
  42. data/app/reports/spree/report/date_slicer.rb +61 -0
  43. data/app/reports/spree/report/observation.rb +49 -0
  44. data/app/reports/spree/report/query_fragments.rb +45 -0
  45. data/app/reports/spree/report/query_time_scale.rb +19 -0
  46. data/app/reports/spree/report/result.rb +100 -0
  47. data/app/reports/spree/report/timed_observation.rb +47 -0
  48. data/app/reports/spree/report/timed_result.rb +48 -0
  49. data/app/reports/spree/returned_products_report.rb +37 -0
  50. data/app/reports/spree/sales_performance_report.rb +107 -0
  51. data/app/reports/spree/sales_performance_report/profit_loss_chart.rb +37 -0
  52. data/app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb +36 -0
  53. data/app/reports/spree/sales_performance_report/sale_cost_price_chart.rb +48 -0
  54. data/app/reports/spree/sales_tax_report.rb +64 -0
  55. data/app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb +39 -0
  56. data/app/reports/spree/shipping_cost_report.rb +89 -0
  57. data/app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb +38 -0
  58. data/app/reports/spree/trending_search_report.rb +50 -0
  59. data/app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb +41 -0
  60. data/app/reports/spree/unique_purchases_report.rb +39 -0
  61. data/app/reports/spree/user_pool_report.rb +66 -0
  62. data/app/reports/spree/user_pool_report/distribution_column_chart.rb +65 -0
  63. data/app/reports/spree/users_not_converted_report.rb +48 -0
  64. data/app/reports/spree/users_who_recently_purchased_report.rb +69 -0
  65. data/app/services/spree/report_generation_service.rb +27 -0
  66. data/app/views/spree/admin/insights/_chart.html.erb +4 -0
  67. data/app/views/spree/admin/insights/download.pdf.erb +27 -0
  68. data/app/views/spree/admin/insights/index.html.erb +82 -0
  69. data/app/views/spree/admin/insights/search/_product_views_search.html.erb +13 -0
  70. data/app/views/spree/admin/insights/search/_search_form.html.erb +39 -0
  71. data/app/views/spree/admin/insights/search/_trending_searches_search.html.erb +13 -0
  72. data/app/views/spree/admin/insights/search/_users_not_converted_search.html.erb +13 -0
  73. data/app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb +13 -0
  74. data/app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb +13 -0
  75. data/app/views/spree/admin/shared/_insights_side_menu.html.erb +5 -0
  76. data/app/views/spree/admin/shared/sub_menu/_insight.html.erb +7 -0
  77. data/app/views/spree/admin/templates/insights/_paginator.template +11 -0
  78. data/app/views/spree/admin/templates/insights/_search.template +76 -0
  79. data/app/views/spree/admin/templates/insights/_show.template +49 -0
  80. data/app/views/spree/layouts/pdf.html.erb +9 -0
  81. data/bin/rails +7 -0
  82. data/config/initializers/add_to_sidebar.rb +14 -0
  83. data/config/initializers/assets.rb +1 -0
  84. data/config/initializers/mime_types.rb +2 -0
  85. data/config/initializers/wicked_pdf.rb +21 -0
  86. data/config/locales/en.yml +167 -0
  87. data/config/routes.rb +6 -0
  88. data/lib/generators/solidus_admin_insights/install/install_generator.rb +36 -0
  89. data/lib/generators/solidus_admin_insights/install/solidus_admin_insights.rb +22 -0
  90. data/lib/solidus_admin_insights.rb +14 -0
  91. data/lib/solidus_admin_insights/engine.rb +27 -0
  92. data/lib/solidus_admin_insights/factories.rb +6 -0
  93. data/solidus_admin_insights.gemspec +42 -0
  94. data/spec/spec_helper.rb +93 -0
  95. metadata +419 -0
@@ -0,0 +1,6 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ namespace :admin do
3
+ get 'insights/download', to: 'insights#download'
4
+ resources :insights
5
+ end
6
+ end
@@ -0,0 +1,36 @@
1
+ module SolidusAdminInsights
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ source_root(File.expand_path(File.dirname(__FILE__)))
5
+ class_option :auto_run_migrations, :type => :boolean, :default => false
6
+
7
+ def copy_initializer
8
+ copy_file 'solidus_admin_insights.rb', 'config/initializers/solidus_admin_insights.rb'
9
+ end
10
+
11
+
12
+ def add_javascripts
13
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_admin_insights\n"
14
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_admin_insights\n"
15
+ end
16
+
17
+ def add_stylesheets
18
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/solidus_admin_insights\n", :before => /\*\//, :verbose => true
19
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/solidus_admin_insights\n", :before => /\*\//, :verbose => true
20
+ end
21
+
22
+ def add_migrations
23
+ run 'bundle exec rake railties:install:migrations FROM=solidus_admin_insights'
24
+ end
25
+
26
+ def run_migrations
27
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
28
+ if run_migrations
29
+ run 'bundle exec rake db:migrate'
30
+ else
31
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,22 @@
1
+ reports = {
2
+ finance_analysis: [
3
+ :payment_method_transactions, :payment_method_transactions_conversion_rate,
4
+ :shipping_cost, :sales_tax, :sales_performance
5
+ ],
6
+ product_analysis: [
7
+ :best_selling_products, :cart_additions, :cart_removals, :cart_updations,
8
+ :product_views, :product_views_to_cart_additions,
9
+ :product_views_to_purchases, :unique_purchases,
10
+ :returned_products
11
+ ],
12
+ promotion_analysis: [:promotional_cost],
13
+ trending_search_analysis: [:trending_search],
14
+ user_analysis: [:user_pool, :users_not_converted, :users_who_recently_purchased],
15
+ }
16
+
17
+ SolidusAdminInsights::Config.configure do |config|
18
+ reports.keys.each do |report_category|
19
+ config.register_report_category(report_category)
20
+ reports[report_category].each { |report| config.register_report(report_category, report) }
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ require 'spree_core'
2
+ require 'solidus_admin_insights/engine'
3
+
4
+ module SolidusAdminInsights
5
+ class Config
6
+ def self.configure
7
+ yield configuration if block_given?
8
+ end
9
+
10
+ def self.configuration
11
+ @config ||= Spree::Report::Configuration.new
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,27 @@
1
+ module SolidusAdminInsights
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ require 'wicked_pdf'
5
+ require 'csv'
6
+
7
+ isolate_namespace Spree
8
+ engine_name 'solidus_admin_insights'
9
+
10
+ # use rspec for tests
11
+ config.generators do |g|
12
+ g.test_framework :rspec
13
+ end
14
+
15
+ def self.activate
16
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
17
+ Rails.configuration.cache_classes ? require(c) : load(c)
18
+ end
19
+ end
20
+
21
+ config.to_prepare &method(:activate).to_proc
22
+
23
+ config.after_initialize do
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'solidus_admin_insights/factories'
6
+ end
@@ -0,0 +1,42 @@
1
+ Gem::Specification.new do |s|
2
+ s.platform = Gem::Platform::RUBY
3
+ s.name = 'solidus_admin_insights'
4
+ s.version = '2.1.0'
5
+ s.summary = "Dashboard for querying and viewing you solidus store's metrics"
6
+ s.description = 'Add (optional) gem description here'
7
+ s.required_ruby_version = '>= 2.1.0'
8
+
9
+ s.author = ["Nimish Mehta", "Tanmay Sinha", "Nimish Gupta", "+ Vinsol Team"]
10
+ s.email = 'info@vinsol.com'
11
+ s.homepage = 'http://vinsol.com'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.require_path = 'lib'
16
+ s.requirements << 'none'
17
+
18
+ solidus_version = '~> 2.1'
19
+
20
+ s.add_dependency 'solidus_core', solidus_version
21
+ s.add_dependency 'solidus_events_tracker', '~> 2.1'
22
+
23
+ s.add_development_dependency 'shoulda-matchers', '~> 2.6.2'
24
+ s.add_development_dependency 'rspec-activemodel-mocks'
25
+ s.add_development_dependency 'solidus_backend'
26
+ s.add_development_dependency 'capybara', '~> 2.5'
27
+ s.add_development_dependency 'coffee-rails'
28
+ s.add_development_dependency 'database_cleaner'
29
+ s.add_development_dependency 'factory_girl', '~> 4.5'
30
+ s.add_development_dependency 'ffaker', '~> 2.2.0'
31
+ s.add_development_dependency 'rspec-rails', '~> 3.4'
32
+ s.add_development_dependency 'sass-rails', '~> 5.0.0'
33
+ s.add_development_dependency 'selenium-webdriver'
34
+ s.add_development_dependency 'simplecov'
35
+ s.add_development_dependency 'sqlite3'
36
+ s.add_development_dependency 'mysql2', '~> 0.4.0'
37
+ s.add_development_dependency 'pg', '~> 0.18.0'
38
+ s.add_development_dependency 'chartkick', '~> 1.4.0'
39
+
40
+ s.add_dependency 'wicked_pdf', '~> 1.0.6'
41
+ s.add_dependency 'wkhtmltopdf-binary', '~> 0.12.3.1'
42
+ end
@@ -0,0 +1,93 @@
1
+ # Run Coverage report
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'spec/dummy'
5
+ add_group 'Controllers', 'app/controllers'
6
+ add_group 'Helpers', 'app/helpers'
7
+ add_group 'Mailers', 'app/mailers'
8
+ add_group 'Models', 'app/models'
9
+ add_group 'Views', 'app/views'
10
+ add_group 'Libraries', 'lib'
11
+ end
12
+
13
+ # Configure Rails Environment
14
+ ENV['RAILS_ENV'] = 'test'
15
+
16
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
17
+
18
+ require 'rspec/rails'
19
+ require 'database_cleaner'
20
+ require 'ffaker'
21
+
22
+ # Requires supporting ruby files with custom matchers and macros, etc,
23
+ # in spec/support/ and its subdirectories.
24
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
25
+
26
+ # Requires factories and other useful helpers defined in spree_core.
27
+ require 'spree/testing_support/authorization_helpers'
28
+ require 'spree/testing_support/capybara_ext'
29
+ require 'spree/testing_support/controller_requests'
30
+ require 'spree/testing_support/factories'
31
+ require 'spree/testing_support/url_helpers'
32
+
33
+ # Requires factories defined in lib/solidus_admin_insights/factories.rb
34
+ require 'solidus_admin_insights/factories'
35
+
36
+ RSpec.configure do |config|
37
+ config.include FactoryGirl::Syntax::Methods
38
+
39
+ # Infer an example group's spec type from the file location.
40
+ config.infer_spec_type_from_file_location!
41
+
42
+ # == URL Helpers
43
+ #
44
+ # Allows access to Spree's routes in specs:
45
+ #
46
+ # visit spree.admin_path
47
+ # current_path.should eql(spree.products_path)
48
+ config.include Spree::TestingSupport::UrlHelpers
49
+
50
+ # == Requests support
51
+ #
52
+ # Adds convenient methods to request Spree's controllers
53
+ # spree_get :index
54
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
55
+
56
+ # == Mock Framework
57
+ #
58
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
59
+ #
60
+ # config.mock_with :mocha
61
+ # config.mock_with :flexmock
62
+ # config.mock_with :rr
63
+ config.mock_with :rspec
64
+ config.color = true
65
+
66
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
67
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
68
+
69
+ # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
70
+ # to cleanup after each test instead. Without transactional fixtures set to false the records created
71
+ # to setup a test will be unavailable to the browser, which runs under a separate server instance.
72
+ config.use_transactional_fixtures = false
73
+
74
+ # Ensure Suite is set to use transactions for speed.
75
+ config.before :suite do
76
+ DatabaseCleaner.strategy = :transaction
77
+ DatabaseCleaner.clean_with :truncation
78
+ end
79
+
80
+ # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
81
+ config.before :each do
82
+ DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
83
+ DatabaseCleaner.start
84
+ end
85
+
86
+ # After each spec clean the database.
87
+ config.after :each do
88
+ DatabaseCleaner.clean
89
+ end
90
+
91
+ config.fail_fast = ENV['FAIL_FAST'] || false
92
+ config.order = "random"
93
+ end
metadata ADDED
@@ -0,0 +1,419 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidus_admin_insights
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Nimish Mehta
8
+ - Tanmay Sinha
9
+ - Nimish Gupta
10
+ - "+ Vinsol Team"
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2017-05-17 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: solidus_core
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '2.1'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: solidus_events_tracker
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '2.1'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '2.1'
44
+ - !ruby/object:Gem::Dependency
45
+ name: shoulda-matchers
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: 2.6.2
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: 2.6.2
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec-activemodel-mocks
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: solidus_backend
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ - !ruby/object:Gem::Dependency
87
+ name: capybara
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '2.5'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '2.5'
100
+ - !ruby/object:Gem::Dependency
101
+ name: coffee-rails
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ - !ruby/object:Gem::Dependency
115
+ name: database_cleaner
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ - !ruby/object:Gem::Dependency
129
+ name: factory_girl
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '4.5'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '4.5'
142
+ - !ruby/object:Gem::Dependency
143
+ name: ffaker
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 2.2.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 2.2.0
156
+ - !ruby/object:Gem::Dependency
157
+ name: rspec-rails
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '3.4'
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '3.4'
170
+ - !ruby/object:Gem::Dependency
171
+ name: sass-rails
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: 5.0.0
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: 5.0.0
184
+ - !ruby/object:Gem::Dependency
185
+ name: selenium-webdriver
186
+ requirement: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ - !ruby/object:Gem::Dependency
199
+ name: simplecov
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ - !ruby/object:Gem::Dependency
213
+ name: sqlite3
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ type: :development
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ - !ruby/object:Gem::Dependency
227
+ name: mysql2
228
+ requirement: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - "~>"
231
+ - !ruby/object:Gem::Version
232
+ version: 0.4.0
233
+ type: :development
234
+ prerelease: false
235
+ version_requirements: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: 0.4.0
240
+ - !ruby/object:Gem::Dependency
241
+ name: pg
242
+ requirement: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - "~>"
245
+ - !ruby/object:Gem::Version
246
+ version: 0.18.0
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - "~>"
252
+ - !ruby/object:Gem::Version
253
+ version: 0.18.0
254
+ - !ruby/object:Gem::Dependency
255
+ name: chartkick
256
+ requirement: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - "~>"
259
+ - !ruby/object:Gem::Version
260
+ version: 1.4.0
261
+ type: :development
262
+ prerelease: false
263
+ version_requirements: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - "~>"
266
+ - !ruby/object:Gem::Version
267
+ version: 1.4.0
268
+ - !ruby/object:Gem::Dependency
269
+ name: wicked_pdf
270
+ requirement: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - "~>"
273
+ - !ruby/object:Gem::Version
274
+ version: 1.0.6
275
+ type: :runtime
276
+ prerelease: false
277
+ version_requirements: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - "~>"
280
+ - !ruby/object:Gem::Version
281
+ version: 1.0.6
282
+ - !ruby/object:Gem::Dependency
283
+ name: wkhtmltopdf-binary
284
+ requirement: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - "~>"
287
+ - !ruby/object:Gem::Version
288
+ version: 0.12.3.1
289
+ type: :runtime
290
+ prerelease: false
291
+ version_requirements: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - "~>"
294
+ - !ruby/object:Gem::Version
295
+ version: 0.12.3.1
296
+ description: Add (optional) gem description here
297
+ email: info@vinsol.com
298
+ executables: []
299
+ extensions: []
300
+ extra_rdoc_files: []
301
+ files:
302
+ - ".gitignore"
303
+ - Gemfile
304
+ - LICENSE
305
+ - README.md
306
+ - Rakefile
307
+ - app/assets/javascripts/spree/backend/jquery.tablesorter.min.js
308
+ - app/assets/javascripts/spree/backend/solidus_admin_insights.js
309
+ - app/assets/javascripts/spree/backend/solidus_admin_insights/paginator.js
310
+ - app/assets/javascripts/spree/backend/solidus_admin_insights/report_loader.js
311
+ - app/assets/javascripts/spree/backend/solidus_admin_insights/searcher.js
312
+ - app/assets/javascripts/spree/backend/solidus_admin_insights/table_sorter.js
313
+ - app/assets/javascripts/spree/backend/tmpl.js
314
+ - app/assets/javascripts/spree/frontend/solidus_admin_insights.js
315
+ - app/assets/stylesheets/spree/backend/override_pdf.css
316
+ - app/assets/stylesheets/spree/backend/solidus_admin_insights.css
317
+ - app/assets/stylesheets/spree/frontend/solidus_admin_insights.css
318
+ - app/controllers/spree/admin/insights_controller.rb
319
+ - app/helpers/spree/admin/base_helper_decorator.rb
320
+ - app/models/spree/app_configuration_decorator.rb
321
+ - app/models/spree/product_decorator.rb
322
+ - app/models/spree/promotion_action_decorator.rb
323
+ - app/models/spree/return_authorization_decorator.rb
324
+ - app/permissions/spree/permission_sets/insight_display.rb
325
+ - app/reports/spree/best_selling_products_report.rb
326
+ - app/reports/spree/cart_additions_report.rb
327
+ - app/reports/spree/cart_removals_report.rb
328
+ - app/reports/spree/cart_updations_report.rb
329
+ - app/reports/spree/payment_method_transactions_conversion_rate_report.rb
330
+ - app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb
331
+ - app/reports/spree/payment_method_transactions_report.rb
332
+ - app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb
333
+ - app/reports/spree/product_views_report.rb
334
+ - app/reports/spree/product_views_to_cart_additions_report.rb
335
+ - app/reports/spree/product_views_to_purchases_report.rb
336
+ - app/reports/spree/promotional_cost_report.rb
337
+ - app/reports/spree/promotional_cost_report/promotional_cost_chart.rb
338
+ - app/reports/spree/promotional_cost_report/usage_count_chart.rb
339
+ - app/reports/spree/report.rb
340
+ - app/reports/spree/report/chart.rb
341
+ - app/reports/spree/report/configuration.rb
342
+ - app/reports/spree/report/date_slicer.rb
343
+ - app/reports/spree/report/observation.rb
344
+ - app/reports/spree/report/query_fragments.rb
345
+ - app/reports/spree/report/query_time_scale.rb
346
+ - app/reports/spree/report/result.rb
347
+ - app/reports/spree/report/timed_observation.rb
348
+ - app/reports/spree/report/timed_result.rb
349
+ - app/reports/spree/returned_products_report.rb
350
+ - app/reports/spree/sales_performance_report.rb
351
+ - app/reports/spree/sales_performance_report/profit_loss_chart.rb
352
+ - app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb
353
+ - app/reports/spree/sales_performance_report/sale_cost_price_chart.rb
354
+ - app/reports/spree/sales_tax_report.rb
355
+ - app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb
356
+ - app/reports/spree/shipping_cost_report.rb
357
+ - app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb
358
+ - app/reports/spree/trending_search_report.rb
359
+ - app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb
360
+ - app/reports/spree/unique_purchases_report.rb
361
+ - app/reports/spree/user_pool_report.rb
362
+ - app/reports/spree/user_pool_report/distribution_column_chart.rb
363
+ - app/reports/spree/users_not_converted_report.rb
364
+ - app/reports/spree/users_who_recently_purchased_report.rb
365
+ - app/services/spree/report_generation_service.rb
366
+ - app/views/spree/admin/insights/_chart.html.erb
367
+ - app/views/spree/admin/insights/download.pdf.erb
368
+ - app/views/spree/admin/insights/index.html.erb
369
+ - app/views/spree/admin/insights/search/_product_views_search.html.erb
370
+ - app/views/spree/admin/insights/search/_search_form.html.erb
371
+ - app/views/spree/admin/insights/search/_trending_searches_search.html.erb
372
+ - app/views/spree/admin/insights/search/_users_not_converted_search.html.erb
373
+ - app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb
374
+ - app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb
375
+ - app/views/spree/admin/shared/_insights_side_menu.html.erb
376
+ - app/views/spree/admin/shared/sub_menu/_insight.html.erb
377
+ - app/views/spree/admin/templates/insights/_paginator.template
378
+ - app/views/spree/admin/templates/insights/_search.template
379
+ - app/views/spree/admin/templates/insights/_show.template
380
+ - app/views/spree/layouts/pdf.html.erb
381
+ - bin/rails
382
+ - config/initializers/add_to_sidebar.rb
383
+ - config/initializers/assets.rb
384
+ - config/initializers/mime_types.rb
385
+ - config/initializers/wicked_pdf.rb
386
+ - config/locales/en.yml
387
+ - config/routes.rb
388
+ - lib/generators/solidus_admin_insights/install/install_generator.rb
389
+ - lib/generators/solidus_admin_insights/install/solidus_admin_insights.rb
390
+ - lib/solidus_admin_insights.rb
391
+ - lib/solidus_admin_insights/engine.rb
392
+ - lib/solidus_admin_insights/factories.rb
393
+ - solidus_admin_insights.gemspec
394
+ - spec/spec_helper.rb
395
+ homepage: http://vinsol.com
396
+ licenses: []
397
+ metadata: {}
398
+ post_install_message:
399
+ rdoc_options: []
400
+ require_paths:
401
+ - lib
402
+ required_ruby_version: !ruby/object:Gem::Requirement
403
+ requirements:
404
+ - - ">="
405
+ - !ruby/object:Gem::Version
406
+ version: 2.1.0
407
+ required_rubygems_version: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: '0'
412
+ requirements:
413
+ - none
414
+ rubyforge_project:
415
+ rubygems_version: 2.4.5.1
416
+ signing_key:
417
+ specification_version: 4
418
+ summary: Dashboard for querying and viewing you solidus store's metrics
419
+ test_files: []