diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index be96124c2..708ac9a14 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1067,7 +1067,7 @@ class CoursesController < ApplicationController sql_select = "" if groupid == 0 sql_select = "SELECT members.*,( - SELECT SUM(IF(student_works.final_score is null,null,student_works.final_score - student_works.absence_penalty - student_works.late_penalty)) + SELECT SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,student_works.final_score - student_works.absence_penalty - student_works.late_penalty))) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{@course.id} @@ -1079,7 +1079,7 @@ class CoursesController < ApplicationController WHERE members.course_id = #{@course.id} ORDER BY score #{score_sort_by}" else sql_select = "SELECT members.*,( - SELECT SUM(IF(student_works.final_score is null,null,student_works.final_score - student_works.absence_penalty - student_works.late_penalty)) + SELECT SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,student_works.final_score - student_works.absence_penalty - student_works.late_penalty))) FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{@course.id} diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 0c8bb6c01..e297bc3cd 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -36,6 +36,14 @@ class StudentWorkController < ApplicationController unless student_work.save resultObj[:status] = 200 else + student_work.name = params[:title] + student_work.description = params[:src] + if Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.parse(Time.now.to_s).strftime("%Y-%m-%d") + student_work.late_penalty = @homework.late_penalty + else + student_work.late_penalty = 0 + end + student_work.save resultObj[:status] = result["status"].to_i resultObj[:time] = student_work_test.created_at.to_s(:db) resultObj[:index] = student_work.student_work_tests.count @@ -93,12 +101,12 @@ class StudentWorkController < ApplicationController end #老师 || 超级管理员 || 禁用匿评&&作业截止&&已提交作品 显示所有列表 if @homework.is_open == 1 - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name @show_all = true elsif @homework.is_open == 0 && User.current.member_of_course?(@course) || User.current.admin? if @is_teacher || @homework.homework_detail_manual.nil? || (@homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.where(:user_id => User.current.id).empty?) - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name @show_all = true elsif @homework.homework_detail_manual.comment_status == 1 #学生 && 未开启匿评 只看到自己的 if @homework.homework_type == 3 @@ -106,10 +114,10 @@ class StudentWorkController < ApplicationController if pro.nil? @stundet_works = [] else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:id => pro.student_work_id) + @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) end else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:user_id => User.current.id) + @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) end elsif @homework.homework_detail_manual.comment_status == 2 #学生 && 开启匿评 看到匿评列表 if @homework.homework_type == 3 @@ -129,15 +137,15 @@ class StudentWorkController < ApplicationController if pro.nil? my_work = [] else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:id => pro.student_work_id) + my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) end else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:user_id => User.current.id) + my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) end if my_work.empty? @stundet_works = [] else - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name @show_all = true end else @@ -148,14 +156,14 @@ class StudentWorkController < ApplicationController return end - @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name).count + @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name).count else if @homework.is_open == 1 - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name @show_all = true elsif @homework.is_open == 0 && User.current.member_of_course?(@course) || User.current.admin? if @is_teacher || @homework.homework_detail_manual.nil? || (@homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.where(:user_id => User.current.id).empty?) #老师 || 超级管理员 显示所有列表 - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name @show_all = true elsif @homework.homework_detail_manual.comment_status == 1 #学生 && 未开启匿评 只看到自己的 if @homework.homework_type == 3 @@ -163,10 +171,10 @@ class StudentWorkController < ApplicationController if pro.nil? @stundet_works = [] else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:id => pro.student_work_id) + @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) end else - @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:user_id => User.current.id) + @stundet_works = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) end elsif @homework.homework_detail_manual.comment_status == 2 #学生 && 开启匿评 看到匿评列表 if @homework.homework_type == 3 @@ -186,15 +194,15 @@ class StudentWorkController < ApplicationController if pro.nil? my_work = [] else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:id => pro.student_work_id) + my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:id => pro.student_work_id) end else - my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").where(:user_id => User.current.id) + my_work = @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").where(:user_id => User.current.id) end if my_work.empty? @stundet_works = [] else - @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").order("#{@order} #{@b_sort}"),@name + @stundet_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name @show_all = true end else @@ -205,7 +213,7 @@ class StudentWorkController < ApplicationController return end - @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,final_score - absence_penalty - late_penalty) as score").order("#{@order} #{@b_sort}"),@name).count + @student_work_count = (search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("#{@order} #{@b_sort}"),@name).count end @score = @b_sort == "desc" ? "asc" : "desc" diff --git a/app/models/member.rb b/app/models/member.rb index 413fedc07..ee329def8 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -150,7 +150,7 @@ class Member < ActiveRecord::Base #当前学生在指定作业内的得分 def homework_common_score homework_common - StudentWork.select("IF(final_score is null,null,final_score - absence_penalty - late_penalty) as final_score").where(:homework_common_id => homework_common.id,:user_id => self.user_id) + StudentWork.select("IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as final_score").where(:homework_common_id => homework_common.id,:user_id => self.user_id) end def student_work_score_avg @@ -158,7 +158,7 @@ class Member < ActiveRecord::Base end def student_work_score_sum - sql_select = "SELECT (SUM(IF(student_works.final_score is null,null,student_works.final_score - student_works.absence_penalty - student_works.late_penalty))) as score + sql_select = "SELECT (SUM(IF(student_works.final_score IS NULL,NULL,IF(student_works.final_score =0,0,student_works.final_score - student_works.absence_penalty - student_works.late_penalty)))) as score FROM student_works,homework_commons WHERE student_works.homework_common_id = homework_commons.id AND homework_commons.course_id = #{self.course_id} diff --git a/app/views/courses/_new_member_list.html.erb b/app/views/courses/_new_member_list.html.erb index 35d9fe399..fd33d5a19 100644 --- a/app/views/courses/_new_member_list.html.erb +++ b/app/views/courses/_new_member_list.html.erb @@ -1,81 +1,81 @@ - -
- <% 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 => 32, :height => 32)) %> - - - <%= 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' %> - <%= format_date(member.created_on)%> - <%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %> -
-
- <% end; reset_cycle %> -
- - -<% else%> -

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

-<% end%> - + +
+ <% 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 => 32, :height => 32)) %> + + + <%= 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' %> + <%= format_date(member.created_on)%> + <%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %> +
+
+ <% end; reset_cycle %> +
+ + +<% else%> +

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

+<% end%> + diff --git a/app/views/student_work/_evaluation_un_work.html.erb b/app/views/student_work/_evaluation_un_work.html.erb index bf022f64c..8ed5f077b 100644 --- a/app/views/student_work/_evaluation_un_work.html.erb +++ b/app/views/student_work/_evaluation_un_work.html.erb @@ -15,10 +15,10 @@
  • <% if @homework.homework_type != 3 %> diff --git a/app/views/student_work/_evaluation_work.html.erb b/app/views/student_work/_evaluation_work.html.erb index cc346361e..f97a8dd2d 100644 --- a/app/views/student_work/_evaluation_work.html.erb +++ b/app/views/student_work/_evaluation_work.html.erb @@ -21,10 +21,10 @@
  • <% if @homework.homework_type != 3 %> diff --git a/app/views/student_work/_programing_work_show.html.erb b/app/views/student_work/_programing_work_show.html.erb index d6977325c..8e7c58dc3 100644 --- a/app/views/student_work/_programing_work_show.html.erb +++ b/app/views/student_work/_programing_work_show.html.erb @@ -25,7 +25,7 @@
  • 编程代码: -
    +
    diff --git a/app/views/student_work/_student_work_list.html.erb b/app/views/student_work/_student_work_list.html.erb index 1eea8f1c2..53e57fd9c 100644 --- a/app/views/student_work/_student_work_list.html.erb +++ b/app/views/student_work/_student_work_list.html.erb @@ -63,7 +63,7 @@ } else if(language==4){ program_name = 'text/x-java'; } - var editor = CodeMirror(document.getElementById("work-code"), { + var editor = CodeMirror(document.getElementById("work-code_<%= work.id%>"), { mode: {name: program_name, version: 2, singleLineStringErrors: false}, diff --git a/app/views/student_work/show.js.erb b/app/views/student_work/show.js.erb index 477f06e0f..afa03bff8 100644 --- a/app/views/student_work/show.js.erb +++ b/app/views/student_work/show.js.erb @@ -17,7 +17,7 @@ else{ program_name = 'text/x-java'; } - var editor = CodeMirror(document.getElementById("work-code"), { + var editor = CodeMirror(document.getElementById("work-code_<%= @work.id%>"), { mode: {name: program_name, version: 2, singleLineStringErrors: false}, diff --git a/db/migrate/20160310033019_delete_student_work_data.rb b/db/migrate/20160310033019_delete_student_work_data.rb new file mode 100644 index 000000000..a7ce60953 --- /dev/null +++ b/db/migrate/20160310033019_delete_student_work_data.rb @@ -0,0 +1,8 @@ +class DeleteStudentWorkData < ActiveRecord::Migration + def up + StudentWork.where("homework_common_id = 2604 AND user_id = 10763 AND final_score = 0").destroy_all + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 5bc8b1ea0..abaafdf80 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160309024051) do +ActiveRecord::Schema.define(:version => 20160310033019) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1387,7 +1387,6 @@ ActiveRecord::Schema.define(:version => 20160309024051) do t.integer "changeset_num", :default => 0 t.integer "board_message_num", :default => 0 t.integer "board_num", :default => 0 - t.integer "act_num", :default => 0 t.integer "attach_num", :default => 0 t.datetime "commit_time" end diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index 1c832b4b3..108f1cd2e 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -1289,3 +1289,6 @@ a.contributor_course{float: right; color: #888; font-size: 12px; font-weight: no .active-degree-rule{font-size: 12px;color: #888; text-align: center; cursor: pointer;} .hero-degree-rule{font-size: 12px;color: #888;text-align: center;} .contributor-course-calculate{padding-left: 54px; font-size: 12px;color: #888} + +/*20160310分班样式*/ +.select-class-option {width:125px;} diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index 5a9593519..94db0d86a 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -66,6 +66,7 @@ h4{ font-size:14px; color:#3b3b3b;} .ml15{ margin-left:15px;} .ml16{ margin-left: 16px;} .ml20{ margin-left:20px;} +.ml25 {margin-left:25px;} .ml30{margin-left:30px !important;} .ml35{margin-left: 35px;} .ml40{ margin-left:40px;} @@ -144,6 +145,7 @@ h4{ font-size:14px; color:#3b3b3b;} .w80{ width:80px;} .w90{ width:90px;} .w100{width: 100px;} +.w125{width:125px;} .w210{ width:210px;} .w150{ width:150px;} .w170{width:170px;}