Tidy up notes#search
This commit is contained in:
parent
db13180c70
commit
aef5273e95
1 changed files with 18 additions and 12 deletions
|
@ -255,23 +255,28 @@ class NotesController < ApplicationController
|
||||||
##
|
##
|
||||||
# Return a list of notes matching a given string
|
# Return a list of notes matching a given string
|
||||||
def search
|
def search
|
||||||
# Filter either by the name or the id of the user
|
# Get the initial set of notes
|
||||||
|
@notes = closed_condition(Note.all)
|
||||||
|
|
||||||
|
# Add any user filter
|
||||||
|
if params[:display_name] || params[:user]
|
||||||
if params[:display_name]
|
if params[:display_name]
|
||||||
@user = User.find_by(:display_name => params[:display_name])
|
@user = User.find_by(:display_name => params[:display_name])
|
||||||
|
|
||||||
raise OSM::APIBadUserInput, "User #{params[:display_name]} not known" unless @user
|
raise OSM::APIBadUserInput, "User #{params[:display_name]} not known" unless @user
|
||||||
elsif params[:user]
|
else
|
||||||
@user = User.find_by(:id => params[:user])
|
@user = User.find_by(:id => params[:user])
|
||||||
|
|
||||||
raise OSM::APIBadUserInput, "User #{params[:user]} not known" unless @user
|
raise OSM::APIBadUserInput, "User #{params[:user]} not known" unless @user
|
||||||
end
|
end
|
||||||
|
|
||||||
@notes = closed_condition(Note.all)
|
@notes = @notes.joins(:comments).where(:note_comments => { :author_id => @user })
|
||||||
|
end
|
||||||
|
|
||||||
@notes = @notes.joins(:comments).where(:note_comments => { :author_id => @user }) if @user
|
# Add any text filter
|
||||||
|
|
||||||
# Filter by a given string
|
|
||||||
@notes = @notes.joins(:comments).where("to_tsvector('english', note_comments.body) @@ plainto_tsquery('english', ?)", params[:q]) if params[:q]
|
@notes = @notes.joins(:comments).where("to_tsvector('english', note_comments.body) @@ plainto_tsquery('english', ?)", params[:q]) if params[:q]
|
||||||
|
|
||||||
# Filter by a given start date and an optional end date
|
# Add any date filter
|
||||||
if params[:from]
|
if params[:from]
|
||||||
begin
|
begin
|
||||||
from = Time.parse(params[:from])
|
from = Time.parse(params[:from])
|
||||||
|
@ -288,6 +293,7 @@ class NotesController < ApplicationController
|
||||||
rescue ArgumentError
|
rescue ArgumentError
|
||||||
raise OSM::APIBadUserInput, "Date #{params[:to]} is in a wrong format"
|
raise OSM::APIBadUserInput, "Date #{params[:to]} is in a wrong format"
|
||||||
end
|
end
|
||||||
|
|
||||||
@notes = @notes.where(:created_at => from..to)
|
@notes = @notes.where(:created_at => from..to)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue