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 | |
| parent | a08751696de0ba7a78f475588ff03f14bd44a7c6 (diff) | |
| download | chouette-core-b85f33cbf055633fab4d320f1a926e319626a9f5.tar.bz2 | |
Refs #3542 @1h; Adds filters
Diffstat (limited to 'app/services')
| -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 |
