mirror of
https://github.com/CodeforLeipzig/stadtratmonitor.git
synced 2024-12-22 23:53:15 +01:00
adds filters and breaks pagination
This commit is contained in:
parent
ff58856c99
commit
be19256457
2 changed files with 39 additions and 5 deletions
|
@ -1,12 +1,35 @@
|
||||||
class SearchController < ApplicationController
|
class SearchController < ApplicationController
|
||||||
def index
|
def index
|
||||||
@show_search_result = params[:q].present?
|
@paper_type = params[:paper_type]
|
||||||
|
@originator = params[:originator]
|
||||||
|
|
||||||
|
@show_search_result = @show_filters = params[:q].present?
|
||||||
papers_found = if @show_search_result
|
papers_found = if @show_search_result
|
||||||
Paper.search(params[:q]).records
|
Paper.search(params[:q]).records
|
||||||
else
|
else
|
||||||
Paper
|
Paper.all
|
||||||
|
end
|
||||||
|
|
||||||
|
if @show_filters
|
||||||
|
|
||||||
|
@paper_types_found = papers_found.map(&:paper_type).uniq
|
||||||
|
@originators_found = papers_found.map(&:originator).uniq
|
||||||
|
|
||||||
|
if @paper_type.present?
|
||||||
|
papers_found = papers_found.where(paper_type: @paper_type)
|
||||||
|
end
|
||||||
|
|
||||||
|
if @originator.present?
|
||||||
|
papers_found = papers_found.where(originator: @originator)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@papers_count = papers_found.page(params[:page]).total_count
|
||||||
|
@papers = papers_found.page(params[:page])
|
||||||
|
# Fixme Pagination
|
||||||
|
#order(published_at: :desc).
|
||||||
|
# page(params[:page])
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
@papers_count = @show_search_result ? papers_found.results.total : papers_found.count
|
|
||||||
@papers = papers_found.order(published_at: :desc).page(params[:page])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,2 +1,13 @@
|
||||||
= form_tag(search_path, method: :get)
|
= form_tag(search_path, method: :get)
|
||||||
= text_field_tag(:q, params[:q], placeholder: 'Suche…', autofocus: true)
|
= text_field_tag(:q, params[:q], placeholder: 'Suche…', autofocus: true)
|
||||||
|
- if @show_filters
|
||||||
|
fieldset
|
||||||
|
legend Ergebnisse filtern
|
||||||
|
.row
|
||||||
|
.small-4.columns
|
||||||
|
= label "paper_type", "Typ"
|
||||||
|
= select_tag "paper_type", options_for_select(@paper_types_found, @paper_type), include_blank: true, :onchange => "this.form.submit();"
|
||||||
|
.small-4.columns.end
|
||||||
|
= label "originator", "Einreicher"
|
||||||
|
= select_tag "originator", options_for_select(@originators_found, @originator), include_blank: true, :onchange => "this.form.submit();"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue