mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Fix naming and tests
This commit is contained in:
parent
643abc3fd7
commit
09079fbcda
|
@ -1,13 +1,13 @@
|
|||
/* global GLOBAL_CONSTANTS dropdownSelector RepositoryListColumnType */
|
||||
|
||||
var RepositoryCheckboxColumnType = (function() {
|
||||
var RepositoryChecklistColumnType = (function() {
|
||||
var manageModal = '#manage-repository-column';
|
||||
var delimiterDropdown = '.checkbox-column-type .delimiter';
|
||||
var itemsTextarea = '.checkbox-column-type .items-textarea';
|
||||
var previewContainer = '.checkbox-column-type .dropdown-preview';
|
||||
var dropdownOptions = '.checkbox-column-type .dropdown-options';
|
||||
var delimiterDropdown = '.checklist-column-type .delimiter';
|
||||
var itemsTextarea = '.checklist-column-type .items-textarea';
|
||||
var previewContainer = '.checklist-column-type .dropdown-preview';
|
||||
var dropdownOptions = '.checklist-column-type .dropdown-options';
|
||||
|
||||
function initCheckboxDropdown() {
|
||||
function initChecklistDropdown() {
|
||||
dropdownSelector.init(previewContainer + ' .preview-select', {
|
||||
noEmptyOption: true,
|
||||
optionClass: 'checkbox-icon',
|
||||
|
@ -22,7 +22,7 @@ var RepositoryCheckboxColumnType = (function() {
|
|||
|
||||
$manageModal
|
||||
.on('show.bs.modal', function() {
|
||||
setTimeout(() => { initCheckboxDropdown(); }, 200);
|
||||
setTimeout(() => { initChecklistDropdown(); }, 200);
|
||||
})
|
||||
.on('change keyup paste', itemsTextarea, function() {
|
||||
RepositoryListColumnType.refreshPreviewDropdownList(
|
||||
|
@ -31,7 +31,7 @@ var RepositoryCheckboxColumnType = (function() {
|
|||
delimiterDropdown,
|
||||
dropdownOptions
|
||||
);
|
||||
initCheckboxDropdown();
|
||||
initChecklistDropdown();
|
||||
})
|
||||
.on('change', delimiterDropdown, function() {
|
||||
RepositoryListColumnType.refreshPreviewDropdownList(
|
||||
|
@ -40,16 +40,16 @@ var RepositoryCheckboxColumnType = (function() {
|
|||
delimiterDropdown,
|
||||
dropdownOptions
|
||||
);
|
||||
initCheckboxDropdown();
|
||||
initChecklistDropdown();
|
||||
})
|
||||
.on('columnModal::partialLoadedForRepositoryCheckboxValue', function() {
|
||||
.on('columnModal::partialLoadedForRepositoryChecklistValue', function() {
|
||||
RepositoryListColumnType.refreshPreviewDropdownList(
|
||||
previewContainer,
|
||||
itemsTextarea,
|
||||
delimiterDropdown,
|
||||
dropdownOptions
|
||||
);
|
||||
initCheckboxDropdown();
|
||||
initChecklistDropdown();
|
||||
})
|
||||
.on('keyup change', columnNameInput, function() {
|
||||
$manageModal.find(previewContainer).find('.preview-label').html($manageModal.find(columnNameInput).val());
|
||||
|
@ -68,7 +68,7 @@ var RepositoryCheckboxColumnType = (function() {
|
|||
loadParams: () => {
|
||||
var repositoryColumnParams = {};
|
||||
var options = JSON.parse($(dropdownOptions).val());
|
||||
repositoryColumnParams.repository_checkbox_items_attributes = options;
|
||||
repositoryColumnParams.repository_checklist_items_attributes = options;
|
||||
repositoryColumnParams.delimiter = $(delimiterDropdown).data('used-delimiter');
|
||||
return repositoryColumnParams;
|
||||
}
|
|
@ -8,7 +8,7 @@ var RepositoryColumns = (function() {
|
|||
RepositoryDateValue: 'RepositoryDateColumnType',
|
||||
RepositoryDateTimeValue: 'RepositoryDateTimeColumnType',
|
||||
RepositoryTimeValue: 'RepositoryDateTimeColumnType',
|
||||
RepositoryCheckboxValue: 'RepositoryCheckboxColumnType'
|
||||
RepositoryChecklistValue: 'RepositoryChecklistColumnType'
|
||||
};
|
||||
|
||||
function initColumnTypeSelector() {
|
||||
|
@ -204,7 +204,7 @@ var RepositoryColumns = (function() {
|
|||
initManageColumnModal();
|
||||
RepositoryListColumnType.init();
|
||||
RepositoryStatusColumnType.init();
|
||||
RepositoryCheckboxColumnType.init();
|
||||
RepositoryChecklistColumnType.init();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module RepositoryColumns
|
||||
class CheckboxColumnsController < BaseColumnsController
|
||||
class ChecklistColumnsController < BaseColumnsController
|
||||
before_action :load_column, only: %i(update destroy)
|
||||
before_action :check_create_permissions, only: :create
|
||||
before_action :check_manage_permissions, only: %i(update destroy)
|
||||
|
@ -10,7 +10,7 @@ module RepositoryColumns
|
|||
def create
|
||||
service = RepositoryColumns::CreateColumnService
|
||||
.call(user: current_user, repository: @repository, team: current_team,
|
||||
column_type: Extends::REPOSITORY_DATA_TYPES[:RepositoryCheckboxValue],
|
||||
column_type: Extends::REPOSITORY_DATA_TYPES[:RepositoryChecklistValue],
|
||||
params: repository_column_params)
|
||||
|
||||
if service.succeed?
|
||||
|
@ -21,7 +21,7 @@ module RepositoryColumns
|
|||
end
|
||||
|
||||
def update
|
||||
service = RepositoryColumns::UpdateCheckboxColumnService
|
||||
service = RepositoryColumns::UpdateChecklistColumnService
|
||||
.call(user: current_user,
|
||||
team: current_team,
|
||||
column: @repository_column,
|
||||
|
@ -48,7 +48,7 @@ module RepositoryColumns
|
|||
private
|
||||
|
||||
def repository_column_params
|
||||
params.require(:repository_column).permit(:name, :delimiter, repository_checkbox_items_attributes: %i(data))
|
||||
params.require(:repository_column).permit(:name, :delimiter, repository_checklist_items_attributes: %i(data))
|
||||
end
|
||||
|
||||
def delimiters
|
|
@ -40,10 +40,10 @@ class RepositoryCell < ApplicationRecord
|
|||
end),
|
||||
optional: true, foreign_key: :value_id, inverse_of: :repository_cell
|
||||
|
||||
belongs_to :repository_checkbox_value,
|
||||
belongs_to :repository_checklist_value,
|
||||
(lambda do
|
||||
includes(:repository_cell)
|
||||
.where(repository_cells: { value_type: 'RepositoryCheckboxValue' })
|
||||
.where(repository_cells: { value_type: 'RepositoryChecklistValue' })
|
||||
end),
|
||||
optional: true, foreign_key: :value_id, inverse_of: :repository_cell
|
||||
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RepositoryCheckboxValue < ApplicationRecord
|
||||
belongs_to :created_by, foreign_key: 'created_by_id', class_name: 'User',
|
||||
inverse_of: :created_repository_checkbox_values
|
||||
belongs_to :last_modified_by, foreign_key: 'last_modified_by_id', class_name: 'User',
|
||||
inverse_of: :modified_repository_checkbox_values
|
||||
has_one :repository_cell, as: :value, dependent: :destroy, inverse_of: :value
|
||||
accepts_nested_attributes_for :repository_cell
|
||||
|
||||
SORTABLE_COLUMN_NAME = 'repository_checkboxes_items'
|
||||
SORTABLE_VALUE_INCLUDE = { repository_checkbox_value: :repository_checkbox_items }.freeze
|
||||
|
||||
def formatted
|
||||
data
|
||||
end
|
||||
|
||||
def data
|
||||
repository_cell.repository_column.repository_checkbox_items
|
||||
.where(id: repository_checkboxes_items).select(:id, :data)
|
||||
end
|
||||
end
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RepositoryCheckboxItem < ApplicationRecord
|
||||
class RepositoryChecklistItem < ApplicationRecord
|
||||
validates :data, presence: true,
|
||||
uniqueness: { scope: :repository_column_id, case_sensitive: false },
|
||||
length: { minimum: Constants::NAME_MIN_LENGTH,
|
||||
|
@ -8,7 +8,7 @@ class RepositoryCheckboxItem < ApplicationRecord
|
|||
belongs_to :repository, inverse_of: :repository_checklist_items
|
||||
belongs_to :repository_column
|
||||
belongs_to :created_by, foreign_key: 'created_by_id', class_name: 'User',
|
||||
inverse_of: :created_repository_checkbox_types
|
||||
inverse_of: :created_repository_checklist_types
|
||||
belongs_to :last_modified_by, foreign_key: 'last_modified_by_id', class_name: 'User',
|
||||
inverse_of: :modified_repository_checkbox_types
|
||||
inverse_of: :modified_repository_checklist_types
|
||||
end
|
22
app/models/repository_checklist_value.rb
Normal file
22
app/models/repository_checklist_value.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RepositoryChecklistValue < ApplicationRecord
|
||||
belongs_to :created_by, foreign_key: 'created_by_id', class_name: 'User',
|
||||
inverse_of: :created_repository_checklist_values
|
||||
belongs_to :last_modified_by, foreign_key: 'last_modified_by_id', class_name: 'User',
|
||||
inverse_of: :modified_repository_checklist_values
|
||||
has_one :repository_cell, as: :value, dependent: :destroy, inverse_of: :value
|
||||
accepts_nested_attributes_for :repository_cell
|
||||
|
||||
SORTABLE_COLUMN_NAME = 'repository_checklistitems'
|
||||
SORTABLE_VALUE_INCLUDE = { repository_checklist_value: :repository_checklist_items }.freeze
|
||||
|
||||
def formatted
|
||||
data
|
||||
end
|
||||
|
||||
def data
|
||||
repository_cell.repository_column.repository_checklist_items
|
||||
.where(id: repository_checklist_items).select(:id, :data)
|
||||
end
|
||||
end
|
|
@ -7,11 +7,11 @@ class RepositoryColumn < ApplicationRecord
|
|||
has_many :repository_rows, through: :repository_cells
|
||||
has_many :repository_list_items, dependent: :destroy, index_errors: true
|
||||
has_many :repository_status_items, dependent: :destroy, index_errors: true
|
||||
has_many :repository_checkbox_items, dependent: :destroy, index_errors: true
|
||||
has_many :repository_checklist_items, dependent: :destroy, index_errors: true
|
||||
|
||||
accepts_nested_attributes_for :repository_status_items, allow_destroy: true
|
||||
accepts_nested_attributes_for :repository_list_items, allow_destroy: true
|
||||
accepts_nested_attributes_for :repository_checkbox_items, allow_destroy: true
|
||||
accepts_nested_attributes_for :repository_checklist_items, allow_destroy: true
|
||||
|
||||
enum data_type: Extends::REPOSITORY_DATA_TYPES
|
||||
|
||||
|
@ -27,7 +27,7 @@ class RepositoryColumn < ApplicationRecord
|
|||
scope :list_type, -> { where(data_type: 'RepositoryListValue') }
|
||||
scope :asset_type, -> { where(data_type: 'RepositoryAssetValue') }
|
||||
scope :status_type, -> { where(data_type: 'RepositoryStatusValue') }
|
||||
scope :checkbox_type, -> { where(data_type: 'RepositoryCheckboxValue') }
|
||||
scope :checkbox_type, -> { where(data_type: 'RepositoryChecklistValue') }
|
||||
|
||||
def self.name_like(query)
|
||||
where('repository_columns.name ILIKE ?', "%#{query}%")
|
||||
|
|
|
@ -244,23 +244,23 @@ class User < ApplicationRecord
|
|||
foreign_key: 'last_modified_by_id',
|
||||
inverse_of: :last_modified_by,
|
||||
dependent: :nullify
|
||||
has_many :created_repository_checkbox_values,
|
||||
class_name: 'RepositoryCheckboxValue',
|
||||
has_many :created_repository_checklist_values,
|
||||
class_name: 'RepositoryChecklistValue',
|
||||
foreign_key: 'created_by_id',
|
||||
inverse_of: :created_by,
|
||||
dependent: :nullify
|
||||
has_many :modified_repository_checkbox_values,
|
||||
class_name: 'RepositoryCheckboxValue',
|
||||
has_many :modified_repository_checklist_values,
|
||||
class_name: 'RepositoryChecklistValue',
|
||||
foreign_key: 'last_modified_by_id',
|
||||
inverse_of: :last_modified_by,
|
||||
dependent: :nullify
|
||||
has_many :created_repository_checkbox_types,
|
||||
class_name: 'RepositoryCheckboxItem',
|
||||
has_many :created_repository_checklist_types,
|
||||
class_name: 'RepositoryChecklistItem',
|
||||
foreign_key: 'created_by_id',
|
||||
inverse_of: :created_by,
|
||||
dependent: :nullify
|
||||
has_many :modified_repository_checkbox_types,
|
||||
class_name: 'RepositoryCheckboxItem',
|
||||
has_many :modified_repository_checklist_types,
|
||||
class_name: 'RepositoryChecklistItem',
|
||||
foreign_key: 'last_modified_by_id',
|
||||
inverse_of: :last_modified_by,
|
||||
dependent: :nullify
|
||||
|
|
|
@ -33,7 +33,7 @@ module RepositoryColumns
|
|||
m.merge!(repository_id: @repository.id, created_by_id: @user.id, last_modified_by_id: @user.id)
|
||||
end
|
||||
|
||||
@params[:repository_checkbox_items_attributes]&.map do |m|
|
||||
@params[:repository_checklist_items_attributes]&.map do |m|
|
||||
m.merge!(repository_id: @repository.id, created_by_id: @user.id, last_modified_by_id: @user.id)
|
||||
end
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module RepositoryColumns
|
||||
class UpdateCheckboxColumnService < RepositoryColumns::ColumnService
|
||||
class UpdateChecklistColumnService < RepositoryColumns::ColumnService
|
||||
def initialize(user:, team:, column:, params:)
|
||||
super(user: user, repository: column.repository, team: team, column_name: nil)
|
||||
@column = column
|
||||
|
@ -13,7 +13,7 @@ module RepositoryColumns
|
|||
|
||||
@column.lock!
|
||||
|
||||
updating_items_names = @params[:repository_checkbox_items_attributes].to_a.map { |e| e[:data] }
|
||||
updating_items_names = @params[:repository_checklist_items_attributes].to_a.map { |e| e[:data] }
|
||||
existing_items_names = @column.repository_checkbox_items.pluck(:data)
|
||||
to_be_deleted = existing_items_names - updating_items_names
|
||||
to_be_created = updating_items_names - existing_items_names
|
||||
|
@ -21,7 +21,7 @@ module RepositoryColumns
|
|||
if @column.repository_list_items.size - to_be_deleted.size + to_be_created.size >=
|
||||
Constants::REPOSITORY_LIST_ITEMS_PER_COLUMN
|
||||
|
||||
@errors[:repository_column] = { repository_checkbox_items: 'too many items' }
|
||||
@errors[:repository_column] = { repository_checklist_items: 'too many items' }
|
||||
end
|
||||
return self unless valid?
|
||||
|
||||
|
@ -34,7 +34,7 @@ module RepositoryColumns
|
|||
end
|
||||
|
||||
to_be_created.each do |item|
|
||||
RepositoryCheckboxItem.create!(
|
||||
RepositoryChecklistItem.create!(
|
||||
repository: @repository,
|
||||
repository_column: @column,
|
||||
data: item,
|
||||
|
@ -43,7 +43,7 @@ module RepositoryColumns
|
|||
)
|
||||
end
|
||||
rescue ActiveRecord::RecordInvalid => e
|
||||
@errors[:repository_column] = { repository_checkbox_item: e.message }
|
||||
@errors[:repository_column] = { repository_checklist_item: e.message }
|
||||
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
|
@ -75,17 +75,17 @@
|
|||
<%= t('libraries.manange_modal_column.select.repository_date_time_value') %>
|
||||
</option>
|
||||
|
||||
<option data-create-url="<%= repository_repository_columns_checkbox_columns_path(@repository) %>"
|
||||
data-edit-url="<%= repository_repository_columns_checkbox_column_path(@repository, @repository_column) unless @repository_column.new_record? %>"
|
||||
value="RepositoryCheckboxValue"
|
||||
<%= 'selected' if @repository_column.repository_checkbox_value? %> >
|
||||
<option data-create-url="<%= repository_repository_columns_checklist_columns_path(@repository) %>"
|
||||
data-edit-url="<%= repository_repository_columns_checklist_column_path(@repository, @repository_column) unless @repository_column.new_record? %>"
|
||||
value="RepositoryChecklistValue"
|
||||
<%= 'selected' if @repository_column.repository_checklist_value? %> >
|
||||
<%= t('libraries.manange_modal_column.select.repository_checklist_value') %>
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<% columns = ['text', 'asset', 'list', 'status', 'date', 'time', 'datetime', 'checkbox'] %>
|
||||
<% columns = ['text', 'asset', 'list', 'status', 'date', 'time', 'datetime', 'checklist'] %>
|
||||
<% columns.each do |column| %>
|
||||
<span style="display: none" class="column-type <%= column %>-column-type" data-column-type="Repository<%= column.capitalize %>Value">
|
||||
<%= render partial: "repository_columns/manage_column_partials/#{column}.html.erb", locals: {column: @repository_column} %>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<%= t('libraries.manange_modal_column.checklist_type.checklist_items') %>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<%= text_area_tag 'items-textarea', column.repository_checkbox_items.pluck(:data).join(selected_delimiter_char), rows: 10, class: 'form-control items-textarea' %>
|
||||
<%= text_area_tag 'items-textarea', column.repository_checklist_items.pluck(:data).join(selected_delimiter_char), rows: 10, class: 'form-control items-textarea' %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-preview">
|
|
@ -52,8 +52,7 @@ class Extends
|
|||
RepositoryDateTimeRangeValue: 7,
|
||||
RepositoryTimeRangeValue: 8,
|
||||
RepositoryDateRangeValue: 9,
|
||||
RepositoryCheckboxValue: 10,
|
||||
}
|
||||
RepositoryChecklistValue: 10 }
|
||||
|
||||
# Data types which can be imported to repository,
|
||||
# name should match record in REPOSITORY_DATA_TYPES
|
||||
|
|
|
@ -587,7 +587,7 @@ Rails.application.routes.draw do
|
|||
resources :list_columns, only: %i(create update destroy)
|
||||
resources :asset_columns, only: %i(create update destroy)
|
||||
resources :date_time_columns, only: %i(create update destroy)
|
||||
resources :checkbox_columns, only: %i(create update destroy)
|
||||
resources :checklist_columns, only: %i(create update destroy)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateRepositoryCheckboxItems < ActiveRecord::Migration[6.0]
|
||||
class CreateRepositoryChecklistItems < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
create_table :repository_checkbox_items do |t|
|
||||
create_table :repository_checklist_items do |t|
|
||||
t.string :data, null: false, index: true
|
||||
t.references :repository, null: false, foreign_key: true
|
||||
t.references :repository_column, null: false, foreign_key: true
|
|
@ -1,11 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CreateRepositoryCheckboxValues < ActiveRecord::Migration[6.0]
|
||||
class CreateRepositoryChecklistValues < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
create_table :repository_checkbox_values do |t|
|
||||
create_table :repository_checklist_values do |t|
|
||||
t.references :created_by, index: true, foreign_key: { to_table: :users }, null: true
|
||||
t.references :last_modified_by, index: true, foreign_key: { to_table: :users }, null: true
|
||||
t.jsonb :repository_checkboxes_items,
|
||||
t.jsonb :repository_checklist_items,
|
||||
|
||||
t.timestamps
|
||||
end
|
170
db/structure.sql
170
db/structure.sql
|
@ -1177,10 +1177,10 @@ ALTER SEQUENCE public.repository_cells_id_seq OWNED BY public.repository_cells.i
|
|||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items; Type: TABLE; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_items; Type: TABLE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE TABLE public.repository_checkbox_items (
|
||||
CREATE TABLE public.repository_checklist_items (
|
||||
id bigint NOT NULL,
|
||||
data character varying NOT NULL,
|
||||
repository_id bigint NOT NULL,
|
||||
|
@ -1193,10 +1193,10 @@ CREATE TABLE public.repository_checkbox_items (
|
|||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_items_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE SEQUENCE public.repository_checkbox_items_id_seq
|
||||
CREATE SEQUENCE public.repository_checklist_items_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
|
@ -1205,32 +1205,32 @@ CREATE SEQUENCE public.repository_checkbox_items_id_seq
|
|||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER SEQUENCE public.repository_checkbox_items_id_seq OWNED BY public.repository_checkbox_items.id;
|
||||
ALTER SEQUENCE public.repository_checklist_items_id_seq OWNED BY public.repository_checklist_items.id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values; Type: TABLE; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_values; Type: TABLE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE TABLE public.repository_checkbox_values (
|
||||
CREATE TABLE public.repository_checklist_values (
|
||||
id bigint NOT NULL,
|
||||
created_by_id bigint,
|
||||
last_modified_by_id bigint,
|
||||
created_at timestamp(6) without time zone NOT NULL,
|
||||
updated_at timestamp(6) without time zone NOT NULL,
|
||||
repository_checkboxes_items jsonb,
|
||||
repository_checklist_items jsonb,
|
||||
"#<ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition" jsonb
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_values_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE SEQUENCE public.repository_checkbox_values_id_seq
|
||||
CREATE SEQUENCE public.repository_checklist_values_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
|
@ -1239,10 +1239,10 @@ CREATE SEQUENCE public.repository_checkbox_values_id_seq
|
|||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_values_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER SEQUENCE public.repository_checkbox_values_id_seq OWNED BY public.repository_checkbox_values.id;
|
||||
ALTER SEQUENCE public.repository_checklist_values_id_seq OWNED BY public.repository_checklist_values.id;
|
||||
|
||||
|
||||
--
|
||||
|
@ -2940,17 +2940,17 @@ ALTER TABLE ONLY public.repository_cells ALTER COLUMN id SET DEFAULT nextval('pu
|
|||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items id; Type: DEFAULT; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_items id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_items ALTER COLUMN id SET DEFAULT nextval('public.repository_checkbox_items_id_seq'::regclass);
|
||||
ALTER TABLE ONLY public.repository_checklist_items ALTER COLUMN id SET DEFAULT nextval('public.repository_checklist_items_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values id; Type: DEFAULT; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_values id; Type: DEFAULT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_values ALTER COLUMN id SET DEFAULT nextval('public.repository_checkbox_values_id_seq'::regclass);
|
||||
ALTER TABLE ONLY public.repository_checklist_values ALTER COLUMN id SET DEFAULT nextval('public.repository_checklist_values_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
|
@ -3502,19 +3502,19 @@ ALTER TABLE ONLY public.repository_cells
|
|||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items repository_checkbox_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_items repository_checklist_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_items
|
||||
ADD CONSTRAINT repository_checkbox_items_pkey PRIMARY KEY (id);
|
||||
ALTER TABLE ONLY public.repository_checklist_items
|
||||
ADD CONSTRAINT repository_checklist_items_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values repository_checkbox_values_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||
-- Name: repository_checklist_values repository_checklist_values_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_values
|
||||
ADD CONSTRAINT repository_checkbox_values_pkey PRIMARY KEY (id);
|
||||
ALTER TABLE ONLY public.repository_checklist_values
|
||||
ADD CONSTRAINT repository_checklist_values_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
|
@ -4683,52 +4683,52 @@ CREATE INDEX index_repository_cells_on_value_type_and_value_id ON public.reposit
|
|||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_items_on_created_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_items_on_created_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_items_on_created_by_id ON public.repository_checkbox_items USING btree (created_by_id);
|
||||
CREATE INDEX index_repository_checklist_items_on_created_by_id ON public.repository_checklist_items USING btree (created_by_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_items_on_data; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_items_on_data; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_items_on_data ON public.repository_checkbox_items USING btree (data);
|
||||
CREATE INDEX index_repository_checklist_items_on_data ON public.repository_checklist_items USING btree (data);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_items_on_last_modified_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_items_on_last_modified_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_items_on_last_modified_by_id ON public.repository_checkbox_items USING btree (last_modified_by_id);
|
||||
CREATE INDEX index_repository_checklist_items_on_last_modified_by_id ON public.repository_checklist_items USING btree (last_modified_by_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_items_on_repository_column_id; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_items_on_repository_column_id; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_items_on_repository_column_id ON public.repository_checkbox_items USING btree (repository_column_id);
|
||||
CREATE INDEX index_repository_checklist_items_on_repository_column_id ON public.repository_checklist_items USING btree (repository_column_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_items_on_repository_id; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_items_on_repository_id; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_items_on_repository_id ON public.repository_checkbox_items USING btree (repository_id);
|
||||
CREATE INDEX index_repository_checklist_items_on_repository_id ON public.repository_checklist_items USING btree (repository_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_values_on_created_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_values_on_created_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_values_on_created_by_id ON public.repository_checkbox_values USING btree (created_by_id);
|
||||
CREATE INDEX index_repository_checklist_values_on_created_by_id ON public.repository_checklist_values USING btree (created_by_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: index_repository_checkbox_values_on_last_modified_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
-- Name: index_repository_checklist_values_on_last_modified_by_id; Type: INDEX; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
CREATE INDEX index_repository_checkbox_values_on_last_modified_by_id ON public.repository_checkbox_values USING btree (last_modified_by_id);
|
||||
CREATE INDEX index_repository_checklist_values_on_last_modified_by_id ON public.repository_checklist_values USING btree (last_modified_by_id);
|
||||
|
||||
|
||||
--
|
||||
|
@ -5639,6 +5639,14 @@ ALTER TABLE ONLY public.report_elements
|
|||
ADD CONSTRAINT fk_rails_0510000a52 FOREIGN KEY (table_id) REFERENCES public.tables(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checklist_items fk_rails_07ea1cc259; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checklist_items
|
||||
ADD CONSTRAINT fk_rails_07ea1cc259 FOREIGN KEY (repository_id) REFERENCES public.repositories(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: assets fk_rails_0916329f9e; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -5687,14 +5695,6 @@ ALTER TABLE ONLY public.team_repositories
|
|||
ADD CONSTRAINT fk_rails_15daa6a6bf FOREIGN KEY (repository_id) REFERENCES public.repositories(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items fk_rails_172e06de39; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_items
|
||||
ADD CONSTRAINT fk_rails_172e06de39 FOREIGN KEY (repository_column_id) REFERENCES public.repository_columns(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: zip_exports fk_rails_1952fc2261; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -5719,14 +5719,6 @@ ALTER TABLE ONLY public.user_system_notifications
|
|||
ADD CONSTRAINT fk_rails_20d9487a3c FOREIGN KEY (system_notification_id) REFERENCES public.system_notifications(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items fk_rails_2213a211ed; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_items
|
||||
ADD CONSTRAINT fk_rails_2213a211ed FOREIGN KEY (created_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_list_items fk_rails_2335e4c02c; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -5967,6 +5959,14 @@ ALTER TABLE ONLY public.user_teams
|
|||
ADD CONSTRAINT fk_rails_64c25f3fe6 FOREIGN KEY (team_id) REFERENCES public.teams(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checklist_items fk_rails_664f0498be; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checklist_items
|
||||
ADD CONSTRAINT fk_rails_664f0498be FOREIGN KEY (last_modified_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: projects fk_rails_6981ffffd4; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6159,6 +6159,14 @@ ALTER TABLE ONLY public.repository_date_time_range_values
|
|||
ADD CONSTRAINT fk_rails_87cdb60fa9 FOREIGN KEY (created_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checklist_items fk_rails_885781d47e; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checklist_items
|
||||
ADD CONSTRAINT fk_rails_885781d47e FOREIGN KEY (created_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: checklist_items fk_rails_887d280d4d; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6255,14 +6263,6 @@ ALTER TABLE ONLY public.steps
|
|||
ADD CONSTRAINT fk_rails_954ff833e4 FOREIGN KEY (protocol_id) REFERENCES public.protocols(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items fk_rails_9618d4ece4; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_items
|
||||
ADD CONSTRAINT fk_rails_9618d4ece4 FOREIGN KEY (last_modified_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: step_tables fk_rails_97489f2789; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6279,6 +6279,14 @@ ALTER TABLE ONLY public.user_teams
|
|||
ADD CONSTRAINT fk_rails_978858c8ea FOREIGN KEY (user_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checklist_values fk_rails_98a7704432; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checklist_values
|
||||
ADD CONSTRAINT fk_rails_98a7704432 FOREIGN KEY (last_modified_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: activities fk_rails_992865be13; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6335,14 +6343,6 @@ ALTER TABLE ONLY public.my_module_repository_rows
|
|||
ADD CONSTRAINT fk_rails_9e9b0a61ec FOREIGN KEY (assigned_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values fk_rails_a00e6ff30c; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_values
|
||||
ADD CONSTRAINT fk_rails_a00e6ff30c FOREIGN KEY (last_modified_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: teams fk_rails_a068b3a692; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6351,6 +6351,14 @@ ALTER TABLE ONLY public.teams
|
|||
ADD CONSTRAINT fk_rails_a068b3a692 FOREIGN KEY (created_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checklist_items fk_rails_a08ff8e2ba; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checklist_items
|
||||
ADD CONSTRAINT fk_rails_a08ff8e2ba FOREIGN KEY (repository_column_id) REFERENCES public.repository_columns(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: my_module_groups fk_rails_a0acffc536; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6607,6 +6615,14 @@ ALTER TABLE ONLY public.user_notifications
|
|||
ADD CONSTRAINT fk_rails_d238d8ef07 FOREIGN KEY (notification_id) REFERENCES public.notifications(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checklist_values fk_rails_d2f015ade2; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checklist_values
|
||||
ADD CONSTRAINT fk_rails_d2f015ade2 FOREIGN KEY (created_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: activities fk_rails_d3946086d2; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6711,14 +6727,6 @@ ALTER TABLE ONLY public.my_modules
|
|||
ADD CONSTRAINT fk_rails_e21638fa54 FOREIGN KEY (last_modified_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_values fk_rails_e2854094f0; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_values
|
||||
ADD CONSTRAINT fk_rails_e2854094f0 FOREIGN KEY (created_by_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: checklists fk_rails_e49efc98e6; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
@ -6823,14 +6831,6 @@ ALTER TABLE ONLY public.team_repositories
|
|||
ADD CONSTRAINT fk_rails_f99472b670 FOREIGN KEY (team_id) REFERENCES public.teams(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: repository_checkbox_items fk_rails_fa96e470fa; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.repository_checkbox_items
|
||||
ADD CONSTRAINT fk_rails_fa96e470fa FOREIGN KEY (repository_id) REFERENCES public.repositories(id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: sample_groups fk_rails_fc2ab1a001; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||
--
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe RepositoryColumns::CheckboxColumnsController, type: :controller do
|
||||
RSpec.describe RepositoryColumns::ChecklistColumnsController, type: :controller do
|
||||
login_user
|
||||
|
||||
let(:user) { subject.current_user }
|
||||
|
@ -11,7 +11,7 @@ RSpec.describe RepositoryColumns::CheckboxColumnsController, type: :controller d
|
|||
let(:repository) { create :repository, created_by: user, team: team }
|
||||
let(:repository_column) { create(:repository_column, :status_type, repository: repository) }
|
||||
|
||||
describe 'POST repository_checkbox_columns, #create' do
|
||||
describe 'POST repository_checklist_columns, #create' do
|
||||
let(:action) { post :create, params: params }
|
||||
let(:params) do
|
||||
{
|
||||
|
@ -103,7 +103,7 @@ RSpec.describe RepositoryColumns::CheckboxColumnsController, type: :controller d
|
|||
allow(service).to(receive(:succeed?)).and_return(true)
|
||||
allow(service).to(receive(:column)).and_return(repository_column)
|
||||
|
||||
allow_any_instance_of(RepositoryColumns::UpdateListColumnService).to(receive(:call)).and_return(service)
|
||||
allow_any_instance_of(RepositoryColumns::UpdateChecklistColumnService).to(receive(:call)).and_return(service)
|
||||
end
|
||||
|
||||
context 'when columnd is updated' do
|
||||
|
@ -151,7 +151,7 @@ RSpec.describe RepositoryColumns::CheckboxColumnsController, type: :controller d
|
|||
allow(service).to(receive(:succeed?)).and_return(false)
|
||||
allow(service).to(receive(:errors)).and_return({})
|
||||
|
||||
allow_any_instance_of(RepositoryColumns::UpdateCheckboxColumnService).to(receive(:call)).and_return(service)
|
||||
allow_any_instance_of(RepositoryColumns::UpdateChecklistColumnService).to(receive(:call)).and_return(service)
|
||||
end
|
||||
|
||||
it 'respons with status 422' do
|
|
@ -1,10 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
FactoryBot.define do
|
||||
factory :repository_checkbox_item do
|
||||
factory :repository_checklist_item do
|
||||
data { Faker::Lorem.paragraph }
|
||||
repository
|
||||
repository_column { create :repository_column, :checkbox_type, repository: repository }
|
||||
repository_column { create :repository_column, :checklist_type, repository: repository }
|
||||
created_by { create :user }
|
||||
last_modified_by { created_by }
|
||||
end
|
|
@ -1,9 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
FactoryBot.define do
|
||||
factory :repository_checkbox_value do
|
||||
factory :repository_checklist_value do
|
||||
created_by { create :user }
|
||||
last_modified_by { created_by }
|
||||
repository_checkboxes_items { [] }
|
||||
repository_checklist_items { [] }
|
||||
end
|
||||
end
|
|
@ -47,8 +47,8 @@ FactoryBot.define do
|
|||
data_type { :RepositoryTimeRangeValue }
|
||||
end
|
||||
|
||||
trait :checkbox_type do
|
||||
data_type { :RepositoryCheckboxValue }
|
||||
trait :checklist_type do
|
||||
data_type { :RepositoryChecklistValue }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,15 +2,15 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe RepositoryCheckboxItem, type: :model do
|
||||
let(:repository_checkbox_item) { build :repository_checkbox_item }
|
||||
RSpec.describe RepositoryChecklistItem, type: :model do
|
||||
let(:repository_checklist_item) { build :repository_checklist_item }
|
||||
|
||||
it 'is valid' do
|
||||
expect(repository_checkbox_item).to be_valid
|
||||
expect(repository_checklist_item).to be_valid
|
||||
end
|
||||
|
||||
it 'should be of class RepositoryListItem' do
|
||||
expect(subject.class).to eq RepositoryCheckboxItem
|
||||
it 'should be of class RepositoryChecklistItem' do
|
||||
expect(subject.class).to eq RepositoryChecklistItem
|
||||
end
|
||||
|
||||
describe 'Database table' do
|
||||
|
@ -33,7 +33,7 @@ RSpec.describe RepositoryCheckboxItem, type: :model do
|
|||
it { is_expected.to validate_presence_of(:data) }
|
||||
it { is_expected.to validate_length_of(:data).is_at_most(Constants::NAME_MAX_LENGTH) }
|
||||
it {
|
||||
expect(repository_checkbox_item).to validate_uniqueness_of(:data)
|
||||
expect(repository_checklist_item).to validate_uniqueness_of(:data)
|
||||
.scoped_to(:repository_column_id).case_insensitive
|
||||
}
|
||||
end
|
|
@ -2,21 +2,21 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe RepositoryCheckboxValue, type: :model do
|
||||
let(:repository_checkbox_value) { build :repository_checkbox_value }
|
||||
RSpec.describe RepositoryChecklistValue, type: :model do
|
||||
let(:repository_checklist_value) { build :repository_checklist_value }
|
||||
|
||||
it 'is valid' do
|
||||
expect(repository_checkbox_value).to be_valid
|
||||
expect(repository_checklist_value).to be_valid
|
||||
end
|
||||
|
||||
it 'should be of class RepositoryCheckboxValue' do
|
||||
expect(subject.class).to eq RepositoryCheckboxValue
|
||||
it 'should be of class RepositoryChecklistValue' do
|
||||
expect(subject.class).to eq RepositoryChecklistValue
|
||||
end
|
||||
|
||||
describe 'Database table' do
|
||||
it { should have_db_column :created_by_id }
|
||||
it { should have_db_column :last_modified_by_id }
|
||||
it { should have_db_column :repository_checkboxes_items }
|
||||
it { should have_db_column :repository_checklist_items }
|
||||
end
|
||||
|
||||
describe 'Relations' do
|
Loading…
Reference in a new issue