You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

applied_project_controller.rb 4.3 kB

​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. class AppliedProjectController < ApplicationController
  2. helper :watchers
  3. #申请加入项目
  4. def applied_join_project
  5. if params[:object_id]
  6. @project = Project.find_by_id(params[:object_id])
  7. end
  8. if params[:is_teacher]
  9. @is_teacher = 1
  10. end
  11. # @user_id = params[:user_id]
  12. # if params[:project_join]
  13. # if @project
  14. # user = User.find @user_id
  15. # if user.member_of?(@project)
  16. # @status = 3
  17. # else
  18. # @applieds = AppliedProject.where("user_id = ? and project_id = ?", params[:user_id],params[:project_id])
  19. # if @applieds.count == 0
  20. # appliedproject = AppliedProject.create(:user_id => params[:user_id], :project_id => params[:project_id])
  21. # Mailer.run.applied_project(appliedproject)
  22. # @status = 2
  23. # else
  24. # @status = 1
  25. # end
  26. # end
  27. # else
  28. # @status = 0
  29. # end
  30. # respond_to do |format|
  31. # format.js
  32. # end
  33. # return
  34. # end
  35. #
  36. # @applieds = AppliedProject.where("user_id = ? and project_id = ?", params[:user_id],params[:project_id])
  37. # if @applieds.count == 0
  38. # appliedproject = AppliedProject.create(:user_id => params[:user_id], :project_id => params[:project_id])
  39. # Mailer.run.applied_project(appliedproject)
  40. # end
  41. #
  42. # #redirect_to project_path(params[:project_id])
  43. # #redirect_to_referer_or {render :text => ( 'applied success.'), :layout => true}
  44. # respond_to do |format|
  45. # format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
  46. # format.js { render :partial => 'set_applied'}
  47. # end
  48. end
  49. # @flage:提示语标志(1:邀请码错误;2:已经是项目成员; 3:角色没有选择; 4:申请成功)
  50. # role:成员角色 => 0(3:管理人员;4:开发人员;5:报告人员)
  51. # 申请成功则发送消息
  52. def applied_project_info
  53. if params[:project_id].nil?
  54. @project = Project.where(:invite_code => params[:invite_code]).first
  55. else
  56. @project = Project.find(params[:project_id])
  57. end
  58. if !@project || params[:invite_code].strip.upcase.to_s != @project.invite_code
  59. @flag = 1
  60. elsif User.current.member_of?(@project)
  61. @flag = 2
  62. elsif params[:member].nil?
  63. @flag = 3
  64. elsif !AppliedProject.where(:project_id => @project.id, :user_id => User.current.id).first.nil?
  65. @flag = 5
  66. elsif params[:member] == "member_reporter" && params[:invite_code].upcase.to_s == @project.invite_code
  67. # 项目报告人员直接加入项目
  68. @flag = 6
  69. members = []
  70. user_grades = []
  71. project_info = []
  72. members << Member.new(:role_ids => ["5"], :user_id => User.current.id)
  73. user_grades << UserGrade.new(:user_id => User.current.id, :project_id => @project.id)
  74. role = Role.find(5)
  75. project_info << ProjectInfo.new(:project_id => @project.id, :user_id => User.current.id) if role.allowed_to?(:is_manager)
  76. @project.members << members
  77. @project.project_infos << project_info
  78. @project.user_grades << user_grades unless user_grades.first.user_id.nil?
  79. ps = ProjectsService.new
  80. ps.send_wechat_join_project_notice User.current,@project,5,0
  81. else
  82. @flag = 4
  83. role = params[:member] == "member_manager" ? 3 : (params[:member] == "member_developer" ? 4 :5)
  84. applied_project = AppliedProject.create(:user_id => User.current.id, :project_id => @project.id, :role => role)
  85. # 申请成功则给项目管理员发送邮件及发送消息
  86. # Mailer.run.applied_project(applied_project)
  87. end
  88. end
  89. #取消申请
  90. def unapplied_join_project
  91. @project = Project.find(params[:project_id])
  92. #@applied = AppliedProject.find(params[:id])
  93. #@applied.destroy
  94. AppliedProject.deleteappiled(params[:user_id], params[:project_id])
  95. respond_to do |format|
  96. format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
  97. format.js { render :partial => 'set_applied' }
  98. end
  99. end
  100. end

软件技术创新是当今国家整体创新能力的重要基础和发展引擎。近年来,大众参与的软件创新与创业活动已经成为网络时代软件开发和应用的新形态,正在快速改变着全球软件创新模式和软件产业格局。 ...