mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-10 16:31:22 +08:00
Add range column to RepositoryColumn
This commit is contained in:
parent
fe4aa12ced
commit
2a20ad68a3
4 changed files with 37 additions and 5 deletions
|
|
@ -15,12 +15,11 @@ class RepositoryColumn < ApplicationRecord
|
||||||
|
|
||||||
auto_strip_attributes :name, nullify: false
|
auto_strip_attributes :name, nullify: false
|
||||||
validates :name,
|
validates :name,
|
||||||
presence: true,
|
|
||||||
length: { maximum: Constants::NAME_MAX_LENGTH },
|
length: { maximum: Constants::NAME_MAX_LENGTH },
|
||||||
uniqueness: { scope: :repository_id, case_sensitive: true }
|
uniqueness: { scope: :repository_id, case_sensitive: true }
|
||||||
validates :created_by, presence: true
|
validates :name, :data_type, :repository, :created_by, presence: true
|
||||||
validates :repository, presence: true
|
validates :range, inclusion: { in: [true, false] }, if: :repository_date_time_value?
|
||||||
validates :data_type, presence: true
|
validates :range, absence: true, unless: :repository_date_time_value?
|
||||||
|
|
||||||
after_create :update_repository_table_states_with_new_column
|
after_create :update_repository_table_states_with_new_column
|
||||||
around_destroy :update_repository_table_states_with_removed_column
|
around_destroy :update_repository_table_states_with_removed_column
|
||||||
|
|
@ -33,6 +32,13 @@ class RepositoryColumn < ApplicationRecord
|
||||||
where('repository_columns.name ILIKE ?', "%#{query}%")
|
where('repository_columns.name ILIKE ?', "%#{query}%")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Add enum check method with underscores (eg repository_list_value)
|
||||||
|
data_types.each do |k, _|
|
||||||
|
define_method "#{k.underscore}?" do
|
||||||
|
public_send "#{k}?"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def update_repository_table_states_with_new_column
|
def update_repository_table_states_with_new_column
|
||||||
service = RepositoryTableStateColumnUpdateService.new
|
service = RepositoryTableStateColumnUpdateService.new
|
||||||
service.update_states_with_new_column(repository)
|
service.update_states_with_new_column(repository)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AddRangeToRepositoryColumn < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
add_column :repository_columns, :range, :boolean
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -1202,7 +1202,11 @@ CREATE TABLE public.repository_columns (
|
||||||
data_type integer NOT NULL,
|
data_type integer NOT NULL,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
updated_at timestamp without time zone,
|
updated_at timestamp without time zone,
|
||||||
|
<<<<<<< HEAD
|
||||||
delimiter character varying
|
delimiter character varying
|
||||||
|
=======
|
||||||
|
range boolean
|
||||||
|
>>>>>>> eedcec279... Add range column to RepositoryColumn
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -6853,6 +6857,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
||||||
('20191007144622'),
|
('20191007144622'),
|
||||||
('20191009146101'),
|
('20191009146101'),
|
||||||
('20191105143702'),
|
('20191105143702'),
|
||||||
('20191115143747');
|
('20191115143747'),
|
||||||
|
('20191118150111');
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,5 +48,19 @@ describe RepositoryColumn, type: :model do
|
||||||
describe '#data_type' do
|
describe '#data_type' do
|
||||||
it { is_expected.to validate_presence_of :data_type }
|
it { is_expected.to validate_presence_of :data_type }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#range' do
|
||||||
|
it do
|
||||||
|
allow(subject).to receive(:repository_date_time_value?).and_return(true)
|
||||||
|
|
||||||
|
expect(subject).to allow_value([true, false]).for(:range)
|
||||||
|
end
|
||||||
|
|
||||||
|
it do
|
||||||
|
allow(subject).to receive(:repository_date_time_value?).and_return(false)
|
||||||
|
|
||||||
|
expect(subject).to allow_value(nil).for(:range)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue