diff --git a/app/models/comment.rb b/app/models/comment.rb
index 9de25c50d..473283dc0 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -81,8 +81,10 @@ class Comment < ActiveRecord::Base
# 课程成员得分(英雄榜)
def act_as_student_score
- unless self.author.allowed_to?(:as_teacher, self.commented.course)
- course_member_score(self.commented.course.id, self.author_id, "NewReply")
+ if self.commented.course
+ unless self.author.allowed_to?(:as_teacher, self.commented.course)
+ course_member_score(self.commented.course.id, self.author_id, "NewReply")
+ end
end
end
diff --git a/app/models/message.rb b/app/models/message.rb
index 21e5e1c71..3f9057346 100644
--- a/app/models/message.rb
+++ b/app/models/message.rb
@@ -287,13 +287,15 @@ class Message < ActiveRecord::Base
# 课程成员得分(英雄榜)
def act_as_student_score
- unless self.author.allowed_to?(:as_teacher, self.course)
- if self.parent_id.nil?
- # 发帖
- course_member_score(self.course.id, self.author_id, "Message")
- else
- # 回帖
- course_member_score(self.course.id, self.author_id, "MessageReply")
+ if self.course
+ unless self.author.allowed_to?(:as_teacher, self.course)
+ if self.parent_id.nil?
+ # 发帖
+ course_member_score(self.course.id, self.author_id, "Message")
+ else
+ # 回帖
+ course_member_score(self.course.id, self.author_id, "MessageReply")
+ end
end
end
end
diff --git a/app/views/exercise/_edit_head.html.erb b/app/views/exercise/_edit_head.html.erb
index b69f52a56..64f34b5aa 100644
--- a/app/views/exercise/_edit_head.html.erb
+++ b/app/views/exercise/_edit_head.html.erb
@@ -20,7 +20,7 @@
保存
-
+
<%= l(:button_cancel)%>
@@ -35,6 +35,6 @@
$("#exercise_time").val("<%=exercise.time if exercise.time!= -1 %>");
$("#exercise_publish_time").val("<%= Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d") if !exercise.publish_time.nil?%>");
/*$("#exercise_description").text("<%#=exercise.exercise_description.html_safe %>");*/
- document.getElementById("exercise_description").innerText = <%=exercise.exercise_description.html_safe %>;
+ document.getElementById("exercise_description").innerHTML = <%=exercise.exercise_description.html_safe %>;
}
\ No newline at end of file
diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb
index 603f7febb..c8b5a20b0 100644
--- a/app/views/layouts/base_courses.html.erb
+++ b/app/views/layouts/base_courses.html.erb
@@ -212,7 +212,7 @@
<% contributor_course_scor(@course.id).each do |contributor_score| %>
<% unless contributor_score.total_score ==0 %>
<%=link_to image_tag(url_to_avatar(contributor_score.user), :width => "35", :height => "35", :class=> "rankPortrait"),user_path(contributor_score.user) %>
- <%=link_to contributor_score.user, user_path(contributor_score.user), :title => contributor_score.user %>
+ <%=link_to contributor_score.user.show_name, user_path(contributor_score.user), :title => contributor_score.user.show_name %>
<%= contributor_score.total_score.to_i %>
@@ -244,9 +244,9 @@
课程英雄榜
<% hero_homework_scores.each do |student_score| %>
- <% unless student_score.score.nil? %>
+ <% if student_score.score != 0 %>
- <%=link_to image_tag(url_to_avatar(student_score.user), :width => "35", :height => "35", :class=> "rankPortrait"),user_path(student_score.user) %>
-
<%=link_to student_score.user, user_path(student_score.user), :title => student_score.user %>
+ <%=link_to student_score.user.show_name, user_path(student_score.user), :title => student_score.user.show_name %>
<%= student_score.score.to_i %>
<% end %>
diff --git a/app/views/repositories/_revisions.html.erb b/app/views/repositories/_revisions.html.erb
index 50c973fb4..b72a05876 100644
--- a/app/views/repositories/_revisions.html.erb
+++ b/app/views/repositories/_revisions.html.erb
@@ -1,16 +1,16 @@
<%= form_tag(
{:controller => 'repositories', :action => 'diff', :id => project,
:repository_id => @repository.identifier_param, :path => to_path_param(path)},
- :method => :get
+ :method => :get
) do %>
-
-
-
-
-
-
+
+
+
+
+
+
@@ -24,6 +24,7 @@
<%= textilizable(truncate_at_line_break(changeset.message)) %>
+
<%= h truncate(changeset.short_id.to_s, :length => 20) %>
@@ -31,13 +32,29 @@
-
- <%= image_tag(url_to_avatar(user_commit_rep(changeset.author_email)), :width => "20", :height => "20", :class => "fl portraitRadius mt2 ml4 mr5") %>
- <%= link_to user_commit_rep(changeset.author_email), user_path(user_commit_rep(changeset.author_email)), :length => 30 %>
- 提交于
-
-
-
+ <% if !user_commit_rep(changeset.author_email).nil? %>
+
+ <%= image_tag(url_to_avatar(user_commit_rep(changeset.author_email)), :width => "20", :height => "20", :class => "fl portraitRadius mt2 ml4 mr5") %>
+ <%= link_to user_commit_rep(changeset.author_email), user_path(user_commit_rep(changeset.author_email)), :length => 30 %>
+ 提交于
+
+
+
+
+ <% else %>
+
<%= changeset.author_email %>
+ 提交于
+
+
+
+
+ <% end %>
+
+
@@ -50,7 +67,7 @@
- <%= pagination_links_full commits_pages, commits_count, :per_page_links => false, :remote => false, :flag => true%>
+ <%= pagination_links_full commits_pages, commits_count, :per_page_links => false, :remote => false, :flag => true %>
<% end %>
diff --git a/db/migrate/20151130031446_add_index_to_homework_commons.rb b/db/migrate/20151130031446_add_index_to_homework_commons.rb
new file mode 100644
index 000000000..f0a0b86d5
--- /dev/null
+++ b/db/migrate/20151130031446_add_index_to_homework_commons.rb
@@ -0,0 +1,5 @@
+class AddIndexToHomeworkCommons < ActiveRecord::Migration
+ def change
+ add_index :homework_commons, [:course_id, :id]
+ end
+end
diff --git a/db/migrate/20151130033906_add_index_to_student_works.rb b/db/migrate/20151130033906_add_index_to_student_works.rb
new file mode 100644
index 000000000..2f990f5a7
--- /dev/null
+++ b/db/migrate/20151130033906_add_index_to_student_works.rb
@@ -0,0 +1,5 @@
+class AddIndexToStudentWorks < ActiveRecord::Migration
+ def change
+ add_index :student_works, [:homework_common_id, :user_id]
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 55a97ee20..70b64ec7b 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 => 20151126160252) do
+ActiveRecord::Schema.define(:version => 20151130033906) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -736,6 +736,8 @@ ActiveRecord::Schema.define(:version => 20151126160252) do
t.integer "anonymous_comment", :default => 0
end
+ add_index "homework_commons", ["course_id", "id"], :name => "index_homework_commons_on_course_id_and_id"
+
create_table "homework_detail_manuals", :force => true do |t|
t.float "ta_proportion"
t.integer "comment_status"
@@ -961,6 +963,7 @@ ActiveRecord::Schema.define(:version => 20151126160252) do
t.integer "course_group_id", :default => 0
end
+ add_index "members", ["course_id"], :name => "index_members_on_course_id"
add_index "members", ["project_id"], :name => "index_members_on_project_id"
add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true
add_index "members", ["user_id"], :name => "index_members_on_user_id"
@@ -1506,6 +1509,8 @@ ActiveRecord::Schema.define(:version => 20151126160252) do
t.boolean "is_test", :default => false
end
+ add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id"
+
create_table "student_works_evaluation_distributions", :force => true do |t|
t.integer "student_work_id"
t.integer "user_id"
diff --git a/lib/tasks/delete_evalution.rake b/lib/tasks/delete_evalution.rake
new file mode 100644
index 000000000..6d01123e0
--- /dev/null
+++ b/lib/tasks/delete_evalution.rake
@@ -0,0 +1,13 @@
+namespace :delete_evalution do
+ desc "delete evaluation"
+ task :delete => :environment do
+ homework = HomeworkCommon.where("id = 844").first
+ homework.homework_detail_manual.update_column('comment_status', 3)
+ student_work_score = StudentWorksScore.where("student_work_id = 28088 and user_id = 9263").first
+ student_work_score.destroy
+ student_work_9203 = StudentWork.where("id = 28088").first
+ student_work_9263 = StudentWork.where("homework_common_id = 844 and user_id = 9263").first
+ student_work_9203.update_column("student_score",91)
+ student_work_9263.update_column("absence_penalty",student_work_9263.absence_penalty+homework.homework_detail_manual.absence_penalty)
+ end
+end
\ No newline at end of file
diff --git a/lib/tasks/homework_evaluation.rake b/lib/tasks/homework_evaluation.rake
index bf5f32dfe..84082eb9b 100644
--- a/lib/tasks/homework_evaluation.rake
+++ b/lib/tasks/homework_evaluation.rake
@@ -60,7 +60,7 @@ namespace :homework_evaluation do
work_ids = "(" + homework_common.student_works.map(&:id).join(",") + ")"
homework_common.student_works.each do |student_work|
absence_penalty_count = student_work.user.student_works_evaluation_distributions.where("student_work_id IN #{work_ids}").count - student_work.user.student_works_scores.where("student_work_id IN #{work_ids}").count
- student_work.absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * homework_detail_manuals.absence_penalty : 0
+ student_work.absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * homework_detail_manual.absence_penalty : 0
student_work.save
end
homework_detail_manual.update_column('comment_status', 3)
diff --git a/lib/tasks/sync_gitlab_user.rake b/lib/tasks/sync_gitlab_user.rake
index c932ca36c..fb84f5f08 100644
--- a/lib/tasks/sync_gitlab_user.rake
+++ b/lib/tasks/sync_gitlab_user.rake
@@ -6,24 +6,30 @@ namespace :gitlab do
users = User.find_by_sql("select * from users where gid is null")
s = Trustie::Gitlab::Sync.new
g = Gitlab.client
+ logger = Logger.new('./log/add_gid.log', 'daily') #按天生成
users.each do |user|
- us = g.get("/users?search=#{user.mail}")
- puts user.mail
- if us.blank?
- puts "55555555555555555"
- s.sync_user(user)
- else
- # 解决查询的时候出现多值的情况,比如:123@163.com和g123@163.com
- puts "66666666666666666666"
- puts user.id
- if Array === us
- us.each do |u|
- if u.email == user.mail
- user.gid = u.id
- user.save
+ begin
+ us = g.get("/users?search=#{user.mail}")
+ puts user.mail
+ if us.blank?
+ puts "55555555555555555"
+ s.sync_user(user)
+ else
+ # 解决查询的时候出现多值的情况,比如:123@163.com和g123@163.com
+ puts "66666666666666666666"
+ puts user.id
+ if Array === us
+ us.each do |u|
+ if u.email == user.mail
+ user.gid = u.id
+ user.save
+ end
end
end
end
+ rescue => e
+ logger.error("userid=#{user.id},mail=#{user.mail},login=#{user.login},error=#{e}")
+ puts e
end
end
end
diff --git a/lib/tasks/sync_sigle_rep.rake b/lib/tasks/sync_sigle_rep.rake
index e68e37ee8..57aaaabcb 100644
--- a/lib/tasks/sync_sigle_rep.rake
+++ b/lib/tasks/sync_sigle_rep.rake
@@ -9,7 +9,7 @@ namespace :sync_rep do
if project.repositories && project.repositories.count == 1 && project.repositories.first.type == "Repository::Git"
rep = project.repositories.first
count = Repository.find_by_sql("SELECT * FROM `repositories` where identifier = '#{rep.identifier}'").count
- puts count
+ puts project.id
unless count > 1
rep.identifier
s = Trustie::Gitlab::Sync.new