spree_my_favourites 2.2.2 → 2.2.4

Sign up to get free protection for your applications and to get access to all the features.
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