#12 - fixed rspec tests and add some more tests

This commit is contained in:
Joerg Reichert 2017-01-01 13:41:28 +01:00
parent 52f93fcb42
commit c041ae596f
3 changed files with 94 additions and 26 deletions

View file

@ -26,22 +26,34 @@ class SearchController < ApplicationController
@papers = @response.page(params[:page]).results
@sub = Hash.new
@papers.each do |paper|
@sub_search_definition = Elasticsearch::DSL::Search.search do
query do
query_string do
query "*" + (paper.reference.start_with?("VI-") ? paper.reference.split("-")[2] : paper.reference.split("-")[1]) + "*"
fields ["reference"]
unless paper.reference.nil? && paper.reference.contains("-")
segments = paper.reference.split("-")
id = (paper.reference.start_with?("VI-") && segments.count > 2 ?
segments[2] : segments[1])
escaped_chars = Regexp.escape('\\+-*:()[]{}&!?^|\/')
sanitized_id = id.gsub(/([#{escaped_chars}])/, '\\\\\1')
['AND', 'OR', 'NOT'].each do |reserved|
escaped_reserved = reserved.split('').map { |c| "\\#{c}" }.join('')
sanitized_id = sanitized_id.gsub('/\s*\b(#{reserved.upcase})\b\s*/',
" #{escaped_reserved} ")
end
@sub_search_definition = Elasticsearch::DSL::Search.search do
query do
query_string do
query "*" + sanitized_id + "*"
fields ["reference"]
end
end
sort do
by :published_at, order: 'asc'
by :reference, order: 'asc'
end
end
sort do
by :published_at, order: 'asc'
by :reference, order: 'asc'
end
@sub_papers = Paper.search(@sub_search_definition)
@sub[paper.reference] = @sub_papers
end
@sub_papers = Paper.search(@sub_search_definition)
@sub[paper.reference] = @sub_papers
end
end
@paper_type_facets = extract_facets('paper_types')
@originator_facets = extract_facets('originators')
end

View file

@ -13,10 +13,11 @@ div
li.search-result
article
h4 = doc.name
ul
- @sub[doc.reference].each do |sub|
li class="#{'current' if sub.reference == doc.reference}"
div = link_to "#{l sub.published_at.to_date}: #{sub.paper_type} von #{sub.originator.join(", ")}", sub.url, target: '_blank'
- if @sub[doc.reference]
ul
- @sub[doc.reference].each do |sub|
li class="#{'current' if sub.reference == doc.reference}"
div = link_to "#{l sub.published_at.to_date}: #{sub.paper_type} von #{sub.originator.join(", ")}", sub.url, target: '_blank'
div#pagination