diff --git a/app/controllers/forks_controller.rb b/app/controllers/forks_controller.rb index cb18091c..b41dc2d7 100644 --- a/app/controllers/forks_controller.rb +++ b/app/controllers/forks_controller.rb @@ -5,6 +5,14 @@ class ForksController < ApplicationController def create @new_project = Projects::ForkService.new(current_user, @project, params[:organization]).call + + # TODO: fix Educoder shixun + if @new_project.persisted? + ProjectScore.create(:project_id => @new_project.id, :score => 0) if @new_project.project_score.nil? + + project_info = ProjectInfo.new(:user_id => current_user.id, :project_id => @new_project.id) + @project.project_infos << project_info + end end private diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 1fd858be..ae3715e1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -11,14 +11,14 @@ class ProjectsController < ApplicationController menu = [] menu.append(menu_hash_by_name("home")) - menu.append(menu_hash_by_name("code")) + menu.append(menu_hash_by_name("code")) menu.append(menu_hash_by_name("issues")) if @project.has_menu_permission("issues") menu.append(menu_hash_by_name("pulls")) if @project.has_menu_permission("pulls") menu.append(menu_hash_by_name("devops")) if @project.has_menu_permission("devops") menu.append(menu_hash_by_name("versions")) if @project.has_menu_permission("versions") menu.append(menu_hash_by_name("activity")) menu.append(menu_hash_by_name("setting")) if current_user.admin? || @project.owner?(current_user) - + render json: menu end @@ -44,6 +44,13 @@ class ProjectsController < ApplicationController Projects::CreateForm.new(project_params).validate! @project = Projects::CreateService.new(current_user, project_params).call + # TODO: fix Educoder shixun + if @project.persisted? + ProjectScore.create(:project_id => @project.id, :score => 0) if @project.project_score.nil? + + project_info = ProjectInfo.new(:user_id => current_user.id, :project_id => @project.id) + @project.project_infos << project_info + end end rescue Exception => e uid_logger_error(e.message) diff --git a/app/models/project_info.rb b/app/models/project_info.rb new file mode 100644 index 00000000..bd6c8655 --- /dev/null +++ b/app/models/project_info.rb @@ -0,0 +1,8 @@ +class ProjectInfo < ActiveRecord::Base + + belongs_to :project + belongs_to :user + validates_presence_of :project_id, :user_id + validates_uniqueness_of :project_id, :scope => :user_id + +end