module Formalism::ModelForms::List

Base form for model listing

Constants

EAGER

Public Instance Methods

dataset() click to toggle source
# File lib/formalism/model_forms/list.rb, line 44
        def dataset
        return select_cached if @cached

        dataset =
                ordered_unfiltered_dataset
                        .where(conditions_for_dataset)
                        .eager(*self.class::EAGER)

        return dataset unless dataset.respond_to? :search

        dataset.search(search_query, self.class.search_fields)
end
dataset_edges() click to toggle source
# File lib/formalism/model_forms/list.rb, line 57
        def dataset_edges
        [dataset.first, dataset.last]
end

Private Instance Methods

cached_dataset_for_execute() click to toggle source
# File lib/formalism/model_forms/list.rb, line 85
def cached_dataset_for_execute
        limit_by_page ? dataset[limit_by_page] : dataset
end
execute() click to toggle source
# File lib/formalism/model_forms/list.rb, line 63
def execute
        self.instance =
                if dataset
                        if @cached
                        then cached_dataset_for_execute
                        else non_cached_dataset_for_execute.all
                        end
                else
                        []
                end
end
non_cached_dataset_for_execute() click to toggle source
# File lib/formalism/model_forms/list.rb, line 89
def non_cached_dataset_for_execute
        dataset.where(
                primary_field_name => dataset.select(primary_field_name).limit(limit_by_page)
        )
end
ordered_unfiltered_dataset() click to toggle source
# File lib/formalism/model_forms/list.rb, line 79
def ordered_unfiltered_dataset
        result = unfiltered_dataset.from_self(alias: model.table_name)
        result = result.reverse_order(:created_at) unless unfiltered_dataset.opts[:order]
        result
end
unfiltered_dataset() click to toggle source
# File lib/formalism/model_forms/list.rb, line 75
def unfiltered_dataset
        model.dataset
end