spree_admin_insights 3.2.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 +6 -0
  4. data/LICENSE +26 -0
  5. data/README.md +96 -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/spree_admin_insights.js +2 -0
  9. data/app/assets/javascripts/spree/backend/spree_admin_insights/paginator.js +128 -0
  10. data/app/assets/javascripts/spree/backend/spree_admin_insights/report_loader.js +228 -0
  11. data/app/assets/javascripts/spree/backend/spree_admin_insights/searcher.js +103 -0
  12. data/app/assets/javascripts/spree/backend/spree_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/spree_admin_insights.js +2 -0
  15. data/app/assets/stylesheets/spree/backend/override_pdf.css +71 -0
  16. data/app/assets/stylesheets/spree/backend/spree_admin_insights.css +40 -0
  17. data/app/assets/stylesheets/spree/frontend/spree_admin_insights.css +4 -0
  18. data/app/controllers/spree/admin/insights_controller.rb +112 -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/models/spree/user_decorator.rb +3 -0
  25. data/app/overrides/add_insights_to_admin_side_menu.html.rb +5 -0
  26. data/app/reports/spree/best_selling_products_report.rb +42 -0
  27. data/app/reports/spree/cart_additions_report.rb +36 -0
  28. data/app/reports/spree/cart_removals_report.rb +36 -0
  29. data/app/reports/spree/cart_updations_report.rb +40 -0
  30. data/app/reports/spree/payment_method_transactions_conversion_rate_report.rb +74 -0
  31. data/app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb +39 -0
  32. data/app/reports/spree/payment_method_transactions_report.rb +60 -0
  33. data/app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb +36 -0
  34. data/app/reports/spree/product_views_report.rb +46 -0
  35. data/app/reports/spree/product_views_to_cart_additions_report.rb +53 -0
  36. data/app/reports/spree/product_views_to_purchases_report.rb +54 -0
  37. data/app/reports/spree/promotional_cost_report.rb +84 -0
  38. data/app/reports/spree/promotional_cost_report/promotional_cost_chart.rb +37 -0
  39. data/app/reports/spree/promotional_cost_report/usage_count_chart.rb +41 -0
  40. data/app/reports/spree/report.rb +131 -0
  41. data/app/reports/spree/report/chart.rb +11 -0
  42. data/app/reports/spree/report/configuration.rb +40 -0
  43. data/app/reports/spree/report/date_slicer.rb +61 -0
  44. data/app/reports/spree/report/observation.rb +49 -0
  45. data/app/reports/spree/report/query_fragments.rb +45 -0
  46. data/app/reports/spree/report/query_time_scale.rb +19 -0
  47. data/app/reports/spree/report/result.rb +100 -0
  48. data/app/reports/spree/report/timed_observation.rb +47 -0
  49. data/app/reports/spree/report/timed_result.rb +48 -0
  50. data/app/reports/spree/returned_products_report.rb +37 -0
  51. data/app/reports/spree/sales_performance_report.rb +107 -0
  52. data/app/reports/spree/sales_performance_report/profit_loss_chart.rb +37 -0
  53. data/app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb +36 -0
  54. data/app/reports/spree/sales_performance_report/sale_cost_price_chart.rb +48 -0
  55. data/app/reports/spree/sales_tax_report.rb +64 -0
  56. data/app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb +39 -0
  57. data/app/reports/spree/shipping_cost_report.rb +89 -0
  58. data/app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb +38 -0
  59. data/app/reports/spree/trending_search_report.rb +50 -0
  60. data/app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb +41 -0
  61. data/app/reports/spree/unique_purchases_report.rb +39 -0
  62. data/app/reports/spree/user_pool_report.rb +66 -0
  63. data/app/reports/spree/user_pool_report/distribution_column_chart.rb +65 -0
  64. data/app/reports/spree/users_not_converted_report.rb +48 -0
  65. data/app/reports/spree/users_who_recently_purchased_report.rb +69 -0
  66. data/app/services/spree/report_generation_service.rb +27 -0
  67. data/app/views/spree/admin/insights/_chart.html.erb +4 -0
  68. data/app/views/spree/admin/insights/download.pdf.erb +27 -0
  69. data/app/views/spree/admin/insights/index.html.erb +91 -0
  70. data/app/views/spree/admin/insights/search/_product_views_search.html.erb +13 -0
  71. data/app/views/spree/admin/insights/search/_search_form.html.erb +39 -0
  72. data/app/views/spree/admin/insights/search/_trending_searches_search.html.erb +13 -0
  73. data/app/views/spree/admin/insights/search/_users_not_converted_search.html.erb +13 -0
  74. data/app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb +13 -0
  75. data/app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb +13 -0
  76. data/app/views/spree/admin/shared/_insights_side_menu.html.erb +16 -0
  77. data/app/views/spree/admin/templates/insights/_paginator.template +9 -0
  78. data/app/views/spree/admin/templates/insights/_search.template +75 -0
  79. data/app/views/spree/admin/templates/insights/_show.template +48 -0
  80. data/app/views/spree/layouts/pdf.html.erb +9 -0
  81. data/bin/rails +7 -0
  82. data/config/initializers/assets.rb +1 -0
  83. data/config/initializers/mime_types.rb +2 -0
  84. data/config/initializers/wicked_pdf.rb +21 -0
  85. data/config/locales/en.yml +169 -0
  86. data/config/locales/pl.yml +164 -0
  87. data/config/routes.rb +6 -0
  88. data/lib/generators/spree_admin_insights/install/install_generator.rb +35 -0
  89. data/lib/generators/spree_admin_insights/install/spree_admin_insights.rb +22 -0
  90. data/lib/spree_admin_insights.rb +14 -0
  91. data/lib/spree_admin_insights/engine.rb +26 -0
  92. data/lib/spree_admin_insights/factories.rb +6 -0
  93. data/spec/spec_helper.rb +93 -0
  94. data/spree_admin_insights.gemspec +41 -0
  95. metadata +420 -0
@@ -0,0 +1,164 @@
1
+ pl:
2
+ spree:
3
+ finance_analysis: Analiza finansowa
4
+ product_analysis: Analiza produktowa
5
+ promotion_analysis: Analiza promocji
6
+ trending_search_analysis: Analiza wyszukiwania
7
+ user_analysis: Analiza użytkowników
8
+ user_pool:
9
+ new_sign_ups: Nowi użytkownicy
10
+ active_users: Zarejestrowani użytkownicy
11
+ guest_users: Goście
12
+ insights: Analityka
13
+ insight:
14
+ heading: 'Analiza: %{type}'
15
+ tab_heading: Analityka
16
+ not_found: Nie znaleziono raportu.
17
+ product_views:
18
+ title: Wyświetlenia produktu
19
+ description: Pokazuje liczbę wyświetleń produktu (strony produktu) przez klientów.
20
+ product_name: Produkt
21
+ views: Suma wyświetleń
22
+ users: Użytkownicy (Unikalni)
23
+ guest_sessions: Sesje gości
24
+ cart_additions:
25
+ title: Dodanie produktu do koszyka
26
+ additions: Dodatki
27
+ description: Wyświetla informację o tym jak wiele razy produkt został dodany do koszyka.
28
+ product_name: Produkt
29
+ quantity_change: Dodanie do koszyka (Liczba)
30
+ sku: Wariant
31
+ cart_removals:
32
+ title: Usunięcie produktu z koszyka
33
+ description: Wyświetla informację o tym jak wiele razy produkt został usunięty z koszyka.
34
+ product_name: Produkt
35
+ quantity_change: Usunięcie z koszyka (Liczba)
36
+ removals: Usunięcia
37
+ sku: Wariant
38
+ cart_updations:
39
+ title: Aktualizacja produktu
40
+ description: Wyświetla informację o tym jak wiele razy produkt został zaktualizowany z poziomu koszyka.
41
+ product_name: Produkt
42
+ quantity_decrease: Zmniejszenie liczby (Z koszyka)
43
+ quantity_increase: Zwiększenie liczby (Z koszyka)
44
+ removals: Usunięcie (Z koszyka)
45
+ sku: Wariant
46
+ updations: Suma aktualizacji
47
+ product_views_to_cart_additions:
48
+ title: Stosunek liczby wyświetleń produktu do liczby dodań do koszyka
49
+ description: Stosunek liczby wyświetleń produktu (strony produktu) do liczby dodań do koszyka tego produktu.
50
+ cart_additions: Konwersja (liczba produktu)
51
+ product_name: Produkt
52
+ views: Wyświetlenia produktu
53
+ cart_to_view_ratio: Stosunek dodań do koszyka
54
+ trending_search:
55
+ title: Wyszukiwania
56
+ description: Możesz zobacz jakie słowa kluczowe wpisują Twoi klienci w wyszukiwarkę.
57
+ searched_term: Słowa kluczowe
58
+ occurrences: Występowanie
59
+ users_not_converted:
60
+ title: Użytkownicy nieskonwertowani
61
+ description: Informacja o zarejestrowanych użytkownikach, którzy nie zakupili żadnego produktu.
62
+ signup_date: Zarejestrowany o
63
+ user_email: E-mail
64
+ users_who_recently_purchased:
65
+ title: Użytkownicy, którzy ostatnio dokonali zakupu
66
+ description: Liczba użytkowników, którzy ostatnio dokonali zakupu.
67
+ last_purchase_date: Czas ostatniego zakupu
68
+ last_purchased_order_number: Numer ostatniego zamówienia
69
+ purchase_count: Liczba dokonanych zakupów
70
+ user_email: E-mail
71
+ users_who_have_not_recently_purchased:
72
+ title: Użytkownicy, którzy nie dokonali ostatnio zakupów
73
+ description: Liczba użytkowników, którzy nie dokonali zakupów od dłuższego czasu
74
+ last_purchase_date: Czas ostatniego zakupu
75
+ last_purchased_order_number: Numer ostatniego zamówienia
76
+ user_email: E-mail
77
+ user_pool:
78
+ title: Pula użytkowników
79
+ description: Wyświetla miesięczną statystyke o użytkownikach odwiedzających stronę.
80
+ months_name: Miesiąc
81
+ guest_users: Goście
82
+ active_users: Zarejestrowani użytkownicy
83
+ new_sign_ups: Nowi użytkownicy
84
+ payment_method_transactions:
85
+ title: Liczba transakcji
86
+ description: Transakcje pochodzące z różnych metod płatności.
87
+ payment_method_name: Metoda płatności
88
+ payment_amount: Kwota transakcji
89
+ months_name: Miesiąc
90
+ payment_method_transactions_conversion_rate:
91
+ payment_method_name: Metoda płatności
92
+ title: Konwersja metod płatności
93
+ description: Stosunek transakcji zakończonych sukcesem do tych zakończonych niepowodzeniem.
94
+ months_name: Miesiąc
95
+ payment_state: Stan płatności
96
+ count: Liczba
97
+ promotional_cost:
98
+ title: Koszt promocyjny
99
+ description: Suma pieniędzy przeznaczonych na poszczególne promocje - Admin może zobaczyć sumę zainwestowanych pieniędzy, dochód i zysk z poszczególnej promocji.
100
+ promotion_code: Kod
101
+ promotion_discount: Zniżka
102
+ promotion_name: Promocja
103
+ promotion_start_date: Czas rozpoczęcia
104
+ promotion_end_date: Czas wygaśnięcia
105
+ usage_count: Wykorzystanie
106
+ months_name: Miesiąc
107
+ annual_promotional_cost:
108
+ title: Roczny koszt promocji
109
+ description: Całkowita suma pieniędzy zainwestowanych w poszczególne promocje - Admin może zobaczyć sumę zainwestowanych pieniędzy, dochód i zysk z poszczególnej promocji.
110
+ promotion_discount: Zniżka
111
+ promotion_name: Promocja
112
+ usage_count: Wykorzystanie
113
+ sales_performance:
114
+ title: Wyniki sprzedaży
115
+ description: Informacje o dochodach, podatkach, przesyłkach i zwrotach.
116
+ adjustment_total: Suma poprawek
117
+ cost_price: Cena kosztu
118
+ months_name: Miesiąc
119
+ profit_loss: Zysk/Strata
120
+ profit_loss_percent: Zysk/Strata %
121
+ refund_amount: Kwota zwrotu
122
+ revenue: Dochód
123
+ sale_price: Cena wyprzedażowa
124
+ shipping_charges: Koszty wysyłki
125
+ tax: Podatek
126
+ promotion_discount: Promocyjna zniżka
127
+ unique_purchases:
128
+ title: Unikalne zakupy
129
+ description: Wyświetla informację o tym jak wiele unikalnych użytkowników kupiło poszczególne produkty.
130
+ product_name: Produkt
131
+ sku: Wariant
132
+ sold_count: Liczba sprzedanych
133
+ users: Użytkownicy
134
+ best_selling_products:
135
+ title: Najlepiej sprzedające się produkty
136
+ description: Najlepiej/najmniej Sprzedające się produkty w maksymalnych zakupionych ilościach.
137
+ product_name: Produkt
138
+ sku: Wariant
139
+ sold_count: Liczba sprzedanych
140
+ product_views_to_purchases:
141
+ title: Stosunek wyświetleń produktu do sprzedanych
142
+ description: Stosunek liczby wyświetleń produktu (strony produktu) do liczby z jaką ten produkt został zakupiony po zobaczeniu.
143
+ product_name: Produkt
144
+ purchases: Zakupione
145
+ views: Wyświetlenia
146
+ purchase_to_view_ratio: Stosunek zakupionych do wyświetlonych
147
+ returned_products:
148
+ title: Zwrócone produkty
149
+ description: Liczba produktów zwróconych.
150
+ product_name: Produkt
151
+ return_count: Liczba zwróconych
152
+ sku: Wariant
153
+ shipping_cost:
154
+ title: Koszty wysyłki
155
+ name: Nazwa metody wysyłki
156
+ months_name: Miesiąc
157
+ shipping_charge: Koszty wysyłki
158
+ revenue: Dochód
159
+ shipping_cost_percentage: Koszt wysyłki w %
160
+ sales_tax:
161
+ title: Podatek od sprzedaży
162
+ months_name: Miesiac
163
+ zone_name: Strefa
164
+ sales_tax: Podatek
@@ -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,35 @@
1
+ module SpreeAdminInsights
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 'spree_admin_insights.rb', 'config/initializers/spree_admin_insights.rb'
9
+ end
10
+
11
+ def add_javascripts
12
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_admin_insights\n"
13
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_admin_insights\n"
14
+ end
15
+
16
+ def add_stylesheets
17
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_admin_insights\n", :before => /\*\//, :verbose => true
18
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_admin_insights\n", :before => /\*\//, :verbose => true
19
+ end
20
+
21
+ def add_migrations
22
+ run 'bundle exec rake railties:install:migrations FROM=spree_admin_insights'
23
+ end
24
+
25
+ def run_migrations
26
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
27
+ if run_migrations
28
+ run 'bundle exec rake db:migrate'
29
+ else
30
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
31
+ end
32
+ end
33
+ end
34
+ end
35
+ 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
+ SpreeAdminInsights::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 'spree_admin_insights/engine'
3
+
4
+ module SpreeAdminInsights
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,26 @@
1
+ module SpreeAdminInsights
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ require 'wicked_pdf'
5
+ require 'csv'
6
+
7
+ isolate_namespace Spree
8
+ engine_name 'spree_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
+ end
25
+ end
26
+ 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 'spree_admin_insights/factories'
6
+ 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/spree_admin_insights/factories.rb
34
+ require 'spree_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
@@ -0,0 +1,41 @@
1
+ Gem::Specification.new do |s|
2
+ s.platform = Gem::Platform::RUBY
3
+ s.name = 'spree_admin_insights'
4
+ s.version = '3.2.0'
5
+ s.summary = 'Add some reporting to admin section. '
6
+ s.description = 'Track what product being viewed, what being purchased. Who are consistant buyers etc.'
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/spreecommerce-admin-insights'
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
+ spree_version = '~> 3.2.0'
19
+
20
+ s.add_dependency 'spree_core', spree_version
21
+ s.add_dependency 'spree_events_tracker', '~> 3.2'
22
+
23
+ s.add_development_dependency 'capybara', '~> 2.4'
24
+ s.add_development_dependency 'coffee-rails', '>= 4.0.0'
25
+ s.add_development_dependency 'database_cleaner', '~> 1.2.0'
26
+ s.add_development_dependency 'factory_girl', '~> 4.5'
27
+ s.add_development_dependency 'ffaker', '~> 2.2.0'
28
+ s.add_development_dependency 'mysql2', '~> 0.4.0'
29
+ s.add_development_dependency 'pg', '~> 0.18.0'
30
+ s.add_development_dependency 'rspec-rails', '~> 3.1'
31
+ s.add_development_dependency 'sass-rails', '~> 5.0.0'
32
+ s.add_development_dependency 'chartkick', '~> 1.4.0'
33
+ s.add_development_dependency 'selenium-webdriver', '~> 2.52.0'
34
+ s.add_development_dependency 'simplecov', '~> 0.11.0'
35
+ s.add_development_dependency 'sqlite3', '~> 1.3.0'
36
+ s.add_development_dependency 'shoulda-matchers', '~> 2.6.2'
37
+ s.add_development_dependency 'spree_backend', spree_version
38
+ s.add_development_dependency 'spree_frontend', spree_version
39
+ s.add_dependency 'wicked_pdf', '~> 1.0.6'
40
+ s.add_dependency 'wkhtmltopdf-binary', '~> 0.9.9.3'
41
+ end
metadata ADDED
@@ -0,0 +1,420 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_admin_insights
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.2.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-18 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: spree_core
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: spree_events_tracker
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '3.2'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.2'
44
+ - !ruby/object:Gem::Dependency
45
+ name: capybara
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.4'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '2.4'
58
+ - !ruby/object:Gem::Dependency
59
+ name: coffee-rails
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 4.0.0
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 4.0.0
72
+ - !ruby/object:Gem::Dependency
73
+ name: database_cleaner
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: 1.2.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: 1.2.0
86
+ - !ruby/object:Gem::Dependency
87
+ name: factory_girl
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '4.5'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '4.5'
100
+ - !ruby/object:Gem::Dependency
101
+ name: ffaker
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 2.2.0
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 2.2.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: mysql2
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 0.4.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.4.0
128
+ - !ruby/object:Gem::Dependency
129
+ name: pg
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.18.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 0.18.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: rspec-rails
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '3.1'
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '3.1'
156
+ - !ruby/object:Gem::Dependency
157
+ name: sass-rails
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: 5.0.0
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: 5.0.0
170
+ - !ruby/object:Gem::Dependency
171
+ name: chartkick
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: 1.4.0
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: 1.4.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: 2.52.0
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: 2.52.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.11.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.11.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: 1.3.0
219
+ type: :development
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: 1.3.0
226
+ - !ruby/object:Gem::Dependency
227
+ name: shoulda-matchers
228
+ requirement: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - "~>"
231
+ - !ruby/object:Gem::Version
232
+ version: 2.6.2
233
+ type: :development
234
+ prerelease: false
235
+ version_requirements: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: 2.6.2
240
+ - !ruby/object:Gem::Dependency
241
+ name: spree_backend
242
+ requirement: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - "~>"
245
+ - !ruby/object:Gem::Version
246
+ version: 3.2.0
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - "~>"
252
+ - !ruby/object:Gem::Version
253
+ version: 3.2.0
254
+ - !ruby/object:Gem::Dependency
255
+ name: spree_frontend
256
+ requirement: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - "~>"
259
+ - !ruby/object:Gem::Version
260
+ version: 3.2.0
261
+ type: :development
262
+ prerelease: false
263
+ version_requirements: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - "~>"
266
+ - !ruby/object:Gem::Version
267
+ version: 3.2.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.9.9.3
289
+ type: :runtime
290
+ prerelease: false
291
+ version_requirements: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - "~>"
294
+ - !ruby/object:Gem::Version
295
+ version: 0.9.9.3
296
+ description: Track what product being viewed, what being purchased. Who are consistant
297
+ buyers etc.
298
+ email: info@vinsol.com
299
+ executables: []
300
+ extensions: []
301
+ extra_rdoc_files: []
302
+ files:
303
+ - ".gitignore"
304
+ - Gemfile
305
+ - LICENSE
306
+ - README.md
307
+ - Rakefile
308
+ - app/assets/javascripts/spree/backend/jquery.tablesorter.min.js
309
+ - app/assets/javascripts/spree/backend/spree_admin_insights.js
310
+ - app/assets/javascripts/spree/backend/spree_admin_insights/paginator.js
311
+ - app/assets/javascripts/spree/backend/spree_admin_insights/report_loader.js
312
+ - app/assets/javascripts/spree/backend/spree_admin_insights/searcher.js
313
+ - app/assets/javascripts/spree/backend/spree_admin_insights/table_sorter.js
314
+ - app/assets/javascripts/spree/backend/tmpl.js
315
+ - app/assets/javascripts/spree/frontend/spree_admin_insights.js
316
+ - app/assets/stylesheets/spree/backend/override_pdf.css
317
+ - app/assets/stylesheets/spree/backend/spree_admin_insights.css
318
+ - app/assets/stylesheets/spree/frontend/spree_admin_insights.css
319
+ - app/controllers/spree/admin/insights_controller.rb
320
+ - app/helpers/spree/admin/base_helper_decorator.rb
321
+ - app/models/spree/app_configuration_decorator.rb
322
+ - app/models/spree/product_decorator.rb
323
+ - app/models/spree/promotion_action_decorator.rb
324
+ - app/models/spree/return_authorization_decorator.rb
325
+ - app/models/spree/user_decorator.rb
326
+ - app/overrides/add_insights_to_admin_side_menu.html.rb
327
+ - app/reports/spree/best_selling_products_report.rb
328
+ - app/reports/spree/cart_additions_report.rb
329
+ - app/reports/spree/cart_removals_report.rb
330
+ - app/reports/spree/cart_updations_report.rb
331
+ - app/reports/spree/payment_method_transactions_conversion_rate_report.rb
332
+ - app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb
333
+ - app/reports/spree/payment_method_transactions_report.rb
334
+ - app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb
335
+ - app/reports/spree/product_views_report.rb
336
+ - app/reports/spree/product_views_to_cart_additions_report.rb
337
+ - app/reports/spree/product_views_to_purchases_report.rb
338
+ - app/reports/spree/promotional_cost_report.rb
339
+ - app/reports/spree/promotional_cost_report/promotional_cost_chart.rb
340
+ - app/reports/spree/promotional_cost_report/usage_count_chart.rb
341
+ - app/reports/spree/report.rb
342
+ - app/reports/spree/report/chart.rb
343
+ - app/reports/spree/report/configuration.rb
344
+ - app/reports/spree/report/date_slicer.rb
345
+ - app/reports/spree/report/observation.rb
346
+ - app/reports/spree/report/query_fragments.rb
347
+ - app/reports/spree/report/query_time_scale.rb
348
+ - app/reports/spree/report/result.rb
349
+ - app/reports/spree/report/timed_observation.rb
350
+ - app/reports/spree/report/timed_result.rb
351
+ - app/reports/spree/returned_products_report.rb
352
+ - app/reports/spree/sales_performance_report.rb
353
+ - app/reports/spree/sales_performance_report/profit_loss_chart.rb
354
+ - app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb
355
+ - app/reports/spree/sales_performance_report/sale_cost_price_chart.rb
356
+ - app/reports/spree/sales_tax_report.rb
357
+ - app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb
358
+ - app/reports/spree/shipping_cost_report.rb
359
+ - app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb
360
+ - app/reports/spree/trending_search_report.rb
361
+ - app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb
362
+ - app/reports/spree/unique_purchases_report.rb
363
+ - app/reports/spree/user_pool_report.rb
364
+ - app/reports/spree/user_pool_report/distribution_column_chart.rb
365
+ - app/reports/spree/users_not_converted_report.rb
366
+ - app/reports/spree/users_who_recently_purchased_report.rb
367
+ - app/services/spree/report_generation_service.rb
368
+ - app/views/spree/admin/insights/_chart.html.erb
369
+ - app/views/spree/admin/insights/download.pdf.erb
370
+ - app/views/spree/admin/insights/index.html.erb
371
+ - app/views/spree/admin/insights/search/_product_views_search.html.erb
372
+ - app/views/spree/admin/insights/search/_search_form.html.erb
373
+ - app/views/spree/admin/insights/search/_trending_searches_search.html.erb
374
+ - app/views/spree/admin/insights/search/_users_not_converted_search.html.erb
375
+ - app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb
376
+ - app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb
377
+ - app/views/spree/admin/shared/_insights_side_menu.html.erb
378
+ - app/views/spree/admin/templates/insights/_paginator.template
379
+ - app/views/spree/admin/templates/insights/_search.template
380
+ - app/views/spree/admin/templates/insights/_show.template
381
+ - app/views/spree/layouts/pdf.html.erb
382
+ - bin/rails
383
+ - config/initializers/assets.rb
384
+ - config/initializers/mime_types.rb
385
+ - config/initializers/wicked_pdf.rb
386
+ - config/locales/en.yml
387
+ - config/locales/pl.yml
388
+ - config/routes.rb
389
+ - lib/generators/spree_admin_insights/install/install_generator.rb
390
+ - lib/generators/spree_admin_insights/install/spree_admin_insights.rb
391
+ - lib/spree_admin_insights.rb
392
+ - lib/spree_admin_insights/engine.rb
393
+ - lib/spree_admin_insights/factories.rb
394
+ - spec/spec_helper.rb
395
+ - spree_admin_insights.gemspec
396
+ homepage: http://vinsol.com/spreecommerce-admin-insights
397
+ licenses: []
398
+ metadata: {}
399
+ post_install_message:
400
+ rdoc_options: []
401
+ require_paths:
402
+ - lib
403
+ required_ruby_version: !ruby/object:Gem::Requirement
404
+ requirements:
405
+ - - ">="
406
+ - !ruby/object:Gem::Version
407
+ version: 2.1.0
408
+ required_rubygems_version: !ruby/object:Gem::Requirement
409
+ requirements:
410
+ - - ">="
411
+ - !ruby/object:Gem::Version
412
+ version: '0'
413
+ requirements:
414
+ - none
415
+ rubyforge_project:
416
+ rubygems_version: 2.4.5.1
417
+ signing_key:
418
+ specification_version: 4
419
+ summary: Add some reporting to admin section.
420
+ test_files: []