socialforge/app/models/poll.rb

31 lines
1.5 KiB
Ruby

class Poll < ActiveRecord::Base
#attr_accessible :closed_at, :polls_group_id, :polls_name, :polls_status, :polls_type, :published_at, :user_id
include Redmine::SafeAttributes
belongs_to :user
has_many :poll_questions, :dependent => :destroy,:order => "#{PollQuestion.table_name}.question_number"
has_many :poll_users, :dependent => :destroy
has_many :users, :through => :poll_users #该文件被哪些用户提交答案过
# 添加课程的poll动态
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
after_create :act_as_activity
acts_as_event :title => Proc.new {|o| "#{l(:label_course_poll)}: #{o.polls_name}" },
:description => :polls_description,
:datetime => :published_at,
:author => :user,
:url => Proc.new {|o| {:controller => 'poll', :action => 'show', :id => o.id}}
acts_as_activity_provider :type => 'polls',
#:permission => :view_course_polls,
:find_options => {:select => "#{Poll.table_name}.*",
:joins => "LEFT JOIN #{Course.table_name} ON ( #{Poll.table_name}.polls_type='Course' AND #{Poll.table_name}.polls_status= 2 AND #{Poll.table_name}.polls_group_id = #{Course.table_name}.id )"},
:timestamp => "#{self.table_name}.published_at",
:author_key => :user_id
def act_as_activity
self.acts << Activity.new(:user_id => self.user_id)
end
end