From 7edb30754b7748595107b2e1c7f7863ed1e2136f Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 10 Aug 2016 16:50:27 +0800 Subject: [PATCH] =?UTF-8?q?student=5Fworks=E6=B7=BB=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5commit=5Ftime=EF=BC=8C=E8=AE=B0=E5=BD=95=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E4=BD=9C=E5=93=81=E5=AE=9E=E9=99=85=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 5 +++-- app/controllers/users_controller.rb | 1 + app/models/student_work.rb | 2 +- app/views/users/_course_homework.html.erb | 4 ++-- app/views/users/_user_homework_detail.html.erb | 4 ++-- ...0810080942_add_commit_time_to_student_work.rb | 16 ++++++++++++++++ db/schema.rb | 3 ++- 7 files changed, 27 insertions(+), 8 deletions(-) create mode 100644 db/migrate/20160810080942_add_commit_time_to_student_work.rb diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index adfcd6263..8f3ebff98 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -597,6 +597,7 @@ class StudentWorkController < ApplicationController student_work.description = params[:student_work][:description] student_work.homework_common_id = @homework.id student_work.user_id = User.current.id + student_work.commit_time = Time.now student_work.save_attachments(params[:attachments]) render_attachment_warning_if_needed(student_work) if @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 1 @@ -791,7 +792,7 @@ class StudentWorkController < ApplicationController end end elsif @homework.homework_type == 1 - @work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0) + @work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0, :commit_time => nil) end @student_work = StudentWork.new respond_to do |format| @@ -826,7 +827,7 @@ class StudentWorkController < ApplicationController @new_score.user_id = User.current.id @new_score.student_work_id = @work.id if @is_teacher && @work.work_status == 0 - @work.update_column('work_status', 1) + @work.update_attributes(:work_status => 1, :commit_time => Time.now) end if User.current.admin? @new_score.reviewer_role = 1 diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 54d43c891..3b9324d6a 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1004,6 +1004,7 @@ class UsersController < ApplicationController student_work.work_status = 1 end + student_work.commit_time = Time.now student_work.save send_message_to_teacher(student_work) homework.update_column(:updated_at, Time.now) diff --git a/app/models/student_work.rb b/app/models/student_work.rb index 3ba3ee2b2..09ef15583 100644 --- a/app/models/student_work.rb +++ b/app/models/student_work.rb @@ -1,6 +1,6 @@ #学生提交作品表 class StudentWork < ActiveRecord::Base - attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :project_id, :is_test, :simi_id, :simi_value, :work_status + attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time belongs_to :homework_common belongs_to :user diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index ded407f8c..1b55b08f6 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -135,9 +135,9 @@
<% if activity.student_works.has_committed.count != 0 %> - <% sw = activity.student_works.has_committed.reorder("created_at desc").first %> + <% sw = activity.student_works.has_committed.reorder("commit_time desc").first %>
- # <%=time_from_now sw.created_at %><%= link_to sw.user.show_name, user_activities_path(sw.user_id), :class => "newsBlue ml5 mr5"%>提交了作品 + # <%=time_from_now sw.commit_time %><%= link_to sw.user.show_name, user_activities_path(sw.user_id), :class => "newsBlue ml5 mr5"%>提交了作品
<% end %>
diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb index 990a193cc..aee307963 100644 --- a/app/views/users/_user_homework_detail.html.erb +++ b/app/views/users/_user_homework_detail.html.erb @@ -146,9 +146,9 @@
<% if homework_common.student_works.has_committed.count != 0 %> - <% sw = homework_common.student_works.has_committed.reorder("created_at desc").first %> + <% sw = homework_common.student_works.has_committed.reorder("commit_time desc").first %>
- # <%=time_from_now sw.created_at %><%= link_to sw.user.show_name, user_activities_path(sw.user_id), :class => "newsBlue ml5 mr5"%>提交了作品 + # <%=time_from_now sw.commit_time %><%= link_to sw.user.show_name, user_activities_path(sw.user_id), :class => "newsBlue ml5 mr5"%>提交了作品
<% end %>
diff --git a/db/migrate/20160810080942_add_commit_time_to_student_work.rb b/db/migrate/20160810080942_add_commit_time_to_student_work.rb new file mode 100644 index 000000000..2301d7db8 --- /dev/null +++ b/db/migrate/20160810080942_add_commit_time_to_student_work.rb @@ -0,0 +1,16 @@ +class AddCommitTimeToStudentWork < ActiveRecord::Migration + def change + add_column :student_works, :commit_time, :datetime + + count = StudentWork.all.count / 30 + 2 + transaction do + for i in 1 ... count do i + StudentWork.page(i).per(30).each do |work| + if work.work_status != 0 + work.update_column("commit_time", work.created_at) + end + end + end + end + end +end diff --git a/db/schema.rb b/db/schema.rb index d8b93da88..3b812eb3d 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 => 20160729124833) do +ActiveRecord::Schema.define(:version => 20160810080942) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1840,6 +1840,7 @@ ActiveRecord::Schema.define(:version => 20160729124833) do t.integer "simi_value" t.float "work_score" t.integer "work_status", :default => 0 + t.datetime "commit_time" end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id"