Add new model concern Communitable with relation, callback and associate community.
This commit is contained in:
@@ -6,6 +6,7 @@ class Budget
|
|||||||
include Searchable
|
include Searchable
|
||||||
include Reclassification
|
include Reclassification
|
||||||
include Followable
|
include Followable
|
||||||
|
include Communitable
|
||||||
include Documentable
|
include Documentable
|
||||||
documentable max_documents_allowed: 3,
|
documentable max_documents_allowed: 3,
|
||||||
max_file_size: 3.megabytes,
|
max_file_size: 3.megabytes,
|
||||||
@@ -21,7 +22,6 @@ class Budget
|
|||||||
belongs_to :group
|
belongs_to :group
|
||||||
belongs_to :budget
|
belongs_to :budget
|
||||||
belongs_to :administrator
|
belongs_to :administrator
|
||||||
belongs_to :community
|
|
||||||
|
|
||||||
has_many :valuator_assignments, dependent: :destroy
|
has_many :valuator_assignments, dependent: :destroy
|
||||||
has_many :valuators, through: :valuator_assignments
|
has_many :valuators, through: :valuator_assignments
|
||||||
@@ -72,7 +72,6 @@ class Budget
|
|||||||
|
|
||||||
before_save :calculate_confidence_score
|
before_save :calculate_confidence_score
|
||||||
after_save :recalculate_heading_winners if :incompatible_changed?
|
after_save :recalculate_heading_winners if :incompatible_changed?
|
||||||
before_create :associate_community
|
|
||||||
before_validation :set_responsible_name
|
before_validation :set_responsible_name
|
||||||
before_validation :set_denormalized_ids
|
before_validation :set_denormalized_ids
|
||||||
|
|
||||||
@@ -260,11 +259,6 @@ class Budget
|
|||||||
investments
|
investments
|
||||||
end
|
end
|
||||||
|
|
||||||
def associate_community
|
|
||||||
community = Community.create
|
|
||||||
self.community_id = community.id
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_denormalized_ids
|
def set_denormalized_ids
|
||||||
|
|||||||
14
app/models/concerns/communitable.rb
Normal file
14
app/models/concerns/communitable.rb
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
module Communitable
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
belongs_to :community
|
||||||
|
before_create :associate_community
|
||||||
|
end
|
||||||
|
|
||||||
|
def associate_community
|
||||||
|
community = Community.create
|
||||||
|
self.community_id = community.id
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
@@ -9,6 +9,7 @@ class Proposal < ActiveRecord::Base
|
|||||||
include HasPublicAuthor
|
include HasPublicAuthor
|
||||||
include Graphqlable
|
include Graphqlable
|
||||||
include Followable
|
include Followable
|
||||||
|
include Communitable
|
||||||
include Documentable
|
include Documentable
|
||||||
documentable max_documents_allowed: 3,
|
documentable max_documents_allowed: 3,
|
||||||
max_file_size: 3.megabytes,
|
max_file_size: 3.megabytes,
|
||||||
@@ -23,7 +24,6 @@ class Proposal < ActiveRecord::Base
|
|||||||
|
|
||||||
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
|
belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id'
|
||||||
belongs_to :geozone
|
belongs_to :geozone
|
||||||
belongs_to :community
|
|
||||||
has_many :comments, as: :commentable
|
has_many :comments, as: :commentable
|
||||||
has_many :proposal_notifications
|
has_many :proposal_notifications
|
||||||
|
|
||||||
@@ -44,7 +44,6 @@ class Proposal < ActiveRecord::Base
|
|||||||
before_validation :set_responsible_name
|
before_validation :set_responsible_name
|
||||||
|
|
||||||
before_save :calculate_hot_score, :calculate_confidence_score
|
before_save :calculate_hot_score, :calculate_confidence_score
|
||||||
before_create :associate_community
|
|
||||||
|
|
||||||
scope :for_render, -> { includes(:tags) }
|
scope :for_render, -> { includes(:tags) }
|
||||||
scope :sort_by_hot_score, -> { reorder(hot_score: :desc) }
|
scope :sort_by_hot_score, -> { reorder(hot_score: :desc) }
|
||||||
@@ -182,11 +181,6 @@ class Proposal < ActiveRecord::Base
|
|||||||
(voters + followers).uniq
|
(voters + followers).uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
def associate_community
|
|
||||||
community = Community.create
|
|
||||||
self.community_id = community.id
|
|
||||||
end
|
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def set_responsible_name
|
def set_responsible_name
|
||||||
|
|||||||
Reference in New Issue
Block a user