diff options
| author | Zog | 2018-01-19 11:16:44 +0100 | 
|---|---|---|
| committer | Zog | 2018-02-02 14:31:43 +0100 | 
| commit | b85f33cbf055633fab4d320f1a926e319626a9f5 (patch) | |
| tree | 8753c897229e8cffe0e4811181c614b14306b737 /app/services/referential_overview.rb | |
| parent | a08751696de0ba7a78f475588ff03f14bd44a7c6 (diff) | |
| download | chouette-core-b85f33cbf055633fab4d320f1a926e319626a9f5.tar.bz2 | |
Refs #3542 @1h; Adds filters
Diffstat (limited to 'app/services/referential_overview.rb')
| -rw-r--r-- | app/services/referential_overview.rb | 26 | 
1 files changed, 21 insertions, 5 deletions
| diff --git a/app/services/referential_overview.rb b/app/services/referential_overview.rb index 1fafae8ca..ccfe0617a 100644 --- a/app/services/referential_overview.rb +++ b/app/services/referential_overview.rb @@ -1,16 +1,17 @@  class ReferentialOverview    attr_reader :h +  attr_reader :referential    PER_PAGE = 10 -  def initialize referential, h +  def initialize referential, h=nil      @referential = referential -    @page = h.params[pagination_param_name]&.to_i || 1 +    @page = h && h.params[pagination_param_name]&.to_i || 1      @h = h    end    def lines -    referential_lines.includes(:company).map{|l| Line.new(l, @referential, period.first, h)} +    filtered_lines.includes(:company).map{|l| Line.new(l, @referential, period.first, h)}    end    def period @@ -30,20 +31,35 @@ class ReferentialOverview    end    def referential_lines -    @referential.metadatas_lines.page(@page).per_page(PER_PAGE) +    @referential.metadatas_lines +  end + +  def filtered_lines +    search.result.page(@page).per_page(PER_PAGE)    end    ### Pagination -  delegate :empty?, :first, :total_pages, :size, :total_entries, :offset, :length, to: :referential_lines +  delegate :empty?, :first, :total_pages, :size, :total_entries, :offset, :length, to: :filtered_lines    def current_page      @page    end +  ### search +  def search +    lines = referential_lines +    lines = lines.search h.params[search_param_name] +    lines +  end +    def pagination_param_name      "referential_#{@referential.slug}_overview"    end +  def search_param_name +    "q_#{pagination_param_name}" +  end +    class Line      attr_reader :h      attr_reader :referential_line | 
