mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-20 11:45:57 +08:00
Merge branch 'standalone_develop' into pm_project_develop
This commit is contained in:
@@ -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
|
||||
|
||||
23
app/models/home_top_setting.rb
Normal file
23
app/models/home_top_setting.rb
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]) }
|
||||
|
||||
Reference in New Issue
Block a user