aboutsummaryrefslogtreecommitdiffstats
path: root/app/services
diff options
context:
space:
mode:
authorZog2018-01-19 11:16:44 +0100
committerZog2018-02-02 14:31:43 +0100
commitb85f33cbf055633fab4d320f1a926e319626a9f5 (patch)
tree8753c897229e8cffe0e4811181c614b14306b737 /app/services
parenta08751696de0ba7a78f475588ff03f14bd44a7c6 (diff)
downloadchouette-core-b85f33cbf055633fab4d320f1a926e319626a9f5.tar.bz2
Refs #3542 @1h; Adds filters
Diffstat (limited to 'app/services')
-rw-r--r--app/services/referential_overview.rb26
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