diff --git a/app/controllers/contests_controller.rb b/app/controllers/contests_controller.rb index eb51ea56a..5b2026b3d 100644 --- a/app/controllers/contests_controller.rb +++ b/app/controllers/contests_controller.rb @@ -8,7 +8,7 @@ class ContestsController < ApplicationController helper :files include AvatarHelper - before_filter :find_contest, :only => [:show, :settings, :update, :destroy, :contest_activities, :search_member, :private_or_public, :switch_role, :set_invite_code_halt, :renew, + before_filter :find_contest, :only => [:show, :settings, :update, :destroy, :contest_activities, :private_or_public, :switch_role, :set_invite_code_halt, :renew, :member, :export_all_members, :feedback] before_filter :is_logged, :only => [:index, :new, :create] before_filter :is_admin?, :only => [:settings, :set_invite_code_halt, :destroy] @@ -247,20 +247,6 @@ class ContestsController < ApplicationController redirect_to contest_path(@contest) end - def search_member - if User.current.admin_of_contest?(@contest) || User.current.admin? - q = "#{params[:name].strip}" - @roles = Role.givable.all[11..13] - if q.nil? || q == "" - @members = @contest.member_principals.includes(:roles, :principal).all.sort - else - @members = searchmember_by_name(@contest.member_principals.includes(:roles, :principal).all.sort,q) - end - else - render_403 - end - end - # 邀请码停用/启用 def set_invite_code_halt if User.current.admin_of_contest?(@contest) || User.current.admin? diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 48d32ad78..d33dc16da 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -630,11 +630,6 @@ class CoursesController < ApplicationController join_course_messages = CourseMessage.where("user_id =? and course_message_type =? and course_id =? and status = ? and viewed =?", User.current.id, 'JoinCourse', @course.id, 1, 0) join_course_messages.update_all(:viewed => true) - if params[:tab] && params[:tab] == 'boards' - @tab = 4 - else - @tab = 0 - end if User.current.allowed_to?(:as_teacher,@course) @select_tab = params[:tab] @issue_custom_fields = IssueCustomField.sorted.all @@ -644,6 +639,14 @@ class CoursesController < ApplicationController @roles = Role.givable.all[3..5] @members = @course.member_principals.includes(:roles, :principal).all.sort + + course_org_ids = OrgCourse.find_by_sql("select distinct organization_id from org_courses where course_id = #{@course.id}").map(&:organization_id) + if course_org_ids.empty? + @orgs_not_in_course = User.current.organizations + else + course_org_ids = "(" + course_org_ids.join(',') + ")" + @orgs_not_in_course = User.current.organizations.where("organizations.id not in #{course_org_ids}") + end respond_to do |format| format.html { render :layout => 'base_courses' } format.api { render_validation_errors(@course) } @@ -1160,6 +1163,7 @@ class CoursesController < ApplicationController 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') + @jour_count = @jours.count @limit = 10 if params[:r] && page.nil? offset = @jours.count(:conditions => ["#{JournalsForMessage.table_name}.id > ?", params[:r].to_i]) @@ -1367,9 +1371,25 @@ class CoursesController < ApplicationController end #统计 - def statistics_course + def course_statistics @left_nav_type = 10 + # @order = params[:order] ? params[:order] : 'desc' + # if !params[:tab] || params[:tab] == "activity" + # @type = params[:type] ? params[:type] : 'act_score' + # sql = "SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 + resource_num*5 + journal_num*1 + homework_journal_num*1) AS act_score, + # message_num, message_reply_num, news_reply_num, news_num, resource_num, journal_num, homework_journal_num, ccs.user_id FROM course_contributor_scores ccs + # JOIN students_for_courses ON students_for_courses.course_id = ccs.course_id AND students_for_courses.student_id = ccs.user_id + # WHERE ccs.course_id = #{@course.id} HAVING act_score != 0 ORDER BY #{@type} #{@order}, act_score #{@order}" + # @members = CourseContributorScore.find_by_sql(sql) + # end + # + # @limit = 20 + # @page = params[:page].nil? ? 1 : params['page'].to_i + # @members_count = @members.count + # @mem_pages = Paginator.new @members_count, @limit, @page + # @members = paginateHelper @members, @limit respond_to do |format| + format.js format.html {render :layout => 'base_courses'} end end diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index d3e164844..786f6f5a9 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -352,7 +352,9 @@ class MembersController < ApplicationController role_ids = attrs.delete(:role_ids) if role_ids && role_ids.include?("10") - StudentsForCourse.create(:student_id => @member.user_id, :course_id =>@course.id) + if StudentsForCourse.where(:student_id => @member.user_id, :course_id =>@course.id).blank? + StudentsForCourse.create(:student_id => @member.user_id, :course_id =>@course.id) + end else joined = StudentsForCourse.where('student_id = ? and course_id = ?', @member.user_id,@course.id) joined.each do |join| diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index b8e119478..50dcc0218 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2023,31 +2023,28 @@ class UsersController < ApplicationController reorder("#{MessageAll.table_name}.created_at desc") @unsolved_issues_count = Issue.where(:assigned_to_id => @user.id, :status_id => [1, 2, 4, 6]).includes(:author, :project).count - # 用户待完成的作业 + my_course_ids = StudentsForCourse.includes(:course).where("student_id = #{@user.id} and courses.is_delete = 0").blank? ? "(-1)" : "(" + StudentsForCourse.includes(:course). where("student_id = #{@user.id} and courses.is_delete = 0").map{|sc| sc.course_id}.join(",") + ")" + # 用户待完成的作业 homeworks = HomeworkCommon.where("course_id in #{my_course_ids} and publish_time <= '#{Date.today}'") homework_ids = homeworks.blank? ? "(-1)" : "(" + homeworks.map{|homework| homework.id}.join(",") + ")" student_works = StudentWork.where("user_id = #{@user.id} and homework_common_id in #{homework_ids} and work_status != 0") @unfinished_homework_count = homeworks.count - student_works.count # 用户待完成的测验 exercises = Exercise.where("course_id in #{my_course_ids} and exercise_status = 2") - exercise_ids = exercises.blank? ? "(-1)" : "(" + exercises.map{|ex| ex.id}.join(",") + ")" - exercise_users = ExerciseUser.where("user_id = #{@user.id} and exercise_id in #{exercise_ids}") + exercise_users = ExerciseUser.where(:user_id => @user.id, :exercise_id => exercises.map{|ex| ex.id}) @unfinished_test_count = exercises.count - exercise_users.count # 用户待完成的问卷 polls = Poll.where("polls_type = 'Course' and polls_group_id in #{my_course_ids} and polls_status = 2") - poll_ids = polls.blank? ? "(-1)" : "(" + polls.map{|poll| poll.id}.join(",") + ")" - poll_users = PollUser.where("user_id = #{@user.id} and poll_id in #{poll_ids}") + poll_users = PollUser.where(:user_id => @user.id, :poll_id => polls.map{|poll| poll.id}) @unfinished_poll_count = polls.count - poll_users.count # 用户待匿评的作品 - homeworks = HomeworkCommon.includes(:homework_detail_manual).where("homework_commons.course_id in #{my_course_ids} and homework_detail_manuals.comment_status in (1,2)") - homework_ids = homeworks.blank? ? "(-1)" : "(" + homeworks.map{|homework| homework.id}.join(",") + ")" + homeworks = HomeworkCommon.includes(:homework_detail_manual).where("homework_commons.course_id in #{my_course_ids} and homework_detail_manuals.comment_status = 2") student_work_scores = @user.student_works_scores.where("reviewer_role = 3") anonymous_evaluation_ids = student_work_scores.blank? ? "(-1)" : "(" + student_work_scores.map{|st| st.student_work_id}.join(",") + ")" unfinished_evaluations = @user.student_works_evaluation_distributions.where("student_work_id not in #{anonymous_evaluation_ids}") - unfinished_evaluations_work_ids = unfinished_evaluations.blank? ? "(-1)" : "(" + unfinished_evaluations.map{|st| st.student_work_id}.join(",") + ")" - @anonymous_evaluation_count = StudentWork.where("student_works.id in #{unfinished_evaluations_work_ids} and homework_common_id in #{homework_ids}").count + @anonymous_evaluation_count = StudentWork.where(:id => unfinished_evaluations.map{|ev| ev.student_work_id}, :homework_common_id => homeworks.map{|hw| hw.id}).count # 待评阅的作业 暂不做 # @unreview_homework = 1 diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index 587d14c9c..38ec4270b 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -95,6 +95,14 @@ class WordsController < ApplicationController @jours_count = @course.journals_for_messages.where('m_parent_id IS NULL').count @user_activity_id = params[:user_activity_id] if params[:user_activity_id] @activity = JournalsForMessage.where("id = #{params[:activity_id].to_i}").first if params[:activity_id] + unless @activity + if params[:user_activity_id] == params[:activity_id] + redirect_to course_feedback_path(@course) + else + redirect_to course_path(@course) + end + return + end elsif @journal_destroyed.jour_type == "Principal" @user = User.find(@journal_destroyed.jour_id) @jours_count = @user.journals_for_messages.where('m_parent_id IS NULL').count @@ -282,7 +290,7 @@ class WordsController < ApplicationController # add by nwb def leave_course_message user = User.current - message = params[:new_form][:course_message] + message = params[:new_form][:content] feedback = Course.add_new_jour(user, message, params[:id]) if(feedback.errors.empty?) if params[:asset_id] diff --git a/app/controllers/works_controller.rb b/app/controllers/works_controller.rb index 4989d907c..7a06f83f3 100644 --- a/app/controllers/works_controller.rb +++ b/app/controllers/works_controller.rb @@ -112,7 +112,7 @@ class WorksController < ApplicationController homework_end_time = Time.parse(@contestwork.end_time.to_s).strftime("%Y-%m-%d") work_detail_manual = @contestwork.work_detail_manual if homework_end_time != param_end_time - eval_start = work_detail_manual.evaluation_start + eval_start = Time.parse(work_detail_manual.evaluation_start.to_s).strftime("%Y-%m-%d") if eval_start.nil? || (eval_start <= param_end_time && @contestwork.work_status <= 2) work_detail_manual.evaluation_start = @contestwork.end_time + 7 work_detail_manual.evaluation_end = work_detail_manual.evaluation_start + 7 diff --git a/app/models/comment.rb b/app/models/comment.rb index e0563104e..93dead879 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -56,13 +56,14 @@ class Comment < ActiveRecord::Base # end end elsif self.commented.contest - if self.author_id != self.commented.author_id - self.contest_messages << ContestMessage.new(:user_id => self.commented.author_id, :contest_id => self.commented.contest.id, :viewed => false) - # count = ShieldWechatMessage.where("container_type='User' and container_id=#{self.commented.author_id} and shield_type='Course' and shield_id=#{self.commented.course.id}").count - # if count == 0 - # content = strip_html self.comments.html_safe, 200 - # ws.comment_template self.commented.author_id, "course_notice", self.id, "#{l(:label_notice_comment_template)}", self.author.try(:realname), format_time(self.created_on), content - # end + if self.parent.nil? + if self.author_id != self.commented.author_id + self.contest_messages << ContestMessage.new(:user_id => self.commented.author_id, :contest_id => self.commented.contest.id, :viewed => false) + end + else + if self.author_id != self.parent.author_id + self.contest_messages << ContestMessage.new(:user_id => self.parent.author_id, :contest_id => self.commented.contest.id, :viewed => false) + end end else # 项目相关 # if self.author_id != self.commented.author_id diff --git a/app/models/course.rb b/app/models/course.rb index 2568c463a..719dd0d28 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -55,6 +55,7 @@ class Course < ActiveRecord::Base has_many :student_works, :through => :homework_commons, :dependent => :destroy has_many :course_groups, :dependent => :destroy + #has_many :course_homework_statistics, :dependent => :destroy # 课程动态 has_many :course_acts, :class_name => 'CourseActivity',:as =>:course_act ,:dependent => :destroy diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index 38c323798..933324e2b 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -78,7 +78,7 @@ class JournalsForMessage < ActiveRecord::Base validates :notes, presence: true, if: :is_homework_jour? after_create :act_as_course_activity, :act_as_course_message, :act_as_contest_activity, act_as_at_message(:notes, :user_id), :act_as_user_feedback_message, - :act_as_principal_activity + :act_as_principal_activity, :act_as_contest_message # after_create :reset_counters! #after_update :update_activity # after_destroy :reset_counters! @@ -325,6 +325,23 @@ class JournalsForMessage < ActiveRecord::Base end end + # 竞赛留言消息通知 + def act_as_contest_message + # 主留言 + if self.jour_type == 'Contest' + if self.m_parent_id.nil? + receivers = self.jour.contest_members.select{|cm| cm.roles.to_s.include?("ContestManager") && cm.user_id != self.user_id} + receivers.each do |r| + self.contest_messages << ContestMessage.new(:user_id => r.user_id, :contest_id => self.jour.id, :viewed => false) + end + else # 留言回复 + if self.user_id != self.reply_id # 添加我回复的那个人 + self.contest_messages << ContestMessage.new(:user_id => self.reply_id, :contest_id => self.jour.id, :viewed => false) + end + end + end + end + # 课程成员得分(活跃度) def act_as_student_score if self.jour_type == "Course" diff --git a/app/models/member.rb b/app/models/member.rb index bb336e936..2d1a25b74 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -55,6 +55,9 @@ class Member < ActiveRecord::Base if (new_role_ids.include?(7) || new_role_ids.include?(9)) && role_ids.include?(10) member_roles.where("role_id = 10").first.update_column('is_current', 0) end + if ids.include?(10) && !ids.include?(7) && !ids.include?(9) && role_ids.include?(10) + member_roles.where("role_id = 10").first.update_column('is_current', 1) + end # Add new roles if new_role_ids.include?(7) && new_role_ids.include?(10) member_roles << MemberRole.new(:role_id => 7) diff --git a/app/models/students_for_course.rb b/app/models/students_for_course.rb index 8e7026912..fb302ff2d 100644 --- a/app/models/students_for_course.rb +++ b/app/models/students_for_course.rb @@ -9,8 +9,8 @@ class StudentsForCourse < ActiveRecord::Base validates_presence_of :course_id, :student_id validates_uniqueness_of :student_id, :scope => :course_id - after_destroy :delete_student_works - after_create :recovery_student_works, :create_student_works + after_destroy :delete_student_works, :delete_course_homework_statistic + after_create :recovery_student_works, :create_student_works, :create_course_homework_statistic #退出班级或删除学生时隐藏学生的作品 def delete_student_works @@ -37,4 +37,41 @@ class StudentsForCourse < ActiveRecord::Base end end end + + #加入班级时创建一条记录 + def create_course_homework_statistic + # if CourseHomeworkStatistic.where(:user_id => self.student_id, :course_id => self.course_id).count == 0 + # course = self.course + # user = self.student + # hw_count = course.homework_commons.count + # homework_ids = course.homework_commons.empty? ? "(-1)" : "(" + course.homework_commons.map{|hw| hw.id}.join(",") + ")" + # student_works = StudentWork.where("homework_common_id in #{homework_ids}") + # is_eva_homeworks = course.homework_commons.includes(:homework_detail_manual).where("homework_commons.anonymous_comment = 0 and homework_detail_manuals.comment_status = 2") + # is_eva_student_works = StudentWork.where(:homework_common_id => is_eva_homeworks.map{|hw| hw.id}) + # has_eva_homeworks = course.homework_commons.includes(:homework_detail_manual).where("homework_commons.anonymous_comment = 0 and homework_detail_manuals.comment_status = 3") + # has_eva_student_works = StudentWork.where(:homework_common_id => has_eva_homeworks.map{|hw| hw.id}) + # course.student.each do |student| + # user = student.student + # if user + # committed_work_num = user.student_works.where("homework_common_id in #{homework_ids} and work_status != 0").count + # un_commit_work_num = hw_count - committed_work_num + # late_commit_work_num = user.student_works.where("homework_common_id in #{homework_ids} and work_status = 2").count + # absence_evaluation_work_num = user.student_works_evaluation_distributions.where(:student_work_id => has_eva_student_works.map(&:id)).count - + # user.student_works_scores.where(:reviewer_role => 3, :student_work_id => has_eva_student_works.map(&:id)).group_by(&:student_work_id).count + # un_evaluation_work_num = user.student_works_evaluation_distributions.where(:student_work_id => is_eva_student_works.map(&:id)).count - + # user.student_works_scores.where(:reviewer_role => 3, :student_work_id => is_eva_student_works.map(&:id)).group_by(&:student_work_id).count + # appeal_num = user.student_works_scores.where(:student_work_id => student_works.map(&:id), :appeal_status => 3).count + # average_score = user.student_works.where(:id => student_works.map(&:id)).select("AVG(student_works.work_score) as score").first ? user.student_works.where(:id => student_works.map(&:id)).select("SUM(student_works.work_score) as score").first.score : 0 + # total_score = user.student_works.where(:id => student_works.map(&:id)).select("SUM(student_works.work_score) as score").first ? user.student_works.where(:id => student_works.map(&:id)).select("SUM(student_works.work_score) as score").first.score : 0 + # CourseHomeworkStatistic.create(:course_id => course.id, :user_id => user.id, :committed_work_num => committed_work_num, :un_commit_work_num => un_commit_work_num, + # :late_commit_work_num => late_commit_work_num, :absence_evaluation_work_num => absence_evaluation_work_num, :un_evaluation_work_num => un_evaluation_work_num, + # :appeal_num => appeal_num, :average_score => average_score, :total_score => total_score) + # end + # end + # end + end + + def delete_course_homework_statistic + #CourseHomeworkStatistic.where(:user_id => self.student_id, :course_id => self.course_id).destroy_all + end end diff --git a/app/models/user.rb b/app/models/user.rb index afc099d35..a50c90080 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -183,6 +183,8 @@ class User < Principal # 课程贡献榜 has_many :course_contributor_scores, :dependent => :destroy + #has_many :course_homework_statistics, :dependent => :destroy + ######added by nie has_many :project_infos, :dependent => :destroy has_one :user_status, :dependent => :destroy diff --git a/app/views/avatar/_new_avatar_form.html.erb b/app/views/avatar/_new_avatar_form.html.erb index da952054f..7a595fc39 100644 --- a/app/views/avatar/_new_avatar_form.html.erb +++ b/app/views/avatar/_new_avatar_form.html.erb @@ -1,8 +1,9 @@ - - <%= image_tag(url_to_avatar(source), id: "avatar_image", :width =>"60", :height =>"60",:alt=>"上传图片", :class => "fl ml5 pro_new_upimg")%> - -<%#= link_to l(:button_delete_file),{:controller => :avatar,:action => :delete_image,:remote=>true,:source_type=> source.class,:source_id=>source.id},:confirm => l(:text_are_you_sure), :method => :post, :class => "upbtn fl" %> -<%= l(:button_upload_photo) %> + +点击更换 <%= file_field_tag 'avatar[image]', :id => 'upload_course_logo', :class => 'undis upload_file', diff --git a/app/views/boards/destroy.js.erb b/app/views/boards/destroy.js.erb index 96fe4e80f..e9ebf2024 100644 --- a/app/views/boards/destroy.js.erb +++ b/app/views/boards/destroy.js.erb @@ -1,4 +1,5 @@ <% if @course %> +hideModal(); $("#tbc_04").html("<%=escape_javascript(render :partial => 'courses/settings/boards_setting') %>"); <% course_board = @course.boards.where("parent_id is NULL").first %> $("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board})%>"); diff --git a/app/views/boards/update_name.js.erb b/app/views/boards/update_name.js.erb index 96fe4e80f..e9ebf2024 100644 --- a/app/views/boards/update_name.js.erb +++ b/app/views/boards/update_name.js.erb @@ -1,4 +1,5 @@ <% if @course %> +hideModal(); $("#tbc_04").html("<%=escape_javascript(render :partial => 'courses/settings/boards_setting') %>"); <% course_board = @course.boards.where("parent_id is NULL").first %> $("#board_children_list").html("<%= escape_javascript(render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board})%>"); diff --git a/app/views/contests/dealwith_apply_request.js.erb b/app/views/contests/dealwith_apply_request.js.erb index 9320f7e8b..745500932 100644 --- a/app/views/contests/dealwith_apply_request.js.erb +++ b/app/views/contests/dealwith_apply_request.js.erb @@ -1 +1,8 @@ -$("#contest_message_join_<%=@msg.id %>").html('<%= escape_javascript(render :partial => 'users/join_contest_applied_message', :locals => {:ma => @msg}) %>'); \ No newline at end of file +$("#contest_message_join_<%=@msg.id %>").html('<%= escape_javascript(render :partial => 'users/join_contest_applied_message', :locals => {:ma => @msg}) %>'); +$(".messageInformationContents").each(function(){ + var parentWidth = $(this).parent().width(); + var eq0Width = $(this).parent().children().eq(0).width(); + var eq1Width = $(this).parent().children().eq(1).width(); + var classWidth = parentWidth - eq0Width - eq1Width - 20; + $(this).css("max-width",classWidth + "px"); +}); \ No newline at end of file diff --git a/app/views/contests/search_member.js.erb b/app/views/contests/search_member.js.erb deleted file mode 100644 index c34a08aaf..000000000 --- a/app/views/contests/search_member.js.erb +++ /dev/null @@ -1 +0,0 @@ -$('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); \ No newline at end of file diff --git a/app/views/courses/_act_table.html.erb b/app/views/courses/_act_table.html.erb new file mode 100644 index 000000000..99d67917a --- /dev/null +++ b/app/views/courses/_act_table.html.erb @@ -0,0 +1,137 @@ +<% if @members.count != 0 %> + + + + + + + + + + + + + + + + <% @members.each do |member| %> + + + + + + + + + + + + <% end %> + +
姓名 + <%= link_to '发布资源', course_statistics_course_path(@course, :type => 'resource_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "resource_num" && @order == 'desc' %> + + <% elsif @type == "resource_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '发布帖子', course_statistics_course_path(@course, :type => 'message_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "message_num" && @order == 'desc' %> + + <% elsif @type == "message_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '帖子回复', course_statistics_course_path(@course, :type => 'message_reply_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "message_reply_num" && @order == 'desc' %> + + <% elsif @type == "message_reply_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '发布通知', course_statistics_course_path(@course, :type => 'news_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "news_num" && @order == 'desc' %> + + <% elsif @type == "news_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '通知回复', course_statistics_course_path(@course, :type => 'news_reply_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "news_reply_num" && @order == 'desc' %> + + <% elsif @type == "news_reply_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '作业回复', course_statistics_course_path(@course, :type => 'homework_journal_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "homework_journal_num" && @order == 'desc' %> + + <% elsif @type == "homework_journal_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '班级留言', course_statistics_course_path(@course, :type => 'journal_num', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "journal_num" && @order == 'desc' %> + + <% elsif @type == "journal_num" && @order == 'asc' %> + + <% end %> + + <%= link_to '活跃度', course_statistics_course_path(@course, :type => 'act_score', :order => (@order == "desc" ? "asc" : "desc")), method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @type == "act_score" && @order == 'desc' %> + + <% elsif @type == "act_score" && @order == 'asc' %> + + <% end %> +
<%= link_to member.user.show_name, user_path(member.user), :class => 'course_class_users_st_name' %><%= member.resource_num %><%= member.message_num %><%= member.message_reply_num %><%= member.news_num %><%= member.news_reply_num %><%= member.homework_journal_num %><%= member.journal_num %> + <%= member.act_score %> +
+ + +

资源发布数*5=<%= member.resource_num %>*5=<%= member.resource_num.to_i * 5 %>
+ 帖子发布数*2=<%= member.message_num %>*2=<%= member.message_num.to_i * 2 %>
+ 帖子回复数*1=<%= member.message_reply_num %>*1=<%= member.message_reply_num.to_i * 1 %>
+ 通知发布数*1=<%= member.news_num %>*1=<%= member.news_num.to_i * 1 %>
+ 通知回复数*1=<%= member.news_reply_num %>*1=<%= member.news_reply_num.to_i * 1 %>
+ 作业留言数*1=<%= member.homework_journal_num %>*1=<%= member.homework_journal_num.to_i * 1 %>
+ 班级留言数*1=<%= member.journal_num %>*1=<%= member.journal_num.to_i * 1 %>
+ 总得分:<%= member.act_score %> +

+
+
+
+
+ +
+
+
+<% else%> +
+

没有数据可以显示!

+<% end %> + + \ No newline at end of file diff --git a/app/views/courses/_course_jours_list.html.erb b/app/views/courses/_course_jours_list.html.erb new file mode 100644 index 000000000..94e464445 --- /dev/null +++ b/app/views/courses/_course_jours_list.html.erb @@ -0,0 +1,17 @@ +<%= content_for(:header_tags) do %> + <%= import_ke(enable_at: true, prettify: false, init_activity: true) %> +<% end %> + +<%if jours %> + <% jours.each do |jour|%> + + <%= render :partial => 'users/course_journalsformessage', :locals => {:activity => jour,:user_activity_id =>jour.id, :is_course => 1} %> + <%end%> +<% end%> +<% if (jours.count + page * 10) < count %> + <%= link_to "点击展开更多",course_feedback_path(@course.id, :page => page),:id => "show_more_jours",:remote => "true",:class => "loadMore mt10 f_grey"%> +<% end %> \ No newline at end of file diff --git a/app/views/courses/_member_list.html.erb b/app/views/courses/_member_list.html.erb deleted file mode 100644 index a773b6147..000000000 --- a/app/views/courses/_member_list.html.erb +++ /dev/null @@ -1,118 +0,0 @@ - -
-<% if User.current.logged? && User.current.member_of_course?(@course) && @group %> - <%= join_in_course_group(@course.course_groups,@group, User.current) unless @canShowCode %> - - <%= l(:label_current_group)%>:  - <%= @group.name %> - -<% end %> - - -
-
-<% if members.any? %> - <% if @result_count %> -

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

- <% end %> -
-
- -
- <% members.each do |member| %> -
-
- - - <%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 40, :height => 40)) %> - -
    - <% if @canShowCode %> - <% if member.user.show_name == '' && member.user.user_extensions.student_id == '' %> -
  • - <%= l(:label_username)%> - <%= link_to(member.user.name, user_path(member.user)) %> -
  • - <% else %> - <% unless member.user.show_name == ''%> -
  • - <%= l(:label_bidding_user_studentname) %> : - <%= link_to member.user.show_name, user_path(member.user) %> -
  • -
    - <% end %> - <% unless member.user.user_extensions.student_id == '' %> -
  • - <%= l(:label_bidding_user_studentcode) %> : - <%= link_to member.user.user_extensions.student_id, user_path(member.user) %> -
  • - <% end %> - <% end %> - <%#= content_tag "li", "#{l(:label_bidding_user_studentname)}#{' : '}"link_to(member.user.show_name, user_path(member.user)) %> - <% else %> -
  • - <%= l(:label_username)%> - <%= link_to(member.user.name, user_path(member.user)) %> -
  • - <% end %> - - - -
- <% if @subPage_title == l(:label_student_list) %> - <%= link_to format("%0.2f",member.score.nil? ? 0 : member.score.to_s), { - :action => 'show_member_score', - :member_id => member.id, - :remote => true}, - :class => 'ml258 c_red', :style => "color:red;" %> - - <% unless member.created_on.nil? %> - <%= content_tag "span", "#{format_date(member.created_on)}#{l(:label_member_since)}", :class => "ml65 c_grey" %> - <% end %> - <% else %> - <% unless member.created_on.nil? %> - <%= content_tag "span", "#{format_date(member.created_on)}#{l(:label_member_since)}", :class => "ml65 c_grey", :style=>"margin-left:195px" %> - <% end %> - <% end %> - - - <%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %> -
- <% end; reset_cycle %> -
-
- -<% else %> -

- <%= l(:label_no_data) %> -

-<% end %> \ No newline at end of file diff --git a/app/views/courses/_member_list_detail.html.erb b/app/views/courses/_member_list_detail.html.erb deleted file mode 100644 index 1067f709d..000000000 --- a/app/views/courses/_member_list_detail.html.erb +++ /dev/null @@ -1,60 +0,0 @@ -<% members.each do |member| %> - -
-
- <% next if member.new_record? %> - - <%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 40, :height => 40)) %> - - <% if @subPage_title == l(:label_student_list) %> - <%= link_to format("%0.2f",member.score.to_s), { - :action => 'show_member_score', - :member_id => member.id, - :remote => true}, - :class => 'ml258 c_red', :style => "color:red;" %> - - <% unless member.created_on.nil? %> - <%= content_tag "span", "#{format_date(member.created_on)}#{l(:label_member_since)}", :class => "ml65 c_grey" %> - <% end %> - <% else %> - <% unless member.created_on.nil? %> - <%= content_tag "span", "#{format_date(member.created_on)}#{l(:label_member_since)}", :class => "ml65 c_grey", :style=>"margin-left:195px" %> - <% end %> - <% end %> - - - <%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %> -
-<% end; reset_cycle %> \ No newline at end of file diff --git a/app/views/courses/_new_member_list.html.erb b/app/views/courses/_new_member_list.html.erb index 28c8874b6..67973dc65 100644 --- a/app/views/courses/_new_member_list.html.erb +++ b/app/views/courses/_new_member_list.html.erb @@ -162,9 +162,8 @@ <% else%> -

- <%= l(:label_no_data) %> -

+
+

没有数据可以显示!

<% end %> \ No newline at end of file diff --git a/app/views/courses/search_member.js.erb b/app/views/courses/search_member.js.erb index c34a08aaf..dfdc6cf32 100644 --- a/app/views/courses/search_member.js.erb +++ b/app/views/courses/search_member.js.erb @@ -1 +1 @@ -$('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); \ No newline at end of file +$('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/settings/member') %>'); diff --git a/app/views/courses/search_public_orgs_not_in_course.js.erb b/app/views/courses/search_public_orgs_not_in_course.js.erb index ebd0c58a7..776a4e418 100644 --- a/app/views/courses/search_public_orgs_not_in_course.js.erb +++ b/app/views/courses/search_public_orgs_not_in_course.js.erb @@ -5,9 +5,9 @@ } <% end %> $("#search_orgs_result_list").html(""); -$("#search_orgs_result_list").append(' + <% end %> + + + <% unless member.user == @course.teacher %> + 编辑 + + + 删除 + <% end %> + + + <% end %> + + + \ No newline at end of file diff --git a/app/views/courses/settings/_edit.html.erb b/app/views/courses/settings/_edit.html.erb new file mode 100644 index 000000000..df1b0e73b --- /dev/null +++ b/app/views/courses/settings/_edit.html.erb @@ -0,0 +1,72 @@ + +<% if @course.is_delete == 1 %> +
<%=link_to "恢复该班级", renew_course_path(@course) %>
+<% else %> +
+ <%=link_to "删除该班级", course_path(@course), :method => :delete, :confirm=>"确认要删除该班级吗?" %> + (友情提示:删除该班级后如果您想恢复该班级,请联系系统管理员!) +
+<% end %> diff --git a/app/views/courses/settings/_join_org.html.erb b/app/views/courses/settings/_join_org.html.erb index 2774a6c9a..86d55d145 100644 --- a/app/views/courses/settings/_join_org.html.erb +++ b/app/views/courses/settings/_join_org.html.erb @@ -1,85 +1,84 @@ - - - - - - - <%= stylesheet_link_tag 'css/org' %> -
-
- 关联组织 -
- <%= form_tag url_for(:controller => 'org_courses', :action => 'create', :course_id => @course.id), :id => 'join_orgs_for_course', :remote => true do %> - -
- - 关联 - 取消 - <% end %> -
-
-
- 已关联组织 -
- <%= render :partial => 'courses/settings/added_orgs', :locals => {:orgs => @course.organizations, :course_id => params[:id]} %> -
-
-
+<% if @orgs_not_in_course.empty? && @course.organizations.empty? %> +
+

您没有创建组织,请先 <%=link_to '新建组织', new_organization_path, :class => 'sy_btn_green', :target => '_blank' %>,再关联

+<% else %> +
+
+

关联组织

+
+ <%= form_tag url_for(:controller => 'org_courses', :action => 'create', :course_id => @course.id), :id => 'join_orgs_for_course', :remote => true do %> + +
+
+
    + 关联 + 取消 + + <% end %> +
    +
    +

    已关联组织

    +
      +
      + <%= render :partial => 'courses/settings/added_orgs', :locals => {:orgs => @course.organizations, :course_id => @course.id} %> +
      +
    +
    -
    -
    - \ No newline at end of file + + $(document).ready(function(){ + $.ajax({ + url: '<%= url_for(:controller => 'courses', :action => 'search_public_orgs_not_in_course') %>'+'?page=1', + type:'get' + }); + }); + function cancel_join_orgs() { + $("#join_orgs_for_course input:checked").attr("checked", false); + } + function course_join_org(courseId) { + $.ajax({ + url: "/org_courses?" + $("#join_orgs_for_course").serialize() + "&course_id=" + courseId, + type: "post", + success: function (data) { + $.ajax({ + url: "/courses/" + courseId + "/search_public_orgs_not_in_course?hint_flag=true&name=" + $("input[name='orgs']").val().trim(), + type: "get" + }); + } + }); + } + + +<% end %> \ No newline at end of file diff --git a/app/views/courses/settings/_member.html.erb b/app/views/courses/settings/_member.html.erb new file mode 100644 index 000000000..5fa67feaa --- /dev/null +++ b/app/views/courses/settings/_member.html.erb @@ -0,0 +1,67 @@ +
    + 添加成员 +
    +
    + <%= form_for(@member, {:as => :membership, :url => course_memberships_path(@course), :remote => true, :method => :post}) do |f| %> + +
    + <%= render_principals_for_new_course_members(@course) %> +
    +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +
    +
    + 取消 + 保存 + <% end %> +
    + +
    + <%= render :partial => 'courses/settings/course_member' %> +
    +
    + + \ No newline at end of file diff --git a/app/views/courses/settings/_members.html.erb b/app/views/courses/settings/_members.html.erb index c76f1c48e..cbfaac442 100644 --- a/app/views/courses/settings/_members.html.erb +++ b/app/views/courses/settings/_members.html.erb @@ -70,9 +70,8 @@ <% else %> -

    - <%= l(:label_no_data) %> -

    +
    +

    没有数据可以显示!

    <% end %>
    diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index 933f91692..58589203c 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -19,7 +19,7 @@ <%= javascript_heads %> <%= heads_for_theme %> <%= call_hook :view_layouts_base_html_head %> - <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','sy_public','syllabus', 'css/moduel'%> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup','sy_public','syllabus', 'css/moduel','css/contest'%> <%= javascript_include_tag "course","avatars","header","attachments",'prettify' %> <%= yield :header_tags -%> @@ -127,7 +127,7 @@ <% statistics_count = 0 %> <% unless show_nav?(statistics_count) %>
  • - 统计 + 统计
  • <% end %> diff --git a/app/views/members/create.js.erb b/app/views/members/create.js.erb index 8a6500572..46c4fb392 100644 --- a/app/views/members/create.js.erb +++ b/app/views/members/create.js.erb @@ -9,12 +9,12 @@ <% end%> <%elsif @course%> <% if @create_member_error_messages%> - alert("<%= @create_member_error_messages%>"); + notice_box("<%= @create_member_error_messages%>"); <% else%> - $('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); + $('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/settings/member') %>'); $("#teacher_number").html("<%= searchTeacherAndAssistant(@course).count %>"); $("#student_number").html("<%= studentCount(@course) %>"); - alert("添加成功"); + notice_box("添加成功"); <% end%> hideOnLoad(); <%end%> diff --git a/app/views/members/destroy.js.erb b/app/views/members/destroy.js.erb index b331f15a4..842506de8 100644 --- a/app/views/members/destroy.js.erb +++ b/app/views/members/destroy.js.erb @@ -3,7 +3,7 @@ $("#project_members_number").html("<%= @project.members.count %>"); // $('#tab-content-members').html('<%#= escape_javascript(render :partial => 'projects/settings/members') %>'); <%elsif @course%> - $('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); + $('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/settings/member') %>'); $("#teacher_number").html("<%= searchTeacherAndAssistant(@course).count %>") $("#student_number").html("<%= studentCount(@course) %>"); <%end%> diff --git a/app/views/members/update.js.erb b/app/views/members/update.js.erb index 7c27e39fc..e2442b8dd 100644 --- a/app/views/members/update.js.erb +++ b/app/views/members/update.js.erb @@ -1,7 +1,7 @@ <%if @project%> $('#pro_st_tbc_03').html('<%= escape_javascript(render :partial => 'projects/settings/new_members') %>'); <%elsif @course%> -$('#course_members_setting').html('<%= escape_javascript(render :partial => 'courses/course_members') %>'); +$('#tbc_02').html('<%= escape_javascript(render :partial => 'courses/settings/member') %>'); $("#teacher_number").html("<%= searchTeacherAndAssistant(@course).count %>") $("#student_number").html("<%= studentCount(@course) %>"); <%end%> diff --git a/app/views/news/_course_news_list.html.erb b/app/views/news/_course_news_list.html.erb index 3db222f25..0fd71b28e 100644 --- a/app/views/news/_course_news_list.html.erb +++ b/app/views/news/_course_news_list.html.erb @@ -1,8 +1,7 @@
    <% if newss.empty? %> -

    - <%= l(:label_no_data) %> -

    +
    +

    没有数据可以显示!

    <% else %> <% newss.each do |news| %>
    diff --git a/app/views/org_courses/destroy.js.erb b/app/views/org_courses/destroy.js.erb index 9984f6a4c..ad2c1eb0f 100644 --- a/app/views/org_courses/destroy.js.erb +++ b/app/views/org_courses/destroy.js.erb @@ -1,4 +1,4 @@ -$("#added_orgs").html(""); -$("#added_orgs").html('<%= escape_javascript(render :partial => "courses/settings/added_orgs", :locals => {:orgs => @course.organizations, :course_id => @course.id}) %>'); +hideModal(); +$("#tbc_03").html('<%= escape_javascript(render :partial => "courses/settings/join_org") %>'); diff --git a/app/views/student_work/_evaluation_title.html.erb b/app/views/student_work/_evaluation_title.html.erb index eacdb5e16..510cb91b9 100644 --- a/app/views/student_work/_evaluation_title.html.erb +++ b/app/views/student_work/_evaluation_title.html.erb @@ -17,7 +17,7 @@ <% elsif @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 0 %> 组长 <% end %> - + 状态 <% if @homework.homework_type == 2%> @@ -28,6 +28,8 @@ 我的评分 + + <% @stundet_works.each_with_index do |student_work, i|%> <% score_open = @homework.score_open == 1 || student_work.user == User.current %> diff --git a/app/views/student_work/_evaluation_un_group_member_work.html.erb b/app/views/student_work/_evaluation_un_group_member_work.html.erb index 073e79fc4..9a482f063 100644 --- a/app/views/student_work/_evaluation_un_group_member_work.html.erb +++ b/app/views/student_work/_evaluation_un_group_member_work.html.erb @@ -26,9 +26,21 @@
    - - <%= st.teaching_asistant_score.nil? ? "--" : (!score_open ? "**" : format("%.1f",st.teaching_asistant_score))%> - +
    + <% if st.teaching_asistant_score.nil? || !score_open %> + <%=st.teaching_asistant_score.nil? ? "--" : "**" %> + <% else %> + <%= format("%.1f",st.teaching_asistant_score) %> +
    + + + 现共有 +  <%= st.student_works_scores.where(:reviewer_role => 2).group_by(&:user_id).count%>  + 名助教进行了评分,<%=@homework.homework_detail_manual.ta_mode == 1 ? "平均" : "复审" %>分为 +  <%= format("%.1f",st.teaching_asistant_score)%> 分。 +
    + <% end %> +
    <% if @homework.anonymous_comment == 0 %>
    @@ -57,12 +69,14 @@ (<%= anon_count %>) -
    - 现共有 -  <%= anon_count %>  - 名学生进行了匿评,平均分为 -  <%= format("%.1f", st.student_score) %> 分。 -
    +
    + + + 现共有 +  <%= anon_count%>  + 名学生进行了匿评,平均分为 +  <%= format("%.1f",st.student_score)%> 分。 +
    <% end %> <% end %>
    @@ -73,7 +87,7 @@
    <%= score.nil? ? "--" : (!score_open ? "**" : format("%.1f",score<0 ? 0 : score))%> <% unless !score_open || score.nil?%> -
    +
    作品最终评分为 @@ -102,20 +116,13 @@
    - <% if User.current.allowed_to?(:as_teacher, st.homework_common.course) %> + <% if @is_teacher %>
    评分
    <% end %> -