2015-01-08 17:42:46 +08:00
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
2015-01-14 11:50:59 +08:00
has_many :poll_questions , :dependent = > :destroy , :order = > " #{ PollQuestion . table_name } .question_number "
2015-01-08 17:42:46 +08:00
has_many :poll_users , :dependent = > :destroy
has_many :users , :through = > :poll_users #该文件被哪些用户提交答案过
2015-04-09 15:18:13 +08:00
# 添加课程的poll动态
2015-04-21 15:10:45 +08:00
has_many :acts , :class_name = > 'Activity' , :as = > :act , :dependent = > :destroy
2015-08-11 15:54:05 +08:00
# 课程动态
has_many :course_acts , :class_name = > 'CourseActivity' , :as = > :course_act , :dependent = > :destroy
after_create :act_as_activity , :act_as_course_activity
2015-04-09 15:18:13 +08:00
2015-04-21 15:10:45 +08:00
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 } }
2015-04-09 15:18:13 +08:00
2015-04-21 15:10:45 +08:00
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
2015-04-09 15:18:13 +08:00
2015-04-21 15:10:45 +08:00
def act_as_activity
self . acts << Activity . new ( :user_id = > self . user_id )
end
2015-04-09 15:18:13 +08:00
2015-08-11 15:54:05 +08:00
#课程动态公共表记录
def act_as_course_activity
if self . polls_type == " Course "
self . course_acts << CourseActivity . new ( :user_id = > self . user_id , :course_id = > self . polls_group_id )
end
end
2015-01-08 17:42:46 +08:00
end