From 15f9004f63989acc247b238d09804e20b94d72b7 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 10:50:47 +0800 Subject: [PATCH 1/4] add: edit permit website --- app/views/repositories/edit.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/repositories/edit.json.jbuilder b/app/views/repositories/edit.json.jbuilder index aea21f7b6..328bc4900 100644 --- a/app/views/repositories/edit.json.jbuilder +++ b/app/views/repositories/edit.json.jbuilder @@ -5,4 +5,5 @@ json.project_description @project.description json.project_category_id @project.project_category_id json.project_language_id @project.project_language_id json.private !@project.is_public +json.website @project.website json.project_units @project.project_units.pluck(:unit_type) \ No newline at end of file From 9ee42e805bf6f1e99420c21e231c3877c5878c7b Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 13:50:17 +0800 Subject: [PATCH 2/4] fix: update error --- app/controllers/projects_controller.rb | 11 ++++++----- app/views/projects/update.json.jbuilder | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 1fd858be5..c073d5846 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -85,18 +85,19 @@ class ProjectsController < ApplicationController def update ActiveRecord::Base.transaction do # Projects::CreateForm.new(project_params).validate! - private = params[:private] + private = params[:private] || false + + new_project_params = project_params.except(:private).merge(is_public: !private) + @project.update_attributes!(new_project_params) gitea_params = { private: private, - default_branch: params[:default_branch], - website: params[:website] + default_branch: @project.default_branch, + website: @project.website } if [true, false].include? private - new_project_params = project_params.except(:private).merge(is_public: !private) Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) @project.repository.update_column(:hidden, private) end - @project.update_attributes!(new_project_params) end rescue Exception => e uid_logger_error(e.message) diff --git a/app/views/projects/update.json.jbuilder b/app/views/projects/update.json.jbuilder index 20fa3e07d..ef09d5d85 100644 --- a/app/views/projects/update.json.jbuilder +++ b/app/views/projects/update.json.jbuilder @@ -5,3 +5,4 @@ json.description @project.description json.project_category_id @project.project_category_id json.project_language_id @project.project_language_id json.is_public @project.is_public +json.website @project.website \ No newline at end of file From 66608b3baac32d05e7584d84067210c70f06c8b6 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 13:59:24 +0800 Subject: [PATCH 3/4] add: detail project description --- app/views/repositories/detail.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/repositories/detail.json.jbuilder b/app/views/repositories/detail.json.jbuilder index e06ccdd85..366a2f408 100644 --- a/app/views/repositories/detail.json.jbuilder +++ b/app/views/repositories/detail.json.jbuilder @@ -7,6 +7,7 @@ else end json.identifier render_identifier(@project) json.name @project.name +json.description @project.description json.project_id @project.id json.repo_id @repository.id json.issues_count @project.issues_count.to_i - @project.pull_requests_count.to_i From 70c7b1da0c51fd8e1ae188390d1e4446675a8166 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 15:42:57 +0800 Subject: [PATCH 4/4] add: auto counter rake --- lib/tasks/sync_count_cache.rake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 lib/tasks/sync_count_cache.rake diff --git a/lib/tasks/sync_count_cache.rake b/lib/tasks/sync_count_cache.rake new file mode 100644 index 000000000..b32496b95 --- /dev/null +++ b/lib/tasks/sync_count_cache.rake @@ -0,0 +1,15 @@ +namespace :sync_count_cache do + desc "更新项目自动计数字段" + task projects: :environment do + Project.includes(:praise_treads, :fork_users, :issues, :watchers, :issues, :pull_requests, :versions, :issue_tags).find_each do |project| + project.update(forked_count: project.fork_users.size, closed_issues_count: project.issues.where(status_id: 5).size) + + Project.reset_counters(project.id, :praise_treads) + Project.reset_counters(project.id, :watchers) + Project.reset_counters(project.id, :issues) + Project.reset_counters(project.id, :pull_requests) + Project.reset_counters(project.id, :versions) + Project.reset_counters(project.id, :issue_tags) + end + end +end \ No newline at end of file