From fad4001273464e2d1da823345108f84625610b1d Mon Sep 17 00:00:00 2001 From: zmagod Date: Fri, 16 Mar 2018 12:27:19 +0100 Subject: [PATCH] fix edit row action --- app/controllers/repository_rows_controller.rb | 5 ++-- app/models/repository_cell.rb | 4 --- app/services/repository_datatable_service.rb | 28 +++++++------------ 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/app/controllers/repository_rows_controller.rb b/app/controllers/repository_rows_controller.rb index 69ffc99a3..e8c191253 100644 --- a/app/controllers/repository_rows_controller.rb +++ b/app/controllers/repository_rows_controller.rb @@ -148,8 +148,9 @@ class RepositoryRowsController < ApplicationController repository_column: existing.repository_column ).find(value) unless value == '-1' if item - existing.repository_list_value - .update_attribute(:repository_list_item_id, item) + existing.value.update_attribute( + :repository_list_item_id, item.id + ) else existing.delete end diff --git a/app/models/repository_cell.rb b/app/models/repository_cell.rb index 624cda356..19474bc56 100644 --- a/app/models/repository_cell.rb +++ b/app/models/repository_cell.rb @@ -28,10 +28,6 @@ class RepositoryCell < ActiveRecord::Base validates :repository_row, uniqueness: { scope: :repository_column } - belongs_to :repository_text_value, optional: true, foreign_key: :value_id - belongs_to :repository_date_value, optional: true, foreign_key: :value_id - belongs_to :repository_list_value, optional: true, foreign_key: :value_id - private def repository_column_data_type diff --git a/app/services/repository_datatable_service.rb b/app/services/repository_datatable_service.rb index a3f3c0ceb..227ba85ea 100644 --- a/app/services/repository_datatable_service.rb +++ b/app/services/repository_datatable_service.rb @@ -61,22 +61,14 @@ class RepositoryDatatableService end def search(value) - includes_json = { - repository_cells: [ - :repository_text_value, - repository_list_value: :repository_list_item - ] - } - RepositoryRow .left_outer_joins(:created_by) - .left_outer_joins(includes_json) - .where(repository: @repository) - .where_attributes_like( - ['repository_rows.name', - 'users.full_name', - 'repository_text_values.data', - 'repository_list_items.data'], - value - ) + includes_json = { repository_cells: Extends::REPOSITORY_SEARCH_INCLUDES } + searchable_attributes = ['repository_rows.name', 'users.full_name'] + + Extends::REPOSITORY_EXTRA_SEARCH_ATTR + + RepositoryRow.left_outer_joins(:created_by) + .left_outer_joins(includes_json) + .where(repository: @repository) + .where_attributes_like(searchable_attributes, value) end def build_conditions(params) @@ -101,8 +93,8 @@ class RepositoryDatatableService end def sort_rows(column_obj, records) - dir = %w(DESC ASC).find do |dir| - dir == column_obj[:dir].upcase + dir = %w(DESC ASC).find do |direction| + direction == column_obj[:dir].upcase end || 'ASC' column_index = column_obj[:column] col_order = @repository.repository_table_states