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