# encoding: utf-8 module FilesHelper def downloadAll containers paths = [] files = [] tmpfile = "tmp.zip" containers.each do |container| next if container.attachments.empty? if container.is_a?(Version);end container.attachments.each do |attachment| paths << attachment.diskfile file = attachment.diskfile # logger.error "[FilesHelper] downloadAll: #{e}" begin File.new(file, "r") rescue Exception => e logger.error e next end files << file # zip.add(file.path.dup.sub(directory, ''), file.path) end end zipfile_name = "archive.zip" if File.exists? File.open(zipfile_name, "w+") ff = File.open(zipfile_name, "w+") ff.close File.delete ff end Zip::ZipFile.open(zipfile_name, Zip::ZipFile::CREATE) do |zipfile| files.each do |filename| directory = File.dirname filename # Two arguments: # - The name of the file as it will appear in the archive # - The original file, including the path to find it dir = filename.sub(directory+"/", '') zipfile.add(dir, filename) end end File.new(zipfile_name,'w+') end def courses_check_box_tags(name,courses,current_course,attachment) s = '' courses.each do |course| if !(attachment.container_type && attachment.container_id == course.id) && is_course_teacher(User.current,course) && course_in_current_or_next_term(course) s << " [#{get_course_term course}]
" end end s.html_safe end #判断用户是否拥有除current_course以外的课程,需用户在该课程中角色为教师且该课程属于当前学期或下一学期 def has_course? user,current_course result = false user.courses.each do |course| if current_course.id != course.id && is_course_teacher(User.current,course) && course_in_current_or_next_term(course) return true end end result end # 判断指定的资源时候符合类型 def isTypeOk(attachment, type, contentType) result = false if type != 0 if attachment.attachtype == type result = true end else result = true end if result if contentType != '0' && contentType != attachment.suffix_type result = false end end result end def visable_attachemnts attachments result = [] attachments.each do |attachment| if attachment.is_public? || (attachment.container_type == "Course" && attachment.author.member_of_course?(Course.find(attachment.container_id)))|| attachment.author_id == User.current.id result << attachment end end result end def visable_attachemnts_incourse attachments result = [] attachments.each do |attachment| if attachment.is_public? || (attachment.author.member_of_course?(Course.find(attachment.container_id)))|| attachment.author_id == User.current.id result << attachment end end result end def visable_attachemnts_insite attachments,course result = [] attachments.each do |attachment| if attachment.is_public? || (attachment.container_type == "Course" && attachment.container_id == course.id && attachment.author.member_of_course?(Course.find(attachment.container_id)))|| attachment.author_id == User.current.id result << attachment end end result end def get_qute_number attachment if attachment.copy_from result = Attachment.find_by_sql("select count(*) as number from attachments where copy_from = #{attachment.copy_from}") else result = Attachment.find_by_sql("select count(*) as number from attachments where copy_from = #{attachment.id}") end if result.nil? || result.count <= 0 return 0 else return result[0].number end end end