diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 279e89f13..ad6d568a5 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -101,33 +101,12 @@ class AccountController < ApplicationController # User self-registration def register - # @root_path="/home/pdl/redmine-2.3.2-0/apache2/" -# - #@cache_identityy = params[:identity]||"" #身份 - @cache_no = params[:no]||"" #学号 - @cache_technical_title = params[:technical_title]||"" #教师职称 - @cache_province = params[:province]||"" #省份 - @cache_city = params[:city]||"" #城市 - @cache_enterprise_name = params[:enterprise_name]||"" #企业 - - firstname_code = "" - lastname_code = "" (redirect_to(home_url); return) unless Setting.self_registration? || session[:auth_source_registration] if request.get? session[:auth_source_registration] = nil @user = User.new(:language => current_language.to_s) else user_params = params[:user] || {} - @user = User.new - @user.safe_attributes = user_params - if params[:identity] == "2" # 2 企业 - firstname_code = @user.firstname - lastname_code = @user.lastname - @user.firstname = params[:enterprise_name] - @user.lastname = l(:field_enterprise) - end - @user.admin = false - @user.register if session[:auth_source_registration] @user.activate @user.login = session[:auth_source_registration][:login] @@ -139,36 +118,7 @@ class AccountController < ApplicationController redirect_to my_account_path end else - @user.login = params[:user][:login] - unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank? - @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation] - end - - - - case Setting.self_registration - when '1' - register_by_email_activation(@user) - when '3' - register_automatically(@user) - else - register_manually_by_administrator(@user) - end - - #added by bai - if @user.id != nil - ue = @user.user_extensions ||= UserExtensions.new - #ue = UserExtensions.create(:identity => params[:identity].to_i,:technical_title => params[:technical_title], :gender => params[:gender].to_i, :user_id => @user.id, :student_id => ) - ue.identity = params[:identity].to_i - ue.technical_title = params[:technical_title] - ue.gender = params[:gender].to_i - ue.user_id = @user.id - ue.student_id = params[:no] - ue.location = params[:province] if params[:province] != nil - ue.location_city = params[:city] if params[:city] != nil - ue.save - end - + create_and_save_user params[:user][:login],user_params[:password],user_params[:mail],user_params[:password_confirmation],true end end if params[:identity] == "2" @@ -177,6 +127,36 @@ class AccountController < ApplicationController end end + #should_confirmation_password是否验证密码 + def create_and_save_user login,password,email,password_confirmation,should_confirmation_password + @user = User.new + @user.admin = false + @user.register + @user.login = login + @user.mail = email + if should_confirmation_password && !password.blank? && !password_confirmation.blank? + @user.password,@user.password_confirmation = password,password_confirmation + elsif !should_confirmation_password && !password.blank? + @user.password = password + else + @user.password = "" + end + case Setting.self_registration + when '1' + register_by_email_activation(@user) + when '3' + register_automatically(@user) + else + register_manually_by_administrator(@user) + end + if @user.id != nil + ue = @user.user_extensions ||= UserExtensions.new + ue.user_id = @user.id + ue.save + end + @user + end + # Token based account activation def activate (redirect_to(home_url); return) unless Setting.self_registration? && params[:token].present? diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index 25bb31cbb..ecf6fe049 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -203,12 +203,7 @@ class AttachmentsController < ApplicationController if @attachment.container.respond_to?(:init_journal) @attachment.container.init_journal(User.current) end - if @attachment.container - # Make sure association callbacks are called - @attachment.container.attachments.delete(@attachment) - else - @attachment.destroy - end + @attachment.destroy respond_to do |format| if !@attachment.container.nil? && @@ -371,6 +366,7 @@ class AttachmentsController < ApplicationController @obj = c @save_flag = attach_copied_obj.save @save_message = attach_copied_obj.errors.full_messages + update_quotes attach_copied_obj end respond_to do |format| format.js @@ -383,6 +379,20 @@ class AttachmentsController < ApplicationController end end + def update_quotes attachment + if attachment.copy_from + attachments = Attachment.find_by_sql("select * from attachments where copy_from = #{attachment.copy_from} or id = #{attachment.copy_from}") + else + attachments = Attachment.find_by_sql("select * from attachments where copy_from = #{attachment.id} or id = #{attachment.copy_from}") + end + attachment.quotes = get_qute_number attachment + attachment.save + attachments.each do |att| + att.quotes = attachment.quotes + att.save + end + end + private def find_project @attachment = Attachment.find(params[:id]) diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index c8ce6ec31..2997f4205 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -842,7 +842,7 @@ class BidsController < ApplicationController # 编辑作业 def edit @bid = Bid.find(params[:bid_id]) - if (User.current.admin?||User.current.id==@bid.author_id) + if (User.current.admin?||User.current.allowed_to?(:as_teacher,@bid.courses.first)) @course_id = params[:course_id] respond_to do |format| format.html { @@ -868,7 +868,7 @@ class BidsController < ApplicationController @bid.reward_type = 3 @bid.deadline = params[:bid][:deadline] @bid.budget = 0 - @bid.author_id = User.current.id + #@bid.author_id = User.current.id @bid.commit = 0 @bid.homework_type = 1 @bid.save_attachments(params[:attachments] || (params[:bid] && params[:bid][:uploads])) @@ -884,6 +884,7 @@ class BidsController < ApplicationController def new_submit_homework #render html to prepare create submit homework find_bid + find_bid render :layout => 'base_homework' end diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 56ed69c49..383da0bbe 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -39,13 +39,18 @@ class BoardsController < ApplicationController end render :layout => false if request.xhr? elsif @course - @boards = @course.boards.includes(:last_message => :author).all - @boards = [] << @boards[0] if @boards.any? - if @boards.size == 1 - @board = @boards.first - show and return + if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) + @boards = @course.boards.includes(:last_message => :author).all + @boards = [] << @boards[0] if @boards.any? + if @boards.size == 1 + @board = @boards.first + show and return + end + render :layout => 'base_courses' + else + render_403 end - render :layout => 'base_courses' + end end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 5cffcc31c..f83a5657f 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -79,6 +79,8 @@ class CoursesController < ApplicationController end end + + def join_private_courses respond_to do |format| format.js @@ -196,24 +198,118 @@ class CoursesController < ApplicationController end end + def searchmembers + @render_file = 'member_list' + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @is_remote = true + q = "#{params[:name].strip}" + #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? + @results = searchStudent_by_name(@course, q) + @result_count = @results.count + @results = paginateHelper @results + + end + + def addgroups + if params[:group_name] + group = CourseGroup.new + group.name = params[:group_name] + group.course_id = @course.id + group.save + end + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @is_remote = true + @members = searchStudent(@course) + @membercount = @members.count + @course_groups = @course.course_groups + end + + def updategroupname + if params[:group_name] + group = CourseGroup.find(params[:group_id]) + group.name = params[:group_name] + group.save + end + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @is_remote = true + @members = searchStudent(@course) + @membercount = @members.count + @course_groups = @course.course_groups + end + def join_group + group = CourseGroup.find(params[:object_id]) + member = Member.where(:course_id => @course.id, :user_id => User.current.id).first + member.course_group_id = group.id + member.save + @group = group + @members = searchStudent(@course) + @course_groups = @course.course_groups + @membercount = @members.count + search_group_members group + end + def unjoin_group + group = CourseGroup.find(params[:object_id]) + member = Member.where(:course_id => @course.id, :user_id => User.current.id).first + member.course_group_id = 0 + member.save + @group = group + @course_groups = @course.course_groups + @members = searchStudent(@course) + @membercount = @members.count + search_group_members group + end + def searchgroupmembers + @render_file = 'member_list' + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @is_remote = true + if params[:group_id] && params[:group_id] != "0" + @group = CourseGroup.find(params[:group_id]) + @results = searchStudent_by_group(@group, @course) + else + @results = searchStudent(@course) + end + @members = searchStudent(@course) + @membercount = @members.count + @results = paginateHelper @results + end + def search_group_members group + @render_file = 'member_list' + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @is_remote = true + @members = searchStudent(@course) + @membercount = @members.count + @results = searchStudent_by_group(group, @course) + @results = paginateHelper @results + end def member ## 有角色参数的才是课程,没有的就是项目 - @render_file = 'member_list' - @teachers= searchTeacherAndAssistant(@course) - @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' - case params[:role] - when '1' - @subPage_title = l :label_teacher_list - @members = searchTeacherAndAssistant(@course) - when '2' - @subPage_title = l :label_student_list - @members = searchStudent(@course) - else - @subPage_title = '' - @members = @course.member_principals.includes(:roles, :principal).all.sort + if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) + @render_file = 'member_list' + @teachers= searchTeacherAndAssistant(@course) + @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' + @role = params[:role] + @course_groups = @course.course_groups if @course.course_groups + @course_group_id = params[:@course_group_id] unless params[:@course_group_id].nil? + case params[:role] + when '1' + @subPage_title = l :label_teacher_list + @members = searchTeacherAndAssistant(@course) + when '2' + @subPage_title = l :label_student_list + + @members = searchStudent(@course) + @membercount = @members.count + + else + @subPage_title = '' + @members = @course.member_principals.includes(:roles, :principal).all.sort + end + @members = paginateHelper @members + render :layout => 'base_courses' + else + render_403 end - @members = paginateHelper @members - render :layout => 'base_courses' + end #判断指定用户是否为课程教师 @@ -663,24 +759,29 @@ class CoursesController < ApplicationController end def feedback - page = params[:page] - # Find the page of the requested reply - @jours = @course.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') - @limit = 10 - if params[:r] && page.nil? - offset = @jours.count(:conditions => ["#{JournalsForMessage.table_name}.id > ?", params[:r].to_i]) - page = 1 + offset / @limit + if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) + page = params[:page] + # Find the page of the requested reply + @jours = @course.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') + @limit = 10 + if params[:r] && page.nil? + offset = @jours.count(:conditions => ["#{JournalsForMessage.table_name}.id > ?", params[:r].to_i]) + page = 1 + offset / @limit + end + + #@feedback_count = @jours.count + #@feedback_pages = Paginator.new @feedback_count, @limit, page + #@offset ||= @feedback_pages.offset + @jour = paginateHelper @jours,10 + @state = false + respond_to do |format| + format.html{render :layout => 'base_courses'} + format.api + end + else + render_403 end - #@feedback_count = @jours.count - #@feedback_pages = Paginator.new @feedback_count, @limit, page - #@offset ||= @feedback_pages.offset - @jour = paginateHelper @jours,10 - @state = false - respond_to do |format| - format.html{render :layout => 'base_courses'} - format.api - end end diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index aa1c158e0..41518e2f1 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -45,16 +45,28 @@ class FilesController < ApplicationController end def search + sort = "" + @sort = "" + @order = "" + @is_remote = true + if params[:sort] + order_by = params[:sort].split(":") + @sort = order_by[0] + if order_by.count > 1 + @order = order_by[1] + end + sort = "#{@sort} #{@order}" + end + begin - @is_remote = true q = "%#{params[:name].strip}%" #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? if params[:insite] - @result = find_public_attache q - @result = visable_attachemnts @result + @result = find_public_attache q,sort + @result = visable_attachemnts_insite @result,@course @searched_attach = paginateHelper @result,10 else - @result = find_course_attache q,@course + @result = find_course_attache q,@course,sort @result = visable_attachemnts @result @searched_attach = paginateHelper @result,10 end @@ -65,17 +77,24 @@ class FilesController < ApplicationController end end - def find_course_attache keywords,course + def find_course_attache keywords,course,sort = "" + if sort == "" + sort = "created_on DESC" + end resultSet = Attachment.where("attachments.container_type = 'Course' And attachments.container_id = '#{course.id}' AND filename LIKE :like ", like: "%#{keywords}%"). - reorder("created_on DESC") + reorder(sort) + #resultSet = Attachment.find_by_sql("SELECT `attachments`.* FROM `attachments` LEFT OUTER JOIN `homework_attaches` ON `attachments`.container_type = 'HomeworkAttach' AND `attachments`.container_id = `homework_attaches`.id LEFT OUTER JOIN `homework_for_courses` ON `homework_attaches`.bid_id = `homework_for_courses`.bid_id LEFT OUTER JOIN `homework_for_courses` AS H_C ON `attachments`.container_type = 'Bid' AND `attachments`.container_id = H_C.bid_id WHERE (`homework_for_courses`.course_id = 117 OR H_C.course_id = 117 OR (`attachments`.container_type = 'Course' AND `attachments`.container_id = 117)) AND `attachments`.filename LIKE '%#{keywords}%'").reorder("created_on DESC") end - def find_public_attache keywords + def find_public_attache keywords,sort = "" # StoresController#search 将每条文件都查出来,再次进行判断过滤。---> resultSet.to_a.map # 此时内容不多速度还可,但文件增长,每条判断多则进行3-4次表连接。 # 现在还木有思路 药丸 - resultSet = Attachment.where("attachments.container_type IS NOT NULL AND filename LIKE :like ", like: "%#{keywords}%"). - reorder("created_on DESC") + if sort == "" + sort = "created_on DESC" + end + resultSet = Attachment.where("attachments.container_type IS NOT NULL AND attachments.copy_from IS NULL AND filename LIKE :like ", like: "%#{keywords}%"). + reorder(sort) end def index @@ -114,9 +133,9 @@ class FilesController < ApplicationController end if order_by.count == 1 - sort += "#{Attachment.table_name}.#{attribute} asc " + sort += "#{Attachment.table_name}.#{attribute} asc " if attribute elsif order_by.count == 2 - sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} " + sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} " if attribute && order_by[1] end if sort_type != params[:sort].split(",").last sort += "," @@ -152,16 +171,21 @@ class FilesController < ApplicationController attribute = "downloads" when "created_on" attribute = "created_on" + when "quotes" + attribute = "quotes" end @sort = order_by[0] @order = order_by[1] - if order_by.count == 1 + if order_by.count == 1 && attribute sort += "#{Attachment.table_name}.#{attribute} asc " - elsif order_by.count == 2 + if sort_type != params[:sort].split(",").last + sort += "," + end + elsif order_by.count == 2 && order_by[1] sort += "#{Attachment.table_name}.#{attribute} #{order_by[1]} " - end - if sort_type != params[:sort].split(",").last - sort += "," + if sort_type != params[:sort].split(",").last + sort += "," + end end end end @@ -372,14 +396,14 @@ class FilesController < ApplicationController end end - # show_attachments @containers - # @attachtype = params[:type].to_i - # @contenttype = params[:contentType].to_s - # - # respond_to do |format| - # format.js - # format.html - # end + show_attachments @containers + @attachtype = params[:type].to_i + @contenttype = params[:contentType].to_s + + respond_to do |format| + format.js + format.html + end end end diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index ff6463036..4a070cb39 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -22,23 +22,10 @@ class HomeworkAttachController < ApplicationController #获取未批作业列表 def get_not_batch_homework sort, direction = params[:sort] || "s_socre", params[:direction] || "desc" - if sort == 't_socre' - order_by = "t_score #{direction}" - elsif sort == 's_socre' - order_by = "s_score #{direction}" - elsif sort == 'time' - order_by = "created_at #{direction}" - end teachers = find_course_teachers @course - all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN #{teachers}) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN #{teachers}) AS s_score - FROM homework_attaches WHERE bid_id = #{@bid.id} - ORDER BY #{order_by}) AS table1 - WHERE table1.t_score IS NULL") + get_not_batch_homework_list sort,direction,teachers, @bid.id @cur_page = params[:page] || 1 @cur_type = 1 - @homework_list = paginateHelper all_homework_list,10 @direction = direction == 'asc'? 'desc' : 'asc' respond_to do |format| format.js @@ -57,8 +44,8 @@ class HomeworkAttachController < ApplicationController end teachers = find_course_teachers @course all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN #{teachers} and stars IS NOT NULL) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN #{teachers}) AS s_score + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers}) and stars IS NOT NULL) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score FROM homework_attaches WHERE bid_id = #{@bid.id} ORDER BY #{order_by}) AS table1 WHERE table1.t_score IS NOT NULL") @@ -83,8 +70,8 @@ class HomeworkAttachController < ApplicationController end teachers = find_course_teachers @course all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id in #{teachers}) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id not in #{teachers}) AS s_score + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id in (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id not in (#{teachers})) AS s_score FROM homework_attaches WHERE bid_id = #{@bid.id} ORDER BY #{order_by}") @cur_page = params[:page] || 1 @@ -101,8 +88,8 @@ class HomeworkAttachController < ApplicationController @is_student_batch_homework = true teachers = find_course_teachers @course all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN #{teachers}) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN #{teachers}) AS s_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score, (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id}) AS m_score FROM homework_attaches INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id @@ -120,15 +107,15 @@ class HomeworkAttachController < ApplicationController @is_my_homework = true teachers = find_course_teachers @course all_homework_list = HomeworkAttach.find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN #{teachers}) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN #{teachers}) AS s_score + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score FROM homework_attaches WHERE homework_attaches.bid_id = #{@bid.id} AND homework_attaches.user_id = #{User.current.id}") #如果我没有创建过作业,就检索我是否参与了某个作业 if all_homework_list.empty? all_homework_list = HomeworkAttach.find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN #{teachers}) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN #{teachers}) AS s_score + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score FROM homework_attaches INNER JOIN homework_users ON homework_users.homework_attach_id = homework_attaches.id WHERE homework_attaches.bid_id = #{@bid.id} AND homework_users.user_id = #{User.current.id}") @@ -297,11 +284,6 @@ class HomeworkAttachController < ApplicationController end end - #获取指定作业的所有成员 - def users_for_homework homework - homework.nil? ? [] : (homework.users + [homework.user]) - end - #获取可选成员列表 #homework:作业 #users:该作业所有成员 @@ -318,7 +300,8 @@ class HomeworkAttachController < ApplicationController end def edit - if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) + bid = @homework.bid + if (bid.comment_status == 0 || bid.open_anonymous_evaluation == 0) && (User.current.admin? || User.current.member_of_course?(bid.courses.first)) get_homework_member @homework else render_403 :message => :notice_not_authorized @@ -350,7 +333,8 @@ class HomeworkAttachController < ApplicationController end def destroy - if User.current.admin? || User.current == @homework.user + bid = @homework.bid + if (bid.comment_status == 0 || bid.open_anonymous_evaluation == 0) && (User.current.admin? || User.current == @homework.user) if @homework.destroy #respond_to do |format| # format.html { redirect_to course_for_bid_url @homework.bid } @@ -370,48 +354,21 @@ class HomeworkAttachController < ApplicationController #显示作业信息 def show - if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) - # 打分统计 - stars_reates = @homework. rates(:quality) - #是否已经进行过评价 - temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{@homework.id} AND rater_id = #{User.current.id}").first - @m_score = temp.nil? ? 0:temp.stars - @has_evaluation = stars_reates.where("rater_id = ?",User.current).count > 0 - #@jours留言 is null条件用以兼容历史数据 - @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") + if User.current.admin? || User.current.member_of_course?(@course) + # 作业打分列表 + @stars_reates = @homework.rates(:quality) + #我的评分 + @has_evaluation = @stars_reates.where("rater_id = #{User.current.id}").first + @m_score = @has_evaluation.nil? ? 0 : @has_evaluation.stars + teachers = find_course_teachers(@course) + @teacher_stars = @stars_reates.where("rater_id in (#{teachers})") #老师评分列表 + @student_stars = @stars_reates.where("rater_id not in (#{teachers})") #学生评分列表 + @is_teacher = is_course_teacher User.current,@course + @is_anonymous_comments = @bid.comment_status == 1 && !@homework.users.include?(User.current) && @homework.user != User.current && !@is_teacher #判断是不是匿评(开启匿评,当前用户不是作业的创建者或者参与者,不是老师) + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据 + @jour = paginateHelper jours,5 #留言 @cur_page = params[:cur_page] || 1 @cur_type = params[:cur_type] || 5 - @jour = paginateHelper @jours,5 - - teachers = searchTeacherAndAssistant @course - @comprehensive_evaluation = [] - teachers.each do|teacher| - temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first - @comprehensive_evaluation << temp if temp - end - annymous_users = @homework.homework_evaluations.map(&:user) - unless annymous_users.nil? || annymous_users.count == 0 - @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in #{convert_array(annymous_users)}").order("created_on DESC") - end - @totle_score = score_for_homework @homework - @teaher_score = teacher_score_for_homework @homework - - is_student = is_cur_course_student @homework.bid.courses.first - is_teacher = is_course_teacher User.current,@homework.bid.courses.first - @is_anonymous_comments = @homework.bid.comment_status == 1 #是否开启了匿评 - if !User.current.member_of_course?(@homework.bid.courses.first) - @is_comprehensive_evaluation = 3 #留言 - elsif is_student && @is_anonymous_comments && !@has_evaluation#是学生且开启了匿评且未进行评分 - @is_comprehensive_evaluation = 2 #匿评 - elsif is_student && @is_anonymous_comments && @has_evaluation #是学生且开启了匿评,但已评分 - @is_comprehensive_evaluation = 2 #匿评 - elsif is_student && !@is_anonymous_comments #是学生未开启匿评 - @is_comprehensive_evaluation = 3 #留言 - elsif is_teacher - @is_comprehensive_evaluation = 1 #教师评论 - else - @is_comprehensive_evaluation = 3 - end respond_to do |format| format.html @@ -424,30 +381,40 @@ class HomeworkAttachController < ApplicationController #删除留言 def destroy_jour - @homework = HomeworkAttach.find(params[:jour_id]) - @course=@homework.bid.courses.first + @homework = HomeworkAttach.find(params[:homework_id]) @journal_destroyed = JournalsForMessage.find(params[:object_id]) - @is_comprehensive_evaluation = @journal_destroyed.is_comprehensive_evaluation - @journal_destroyed.destroy - if @is_comprehensive_evaluation == 3 - @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") - @jour = paginateHelper @jours,5 - elsif @is_comprehensive_evaluation == 2 - annymous_users = @homework.homework_evaluations.map(&:user) - unless annymous_users.nil? || annymous_users.count == 0 - @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in #{convert_array(annymous_users)}").order("created_on DESC") - end - elsif @is_comprehensive_evaluation == 1 - teachers = searchTeacherAndAssistant @course - @comprehensive_evaluation = [] - teachers.each do|teacher| - temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first - @comprehensive_evaluation << temp if temp - end + if @journal_destroyed.is_comprehensive_evaluation == 3 && @journal_destroyed.destroy + render_403 unless User.current == @journal_destroyed.user || User.current.admin? + teachers = find_course_teachers(@homework.bid.courses.first) + @stars_reates = @homework.rates(:quality) + @teacher_stars = @stars_reates.where("rater_id in (#{teachers})") #老师评分列表 + @student_stars = @stars_reates.where("rater_id not in (#{teachers})") #学生评分列表 + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据 + @jour = paginateHelper jours,5 #留言 + else + render_404 end - - + #@course=@homework.bid.courses.first + #@journal_destroyed = JournalsForMessage.find(params[:object_id]) + #@is_comprehensive_evaluation = @journal_destroyed.is_comprehensive_evaluation + #@journal_destroyed.destroy + #if @is_comprehensive_evaluation == 3 + # @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") + # @jour = paginateHelper @jours,5 + #elsif @is_comprehensive_evaluation == 2 + # annymous_users = @homework.homework_evaluations.map { |homework_evaluation| homework_evaluation.user.id}.join(',') + # unless annymous_users.nil? || annymous_users.count == "" + # @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in (#{annymous_users})").order("created_on DESC") + # end + #elsif @is_comprehensive_evaluation == 1 + # teachers = searchTeacherAndAssistant @course + # @comprehensive_evaluation = [] + # teachers.each do|teacher| + # temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first + # @comprehensive_evaluation << temp if temp + # end + #end respond_to do |format| format.js end @@ -455,55 +422,49 @@ class HomeworkAttachController < ApplicationController #添加留言 def addjours - @homework = HomeworkAttach.find(params[:jour_id]) - @add_jour = @homework.addjours User.current.id, params[:new_form][:user_message],0,params[:is_comprehensive_evaluation] - if @add_jour.is_comprehensive_evaluation == 3 - @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") - @jour = paginateHelper @jours,5 - elsif @add_jour.is_comprehensive_evaluation == 2 - annymous_users = @homework.homework_evaluations.map(&:user) - unless annymous_users.nil? || annymous_users.count == 0 - @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in #{convert_array(annymous_users)}").order("created_on DESC") - end - elsif @add_jour.is_comprehensive_evaluation == 1 - teachers = searchTeacherAndAssistant @homework.bid.courses.first - @comprehensive_evaluation = [] - teachers.each do|teacher| - temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first - @comprehensive_evaluation << temp if temp - end + @is_teacher,@is_anonymous_comments,@m_score = params[:is_teacher]=="true",params[:is_anonymous_comments]=="true",params[:stars_value] + @cur_page,@cur_type = params[:cur_page] || 1,params[:cur_type] || 5 + @homework = HomeworkAttach.find(params[:homework_id]) + + #保存评分 + @homework.rate(@m_score,User.current.id,:quality) if @m_score && @m_score != "0" + #保存评论 + @is_comprehensive_evaluation = @is_teacher ? 1 : (@is_anonymous_comments ? 2 : 3) #判断当前评论是老师评论?匿评?留言 + if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" #有没有留言 + @homework.addjours User.current.id, params[:new_form][:user_message],0,@is_comprehensive_evaluation end + teachers = find_course_teachers(@homework.bid.courses.first) + @stars_reates = @homework.rates(:quality) + @teacher_stars = @stars_reates.where("rater_id in (#{teachers})") #老师评分列表 + @student_stars = @stars_reates.where("rater_id not in (#{teachers})") #学生评分列表 + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据 + @jour = paginateHelper jours,5 #留言 - #@limit = 10 - #@feedback_count = @jours.count - #@feedback_pages = Paginator.new @feedback_count, @limit, params['page'] - #@offset ||= @feedback_pages.offset - #@jour = @jours[@offset, @limit] - #@comprehensive_evaluation = @homework.journals_for_messages.where("is_comprehensive_evaluation is not null").order("created_on DESC") + if @cur_type == "1" #如果当前是老师未批列表,需要刷新整个作业列表界面 + @bid = @homework.bid + get_not_batch_homework_list "s_socre","desc",teachers,@homework.bid_id + elsif @cur_type == "2" #老师已批列表 + @result_homework = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers}) and stars IS NOT NULL) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score + FROM homework_attaches WHERE id = #{@homework.id}").first + elsif @cur_type == "3" #全部作业列表 + @result_homework = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id in (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id not in (#{teachers})) AS s_score + FROM homework_attaches WHERE id = #{@homework.id}").first + elsif @cur_type == "4" #匿评作业列表 + @is_student_batch_homework = true + @result_homework = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score, + (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id}) AS m_score + FROM homework_attaches + WHERE homework_attaches.id = #{@homework.id}").first + else #其他的不用管 - @totle_score = score_for_homework @homework - @teaher_score = teacher_score_for_homework @homework - stars_reates = @homework. rates(:quality) - is_student = is_cur_course_student @homework.bid.courses.first - is_teacher = is_course_teacher User.current,@homework.bid.courses.first - @has_evaluation = stars_reates.where("rater_id = ?",User.current).count > 0 - @is_anonymous_comments = @homework.bid.comment_status == 1 #是否开启了匿评 - if !User.current.member_of_course?(@homework.bid.courses.first) - @is_comprehensive_evaluation = 3 #留言 - elsif is_student && @is_anonymous_comments && !@has_evaluation#是学生且开启了匿评且未进行评分 - @is_comprehensive_evaluation = 2 #匿评 - elsif is_student && @is_anonymous_comments && @has_evaluation #是学生且开启了匿评,但已评分 - @is_comprehensive_evaluation = 3 #留言 - elsif is_student && !@is_anonymous_comments #是学生未开启匿评 - @is_comprehensive_evaluation = 3 #留言 - elsif is_teacher - @is_comprehensive_evaluation = 1 #教师评论 - else - @is_comprehensive_evaluation = 3 end - - respond_to do |format| format.js end @@ -578,16 +539,7 @@ class HomeworkAttachController < ApplicationController #获取课程的老师列表 def find_course_teachers course - teachers = "(" - teacher_members = searchTeacherAndAssistant(course) - teacher_members.each do |member| - if member == teacher_members.last - teachers += member.user_id.to_s + ")" - else - teachers += member.user_id.to_s + "," - end - end - teachers + searchTeacherAndAssistant(course).map{|teacher| teacher.user_id}.join(",") end #获取作业教师评分所占比例 @@ -599,5 +551,27 @@ class HomeworkAttachController < ApplicationController end teacher_proportion end + + def get_not_batch_homework_list sort,direction,teachers,bid_id + if sort == 't_socre' + order_by = "t_score #{direction}" + elsif sort == 's_socre' + order_by = "s_score #{direction}" + elsif sort == 'time' + order_by = "created_at #{direction}" + end + all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score + FROM homework_attaches WHERE bid_id = #{bid_id} + ORDER BY #{order_by}) AS table1 + WHERE table1.t_score IS NULL") + @homework_list = paginateHelper all_homework_list,10 + end + + #获取指定作业的所有成员 + def users_for_homework homework + homework.nil? ? [] : (homework.users + [homework.user]) + end end diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index f1d97cbe7..23f8c18e9 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -65,23 +65,27 @@ class NewsController < ApplicationController format.atom { render_feed(@newss, :title => (@project ? @project.name : Setting.app_title) + ": #{l(:label_news_plural)}") } end elsif @course - scope = @course ? @course.news.course_visible : News.course_visible + if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) + scope = @course ? @course.news.course_visible : News.course_visible - @news_count = scope.count - @news_pages = Paginator.new @news_count, @limit, params['page'] - @offset ||= @news_pages.offset - @newss = scope.all(:include => [:author, :course], - :order => "#{News.table_name}.created_on DESC", - :offset => @offset, - :limit => @limit) + @news_count = scope.count + @news_pages = Paginator.new @news_count, @limit, params['page'] + @offset ||= @news_pages.offset + @newss = scope.all(:include => [:author, :course], + :order => "#{News.table_name}.created_on DESC", + :offset => @offset, + :limit => @limit) - respond_to do |format| - format.html { - @news = News.new - render :layout => 'base_courses' - } - format.api - format.atom { render_feed(@newss, :title => (@course ? @course.name : Setting.app_title) + ": #{l(:label_news_plural)}") } + respond_to do |format| + format.html { + @news = News.new + render :layout => 'base_courses' + } + format.api + format.atom { render_feed(@newss, :title => (@course ? @course.name : Setting.app_title) + ": #{l(:label_news_plural)}") } + end + else + render_403 end end end diff --git a/app/controllers/stores_controller.rb b/app/controllers/stores_controller.rb index a68d12517..b1705c826 100644 --- a/app/controllers/stores_controller.rb +++ b/app/controllers/stores_controller.rb @@ -26,19 +26,19 @@ class StoresController < ApplicationController resultSet = Attachment.where("attachments.container_type IS NOT NULL AND filename LIKE :like ", like: "%#{keywords}%"). reorder("created_on DESC") - # result = resultSet.to_a.dup + result = resultSet.to_a.dup - # resultSet.to_a.map { |res| - # if(res.container.nil? || - # (res.container.class.to_s=="Project" && res.container.is_public == false) || - # (res.container.has_attribute?(:project) && res.container.project.is_public == false) || - # (res.container.class.to_s=="HomeworkAttach" && res.container.bid.reward_type == 3) || - # false - # ) - # result.delete(res) - # end - # } - # result + resultSet.to_a.map { |res| + if(res.container.nil? || + (res.container.class.to_s=="Project" && res.container.is_public == false) || + (res.container.has_attribute?(:project) && res.container.project.is_public == false) || + (res.container.class.to_s=="HomeworkAttach" && res.container.bid.reward_type == 3) || + false + ) || (res.container.is_a?(Course) && res.container.is_public == 0) + result.delete(res) + end + } + result end LIMIT = 12 unless const_defined?(:LIMIT) diff --git a/app/controllers/zipdown_controller.rb b/app/controllers/zipdown_controller.rb index cee26ae32..f0dc157b5 100644 --- a/app/controllers/zipdown_controller.rb +++ b/app/controllers/zipdown_controller.rb @@ -99,9 +99,9 @@ class ZipdownController < ApplicationController zipfile.add(rename_file, filename) end - zipfile.get_output_stream('ReadMe') do |os| - os.write 'Homeworks' - end + #zipfile.get_output_stream('ReadMe') do |os| + # os.write 'Homeworks' + #end end zipfile_name rescue Errno => e diff --git a/app/helpers/attachments_helper.rb b/app/helpers/attachments_helper.rb index 52002b028..50dd79a08 100644 --- a/app/helpers/attachments_helper.rb +++ b/app/helpers/attachments_helper.rb @@ -76,6 +76,19 @@ module AttachmentsHelper false 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 + private def deletable? container, user=User.current diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index d06bf7d38..3b7e811f6 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -114,28 +114,13 @@ module CoursesHelper # 学生人数计算 # add by nwb def studentCount course - count = searchStudent(course).count#course.student.count - if count <= 5 - result = count.to_s - elsif count < 10 && count > 5 - result = "5+" - else - result = (count-count % 10).to_s + "+" - end - result + searchStudent(course).count.to_s#course.student.count end #课程成员数计算 def memberCount course count = searchStudent(course).count + searchTeacherAndAssistant(course).count - if count <= 5 - result = count.to_s - elsif count < 10 && count > 5 - result = "5+" - else - result = (count-count % 10).to_s + "+" - end - result + count.to_s end def eventToLanguageCourse event_type, course @@ -170,7 +155,7 @@ module CoursesHelper members end - def searchStudent project + def search_student_in_group(project, course_group_id) #searchPeopleByRoles(project, StudentRoles) members = [] project.members.each do |m| @@ -178,6 +163,35 @@ module CoursesHelper end members end + def searchStudent project + #searchPeopleByRoles(project, StudentRoles) + members = [] + project.members.each do |m| + members << m if m && m.user && m.user.allowed_to?(:as_student,project) + end + members + end + def searchStudent_by_name project, name + #searchPeopleByRoles(project, StudentRoles) + members = [] + project.members.each do |m| + if m && m.user && m.user.allowed_to?(:as_student,project) + username = m.user[:lastname].to_s + m.user[:firstname].to_s + if(m.user[:login].to_s.include?(name) || m.user.user_extensions[:student_id].to_s.include?(name) || username.include?(name)) + members << m + end + end + end + members + end + def searchStudent_by_group group, project + #searchPeopleByRoles(project, StudentRoles) + members = [] + group.members.each do |m| + members << m if m && m.user && m.user.allowed_to?(:as_student,project) + end + members + end # ===================================================================================== #def searchCountByRoles project, roles_id diff --git a/app/helpers/files_helper.rb b/app/helpers/files_helper.rb index c3a6a7b3e..2cd6b4400 100644 --- a/app/helpers/files_helper.rb +++ b/app/helpers/files_helper.rb @@ -1,5 +1,6 @@ # encoding: utf-8 module FilesHelper + include AttachmentsHelper def downloadAll containers paths = [] @@ -54,11 +55,11 @@ module FilesHelper s.html_safe end - #判断用户是否拥有课程,需用户在该课程中角色为教师且该课程属于当前学期或下一学期 - def has_course? user + #判断用户是否拥有不包含当前资源的课程,需用户在该课程中角色为教师且该课程属于当前学期或下一学期 + def has_course? user,file result = false user.courses.each do |course| - if is_course_teacher(User.current,course) && course_in_current_or_next_term(course) + if !course_contains_attachment?(course,file) && is_course_teacher(User.current,course) && course_in_current_or_next_term(course) return true end end @@ -86,23 +87,33 @@ module FilesHelper 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 + if attachment.is_public? || (attachment.container_type == "Course" && User.current.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 + 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 && User.current.member_of_course?(Course.find(attachment.container_id)))|| attachment.author_id == User.current.id + result << attachment + end + end + result + end + + + end \ No newline at end of file diff --git a/app/helpers/homework_attach_helper.rb b/app/helpers/homework_attach_helper.rb index 63332e564..4744df624 100644 --- a/app/helpers/homework_attach_helper.rb +++ b/app/helpers/homework_attach_helper.rb @@ -87,8 +87,13 @@ module HomeworkAttachHelper #获取用户对作业的评分 def get_homework_score user, homework - seems_rateable_rate = HomeworkAttach.find_by_sql("SELECT * FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{homework.id} AND rater_id = #{user.id}") - seems_rateable_rate.nil? || seems_rateable_rate.count == 0 ? 0:seems_rateable_rate[0].stars + temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{homework.id} AND rater_id = #{user.id}").first + @m_score = temp.nil? ? 0:temp.stars.to_i + end + + #获取评分对应的评论 + def get_homework_review homework,is_teacher,user + homework.journals_for_messages.where("is_comprehensive_evaluation = #{is_teacher ? 1 : 2} and user_id = #{user.id}").order("created_on DESC").first end def convert_array array diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb index 6d916f43e..8acd0b577 100644 --- a/app/helpers/watchers_helper.rb +++ b/app/helpers/watchers_helper.rb @@ -100,15 +100,45 @@ module WatchersHelper return '' if user.id == course.tea_id joined = user.member_of_course?(course) text = joined ? l(:label_exit_course) : l(:label_new_join) - url_t = join_path(:object_id => course.id) - url_f = try_join_path(:object_id => course.id) + url = joined ? join_path(:object_id => course.id) : try_join_path(:object_id => course.id) method = joined ? 'delete' : 'post' if joined - link_to text, url_t, :remote => true, :method => method, :id => "#{course.id}", :confirm => l(:text_are_you_sure_out), :class => []+options + link_to text, url, :remote => true, :method => method, :id => "#{course.id}", :confirm => l(:text_are_you_sure_out), :class => []+options else - link_to text, url_f, :remote => true, :method => method, :id => "#{course.id}", :class => []+options + link_to text, url, :remote => true, :method => method, :id => "#{course.id}", :class => []+options end end + def join_in_course_group(coursegroups,group, user, options=[]) + return '' unless user && user.logged? + + @isjoin = false + coursegroups.each do |g| + g.members.each do |mem| + if mem.user_id == user.id + @isjoin = true + end + end + end + url_t = join_group_path(:object_id => group.id) + url_f = join_group_path(:object_id => group.id) + if @isjoin == true + joined = user.member_of_course_group?(group) + text = l(:label_exit_course) + + if joined + link_to text, {:controller => "courses", :action => "join_group", :object_id => "#{group.id}"}, + :remote => true, :method => 'delete', + :id => "#{group.id}", :style => "padding: 8px 8px 4px;", + :confirm => l(:text_are_you_sure_out_group), :class => 'group_in' + + end + else + text = l(:label_new_join) + form_tag({:controller => "courses", :action => "join_group", :object_id => "#{group.id}"}, :remote => true, :method => 'post') do + submit_tag text, class: "group_in", style: "width: 43px;height: 21px;" + end + end + end # 用户是否允许加入课程判断 # add by nwb @@ -125,7 +155,8 @@ module WatchersHelper if joined link_to text, url_t, :remote => true, :method => method, :id => "#{course.id}", :confirm => l(:text_are_you_sure_out), :class => []+options else - link_to text, url_f, :remote => true, :method => method, :id => "#{course.id}", :class => []+options + + link_to text, url_f, :remote => true, :method => method, :id => "#{course.id}", :class => []+options end end diff --git a/app/models/course.rb b/app/models/course.rb index 6bb7a75d4..ef42d91e8 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -7,7 +7,7 @@ class Course < ActiveRecord::Base STATUS_ARCHIVED = 9 attr_accessible :code, :extra, :name, :state, :tea_id, :time , :location, :state, :term, :password,:is_public,:description,:class_period, :open_student - belongs_to :project, :class_name => 'Course', :foreign_key => :extra, primary_key: :identifier + #belongs_to :project, :class_name => 'Course', :foreign_key => :extra, primary_key: :identifier belongs_to :teacher, :class_name => 'User', :foreign_key => :tea_id # 定义一个方法teacher,该方法通过tea_id来调用User表 belongs_to :school, :class_name => 'School', :foreign_key => :school_id #定义一个方法school,该方法通过school_id来调用School表 has_many :bid @@ -29,9 +29,11 @@ class Course < ActiveRecord::Base has_many :news, :dependent => :destroy, :include => :author has_one :course_status, :class_name => "CourseStatus", :dependent => :destroy + has_many :course_groups, :dependent => :destroy + acts_as_taggable acts_as_nested_set :order => 'name', :dependent => :destroy - acts_as_attachable :view_permission => :view_files, + acts_as_attachable :view_permission => :view_course_files, :delete_permission => :manage_files validates_presence_of :password, :term,:name,:description diff --git a/app/models/course_group.rb b/app/models/course_group.rb new file mode 100644 index 000000000..c5c2f5c85 --- /dev/null +++ b/app/models/course_group.rb @@ -0,0 +1,21 @@ +class CourseGroup < ActiveRecord::Base + # attr_accessible :title, :body + belongs_to :course + has_many :members + has_many :memberships, :class_name => 'Member' + has_many :member_principals, :class_name => 'Member', + :include => :principal, + :conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status=#{Principal::STATUS_ACTIVE})" + has_many :principals, :through => :member_principals, :source => :principal + has_many :users, :through => :members + + before_destroy :set_member_nil + + attr_accessible :name + validates :name, :presence => true, :length => {:maximum => 20}, :uniqueness => true + def set_member_nil + if self.members && self.members.count > 0 + self.members.update_all("course_group_id = 0") + end + end +end diff --git a/app/models/member.rb b/app/models/member.rb index 46aefbd09..716f6a7c5 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -24,6 +24,7 @@ class Member < ActiveRecord::Base belongs_to :project belongs_to :course + belongs_to :course_group validates_presence_of :principal validates_uniqueness_of :user_id, :scope => [:project_id,:course_id] validate :validate_role diff --git a/app/models/principal.rb b/app/models/principal.rb index 024480635..2eaba6796 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -26,10 +26,11 @@ class Principal < ActiveRecord::Base has_many :members, :foreign_key => 'user_id', :dependent => :destroy has_many :memberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :project, :roles ], :conditions => "#{Project.table_name}.status<>#{Project::STATUS_ARCHIVED}", :order => "#{Project.table_name}.name" - has_many :coursememberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :course, :roles ], :conditions => "#{Course.table_name}.status<>#{Course::STATUS_ARCHIVED}", :order => "#{Course.table_name}.name" + has_many :coursememberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :course, :roles ], :order => "#{Course.table_name}.name" has_many :projects, :through => :memberships #add by nwb has_many :courses, :through => :coursememberships + has_many :course_groups, :through => :coursememberships has_many :issue_categories, :foreign_key => 'assigned_to_id', :dependent => :nullify # Groups and active users diff --git a/app/models/user.rb b/app/models/user.rb index 29709519d..70e4e8187 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -690,6 +690,9 @@ class User < Principal courses.to_a.include?(course) end + def member_of_course_group?(course_group) + course_groups.to_a.include?(course_group) + end # Returns a hash of user's projects grouped by roles def projects_by_role return @projects_by_role if @projects_by_role diff --git a/app/views/bids/_bid_homework_show.html.erb b/app/views/bids/_bid_homework_show.html.erb index 630d7552c..e7b58fefc 100644 --- a/app/views/bids/_bid_homework_show.html.erb +++ b/app/views/bids/_bid_homework_show.html.erb @@ -68,7 +68,7 @@ <% end %> <% end %> - <% if (User.current.admin?||User.current.id==bid.author_id) %> + <% if (User.current.admin?||User.current.allowed_to?(:as_teacher,@course)) %> <% if bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2%> <% case bid.comment_status %> diff --git a/app/views/bids/_homework.html.erb b/app/views/bids/_homework.html.erb index 7cde4f31d..db1f555d3 100644 --- a/app/views/bids/_homework.html.erb +++ b/app/views/bids/_homework.html.erb @@ -58,53 +58,53 @@ { hideModal($("#popbox")); // 评了分的则刷新列表 - switch (cur_type) - { - case 1: - $.ajax({ - type: "GET", - url: "<%= get_not_batch_homework_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, - data: 'text', - success: function (data) { - - } - }); - break; - case 2: - $.ajax({ - type: "GET", - url: "<%= get_batch_homeworks_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, - data: 'text', - success: function (data) { - - } - }); - break; - case 3: - $.ajax({ - type: "GET", - url: "<%= get_homeworks_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, - data: 'text', - success: function (data) { - - } - }); - break; - case 4: - $.ajax({ - type: "GET", - url: "<%= get_student_batch_homework_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, - data: 'text', - success: function (data) { - - } - }); - break; - case 5: - break; - default : - break; - } +// switch (cur_type) +// { +// case 1: +// $.ajax({ +// type: "GET", +// url: "<%#= get_not_batch_homework_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, +// data: 'text', +// success: function (data) { +// +// } +// }); +// break; +// case 2: +// $.ajax({ +// type: "GET", +// url: "<%#= get_batch_homeworks_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, +// data: 'text', +// success: function (data) { +// +// } +// }); +// break; +// case 3: +// $.ajax({ +// type: "GET", +// url: "<%#= get_homeworks_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, +// data: 'text', +// success: function (data) { +// +// } +// }); +// break; +// case 4: +// $.ajax({ +// type: "GET", +// url: "<%#= get_student_batch_homework_homework_attach_index_path(:bid_id => @bid.id)%>&page=" + cur_page, +// data: 'text', +// success: function (data) { +// +// } +// }); +// break; +// case 5: +// break; +// default : +// break; +// } } diff --git a/app/views/bids/edit.html.erb b/app/views/bids/edit.html.erb index 0a2d17e7d..17e805fce 100644 --- a/app/views/bids/edit.html.erb +++ b/app/views/bids/edit.html.erb @@ -118,6 +118,9 @@
<%#= render :partial => 'homework_form', :locals => { :f => f } %> <%= render :partial => 'homework_form', :locals => { :f => f } %> - + + + <%= l(:button_create)%> + <% end %>
\ No newline at end of file diff --git a/app/views/boards/_course_show.html.erb b/app/views/boards/_course_show.html.erb index 7514b48f6..7a7d001ed 100644 --- a/app/views/boards/_course_show.html.erb +++ b/app/views/boards/_course_show.html.erb @@ -19,7 +19,7 @@ <%= form_for @message, :url => new_board_message_path(@board), :html => {:multipart => false, :id => 'message-form'} do |f| %> <%= render :partial => 'messages/form', :locals => {:f => f} %>

- + <%= l(:button_submit)%> <%= link_to l(:button_cancel), "#", :onclick => '$("#add-message").hide(); return false;' ,:class => 'ButtonColor m3p10' %>

diff --git a/app/views/courses/_courses_jours.html.erb b/app/views/courses/_courses_jours.html.erb index e1efe4f58..68b92c00e 100644 --- a/app/views/courses/_courses_jours.html.erb +++ b/app/views/courses/_courses_jours.html.erb @@ -14,11 +14,13 @@
<%= form_for('new_form', :method => :post, :url => {:controller => 'words', :action => 'leave_course_message'}) do |f|%> - <%= f.text_area 'course_message', :rows => 3, :cols => 65, + <%= f.text_area 'course_message',:id => "leave_meassge", :rows => 3, :cols => 65, :placeholder => "#{l(:label_welcome_my_respond)}", :style => "resize: none; width: 98%", :class => 'noline',:maxlength => 250%> - <%= submit_tag l(:button_leave_meassge), :name => nil , :class => "enterprise" , :style => "display: block; float: right; margin-right: 1%; margin-top: 1px;"%> + + <%= l(:button_leave_meassge)%> + <% end %>
<% end %> diff --git a/app/views/courses/_groups_name.html.erb b/app/views/courses/_groups_name.html.erb new file mode 100644 index 000000000..9a57d1127 --- /dev/null +++ b/app/views/courses/_groups_name.html.erb @@ -0,0 +1,84 @@ + + + + + + + diff --git a/app/views/courses/_member_list.html.erb b/app/views/courses/_member_list.html.erb index a6ee0b9b4..2363d0fe5 100644 --- a/app/views/courses/_member_list.html.erb +++ b/app/views/courses/_member_list.html.erb @@ -1,4 +1,17 @@ +
+<% if User.current.logged? && User.current.member_of_course?(@course) && @group %> + <% if !@canShowCode %> + <%= join_in_course_group(@course.course_groups,@group, User.current) %> + <% end %>    + <%= @group.name %><%= @subPage_title %> + +<% end %> +
+ <% if members.any? %> + <% if @result_count %> +

<%= l(:label_search_member_count) %><%= @result_count %><%= l(:label_member_people) %>

+ <% end %> <% members.each do |member| %>
<% next if member.new_record? %> diff --git a/app/views/courses/_set_join.js.erb b/app/views/courses/_set_join.js.erb index 39e40d34e..f65d6e98b 100644 --- a/app/views/courses/_set_join.js.erb +++ b/app/views/courses/_set_join.js.erb @@ -1,5 +1,5 @@ <% if object_id%> - $("#<%=object_id%>").replaceWith('<%= escape_javascript join_in_course_for_list(course, user) %>'); + $("#<%=object_id%>").replaceWith('<%= escape_javascript join_in_course(course, user) %>'); <% end %> <% if @state %> <% if @state == 0 %> diff --git a/app/views/courses/addgroups.js.erb b/app/views/courses/addgroups.js.erb new file mode 100644 index 000000000..a6f6933b9 --- /dev/null +++ b/app/views/courses/addgroups.js.erb @@ -0,0 +1 @@ +$("#st_groups").html("<%= escape_javascript( render :partial => 'groups_name', locals: {:course_groups => @course_groups})%>"); \ No newline at end of file diff --git a/app/views/courses/join_group.js.erb b/app/views/courses/join_group.js.erb new file mode 100644 index 000000000..7bdefdb9f --- /dev/null +++ b/app/views/courses/join_group.js.erb @@ -0,0 +1,2 @@ +$("#st_groups").html("<%= escape_javascript( render :partial => 'groups_name', locals: {:course_groups => @course_groups})%>"); +$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>"); \ No newline at end of file diff --git a/app/views/courses/member.html.erb b/app/views/courses/member.html.erb index 3d3076bcc..5d596efeb 100644 --- a/app/views/courses/member.html.erb +++ b/app/views/courses/member.html.erb @@ -1,10 +1,28 @@ -
-

- <%= @subPage_title %> -

-
-
- <%= error_messages_for 'member' %> - <%= render :partial => @render_file, :locals => {:members => @members} %> +<%= stylesheet_link_tag 'course_group', :media => 'all' %> + +
+ +
+ +
+ <%= render :partial => 'groups_name', locals: {:course_groups => @course_groups} %> +
+ + +
+ +
+ <%= error_messages_for 'member' %> + <%= render :partial => @render_file, :locals => {:members => @members} %> +
diff --git a/app/views/courses/new_homework.html.erb b/app/views/courses/new_homework.html.erb index 7b6784243..e3121c6ad 100644 --- a/app/views/courses/new_homework.html.erb +++ b/app/views/courses/new_homework.html.erb @@ -106,7 +106,8 @@ <%= labelled_form_for @homework, :url => {:controller => 'bids', :action => 'create_homework',:course_id => "#{params[:id] || params[:course_id]}"} do |f| %>
<%= render :partial => 'homework_form', :locals => { :f => f } %> - + + <%= l(:button_create)%> <%= javascript_tag "$('#bid_name').focus();" %> <% end %>
\ No newline at end of file diff --git a/app/views/courses/searchgroupmembers.js.erb b/app/views/courses/searchgroupmembers.js.erb new file mode 100644 index 000000000..c6ff97164 --- /dev/null +++ b/app/views/courses/searchgroupmembers.js.erb @@ -0,0 +1,4 @@ +/** + * Created by Administrator on 2014/12/3. + */ +$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>"); \ No newline at end of file diff --git a/app/views/courses/searchmembers.js.erb b/app/views/courses/searchmembers.js.erb new file mode 100644 index 000000000..efe47a9c0 --- /dev/null +++ b/app/views/courses/searchmembers.js.erb @@ -0,0 +1,4 @@ +/** + * Created by Administrator on 2014/12/2. + */ +$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>"); \ No newline at end of file diff --git a/app/views/courses/unjoin_group.js.erb b/app/views/courses/unjoin_group.js.erb new file mode 100644 index 000000000..7bdefdb9f --- /dev/null +++ b/app/views/courses/unjoin_group.js.erb @@ -0,0 +1,2 @@ +$("#st_groups").html("<%= escape_javascript( render :partial => 'groups_name', locals: {:course_groups => @course_groups})%>"); +$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>"); \ No newline at end of file diff --git a/app/views/courses/updategroupname.js.erb b/app/views/courses/updategroupname.js.erb new file mode 100644 index 000000000..8eb4e865c --- /dev/null +++ b/app/views/courses/updategroupname.js.erb @@ -0,0 +1,4 @@ +/** + * Created by Administrator on 2014/12/3. + */ +$("#st_groups").html("<%= escape_javascript( render :partial => 'groups_name', locals: {:course_groups => @course_groups})%>"); \ No newline at end of file diff --git a/app/views/files/_course_file.html.erb b/app/views/files/_course_file.html.erb index 04ce917c8..030b6cb24 100644 --- a/app/views/files/_course_file.html.erb +++ b/app/views/files/_course_file.html.erb @@ -4,55 +4,60 @@ <%= stylesheet_link_tag 'resource', :media => 'all' %>
-
-
+
+
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search f_l",:remote=>true) do %> <%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%> - <%= submit_tag "课内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onclick => "presscss('incourse')"%> - <%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onclick => "presscss('insite')" %> + <%= submit_tag "课内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onmouseover => "presscss('incourse')",:onmouseout =>"buttoncss()" %> + <%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onmouseover => "presscss('insite')",:onmouseout =>"buttoncss()" %> <% end %> - <% if is_course_teacher(User.current,@course) %> - 上传资源 - <% end %> -
-
+ <% if is_course_teacher(User.current,@course) %> + 上传资源 + <% end %> +
+
-
-<%= render :partial => 'course_list',:locals => {course: @course,all_attachments: @all_attachments,sort:@sort,order:@order,curse_attachments:@curse_attachments} %> -
+
+ <%= render :partial => 'course_list',:locals => {course: @course,all_attachments: @all_attachments,sort:@sort,order:@order,curse_attachments:@curse_attachments} %> +
-
+
<% html_title(l(:label_attachment_plural)) -%> \ No newline at end of file diff --git a/app/views/files/_course_list.html.erb b/app/views/files/_course_list.html.erb index 93e39f73f..a006ef8ab 100644 --- a/app/views/files/_course_list.html.erb +++ b/app/views/files/_course_list.html.erb @@ -2,16 +2,15 @@

共有 <%= all_attachments.count%> 个资源

- - 资源列表的多样化排序将在下周上线... + <% if order == "asc" %> + 按 <%= link_to "时间",params.merge(:sort=>"created_on:desc"),:class => "f_b c_grey",:remote => @is_remote %><%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %> /  + <%= link_to "下载次数",params.merge(:sort=>"downloads:desc"),:class => "f_b c_grey",:remote => @is_remote %><%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %> /  + <%= link_to "引用次数",params.merge(:sort=>"quotes:desc"),:class => "f_b c_grey",:remote => @is_remote %><%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"quotes"} %> 排序 + <% else %> + 按 <%= link_to "时间",params.merge(:sort=>"created_on:asc"),:class => "f_b c_grey" ,:remote => @is_remote %><%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %> /  + <%= link_to "下载次数",params.merge(:sort=>"downloads:asc"),:class => "f_b c_grey",:remote => @is_remote %><%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %>  /  + <%= link_to "引用次数",params.merge(:sort=>"quotes:asc"),:class => "f_b c_grey",:remote => @is_remote %><%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"quotes"} %> 排序 + <% end %>

@@ -21,7 +20,7 @@ <%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %> <% if User.current.logged? %> <% if is_course_teacher(User.current,@course) && file.author_id == User.current.id %> - <%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current) %> + <%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current,file) %> <% if delete_allowed && file.container_id == @course.id && file.container_type == "Course" %> @@ -31,7 +30,7 @@ <% end %> <% else %> - <%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current) %> + <%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current,file) %> <% end %> <% else %> <% end %> @@ -41,7 +40,7 @@

文件大小:<%= number_to_human_size(file.filesize) %>

<%= link_to( l(:button_delete), attachment_path(file), :data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed && file.container_id == @course.id && file.container_type == "Course"%> -

<%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %>  |  下载<%= file.downloads %>  |  引用<%= get_qute_number file %>

+

<%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %>  |  下载<%= file.downloads %>  |  引用<%= file.quotes.nil? ? 0:file.quotes %>

diff --git a/app/views/files/search.js.erb b/app/views/files/search.js.erb index 84c9a4707..50f46d2f5 100644 --- a/app/views/files/search.js.erb +++ b/app/views/files/search.js.erb @@ -1 +1 @@ -$("#course_list").html("<%= escape_javascript(render :partial => 'course_list',:locals => {course: @course,all_attachments: @result,sort:"create_on",order:"",curse_attachments:@searched_attach})%>"); \ No newline at end of file +$("#course_list").html("<%= escape_javascript(render :partial => 'course_list',:locals => {course: @course,all_attachments: @result,sort:@sort,order:@order,curse_attachments:@searched_attach})%>"); \ No newline at end of file diff --git a/app/views/homework_attach/_addjour.html.erb b/app/views/homework_attach/_addjour.html.erb index 5b2889b57..f2a3a9542 100644 --- a/app/views/homework_attach/_addjour.html.erb +++ b/app/views/homework_attach/_addjour.html.erb @@ -1,35 +1,4 @@