diff --git a/Gemfile b/Gemfile index 6e8a4dcdf..1c1edfd35 100644 --- a/Gemfile +++ b/Gemfile @@ -50,10 +50,10 @@ gem 'elasticsearch-model' gem 'elasticsearch-rails' #rails 3.2.22.2 bug -gem "test-unit", "~>3.0" +gem "test-unit", "~>3.0" ### profile -# gem 'oneapm_rpm' +gem 'oneapm_rpm' group :development do gem 'grape-swagger' diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 397235f4b..935ca1d71 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -154,6 +154,19 @@ class AdminController < ApplicationController end end + # 单位名称列表下的已审批按照名字排序 + def apply_shcool_sort + @order = "" + @sort = "" + if params[:sort] && (params[:order] == 'name') + # courses = School.find_by_sql("SELECT c.*,count(c.id) FROM courses c,course_activities ca WHERE c.id = ca.course_id AND c.name like '%#{name}%' GROUP BY c.id ORDER BY count(c.id) #{params[:sort]}, c.id desc") + school = School.find_by_sql(" SELECT aas.name FROM apply_add_schools aas where aas.status = '0' ORDER BY CONVERT(aas.name USING gbk) #{params[:sort]}, aas.id asc ") + @order = params[:order] + @sort = params[:sort] + end + redirect_to unapplied_schools_url + end + #精品课程下的全部课程 def excellent_all_courses name = params[:name] @@ -602,8 +615,10 @@ class AdminController < ApplicationController # 获取申请的高校列表 # status: 0 未审批; 1 已批阅; def applied_schools - @name = params[:name] - @apply_status = ApplyAddSchools.where(:status => 0).order('created_at desc') + @name = params[:name] || "" + condition = "#{@name.strip}".gsub(" ","") + + @apply_status = ApplyAddSchools.where("status = 0 and name like '%#{condition}%'").order('created_at desc') @apply_count = @apply_status.count @apply_pages = Paginator.new @apply_count, 30, params['page'] || 1 @@ -616,8 +631,10 @@ class AdminController < ApplicationController end def has_applied_schools - @name = params[:name] - @has_apply_status = ApplyAddSchools.where("status = 1 or status = 2").order('created_at desc') + @name = params[:name] || "" + condition = "#{@name.strip}".gsub(" ","") + + @has_apply_status = ApplyAddSchools.where("(status = 1 or status = 2) and name like '%#{condition}%'").order('created_at desc') @has_apply_count = @has_apply_status.count @has_apply_pages = Paginator.new @has_apply_count, 30, params['page'] || 1 @@ -700,8 +717,10 @@ class AdminController < ApplicationController user.update_column("school_id", nil) end applied_school.school.destroy - respond_to do |format| - format.html{ redirect_to unapplied_schools_url } + if params[:tip] == "unapplied" + redirect_to unapplied_schools_url + elsif params[:tip] == "applied" + redirect_to applied_schools_url end end diff --git a/app/controllers/applied_project_controller.rb b/app/controllers/applied_project_controller.rb index d779c7759..883fd1c68 100644 --- a/app/controllers/applied_project_controller.rb +++ b/app/controllers/applied_project_controller.rb @@ -59,12 +59,14 @@ class AppliedProjectController < ApplicationController @flag = 2 elsif params[:member].nil? @flag = 3 + elsif !AppliedProject.where(:project_id => @project.id, :user_id => User.current.id).first.nil? + @flag = 5 else @flag = 4 - role = params[:member] == "member_manager" ? 3 : (params[:member] = "member_developer" ? 4 :5) + role = params[:member] == "member_manager" ? 3 : (params[:member] == "member_developer" ? 4 :5) applied_project = AppliedProject.create(:user_id => User.current.id, :project_id => @project.id, :role => role) # 申请成功则给项目管理员发送邮件及发送消息 - Mailer.run.applied_project(applied_project) + # Mailer.run.applied_project(applied_project) end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index f135c8ab2..5dcf493ee 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -792,6 +792,11 @@ class ProjectsController < ApplicationController members = Member.where(:user_id => User.current.id, :project_id=>params[:id]).first if members != nil && members.roles.first.to_s != "Manager" members.destroy + # 移出的时候删除申请消息,不需要删除消息,所以不必要关联删除 + applied_projects = AppliedProject.where(:project_id => @project.id, :user_id => members.user_id).first + unless applied_projects.nil? + applied_projects.delete + end end respond_to do |format| format.js diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb index dd3169905..76d149f94 100644 --- a/app/controllers/school_controller.rb +++ b/app/controllers/school_controller.rb @@ -184,6 +184,15 @@ class SchoolController < ApplicationController applyschool.user_id = User.current.id if applyschool.save data[:school_id] = school.id + user_extention= User.current.extensions + user_extention.school_id = school.id + user_extention.save! + + # status=4 向管理员发送信息 + users = User.where(:admin => 1) + users.each do |user| + AppliedMessage.create(:user_id => user.id, :status => 4, :applied_user_id => User.current.id, :viewed => true, :applied_id => school.id, :applied_type => "ApplyAddSchools", :name => school.name ) + end else data[:result] = 3 end @@ -207,4 +216,69 @@ class SchoolController < ApplicationController render :json =>status end + + def edit_apply_name + name = params[:name] || "" + status = -1 + + if name != "" + applyschool = ApplyAddSchools.where("id=?",params[:id]).first + + applyschool.name = name.strip + + if applyschool.school + applyschool.school.name = name + applyschool.school.pinyin = Pinyin.t(name.strip, splitter: '') + applyschool.school.save! + end + applyschool.save! + status = 0 + end + + render :json=>{:status=>status,:id=>params[:id],:name=>name} + end + + def edit_apply_address + address = params[:address] || "" + + status = -1 + + if address != "" + applyschool = ApplyAddSchools.where("id=?",params[:id]).first + applyschool.address = address + applyschool.save! + status = 0 + end + + render :json=>{:status=>status,:id=>params[:id],:address=>address} + end + + def edit_apply_province + province = params[:province] || "" + city = params[:city] || "" + status = -1 + + if(province != "") &&(city != "") + applyschool = ApplyAddSchools.where("id=?",params[:id]).first + applyschool.province = province + applyschool.city = city + + if applyschool.school + applyschool.school.province = province + applyschool.school.save! + end + applyschool.save! + + if applyschool.user_id && applyschool.user_id != 0 + user = User.find(applyschool.user_id) + user_extention= user.extensions + user_extention.location = province + user_extention.location_city = city + user_extention.save! + end + status = 0 + end + + render :json=>{:status=>status,:id=>params[:id],:province=>province,:city=>city} + end end diff --git a/app/models/applied_message.rb b/app/models/applied_message.rb index ee22f21c8..cbba74f95 100644 --- a/app/models/applied_message.rb +++ b/app/models/applied_message.rb @@ -1,6 +1,7 @@ class AppliedMessage < ActiveRecord::Base # status: 0表示未批准; status:1表示已批准; status: 2表示已拒绝 - attr_accessible :applied_id, :applied_type, :status, :user_id, :viewed, :applied_user_id, :role, :project_id + + attr_accessible :applied_id, :applied_type, :status, :user_id, :viewed, :applied_user_id, :role, :project_id, :name belongs_to :applied ,:polymorphic => true belongs_to :apply_add_schools belongs_to :user diff --git a/app/models/user.rb b/app/models/user.rb index 0ce0e25a0..a4b7f3b25 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -42,12 +42,12 @@ class User < Principal # Different ways of displaying/sorting users USER_FORMATS = { :firstname_lastname => { - :string => '#{firstname} #{lastname}', + :string => '#{firstname}#{lastname}', :order => %w(firstname lastname id), :setting_order => 1 }, :firstname_lastinitial => { - :string => '#{firstname} #{lastname.to_s.chars.first}.', + :string => '#{firstname}#{lastname.to_s.chars.first}.', :order => %w(firstname lastname id), :setting_order => 2 }, @@ -57,7 +57,7 @@ class User < Principal :setting_order => 3 }, :lastname_firstname => { - :string => '#{lastname} #{firstname}', + :string => '#{lastname}#{firstname}', :order => %w(lastname firstname id), :setting_order => 4 }, diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index f60021e71..ce3157d5f 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -399,6 +399,8 @@ class CoursesService if course if course_endTime_timeout? course @state = 2 + elsif course[:is_delete] == 1 + @state = 11 else if current_user.member_of_course?(course) #如果已经是成员 @state = 3 diff --git a/app/views/admin/_all_schools.html.erb b/app/views/admin/_all_schools.html.erb index 0ecb38544..d4cf916f5 100644 --- a/app/views/admin/_all_schools.html.erb +++ b/app/views/admin/_all_schools.html.erb @@ -1,5 +1,4 @@ <%= stylesheet_link_tag 'css/common','css/popup' %> -
请选择一个角色
<% elsif @flag == 4 %>您的申请已提交,请等待项目管理员审批
+ <% elsif @flag == 5 %> +您已经申请加入该项目了,请耐心等待
<% end %>- <%=link_to @course.syllabus.title, syllabus_path(@course.syllabus_id), :class => 'sy_cgrey' %> - > + <% if @course.syllabus %> + <%=link_to @course.syllabus.title, syllabus_path(@course.syllabus_id), :class => 'sy_cgrey' %> + > + <% end %> <%=link_to @course.name, course_path(@course), :class => 'sy_cgrey' %>
@@ -61,9 +63,9 @@ <% is_TE = get_user_member_roles_course @course, User.current, 9 %> <% is_ST = get_user_member_roles_course @course, User.current, 10 %> <% if !is_teacher && (is_TA || is_TE) %> - <%= link_to '教师身份', switch_role_course_path(@course, :user_id => User.current.id, :curr_role => 10, :tar_role => (is_TA ? 7 : 9)), :class => "sy_btn_orange mr10 fl" %> + <%= link_to '教师身份', switch_role_course_path(@course, :user_id => User.current.id, :curr_role => 10, :tar_role => (is_TA ? 7 : 9)), :class => "sy_btn_orange mr10 fl", :title => "由学生身份切换至教师身份" %> <% elsif is_teacher && is_ST %> - <%= link_to '学生身份', switch_role_course_path(@course, :user_id => User.current.id, :curr_role => (is_TA ? 7 : 9), :tar_role => 10), :class => "sy_btn_orange mr10 fl" %> + <%= link_to '学生身份', switch_role_course_path(@course, :user_id => User.current.id, :curr_role => (is_TA ? 7 : 9), :tar_role => 10), :class => "sy_btn_orange mr10 fl", :title => "由教师身份切换至学生身份" %> <% end %> <% unless (is_teacher || is_TA || is_TE) %>