|
|
|
@@ -66,6 +66,7 @@ class Project < ApplicationRecord |
|
|
|
include Publicable
|
|
|
|
include Watchable
|
|
|
|
include ProjectOperable
|
|
|
|
include Dcodes
|
|
|
|
|
|
|
|
# common:开源托管项目
|
|
|
|
# mirror:普通镜像项目,没有定时同步功能
|
|
|
|
@@ -105,7 +106,7 @@ class Project < ApplicationRecord |
|
|
|
has_many :pinned_projects, dependent: :destroy
|
|
|
|
has_many :has_pinned_users, through: :pinned_projects, source: :user
|
|
|
|
|
|
|
|
after_save :check_project_members, :reset_cache_data
|
|
|
|
after_save :check_project_members, :reset_cache_data, :set_invite_code
|
|
|
|
after_destroy :reset_cache_data
|
|
|
|
scope :project_statics_select, -> {select(:id,:name, :is_public, :identifier, :status, :project_type, :user_id, :forked_count, :visits, :project_category_id, :project_language_id, :license_id, :ignore_id, :watchers_count, :created_on)}
|
|
|
|
scope :no_anomory_projects, -> {where("projects.user_id is not null and projects.user_id != ?", 2)}
|
|
|
|
@@ -123,6 +124,12 @@ class Project < ApplicationRecord |
|
|
|
self.reset_user_cache_async_job(self.owner)
|
|
|
|
end
|
|
|
|
|
|
|
|
def set_invite_code
|
|
|
|
if self.invite_code.nil?
|
|
|
|
self.update(invite_code: self.generate_dcode('invite_code', 6))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.search_project(search)
|
|
|
|
ransack(name_or_identifier_cont: search)
|
|
|
|
end
|
|
|
|
|