39 lines
1.2 KiB
Ruby
39 lines
1.2 KiB
Ruby
class BulkUpdateRequest < ActiveRecord::Base
|
|
attr_accessor :title, :reason
|
|
|
|
belongs_to :user
|
|
belongs_to :forum_topic
|
|
|
|
validates_presence_of :user
|
|
validates_presence_of :script
|
|
validates_presence_of :title
|
|
validates_inclusion_of :status, :in => %w(pending approved rejected)
|
|
attr_accessible :user_id, :forum_topic_id, :script, :title, :reason
|
|
attr_accessible :status, :as => [:admin]
|
|
before_validation :initialize_attributes, :on => :create
|
|
after_create :create_forum_topic
|
|
|
|
def approve!
|
|
AliasAndImplicationImporter.new(script, forum_topic_id, "1").process!
|
|
update_attribute(:status, "approved")
|
|
end
|
|
|
|
def create_forum_topic
|
|
forum_topic = ForumTopic.create(:title => "[bulk] #{title}", :category_id => 1, :original_post_attributes => {:body => reason_with_link})
|
|
update_attribute(:forum_topic_id, forum_topic.id)
|
|
end
|
|
|
|
def reason_with_link
|
|
"[code]\n#{script}\n[/code]\n\nh4. Reason\n\n#{reason}\n\n\"Link to request\":/bulk_update_requests/#{id}\n"
|
|
end
|
|
|
|
def reject!
|
|
update_attribute(:status, "rejected")
|
|
end
|
|
|
|
def initialize_attributes
|
|
self.user_id = CurrentUser.user.id unless self.user_id
|
|
self.status = "pending"
|
|
end
|
|
end
|