solidus_admin_insights 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []