From 6c04e4e93bf046291254f2683c26404f95bab920 Mon Sep 17 00:00:00 2001 From: Prakash Date: Sun, 22 Aug 2021 20:19:56 +0545 Subject: [PATCH 1/5] Support api mode (#189) - Only prepend ProductsControllerDecorator if ::Spree::Core::Engine.frontend_available? --- app/controllers/spree/products_controller_decorator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/spree/products_controller_decorator.rb b/app/controllers/spree/products_controller_decorator.rb index 42c554e3..33016530 100644 --- a/app/controllers/spree/products_controller_decorator.rb +++ b/app/controllers/spree/products_controller_decorator.rb @@ -4,6 +4,6 @@ def self.prepended(base) base.helper Spree::ReviewsHelper end - ::Spree::ProductsController.prepend self if ::Spree::ProductsController.included_modules.exclude?(self) + ::Spree::ProductsController.prepend self if ::Spree::Core::Engine.frontend_available? && ::Spree::ProductsController.included_modules.exclude?(self) end end From c5f10aa09a3a6037f46bf6d3abe180c7ceab07bd Mon Sep 17 00:00:00 2001 From: Szymon Iwacz Date: Sun, 22 Aug 2021 16:35:07 +0200 Subject: [PATCH 2/5] Change integer id columns into bigint (#188) --- ...hange_product_id_and_user_id_type_for_spree_reviews.rb | 8 ++++++++ ...er_id_and_review_id_type_for_spree_feedback_reviews.rb | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 db/migrate/20210728110635_change_product_id_and_user_id_type_for_spree_reviews.rb create mode 100644 db/migrate/20210728110707_change_user_id_and_review_id_type_for_spree_feedback_reviews.rb diff --git a/db/migrate/20210728110635_change_product_id_and_user_id_type_for_spree_reviews.rb b/db/migrate/20210728110635_change_product_id_and_user_id_type_for_spree_reviews.rb new file mode 100644 index 00000000..0f120369 --- /dev/null +++ b/db/migrate/20210728110635_change_product_id_and_user_id_type_for_spree_reviews.rb @@ -0,0 +1,8 @@ +class ChangeProductIdAndUserIdTypeForSpreeReviews < ActiveRecord::Migration[4.2] + def change + change_table(:spree_reviews) do |t| + t.change :product_id, :bigint + t.change :user_id, :bigint + end + end +end diff --git a/db/migrate/20210728110707_change_user_id_and_review_id_type_for_spree_feedback_reviews.rb b/db/migrate/20210728110707_change_user_id_and_review_id_type_for_spree_feedback_reviews.rb new file mode 100644 index 00000000..4ea51acd --- /dev/null +++ b/db/migrate/20210728110707_change_user_id_and_review_id_type_for_spree_feedback_reviews.rb @@ -0,0 +1,8 @@ +class ChangeUserIdAndReviewIdTypeForSpreeFeedbackReviews < ActiveRecord::Migration[4.2] + def change + change_table(:spree_feedback_reviews) do |t| + t.change :user_id, :bigint + t.change :review_id, :bigint + end + end +end From e431b43edb727a513d4d6a438cd6a368e0cdfebc Mon Sep 17 00:00:00 2001 From: Channa Ly Date: Sun, 22 Aug 2021 21:35:24 +0700 Subject: [PATCH 3/5] Add support for Khmer language (#191) --- config/locales/km.yml | 68 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 config/locales/km.yml diff --git a/config/locales/km.yml b/config/locales/km.yml new file mode 100644 index 00000000..cc93c8d5 --- /dev/null +++ b/config/locales/km.yml @@ -0,0 +1,68 @@ +--- +km: + activerecord: + attributes: + spree/review: + name: ឈ្មោះរបស់អ្នក + title: ចំណងជើង + review: មាតិកា + rating: ពិន្ទុ + created_at: ថ្ងៃទី + ip_address: IP + user: អ្នកប្រើប្រាស់ + show_identifier: បង្ហាញអត្តសញ្ញាណ + models: + spree/review: + one: ការវាយតម្លៃចំនួន ១ + other: "ការវាយតម្លៃចំនួន %{count}" + spree: + approval_status: ស្ថានភាព + approve: អនុញ្ញាត + approved_reviews: បានអនុញ្ញាត + average_customer_rating: ពិន្ទុមធ្យម + back_reviews: ត្រលប់ទៅការវាយតម្លៃ + based_upon_review_count: + one: ផ្អែកតាមការវាយតម្លៃចំនួន ១ + other: "ផ្អែកតាមការវាយតម្លៃចំនួន %{count}" + by: តាមរយៈ + editing_review_for_html: 'កែប្រែការវាយតម្លៃសម្រាប់ %{link}' + error_approve_review: មានបញ្ហាក្នុងការអនុញ្ញាតការវាយតម្លៃ + error_no_product: ផលិតផលដែលវាយតម្លៃមិនមានលក់ទៀតទេ + feedback: វិចារ + feedback_review_for: "ការវាយតម្លៃ: '%{review}'" + for: សម្រាប់ + from: ពី + info_approve_review: ការវាយតម្លៃត្រូវបានអនុញ្ញាត + leave_us_a_review_for: "សូមមេត្តាជួយដាក់ពិន្ទុ និងវាយតម្លៃសម្រាប់ '%{name}'" + no_reviews_available: "មិនទាន់មានការវាយតម្លៃណាមួយសម្រាប់ផលិតផលនេះទេ" + out_of_5: "ក្នុងពិន្ទុពេញ 5" + rating: ពិន្ទុ + reviews: ការវាយតម្លៃ + admin: + tab: + review_management: ការវាយតម្លៃ + review_successfully_submitted: ការវាយតម្លៃបានដាក់ស្នើរដោយជោគជ័យ + spree_reviews: + feedback_rating: ដាក់ពិន្ទុវិចារ + include_unapproved: បង្ហាញការវាយតម្លៃដែលមិនទាន់បានអនុញ្ញាត + manage_review_settings: កំណត់ការបង្ហាញការវាយតម្លៃ + preview_size: ប្រវែងបង្ហាញការវាយតម្លៃខ្លី + require_login: សូមចូលគណនីដើម្បីធ្វើការវាយតម្លៃ + review_settings: ការកំណត់ការវាយតម្លៃ + show_email: បង្ហាញអ៊ីម៉ែល + track_locale: តាមដានភាសារបស់អ្នកប្រើប្រាស់ + show_identifier: បង្ហាញអត្តសញ្ញាណ + star: + one: "១" + other: "%{count}" + stars: ផ្កាយ + submit_your_review: ដាក់ស្នើរការវាយតម្លៃអ្នក + submitted_on: ដាក់ស្នើរនៅ + unapproved_reviews: មិនទាន់បានអនុញ្ញាត + voice: + one: "1 សម្លេង" + other: "%{count} សម្លេង" + was_this_review_helpful: "តើការវាយតម្លៃនេះមានប្រយោជន៍សម្រាប់អ្នកដែរឬទេ?" + write_your_own_review: ចូលរួមវាយតម្លៃ + you_must_enter_value_for_rating: "សូមមេត្តាដាក់ពិន្ទុ" + anonymous: អនាមិក From 1417bff04462fdc74b29ae821a7f0b27f502fe32 Mon Sep 17 00:00:00 2001 From: edmondchui Date: Sun, 22 Aug 2021 07:35:49 -0700 Subject: [PATCH 4/5] Resolve issue#152 (#187) * Resolve issue#152 Use locale message key name instead of the actual message to resolve error message lookup issue. * Resolve issue#152 Use locale message key name instead of the actual message to resolve error message lookup issue. * Resolve issue#152 Use locale message key name instead of the actual message to resolve error message lookup issue. --- app/models/spree/feedback_review.rb | 2 +- app/models/spree/review.rb | 2 +- config/locales/en.yml | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/models/spree/feedback_review.rb b/app/models/spree/feedback_review.rb index 9124fdbf..0ba02d89 100644 --- a/app/models/spree/feedback_review.rb +++ b/app/models/spree/feedback_review.rb @@ -7,7 +7,7 @@ class Spree::FeedbackReview < ActiveRecord::Base only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 5, - message: Spree.t(:you_must_enter_value_for_rating) + message: :you_must_enter_value_for_rating } default_scope { most_recent_first } diff --git a/app/models/spree/review.rb b/app/models/spree/review.rb index 98398992..6ec56bda 100644 --- a/app/models/spree/review.rb +++ b/app/models/spree/review.rb @@ -11,7 +11,7 @@ class Spree::Review < ActiveRecord::Base only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 5, - message: Spree.t(:you_must_enter_value_for_rating) + message: :you_must_enter_value_for_rating } default_scope { order('spree_reviews.created_at DESC') } diff --git a/config/locales/en.yml b/config/locales/en.yml index 1b6869ca..666de206 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -11,6 +11,10 @@ en: ip_address: IP user: User show_identifier: Show Identifier + errors: + messages: + you_must_enter_value_for_rating: "You must enter a value for rating." + models: spree/review: one: one review @@ -65,5 +69,4 @@ en: other: "%{count} voices" was_this_review_helpful: "Was this review helpful to you?" write_your_own_review: Write your own review - you_must_enter_value_for_rating: "You must enter a value for rating." anonymous: Anonymous From a9343f76e075a1d606e714f1e2b06061fa7976f3 Mon Sep 17 00:00:00 2001 From: Kimsrung Lov Date: Thu, 25 May 2023 14:24:34 +0700 Subject: [PATCH 5/5] Upgrade to support spree v4.5 --- .gitignore | 2 + Gemfile | 6 ++- app/assets/config/spree_reviews_manifest.js | 3 ++ .../spree/feedback_reviews_controller.rb | 2 +- app/controllers/spree/reviews_controller.rb | 2 +- .../spree/api/api_helpers_decorator.rb | 37 ------------------- config/initializers/asset.rb | 1 + .../spree_permitted_attributes.rb | 10 +++++ lib/spree_reviews.rb | 1 + lib/spree_reviews/engine.rb | 5 +++ spec/controllers/products_controller_spec.rb | 2 +- spree_reviews.gemspec | 4 +- 12 files changed, 32 insertions(+), 43 deletions(-) create mode 100644 app/assets/config/spree_reviews_manifest.js delete mode 100644 app/helpers/spree/api/api_helpers_decorator.rb create mode 100644 config/initializers/asset.rb create mode 100644 config/initializers/spree_permitted_attributes.rb diff --git a/.gitignore b/.gitignore index c6dcc215..9390b1bc 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,9 @@ pkg/* spec/dummy coverage .rvmrc +.nvmrc .ruby-version .ruby-gemset +.tool-versions tmp gemfiles/*.gemfile.lock diff --git a/Gemfile b/Gemfile index abf1869b..e8790bca 100644 --- a/Gemfile +++ b/Gemfile @@ -5,8 +5,10 @@ git_source(:github) do |repo_name| "https://github.com/#{repo_name}.git" end -gem 'spree', github: 'spree/spree', branch: 'master' -gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: 'master' +spree_version = '>= 4.5' +gem 'spree', spree_version +gem 'spree_auth_devise', spree_version gem 'rails-controller-testing' + gemspec diff --git a/app/assets/config/spree_reviews_manifest.js b/app/assets/config/spree_reviews_manifest.js new file mode 100644 index 00000000..f6f1455c --- /dev/null +++ b/app/assets/config/spree_reviews_manifest.js @@ -0,0 +1,3 @@ +//= link_tree ../images +//= link_tree ../javascripts +//= link_directory ../stylesheets .css \ No newline at end of file diff --git a/app/controllers/spree/feedback_reviews_controller.rb b/app/controllers/spree/feedback_reviews_controller.rb index a7b48f6d..1b1cd829 100644 --- a/app/controllers/spree/feedback_reviews_controller.rb +++ b/app/controllers/spree/feedback_reviews_controller.rb @@ -27,7 +27,7 @@ def load_review end def permitted_feedback_review_attributes - [:rating, :comment] + permitted_attributes.feedback_review_attributes end def feedback_review_params diff --git a/app/controllers/spree/reviews_controller.rb b/app/controllers/spree/reviews_controller.rb index 1ee8e2e3..9a01aa5a 100644 --- a/app/controllers/spree/reviews_controller.rb +++ b/app/controllers/spree/reviews_controller.rb @@ -39,7 +39,7 @@ def load_product end def permitted_review_attributes - [:rating, :title, :review, :name, :show_identifier] + permitted_attributes.review_attributes end def review_params diff --git a/app/helpers/spree/api/api_helpers_decorator.rb b/app/helpers/spree/api/api_helpers_decorator.rb deleted file mode 100644 index 7472dd3c..00000000 --- a/app/helpers/spree/api/api_helpers_decorator.rb +++ /dev/null @@ -1,37 +0,0 @@ -# frozen_string_literal: true - -module Spree - module Api - module ApiHelpersDecorator - def self.prepended(base) - base.module_eval do - @@review_attributes = [ - :id, :product_id, :name, :location, :rating, :title, :review, :approved, - :created_at, :updated_at, :user_id, :ip_address, :locale, :show_identifier - ] - - @@feedback_review_attributes = [ - :id, :user_id, :review_id, :rating, :comment, :created_at, :updated_at, :locale - ] - - def review_attributes - @@review_attributes - end - - def feedback_review_attributes - @@feedback_review_attributes - end - - reviews_fields = [:avg_rating, :reviews_count] - - reviews_fields.each do |attrib| - ::Spree::PermittedAttributes.product_attributes << attrib - class_variable_set(:@@product_attributes, class_variable_get(:@@product_attributes).push(attrib)) - end - end - end - - ::Spree::Api::ApiHelpers.prepend self if ::Spree::Api::ApiHelpers.included_modules.exclude?(self) - end - end -end diff --git a/config/initializers/asset.rb b/config/initializers/asset.rb new file mode 100644 index 00000000..8aab5511 --- /dev/null +++ b/config/initializers/asset.rb @@ -0,0 +1 @@ +Rails.application.config.assets.precompile << 'spree_reviews_manifest.js' \ No newline at end of file diff --git a/config/initializers/spree_permitted_attributes.rb b/config/initializers/spree_permitted_attributes.rb new file mode 100644 index 00000000..ca935a79 --- /dev/null +++ b/config/initializers/spree_permitted_attributes.rb @@ -0,0 +1,10 @@ +module Spree + module PermittedAttributes + ATTRIBUTES += %i[review_attributes feedback_review_attributes] + mattr_reader *ATTRIBUTES + + @@product_attributes += %i[avg_rating reviews_count] + @@review_attributes = [:rating, :title, :review, :name, :show_identifier] + @@feedback_review_attributes = [:rating, :comment] + end +end diff --git a/lib/spree_reviews.rb b/lib/spree_reviews.rb index 0a22952e..02e50b2b 100644 --- a/lib/spree_reviews.rb +++ b/lib/spree_reviews.rb @@ -1,5 +1,6 @@ require 'spree_core' require 'spree_extension' +require 'spree_backend' require 'spree_reviews/engine' require 'spree_reviews/version' require 'deface' diff --git a/lib/spree_reviews/engine.rb b/lib/spree_reviews/engine.rb index 9c87cbcc..01e30d25 100644 --- a/lib/spree_reviews/engine.rb +++ b/lib/spree_reviews/engine.rb @@ -4,12 +4,17 @@ class Engine < Rails::Engine isolate_namespace Spree engine_name 'spree_reviews' + config.autoload_paths += %W[#{config.root}/lib] # use rspec for tests config.generators do |g| g.test_framework :rspec end initializer 'spree_reviews.environment', before: :load_config_initializers do |_app| + Config = Configuration.new + end + + config.after_initialize do Spree::Reviews::Config = Spree::ReviewSetting.new end diff --git a/spec/controllers/products_controller_spec.rb b/spec/controllers/products_controller_spec.rb index 53d3a36f..adc19a73 100644 --- a/spec/controllers/products_controller_spec.rb +++ b/spec/controllers/products_controller_spec.rb @@ -6,7 +6,7 @@ end it "adds #{attrib} to the set of available attributes from Spree API" do - expect(Spree::Api::ApiHelpers.product_attributes).to include(attrib) + expect(Spree::PermittedAttributes.product_attributes).to include(attrib) end end end diff --git a/spree_reviews.gemspec b/spree_reviews.gemspec index 6fa807ed..045a2ff3 100644 --- a/spree_reviews.gemspec +++ b/spree_reviews.gemspec @@ -20,13 +20,15 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - spree_version = '>= 3.2.0', '< 5.0' + spree_version = '>= 4.5' s.add_dependency 'deface', '~> 1.0' s.add_dependency 'spree_api', spree_version s.add_dependency 'spree_backend', spree_version + s.add_dependency 'spree_frontend', spree_version s.add_dependency 'spree_core', spree_version s.add_dependency 'spree_extension' s.add_development_dependency 'sass-rails' s.add_development_dependency 'spree_dev_tools' + s.add_development_dependency 'pg' end