Update projects sime api with statics
This commit is contained in:
parent
ca3b5f4284
commit
e3d9dae8fd
|
@ -6,12 +6,8 @@ class ProjectCategoriesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def group_list
|
def group_list
|
||||||
# if current_user&.logged?
|
@project_categories = ProjectCategory.where('projects_count > 0')
|
||||||
# projects = Project.list_user_projects(current_user.id)
|
# projects = Project.no_anomory_projects.visible
|
||||||
# else
|
# @category_group_list = projects.joins(:project_category).group("project_categories.id", "project_categories.name").size
|
||||||
# projects = Project.visible
|
|
||||||
# end
|
|
||||||
projects = Project.no_anomory_projects.visible
|
|
||||||
@category_group_list = projects.joins(:project_category).group("project_categories.id", "project_categories.name").size
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -38,13 +38,23 @@ class ProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def group_type_list
|
def group_type_list
|
||||||
# if current_user&.logged?
|
project_statics = ProjectStatistic.first
|
||||||
# projects = Project.list_user_projects(current_user.id)
|
|
||||||
# else
|
@project_statics_list = [
|
||||||
# projects = Project.visible
|
{
|
||||||
# end
|
project_type: 'common',
|
||||||
projects = Project.no_anomory_projects.visible
|
name: '开源托管项目',
|
||||||
@project_group_list = projects.group(:project_type).size
|
projects_count: project_statics&.common_projects_count || 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
project_type: 'mirror',
|
||||||
|
name: '开源镜像项目',
|
||||||
|
projects_count: project_statics&.mirror_projects_count || 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
# projects = Project.no_anomory_projects.visible
|
||||||
|
# @project_group_list = projects.group(:project_type).size
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
|
|
@ -193,4 +193,15 @@ class Project < ApplicationRecord
|
||||||
update_column(:open_devops, true)
|
update_column(:open_devops, true)
|
||||||
increment!(:open_devops_count)
|
increment!(:open_devops_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.update_common_projects_count!
|
||||||
|
ps = ProjectStatistic.first
|
||||||
|
ps.increment!(:common_projects_count) unless ps.blank?
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.update_mirror_projects_count!
|
||||||
|
ps = ProjectStatistic.first
|
||||||
|
ps.increment!(:mirror_projects_count) unless ps.blank?
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
class ProjectStatistic < ApplicationRecord
|
||||||
|
end
|
|
@ -12,6 +12,7 @@ class Projects::CreateService < ApplicationService
|
||||||
@project = Project.new(project_params)
|
@project = Project.new(project_params)
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
if @project.save!
|
if @project.save!
|
||||||
|
Project.update_common_projects_count!
|
||||||
Repositories::CreateService.new(user, @project, repository_params).call
|
Repositories::CreateService.new(user, @project, repository_params).call
|
||||||
else
|
else
|
||||||
Rails.logger.info("#############___________create_project_erros______###########{@project.errors.messages}")
|
Rails.logger.info("#############___________create_project_erros______###########{@project.errors.messages}")
|
||||||
|
|
|
@ -9,6 +9,7 @@ class Projects::MigrateService < ApplicationService
|
||||||
def call
|
def call
|
||||||
@project = Project.new(project_params)
|
@project = Project.new(project_params)
|
||||||
if @project.save!
|
if @project.save!
|
||||||
|
Project.update_mirror_projects_count!
|
||||||
Repositories::MigrateService.new(user, @project, repository_params).call
|
Repositories::MigrateService.new(user, @project, repository_params).call
|
||||||
else
|
else
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
json.array! @category_group_list do |category,v|
|
json.array! @project_categories do |category|
|
||||||
json.id category[0]
|
json.id category.id
|
||||||
json.name category[1]
|
json.name category.name
|
||||||
json.projects_count v
|
json.projects_count category.projects_count
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
json.array! @project_group_list do |type,v|
|
json.array! @project_statics_list do |static|
|
||||||
json.project_type type
|
json.project_type static[:project_type]
|
||||||
json.name render_zh_project_type(type)
|
json.name static[:name]
|
||||||
json.projects_count v
|
json.projects_count static[:projects_count]
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
class CreateProjectStatistics < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
create_table :project_statistics do |t|
|
||||||
|
t.integer :common_projects_count, :default => 0
|
||||||
|
t.integer :mirror_projects_count, :default => 0
|
||||||
|
t.integer :sync_mirror_projects_count, :default => 0
|
||||||
|
t.integer :commits_total_count, :default => 0
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddIndexForProjectTypeToProjects < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
add_index :projects, :project_type
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue