spree_my_favourites 2.2.2 → 2.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8a09c2b3ecb78d979ede4c8eb194c6933f6c4ac3
4
- data.tar.gz: bd4df516a5a5fa4ac5fa72e7c1acb8f516777266
3
+ metadata.gz: 767fd8140f37c1168e7ae807c1fee928b9e28eb6
4
+ data.tar.gz: d32632f29744a46d183fc95f065b15e0b18656e2
5
5
  SHA512:
6
- metadata.gz: 9680b9b345bd186fa293d45ab4be40fa9c344135a61bba1240ecb28c3c085427659a74822b8037f3017b74a59704cd506bb735e47b913c1d7a683a7c53792f79
7
- data.tar.gz: bb72e3e562a83520078b8443391d69d2a2edc7f9c010b07c97e4401a53c73c65c1b6833d5ca65feb71d7a08a745e69dd22f79f85d8d4e540a31371aaa2554f42
6
+ metadata.gz: c09a6229ea8304c76722c578ee73bef7b1e6774c107a8f0e74ac93c5177950266a2675df1a6a8d9b75d989151f20393c757bc142f41170c2b6f584bca7eb01a3
7
+ data.tar.gz: 48313c8636310f1a590bfede83da3474484e0b17e98ab48e32f5f13cecb5ea59cb8244bcde424b9a684d64410908cf1e76b414b62b6dcea0ec5c2873d1bbf8ef
@@ -37,3 +37,19 @@
37
37
  }
38
38
  }
39
39
  }
40
+
41
+ @media screen and (max-width: '768px') {
42
+
43
+ #my-account table {
44
+
45
+ td.favourite-image {
46
+ display: none !important;
47
+ }
48
+
49
+ th, td {
50
+ width: 100% !important;
51
+ display: block;
52
+ text-align: center;
53
+ }
54
+ }
55
+ }
@@ -2,26 +2,32 @@ module Spree
2
2
  module Account
3
3
  class FavouritesController < Spree::StoreController
4
4
 
5
+ before_filter :check_logged_in_user
6
+
5
7
  def index
6
8
  @user = try_spree_current_user
7
9
  if @user
8
- line_items = Spree::LineItem.includes(:variant, order: [:user]).where(['spree_orders.user_id = ?', @user.id]).all
9
- ordered_items = line_items.inject({}) do |result, line_item|
10
- if result[line_item.variant.sku]
11
- result[line_item.variant.sku][:number_of_orders] = result[line_item.variant.sku][:number_of_orders] + 1
12
- else
13
- result[line_item.variant.sku] = {variant: line_item.variant, number_of_orders: 1}
14
- end
15
- result
16
- end
10
+ @line_items_by_variant = Spree::Variant.includes(line_items: [:order])
11
+ .where(['spree_orders.email = ?','francisco@yourgrocer.com.au'])
12
+ .where(['spree_orders.completed_at IS NOT NULL'])
13
+ .references(:orders).group('spree_variants.id')
14
+ .order('COUNT(spree_line_items.id) DESC').page(params[:page] || 1).per(15)
17
15
 
18
- @favourites = ordered_items.values
19
- @favourites = @favourites.sort_by{|favourite| favourite[:number_of_orders]}.reverse
16
+ @favourites = []
17
+ @line_items_by_variant.count('spree_line_items.id').each do |variant_id, number_of_orders|
18
+ @favourites << {variant: Spree::Variant.find(variant_id), number_of_orders: number_of_orders}
19
+ end
20
20
  else
21
21
  unauthorized
22
22
  end
23
23
  end
24
24
 
25
+ private
26
+
27
+ def check_logged_in_user
28
+ redirect_to spree_login_path unless try_spree_current_user
29
+ end
30
+
25
31
  end
26
32
  end
27
33
  end
@@ -2,19 +2,23 @@ module Spree
2
2
  module Account
3
3
  class OrdersController < Spree::StoreController
4
4
 
5
+ before_filter :check_logged_in_user
6
+
5
7
  def index
6
- if try_spree_current_user
7
- @user = try_spree_current_user
8
- @orders = @user.orders.complete.order('completed_at desc')
9
- else
10
- unauthorized
11
- end
8
+ @user = try_spree_current_user
9
+ @orders = @user.orders.complete.order('completed_at desc')
12
10
  end
13
11
 
14
12
  def accurate_title
15
13
  Spree.t(:my_account)
16
14
  end
17
15
 
16
+ private
17
+
18
+ def check_logged_in_user
19
+ redirect_to spree_login_path unless try_spree_current_user
20
+ end
21
+
18
22
  end
19
23
  end
20
24
  end
@@ -6,5 +6,10 @@
6
6
  %tbody
7
7
  - favourites.each do |favourite|
8
8
  %tr
9
+ %td.favourite-image
10
+ - if variant.images.length == 0
11
+ = link_to mini_image(variant.product), variant.product
12
+ - else
13
+ = link_to image_tag(variant.images.first.attachment.url(:small)), variant.product
9
14
  %td.favourite-description= favourite[:variant].name
10
15
  %td.favourite-number-orders= favourite[:number_of_orders]
@@ -4,5 +4,7 @@
4
4
  .account-my-favourites(data-hook="account_my_favourites")
5
5
  - if @favourites.present?
6
6
  = render partial: "spree/account/favourites/table", locals: {favourites: @favourites}
7
+
8
+ = paginate(@line_items_by_variant)
7
9
  - else
8
10
  %p= Spree.t(:you_have_no_orders_yet)
@@ -16,7 +16,7 @@ describe Spree::Account::FavouritesController do
16
16
  it 'should redirect to login if user is not logged in' do
17
17
  controller.stub(:spree_current_user).and_return nil
18
18
  spree_get :index
19
- response.status.should == 401
19
+ response.should redirect_to(spree.login_path)
20
20
  end
21
21
 
22
22
  end
@@ -23,7 +23,7 @@ describe Spree::Account::OrdersController do
23
23
  it 'should redirect to login if user is not logged in' do
24
24
  controller.stub(:spree_current_user).and_return nil
25
25
  spree_get :index
26
- response.status.should == 401
26
+ response.should redirect_to(spree.login_path)
27
27
  end
28
28
 
29
29
  end
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  s.platform = Gem::Platform::RUBY
4
4
  s.name = 'spree_my_favourites'
5
- s.version = '2.2.2'
5
+ s.version = '2.2.4'
6
6
  s.summary = 'Adds My Favourites tab to My Account section of the website'
7
7
  s.required_ruby_version = '>= 2.0.0'
8
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_my_favourites
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francisco Trindade