diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 3db7ada2b..1e68ed2ed 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -6,8 +6,8 @@ class HomeworkCommonController < ApplicationController
include StudentWorkHelper
before_filter :find_course, :only => [:index,:new,:create]
- before_filter :find_homework, :only => [:edit,:update,:alert_anonymous_comment,:start_anonymous_comment,:stop_anonymous_comment,:destroy,:start_evaluation_set,:set_evaluation_attr,:score_rule_set]
- before_filter :teacher_of_course, :only => [:new, :create, :edit, :update, :destroy, :start_anonymous_comment, :stop_anonymous_comment, :alert_anonymous_comment,:start_evaluation_set,:set_evaluation_attr,:score_rule_set]
+ before_filter :find_homework, :only => [:edit,:update,:alert_anonymous_comment,:start_anonymous_comment,:stop_anonymous_comment,:destroy,:start_evaluation_set,:set_evaluation_attr,:score_rule_set,:alert_forbidden_anonymous_comment]
+ before_filter :teacher_of_course, :only => [:new, :create, :edit, :update, :destroy, :start_anonymous_comment, :stop_anonymous_comment, :alert_anonymous_comment,:start_evaluation_set,:set_evaluation_attr,:score_rule_set,:alert_forbidden_anonymous_comment]
before_filter :member_of_course, :only => [:index]
def index
@@ -38,6 +38,7 @@ class HomeworkCommonController < ApplicationController
def edit
@user = User.current
@is_in_course = params[:is_in_course].to_i
+ @course_activity = params[:course_activity].to_i
respond_to do |format|
format.html{render :layout => 'new_base_user'}
end
@@ -88,8 +89,12 @@ class HomeworkCommonController < ApplicationController
@homework_detail_programing.save if @homework_detail_programing
if params[:is_in_course] == "1"
redirect_to homework_common_index_path(:course => @course.id)
- else
+ elsif params[:is_in_course] == "0"
redirect_to user_homeworks_user_path(User.current.id)
+ elsif params[:is_in_course] == "-1" && params[:course_activity] == "0"
+ redirect_to user_path(User.current.id)
+ elsif params[:is_in_course] == "-1" && params[:course_activity] == "1"
+ redirect_to course_path(@course.id)
end
end
end
@@ -101,8 +106,12 @@ class HomeworkCommonController < ApplicationController
format.html {
if params[:is_in_course] == "1"
redirect_to homework_common_index_path(:course => @course.id)
- else
+ elsif params[:is_in_course] == "0"
redirect_to user_homeworks_user_path(User.current.id)
+ elsif params[:is_in_course] == "-1" && params[:course_activity] == "0"
+ redirect_to user_path(User.current.id)
+ elsif params[:is_in_course] == "-1" && params[:course_activity] == "1"
+ redirect_to course_path(@course.id)
end
}
end
@@ -184,6 +193,19 @@ class HomeworkCommonController < ApplicationController
end
end
+ def alert_forbidden_anonymous_comment
+ if params[:user_activity_id]
+ @user_activity_id = params[:user_activity_id]
+ else
+ @user_activity_id = -1
+ end
+ @is_in_course = params[:is_in_course] if params[:is_in_course]
+ @course_activity = params[:course_activity] if params[:course_Activity]
+ respond_to do |format|
+ format.js
+ end
+ end
+
def programing_test
test = {language:params[:language],src:Base64.encode64(params[:src]),input:[params[:input]],output:[params[:output]]}
@index = params[:index]
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 0acf75c62..1f252cc24 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -224,10 +224,6 @@ update
#if( !User.current.member_of?(@project) || @project.hidden_repo)
@repository.fetch_changesets if Setting.autofetch_changesets? && @path.empty?
- # g = Gitlab.client
- # project = g.project(20)
- # rr = g.trees(project.id, @path)
- # r = g.get ("/projects/#{@project}/repository/tree")
# :name, :path, :kind, :size, :lastrev, :changeset
@entries = @repository.entries(@path, @rev)
# @trees = g.trees(project, @path)
@@ -241,10 +237,18 @@ update
#Modified by young
# (show_error_not_found; return) unless @entries
g = Gitlab.client
- @changesets = g.get ("/projects/#{@project.gpid}/repository/commits")
+ count = 0
+ (0..100).each do |page|
+ if g.commits(@project.gpid,:page => page).count == 0
+ break
+ else
+ count = count + g.commits(@project.gpid,:page => page).count
+ end
+ end
+ @changesets = g.commits(@project.gpid)
# @changesets = @repository.latest_changesets(@path, @rev)
# @changesets_count = @repository.latest_changesets(@path, @rev).count
- @changesets_count = @changesets.count
+ @changesets_all_count = count
@changesets_latest_coimmit = @changesets[0]
@properties = @repository.properties(@path, @rev)
@repositories = @project.repositories
@@ -271,7 +275,9 @@ update
@entry = @repository.entry(@path, @rev)
(show_error_not_found; return) unless @entry
g = Gitlab.client
- @changesets = g.get ("/projects/#{@project.gpid}/repository/commits?#{@rev}")
+ @commits = g.commits(@project.gpid, page:params[:pamge])
+ @commit = g.commit(@project.gpid,@rev)
+ # @changesets = g.get ("/projects/#{@project.gpid}/repository/commits?#{@rev}")
#@changesets = @repository.latest_changesets(@path, @rev, Setting.repository_log_display_limit.to_i)
@properties = @repository.properties(@path, @rev)
@changeset = @repository.find_changeset_by_name(@rev)
diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb
index 25782ec4b..38b953732 100644
--- a/app/controllers/student_work_controller.rb
+++ b/app/controllers/student_work_controller.rb
@@ -3,11 +3,11 @@ class StudentWorkController < ApplicationController
include StudentWorkHelper
require 'bigdecimal'
require "base64"
- before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:set_score_rule]
+ before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:set_score_rule,:forbidden_anonymous_comment]
before_filter :find_work, :only => [:edit, :update, :show, :destroy, :add_score, :praise_student_work]
before_filter :member_of_course, :only => [:index, :new, :create, :show, :add_score, :praise_student_work]
before_filter :author_of_work, :only => [:edit, :update, :destroy]
- before_filter :teacher_of_course, :only => [:student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :set_score_rule]
+ before_filter :teacher_of_course, :only => [:student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :set_score_rule, :forbidden_anonymous_comment]
###
def program_test
@@ -469,6 +469,25 @@ class StudentWorkController < ApplicationController
end
end
+ def forbidden_anonymous_comment
+ @homework.update_column('anonymous_comment', 1)
+ homework_detail_manual = @homework.homework_detail_manual
+ homework_detail_programing = @homework.homework_detail_programing
+ if homework_detail_programing
+ homework_detail_manual.update_column('ta_proportion', 0.4)
+ homework_detail_programing.update_column('ta_proportion', 0.6)
+ else
+ homework_detail_manual.update_column('ta_proportion', 1.0)
+ end
+ @homework.student_works.each do |student_work|
+ set_final_score @homework,student_work
+ student_work.save
+ end
+ @user_activity_id = params[:user_activity_id].to_i
+ @is_in_course = params[:is_in_course].to_i
+ @course_activity = params[:course_activity].to_i
+ end
+
private
#获取作业
def find_homework
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 01b126c26..b6c4ec91b 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -615,6 +615,11 @@ module ApplicationHelper
return rep.blank? ? true :false
end
+ # 获取单一gitlab项目
+ def gitlab_repository(project)
+ rep = Repository.where("project_id =? and type =?", project.id,"Repository::Gitlab" ).first
+ end
+
# 判断当前用户是否为项目管理员
def is_project_manager?(user_id, project_id)
@result = false
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 48766813c..51d1846d8 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -125,7 +125,7 @@ module ProjectsHelper
# 获取新项目的版本库地址
def rep_gitlab_url(project)
gitlab_address = Redmine::Configuration['gitlab_address']
- url = gitlab_address.to_s+"/"+project.owner.to_s+"/"+project.identifier+"."+"git"
+ url = gitlab_address.to_s+"/"+project.owner.to_s+"/"+ rep_gitlab(project).first.identifier+"."+"git"
end
# # 获取Forge历史版本库
diff --git a/app/views/blog_comments/reply.js.erb b/app/views/blog_comments/reply.js.erb
index f8ed4bb24..1cb64b2b5 100644
--- a/app/views/blog_comments/reply.js.erb
+++ b/app/views/blog_comments/reply.js.erb
@@ -2,6 +2,6 @@
$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/user_blog', :locals => {:activity => @article,:user_activity_id =>@user_activity_id}) %>");
init_activity_KindEditor_data(<%= @user_activity_id%>,"","87%");
<% else%>
-$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'blogs/article', :locals => {:activity => @article,:user_activity_id =>@user_activity_id,:first_user_activity =>@first_user_activity,:page => @page}) %>");
+$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'blogs/article', :locals => {:activity => @article,:user_activity_id =>@user_activity_id}) %>");
init_activity_KindEditor_data(<%= @user_activity_id%>,"","87%");
<% end %>
\ No newline at end of file
diff --git a/app/views/comments/create.js.erb b/app/views/comments/create.js.erb
index 7892ed773..ea904a63f 100644
--- a/app/views/comments/create.js.erb
+++ b/app/views/comments/create.js.erb
@@ -1,3 +1,3 @@
-$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id,:first_user_activity =>@first_user_activity,:page => @page}) %>");
+$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
init_activity_KindEditor_data('<%= @user_activity_id%>',"","87%");
diff --git a/app/views/courses/_course_activity.html.erb b/app/views/courses/_course_activity.html.erb
index 4a7cb900d..a54e0667e 100644
--- a/app/views/courses/_course_activity.html.erb
+++ b/app/views/courses/_course_activity.html.erb
@@ -92,7 +92,7 @@
<% act = activity.course_act %>
<% case activity.course_act_type.to_s %>
<% when 'HomeworkCommon' %>
- <%= render :partial => 'users/course_homework', :locals => {:activity => act, :user_activity_id => activity.id} %>
+ <%= render :partial => 'users/course_homework', :locals => {:activity => act, :user_activity_id => activity.id, :course_activity => 1} %>
<% when 'News' %>
<%= render :partial => 'users/course_news', :locals => {:activity => act, :user_activity_id => activity.id} %>
<% when 'Message' %>
diff --git a/app/views/homework_common/alert_forbidden_anonymous_comment.js.erb b/app/views/homework_common/alert_forbidden_anonymous_comment.js.erb
new file mode 100644
index 000000000..5177f4d92
--- /dev/null
+++ b/app/views/homework_common/alert_forbidden_anonymous_comment.js.erb
@@ -0,0 +1,6 @@
+$('#ajax-modal').html('<%= escape_javascript(render :partial => 'student_work/alert_forbidden_anonymous', :locals => {:user_activity_id => @user_activity_id,:is_in_course => @is_in_course,:course_activity => @course_activity}) %>');
+showModal('ajax-modal', '500px');
+$('#ajax-modal').siblings().remove();
+$('#ajax-modal').before("" +
+ "");
+$('#ajax-modal').parent().css("top","30%").css("left","30%").css("position","fixed");
\ No newline at end of file
diff --git a/app/views/homework_common/edit.html.erb b/app/views/homework_common/edit.html.erb
index 79692207f..ac772171d 100644
--- a/app/views/homework_common/edit.html.erb
+++ b/app/views/homework_common/edit.html.erb
@@ -8,6 +8,17 @@
homework_description_editor.html("");
$("#homework_editor").toggle();
}
+ function cancel_edit(){
+ <% if @is_in_course == 1 %>
+ window.location.href='<%=homework_common_index_path(:course => @course.id) %>';
+ <% elsif @is_in_course == 0 %>
+ window.location.href='<%=user_homeworks_user_path(User.current.id) %>';
+ <% elsif @is_in_course == -1 && @course_activity == 0 %>
+ window.location.href='<%=user_path(User.current.id) %>';
+ <% elsif @is_in_course == -1 && @course_activity == 1 %>
+ window.location.href='<%=course_path(@course.id) %>';
+ <% end %>
+ }
1. 点击下面的"创建版本库按钮",为本项目创建一个新的版本库;
+2. 从本项目的历史版本库中选择一个您将使用的版本库,将其完整的克隆(clone)到本地(需要提供您之前设置的版本库口令),然后推送(push)到新建的版本库(注意不能仅推送代码,否则之前各开发者的提交记录将丢失)。
+3. 本项目的历史版本库将在您新建版本库的一周内自动隐藏,如果您以后需要这些版本库,请与网站联系,我们将为您提供这些版本库的所有数据。
+