diff --git a/Gemfile b/Gemfile
index a690b224b..d1993359e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -28,6 +28,7 @@ gem 'ruby-ole'
gem 'rails_kindeditor',path:'lib/rails_kindeditor'
#gem "rmagick", ">= 2.0.0"
gem 'binding_of_caller'
+gem 'chinese_pinyin'
group :development do
gem 'grape-swagger'
diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb
index 2ec3cac0d..a0f2bf379 100644
--- a/app/controllers/boards_controller.rb
+++ b/app/controllers/boards_controller.rb
@@ -148,10 +148,7 @@ class BoardsController < ApplicationController
@message = Message.new(:board => @board)
#modify by nwb
- respond_to do |format|
- format.js
- format.html {
- if @project
+
render :action => 'show', :layout => 'base_projects'
elsif @course
@params=params
@@ -160,10 +157,6 @@ class BoardsController < ApplicationController
}
format.atom {
@messages = @board.messages.
- reorder('created_on DESC').
- includes(:author, :board).
- limit(Setting.feeds_limit.to_i).
- all
if @project
render_feed(@messages, :title => "#{@project}: #{@board}")
elsif @course
diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb
index 9728ddf11..16d516f82 100644
--- a/app/controllers/my_controller.rb
+++ b/app/controllers/my_controller.rb
@@ -126,11 +126,13 @@ class MyController < ApplicationController
end
@se = @user.extensions
- if params[:occupation].to_i.to_s == params[:occupation]
- @se.school_id = params[:occupation]
- else
- @se.occupation = params[:occupation]
- end
+ # if params[:occupation].to_i.to_s == params[:occupation]
+ # @se.school_id = params[:occupation]
+ # else
+ # @se.occupation = params[:occupation]
+ # end
+ @se.school_id = params[:occupation]
+
@se.gender = params[:gender]
@se.location = params[:province] if params[:province]
@se.location_city = params[:city] if params[:city]
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 126b269bb..f2f10d5b6 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -46,16 +46,21 @@ class RepositoriesController < ApplicationController
rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed
def new
- scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
- @repository = Repository.factory(scm)
- @repository.is_default = @project.repository.nil?
- @repository.project = @project
- @course_tag = params[:course]
- if @course_tag == 1
- render :layout => 'base_courses'
+ if @project.repositories.count == 0
+ scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
+ @repository = Repository.factory(scm)
+ @repository.is_default = @project.repository.nil?
+ @repository.project = @project
+ @course_tag = params[:course]
+ if @course_tag == 1
+ render :layout => 'base_courses'
+ else
+ render :layout => 'base_projects'
+ end
else
- render :layout => 'base_projects'
+ render_403
end
+
end
diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb
index 3e0c280ac..5e68dc2bd 100644
--- a/app/controllers/school_controller.rb
+++ b/app/controllers/school_controller.rb
@@ -105,4 +105,31 @@ class SchoolController < ApplicationController
render :text => options
end
+
+ #根据学校名字或者拼音来查询
+ def on_search
+ condition = "#{params[:name].strip}".gsub(" ","")
+ #将条件截断为汉字和拼音(全汉字 或者 全拼音 或者 汉字和拼音),
+ #获取拼音的第一次出现的位置
+ chinese = []
+ pinyin = []
+ condition.scan(/./).each_with_index do |char,index|
+ if char =~ /[a-zA-Z0-9]/
+ pinyin << char
+ else
+ chinese << char
+ end
+ end
+ if(condition == '')
+ @school = School.all
+ else
+ @school = School.where("name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").all
+ end
+
+ result = []
+ # @school.each do |sc|
+ # result << {:value=>sc.name,:data=>sc.id}
+ # end
+ render :json => @school.to_json
+ end
end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 41e016562..b18d0c706 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -2349,22 +2349,25 @@ module ApplicationHelper
#根据传入作业确定显示为编辑作品还是新建作品,或者显示作品数量
def user_for_homework_common homework,is_teacher
- if is_teacher #老师显示作品数量
- link_to "提交(#{homework.student_works.count})",student_work_index_path(:homework => homework.id),:class => "c_blue"
- else #学生显示提交作品、修改作品等按钮
- work = cur_user_works_for_homework homework
- if work.nil?
- link_to "提交作品", new_student_work_path(:homework => homework.id),:class => 'c_blue'
- else
- if homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1 #匿评作业,且作业状态不是在开启匿评之前
- link_to "作品已交", "javascript:void(0)", :class => 'c_blue', :title => "开启匿评后不可修改作品"
- elsif homework.homework_type == 2 #编程作业不能修改作品
- link_to "修改作品", new_student_work_path(:homework => homework.id),:class => 'c_blue'
+ if User.current.member_of_course?(homework.course)
+ if is_teacher #老师显示作品数量
+ link_to "提交(#{homework.student_works.count})",student_work_index_path(:homework => homework.id),:class => "c_blue"
+ else #学生显示提交作品、修改作品等按钮
+ work = cur_user_works_for_homework homework
+ if work.nil?
+ link_to "提交作品", new_student_work_path(:homework => homework.id),:class => 'c_blue'
else
- link_to "修改作品", edit_student_work_path(work.id),:class => 'c_blue'
+ if homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1 #匿评作业,且作业状态不是在开启匿评之前
+ link_to "作品匿评", student_work_index_path(:homework => homework.id), :class => 'c_blue', :title => "开启匿评后不可修改作品"
+ elsif homework.homework_type == 2 #编程作业不能修改作品
+ link_to "修改作品", new_student_work_path(:homework => homework.id),:class => 'c_blue'
+ else
+ link_to "修改作品", edit_student_work_path(work.id),:class => 'c_blue'
+ end
end
end
end
+
end
def student_anonymous_comment homework
diff --git a/app/models/project.rb b/app/models/project.rb
index 0cd6af35b..fcc96c404 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -91,8 +91,10 @@ class Project < ActiveRecord::Base
has_many :tags, :through => :project_tags, :class_name => 'Tag'
has_many :project_tags, :class_name => 'ProjectTags'
+ # 动态级联删除
+ has_many :forge_activities, :class_name => 'ForgeActivity', :dependent => :destroy
# 关联虚拟表
- has_many :forge_messages, :class_name =>'ForgeMessage', :as => :forge_message, :dependent => :destroy
+ has_many :forge_messages, :class_name =>'ForgeMessage', :as => :forge_message, :dependent => :destroy
belongs_to :organization
diff --git a/app/models/school.rb b/app/models/school.rb
index a180eefbe..6cafb0473 100644
--- a/app/models/school.rb
+++ b/app/models/school.rb
@@ -1,5 +1,5 @@
class School < ActiveRecord::Base
- attr_accessible :name, :province
+ attr_accessible :name, :province,:pinyin
has_many :courses
def to_s
diff --git a/app/views/boards/_project_show.html.erb b/app/views/boards/_project_show.html.erb
index 84e25974a..5f6275e9d 100644
--- a/app/views/boards/_project_show.html.erb
+++ b/app/views/boards/_project_show.html.erb
@@ -51,9 +51,9 @@
:data => {:confirm => l(:text_are_you_sure)},
:class => 'talk_edit fr',
:style => ' margin-right: 10px;') if topic.destroyable_by?(User.current) %>
- <%# if topic.sticky? %>
-
- <%# end %>
+ <% if topic.sticky? %>
+ <%= l(:label_board_sticky)%>
+ <% end %>