app/models/peoplefinder/person.rb in peoplefinder-0.0.2 vs app/models/peoplefinder/person.rb in peoplefinder-0.1.0
- old
+ new
@@ -18,19 +18,22 @@
validates :surname, presence: true
has_many :memberships,
-> { includes(:group).order('groups.name') },
dependent: :destroy
has_many :groups, through: :memberships
+ belongs_to :community
accepts_nested_attributes_for :memberships,
allow_destroy: true,
reject_if: proc { |membership| membership['group_id'].blank? }
default_scope { order(surname: :asc, given_name: :asc) }
friendly_id :slug_source, use: :slugged
+ before_save :sanitize_tags
+
def self.namesakes(person)
where(surname: person.surname).
where(given_name: person.given_name).
where.not(id: person.id)
end
@@ -70,13 +73,31 @@
else
Rails.configuration.support_email
end
end
+ def community_name
+ community.try(:name)
+ end
+
+ def self.tag_list
+ Peoplefinder::Person.where('tags is not null').
+ pluck(:tags).flatten.join(',').
+ split(',').uniq.sort.join(',')
+ end
+
private
def group_path(hint_group)
return [] if groups.empty?
paths = groups.map(&:path)
paths.find { |a| a.include?(hint_group) } || paths.first
+ end
+
+ def sanitize_tags
+ if tags
+ self.tags = tags.split(',').map { |tag|
+ tag.strip.capitalize
+ }.sort.join(',')
+ end
end
end