Fix naming and tests

This commit is contained in:
aignatov-bio 2019-12-09 13:38:40 +01:00
parent 643abc3fd7
commit 09079fbcda
24 changed files with 182 additions and 183 deletions

View file

@ -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;
}

View file

@ -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();
}
}
};

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View 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

View file

@ -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}%")

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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} %>

View file

@ -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">

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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: -
--

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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