Browse Source

ADD db schema in models

tags/v1.0.0
Jasder 5 years ago
parent
commit
60ac66ebe3
82 changed files with 1711 additions and 25 deletions
  1. +19
    -1
      app/models/applied_message.rb
  2. +11
    -0
      app/models/applied_project.rb
  3. +24
    -1
      app/models/apply_action.rb
  4. +20
    -0
      app/models/apply_user_authentication.rb
  5. +33
    -0
      app/models/attachment.rb
  6. +19
    -0
      app/models/attachment_group_setting.rb
  7. +28
    -0
      app/models/attachment_history.rb
  8. +18
    -1
      app/models/bidding_user.rb
  9. +18
    -0
      app/models/ci/cloud_account.rb
  10. +13
    -0
      app/models/ci/language.rb
  11. +64
    -0
      app/models/ci/user.rb
  12. +20
    -0
      app/models/compose.rb
  13. +17
    -0
      app/models/compose_project.rb
  14. +16
    -0
      app/models/compose_user.rb
  15. +14
    -1
      app/models/coo_img.rb
  16. +19
    -1
      app/models/diff_record.rb
  17. +14
    -1
      app/models/diff_record_content.rb
  18. +16
    -0
      app/models/edu_setting.rb
  19. +17
    -0
      app/models/fork_user.rb
  20. +11
    -0
      app/models/ignore.rb
  21. +50
    -0
      app/models/issue.rb
  22. +16
    -0
      app/models/issue_depend.rb
  23. +16
    -1
      app/models/issue_priority.rb
  24. +19
    -1
      app/models/issue_status.rb
  25. +21
    -0
      app/models/issue_tag.rb
  26. +15
    -0
      app/models/issue_tags_relate.rb
  27. +18
    -0
      app/models/issue_time.rb
  28. +24
    -1
      app/models/journal.rb
  29. +17
    -1
      app/models/journal_detail.rb
  30. +29
    -0
      app/models/journals_for_message.rb
  31. +19
    -0
      app/models/laboratory.rb
  32. +14
    -1
      app/models/laboratory_setting.rb
  33. +15
    -1
      app/models/laboratory_user.rb
  34. +11
    -0
      app/models/license.rb
  35. +22
    -0
      app/models/member.rb
  36. +16
    -0
      app/models/member_role.rb
  37. +14
    -0
      app/models/mirror.rb
  38. +25
    -0
      app/models/oauth.rb
  39. +15
    -0
      app/models/onclick_time.rb
  40. +19
    -1
      app/models/open_user.rb
  41. +19
    -1
      app/models/open_users/cas.rb
  42. +18
    -0
      app/models/open_users/educoder.rb
  43. +19
    -1
      app/models/open_users/qq.rb
  44. +19
    -1
      app/models/open_users/wechat.rb
  45. +13
    -0
      app/models/praise_tread.rb
  46. +13
    -0
      app/models/praise_tread_cache.rb
  47. +20
    -0
      app/models/private_message.rb
  48. +71
    -0
      app/models/project.rb
  49. +17
    -0
      app/models/project_category.rb
  50. +15
    -0
      app/models/project_detail.rb
  51. +20
    -0
      app/models/project_educoder.rb
  52. +12
    -0
      app/models/project_language.rb
  53. +28
    -0
      app/models/project_package.rb
  54. +18
    -1
      app/models/project_package_apply.rb
  55. +10
    -1
      app/models/project_package_category.rb
  56. +21
    -0
      app/models/project_score.rb
  57. +13
    -0
      app/models/project_statistic.rb
  58. +19
    -0
      app/models/project_trend.rb
  59. +43
    -0
      app/models/pull_request.rb
  60. +16
    -0
      app/models/pull_request_assign.rb
  61. +15
    -0
      app/models/pull_request_tag.rb
  62. +40
    -0
      app/models/repository.rb
  63. +14
    -1
      app/models/role.rb
  64. +14
    -0
      app/models/system_update_notice.rb
  65. +28
    -1
      app/models/tiding.rb
  66. +16
    -0
      app/models/token.rb
  67. +13
    -1
      app/models/tracker.rb
  68. +64
    -0
      app/models/user.rb
  69. +17
    -0
      app/models/user_action.rb
  70. +18
    -0
      app/models/user_agent.rb
  71. +15
    -0
      app/models/user_day_certification.rb
  72. +32
    -0
      app/models/user_extension.rb
  73. +18
    -0
      app/models/user_grade.rb
  74. +15
    -1
      app/models/user_interest.rb
  75. +19
    -0
      app/models/verification_code.rb
  76. +25
    -0
      app/models/version.rb
  77. +25
    -0
      app/models/version_release.rb
  78. +17
    -0
      app/models/watcher.rb
  79. +14
    -1
      app/models/weapp_setting.rb
  80. +14
    -1
      app/models/weapp_settings/advert.rb
  81. +14
    -1
      app/models/weapp_settings/carousel.rb
  82. +34
    -0
      lib/tasks/auto_annotate_models.rake

+ 19
- 1
app/models/applied_message.rb View File

@@ -1,5 +1,23 @@
# == Schema Information
#
# Table name: applied_messages
#
# id :integer not null, primary key
# user_id :integer
# applied_id :integer
# applied_type :string(255)
# viewed :integer default("0")
# status :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
# name :string(255)
# applied_user_id :integer
# role :integer
# project_id :integer
#

class AppliedMessage < ApplicationRecord class AppliedMessage < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :applied, polymorphic: true belongs_to :applied, polymorphic: true


end
end

+ 11
- 0
app/models/applied_project.rb View File

@@ -1,3 +1,14 @@
# == Schema Information
#
# Table name: applied_projects
#
# id :integer not null, primary key
# project_id :integer not null
# user_id :integer not null
# role :integer default("0")
# status :integer default("0")
#

class AppliedProject < ApplicationRecord class AppliedProject < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :project belongs_to :project


+ 24
- 1
app/models/apply_action.rb View File

@@ -1,3 +1,26 @@
# == Schema Information
#
# Table name: apply_actions
#
# id :integer not null, primary key
# user_id :integer
# reason :string(255)
# container_id :integer
# container_type :string(255)
# dealer_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# status :integer default("0")
# apply_reason :text(65535)
# noticed :boolean default("0")
# ip_addr :string(255)
# reject_description :string(255)
#
# Indexes
#
# index_apply_actions_on_user_id (user_id)
#

# 申请消息 # 申请消息
class ApplyAction < ApplicationRecord class ApplyAction < ApplicationRecord
belongs_to :user belongs_to :user
@@ -27,4 +50,4 @@ class ApplyAction < ApplicationRecord
belong_container_id: container_id, belong_container_type: belong_container_type) belong_container_id: container_id, belong_container_type: belong_container_type)
end end
end end
end
end

+ 20
- 0
app/models/apply_user_authentication.rb View File

@@ -1,3 +1,23 @@
# == Schema Information
#
# Table name: apply_user_authentications
#
# id :integer not null, primary key
# user_id :integer
# status :integer
# auth_type :integer
# remarks :string(255)
# dealer :integer
# deal_time :datetime
# created_at :datetime not null
# updated_at :datetime not null
# is_delete :boolean default("0")
#
# Indexes
#
# index_apply_user_authentications_on_user_id (user_id)
#

# status:0 审核中 1 同意 2 拒绝 3 撤销 # status:0 审核中 1 同意 2 拒绝 3 撤销
# auth_type:1 实名认证, 2 职业认证 # auth_type:1 实名认证, 2 职业认证
class ApplyUserAuthentication < ApplicationRecord class ApplyUserAuthentication < ApplicationRecord


+ 33
- 0
app/models/attachment.rb View File

@@ -1,3 +1,36 @@
# == Schema Information
#
# Table name: attachments
#
# id :integer not null, primary key
# container_id :integer
# container_type :string(30)
# filename :string(255) default(""), not null
# disk_filename :string(255) default(""), not null
# filesize :integer default("0"), not null
# content_type :string(255) default("")
# digest :string(40) default(""), not null
# downloads :integer default("0"), not null
# author_id :integer default("0"), not null
# created_on :datetime
# description :text(65535)
# disk_directory :string(255)
# attachtype :integer default("1")
# is_public :integer default("1")
# copy_from :integer
# quotes :integer
# is_publish :integer default("1")
# publish_time :datetime
# memo_image :boolean default("0")
# extra_type :integer default("0")
#
# Indexes
#
# index_attachments_on_author_id (author_id)
# index_attachments_on_container_id_and_container_type (container_id,container_type)
# index_attachments_on_created_on (created_on)
#

class Attachment < ApplicationRecord class Attachment < ApplicationRecord
include BaseModel include BaseModel
include Publicable include Publicable


+ 19
- 0
app/models/attachment_group_setting.rb View File

@@ -1,3 +1,22 @@
# == Schema Information
#
# Table name: attachment_group_settings
#
# id :integer not null, primary key
# attachment_id :integer
# course_group_id :integer
# course_id :integer
# publish_time :datetime
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_attachment_group_settings_on_attachment_id (attachment_id)
# index_attachment_group_settings_on_course_group_id (course_group_id)
# index_attachment_group_settings_on_course_id (course_id)
#

class AttachmentGroupSetting < ActiveRecord::Base class AttachmentGroupSetting < ActiveRecord::Base
belongs_to :attachment belongs_to :attachment
# belongs_to :course_group # belongs_to :course_group


+ 28
- 0
app/models/attachment_history.rb View File

@@ -1,3 +1,31 @@
# == Schema Information
#
# Table name: attachment_histories
#
# id :integer not null, primary key
# container_id :integer
# container_type :string(255)
# filename :string(255) default("")
# disk_filename :string(255) default("")
# filesize :integer default("0")
# content_type :string(255) default("")
# digest :string(60) default("")
# downloads :integer default("0")
# author_id :integer
# created_on :datetime
# description :text(65535)
# disk_directory :string(255)
# attachtype :integer
# is_public :integer
# copy_from :integer
# quotes :integer
# version :integer
# attachment_id :integer
# is_publish :integer default("1")
# publish_time :date
# cloud_url :string(255) default("")
#

class AttachmentHistory < ApplicationRecord class AttachmentHistory < ApplicationRecord
include Publishable include Publishable
include Publicable include Publicable


+ 18
- 1
app/models/bidding_user.rb View File

@@ -1,3 +1,20 @@
# == Schema Information
#
# Table name: bidding_users
#
# id :integer not null, primary key
# project_package_id :integer
# user_id :integer
# status :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_bidding_users_on_project_package_id (project_package_id)
# index_bidding_users_on_user_id (user_id)
#

class BiddingUser < ApplicationRecord class BiddingUser < ApplicationRecord
include AASM include AASM


@@ -21,4 +38,4 @@ class BiddingUser < ApplicationRecord
def status_text def status_text
I18n.t("bidding_user.status.#{status}") I18n.t("bidding_user.status.#{status}")
end end
end
end

+ 18
- 0
app/models/ci/cloud_account.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: ci_cloud_accounts
#
# id :integer not null, primary key
# user_id :integer not null
# ip_num :integer
# account :string(255)
# secret :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# ci_user_id :integer
#
# Indexes
#
# dev_ops_cloud_accounts_p_u_ip (user_id,ip_num)
#

class Ci::CloudAccount < Ci::LocalBase class Ci::CloudAccount < Ci::LocalBase
belongs_to :user belongs_to :user
belongs_to :ci_user, class_name: 'Ci::User', foreign_key: :ci_user_id, optional: true belongs_to :ci_user, class_name: 'Ci::User', foreign_key: :ci_user_id, optional: true


+ 13
- 0
app/models/ci/language.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: ci_languages
#
# id :integer not null, primary key
# name :string(255) not null
# content :text(65535) not null
# usage_amount :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
# cover_id :integer
#

class Ci::Language < Ci::LocalBase class Ci::Language < Ci::LocalBase
# before_save :encode_content # before_save :encode_content




+ 64
- 0
app/models/ci/user.rb View File

@@ -1,3 +1,67 @@
# == Schema Information
#
# Table name: users
#
# id :integer not null
# login :string(255) default(""), not null
# hashed_password :string(40) default(""), not null
# firstname :string(30) default(""), not null
# lastname :string(255) default(""), not null
# mail :string(60)
# admin :boolean default("0"), not null
# status :integer default("1"), not null
# last_login_on :datetime
# language :string(5) default("")
# auth_source_id :integer
# created_on :datetime
# updated_on :datetime
# type :string(255)
# identity_url :string(255)
# mail_notification :string(255) default(""), not null
# salt :string(64)
# gid :integer
# visits :integer default("0")
# excellent_teacher :integer default("0")
# excellent_student :integer default("0")
# phone :string(255)
# authentication :boolean default("0")
# grade :integer default("0")
# experience :integer default("0")
# nickname :string(255)
# show_realname :boolean default("1")
# professional_certification :boolean default("0")
# ID_number :string(255)
# certification :integer default("0")
# homepage_teacher :boolean default("0")
# homepage_engineer :boolean default("0")
# is_test :integer default("0")
# ecoder_user_id :integer default("0")
# business :boolean default("0")
# profile_completed :boolean default("0")
# laboratory_id :integer
# platform :string(255) default("0")
# gitea_token :string(255)
# gitea_uid :integer
# is_shixun_marker :boolean default("0")
# is_sync_pwd :boolean default("1")
# watchers_count :integer default("0")
# visibility :string(255) default("public")
# repo_admin_change_team_access :boolean default("1")
# is_org :boolean default("0")
# website :string(255)
# devops_step :integer default("0")
#
# Indexes
#
# index_users_on_ecoder_user_id (ecoder_user_id)
# index_users_on_homepage_engineer (homepage_engineer)
# index_users_on_homepage_teacher (homepage_teacher)
# index_users_on_laboratory_id (laboratory_id)
# index_users_on_login (login)
# index_users_on_mail (mail)
# index_users_on_type (type)
#

class Ci::User < Ci::RemoteBase class Ci::User < Ci::RemoteBase
self.primary_key = 'user_id' self.primary_key = 'user_id'




+ 20
- 0
app/models/compose.rb View File

@@ -1,3 +1,23 @@
# == Schema Information
#
# Table name: composes
#
# id :integer not null, primary key
# user_id :integer
# title :string(255)
# description :text(65535)
# show_mode :integer default("0")
# compose_mode :boolean default("0")
# compose_users_count :integer default("0")
# compose_projects_count :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_composes_on_user_id_and_show_mode_and_compose_mode (user_id,show_mode,compose_mode)
#

class Compose < ApplicationRecord class Compose < ApplicationRecord
#组织 #组织
belongs_to :user belongs_to :user


+ 17
- 0
app/models/compose_project.rb View File

@@ -1,3 +1,20 @@
# == Schema Information
#
# Table name: compose_projects
#
# id :integer not null, primary key
# user_id :integer
# project_id :integer
# compose_id :integer
# position :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_compose_projects_on_user_id_and_project_id_and_compose_id (user_id,project_id,compose_id)
#

class ComposeProject < ApplicationRecord class ComposeProject < ApplicationRecord
#组织的项目记录表 #组织的项目记录表
belongs_to :compose belongs_to :compose


+ 16
- 0
app/models/compose_user.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: compose_users
#
# id :integer not null, primary key
# user_id :integer
# compose_id :integer
# is_manager :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_compose_users_on_user_id_and_compose_id (user_id,compose_id)
#

class ComposeUser < ApplicationRecord class ComposeUser < ApplicationRecord
belongs_to :compose belongs_to :compose
belongs_to :user belongs_to :user


+ 14
- 1
app/models/coo_img.rb View File

@@ -1,5 +1,18 @@
# == Schema Information
#
# Table name: coo_imgs
#
# id :integer not null, primary key
# src_states :string(255)
# url_states :string(255)
# img_type :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# position :integer
#

class CooImg < ApplicationRecord class CooImg < ApplicationRecord
extend Enumerize extend Enumerize


enumerize :img_type, in: %i[com_coop edu_coop alliance_coop] enumerize :img_type, in: %i[com_coop edu_coop alliance_coop]
end
end

+ 19
- 1
app/models/diff_record.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: diff_records
#
# id :integer not null, primary key
# user_id :integer
# container_type :string(255)
# container_id :integer
# column_name :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_diff_records_on_container_type_and_container_id (container_type,container_id)
# index_diff_records_on_user_id (user_id)
#

class DiffRecord < ApplicationRecord class DiffRecord < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :container, polymorphic: true belongs_to :container, polymorphic: true
@@ -5,4 +23,4 @@ class DiffRecord < ApplicationRecord
has_one :diff_record_content, dependent: :destroy has_one :diff_record_content, dependent: :destroy


delegate :content, to: :diff_record_content delegate :content, to: :diff_record_content
end
end

+ 14
- 1
app/models/diff_record_content.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: diff_record_contents
#
# id :integer not null, primary key
# diff_record_id :integer
# content :text(65535)
#
# Indexes
#
# index_diff_record_contents_on_diff_record_id (diff_record_id)
#

class DiffRecordContent < ApplicationRecord class DiffRecordContent < ApplicationRecord
belongs_to :diff_record belongs_to :diff_record
end
end

+ 16
- 0
app/models/edu_setting.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: edu_settings
#
# id :integer not null, primary key
# name :string(255)
# value :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# description :string(255)
#
# Indexes
#
# index_edu_settings_on_name (name) UNIQUE
#

class EduSetting < ApplicationRecord class EduSetting < ApplicationRecord
after_commit :expire_value_cache after_commit :expire_value_cache


+ 17
- 0
app/models/fork_user.rb View File

@@ -1,3 +1,20 @@
# == Schema Information
#
# Table name: fork_users
#
# id :integer not null, primary key
# project_id :integer
# fork_project_id :integer
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_fork_users_on_project_id (project_id)
# index_fork_users_on_user_id (user_id)
#

class ForkUser < ApplicationRecord class ForkUser < ApplicationRecord
belongs_to :project belongs_to :project
belongs_to :user belongs_to :user


+ 11
- 0
app/models/ignore.rb View File

@@ -1,3 +1,14 @@
# == Schema Information
#
# Table name: ignores
#
# id :integer not null, primary key
# name :string(255)
# content :text(65535)
# created_at :datetime not null
# updated_at :datetime not null
#

class Ignore < ApplicationRecord class Ignore < ApplicationRecord
include Projectable include Projectable
end end

+ 50
- 0
app/models/issue.rb View File

@@ -1,3 +1,53 @@
# == Schema Information
#
# Table name: issues
#
# id :integer not null, primary key
# tracker_id :integer not null
# project_id :integer not null
# subject :string(255) default(""), not null
# description :text(4294967295)
# due_date :date
# category_id :integer
# status_id :integer not null
# assigned_to_id :integer
# priority_id :integer not null
# fixed_version_id :integer
# author_id :integer not null
# created_on :datetime
# updated_on :datetime
# start_date :date
# done_ratio :integer default("0"), not null
# estimated_hours :float(24)
# parent_id :integer
# root_id :integer
# lft :integer
# rgt :integer
# is_private :boolean default("0"), not null
# closed_on :datetime
# project_issues_index :integer
# issue_type :string(255)
# token :integer default("0")
# issue_tags_value :string(255)
# is_lock :boolean default("0")
# issue_classify :string(255)
# ref_name :string(255)
# branch_name :string(255)
#
# Indexes
#
# index_issues_on_assigned_to_id (assigned_to_id)
# index_issues_on_author_id (author_id)
# index_issues_on_category_id (category_id)
# index_issues_on_created_on (created_on)
# index_issues_on_fixed_version_id (fixed_version_id)
# index_issues_on_priority_id (priority_id)
# index_issues_on_root_id_and_lft_and_rgt (root_id,lft,rgt)
# index_issues_on_status_id (status_id)
# index_issues_on_tracker_id (tracker_id)
# issues_project_id (project_id)
#

class Issue < ApplicationRecord class Issue < ApplicationRecord
#issue_type 1为普通,2为悬赏 #issue_type 1为普通,2为悬赏
belongs_to :project, :counter_cache => true belongs_to :project, :counter_cache => true


+ 16
- 0
app/models/issue_depend.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: issue_depends
#
# id :integer not null, primary key
# user_id :integer
# issue_id :integer
# depend_issue_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_issue_depends_on_user_id_and_issue_id_and_depend_issue_id (user_id,issue_id,depend_issue_id)
#

class IssueDepend < ApplicationRecord class IssueDepend < ApplicationRecord
belongs_to :issue belongs_to :issue
end end

+ 16
- 1
app/models/issue_priority.rb View File

@@ -1,3 +1,18 @@
# == Schema Information
#
# Table name: issue_priorities
#
# id :integer not null, primary key
# name :string(255)
# position :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_issue_priorities_on_name (name)
#

class IssuePriority < ApplicationRecord class IssuePriority < ApplicationRecord
has_many :issues has_many :issues
end
end

+ 19
- 1
app/models/issue_status.rb View File

@@ -1,4 +1,22 @@
# == Schema Information
#
# Table name: issue_statuses
#
# id :integer not null, primary key
# name :string(30) default(""), not null
# is_closed :boolean default("0"), not null
# is_default :boolean default("0"), not null
# position :integer default("1")
# default_done_ratio :integer
#
# Indexes
#
# index_issue_statuses_on_is_closed (is_closed)
# index_issue_statuses_on_is_default (is_default)
# index_issue_statuses_on_position (position)
#

class IssueStatus < ApplicationRecord class IssueStatus < ApplicationRecord
has_many :issues has_many :issues
belongs_to :project, optional: true belongs_to :project, optional: true
end
end

+ 21
- 0
app/models/issue_tag.rb View File

@@ -1,3 +1,24 @@
# == Schema Information
#
# Table name: issue_tags
#
# id :integer not null, primary key
# name :string(255)
# description :string(255)
# color :string(255)
# user_id :integer
# project_id :integer
# issues_count :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
# gid :integer
# gitea_url :string(255)
#
# Indexes
#
# index_issue_tags_on_user_id_and_name_and_project_id (user_id,name,project_id)
#

class IssueTag < ApplicationRecord class IssueTag < ApplicationRecord


has_many :issue_tags_relates, dependent: :destroy has_many :issue_tags_relates, dependent: :destroy


+ 15
- 0
app/models/issue_tags_relate.rb View File

@@ -1,3 +1,18 @@
# == Schema Information
#
# Table name: issue_tags_relates
#
# id :integer not null, primary key
# issue_id :integer
# issue_tag_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_issue_tags_relates_on_issue_id_and_issue_tag_id (issue_id,issue_tag_id)
#

class IssueTagsRelate < ApplicationRecord class IssueTagsRelate < ApplicationRecord
belongs_to :issue belongs_to :issue
belongs_to :issue_tag, counter_cache: :issues_count belongs_to :issue_tag, counter_cache: :issues_count


+ 18
- 0
app/models/issue_time.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: issue_times
#
# id :integer not null, primary key
# issue_id :integer
# user_id :integer
# start_time :datetime
# end_time :datetime
# cost_time :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_issue_times_on_issue_id_and_user_id (issue_id,user_id)
#

class IssueTime < ApplicationRecord class IssueTime < ApplicationRecord
belongs_to :issue belongs_to :issue
belongs_to :user belongs_to :user


+ 24
- 1
app/models/journal.rb View File

@@ -1,3 +1,26 @@
# == Schema Information
#
# Table name: journals
#
# id :integer not null, primary key
# journalized_id :integer default("0"), not null
# journalized_type :string(30) default(""), not null
# user_id :integer default("0"), not null
# notes :text(65535)
# created_on :datetime not null
# private_notes :boolean default("0"), not null
# parent_id :integer
# comments_count :integer default("0")
# reply_id :integer
#
# Indexes
#
# index_journals_on_created_on (created_on)
# index_journals_on_journalized_id (journalized_id)
# index_journals_on_user_id (user_id)
# journals_journalized_id (journalized_id,journalized_type)
#

class Journal < ApplicationRecord class Journal < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :issue, foreign_key: :journalized_id, :touch => true belongs_to :issue, foreign_key: :journalized_id, :touch => true
@@ -150,4 +173,4 @@ class Journal < ApplicationRecord
end end




end
end

+ 17
- 1
app/models/journal_detail.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: journal_details
#
# id :integer not null, primary key
# journal_id :integer default("0"), not null
# property :string(30) default(""), not null
# prop_key :string(30) default(""), not null
# old_value :text(65535)
# value :text(65535)
#
# Indexes
#
# journal_details_journal_id (journal_id)
#

class JournalDetail < ApplicationRecord class JournalDetail < ApplicationRecord
belongs_to :journal belongs_to :journal
end
end

+ 29
- 0
app/models/journals_for_message.rb View File

@@ -1,3 +1,32 @@
# == Schema Information
#
# Table name: journals_for_messages
#
# id :integer not null, primary key
# jour_id :integer
# jour_type :string(255)
# user_id :integer
# notes :text(65535)
# status :integer
# reply_id :integer
# created_on :datetime not null
# updated_on :datetime not null
# m_parent_id :string(255)
# is_readed :boolean
# m_reply_count :integer
# m_reply_id :integer
# is_comprehensive_evaluation :integer
# private :integer default("0")
# root_id :integer
# hidden :boolean default("0")
# praises_count :integer default("0")
#
# Indexes
#
# index_journals_for_messages_on_jour_id (jour_id)
# index_journals_for_messages_on_root_id (root_id)
#

class JournalsForMessage < ApplicationRecord class JournalsForMessage < ApplicationRecord
belongs_to :jour, :polymorphic => true belongs_to :jour, :polymorphic => true
belongs_to :user belongs_to :user


+ 19
- 0
app/models/laboratory.rb View File

@@ -1,3 +1,22 @@
# == Schema Information
#
# Table name: laboratories
#
# id :integer not null, primary key
# school_id :integer
# identifier :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# sync_course :boolean default("0")
# sync_subject :boolean default("0")
# sync_shixun :boolean default("0")
#
# Indexes
#
# index_laboratories_on_identifier (identifier) UNIQUE
# index_laboratories_on_school_id (school_id)
#

class Laboratory < ApplicationRecord class Laboratory < ApplicationRecord
belongs_to :school, optional: true belongs_to :school, optional: true




+ 14
- 1
app/models/laboratory_setting.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: laboratory_settings
#
# id :integer not null, primary key
# laboratory_id :integer
# config :text(65535)
#
# Indexes
#
# index_laboratory_settings_on_laboratory_id (laboratory_id)
#

class LaboratorySetting < ApplicationRecord class LaboratorySetting < ApplicationRecord
belongs_to :laboratory belongs_to :laboratory


@@ -72,4 +85,4 @@ class LaboratorySetting < ApplicationRecord
footer: nil footer: nil
} }
end end
end
end

+ 15
- 1
app/models/laboratory_user.rb View File

@@ -1,4 +1,18 @@
# == Schema Information
#
# Table name: laboratory_users
#
# id :integer not null, primary key
# laboratory_id :integer
# user_id :integer
#
# Indexes
#
# index_laboratory_users_on_laboratory_id (laboratory_id)
# index_laboratory_users_on_user_id (user_id)
#

class LaboratoryUser < ApplicationRecord class LaboratoryUser < ApplicationRecord
belongs_to :laboratory belongs_to :laboratory
belongs_to :user belongs_to :user
end
end

+ 11
- 0
app/models/license.rb View File

@@ -1,3 +1,14 @@
# == Schema Information
#
# Table name: licenses
#
# id :integer not null, primary key
# name :string(255)
# content :text(65535)
# created_at :datetime not null
# updated_at :datetime not null
#

class License < ApplicationRecord class License < ApplicationRecord
include Projectable include Projectable
end end

+ 22
- 0
app/models/member.rb View File

@@ -1,3 +1,25 @@
# == Schema Information
#
# Table name: members
#
# id :integer not null, primary key
# user_id :integer default("0"), not null
# project_id :integer default("0")
# created_on :datetime
# mail_notification :boolean default("0"), not null
# course_id :integer default("-1")
# course_group_id :integer default("0")
# is_collect :integer default("1")
# graduation_group_id :integer default("0")
#
# Indexes
#
# index_members_on_course_id (course_id)
# index_members_on_project_id (project_id)
# index_members_on_user_id (user_id)
# index_members_on_user_id_and_project_id (user_id,project_id,course_id) UNIQUE
#

class Member < ApplicationRecord class Member < ApplicationRecord
belongs_to :user belongs_to :user
# belongs_to :course, optional: true # belongs_to :course, optional: true


+ 16
- 0
app/models/member_role.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: member_roles
#
# id :integer not null, primary key
# member_id :integer not null
# role_id :integer not null
# inherited_from :integer
# is_current :integer default("1")
#
# Indexes
#
# index_member_roles_on_member_id (member_id)
# index_member_roles_on_role_id (role_id)
#

class MemberRole < ApplicationRecord class MemberRole < ApplicationRecord
belongs_to :role belongs_to :role
belongs_to :member belongs_to :member


+ 14
- 0
app/models/mirror.rb View File

@@ -1,3 +1,17 @@
# == Schema Information
#
# Table name: mirrors
#
# id :integer not null, primary key
# repo_id :integer
# status :integer default("0"), not null
# interval :integer
# next_update_time :datetime
# created_at :datetime not null
# updated_at :datetime not null
# sync_num :integer default("1")
#

class Mirror < ApplicationRecord class Mirror < ApplicationRecord


# 0 - succeeded, 1 - waiting, 2 - failed # 0 - succeeded, 1 - waiting, 2 - failed


+ 25
- 0
app/models/oauth.rb View File

@@ -1,3 +1,28 @@
# == Schema Information
#
# Table name: oauths
#
# id :integer not null, primary key
# client_id :string(255)
# client_secret :string(255)
# code :string(255)
# redirect_uri :string(255)
# scope :string(255)
# access_token :string(255)
# refresh_token :string(255)
# token_created_at :integer
# token_expires_in :integer
# created_at :datetime not null
# updated_at :datetime not null
# user_id :integer default("0")
# gitea_oauth_id :integer
# project_id :integer
#
# Indexes
#
# index_oauths_on_user_id (user_id)
#

# for oauth2 application # for oauth2 application
class Oauth < ApplicationRecord class Oauth < ApplicationRecord
belongs_to :user belongs_to :user


+ 15
- 0
app/models/onclick_time.rb View File

@@ -1,3 +1,18 @@
# == Schema Information
#
# Table name: onclick_times
#
# id :integer not null, primary key
# user_id :integer
# onclick_time :datetime
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_onclick_times_on_user_id (user_id)
#

class OnclickTime < ApplicationRecord class OnclickTime < ApplicationRecord
belongs_to :user belongs_to :user


+ 19
- 1
app/models/open_user.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: open_users
#
# id :integer not null, primary key
# user_id :integer
# type :string(255)
# uid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# extra :text(65535)
#
# Indexes
#
# index_open_users_on_type_and_uid (type,uid) UNIQUE
# index_open_users_on_user_id (user_id)
#

class OpenUser < ApplicationRecord class OpenUser < ApplicationRecord
belongs_to :user belongs_to :user


@@ -8,4 +26,4 @@ class OpenUser < ApplicationRecord
def can_bind_cache_key def can_bind_cache_key
"open_user:#{type}:#{uid}:can_bind" "open_user:#{type}:#{uid}:can_bind"
end end
end
end

+ 19
- 1
app/models/open_users/cas.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: open_users
#
# id :integer not null, primary key
# user_id :integer
# type :string(255)
# uid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# extra :text(65535)
#
# Indexes
#
# index_open_users_on_type_and_uid (type,uid) UNIQUE
# index_open_users_on_user_id (user_id)
#

class OpenUsers::Cas < OpenUser class OpenUsers::Cas < OpenUser
def nickname def nickname
extra&.[]('nickname') extra&.[]('nickname')
@@ -6,4 +24,4 @@ class OpenUsers::Cas < OpenUser
def en_type def en_type
'cas' 'cas'
end end
end
end

+ 18
- 0
app/models/open_users/educoder.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: open_users
#
# id :integer not null, primary key
# user_id :integer
# type :string(255)
# uid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# extra :text(65535)
#
# Indexes
#
# index_open_users_on_type_and_uid (type,uid) UNIQUE
# index_open_users_on_user_id (user_id)
#

class OpenUsers::Educoder < OpenUser class OpenUsers::Educoder < OpenUser
def nickname def nickname
extra&.[]('nickname') extra&.[]('nickname')


+ 19
- 1
app/models/open_users/qq.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: open_users
#
# id :integer not null, primary key
# user_id :integer
# type :string(255)
# uid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# extra :text(65535)
#
# Indexes
#
# index_open_users_on_type_and_uid (type,uid) UNIQUE
# index_open_users_on_user_id (user_id)
#

class OpenUsers::QQ < OpenUser class OpenUsers::QQ < OpenUser
def nickname def nickname
extra&.[]('nickname') extra&.[]('nickname')
@@ -6,4 +24,4 @@ class OpenUsers::QQ < OpenUser
def en_type def en_type
'qq' 'qq'
end end
end
end

+ 19
- 1
app/models/open_users/wechat.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: open_users
#
# id :integer not null, primary key
# user_id :integer
# type :string(255)
# uid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# extra :text(65535)
#
# Indexes
#
# index_open_users_on_type_and_uid (type,uid) UNIQUE
# index_open_users_on_user_id (user_id)
#

class OpenUsers::Wechat < OpenUser class OpenUsers::Wechat < OpenUser
def nickname def nickname
extra&.[]('nickname') extra&.[]('nickname')
@@ -6,4 +24,4 @@ class OpenUsers::Wechat < OpenUser
def en_type def en_type
'wechat' 'wechat'
end end
end
end

+ 13
- 0
app/models/praise_tread.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: praise_treads
#
# id :integer not null, primary key
# user_id :integer not null
# praise_tread_object_id :integer
# praise_tread_object_type :string(255)
# praise_or_tread :integer
# created_at :datetime not null
# updated_at :datetime not null
#

class PraiseTread < ApplicationRecord class PraiseTread < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :praise_tread_object, polymorphic: true, counter_cache: :praises_count belongs_to :praise_tread_object, polymorphic: true, counter_cache: :praises_count


+ 13
- 0
app/models/praise_tread_cache.rb View File

@@ -1,2 +1,15 @@
# == Schema Information
#
# Table name: praise_tread_caches
#
# id :integer not null, primary key
# object_id :integer not null
# object_type :string(255)
# praise_num :integer
# tread_num :integer
# created_at :datetime not null
# updated_at :datetime not null
#

class PraiseTreadCache < ApplicationRecord class PraiseTreadCache < ApplicationRecord
end end

+ 20
- 0
app/models/private_message.rb View File

@@ -1,3 +1,23 @@
# == Schema Information
#
# Table name: private_messages
#
# id :integer not null, primary key
# user_id :integer
# target_id :integer
# sender_id :integer
# receiver_id :integer
# content :text(65535)
# send_time :datetime
# status :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_private_messages_on_user_id (user_id)
#

class PrivateMessage < ApplicationRecord class PrivateMessage < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :target, class_name: "User" belongs_to :target, class_name: "User"


+ 71
- 0
app/models/project.rb View File

@@ -1,3 +1,73 @@
# == Schema Information
#
# Table name: projects
#
# id :integer not null, primary key
# name :string(255) default(""), not null
# description :text(4294967295)
# homepage :string(255) default("")
# is_public :boolean default("1"), not null
# parent_id :integer
# created_on :datetime
# updated_on :datetime
# identifier :string(255)
# status :integer default("1"), not null
# lft :integer
# rgt :integer
# inherit_members :boolean default("0"), not null
# project_type :integer default("0")
# hidden_repo :boolean default("0"), not null
# attachmenttype :integer default("1")
# user_id :integer
# dts_test :integer default("0")
# enterprise_name :string(255)
# organization_id :integer
# project_new_type :integer
# gpid :integer
# forked_from_project_id :integer
# forked_count :integer default("0")
# publish_resource :integer default("0")
# visits :integer default("0")
# hot :integer default("0")
# invite_code :string(255)
# qrcode :string(255)
# qrcode_expiretime :integer default("0")
# script :text(65535)
# training_status :integer default("0")
# rep_identifier :string(255)
# project_category_id :integer
# project_language_id :integer
# license_id :integer
# ignore_id :integer
# praises_count :integer default("0")
# watchers_count :integer default("0")
# issues_count :integer default("0")
# pull_requests_count :integer default("0")
# language :string(255)
# versions_count :integer default("0")
# issue_tags_count :integer default("0")
# closed_issues_count :integer default("0")
# open_devops :boolean default("0")
# gitea_webhook_id :integer
# open_devops_count :integer default("0")
# recommend :boolean default("0")
# platform :integer default("0")
#
# Indexes
#
# index_projects_on_forked_from_project_id (forked_from_project_id)
# index_projects_on_identifier (identifier)
# index_projects_on_is_public (is_public)
# index_projects_on_lft (lft)
# index_projects_on_name (name)
# index_projects_on_platform (platform)
# index_projects_on_project_type (project_type)
# index_projects_on_recommend (recommend)
# index_projects_on_rgt (rgt)
# index_projects_on_status (status)
# index_projects_on_updated_on (updated_on)
#

class Project < ApplicationRecord class Project < ApplicationRecord
include Matchable include Matchable
include Publicable include Publicable
@@ -208,4 +278,5 @@ class Project < ApplicationRecord
ps = ProjectStatistic.first ps = ProjectStatistic.first
ps.increment!(:mirror_projects_count) unless ps.blank? ps.increment!(:mirror_projects_count) unless ps.blank?
end end
end end

+ 17
- 0
app/models/project_category.rb View File

@@ -1,3 +1,20 @@
# == Schema Information
#
# Table name: project_categories
#
# id :integer not null, primary key
# name :string(255)
# position :integer
# projects_count :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
# ancestry :string(255)
#
# Indexes
#
# index_project_categories_on_ancestry (ancestry)
#

class ProjectCategory < ApplicationRecord class ProjectCategory < ApplicationRecord
include Projectable include Projectable
has_ancestry has_ancestry


+ 15
- 0
app/models/project_detail.rb View File

@@ -1,3 +1,18 @@
# == Schema Information
#
# Table name: project_details
#
# id :integer not null, primary key
# project_id :integer
# content :text(4294967295)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_project_details_on_project_id (project_id)
#

class ProjectDetail < ApplicationRecord class ProjectDetail < ApplicationRecord
belongs_to :project, optional: true belongs_to :project, optional: true
has_many :attachments, as: :container, dependent: :destroy has_many :attachments, as: :container, dependent: :destroy


+ 20
- 0
app/models/project_educoder.rb View File

@@ -1,3 +1,23 @@
# == Schema Information
#
# Table name: project_educoders
#
# id :integer not null, primary key
# owner :string(255)
# repo_name :string(255)
# image_url :string(255)
# project_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# commit_count :integer default("0")
# forked_count :integer default("0")
#
# Indexes
#
# index_project_educoders_on_project_id (project_id)
# index_project_educoders_on_repo_name (repo_name)
#

class ProjectEducoder < ApplicationRecord class ProjectEducoder < ApplicationRecord
belongs_to :project, optional: true belongs_to :project, optional: true
end end

+ 12
- 0
app/models/project_language.rb View File

@@ -1,3 +1,15 @@
# == Schema Information
#
# Table name: project_languages
#
# id :integer not null, primary key
# name :string(255)
# position :integer
# projects_count :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#

class ProjectLanguage < ApplicationRecord class ProjectLanguage < ApplicationRecord
include Projectable include Projectable
end end

+ 28
- 0
app/models/project_package.rb View File

@@ -1,3 +1,31 @@
# == Schema Information
#
# Table name: project_packages
#
# id :integer not null, primary key
# creator_id :integer
# status :string(255)
# title :string(255)
# content :text(65535)
# contact_name :string(255)
# contact_phone :string(255)
# min_price :decimal(10, )
# max_price :decimal(10, )
# visit_count :integer default("0")
# bidding_users_count :integer default("0")
# deadline_at :datetime
# published_at :datetime
# bidding_finished_at :datetime
# created_at :datetime not null
# updated_at :datetime not null
# project_package_category_id :integer
#
# Indexes
#
# index_project_packages_on_creator_id (creator_id)
# index_project_packages_on_published_at (published_at)
#

class ProjectPackage < ApplicationRecord class ProjectPackage < ApplicationRecord
include AASM include AASM




+ 18
- 1
app/models/project_package_apply.rb View File

@@ -1,3 +1,20 @@
# == Schema Information
#
# Table name: project_package_applies
#
# id :integer not null, primary key
# project_package_id :integer
# status :string(255)
# reason :string(255)
# refused_at :datetime
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_project_package_applies_on_project_package_id (project_package_id)
#

class ProjectPackageApply < ApplicationRecord class ProjectPackageApply < ApplicationRecord
include AASM include AASM


@@ -16,4 +33,4 @@ class ProjectPackageApply < ApplicationRecord
transitions from: :pending, to: :agreed transitions from: :pending, to: :agreed
end end
end end
end
end

+ 10
- 1
app/models/project_package_category.rb View File

@@ -1,3 +1,12 @@
# == Schema Information
#
# Table name: project_package_categories
#
# id :integer not null, primary key
# name :string(255)
# position :integer
#

class ProjectPackageCategory < ApplicationRecord class ProjectPackageCategory < ApplicationRecord
default_scope { order(position: :asc) } default_scope { order(position: :asc) }


@@ -20,4 +29,4 @@ class ProjectPackageCategory < ApplicationRecord
def reset_cache_data def reset_cache_data
Rails.cache.delete(self.class.data_cache_key) Rails.cache.delete(self.class.data_cache_key)
end end
end
end

+ 21
- 0
app/models/project_score.rb View File

@@ -1,3 +1,24 @@
# == Schema Information
#
# Table name: project_scores
#
# id :integer not null, primary key
# project_id :string(255)
# score :integer
# created_at :datetime not null
# updated_at :datetime not null
# issue_num :integer default("0")
# issue_journal_num :integer default("0")
# news_num :integer default("0")
# documents_num :integer default("0")
# changeset_num :integer default("0")
# board_message_num :integer default("0")
# board_num :integer default("0")
# attach_num :integer default("0")
# commit_time :datetime
# pull_request_num :integer default("0")
#

class ProjectScore < ApplicationRecord class ProjectScore < ApplicationRecord
belongs_to :project belongs_to :project


+ 13
- 0
app/models/project_statistic.rb View File

@@ -1,2 +1,15 @@
# == Schema Information
#
# Table name: project_statistics
#
# id :integer not null, primary key
# common_projects_count :integer default("0")
# mirror_projects_count :integer default("0")
# sync_mirror_projects_count :integer default("0")
# commits_total_count :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#

class ProjectStatistic < ApplicationRecord class ProjectStatistic < ApplicationRecord
end end

+ 19
- 0
app/models/project_trend.rb View File

@@ -1,3 +1,22 @@
# == Schema Information
#
# Table name: project_trends
#
# id :integer not null, primary key
# user_id :integer
# project_id :integer
# trend_type :string(255)
# trend_id :integer
# action_type :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_project_trends_on_trend_type_and_trend_id (trend_type,trend_id)
# index_project_trends_on_user_id_and_project_id (user_id,project_id)
#

class ProjectTrend < ApplicationRecord class ProjectTrend < ApplicationRecord
belongs_to :project belongs_to :project
belongs_to :trend, polymorphic: true, optional: true belongs_to :trend, polymorphic: true, optional: true


+ 43
- 0
app/models/pull_request.rb View File

@@ -1,3 +1,28 @@
# == Schema Information
#
# Table name: pull_requests
#
# id :integer not null, primary key
# pull_request_id :integer
# gpid :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(65535)
# 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")
#

class PullRequest < ApplicationRecord class PullRequest < ApplicationRecord
#status 0 默认未合并, 1表示合并, 2表示请求拒绝 #status 0 默认未合并, 1表示合并, 2表示请求拒绝
belongs_to :issue belongs_to :issue
@@ -12,4 +37,22 @@ class PullRequest < ApplicationRecord
def fork_project def fork_project
Project.find_by(id: self.fork_project_id) Project.find_by(id: self.fork_project_id)
end end

# TODO: sync educoder platform repo's for update some statistics count
def self.update_some_count
PullRequest.includes(:user, :project).select(:id, :user_id, :gpid, :project_id, :fork_project_id).each do |pr|
puts pr.id
next if pr.gpid.blank?
project = pr.project

next if project.blank?
user = project.owner
next if pr.gpid === 6 || pr.gpid === 7
files_result = Gitea::PullRequest::FilesService.call(user.login, project.identifier, pr.gpid)
pr.update_column(:files_count, files_result['NumFiles']) unless files_result.blank?

commits_result = Gitea::PullRequest::CommitsService.call(user.login, project.identifier, pr.gpid)
pr.update_column(:commits_count, commits_result.size) unless commits_result.blank?
end
end
end end

+ 16
- 0
app/models/pull_request_assign.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: pull_request_assigns
#
# id :integer not null, primary key
# pull_request_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# user_login :string(255)
#
# Indexes
#
# index_pull_request_assigns_on_user_id_and_pull_request_id (pull_request_id)
# index_pull_request_assigns_on_user_login (user_login)
#

class PullRequestAssign < ApplicationRecord class PullRequestAssign < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :pull_request belongs_to :pull_request


+ 15
- 0
app/models/pull_request_tag.rb View File

@@ -1,3 +1,18 @@
# == Schema Information
#
# Table name: pull_request_tags
#
# id :integer not null, primary key
# issue_tag_id :integer
# pull_request_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_pull_request_tags_on_issue_tag_id_and_pull_request_id (issue_tag_id,pull_request_id)
#

class PullRequestTag < ApplicationRecord class PullRequestTag < ApplicationRecord
belongs_to :issue_tag belongs_to :issue_tag
belongs_to :pull_request belongs_to :pull_request


+ 40
- 0
app/models/repository.rb View File

@@ -1,3 +1,35 @@
# == Schema Information
#
# Table name: repositories
#
# id :integer not null, primary key
# project_id :integer default("0"), not null
# url :string(255) default(""), not null
# login :string(60) default("")
# password :string(255) default("")
# root_url :string(255) default("")
# type :string(255)
# path_encoding :string(64)
# log_encoding :string(64)
# extra_info :text(65535)
# identifier :string(255)
# is_default :boolean default("0")
# hidden :boolean default("0")
# shixun_id :integer
# myshixun_id :integer
# user_id :integer
# mirror_url :string(255)
# version_releases_count :integer default("0")
# fork_url :string(255)
# is_mirror :boolean default("0")
#
# Indexes
#
# index_repositories_on_identifier (identifier)
# index_repositories_on_project_id (project_id)
# index_repositories_on_user_id (user_id)
#

class Repository < ApplicationRecord class Repository < ApplicationRecord
self.inheritance_column = nil # FIX The single-table inheritance mechanism failed self.inheritance_column = nil # FIX The single-table inheritance mechanism failed
belongs_to :project, :touch => true belongs_to :project, :touch => true
@@ -34,4 +66,12 @@ class Repository < ApplicationRecord
repo_mirror.set_status!(Mirror.statuses[:waiting]) repo_mirror.set_status!(Mirror.statuses[:waiting])
repo_mirror.increment!(:sync_num) repo_mirror.increment!(:sync_num)
end end

def generate_hex(column)
loop do
hex = SecureRandom.hex
break hex unless self.class.where(column => hex).any?
end
end

end end

+ 14
- 1
app/models/role.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: roles
#
# id :integer not null, primary key
# name :string(30) default(""), not null
# position :integer default("1")
# assignable :boolean default("1")
# builtin :integer default("0"), not null
# permissions :text(65535)
# issues_visibility :string(30) default("default"), not null
#

class Role < ApplicationRecord class Role < ApplicationRecord
has_many :member_roles, dependent: :destroy has_many :member_roles, dependent: :destroy
end
end

+ 14
- 0
app/models/system_update_notice.rb View File

@@ -1,2 +1,16 @@
# == Schema Information
#
# Table name: system_update_notices
#
# id :integer not null, primary key
# subject :string(255)
# notes :text(65535)
# start_time :datetime
# end_time :datetime
# created_at :datetime not null
# updated_at :datetime not null
# notice_type :integer
#

class SystemUpdateNotice < ApplicationRecord class SystemUpdateNotice < ApplicationRecord
end end

+ 28
- 1
app/models/tiding.rb View File

@@ -1,3 +1,30 @@
# == Schema Information
#
# Table name: tidings
#
# id :integer not null, primary key
# user_id :integer
# trigger_user_id :integer
# container_id :integer
# container_type :string(255)
# parent_container_id :integer
# parent_container_type :string(255)
# belong_container_id :integer
# belong_container_type :string(255)
# status :integer default("0")
# viewed :boolean
# created_at :datetime not null
# updated_at :datetime not null
# tiding_type :string(255)
# extra :string(255)
# is_delete :boolean default("0")
#
# Indexes
#
# index_tidings_on_container_id (container_id)
# index_tidings_on_user_id (user_id)
#

class Tiding < ApplicationRecord class Tiding < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :trigger_user, class_name: 'User', optional: true belongs_to :trigger_user, class_name: 'User', optional: true
@@ -29,4 +56,4 @@ class Tiding < ApplicationRecord
(container_type == 'StudentWorksScore' && extra.to_i == 3) || (container_type == 'StudentWorksScore' && extra.to_i == 3) ||
(container_type == 'StudentWorksScoresAppeal' && parent_container_type == 'StudentWork' && tiding_type == 'System') (container_type == 'StudentWorksScoresAppeal' && parent_container_type == 'StudentWork' && tiding_type == 'System')
end end
end
end

+ 16
- 0
app/models/token.rb View File

@@ -1,3 +1,19 @@
# == Schema Information
#
# Table name: tokens
#
# id :integer not null, primary key
# user_id :integer default("0"), not null
# action :string(30) default(""), not null
# value :string(40) default(""), not null
# created_on :datetime not null
#
# Indexes
#
# index_tokens_on_user_id (user_id)
# tokens_value (value) UNIQUE
#

# #
# This program is free software; you can redistribute it and/or # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License # modify it under the terms of the GNU General Public License


+ 13
- 1
app/models/tracker.rb View File

@@ -1,4 +1,16 @@
# == Schema Information
#
# Table name: trackers
#
# id :integer not null, primary key
# name :string(30) default(""), not null
# is_in_chlog :boolean default("0"), not null
# position :integer default("1")
# is_in_roadmap :boolean default("1"), not null
# fields_bits :integer default("0")
#

class Tracker < ApplicationRecord class Tracker < ApplicationRecord
has_many :issues has_many :issues
has_and_belongs_to_many :projects has_and_belongs_to_many :projects
end
end

+ 64
- 0
app/models/user.rb View File

@@ -1,3 +1,67 @@
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# login :string(255) default(""), not null
# hashed_password :string(40) default(""), not null
# firstname :string(30) default(""), not null
# lastname :string(255) default(""), not null
# mail :string(60)
# admin :boolean default("0"), not null
# status :integer default("1"), not null
# last_login_on :datetime
# language :string(5) default("")
# auth_source_id :integer
# created_on :datetime
# updated_on :datetime
# type :string(255)
# identity_url :string(255)
# mail_notification :string(255) default(""), not null
# salt :string(64)
# gid :integer
# visits :integer default("0")
# excellent_teacher :integer default("0")
# excellent_student :integer default("0")
# phone :string(255)
# authentication :boolean default("0")
# grade :integer default("0")
# experience :integer default("0")
# nickname :string(255)
# show_realname :boolean default("1")
# professional_certification :boolean default("0")
# ID_number :string(255)
# certification :integer default("0")
# homepage_teacher :boolean default("0")
# homepage_engineer :boolean default("0")
# is_test :integer default("0")
# ecoder_user_id :integer default("0")
# business :boolean default("0")
# profile_completed :boolean default("0")
# laboratory_id :integer
# platform :string(255) default("0")
# gitea_token :string(255)
# gitea_uid :integer
# is_shixun_marker :boolean default("0")
# is_sync_pwd :boolean default("1")
# watchers_count :integer default("0")
# visibility :string(255) default("public")
# repo_admin_change_team_access :boolean default("1")
# is_org :boolean default("0")
# website :string(255)
# devops_step :integer default("0")
#
# Indexes
#
# index_users_on_ecoder_user_id (ecoder_user_id)
# index_users_on_homepage_engineer (homepage_engineer)
# index_users_on_homepage_teacher (homepage_teacher)
# index_users_on_laboratory_id (laboratory_id)
# index_users_on_login (login)
# index_users_on_mail (mail)
# index_users_on_type (type)
#

class User < ApplicationRecord class User < ApplicationRecord
extend Enumerize extend Enumerize




+ 17
- 0
app/models/user_action.rb View File

@@ -1,2 +1,19 @@
# == Schema Information
#
# Table name: user_actions
#
# id :integer not null, primary key
# user_id :integer
# action_type :string(255)
# action_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# ip :string(255)
#
# Indexes
#
# index_user_actions_on_ip (ip)
#

class UserAction < ApplicationRecord class UserAction < ApplicationRecord
end end

+ 18
- 0
app/models/user_agent.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: user_agents
#
# id :integer not null, primary key
# agent_type :string(255)
# key :string(255)
# ip :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# register_status :integer default("0")
# action_status :integer default("0")
#
# Indexes
#
# index_user_agents_on_ip (ip) UNIQUE
#

class UserAgent < ApplicationRecord class UserAgent < ApplicationRecord
has_many :user_actions, :foreign_key => "ip", :primary_key => "ip" has_many :user_actions, :foreign_key => "ip", :primary_key => "ip"
USER_AD = 1 # 广告宣传的引流 USER_AD = 1 # 广告宣传的引流


+ 15
- 0
app/models/user_day_certification.rb View File

@@ -1,2 +1,17 @@
# == Schema Information
#
# Table name: user_day_certifications
#
# id :integer not null, primary key
# user_id :integer
# status :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_user_day_certifications_on_user_id (user_id)
#

class UserDayCertification < ApplicationRecord class UserDayCertification < ApplicationRecord
end end

+ 32
- 0
app/models/user_extension.rb View File

@@ -1,3 +1,35 @@
# == Schema Information
#
# Table name: user_extensions
#
# id :integer not null, primary key
# user_id :integer not null
# birthday :date
# brief_introduction :string(255)
# gender :integer
# location :string(255)
# occupation :string(255)
# work_experience :integer
# zip_code :integer
# created_at :datetime not null
# updated_at :datetime not null
# technical_title :string(255)
# identity :integer
# student_id :string(255)
# teacher_realname :string(255)
# student_realname :string(255)
# location_city :string(255)
# school_id :integer
# description :string(255) default("")
# department_id :integer
#
# Indexes
#
# index_user_extensions_on_department_id (department_id)
# index_user_extensions_on_school_id_and_user_id (school_id,user_id)
# index_user_extensions_on_user_id (user_id)
#

class UserExtension < ApplicationRecord class UserExtension < ApplicationRecord
# identity 0: 教师教授 1: 学生, 2: 专业人士, 3: 开发者 # identity 0: 教师教授 1: 学生, 2: 专业人士, 3: 开发者
enum identity: { teacher: 0, student: 1, professional: 2, developer: 3, enterprise: 4, unselect: -1 } enum identity: { teacher: 0, student: 1, professional: 2, developer: 3, enterprise: 4, unselect: -1 }


+ 18
- 0
app/models/user_grade.rb View File

@@ -1,3 +1,21 @@
# == Schema Information
#
# Table name: user_grades
#
# id :integer not null, primary key
# user_id :integer not null
# project_id :integer not null
# grade :float(24) default("0")
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_user_grades_on_grade (grade)
# index_user_grades_on_project_id (project_id)
# index_user_grades_on_user_id (user_id)
#

class UserGrade < ApplicationRecord class UserGrade < ApplicationRecord
# belongs_to :project # belongs_to :project
# belongs_to :user # belongs_to :user


+ 15
- 1
app/models/user_interest.rb View File

@@ -1,4 +1,18 @@
# == Schema Information
#
# Table name: user_interests
#
# id :integer not null, primary key
# user_id :integer
# repertoire_id :integer
#
# Indexes
#
# index_user_interests_on_repertoire_id (repertoire_id)
# index_user_interests_on_user_id (user_id)
#

class UserInterest < ApplicationRecord class UserInterest < ApplicationRecord
belongs_to :user belongs_to :user
# belongs_to :repertoire # belongs_to :repertoire
end
end

+ 19
- 0
app/models/verification_code.rb View File

@@ -1,3 +1,22 @@
# == Schema Information
#
# Table name: verification_codes
#
# id :integer not null, primary key
# code :string(255)
# code_type :integer
# status :integer
# phone :string(255)
# email :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# by_email (email)
# by_phone (phone)
#

class VerificationCode < ApplicationRecord class VerificationCode < ApplicationRecord
def effective? def effective?
created_at + 10.minute > Time.current created_at + 10.minute > Time.current


+ 25
- 0
app/models/version.rb View File

@@ -1,3 +1,28 @@
# == Schema Information
#
# Table name: versions
#
# id :integer not null, primary key
# project_id :integer default("0"), not null
# name :string(255) default(""), not null
# description :text(65535)
# effective_date :date
# created_on :datetime
# updated_on :datetime
# wiki_page_title :string(255)
# status :string(255) default("open")
# sharing :string(255) default("none"), not null
# user_id :integer
# issues_count :integer default("0")
# closed_issues_count :integer default("0")
# percent :float(24) default("0")
#
# Indexes
#
# index_versions_on_sharing (sharing)
# versions_project_id (project_id)
#

class Version < ApplicationRecord class Version < ApplicationRecord
belongs_to :project, counter_cache: true belongs_to :project, counter_cache: true
has_many :issues, class_name: "Issue", foreign_key: "fixed_version_id" has_many :issues, class_name: "Issue", foreign_key: "fixed_version_id"


+ 25
- 0
app/models/version_release.rb View File

@@ -1,3 +1,28 @@
# == Schema Information
#
# Table name: version_releases
#
# id :integer not null, primary key
# user_id :integer
# name :string(255)
# body :text(65535)
# tag_name :string(255)
# target_commitish :string(255)
# draft :boolean default("0")
# prerelease :boolean default("0")
# tarball_url :string(255)
# zipball_url :string(255)
# url :string(255)
# version_gid :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# repository_id :integer
#
# Indexes
#
# index_version_releases_on_repository_id (repository_id)
#

class VersionRelease < ApplicationRecord class VersionRelease < ApplicationRecord
belongs_to :repository, counter_cache: true belongs_to :repository, counter_cache: true
belongs_to :user belongs_to :user


+ 17
- 0
app/models/watcher.rb View File

@@ -1,3 +1,20 @@
# == Schema Information
#
# Table name: watchers
#
# id :integer not null, primary key
# watchable_type :string(255) default(""), not null
# watchable_id :integer default("0"), not null
# user_id :integer
# created_at :datetime
#
# Indexes
#
# index_watchers_on_user_id (user_id)
# index_watchers_on_watchable_id_and_watchable_type (watchable_id,watchable_type)
# watchers_user_id_type (user_id,watchable_type)
#

class Watcher < ApplicationRecord class Watcher < ApplicationRecord
belongs_to :user belongs_to :user


+ 14
- 1
app/models/weapp_setting.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: weapp_settings
#
# id :integer not null, primary key
# type :string(255)
# link :string(255)
# online :boolean default("0")
# position :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#

class WeappSetting < ApplicationRecord class WeappSetting < ApplicationRecord
scope :only_online, -> { where(online: true) } scope :only_online, -> { where(online: true) }
end
end

+ 14
- 1
app/models/weapp_settings/advert.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: weapp_settings
#
# id :integer not null, primary key
# type :string(255)
# link :string(255)
# online :boolean default("0")
# position :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#

class WeappSettings::Advert < WeappSetting class WeappSettings::Advert < WeappSetting
default_scope { order(position: :asc) } default_scope { order(position: :asc) }
end
end

+ 14
- 1
app/models/weapp_settings/carousel.rb View File

@@ -1,3 +1,16 @@
# == Schema Information
#
# Table name: weapp_settings
#
# id :integer not null, primary key
# type :string(255)
# link :string(255)
# online :boolean default("0")
# position :integer default("0")
# created_at :datetime not null
# updated_at :datetime not null
#

class WeappSettings::Carousel < WeappSetting class WeappSettings::Carousel < WeappSetting
default_scope { order(position: :asc) } default_scope { order(position: :asc) }
end
end

+ 34
- 0
lib/tasks/auto_annotate_models.rake View File

@@ -0,0 +1,34 @@
# NOTE: only doing this in development as some production environments (Heroku)
# NOTE: are sensitive to local FS writes, and besides -- it's just not proper
# NOTE: to have a dev-mode tool do its thing in production.
if Rails.env.development?
task :set_annotation_options do
# You can override any of these by setting an environment variable of the
# same name.
Annotate.set_defaults({
'position_in_routes' => "before",
'position_in_class' => "before",
'position_in_test' => "before",
'position_in_fixture' => "before",
'position_in_factory' => "before",
'show_indexes' => "true",
'simple_indexes' => "false",
'model_dir' => "app/models",
'include_version' => "false",
'require' => "",
'exclude_tests' => "true",
'exclude_fixtures' => "true",
'exclude_factories' => "false",
'ignore_model_sub_dir' => "false",
'skip_on_db_migrate' => "false",
'format_bare' => "true",
'format_rdoc' => "false",
'format_markdown' => "false",
'sort' => "false",
'force' => "false",
'trace' => "false",
})
end

Annotate.load_tasks
end

Loading…
Cancel
Save