solidus_reviews 1.1.1 → 1.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 (27) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +35 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +13 -11
  5. data/README.md +1 -1
  6. data/app/decorators/controllers/solidus_reviews/spree/admin/products_controller_decorator.rb +19 -0
  7. data/app/decorators/helpers/solidus_reviews/spree/api/api_helpers_decorator.rb +33 -0
  8. data/app/decorators/models/solidus_reviews/spree/product_decorator.rb +30 -0
  9. data/app/decorators/models/solidus_reviews/spree/user_decorator.rb +15 -0
  10. data/app/models/spree/feedback_review.rb +1 -1
  11. data/app/models/spree/review.rb +2 -2
  12. data/lib/solidus_reviews.rb +1 -1
  13. data/lib/spree_reviews/engine.rb +0 -2
  14. data/solidus_reviews.gemspec +4 -4
  15. data/spec/controllers/{admin → spree/admin}/feedback_reviews_controller_spec.rb +0 -0
  16. data/spec/controllers/{admin → spree/admin}/review_settings_controller_spec.rb +0 -0
  17. data/spec/controllers/{admin → spree/admin}/reviews_controller_spec.rb +0 -0
  18. data/spec/controllers/{feedback_reviews_controller_spec.rb → spree/feedback_reviews_controller_spec.rb} +0 -0
  19. data/spec/controllers/{products_controller_spec.rb → spree/products_controller_spec.rb} +0 -0
  20. data/spec/controllers/{reviews_controller_spec.rb → spree/reviews_controller_spec.rb} +0 -0
  21. data/spec/spec_helper.rb +10 -25
  22. metadata +41 -47
  23. data/.travis.yml +0 -31
  24. data/app/controllers/spree/products_controller_decorator.rb +0 -7
  25. data/app/helpers/spree/api/api_helpers_decorator.rb +0 -21
  26. data/app/models/spree/product_decorator.rb +0 -22
  27. data/app/models/spree/user_decorator.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9cabc6589687760227a9ba4c781a2d8b61fad18d6bdc08bff138cdeb257180d
4
- data.tar.gz: 4970f27446bff1c1c52749b068fc40abd7dd2ed5cc080727b442b3d3f11ae3f8
3
+ metadata.gz: 6fc709261f34b4979904d11cceeb17b22a57be36089f37f77dea475262506c24
4
+ data.tar.gz: 9a3b6b6f70b0867534f634426da005d312db19e21d5633bb9e5ca2e8ab6ba3ec
5
5
  SHA512:
6
- metadata.gz: abf9e6d511a7165baad650338a369500f9bdd94e9c2c283ab1c7104b58e5571e91c5ad4d221b4692a263197df05ce5794e9b6813782721fac9cbdab982c0d806
7
- data.tar.gz: ecb8b8beed8ef58d25e104aabde8a01b4f28fb235997edefb22752f538c02a79f297ff36d68ff627f86e31923c170f9465ac762ff9c50143dcb98ed48c27f1b7
6
+ metadata.gz: 8c4eaa7f6e301a830b196bd194c897a670a8c193607fe98542890625ed6a3d19b54c7ce8b8df9678ba45bc3db114b0a358c58d053a93be0e438b4fa6354939fe
7
+ data.tar.gz: e2d8efba5a9ba5602318c40e1bcccb16291f49a68c577e76acf2db42b37e879bb9adfcbc56367b47dbfa84092964bdfe199e7aacb47b85c071c94d134c7906e4
@@ -0,0 +1,35 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # Always take the latest version of the orb, this allows us to
5
+ # run specs against Solidus supported versions only without the need
6
+ # to change this configuration every time a Solidus version is released
7
+ # or goes EOL.
8
+ solidusio_extensions: solidusio/extensions@volatile
9
+
10
+ jobs:
11
+ run-specs-with-postgres:
12
+ executor: solidusio_extensions/postgres
13
+ steps:
14
+ - solidusio_extensions/run-tests
15
+ run-specs-with-mysql:
16
+ executor: solidusio_extensions/mysql
17
+ steps:
18
+ - solidusio_extensions/run-tests
19
+
20
+ workflows:
21
+ "Run specs on supported Solidus versions":
22
+ jobs:
23
+ - run-specs-with-postgres
24
+ - run-specs-with-mysql
25
+ "Weekly run specs against master":
26
+ triggers:
27
+ - schedule:
28
+ cron: "0 0 * * 4" # every Thursday
29
+ filters:
30
+ branches:
31
+ only:
32
+ - master
33
+ jobs:
34
+ - run-specs-with-postgres
35
+ - run-specs-with-mysql
data/.gitignore CHANGED
@@ -10,3 +10,4 @@ coverage
10
10
  .rvmrc
11
11
  .ruby-version
12
12
  .ruby-gemset
13
+ spec/examples.txt
data/Gemfile CHANGED
@@ -5,25 +5,27 @@ source 'https://rubygems.org'
5
5
  branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
6
6
  gem 'solidus', git: 'https://github.com/solidusio/solidus.git', branch: branch
7
7
  gem 'solidus_auth_devise'
8
+
9
+ # Needed to help Bundler figure out how to resolve dependencies, otherwise it takes forever to
10
+ # resolve them
11
+ if branch == 'master' || Gem::Version.new(branch[1..-1]) >= Gem::Version.new('2.10.0')
12
+ gem 'rails', '~> 6.0'
13
+ else
14
+ gem 'rails', '~> 5.0'
15
+ end
16
+
8
17
  gem 'puma'
9
18
  gem 'rails-controller-testing', group: :test
10
19
 
11
- if ENV['DB'] == 'mysql'
20
+ case ENV['DB']
21
+ when 'mysql'
12
22
  gem 'mysql2', '~> 0.4.10'
13
- else
23
+ when 'postgres'
14
24
  gem 'pg', '~> 0.21'
15
25
  end
16
26
 
17
27
  group :development, :test do
18
- if branch < 'v2.5'
19
- gem 'factory_bot', '4.10.0'
20
- else
21
- gem 'factory_bot', '> 4.10.0'
22
- end
23
-
24
- gem 'pry-rails'
25
- gem 'selenium-webdriver'
26
- gem 'webdrivers'
28
+ gem 'factory_bot', '> 4.10.0'
27
29
  end
28
30
 
29
31
  gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Reviews
2
2
 
3
- [![Build Status](https://travis-ci.org/solidusio-contrib/solidus_reviews.svg?branch=master)](https://travis-ci.org/solidusio-contrib/solidus_reviews)
3
+ [![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_reviews.svg?style=svg)](https://circleci.com/gh/solidusio-contrib/solidus_reviews)
4
4
 
5
5
  Straightforward review/rating functionality, updated for
6
6
  [Solidus](https://solidus.io). While the Gem name has changed, the module
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusReviews
4
+ module Spree
5
+ module ProductsControllerDecorator
6
+ def self.prepended(base)
7
+ base.class_eval do
8
+ helper ::Spree::ReviewsHelper
9
+ end
10
+
11
+ [:avg_rating, :reviews_count].each do |attribute|
12
+ ::Spree::PermittedAttributes.product_attributes << attribute
13
+ end
14
+ end
15
+
16
+ ::Spree::ProductsController.prepend self
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusReviews
4
+ module Spree
5
+ module Api
6
+ module ApiHelpersDecorator
7
+ def self.prepended(base)
8
+ base.module_eval do
9
+ @@review_attributes = [
10
+ :id, :product_id, :name, :location, :rating, :title, :review, :approved,
11
+ :created_at, :updated_at, :user_id, :ip_address, :locale, :show_identifier,
12
+ :verified_purchaser
13
+ ]
14
+
15
+ @@feedback_review_attributes = [
16
+ :id, :user_id, :review_id, :rating, :comment, :created_at, :updated_at, :locale
17
+ ]
18
+
19
+ def review_attributes
20
+ @@review_attributes
21
+ end
22
+
23
+ def feedback_review_attributes
24
+ @@feedback_review_attributes
25
+ end
26
+ end
27
+ end
28
+
29
+ ::Spree::Api::ApiHelpers.prepend self
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+ module SolidusReviews
3
+ module Spree
4
+ module ProductDecorator
5
+ def self.prepended(base)
6
+ base.class_eval do
7
+ has_many :reviews
8
+ end
9
+ end
10
+
11
+ def stars
12
+ avg_rating.try(:round) || 0
13
+ end
14
+
15
+ def recalculate_rating
16
+ reviews_count = reviews.reload.default_approval_filter.count
17
+
18
+ self.reviews_count = reviews_count
19
+ if reviews_count > 0
20
+ self.avg_rating = '%.1f' % (reviews.default_approval_filter.sum(:rating).to_f / reviews_count)
21
+ else
22
+ self.avg_rating = 0
23
+ end
24
+ save
25
+ end
26
+
27
+ ::Spree::Product.prepend self
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusReviews
4
+ module Spree
5
+ module UserDecorator
6
+ def self.prepended(base)
7
+ base.class_eval do
8
+ has_many :reviews, class_name: 'Spree::Review'
9
+ end
10
+ end
11
+
12
+ ::Spree.user_class.prepend self
13
+ end
14
+ end
15
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::FeedbackReview < ActiveRecord::Base
4
- belongs_to :user, class_name: Spree.user_class.to_s
4
+ belongs_to :user, class_name: Spree.user_class.to_s, optional: true
5
5
 
6
6
  belongs_to :review, dependent: :destroy
7
7
  validates :review, presence: true
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::Review < ActiveRecord::Base
4
- belongs_to :product, touch: true
5
- belongs_to :user, class_name: Spree.user_class.to_s
4
+ belongs_to :product, touch: true, optional: true
5
+ belongs_to :user, class_name: Spree.user_class.to_s, optional: true
6
6
  has_many :feedback_reviews
7
7
  has_many :images, -> { order(:position) }, as: :viewable,
8
8
  dependent: :destroy, class_name: "Spree::Image"
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'solidus'
4
+ require 'solidus_support'
4
5
  require 'sass/rails'
5
6
  require 'deface'
6
- require 'solidus_auth_devise'
7
7
  require 'spree_reviews/engine'
8
8
  require 'coffee_script'
@@ -6,8 +6,6 @@ module SpreeReviews
6
6
  isolate_namespace Spree
7
7
  engine_name 'solidus_reviews'
8
8
 
9
- config.autoload_paths += %W(#{config.root}/lib)
10
-
11
9
  def self.activate
12
10
  Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
13
11
  Rails.configuration.cache_classes ? require(c) : load(c)
@@ -3,7 +3,7 @@
3
3
  Gem::Specification.new do |s|
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.name = 'solidus_reviews'
6
- s.version = '1.1.1'
6
+ s.version = '1.2.0'
7
7
  s.summary = 'Basic review and ratings facility for Solidus'
8
8
  s.authors = ['Solidus Contrib']
9
9
  s.description = s.summary
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_dependency 'deface', '~> 1'
21
21
  s.add_dependency 'solidus', ['>= 1.4', '< 3']
22
- s.add_dependency 'solidus_auth_devise', ['>= 1.0', '< 3']
23
22
  s.add_dependency 'solidus_support', '~> 0.1'
24
23
 
25
24
  s.add_development_dependency 'capybara'
@@ -29,9 +28,10 @@ Gem::Specification.new do |s|
29
28
  s.add_development_dependency 'ffaker'
30
29
  s.add_development_dependency 'poltergeist'
31
30
  s.add_development_dependency 'pry'
32
- s.add_development_dependency 'rspec-rails'
31
+ s.add_development_dependency 'rspec-rails', '~> 4.0.0.beta2'
33
32
  s.add_development_dependency 'rubocop', '~> 0.53.0'
34
33
  s.add_development_dependency 'sass-rails'
34
+ s.add_development_dependency 'selenium-webdriver'
35
35
  s.add_development_dependency 'simplecov'
36
- s.add_development_dependency 'sqlite3', '~> 1.3.6'
36
+ s.add_development_dependency 'sqlite3'
37
37
  end
@@ -1,41 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'simplecov'
4
- SimpleCov.start 'rails'
3
+ require "simplecov"
4
+ SimpleCov.start "rails"
5
5
 
6
- ENV["RAILS_ENV"] = "test"
6
+ ENV["RAILS_ENV"] ||= "test"
7
7
 
8
8
  require File.expand_path('dummy/config/environment.rb', __dir__)
9
9
 
10
- # Requires factories and other useful helpers defined in spree_core.
11
10
  require "solidus_support/extension/feature_helper"
12
11
  require 'spree/testing_support/controller_requests'
13
- require 'selenium/webdriver'
12
+ require 'spree/testing_support/capybara_ext'
14
13
 
15
14
  Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
16
15
 
17
16
  require 'solidus_reviews/factories'
18
17
 
19
18
  RSpec.configure do |config|
20
- config.include Spree::TestingSupport::ControllerRequests, type: :controller
21
-
22
19
  config.infer_spec_type_from_file_location!
23
- config.use_transactional_fixtures = false
24
-
25
- Capybara.register_driver :selenium_chrome_headless do |app|
26
- browser_options = ::Selenium::WebDriver::Chrome::Options.new
27
- browser_options.args << '--headless'
28
- browser_options.args << '--disable-gpu'
29
- browser_options.args << '--window-size=1440,1080'
30
- Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
31
- end
32
-
33
- Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :selenium_chrome_headless).to_sym
34
-
35
- if Gem.loaded_specs['solidus'].version < Gem::Version.new('2.4')
36
- config.include VersionCake::TestHelpers, type: :controller
37
- config.before(:each, type: :controller) do
38
- set_request_version('', 1)
39
- end
40
- end
20
+ config.raise_errors_for_deprecations!
21
+
22
+ config.example_status_persistence_file_path = "./spec/examples.txt"
23
+
24
+ config.include Spree::TestingSupport::UrlHelpers
25
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
41
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_reviews
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Contrib
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-15 00:00:00.000000000 Z
11
+ date: 2019-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -44,26 +44,6 @@ dependencies:
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '3'
47
- - !ruby/object:Gem::Dependency
48
- name: solidus_auth_devise
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '1.0'
54
- - - "<"
55
- - !ruby/object:Gem::Version
56
- version: '3'
57
- type: :runtime
58
- prerelease: false
59
- version_requirements: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: '1.0'
64
- - - "<"
65
- - !ruby/object:Gem::Version
66
- version: '3'
67
47
  - !ruby/object:Gem::Dependency
68
48
  name: solidus_support
69
49
  requirement: !ruby/object:Gem::Requirement
@@ -180,16 +160,16 @@ dependencies:
180
160
  name: rspec-rails
181
161
  requirement: !ruby/object:Gem::Requirement
182
162
  requirements:
183
- - - ">="
163
+ - - "~>"
184
164
  - !ruby/object:Gem::Version
185
- version: '0'
165
+ version: 4.0.0.beta2
186
166
  type: :development
187
167
  prerelease: false
188
168
  version_requirements: !ruby/object:Gem::Requirement
189
169
  requirements:
190
- - - ">="
170
+ - - "~>"
191
171
  - !ruby/object:Gem::Version
192
- version: '0'
172
+ version: 4.0.0.beta2
193
173
  - !ruby/object:Gem::Dependency
194
174
  name: rubocop
195
175
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +198,20 @@ dependencies:
218
198
  - - ">="
219
199
  - !ruby/object:Gem::Version
220
200
  version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: selenium-webdriver
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
221
215
  - !ruby/object:Gem::Dependency
222
216
  name: simplecov
223
217
  requirement: !ruby/object:Gem::Requirement
@@ -236,26 +230,26 @@ dependencies:
236
230
  name: sqlite3
237
231
  requirement: !ruby/object:Gem::Requirement
238
232
  requirements:
239
- - - "~>"
233
+ - - ">="
240
234
  - !ruby/object:Gem::Version
241
- version: 1.3.6
235
+ version: '0'
242
236
  type: :development
243
237
  prerelease: false
244
238
  version_requirements: !ruby/object:Gem::Requirement
245
239
  requirements:
246
- - - "~>"
240
+ - - ">="
247
241
  - !ruby/object:Gem::Version
248
- version: 1.3.6
242
+ version: '0'
249
243
  description: Basic review and ratings facility for Solidus
250
244
  email:
251
245
  executables: []
252
246
  extensions: []
253
247
  extra_rdoc_files: []
254
248
  files:
249
+ - ".circleci/config.yml"
255
250
  - ".gitignore"
256
251
  - ".rspec"
257
252
  - ".rubocop.yml"
258
- - ".travis.yml"
259
253
  - CONTRIBUTING.md
260
254
  - Gemfile
261
255
  - LICENSE.md
@@ -271,16 +265,16 @@ files:
271
265
  - app/controllers/spree/admin/review_settings_controller.rb
272
266
  - app/controllers/spree/admin/reviews_controller.rb
273
267
  - app/controllers/spree/feedback_reviews_controller.rb
274
- - app/controllers/spree/products_controller_decorator.rb
275
268
  - app/controllers/spree/reviews_controller.rb
276
- - app/helpers/spree/api/api_helpers_decorator.rb
269
+ - app/decorators/controllers/solidus_reviews/spree/admin/products_controller_decorator.rb
270
+ - app/decorators/helpers/solidus_reviews/spree/api/api_helpers_decorator.rb
271
+ - app/decorators/models/solidus_reviews/spree/product_decorator.rb
272
+ - app/decorators/models/solidus_reviews/spree/user_decorator.rb
277
273
  - app/helpers/spree/reviews_helper.rb
278
274
  - app/models/spree/feedback_review.rb
279
- - app/models/spree/product_decorator.rb
280
275
  - app/models/spree/review.rb
281
276
  - app/models/spree/reviews_ability.rb
282
277
  - app/models/spree/reviews_configuration.rb
283
- - app/models/spree/user_decorator.rb
284
278
  - app/overrides/add_reviews_after_product_properties.rb
285
279
  - app/overrides/add_reviews_tab_to_admin.rb
286
280
  - app/overrides/add_reviews_to_admin_configuration_sidebar.rb
@@ -347,13 +341,13 @@ files:
347
341
  - lib/solidus_reviews/factories/review_factory.rb
348
342
  - lib/spree_reviews/engine.rb
349
343
  - solidus_reviews.gemspec
350
- - spec/controllers/admin/feedback_reviews_controller_spec.rb
351
- - spec/controllers/admin/review_settings_controller_spec.rb
352
- - spec/controllers/admin/reviews_controller_spec.rb
353
- - spec/controllers/feedback_reviews_controller_spec.rb
354
- - spec/controllers/products_controller_spec.rb
355
- - spec/controllers/reviews_controller_spec.rb
344
+ - spec/controllers/spree/admin/feedback_reviews_controller_spec.rb
345
+ - spec/controllers/spree/admin/review_settings_controller_spec.rb
346
+ - spec/controllers/spree/admin/reviews_controller_spec.rb
356
347
  - spec/controllers/spree/api/reviews_controller_spec.rb
348
+ - spec/controllers/spree/feedback_reviews_controller_spec.rb
349
+ - spec/controllers/spree/products_controller_spec.rb
350
+ - spec/controllers/spree/reviews_controller_spec.rb
357
351
  - spec/features/admin_spec.rb
358
352
  - spec/features/reviews_spec.rb
359
353
  - spec/helpers/review_helper_spec.rb
@@ -389,13 +383,13 @@ signing_key:
389
383
  specification_version: 4
390
384
  summary: Basic review and ratings facility for Solidus
391
385
  test_files:
392
- - spec/controllers/admin/feedback_reviews_controller_spec.rb
393
- - spec/controllers/admin/review_settings_controller_spec.rb
394
- - spec/controllers/admin/reviews_controller_spec.rb
395
- - spec/controllers/feedback_reviews_controller_spec.rb
396
- - spec/controllers/products_controller_spec.rb
397
- - spec/controllers/reviews_controller_spec.rb
386
+ - spec/controllers/spree/admin/feedback_reviews_controller_spec.rb
387
+ - spec/controllers/spree/admin/review_settings_controller_spec.rb
388
+ - spec/controllers/spree/admin/reviews_controller_spec.rb
398
389
  - spec/controllers/spree/api/reviews_controller_spec.rb
390
+ - spec/controllers/spree/feedback_reviews_controller_spec.rb
391
+ - spec/controllers/spree/products_controller_spec.rb
392
+ - spec/controllers/spree/reviews_controller_spec.rb
399
393
  - spec/features/admin_spec.rb
400
394
  - spec/features/reviews_spec.rb
401
395
  - spec/helpers/review_helper_spec.rb
@@ -1,31 +0,0 @@
1
- cache: bundler
2
- dist: trusty
3
- language: ruby
4
- rvm:
5
- - 2.4.3
6
- addons:
7
- chrome: stable
8
- apt:
9
- packages:
10
- - chromium-chromedriver
11
- before_install:
12
- - ln -s /usr/lib/chromium-browser/chromedriver ~/bin/chromedriver
13
- before_script:
14
- - export DISPLAY=:99.0
15
- - sh -e /etc/init.d/xvfb start
16
- - sleep 3 # give xvfb some time to start
17
-
18
- env:
19
- matrix:
20
- - SOLIDUS_BRANCH=v2.5 DB=postgres
21
- - SOLIDUS_BRANCH=v2.6 DB=postgres
22
- - SOLIDUS_BRANCH=v2.7 DB=postgres
23
- - SOLIDUS_BRANCH=v2.8 DB=postgres
24
- - SOLIDUS_BRANCH=v2.9 DB=postgres
25
- - SOLIDUS_BRANCH=master DB=postgres
26
- - SOLIDUS_BRANCH=v2.5 DB=mysql
27
- - SOLIDUS_BRANCH=v2.6 DB=mysql
28
- - SOLIDUS_BRANCH=v2.7 DB=mysql
29
- - SOLIDUS_BRANCH=v2.8 DB=mysql
30
- - SOLIDUS_BRANCH=v2.9 DB=mysql
31
- - SOLIDUS_BRANCH=master DB=mysql
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Spree::ProductsController.class_eval do
4
- helper Spree::ReviewsHelper
5
-
6
- [:avg_rating, :reviews_count].each { |attrib| Spree::PermittedAttributes.product_attributes << attrib }
7
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Spree::Api::ApiHelpers.module_eval do
4
- @@review_attributes = [
5
- :id, :product_id, :name, :location, :rating, :title, :review, :approved,
6
- :created_at, :updated_at, :user_id, :ip_address, :locale, :show_identifier,
7
- :verified_purchaser
8
- ]
9
-
10
- @@feedback_review_attributes = [
11
- :id, :user_id, :review_id, :rating, :comment, :created_at, :updated_at, :locale
12
- ]
13
-
14
- def review_attributes
15
- @@review_attributes
16
- end
17
-
18
- def feedback_review_attributes
19
- @@feedback_review_attributes
20
- end
21
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Add access to reviews/ratings to the product model
4
- Spree::Product.class_eval do
5
- has_many :reviews
6
-
7
- def stars
8
- avg_rating.try(:round) || 0
9
- end
10
-
11
- def recalculate_rating
12
- reviews_count = reviews.reload.default_approval_filter.count
13
-
14
- self.reviews_count = reviews_count
15
- if reviews_count > 0
16
- self.avg_rating = '%.1f' % (reviews.default_approval_filter.sum(:rating).to_f / reviews_count)
17
- else
18
- self.avg_rating = 0
19
- end
20
- save
21
- end
22
- end
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Spree.user_class.has_many :reviews, class_name: 'Spree::Review'