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.
- checksums.yaml +7 -0
- data/.gitignore +54 -0
- data/Gemfile +6 -0
- data/LICENSE +26 -0
- data/README.md +96 -0
- data/Rakefile +21 -0
- data/app/assets/javascripts/spree/backend/jquery.tablesorter.min.js +4 -0
- data/app/assets/javascripts/spree/backend/spree_admin_insights.js +2 -0
- data/app/assets/javascripts/spree/backend/spree_admin_insights/paginator.js +128 -0
- data/app/assets/javascripts/spree/backend/spree_admin_insights/report_loader.js +228 -0
- data/app/assets/javascripts/spree/backend/spree_admin_insights/searcher.js +103 -0
- data/app/assets/javascripts/spree/backend/spree_admin_insights/table_sorter.js +47 -0
- data/app/assets/javascripts/spree/backend/tmpl.js +87 -0
- data/app/assets/javascripts/spree/frontend/spree_admin_insights.js +2 -0
- data/app/assets/stylesheets/spree/backend/override_pdf.css +71 -0
- data/app/assets/stylesheets/spree/backend/spree_admin_insights.css +40 -0
- data/app/assets/stylesheets/spree/frontend/spree_admin_insights.css +4 -0
- data/app/controllers/spree/admin/insights_controller.rb +112 -0
- data/app/helpers/spree/admin/base_helper_decorator.rb +17 -0
- data/app/models/spree/app_configuration_decorator.rb +3 -0
- data/app/models/spree/product_decorator.rb +3 -0
- data/app/models/spree/promotion_action_decorator.rb +3 -0
- data/app/models/spree/return_authorization_decorator.rb +4 -0
- data/app/models/spree/user_decorator.rb +3 -0
- data/app/overrides/add_insights_to_admin_side_menu.html.rb +5 -0
- data/app/reports/spree/best_selling_products_report.rb +42 -0
- data/app/reports/spree/cart_additions_report.rb +36 -0
- data/app/reports/spree/cart_removals_report.rb +36 -0
- data/app/reports/spree/cart_updations_report.rb +40 -0
- data/app/reports/spree/payment_method_transactions_conversion_rate_report.rb +74 -0
- data/app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb +39 -0
- data/app/reports/spree/payment_method_transactions_report.rb +60 -0
- data/app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb +36 -0
- data/app/reports/spree/product_views_report.rb +46 -0
- data/app/reports/spree/product_views_to_cart_additions_report.rb +53 -0
- data/app/reports/spree/product_views_to_purchases_report.rb +54 -0
- data/app/reports/spree/promotional_cost_report.rb +84 -0
- data/app/reports/spree/promotional_cost_report/promotional_cost_chart.rb +37 -0
- data/app/reports/spree/promotional_cost_report/usage_count_chart.rb +41 -0
- data/app/reports/spree/report.rb +131 -0
- data/app/reports/spree/report/chart.rb +11 -0
- data/app/reports/spree/report/configuration.rb +40 -0
- data/app/reports/spree/report/date_slicer.rb +61 -0
- data/app/reports/spree/report/observation.rb +49 -0
- data/app/reports/spree/report/query_fragments.rb +45 -0
- data/app/reports/spree/report/query_time_scale.rb +19 -0
- data/app/reports/spree/report/result.rb +100 -0
- data/app/reports/spree/report/timed_observation.rb +47 -0
- data/app/reports/spree/report/timed_result.rb +48 -0
- data/app/reports/spree/returned_products_report.rb +37 -0
- data/app/reports/spree/sales_performance_report.rb +107 -0
- data/app/reports/spree/sales_performance_report/profit_loss_chart.rb +37 -0
- data/app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb +36 -0
- data/app/reports/spree/sales_performance_report/sale_cost_price_chart.rb +48 -0
- data/app/reports/spree/sales_tax_report.rb +64 -0
- data/app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb +39 -0
- data/app/reports/spree/shipping_cost_report.rb +89 -0
- data/app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb +38 -0
- data/app/reports/spree/trending_search_report.rb +50 -0
- data/app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb +41 -0
- data/app/reports/spree/unique_purchases_report.rb +39 -0
- data/app/reports/spree/user_pool_report.rb +66 -0
- data/app/reports/spree/user_pool_report/distribution_column_chart.rb +65 -0
- data/app/reports/spree/users_not_converted_report.rb +48 -0
- data/app/reports/spree/users_who_recently_purchased_report.rb +69 -0
- data/app/services/spree/report_generation_service.rb +27 -0
- data/app/views/spree/admin/insights/_chart.html.erb +4 -0
- data/app/views/spree/admin/insights/download.pdf.erb +27 -0
- data/app/views/spree/admin/insights/index.html.erb +91 -0
- data/app/views/spree/admin/insights/search/_product_views_search.html.erb +13 -0
- data/app/views/spree/admin/insights/search/_search_form.html.erb +39 -0
- data/app/views/spree/admin/insights/search/_trending_searches_search.html.erb +13 -0
- data/app/views/spree/admin/insights/search/_users_not_converted_search.html.erb +13 -0
- data/app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb +13 -0
- data/app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb +13 -0
- data/app/views/spree/admin/shared/_insights_side_menu.html.erb +16 -0
- data/app/views/spree/admin/templates/insights/_paginator.template +9 -0
- data/app/views/spree/admin/templates/insights/_search.template +75 -0
- data/app/views/spree/admin/templates/insights/_show.template +48 -0
- data/app/views/spree/layouts/pdf.html.erb +9 -0
- data/bin/rails +7 -0
- data/config/initializers/assets.rb +1 -0
- data/config/initializers/mime_types.rb +2 -0
- data/config/initializers/wicked_pdf.rb +21 -0
- data/config/locales/en.yml +169 -0
- data/config/locales/pl.yml +164 -0
- data/config/routes.rb +6 -0
- data/lib/generators/spree_admin_insights/install/install_generator.rb +35 -0
- data/lib/generators/spree_admin_insights/install/spree_admin_insights.rb +22 -0
- data/lib/spree_admin_insights.rb +14 -0
- data/lib/spree_admin_insights/engine.rb +26 -0
- data/lib/spree_admin_insights/factories.rb +6 -0
- data/spec/spec_helper.rb +93 -0
- data/spree_admin_insights.gemspec +41 -0
- 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
|
data/config/routes.rb
ADDED
|
@@ -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
|
data/spec/spec_helper.rb
ADDED
|
@@ -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: []
|