diff options
| author | Zog | 2018-01-19 08:50:52 +0100 | 
|---|---|---|
| committer | Zog | 2018-02-02 14:31:32 +0100 | 
| commit | 650b75f8e3eba73a450d4b5aed6dde006346a571 (patch) | |
| tree | f68f8bf1f83e918176e07582df896d4e6d7f0cbc /app/services | |
| parent | c13c94fe665fdbe2c434c8bfadd44a0988ecea60 (diff) | |
| download | chouette-core-650b75f8e3eba73a450d4b5aed6dde006346a571.tar.bz2 | |
Refs #3542; Adds pagination
Diffstat (limited to 'app/services')
| -rw-r--r-- | app/services/referential_overview.rb | 21 | 
1 files changed, 19 insertions, 2 deletions
| diff --git a/app/services/referential_overview.rb b/app/services/referential_overview.rb index 5b0e144db..14e917bbe 100644 --- a/app/services/referential_overview.rb +++ b/app/services/referential_overview.rb @@ -1,14 +1,16 @@  class ReferentialOverview    attr_reader :h +  PER_PAGE = 10 +    def initialize referential, h      @referential = referential -    @page = 1 +    @page = h.params[pagination_param_name]&.to_i || 1      @h = h    end    def lines -    @referential.metadatas_lines.includes(:company).page(@page).map{|l| Line.new(l, @referential, period.first, h)} +    referential_lines.includes(:company).map{|l| Line.new(l, @referential, period.first, h)}    end    def period @@ -23,6 +25,21 @@ class ReferentialOverview      @weeks.values    end +  def referential_lines +    @referential.metadatas_lines.page(@page).per_page(PER_PAGE) +  end + +  ### Pagination + +  delegate :empty?, :first, :total_pages, :size, :total_entries, :offset, :length, to: :referential_lines +  def current_page +    @page +  end + +  def pagination_param_name +    "referential_#{@referential.slug}_overview" +  end +    class Line      attr_reader :h      attr_reader :referential_line | 
