diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 7a413378c..ed81fd98a 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -36,8 +36,9 @@ class CoursesController < ApplicationController before_filter :require_login, :only => [:join, :unjoin] #before_filter :allow_join, :only => [:join] require 'bundler/setup' - require 'simple_xlsx_reader' - + if RUBY_PLATFORM =~ /linux/ + require 'simple_xlsx_reader' + end # params[:search] 搜索课程的名称 # params[:select] "join" "create" "all" 参与的 创建的 所有的课程 # @@ -1787,24 +1788,48 @@ class CoursesController < ApplicationController end def search_not_teachers - if !params[:search].nil? - members = searchTeacherAndAssistant @course - member_ids = "(" + members.map(&:user_id).join(',') + ")" - condition = "%#{params[:search].strip}%".gsub(" ","") + members = searchTeacherAndAssistant @course + member_ids = "(" + members.map(&:user_id).join(',') + ")" + condition = "%#{params[:search]}%".gsub(" ","") + @school = params[:school] || @course.teacher.school_name + if @school != "" + school_s = "%#{@school}%".gsub(" ","") + school_ids = School.where("name like '#{school_s}'").blank? ? "(-1)" : "(" + School.where("name like '#{school_s}'").map(&:id).join(",") + ")" + @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and LOWER(concat(lastname, firstname)) LIKE '#{condition}' and user_extensions.school_id in #{school_ids}") + else @users = User.where("id not in #{member_ids} and status = 1 and LOWER(concat(lastname, firstname)) LIKE '#{condition}'").includes(:user_extensions) end + + @user_ids = @users.map(&:id).join(",") + @limit = 8 + @page = params[:page].nil? ? 1 : params['page'].to_i + @users_count = @users.count + @users_pages = Paginator.new @users_count, @limit, @page + @users = paginateHelper @users, @limit respond_to do |format| format.js end end def search_not_students - if !params[:search].nil? - members = @course.members.select{|m| m.roles.to_s.include?("Student")} - member_ids = members.empty? ? "(-1)" : "(" + members.map(&:user_id).join(',') + ")" - condition = "%#{params[:search].strip}%".gsub(" ","") + members = @course.members.select{|m| m.roles.to_s.include?("Student")} + member_ids = members.empty? ? "(-1)" : "(" + members.map(&:user_id).join(',') + ")" + condition = "%#{params[:search]}%".gsub(" ","") + @school = params[:school] || @course.teacher.school_name + if @school != "" + school_s = "%#{@school}%".gsub(" ","") + school_ids = School.where("name like '#{school_s}'").blank? ? "(-1)" : "(" + School.where("name like '#{school_s}'").map(&:id).join(",") + ")" + @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and user_extensions.school_id in #{school_ids} and (LOWER(concat(lastname, firstname)) LIKE '#{condition}' or user_extensions.student_id LIKE '#{condition}')") + else @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and (LOWER(concat(lastname, firstname)) LIKE '#{condition}' or user_extensions.student_id LIKE '#{condition}')") end + + @user_ids = @users.map(&:id).join(",") + @limit = 8 + @page = params[:page].nil? ? 1 : params['page'].to_i + @users_count = @users.count + @users_pages = Paginator.new @users_count, @limit, @page + @users = paginateHelper @users, @limit respond_to do |format| format.js end diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index 69194f1f8..885ff73d2 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -316,9 +316,8 @@ class GamesController < ApplicationController answer_right = [] @game_challenge.challenge_chooses.each_with_index do |choose, index| correct = (params[:answer][index] == choose.standard_answer) ? true : false - if choose.current_choose_outputs.blank? - ChooseOutputs.create(:challenge_choose_id => choose.id, :user_id => User.current.id, :answer => params[:answer][index], :correct => correct) - end + choose.current_choose_outputs.delete if choose.current_choose_outputs.present? + ChooseOutputs.create(:challenge_choose_id => choose.id, :user_id => User.current.id, :answer => params[:answer][index], :correct => correct) if @shixun.status > 1 && !@game.answer_open if correct score += choose.score @@ -332,14 +331,15 @@ class GamesController < ApplicationController end answer_right << correct end - @game.update_attributes(:status => 2, :end_time => Time.now) @had_done = @game.had_done - reward_grade(@game.user, @game.id, 'Game', score) - reward_experience(@game.user, @game.id, 'Game', score) - @game.update_attribute(:final_score, score) - + if @right + @game.update_attributes(:status => 2, :end_time => Time.now) + reward_grade(@game.user, @game.id, 'Game', score) + reward_experience(@game.user, @game.id, 'Game', score) + @game.update_attribute(:final_score, score) + end respond_to do |format| - format.js{redirect_to myshixun_game_path(@game, :myshixun_id => @myshixun, :choose => 1)} + format.js{redirect_to myshixun_game_path(@game, :myshixun_id => @myshixun, :choose => @right)} end end @@ -407,7 +407,7 @@ class GamesController < ApplicationController if(params[:choose] == "true") challenge.challenge_chooses.each_with_index do |choose, index| @answer += "第"+ ((index + 1).to_s) +"题:
" - @answer += choose.answer + @answer += (choose.answer.blank? ? choose.standard_answer : choose.answer) @answer += "


" end else diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index 32010e53f..b506f4f08 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -764,36 +764,35 @@ end def classroom_classment @menu_type = 2 @sub_type = 2 - @sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order] + @sx_order = params[:sx_order].blank? ? "desc" : params[:sx_order] @courses = Course.where(:is_delete => 0) - @timing = Course.where(:is_end=>false).count - @end = Course.where(:is_end=>true).count + @timing=Course.where(:is_end=>false).count + @end=Course.where(:is_end=>true).count @course_lists = CourseList.where(:id => Course.where(:is_delete => 0 ).map(&:course_list_id) ) unless params[:school_id] || params[:search] || params[:keyword] || params[:status] - user_exs=UserExtensions.where(:school_id=> @courses.map(&:school_id)) - @schools = School.where(:id =>user_exs.map(&:school_id)) + user_exs=UserExtensions.where(:school_id=> @courses.map(&:school_id)) + @schools = School.where(:id =>user_exs.map(&:school_id)) end @search = params[:search] # 搜索字 @keyword = params[:keyword].blank? ? "u_name" : params[:keyword] # 根据姓名/课程名搜索 - status = params[:status].to_i - courselist = params[:course_list] + @status = params[:status] + @courselist = params[:course_list] + @school_id = params[:school_id] if params[:school_id] && params[:school_id] != '' - @school_id = params[:school_id] - @courses = @courses.joins("join users u on courses.tea_id = u.id").joins("join user_extensions ue on u.id = ue.user_id").where("ue.school_id = #{params[:school_id]}") + @courses = Course.joins("join users u on courses.tea_id = u.id").joins("join user_extensions ue on u.id = ue.user_id").where("ue.school_id = #{params[:school_id]}") end if params[:homepage_show] @courses = @courses.where(:homepage_show => params[:homepage_show].to_i) end - if courselist && courselist != '' - @courses = @courses.where(:course_list_id => courselist) + if params[:course_list] && params[:course_list] != '' + @courses = @courses.where(:course_list_id => @courselist) end if params[:status] && params[:status]!='' - @status = params[:status] - @courses =@courses.where(:is_end =>status) + @courses =@courses.where(:is_end => @status.to_i) end if "u_name" == @keyword if @search.blank? @@ -806,6 +805,7 @@ end @courses= @courses.where("name like '%#{@search}%'") end @courses = @courses.select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").reorder("updatetime #{@sx_order}") + @export_courses = @courses @courses_count = @courses.count limit = 20 @is_remote = true @@ -815,6 +815,11 @@ end respond_to do |format| format.js format.html + format.xls{ + @export_courses = @export_courses.all + filename = "#{l(:label_course_list_xls)}.xls" + send_data(course_list_xls(@export_courses), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) + } end end @@ -1509,28 +1514,29 @@ end render_404 end - def course_list_xls course + def course_list_xls courses xls_report = StringIO.new book = Spreadsheet::Workbook.new sheet1 = book.create_worksheet :name => "course" blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10 sheet1.row(0).default_format = blue - sheet1.row(0).concat([l(:issue_xls_id),l(:issue_xls_tracker_id),l(:issue_xls_title),l(:issue_xls_description),l(:issue_xls_status),l(:issue_xls_assign),l(:issue_xls_priority),l(:issue_xls_author),l(:issue_xls_created_at),l(:milestone),l(:issue_xls_start),l(:issue_xls_due),l(:issue_xls_ratio)]) + sheet1.row(0).concat(["ID","课堂名称","成员","资源","普通作业"," 实训作业","试卷","私有","状态","创建者单位","创建者","动态时间"]) count_row = 1 - issues.each do |issue| - sheet1[count_row,0] = issue.id - sheet1[count_row,1] = issue_tracker_change(issue.tracker_id) - sheet1[count_row,2] = issue.subject - sheet1[count_row,3] = (issue.description.gsub(/<\/?.*?>/,"")).html_safe - sheet1[count_row,4] = issue_status_change(issue.status_id) - sheet1[count_row,5] = issue.assigned_to.try(:show_name) - sheet1[count_row,6] = issue_priority_change(issue.priority_id) - sheet1[count_row,7] = issue.author.show_name - sheet1[count_row,8] = issue.created_on.nil? ? issue.created_on : issue.created_on.strftime('%Y-%m-%d %H:%M:%S') - sheet1[count_row,9] = issue.fixed_version.try(:name) - sheet1[count_row,10] = issue.start_date.nil? ? issue.start_date : issue.start_date.strftime('%Y-%m-%d') - sheet1[count_row,11] = issue.due_date.nil? ? issue.due_date : issue.due_date.strftime('%Y-%m-%d') - sheet1[count_row,12] = issue_ratio_change(issue.done_ratio, issue.status_id) + courses.each do |course| + school = course.teacher.try(:user_extensions).try(:school).try(:name).blank? ? "--" : course.teacher.school_name + teacher_name = course.teacher ? course.teacher.show_real_name : "" + sheet1[count_row,0] = course.id + sheet1[count_row,1] = course.name + sheet1[count_row,2] = course.members.count + sheet1[count_row,3] = course.attachments.count + sheet1[count_row,4] = course.homework_commons.where(:homework_type => 1).count + sheet1[count_row,5] = course.homework_commons.where(:homework_type => 4).count + sheet1[count_row,6] = course.exercises.count + sheet1[count_row,7] = course.is_public.to_i == 1 ? '否' : '是' + sheet1[count_row,8] = course.is_end ? "已结束" : "正在进行" + sheet1[count_row,9] = school + sheet1[count_row,10] = teacher_name + sheet1[count_row,11] = format_time(course.updatetime) count_row += 1 end book.write xls_report diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 5155933e0..4a0026311 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -241,9 +241,10 @@ class MembersController < ApplicationController @create_member_error_messages = "角色不能留空" unless params[:membership][:role_ids] @create_member_error_messages = "用户不能留空" unless params[:membership][:user_ids] - if params[:membership][:user_ids] + #if params[:membership][:user_ids] + if params[:choose_student_ids] && params[:membership] attrs = params[:membership].dup - user_ids = attrs.delete(:user_ids) + user_ids = params[:choose_student_ids].split(",") user_ids.each do |user_id| if @course.members.where(:user_id => user_id).empty? member = Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id) diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb index 144bdfd83..170349350 100644 --- a/app/controllers/shixuns_controller.rb +++ b/app/controllers/shixuns_controller.rb @@ -16,7 +16,7 @@ class ShixunsController < ApplicationController def statistics_students - @statistics = @shixun.myshixuns + @statistics = @shixun.myshixuns.order("created_at desc") @statistics_count = @statistics.count @limit = 10 @is_remote = true @@ -114,7 +114,9 @@ class ShixunsController < ApplicationController @rev = params[:rev] @content = params[:content] code_file = g.edit_file(@shixun.gpid, :content => params[:content], :file_path => @path, :branch_name => @rev, :commit_message => "shixun entry") - shixun_modify_status_without_publish(@shixun, 1) + if @shixun.try(:status).to_i < 2 + shixun_modify_status_without_publish(@shixun, 1) + end respond_to do |format| format.js end @@ -252,9 +254,9 @@ class ShixunsController < ApplicationController # 确定 sort 1升序 2 降序 @order = params[:order] || "myshixun_count" bsort = params[:sort] || "desc" - @sort = bsort == "desc" ? "asc" : "desc" + @sort = bsort == "asc" ? "desc" : "asc" if @order == "updated_at" - order_str = "#{Shixun.table_name}.updated_at #{bsort}" + order_str = "#{Shixun.table_name}.updated_at #{@sort}" else order_str = "myshixun_count #{bsort}, #{Shixun.table_name}.updated_at #{bsort}" end @@ -576,6 +578,9 @@ class ShixunsController < ApplicationController new_shixun.update_column(:gpid, gshixun.id) # 同步复制合作者,合作者加入到gitlab + unless User.current.manager_of_shixun?(@shixun) + ShixunMember.create!(:user_id => User.current.id, :shixun_id => new_shixun.try(:id), :role => 1) + end @shixun.shixun_members.each do |shixun_member| if ShixunMember.where(:shixun_id => new_shixun.try(:id), :user_id => shixun_member.user_id).blank? ShixunMember.create!(:user_id => shixun_member.try(:user_id), :shixun_id => new_shixun.try(:id), diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e13cf05b8..1d2d2cb00 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -503,7 +503,7 @@ module ApplicationHelper def new_homework_common_status status case status when 0 - "挂起" + "未发布" when 1 "提交中" when 2 @@ -523,7 +523,7 @@ module ApplicationHelper def homework_status_color status style = "" case status - when '挂起' + when '未发布' style = 'edu-filter-btn-yellow' when '提交中' style = 'edu-filter-btn-blue' @@ -571,7 +571,7 @@ module ApplicationHelper if ho_detail_manual case ho_detail_manual.comment_status when 0 - status = "挂起" + status = "未发布" when 1 if homework_common.end_time && homework_common.end_time >= Time.now status = "提交中" @@ -4775,7 +4775,7 @@ def get_hw_status homework_common str = "" if homework_common.homework_detail_manual if homework_common.homework_detail_manual.comment_status == 0 && homework_common.publish_time.nil? - str += '挂起' + str += '未发布' elsif homework_common.homework_detail_manual.comment_status == 0 str += '未发布' elsif homework_common.homework_detail_manual.comment_status == 1 diff --git a/app/models/myshixun.rb b/app/models/myshixun.rb index 9e7e2a0aa..ace51c51f 100644 --- a/app/models/myshixun.rb +++ b/app/models/myshixun.rb @@ -48,7 +48,7 @@ class Myshixun < ActiveRecord::Base score = 0 self.games.each do |game| if game.status == 2 - score += game.final_score + score += game.final_score.to_i end end score diff --git a/app/views/challenges/_edit_evaluating.html.erb b/app/views/challenges/_edit_evaluating.html.erb index 891458a70..16b58d8ea 100644 --- a/app/views/challenges/_edit_evaluating.html.erb +++ b/app/views/challenges/_edit_evaluating.html.erb @@ -49,8 +49,8 @@ <% end %>

-
输入:

<%= match_specific_symbol test.input unless test.input.blank? %>

-
输出:

<%= match_specific_symbol test.output unless test.output.blank? %>

+
输入:

<%= match_specific_symbol test.input unless test.input.blank? %>

+
输出:

<%= match_specific_symbol test.output unless test.output.blank? %>

<% end %> <% else %> diff --git a/app/views/courses/search_not_students.js.erb b/app/views/courses/search_not_students.js.erb index b6c3cc65a..553c5d086 100644 --- a/app/views/courses/search_not_students.js.erb +++ b/app/views/courses/search_not_students.js.erb @@ -1,7 +1,10 @@ -<% if params[:is_observe] %> +<% if params[:is_observe] || params[:page] %> + <% unless params[:page] %> + $("#choose_student_ids").val(''); + <% end %> $("#search_not_students_list").html("<%= j(render :partial => 'courses/settings/search_not_students_list') %>"); <% else %> laststSearchCondition = ''; var htmlvalue = "<%= j(render :partial => 'courses/settings/add_students') %>"; -pop_box_new(htmlvalue, 440, 490); +pop_box_new(htmlvalue, 560, 600); <% end %> \ No newline at end of file diff --git a/app/views/courses/search_not_teachers.js.erb b/app/views/courses/search_not_teachers.js.erb index 57cc85529..09320f786 100644 --- a/app/views/courses/search_not_teachers.js.erb +++ b/app/views/courses/search_not_teachers.js.erb @@ -1,4 +1,7 @@ -<% if params[:is_observe] %> +<% if params[:is_observe] || params[:page] %> + <% unless params[:page] %> + $("#choose_student_ids").val(''); + <% end %> $("#search_not_teachers_list").html("<%= j(render :partial => 'courses/settings/search_not_teachers_list') %>"); <% else %> lastteSearchCondition = ""; diff --git a/app/views/courses/settings/_add_students.html.erb b/app/views/courses/settings/_add_students.html.erb index 898420cbf..9937847e4 100644 --- a/app/views/courses/settings/_add_students.html.erb +++ b/app/views/courses/settings/_add_students.html.erb @@ -12,7 +12,7 @@ - +
<% if @course.course_groups.count > 0 %> @@ -21,29 +21,45 @@
- - + +
- -
- + -
-
- -
+

+ + +

+
+ <%= render :partial => 'courses/settings/search_not_students_list' %> +
- - 确定 - 取消
<% end %>
+ - \ No newline at end of file + \ No newline at end of file diff --git a/app/views/courses/settings/_add_teachers.html.erb b/app/views/courses/settings/_add_teachers.html.erb index a65b43288..54bdedb36 100644 --- a/app/views/courses/settings/_add_teachers.html.erb +++ b/app/views/courses/settings/_add_teachers.html.erb @@ -6,22 +6,31 @@
- <%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_teacher_form' do |f| %> + <%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_teacher_form' do |f| %>
- +
- - + +
-
-
    - <%#= render :partial => 'courses/settings/search_not_teachers_list' %> -
+ + +

+ + +

+ +
+ <%= render :partial => 'courses/settings/search_not_teachers_list' %>
@@ -29,16 +38,12 @@

角色:

  • - -
  • - -
- 取消 - 确定 + 取消 + 确定
<% end %> -
-
+ - \ No newline at end of file + \ 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 1c1806e00..cdb8e9d0b 100644 --- a/app/views/courses/settings/_members.html.erb +++ b/app/views/courses/settings/_members.html.erb @@ -46,20 +46,22 @@ <% end %> - <% @apply_users.each_with_index do |apply, index| %> - <% user = User.find(apply.course_message_id) %> - - <%= @teacher_count + index + 1 %> - - <%= link_to user.show_real_name, user_path(user), :target => '_blank', :class => 'edu-txt-w140 task-hide mt5' %> - - <%= user.try(:login) %> - <%= apply.content && apply.content.include?('9') ? "教师" : "助教" %> - - <%= link_to '同意', dealwith_apply_request_user_path(User.current,:agree=>'Y',:msg_id=>apply.id), :class=>'color-red mr5'%> - <%= link_to '拒绝', dealwith_apply_request_user_path(User.current,:agree=>'N',:msg_id=>apply.id), :class=>'color-red'%> - - + <% if is_teacher %> + <% @apply_users.each_with_index do |apply, index| %> + <% user = User.find(apply.course_message_id) %> + + <%= @teacher_count + index + 1 %> + + <%= link_to user.show_real_name, user_path(user), :target => '_blank', :class => 'edu-txt-w140 task-hide mt5' %> + + <%= user.try(:login) %> + <%= apply.content && apply.content.include?('9') ? "教师" : "助教" %> + + <%= link_to '同意', dealwith_apply_request_user_path(User.current,:agree=>'Y',:msg_id=>apply.id), :class=>'color-red mr5'%> + <%= link_to '拒绝', dealwith_apply_request_user_path(User.current,:agree=>'N',:msg_id=>apply.id), :class=>'color-red'%> + + + <% end %> <% end %> diff --git a/app/views/courses/settings/_search_not_students_list.html.erb b/app/views/courses/settings/_search_not_students_list.html.erb index 59bb4775c..d0ad45ea1 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -1,26 +1,79 @@ -<% unless @users.empty? %> -

- - -

- <% @users.each do |user| %> - <% if user && user.user_extensions %> -
  • - - - - -
  • - <% end %> - <% end %> -<% else %> - 搜索结果为空 -<% end %> \ No newline at end of file + + +
    +
    + +
    + +
    + +
    +
    + + 确定 + 取消 +
    + + \ No newline at end of file diff --git a/app/views/courses/settings/_search_not_teachers_list.html.erb b/app/views/courses/settings/_search_not_teachers_list.html.erb index 37b338828..ae3b96c78 100644 --- a/app/views/courses/settings/_search_not_teachers_list.html.erb +++ b/app/views/courses/settings/_search_not_teachers_list.html.erb @@ -1,24 +1,77 @@ -<% unless @users.empty? %> -

    - - -

    - <% @users.each do |user| %> - <% if user && user.user_extensions %> -
  • - - - - -
  • - <% end %> - <% end %> -<% end %> \ No newline at end of file + + +
    +
    + +
    + +
    + +
    +
    + +
    + + \ No newline at end of file diff --git a/app/views/games/_choice_question.html.erb b/app/views/games/_choice_question.html.erb index 8330ad846..486fa2317 100644 --- a/app/views/games/_choice_question.html.erb +++ b/app/views/games/_choice_question.html.erb @@ -31,7 +31,7 @@

    <% end %> - + <% end %>

    你的单位不在列表中?请点击申请添加

    - 请从下拉列表中选择你的单位 + 请从下拉列表中选择你的单位
  • @@ -573,45 +573,45 @@ $("#search_school_result_list").hide(); } }); -// $("input[name='school']").on('focus', function (e) { -// if ($("input[name='occupation']").val() != '') { //如果已经有id了。肯定存在,不用去找了。 -// return; -// } -// -// $.ajax({ -// url: '<%= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + e.target.value + '&page=' + page, -// type: 'post', -// success: function (data) { -// schoolsResult = data.schools; -// count = data.count; -// maxPage = Math.ceil(count / 100); //最大页码值 -// if (schoolsResult.length != undefined && schoolsResult.length != 0) { -// var i = 0; -// $("#search_school_result_list").html(''); -// for (; i < schoolsResult.length; i++) { -// link = '' + schoolsResult[i].school.name + '
    '; -// $("#search_school_result_list").append(link); -// } -// $("#search_school_result_list").css('left', $(e.target).offset().left); -// $("#search_school_result_list").css('top', $(e.target).offset().top + 40); -// $("#search_school_result_list").css("position", "absolute"); -// $("#search_school_result_list").show(); -// if ($(e.target).val().trim() != '') { -// str = e.target.value.length > 8 ? e.target.value.substr(0, 6) + "..." : e.target.value; -// $("#no_school_hint").html('找到了' + count + '个包含"' + str + '"的高校(单位)'); -// $("#no_school_hint").show(); -// } else { -// $("#no_school_hint").hide(); -// } -// } else { -// $("#search_school_result_list").html(''); -// str = e.target.value.length > 4 ? e.target.value.substr(0, 4) + "..." : e.target.value; -// $("#no_school_hint").html('你的单位不在列表中?请点击申请添加'); -// $("#no_school_hint").show(); -// } -// } -// }); -// }); + $("input[name='school']").on('focus', function (e) { + if ($("input[name='occupation']").val() != '') { //如果已经有id了。肯定存在,不用去找了。 + return; + } + + $.ajax({ + url: '<%= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + e.target.value + '&page=' + page, + type: 'post', + success: function (data) { + schoolsResult = data.schools; + count = data.count; + maxPage = Math.ceil(count / 100); //最大页码值 + if (schoolsResult.length != undefined && schoolsResult.length != 0) { + var i = 0; + $("#search_school_result_list").html(''); + for (; i < schoolsResult.length; i++) { + link = '' + schoolsResult[i].school.name + '
    '; + $("#search_school_result_list").append(link); + } + $("#search_school_result_list").css('left', $(e.target).offset().left); + $("#search_school_result_list").css('top', $(e.target).offset().top + 40); + $("#search_school_result_list").css("position", "absolute"); + $("#search_school_result_list").show(); + if ($(e.target).val().trim() != '') { + str = e.target.value.length > 8 ? e.target.value.substr(0, 6) + "..." : e.target.value; + $("#no_school_hint").html('找到了' + count + '个包含"' + str + '"的高校(单位)'); + $("#no_school_hint").show(); + } else { + $("#no_school_hint").hide(); + } + } else { + $("#search_school_result_list").html(''); + str = e.target.value.length > 4 ? e.target.value.substr(0, 4) + "..." : e.target.value; + $("#no_school_hint").html('你的单位不在列表中?请点击申请添加'); + $("#no_school_hint").show(); + } + } + }); + }); }); //地区 diff --git a/app/views/repositories/_link_to_functions.html.erb b/app/views/repositories/_link_to_functions.html.erb index 8e92cb14f..96fd56e5c 100644 --- a/app/views/repositories/_link_to_functions.html.erb +++ b/app/views/repositories/_link_to_functions.html.erb @@ -25,10 +25,12 @@ <%= "(#{number_to_human_size(@entry.size)})" if @entry.size %> <% end %> <% else %> - <% if params[:controller] == "shixuns" && params[:action] == "entry_edit" %> - 保存 - <% elsif params[:action] == "shixun_entry" || params[:action] == "entry_update" %> - <%= link_to "编辑", entry_edit_shixun_path(@shixun, :path => @path, :rev => @rev), :class => "fl mr5", :remote => true %> + <% if @shixun.try(:status).to_i < 2 %> + <% if params[:controller] == "shixuns" && params[:action] == "entry_edit" %> + 保存 + <% elsif params[:action] == "shixun_entry" || params[:action] == "entry_update" %> + <%= link_to "编辑", entry_edit_shixun_path(@shixun, :path => @path, :rev => @rev), :class => "fl mr5", :remote => true %> + <% end %> <% end %> <% end %> diff --git a/app/views/shixuns/_add_collaborators_list.html.erb b/app/views/shixuns/_add_collaborators_list.html.erb new file mode 100644 index 000000000..d50ea2a2a --- /dev/null +++ b/app/views/shixuns/_add_collaborators_list.html.erb @@ -0,0 +1,16 @@ +<% unless @users.empty? %> + <% @users.each do |user| %> + <% if user && user.user_extensions %> +
  • + + + + +
  • + <% end %> + <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/shixuns/_form.html.erb b/app/views/shixuns/_form.html.erb index 6deb9b5b6..7d1b105ff 100644 --- a/app/views/shixuns/_form.html.erb +++ b/app/views/shixuns/_form.html.erb @@ -106,7 +106,7 @@ name="can_copy" value="1" id="can_copy" class="ml5 mr5 magic-checkbox" > - +
  • diff --git a/app/views/shixuns/_settings_edit.html.erb b/app/views/shixuns/_settings_edit.html.erb index 1e8dadbac..1b7288b19 100644 --- a/app/views/shixuns/_settings_edit.html.erb +++ b/app/views/shixuns/_settings_edit.html.erb @@ -54,7 +54,7 @@ name="can_copy" value="<%= @shixun.can_copy ? 1 : 0 %>" id="can_copy" class="ml5 mr5 magic-checkbox" > - +
  • @@ -77,6 +77,10 @@ $(this).val() == '0' ? $(this).val('1') : $(this).val("0"); }); + $("#can_copy").on("click", function(){ + $(this).val() == '0' ? $(this).val('1') : $(this).val("0"); + }); + $("#new_course_list").on('input', function(e){ throttle(search_course_list, window, e); }); diff --git a/app/views/shixuns/_settings_show.html.erb b/app/views/shixuns/_settings_show.html.erb index 1c7b6a309..15a875d70 100644 --- a/app/views/shixuns/_settings_show.html.erb +++ b/app/views/shixuns/_settings_show.html.erb @@ -62,7 +62,7 @@ name="can_copy" value="<%= @shixun.can_copy ? 1 : 0 %>" id="can_copy" disabled="disabled" class="ml5 mr5 magic-checkbox" > - +
  • diff --git a/app/views/shixuns/_shixun_top.html.erb b/app/views/shixuns/_shixun_top.html.erb index ac983ef65..1c8c75159 100644 --- a/app/views/shixuns/_shixun_top.html.erb +++ b/app/views/shixuns/_shixun_top.html.erb @@ -35,7 +35,7 @@ <% end %> 已关闭 <% end %> - <% if @shixun.can_copy || User.current.manager_of_shixun?(@shixun) %> + <% if @shixun.can_copy %> <%#= link_to "复制", copy_shixun_path(@shixun), :class => "fr shixun-task-btn task-btn-green mr15" %> 复制 <% end %> diff --git a/app/views/shixuns/_statistics_student_list.html.erb b/app/views/shixuns/_statistics_student_list.html.erb index 02340d7f0..ec30578db 100644 --- a/app/views/shixuns/_statistics_student_list.html.erb +++ b/app/views/shixuns/_statistics_student_list.html.erb @@ -33,10 +33,10 @@ - <% if statistics.total_score == 0 %> + <% if statistics.total_score == 0 || statistics.total_score.nil? %> -- <% else %> - + <%= statistics.total_score %> 经验值 + + <%= statistics.total_score.to_i %> 经验值 <% end %> diff --git a/app/views/shixuns/add_collaborators.js.erb b/app/views/shixuns/add_collaborators.js.erb index 36fbc2af7..1bdd537e4 100644 --- a/app/views/shixuns/add_collaborators.js.erb +++ b/app/views/shixuns/add_collaborators.js.erb @@ -1,5 +1,5 @@ <% if params[:is_observe] %> -$("#search_not_teachers_list").html("<%= j(render :partial => 'courses/settings/search_not_teachers_list') %>"); +$("#search_not_teachers_list").html("<%= j(render :partial => 'shixuns/add_collaborators_list') %>"); <% else %> var htmlvalue = "<%= j(render :partial => 'shixuns/add_collaborators') %>"; pop_box_new(htmlvalue, 600, 420); diff --git a/app/views/student_work/_evaluation_un_group_work.html.erb b/app/views/student_work/_evaluation_un_group_work.html.erb index 7d6e745e2..303a5e531 100644 --- a/app/views/student_work/_evaluation_un_group_work.html.erb +++ b/app/views/student_work/_evaluation_un_group_work.html.erb @@ -10,7 +10,7 @@ <%= student_work.group_id == 0 ? '--' : '分组'+student_work.group_id.to_s %> - <%= list_work_status student_work.work_status %> + <%= (list_work_status student_work.work_status).html_safe %> <%= student_work.work_status == 0 ? '--' : format_time(student_work.updated_at) %> diff --git a/app/views/student_work/_evaluation_un_pro_work.html.erb b/app/views/student_work/_evaluation_un_pro_work.html.erb index e94418851..952b9345e 100644 --- a/app/views/student_work/_evaluation_un_pro_work.html.erb +++ b/app/views/student_work/_evaluation_un_pro_work.html.erb @@ -7,7 +7,7 @@ <%= student_work.user.user_extensions.nil? ? "--" : student_work.user.user_extensions.student_id %> - <%= list_work_status student_work.work_status %> + <%= (list_work_status student_work.work_status).html_safe %> <%= student_work.work_status == 0 ? '--' : format_time(student_work.updated_at) %> diff --git a/app/views/student_work/_evaluation_un_shixun_work.html.erb b/app/views/student_work/_evaluation_un_shixun_work.html.erb index bb033a5d2..d30e1d436 100644 --- a/app/views/student_work/_evaluation_un_shixun_work.html.erb +++ b/app/views/student_work/_evaluation_un_shixun_work.html.erb @@ -7,7 +7,7 @@ <%= student_work.user.user_extensions.nil? ? "--" : student_work.user.user_extensions.student_id %> - <%= list_work_status student_work.work_status %> + <%= (list_work_status student_work.work_status).html_safe %> <%= student_work.work_status == 0 ? '--' : format_time(student_work.updated_at) %> diff --git a/app/views/student_work/_shixun_work_show.html.erb b/app/views/student_work/_shixun_work_show.html.erb index ebec25778..0f99ab2b8 100644 --- a/app/views/student_work/_shixun_work_show.html.erb +++ b/app/views/student_work/_shixun_work_show.html.erb @@ -23,7 +23,7 @@
    diff --git a/app/views/student_work/_student_work_score.html.erb b/app/views/student_work/_student_work_score.html.erb index 940667393..096e8371b 100644 --- a/app/views/student_work/_student_work_score.html.erb +++ b/app/views/student_work/_student_work_score.html.erb @@ -2,12 +2,20 @@ <% show_real_score = @homework.score_open == 1 || @is_teacher || score.student_work.user == User.current || score.user == User.current %>
    - <%= link_to image_tag(url_to_avatar(show_real_name ? score.user : ""), :width => "50", :height => "50"), show_real_name ? user_path(score.user) : "javascript:void(0)", :style => "#{show_real_name ? '' : 'cursor: text;'}", :target => "_blank" %> + <% if show_real_name %> + <%= link_to image_tag(url_to_avatar(score.user), :width => "50", :height => "50"), user_path(score.user), :target => "_blank" %> + <% else %> + <%= link_to image_tag(url_to_avatar(""), :width => "50", :height => "50"), "javascript:void(0);", :style => "cursor: text;" %> + <% end %>
    - <%= link_to show_real_name ? score.user.show_real_name : "匿名", show_real_name ? user_path(score.user) : "javascript:void(0)", :title => show_real_name ? score.user.show_real_name : "匿评用户", :style => "#{show_real_name ? '' : 'cursor: text;'}", :class => "#{show_real_name ? 'color-grey' : 'color-grey-no-a'} hide fl" %> + <% if show_real_name %> + <%= link_to score.user.show_real_name, user_path(score.user), :title => score.user.show_real_name, :class => "color-grey hide fl" %> + <% else %> + 匿名 + <% end %> (<%= student_work_score_role score%>) <%= format_time score.updated_at %> <% unless score.score.nil? %> diff --git a/app/views/student_work/show.html.erb b/app/views/student_work/show.html.erb index d65aaa3f4..b5e9958a7 100644 --- a/app/views/student_work/show.html.erb +++ b/app/views/student_work/show.html.erb @@ -2,7 +2,7 @@ <%= stylesheet_link_tag "/codemirror/lib/codemirror" %>

    <%= @course.name %> > <%= @homework.homework_type_ch %>作业 > - <%#= link_to get_hw_index(@homework, @is_teacher, @homework.homework_type) + 1, student_work_index_path(:homework => @homework.id) %> + <%#= link_to get_hw_index(@homework, @is_teacher, @homework.homework_type) + 1, student_work_index_path(:homework => @homework.id) %> #<%= get_hw_index(@homework, @is_teacher, @homework.homework_type) + 1 %> <% if @is_teacher || @work.user == User.current || (@homework.homework_detail_manual.comment_status != 3 && @homework.homework_detail_manual.comment_status != 4) %> <%= link_to @work.user.try(:show_real_name), user_path(@work.user) %> diff --git a/public/javascripts/edu/course.js b/public/javascripts/edu/course.js index 4bfc9ffa2..de7d7b773 100644 --- a/public/javascripts/edu/course.js +++ b/public/javascripts/edu/course.js @@ -1,11 +1,11 @@ $(function() { - $("#search_not_teacher").live('input', function (e) { - throttle(search_not_teacher_f,window,e); - }); +// $("#search_not_teacher").live('input', function (e) { +// throttle(search_not_teacher_f,window,e); +// }); - $("#search_not_student").live('input', function (e) { - throttle(search_not_student_f,window,e); - }); +// $("#search_not_student").live('input', function (e) { +// throttle(search_not_student_f,window,e); +// }); //模块切换 $(".stud-class-set .news .nav").click(function(e) { @@ -294,23 +294,23 @@ function submit_change_manager_form(){ } } -var lastteSearchCondition = ''; +//var lastteSearchCondition = ''; function search_not_teacher_f(e){ - if($(e.target).val().trim() == "" || ($(e.target).val().trim() == lastteSearchCondition && lastteSearchCondition != '')) - { - return; - } - lastteSearchCondition = $(e.target).val().trim(); +// if($(e.target).val().trim() == "" || ($(e.target).val().trim() == lastteSearchCondition && lastteSearchCondition != '')) +// { +// return; +// } +// lastteSearchCondition = $(e.target).val().trim(); $.ajax({ url: '/courses/' + $("#course_search_not_teacher_id").val() + '/search_not_teachers', type:'post', - data: {is_observe:true, search:e.target.value}, + data: {is_observe:true, search:$("#search_not_teacher").val().trim(), school:$("#search_not_teacher_school").val().trim()}, success: function(data){ } }); } function submit_add_teacher_form(){ - if($("input[name='membership[user_ids][]']:checked").length >= 1){ + if($("#choose_student_ids").val().trim() != ""){ if($("input[name='membership[role_ids][]']:checked").length >= 1){ $("#add_teacher_notice").html("").hide(); $("#add_teacher_form").submit(); @@ -341,23 +341,23 @@ function submit_has_group_student_search(id, group_id){ ) } -var laststSearchCondition = ''; +//var laststSearchCondition = ''; function search_not_student_f(e){ - if($(e.target).val().trim() == "" || ($(e.target).val().trim() == laststSearchCondition && laststSearchCondition != '')) - { - return; - } - laststSearchCondition = $(e.target).val().trim(); +// if($(e.target).val().trim() == "" || ($(e.target).val().trim() == laststSearchCondition && laststSearchCondition != '')) +// { +// return; +// } +// laststSearchCondition = $(e.target).val().trim(); $.ajax({ url: '/courses/' + $("#course_search_not_student_id").val() + '/search_not_students', type:'post', - data: {is_observe:true, search:e.target.value}, + data: {is_observe:true, search:$("#search_not_student").val().trim(), school:$("#search_not_student_school").val().trim()}, success: function(data){ } }); } function submit_add_student_form(){ - if($("input[name='membership[user_ids][]']:checked").length >= 1){ + if($("#choose_student_ids").val().trim() != ""){ $("#add_student_notice").html("").hide(); $("#add_student_form").submit(); hideModal(); diff --git a/public/stylesheets/css/edu-common.css b/public/stylesheets/css/edu-common.css index 5c9c6d1ff..424210682 100644 --- a/public/stylesheets/css/edu-common.css +++ b/public/stylesheets/css/edu-common.css @@ -315,7 +315,7 @@ table.table-pa5 th,table.table-pa5 td{ padding:0 5px;} font-weight:bold; text-align:center; padding:0.6em; - z-index:100; + z-index:100000; opacity: 0.5; } diff --git a/public/stylesheets/css/edu-popup.css b/public/stylesheets/css/edu-popup.css index 6dd7ca7eb..768a702f8 100644 --- a/public/stylesheets/css/edu-popup.css +++ b/public/stylesheets/css/edu-popup.css @@ -13,13 +13,13 @@ .task-popup-warp{ width: 100%; height:100%; background:black; position:fixed;} .task-popup-box{ position: relative; margin:150px auto 0px; } .task-box1{ width:428px; height:420px;background:url(/images/task/task-success.png) 0px 0px no-repeat;} -.task-box2{ width:496px; height:373px;position: relative;}/*background:url(/images/task/task-success02.png) 0px 50px no-repeat;*/ +.task-box2{ width:496px; height:373px;background:url(/images/task/task-success02.png) 0px 50px no-repeat;} a.task-popup-close{ display: block; background:url(/images/task/task-close.png) 0px 0px no-repeat; width: 31px; height: 31px; position:absolute; right:5px; top:100px;} a:hover.task-popup-close{background:url(/images/task/task-close.png) -40px 0px no-repeat; } .task-su-con{ text-align: center; padding-top:285px;} .task-su-p{ font-size: 20px; color:#ee4a1f; font-weight: bold;} -a.task-su-btn{display: block;background:url(/images/task/task-su-btn-jie.png) 0px -64px no-repeat; width: 138px; height: 53px;color:#ee4a1f; line-height: 50px; text-align: center; font-size: 16px; margin:20px auto;} -a:hover.task-su-btn{background:url(/images/task/task-su-btn-jie.png) 0px 0px no-repeat;height: 53px;} +a.task-su-btn{display: block;background:url(/images/task/task-su-btn.png) 0px -64px no-repeat; width: 138px; height: 57px;color:#ee4a1f; line-height: 50px; text-align: center; font-size: 16px; margin:20px auto;} +a:hover.task-su-btn{background:url(/images/task/task-su-btn.png) 0px 0px no-repeat; } a.task-su-btn-white{ display: inline-block; padding:8px 25px; border:1px solid #fff; color:#fff; text-align: center; border-radius:5px; font-size:14px;} a:hover.task-su-btn-white{ color: #ee4a1f; border:1px solid #ee4a1f; } diff --git a/public/stylesheets/css/edu-public.css b/public/stylesheets/css/edu-public.css index 97b210868..a7851ab08 100644 --- a/public/stylesheets/css/edu-public.css +++ b/public/stylesheets/css/edu-public.css @@ -171,9 +171,9 @@ a.panel-table-title{display:block; max-width:240px;text-align:center;} .panel-pages a:hover,.panel-pages .active{ background-color:#29bd8b; border:1px solid #29bd8b;color:#fff; } .panel-pages{ width: 350px; margin:20px auto;} /* 翻页*/ -.pages_right_min a{ display: inline-block;border:1px solid #d1d1d1; color:#888; float:left;text-align:center; padding:3px 10px; line-height:1.9; margin: 0 5px;} +.pages_right_min a{ display: inline-block;border:1px solid #d1d1d1; color:#888!important; float:left;text-align:center; padding:3px 10px; line-height:1.9; margin: 0 5px;} .pages_right_min a.pages-border-right{border-right:1px solid #d1d1d1; } -.pages_right_min a:hover,.pages_right_min a.active{ background-color:#FC7033; color:#fff;border:1px solid #FC7033} +.pages_right_min a:hover,.pages_right_min a.active{ background-color:#FC7033; color:#fff!important;border:1px solid #FC7033} .pages_right_min li{float: left;} /* 个人主页翻页 */ .pages_user_show a:hover,.pages_user_show a.active{ background-color:#FC7033;; color:#fff;border: 1px solid #FC7033;}