This commit is contained in:
jasder 2021-03-24 18:36:05 +08:00
commit 3be5c013a8
5 changed files with 24 additions and 5 deletions

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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