lib/avo/base_resource.rb in avo-1.4.4.pre.1 vs lib/avo/base_resource.rb in avo-1.4.4
- old
+ new
@@ -9,11 +9,11 @@
attr_accessor :user
attr_accessor :params
class_attribute :id, default: :id
class_attribute :title, default: :id
- class_attribute :search_query, default: nil
+ class_attribute :search, default: [:id]
class_attribute :includes, default: []
class_attribute :model_class
class_attribute :translation_key
class_attribute :default_view_type, default: :table
class_attribute :devise_password_optional, default: false
@@ -40,24 +40,12 @@
def filter(filter_class)
self.filters_loader ||= Avo::Loaders::Loader.new
self.filters_loader.use filter_class
end
-
- def scope
- authorization.apply_policy model_class
- end
-
- def authorization
- Avo::Services::AuthorizationService.new Avo::App.current_user
- end
end
- def initialize
- self.class.model_class = model_class
- end
-
def hydrate(model: nil, view: nil, user: nil, params: nil)
@view = view if view.present?
@user = user if user.present?
@params = params if params.present?
@@ -75,11 +63,11 @@
fields = self.class.fields.map do |field|
field.hydrate(resource: self, panel_name: default_panel_name, user: user)
end
- if Avo::App.license.has_with_trial(:custom_fields)
+ if Avo::App.license.invalid? || Avo::App.license.lacks(:custom_fields)
fields = fields.reject do |field|
field.custom?
end
end
@@ -106,13 +94,13 @@
fields = fields.select do |field|
field.panel_name == panel
end
end
- hydrate_fields(model: @model, view: @view)
-
- fields
+ fields.map do |field|
+ field.hydrate(model: @model, view: @view, resource: self)
+ end
end
def get_grid_fields
return if self.class.grid_loader.blank?
@@ -129,20 +117,12 @@
return [] if self.class.actions_loader.blank?
self.class.actions_loader.bag
end
- def hydrate_fields(model: nil, view: nil)
- fields.map do |field|
- field.hydrate(model: @model, view: @view, resource: self)
- end
-
- self
- end
-
def default_panel_name
- return @params[:related_name].capitalize if @params.present? && @params[:related_name].present?
+ return @params[:related_name].capitalize if @params[:related_name].present?
case @view
when :show
I18n.t("avo.resource_details", item: name.downcase, title: model_title).upcase_first
when :edit
@@ -244,15 +224,11 @@
end
end
def fill_model(model, params)
# Map the received params to their actual fields
- fields_by_database_id = get_field_definitions
- .reject do |field|
- field.computed
- end
- .map { |field| [field.database_id(model).to_s, field] }.to_h
+ fields_by_database_id = get_field_definitions.map { |field| [field.database_id(model).to_s, field] }.to_h
params.each do |key, value|
field = fields_by_database_id[key]
next unless field.present?
@@ -322,60 +298,8 @@
default_values.each do |id, value|
if @model.send(id).nil?
@model.send("#{id}=", value)
end
end
- end
-
- def avo_path
- "#{Avo.configuration.root_path}/resources/#{model_class.model_name.route_key}/#{model.id}"
- end
-
- def label_field
- get_field_definitions.find do |field|
- field.as_label.present?
- end
- rescue
- nil
- end
-
- def label
- label_field.value || model_title
- rescue
- model_title
- end
-
- def avatar_field
- get_field_definitions.find do |field|
- field.as_avatar.present?
- end
- rescue
- nil
- end
-
- def avatar
- avatar_field.to_image
- rescue
- nil
- end
-
- def avatar_type
- avatar_field.as_avatar
- rescue
- nil
- end
-
- def description_field
- get_field_definitions.find do |field|
- field.as_description.present?
- end
- rescue
- nil
- end
-
- def description
- description_field.value
- rescue
- nil
end
end
end