From e02f511b3a69f3c53e2d206e22e433b40cdf649a Mon Sep 17 00:00:00 2001 From: Bertocq Date: Tue, 28 Nov 2017 01:29:02 +0100 Subject: [PATCH] Add times_reported integer attribute to RelatedContent --- app/models/related_content.rb | 8 ++++++++ db/dev_seeds.rb | 1 + ...20171127230716_add_time_reported_to_related_content.rb | 5 +++++ db/schema.rb | 3 ++- db/seeds.rb | 3 +++ 5 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20171127230716_add_time_reported_to_related_content.rb diff --git a/app/models/related_content.rb b/app/models/related_content.rb index 0837cff32..ab72aefe3 100644 --- a/app/models/related_content.rb +++ b/app/models/related_content.rb @@ -1,4 +1,6 @@ class RelatedContent < ActiveRecord::Base + RELATED_CONTENTS_REPORT_THRESHOLD = Setting['related_contents_report_threshold'].to_i + belongs_to :parent_relationable, polymorphic: true belongs_to :child_relationable, polymorphic: true has_one :opposite_related_content, class_name: 'RelatedContent', foreign_key: :related_content_id @@ -12,6 +14,12 @@ class RelatedContent < ActiveRecord::Base after_create :create_opposite_related_content, unless: proc { opposite_related_content.present? } after_destroy :destroy_opposite_related_content, if: proc { opposite_related_content.present? } + scope :not_hidden, -> { where('times_reported <= ?', RELATED_CONTENTS_REPORT_THRESHOLD) } + + def hidden_by_reports? + times_reported > RELATED_CONTENTS_REPORT_THRESHOLD + end + private def create_opposite_related_content diff --git a/db/dev_seeds.rb b/db/dev_seeds.rb index f24efa4da..c2a72e2ed 100644 --- a/db/dev_seeds.rb +++ b/db/dev_seeds.rb @@ -64,6 +64,7 @@ section "Creating Settings" do Setting.create(key: 'map_latitude', value: 51.48) Setting.create(key: 'map_longitude', value: 0.0) Setting.create(key: 'map_zoom', value: 10) + Setting.create(key: 'related_contents_report_threshold', value: 2) end section "Creating Geozones" do diff --git a/db/migrate/20171127230716_add_time_reported_to_related_content.rb b/db/migrate/20171127230716_add_time_reported_to_related_content.rb new file mode 100644 index 000000000..5cca12cf3 --- /dev/null +++ b/db/migrate/20171127230716_add_time_reported_to_related_content.rb @@ -0,0 +1,5 @@ +class AddTimeReportedToRelatedContent < ActiveRecord::Migration + def change + add_column :related_contents, :times_reported, :integer, default: 0 + end +end diff --git a/db/schema.rb b/db/schema.rb index 44bcdf56b..4d426cf9e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20171127171925) do +ActiveRecord::Schema.define(version: 20171127230716) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -859,6 +859,7 @@ ActiveRecord::Schema.define(version: 20171127171925) do t.integer "related_content_id" t.datetime "created_at" t.datetime "updated_at" + t.integer "times_reported", default: 0 end add_index "related_contents", ["child_relationable_type", "child_relationable_id"], name: "index_related_contents_on_child_relationable", using: :btree diff --git a/db/seeds.rb b/db/seeds.rb index 0e49983a5..6ef55067c 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -116,3 +116,6 @@ Setting['proposal_improvement_path'] = nil Setting['map_latitude'] = 51.48 Setting['map_longitude'] = 0.0 Setting['map_zoom'] = 10 + +# Related content +Setting['related_contents_report_threshold'] = 5