You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

50 lines
1.3 KiB

class Cdao::Document < Cdao::Base
self.table_name = "documents"
alias_attribute :docdate, :doc_date
alias_attribute :short_title, :title
def year
doc_date.present? ? doc_date.year : 0
end
def clean_reference_number
(reference_number.presence || "").gsub(/<!--\d+-->/, "")
end
def to_builder(ability = nil)
Jbuilder.new do |doc|
doc.(self, *%i[id title short_title])
doc.doc_date doc_date.presence || "0000-00-00"
doc.year year.presence || 0
doc.reference_number clean_reference_number
doc.display_reference_number clean_reference_number.presence || short_title.presence || title
doc.url Rails.application.routes.url_helpers.document_path(self)
end
end
searchable do
text :reference_number, stored: true
text :title, stored: true
text :short_title, stored: true
string :reference_number
string :title do
(title.present? ? title.first(32760).strip : short_title || "").titleize
end
string :short_title do
(short_title.presence || title || "").first(32760).strip.titleize
end
date :doc_date
date :search_doc_date do
doc_date.presence || Date.new(year.presence || 0)
end
integer :id
integer :year
integer :search_year do
year.present? && year > 0 ? year : (doc_date.try :year)
end
end
end