diff --git a/Gemfile b/Gemfile index 6e8a4dcdf..80c0e1c2a 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 935ca1d71..c98116806 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -612,43 +612,44 @@ class AdminController < ApplicationController end end - # 获取申请的高校列表 - # status: 0 未审批; 1 已批阅; + # 单位审核 + # 未审批tab页 + # status: 0 未审批; 1 已批阅; 2已更改; 3拒绝; def applied_schools @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 @apply_status = paginateHelper @apply_status, 30 - @page = (params['page'] || 1).to_i - 1 + respond_to do |format| format.html end end + # 单位审核 + # 已审批tab页 def has_applied_schools @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 @has_apply_status = paginateHelper @has_apply_status, 30 - @page = (params['page'] || 1).to_i - 1 + respond_to do |format| format.html end end - # 批准未审批的高校 + # 单位审核:批准 # 消息发送,发送对象为申请人 - # status: 0表示未批准; status:1表示已批准; status: 2表示已更改; status: 3表示已拒绝 + # status: 0表示未批准; status:1表示已批准; status: 2表示已更改; status: 3表示已拒绝; def approve_applied_schools applied_school = ApplyAddSchools.find params[:id] applied_school.update_column('status', 1) unless applied_school.nil? @@ -661,7 +662,7 @@ class AdminController < ApplicationController end end - # 更改申请的高校名称 + # 单位审核:更改 # REDO: 修改该字段 # REDO: 同步修改使用了改名称的用户单位 def edit_applied_schools @@ -676,7 +677,9 @@ class AdminController < ApplicationController users.each do |user| user.update_column("school_id", school[0].id) end - aas.school.destroy + if aas.school_id != school[0].id.to_i + aas.school.destroy + end aas.update_attribute(:school_id, school[0].id) rescue Exception => e puts e @@ -686,8 +689,9 @@ class AdminController < ApplicationController redirect_to unapplied_schools_url end + # 单位审核:更改功能搜索合法学校弹框 def all_schools - apply_schools = ApplyAddSchools.where("status != 1") + apply_schools = ApplyAddSchools.where("status = 0") apply_school_ids = apply_schools.empty? ? "(-1)" : "(" + apply_schools.map{|sc| sc.school_id}.join(',') + ")" if !params[:search].nil? search = "%#{params[:search].to_s.strip.downcase}%" @@ -704,22 +708,30 @@ class AdminController < ApplicationController end end - # 删除申请的高校 + # 单位审核:删除 # REDO: destroy关联删除 # REDO: 删除确认提示,是否删除 # REDO: 给申请人发送消息 def delete_applied_schools applied_school = ApplyAddSchools.find(params[:id]) applied_school.update_attribute(:status, 3) + # 未审批删除 + if params[:tip] == "unapplied" AppliedMessage.create(:user_id => applied_school.user_id, :status => 3, :viewed => true, :applied_id => applied_school.id, :applied_type => "ApplyAddSchools", :name => applied_school.name ) + # 删除学校的用户 users = UserExtensions.where("school_id = #{applied_school.school_id}") users.each do |user| user.update_column("school_id", nil) end - applied_school.school.destroy - if params[:tip] == "unapplied" + applied_school.school.destroy redirect_to unapplied_schools_url + # 已审批删除 elsif params[:tip] == "applied" + users = UserExtensions.where("school_id = #{applied_school.school_id}") + users.each do |user| + user.update_column("school_id", nil) + end + applied_school.destroy redirect_to applied_schools_url end end diff --git a/app/controllers/applied_project_controller.rb b/app/controllers/applied_project_controller.rb index 539a974c1..eb16549df 100644 --- a/app/controllers/applied_project_controller.rb +++ b/app/controllers/applied_project_controller.rb @@ -53,12 +53,14 @@ class AppliedProjectController < ApplicationController else @project = Project.find(params[:project_id]) end - if !@project || params[:invite_code].to_s != @project.invite_code + if !@project || params[:invite_code].upcase.to_s != @project.invite_code @flag = 1 elsif User.current.member_of?(@project) @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) diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 0a76cfb78..f14416442 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -75,13 +75,19 @@ class MembersController < ApplicationController project.members << members project.project_infos << project_info project.user_grades << user_grades unless user_grades.first.user_id.nil? - @applied_message.update_attribute(:status, 2) + + # 添加成功后所有管理员收到的消息状态都要更新 + applied_messages = AppliedMessage.where(:applied_id => @applied_message.applied_id, :project_id => @applied_message.project_id, :status => 1, + :applied_type => "AppliedProject") + applied_messages.update_all(:status => 7, :viewed => true) + @applied_message = AppliedMessage.find(params[:applied_message_id]) # 添加成功后,申请人收到消息 AppliedMessage.create(:user_id => @applied_message.applied_user_id, :applied_type => "AppliedProject", :applied_id => applied_project.id , - :status => 6, :viewed => true, :applied_user_id => @applied_message.user_id, :role => applied_project.role, :project_id => applied_project.project_id) + :status => 6, :viewed => false, :applied_user_id => @applied_message.user_id, :role => applied_project.role, :project_id => applied_project.project_id) + # 添加成功后,批准人收到消息 - AppliedMessage.create(:user_id => @applied_message.user_id, :applied_type => "AppliedProject", :applied_id => applied_project.id , - :status => 7, :viewed => true, :applied_user_id => @applied_message.applied_user_id, :role => applied_project.role, :project_id => applied_project.project_id) + # AppliedMessage.create(:user_id => @applied_message.user_id, :applied_type => "AppliedProject", :applied_id => applied_project.id , + # :status => 7, :viewed => true, :applied_user_id => @applied_message.applied_user_id, :role => applied_project.role, :project_id => applied_project.project_id) rescue Exception => e puts e end @@ -95,14 +101,19 @@ class MembersController < ApplicationController # status(1:申请的消息;2:已操作过该消息(包括同意或者拒绝,消息状态更新);3:拒绝消息;4:被拒人收到消息;5:拒绝者收到消息;6:同意后申请人收到消息;7:同意后批准人收到消息) def refused_allow_to_join_project @applied_message = AppliedMessage.find(params[:applied_message_id]) - @applied_message.update_attribute(:status, 3) + # @applied_message.update_attribute(:status, 3) applied_project = @applied_message.applied # 发送消息给被拒者,user_id对应的收到信息的用户 AppliedMessage.create(:user_id => @applied_message.applied_user_id, :applied_type => "AppliedProject", :applied_id => applied_project.id ,:status => 4, - :viewed => true, :applied_user_id => @applied_message.user_id, :role => applied_project.role, :project_id => applied_project.project_id) - # 发送消息给拒绝者 - AppliedMessage.create(:user_id => @applied_message.user_id, :applied_type => "AppliedProject", :applied_id => applied_project.id ,:status => 5, - :viewed => true, :applied_user_id => @applied_message.applied_user_id, :role => applied_project.role, :project_id => applied_project.project_id) + :viewed => false, :applied_user_id => @applied_message.user_id, :role => applied_project.role, :project_id => applied_project.project_id) + + # 拒绝功后所有管理员收到的消息状态都要更新 + applied_messages = AppliedMessage.where(:applied_id => @applied_message.applied_id, :project_id => @applied_message.project_id, :status => 1, + :applied_type => "AppliedProject") + applied_messages.update_all(:status => 5, :viewed => true) + @applied_message = AppliedMessage.find(params[:applied_message_id]) + # AppliedMessage.create(:user_id => @applied_message.user_id, :applied_type => "AppliedProject", :applied_id => applied_project.id ,:status => 5, + # :viewed => true, :applied_user_id => @applied_message.applied_user_id, :role => applied_project.role, :project_id => applied_project.project_id) applied_project.delete end diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb index 76d149f94..98d814137 100644 --- a/app/controllers/school_controller.rb +++ b/app/controllers/school_controller.rb @@ -191,7 +191,7 @@ class SchoolController < ApplicationController # 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 ) + AppliedMessage.create(:user_id => user.id, :status => 0, :applied_user_id => User.current.id, :viewed => true, :applied_id => school.id, :applied_type => "ApplyAddSchools", :name => school.name ) end else data[:result] = 3 diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 91743289a..1bb76b6fd 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -80,6 +80,19 @@ module UsersHelper # end end + def applied_project_status applied_message + case applied_message.status + when 4 + "被拒绝" + when 5 + "您已拒绝" + when 6 + "已通过" + when 7 + "您已同意" + end + end + # 项目申请消息通过状态判断tip描述 def applied_project_tip applied_message case applied_message.status @@ -92,6 +105,18 @@ module UsersHelper end end + def applied_project_tip_header applied_message + case applied_message.status + when 4 + "婉拒您" + when 5,3,2,1,7 + "申请:" + when 6 + "同意您" + end + end + + def get_resource_origin attach type = attach.container_type content = attach.container diff --git a/app/models/apply_add_schools.rb b/app/models/apply_add_schools.rb index 573a494ef..60c2c404f 100644 --- a/app/models/apply_add_schools.rb +++ b/app/models/apply_add_schools.rb @@ -4,13 +4,5 @@ class ApplyAddSchools < ActiveRecord::Base has_many :applied_messages, :class_name =>'AppliedMessage', :as => :applied belongs_to :school - after_create :send_massage - - #给系统所有管理发送消息 - def send_massage - users = User.where(:admin => 1) - users.each do |user| - self.applied_messages << AppliedMessage.new(:user_id => user.id, :viewed => false, :status => false) - end - end + #after_create :send_massage end diff --git a/app/views/admin/applied_schools.html.erb b/app/views/admin/applied_schools.html.erb index 2f139ca72..19700c2c6 100644 --- a/app/views/admin/applied_schools.html.erb +++ b/app/views/admin/applied_schools.html.erb @@ -29,7 +29,7 @@ 申请者 - + 地区 @@ -55,7 +55,7 @@ <%= apply.name %> - + <% user = User.where("id=?", apply.user_id).first %> @@ -67,7 +67,7 @@ <%= (apply.province.nil? ? "" : apply.province) + (apply.city.nil? ? "" : apply.city) %> - @@ -104,7 +104,7 @@ - + <%= apply.address %> diff --git a/app/views/admin/has_applied_schools.html.erb b/app/views/admin/has_applied_schools.html.erb index 5be3517c8..535e2fe3f 100644 --- a/app/views/admin/has_applied_schools.html.erb +++ b/app/views/admin/has_applied_schools.html.erb @@ -26,7 +26,7 @@ 单位名称 - + 申请者 @@ -59,8 +59,8 @@ <% unless apply.school_id.nil? %> <% school_name = School.where("id=?", apply.school_id).first %> - <%= school_name %> - + <%= school_name.name %> + <% end %> @@ -73,7 +73,7 @@ <%= (apply.province.nil? ? "" : apply.province) + (apply.city.nil? ? "" : apply.city) %> - @@ -110,7 +110,7 @@ - + <%= apply.address %> diff --git a/app/views/applied_project/_applied_project_tip.js.erb b/app/views/applied_project/_applied_project_tip.js.erb index 56e5270d6..c2bc555db 100644 --- a/app/views/applied_project/_applied_project_tip.js.erb +++ b/app/views/applied_project/_applied_project_tip.js.erb @@ -15,6 +15,8 @@

请选择一个角色

<% elsif @flag == 4 %>

您的申请已提交,请等待项目管理员审批

+ <% elsif @flag == 5 %> +

您已经申请加入该项目了,请耐心等待

<% end %>
  • diff --git a/app/views/layouts/_show_messages_list.html.erb b/app/views/layouts/_show_messages_list.html.erb index 0829b9c42..a30d86d07 100644 --- a/app/views/layouts/_show_messages_list.html.erb +++ b/app/views/layouts/_show_messages_list.html.erb @@ -88,6 +88,13 @@ <% elsif ma.course_message_type == "Exercise" && ma.status == 3 %>
  • <%=ma.course_message.user.show_name %>老师 发布的测验:<%=ma.course_message.exercise_name %> 截止时间快到了
  • <% end %> + <% elsif ma.class == AppliedMessage %> + <% if ma.applied_type == "AppliedProject" %> +
  • <%=link_to "#{applied_project_users(ma)}".html_safe, user_path(applied_project_users(ma)), :target => '_blank' %> + <%= applied_project_tip_header(ma) %>以“<%= applied_project_message_type(ma.role) %>”身份加入<% project = Project.find(ma.project_id) %> + <%= link_to project.name, project_path(ma.project_id), :class => "link-blue", :target => '_blank', :title => "#{project.name}" %> + + <% end %> <% elsif ma.class == ForgeMessage %> <% if ma.forge_message_type == "AppliedProject" %>
  • " target="_blank" title="<%=ma.forge_message.user.show_name %> 申请加入项目:<%= ma.project.name%>"><%=ma.forge_message.user.show_name %> 申请加入项目:<%= ma.project.name%>
  • diff --git a/app/views/members/allow_to_join_project.js.erb b/app/views/members/allow_to_join_project.js.erb index cbd37e188..222511942 100644 --- a/app/views/members/allow_to_join_project.js.erb +++ b/app/views/members/allow_to_join_project.js.erb @@ -1,5 +1,5 @@ <% if @flash_message %> alert("<%= @flash_message %>"); <% else%> - $("#applied_project_<%= @applied_message.id %>").html('<%= render :partial => "users/user_message_applide_action", :locals =>{:ma => @applied_message} %>'); + $("#applied_project_<%= @applied_message.id %>").html('<%= escape_javascript(render :partial => 'users/applied_project_content', :locals => {:ma => @applied_message}) %>'); <% end%> diff --git a/app/views/members/refused_allow_to_join_project.js.erb b/app/views/members/refused_allow_to_join_project.js.erb index 109ed3a62..57211334f 100644 --- a/app/views/members/refused_allow_to_join_project.js.erb +++ b/app/views/members/refused_allow_to_join_project.js.erb @@ -1 +1 @@ -$("#applied_project_<%= @applied_message.id %>").html('<%= render :partial => "users/user_message_applide_action", :locals =>{:ma => @applied_message} %>'); \ No newline at end of file +$("#applied_project_<%= @applied_message.id %>").html('<%= escape_javascript(render :partial => 'users/applied_project_content', :locals => {:ma => @applied_message}) %>'); \ No newline at end of file diff --git a/app/views/users/_applied_project_content.html.erb b/app/views/users/_applied_project_content.html.erb new file mode 100644 index 000000000..2d9c7b109 --- /dev/null +++ b/app/views/users/_applied_project_content.html.erb @@ -0,0 +1,15 @@ +
  • + <%=link_to image_tag(url_to_avatar(applied_project_users(ma)), :width => "30", :height => "30"), user_path(applied_project_users(ma)), :target => '_blank' %> +
  • +
  • + <%= render :partial => "users/user_message_applide_users", :locals =>{:ma => ma} %> +
  • +
  • + 以“<%= applied_project_message_type(ma.role) %>”身份加入<% project = Project.find(ma.project_id) %> + <%= link_to project.name, project_path(ma.project_id), :class => "link-blue", :target => '_blank', :title => "#{project.name}" %> + +
  • +
  • + <%= render :partial => "users/user_message_applide_action", :locals =>{:ma => ma} %> +
  • +
  • <%= time_tag(ma.created_at).html_safe %>
  • \ No newline at end of file diff --git a/app/views/users/_user_message_applide_action.html.erb b/app/views/users/_user_message_applide_action.html.erb index 48e479b22..a8b5598fa 100644 --- a/app/views/users/_user_message_applide_action.html.erb +++ b/app/views/users/_user_message_applide_action.html.erb @@ -1,3 +1,4 @@ +<% ma = ma.nil? ? @applied_message : ma %> <% if allow_to_show(ma) %> <%= link_to "同意", allow_to_join_project_project_memberships_path(:project_id => ma.project_id, :applied_message_id => ma.id), :remote => true, :method => :post, :class => "link-blue"%> | <%= link_to "拒绝", refused_allow_to_join_project_project_memberships_path(:project_id => ma.project_id, :applied_message_id => ma.id), :remote => true, :method => :get, :class => "link-blue" %> diff --git a/app/views/users/_user_message_applied.html.erb b/app/views/users/_user_message_applied.html.erb index e543f6cee..6d853f01c 100644 --- a/app/views/users/_user_message_applied.html.erb +++ b/app/views/users/_user_message_applied.html.erb @@ -1,13 +1,13 @@ <% if ma.class == AppliedMessage %> <% if ma.applied_type == "ApplyAddSchools" %> - <% if ma.status == 1 || ma.status == 2 || ma.status == 3 || ma.status == 4 %> + <% if ma.status == 1 || ma.status == 2 || ma.status == 3 || ma.status == 0 %> <% end %> <% elsif ma && ma.applied_type == "AppliedProject" %> -