X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/da2803a65e696bf85883e82a0bda6ef81dda5429..c6ff7517791480b4bf45de0a64553c97c5d4fd17:/apps/workbench/app/models/arvados_base.rb diff --git a/apps/workbench/app/models/arvados_base.rb b/apps/workbench/app/models/arvados_base.rb index fbf7ee5e79..43f40d9f96 100644 --- a/apps/workbench/app/models/arvados_base.rb +++ b/apps/workbench/app/models/arvados_base.rb @@ -45,20 +45,25 @@ class ArvadosBase < ActiveRecord::Base return @columns unless @columns.nil? @columns = [] @attribute_info ||= {} - return @columns if $arvados_api_client.arvados_schema[self.to_s.to_sym].nil? - $arvados_api_client.arvados_schema[self.to_s.to_sym].each do |coldef| - k = coldef[:name].to_sym - if coldef[:type] == coldef[:type].downcase - @columns << column(k, coldef[:type].to_sym) + schema = $arvados_api_client.discovery[:schemas][self.to_s.to_sym] + return @columns if schema.nil? + schema[:properties].each do |k, coldef| + case k + when :etag, :kind + attr_reader k else - @columns << column(k, :text) - serialize k, coldef[:type].constantize + if coldef[:type] == coldef[:type].downcase + # boolean, integer, etc. + @columns << column(k, coldef[:type].to_sym) + else + # Hash, Array + @columns << column(k, :text) + serialize k, coldef[:type].constantize + end + attr_accessible k + @attribute_info[k] = coldef end - attr_accessible k - @attribute_info[k] = coldef end - attr_reader :etag - attr_reader :kind @columns end