avo-hq/avo

Add option to configure via_per_page on has_many

Open

#2,661 opened on Apr 4, 2024

View on GitHub
 (8 comments) (2 reactions) (1 assignee)Ruby (308 forks)user submission
ConfigurationEnhancementHelp wanted

Repository metrics

Stars
 (1,778 stars)
PR merge metrics
 (Avg merge 1d 6h) (67 merged PRs in 30d)

Description

Feature

Currently, it seems only possible to set a global via_per_page.

It would be useful to have the ability to override that value in the resource itself.

API could be something like:

module Avo
  module Resources
    class CatalogProduct < Avo::BaseResource
      def fields
         field :certifications, as: :has_many, per_page: 72
      end
  end
end

or alternatively, we could default it per resource.

module Avo
  module Resources
    class CatalogCertification < Avo::BaseResource
      self.via_per_page = 72
      self.per_page = 24
      def fields
        # ...
      end
  end
end

This is useful because in most case, we want a smaller pagination window, but we do have a few workflows where it's useful to see a large amount of items for triggering action on a batch of records.

Current workarounds

Not aware of any

Screenshots or screen recordings

Additional context

Contributor guide