(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id=#{@bid.courses.first.teacher.id}) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id<>#{@bid.courses.first.teacher.id}) AS s_score
FROMhomework_attachesWHEREbid_id=#{@bid.id} ORDER BY
@ -68,6 +68,106 @@ class Attachment < ActiveRecord::Base
before_save:be_user_score# user_score
after_destroy:delete_from_disk
# add by nwb
# 获取所有可公开的资源文件列表
scope:public_attachments,lambda{
#joins(Project.table_name).where("container_type = 'Project' and ")
joins("LEFT JOIN #{Project.table_name} ON #{Attachment.table_name}.container_type='Project' AND #{Project.table_name}.id = #{Attachment.table_name}.container_id and #{Project.table_name}.is_public=1 "+
" LEFT JOIN #{Document.table_name} ON #{Attachment.table_name}.container_type='Project' AND #{Document.table_name}.project_id in "+self.public_project_id+
" LEFT JOIN #{Issue.table_name} ON #{Attachment.table_name}.container_type='Project' AND #{Issue.table_name}.project_id in "+self.public_project_id+
" LEFT JOIN #{Version.table_name} ON #{Attachment.table_name}.container_type='Project' AND #{Version.table_name}.project_id in "+self.public_project_id+
" LEFT JOIN #{WikiPage.table_name} ON #{Attachment.table_name}.container_type='WikiPage' AND #{WikiPage.table_name}.parent_id in "+self.public_wiki_id+
" LEFT JOIN #{Message.table_name} ON #{Attachment.table_name}.container_type='Message' AND #{Message.table_name}.parent_id in "+self.public_board_id+
" LEFT JOIN #{Course.table_name} ON #{Attachment.table_name}.container_type='Course' AND #{Course.table_name}.is_public=1 "+
" LEFT JOIN #{News.table_name} ON #{Attachment.table_name}.container_type='News' AND (#{News.table_name}.project_id in "+self.public_project_id+" OR #{News.table_name}.course_id in "+self.public_course_id+")"+
" LEFT JOIN #{HomeworkAttach.table_name} ON #{Attachment.table_name}.container_type='HomeworkAttach' AND #{HomeworkAttach.table_name}.bid_id in "+self.public_bid_id)
}
# add by nwb
# 公开的项目id列表
defself.public_project_id
idlist="("
projects=Project.all_public
count=projects.count
foriin0...count
project=projects[i]
idlist+="'"+project.id.to_s+"'"
ifi!=count-1
idlist+=","
end
end
idlist+=")"
idlist
end
# add by nwb
# 公开的课程id列表
defself.public_course_id
idlist="("
courses=Course.all_public
count=courses.count
foriin0...count
course=courses[i]
idlist+="'"+course.id.to_s+"'"
ifi!=count-1
idlist=idlist+","
end
end
idlist+=")"
idlist
end
# add by nwb
# 公开的wiki id列表
defself.public_wiki_id
idlist="("
wikis=Wiki.where("project_id in "+public_project_id)
count=wikis.count
foriin0...count
wiki=wikis[i]
idlist+="'"+wiki.id.to_s+"'"
ifi!=count-1
idlist=idlist+","
end
end
idlist+=")"
idlist
end
# add by nwb
# 公开的board id列表
defself.public_board_id
idlist="("
boards=Board.where("project_id in "+public_project_id+" or course_id in "+public_course_id)
count=boards.count
foriin0...count
board=boards[i]
idlist+="'"+board.id.to_s+"'"
ifi!=count-1
idlist=idlist+","
end
end
idlist+=")"
idlist
end
# add by nwb
# 公开的bid id列表
defself.public_bid_id
idlist="("
bids=Bid.where("reward_type=3")
count=bids.count
foriin0...count
bid=bids[i]
idlist+="'"+bid.id.to_s+"'"
ifi!=count-1
idlist=idlist+","
end
end
idlist+=")"
idlist
end
# Returns an unsaved copy of the attachment
defcopy(attributes=nil)
copy=self.class.new
@ -179,6 +279,7 @@ class Attachment < ActiveRecord::Base
<!-- <p><%= select_tag 'bid_reward_type', "<option value = '0'>#{l(:label_choose_reward)}</option><option value = '1'>#{l(:label_money)}</option><option value = '3'>#{l(:label_bids_credit)}</option><option value = '2'>#{l(:label_reward_1)}</option>".html_safe,
<!-- <p><%#= select_tag 'bid_reward_type', "<option value = '0'>#{l(:label_choose_reward)}</option><option value = '1'>#{l(:label_money)}</option><option value = '3'>#{l(:label_bids_credit)}</option><option value = '2'>#{l(:label_reward_1)}</option>".html_safe,