Merge branch 'standalone_develop' into pm_project_develop

This commit is contained in:
2024-09-12 09:21:10 +08:00
48 changed files with 440 additions and 64 deletions

View File

@@ -7,6 +7,7 @@ module Matchable
scope :with_project_type, ->(project_type) { where(project_type: project_type) if Project.project_types.include?(project_type) }
scope :by_name_or_identifier, ->(search) { where("name like :search or identifier LIKE :search", :search => "%#{search.split(" ").join('|')}%") unless search.blank? }
scope :with_project_topic, ->(topic_id) {joins(:project_topics).where(project_topics: {id: topic_id}) unless topic_id.blank?}
scope :with_project_topic_name, ->(topic_name) {joins(:project_topics).where(project_topics: {name: topic_name}) unless topic_name.blank?}
end
end

View File

@@ -0,0 +1,23 @@
# == Schema Information
#
# Table name: home_top_settings
#
# id :integer not null, primary key
# user_id :integer
# top_type :string(255)
# top_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_home_top_settings_on_top_type_and_top_id (top_type,top_id)
# index_home_top_settings_on_user_id (user_id)
#
class HomeTopSetting < ApplicationRecord
belongs_to :user
belongs_to :top, polymorphic: true
end

View File

@@ -7,9 +7,12 @@
# content :text(65535)
# created_at :datetime not null
# updated_at :datetime not null
# position :integer default("0")
#
class License < ApplicationRecord
default_scope { order(position: :desc) }
include Projectable
validates :name, :content, presence: true

View File

@@ -76,6 +76,7 @@ class Organization < Owner
has_many :team_users, dependent: :destroy
has_many :pinned_projects, class_name: 'PinnedProject', foreign_key: :user_id, dependent: :destroy
has_many :is_pinned_projects, through: :pinned_projects, source: :project, validate: false
has_many :home_top_settings, as: :top, dependent: :destroy
validates :login, presence: true
validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, case_sensitive: false

View File

@@ -139,6 +139,7 @@ class Project < ApplicationRecord
has_many :daily_project_statistics, dependent: :destroy
has_one :project_dataset, dependent: :destroy
has_many :sync_repositories, dependent: :destroy
has_many :home_top_settings, as: :top, dependent: :destroy
after_create :incre_user_statistic, :incre_platform_statistic
after_save :check_project_members
before_save :set_invite_code, :reset_unmember_followed, :set_recommend_and_is_pinned, :reset_cache_data
@@ -462,6 +463,15 @@ class Project < ApplicationRecord
EduSetting.get("open_portrait_projects").present? ? EduSetting.get("open_portrait_projects").split(",").include?(self.id.to_s) : false
end
def has_pull_request(branch_name)
return true if self.pull_requests.opening.where(head: branch_name).present? || self.pull_requests.opening.where(base: branch_name).present?
if self.forked_from_project_id.present?
return true if self.fork_project.pull_requests.opening.where(head: branch_name).present? || self.fork_project.pull_requests.opening.where(base: branch_name).present?
end
return false
end
def self.mindspore_contributors
cache_result = $redis_cache.get("ProjectMindsporeContributors")
if cache_result.nil?

View File

@@ -2,25 +2,27 @@
#
# Table name: pull_requests
#
# id :integer not null, primary key
# gitea_id :integer
# gitea_number :integer
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# status :integer default("0")
# project_id :integer
# title :string(255)
# milestone :integer
# body :text(4294967295)
# head :string(255)
# base :string(255)
# issue_id :integer
# fork_project_id :integer
# is_original :boolean default("0")
# comments_count :integer default("0")
# commits_count :integer default("0")
# files_count :integer default("0")
# id :integer not null, primary key
# gitea_id :integer
# gitea_number :integer
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# status :integer default("0")
# project_id :integer
# title :string(255)
# milestone :integer
# body :text(4294967295)
# head :string(255)
# base :string(255)
# issue_id :integer
# fork_project_id :integer
# is_original :boolean default("0")
# comments_count :integer default("0")
# commits_count :integer default("0")
# files_count :integer default("0")
# fork_project_owner :string(255)
# fork_project_identifier :string(255)
#
class PullRequest < ApplicationRecord

View File

@@ -190,6 +190,7 @@ class User < Owner
has_many :clas, through: :user_clas
has_one :page, :dependent => :destroy
has_many :home_top_settings, dependent: :destroy
# Groups and active users
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_INFO]) }