From 0a13387c1c73a635e0d1a521fa0ff283dc7931b3 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 1 Apr 2024 15:24:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 1 + app/models/project.rb | 1 + app/models/project_dataset.rb | 21 +++++++++++++++++++ app/models/project_unit.rb | 2 +- .../20240401030707_create_project_datasets.rb | 11 ++++++++++ 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 app/models/project_dataset.rb create mode 100644 db/migrate/20240401030707_create_project_datasets.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index a4e369c1f..eb242475e 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -21,6 +21,7 @@ class ProjectsController < ApplicationController menu.append(menu_hash_by_name("issues")) if @project.has_menu_permission("issues") menu.append(menu_hash_by_name("pulls")) if @project.has_menu_permission("pulls") && @project.forge? menu.append(menu_hash_by_name("devops")) if @project.has_menu_permission("devops") && @project.forge? + menu.append(menu_hash_by_name("dataset")) if @project.has_menu_permission("dataset") && @project.forge? menu.append(menu_hash_by_name("versions")) if @project.has_menu_permission("versions") menu.append(menu_hash_by_name("wiki")) if @project.has_menu_permission("wiki") && @project.forge? menu.append(menu_hash_by_name("services")) if @project.has_menu_permission("services") && @project.forge? && (current_user.admin? || @project.member?(current_user.id)) diff --git a/app/models/project.rb b/app/models/project.rb index 34e981508..c2702fa01 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -137,6 +137,7 @@ class Project < ApplicationRecord has_many :project_topics, through: :project_topic_ralates has_many :commit_logs, dependent: :destroy has_many :daily_project_statistics, dependent: :destroy + has_one :project_dataset, 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 diff --git a/app/models/project_dataset.rb b/app/models/project_dataset.rb new file mode 100644 index 000000000..1de935529 --- /dev/null +++ b/app/models/project_dataset.rb @@ -0,0 +1,21 @@ +# == Schema Information +# +# Table name: project_datasets +# +# id :integer not null, primary key +# title :string(255) +# description :text(65535) +# project_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# index_project_datasets_on_project_id (project_id) +# + +class ProjectDataset < ApplicationRecord + + belongs_to :project + +end diff --git a/app/models/project_unit.rb b/app/models/project_unit.rb index 93e3668eb..8cf4ed6ab 100644 --- a/app/models/project_unit.rb +++ b/app/models/project_unit.rb @@ -17,7 +17,7 @@ class ProjectUnit < ApplicationRecord belongs_to :project - enum unit_type: {code: 1, issues: 2, pulls: 3, wiki:4, devops: 5, versions: 6, resources: 7, services: 8} + enum unit_type: {code: 1, issues: 2, pulls: 3, wiki:4, devops: 5, versions: 6, resources: 7, services: 8, dataset: 9} validates :unit_type, uniqueness: { scope: :project_id} diff --git a/db/migrate/20240401030707_create_project_datasets.rb b/db/migrate/20240401030707_create_project_datasets.rb new file mode 100644 index 000000000..7a2cfffcc --- /dev/null +++ b/db/migrate/20240401030707_create_project_datasets.rb @@ -0,0 +1,11 @@ +class CreateProjectDatasets < ActiveRecord::Migration[5.2] + def change + create_table :project_datasets do |t| + t.string :title + t.text :description + t.references :project + + t.timestamps + end + end +end