Made messages more thread-like (replies, editing, etc.)

This commit is contained in:
MrYummy
2017-06-15 14:27:42 +02:00
parent 80026caebc
commit 9b50ec652c
21 changed files with 380 additions and 21 deletions

View File

@@ -4,12 +4,34 @@ class Message < ActiveRecord::Base
belongs_to :user_sender, class_name: "User", foreign_key: "user_sender_id"
belongs_to :user_target, class_name: "User", foreign_key: "user_target_id"
belongs_to :user_editor, class_name: "User", foreign_key: "user_editor_id"
belongs_to :user_hidden, class_name: "User", foreign_key: "user_hidden_id"
validates_presence_of :user_sender, :user_target, :text, :subject
validates_length_of :text, in: 1..8000
validates_length_of :subject, in: 1..2000
has_many :messagereplies
accepts_nested_attributes_for :messagereplies
before_destroy :do_destroy?
def do_destroy?
unless user_hidden || user_sender == user_target
update_attributes(user_hidden: User.current)
return false
else
return true
end
end
def to_s
subject
end
def sender
@sender ||= if self.user_sender.present?
user_sender
@@ -26,6 +48,18 @@ class Message < ActiveRecord::Base
end
end
def editor
@editor ||= (self.user_editor || User.first)
end
def edited?
!!user_editor_id
end
def replies
messagereplies
end
def send_new_message_mail
begin
mail = RedstonerMailer.new_message_mail(user_target, self)