Skip to content

Instantly share code, notes, and snippets.

@ottbot
Created June 1, 2009 16:49
Show Gist options
  • Save ottbot/121593 to your computer and use it in GitHub Desktop.
Save ottbot/121593 to your computer and use it in GitHub Desktop.
class Staff < Sequel::Model(:staff)
require 'sequel/extensions/pagination'
def box_times
if box
box.split(';#')
else
[]
end
end
def all_languages
if languages
languages.split(';#')
else
[]
end
end
def self.search(opts = {})
StaffSearch.new(opts)
end
end
class StaffSearch
attr_accessor :total_hits
attr_accessor :sorted
def initialize(parameters = {})
page = parameters[:page] || 1
per_page = parameters[:per_page] || 10
s = Staff.filter('1')
if parameters[:emp_type]
s = s.and(:emp_type => parameters[:emp_type])
end
if parameters[:area]
s = s.and("find_in_set('#{params[:area]}',replace(underwriting_main, ';#', ',')) > 0")
end
if parameters[:department]
s = s.and("department = '#{parameters[:department]}'")
end
if parameters[:name]
s = s.and("last like '#{parameters[:name]}%'")
end
self.total_hits = s.count
# s.
# s = s.limit(per_page, (page.to_i - 1) * per_page)
# self.sorted = s.map(:id)
# Staff.filter(:id => self.sorted)
s.paginate(page, per_page)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment