diff --git a/app/models/project.rb b/app/models/project.rb index fa3b72803..26d588a7b 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -107,4 +107,16 @@ class Project < ApplicationRecord Project.where.not(id: (user_not_show_1 - user_show_2).uniq) end + def members_count + members.select(:id).size + end + + def issues_count + issues.select(:id).size + end + + def can_visited? + is_public? || User.current.admin? || member?(User.current) + end + end diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index c04646f4f..07c6b4359 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -17,7 +17,7 @@ class Projects::ListMyQuery < ApplicationQuery else projects = Project.where(user_id: params[:user_id]) end - scope = projects.includes(:project_category, :project_language, :repository, owner: :user_extension).like(params[:search]) + scope = projects.includes(:members,:issues,owner: :user_extension).like(params[:search]) .with_project_type(params[:project_type]) .with_project_category(params[:category_id]) .with_project_language(params[:language_id]) diff --git a/app/views/users/projects.json.jbuilder b/app/views/users/projects.json.jbuilder index 1b9bc84dc..3e472ff06 100644 --- a/app/views/users/projects.json.jbuilder +++ b/app/views/users/projects.json.jbuilder @@ -1,27 +1,36 @@ -json.total_count @total_count +json.count @total_count json.projects do json.array! @projects do |project| - json.partial! '/projects/project', project: project - json.author do - json.name project.owner.login - json.login project.owner.login - json.image_url url_to_avatar(project.owner) - end - json.category do - if project.project_category.blank? - json.nil! - else - json.id project.project_category.id - json.name project.project_category.name - end - end - json.language do - if project.project_language.blank? - json.nil! - else - json.id project.project_language.id - json.name project.project_language.name - end + user = project.owner + json.members_count project.members_count + json.issues_count project.issues_count + json.changesets_count project&.project_score&.changeset_num.to_i + json.can_visited project.can_visited? + json.id project.id + json.identifier project.identifier + json.name project.name + json.is_public project.is_public + json.owner do + json.id user.id + json.real_name user.real_name + json.avatar_url url_to_avatar(user) + json.school_name user.school_name end + # json.category do + # if project.project_category.blank? + # json.nil! + # else + # json.id project.project_category.id + # json.name project.project_category.name + # end + # end + # json.language do + # if project.project_language.blank? + # json.nil! + # else + # json.id project.project_language.id + # json.name project.project_language.name + # end + # end end end