Skip to content

Commit 4383138

Browse files
authored
Merge pull request #117 from mamhoff/deface-dsl
Fix Deface loading, add ransack allowlists
2 parents 90d5261 + f85e177 commit 4383138

File tree

7 files changed

+65
-47
lines changed

7 files changed

+65
-47
lines changed

app/models/spree/review.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,23 @@ class Spree::Review < ApplicationRecord
2727
scope :not_approved, -> { where(approved: false) }
2828
scope :default_approval_filter, -> { Spree::Reviews::Config[:include_unapproved_reviews] ? all : approved }
2929

30+
def self.ransackable_attributes(*)
31+
[
32+
"approved",
33+
"name",
34+
"review",
35+
"title"
36+
]
37+
end
38+
39+
def self.ransackable_associations(*)
40+
[
41+
"feedback_reviews",
42+
"product",
43+
"user"
44+
]
45+
end
46+
3047
def feedback_stars
3148
return 0 if feedback_reviews.size <= 0
3249

app/overrides/add_reviews_after_product_properties.rb

Lines changed: 0 additions & 7 deletions
This file was deleted.

app/overrides/add_reviews_tab_to_admin.rb

Lines changed: 0 additions & 20 deletions
This file was deleted.

app/overrides/add_reviews_to_admin_configuration_sidebar.rb

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<!-- insert_after "[data-hook='product_properties']" -->
2+
3+
<%= render "spree/shared/reviews" %>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# frozen_string_literal: true
2+
3+
Rails.application.config.to_prepare do
4+
Spree::Backend::Config.configure do |config|
5+
config.menu_items = config.menu_items.map do |item|
6+
if item.label.to_sym == :settings
7+
# The API of the MenuItem class changes in Solidus 4.2.0
8+
if item.respond_to?(:children)
9+
item.children << Spree::BackendConfiguration::MenuItem.new(
10+
label: :reviews,
11+
condition: -> { can?(:admin, Spree::ReviewsConfiguration) },
12+
url: -> { Spree::Core::Engine.routes.url_helpers.edit_admin_review_settings_path },
13+
match_path: /review_settings/
14+
)
15+
else
16+
item.sections << :reviews
17+
end
18+
elsif item.label.to_sym == :products
19+
if item.respond_to?(:children)
20+
item.children << Spree::BackendConfiguration::MenuItem.new(
21+
label: :reviews,
22+
condition: -> { can?(:admin, Spree::Review) },
23+
url: -> { Spree::Core::Engine.routes.url_helpers.admin_reviews_path },
24+
match_path: /reviews/
25+
)
26+
else
27+
item.sections << :reviews
28+
end
29+
end
30+
item
31+
end
32+
end
33+
end

spec/models/review_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,18 @@
123123
end
124124
end
125125

126+
describe '.ransackable_attributes' do
127+
subject { described_class.ransackable_attributes }
128+
129+
it { is_expected.to contain_exactly("approved", "name", "review", "title") }
130+
end
131+
132+
describe '.ransackable_associations' do
133+
subject { described_class.ransackable_associations }
134+
135+
it { is_expected.to contain_exactly("feedback_reviews", "product", "user") }
136+
end
137+
126138
describe '#recalculate_product_rating' do
127139
let(:product) { create(:product) }
128140
let!(:review) { create(:review, product: product) }

0 commit comments

Comments
 (0)