luis@466: require_dependency 'user' luis@466: luis@466: module Bibliography luis@1070: module UserAuthorPatch luis@466: def self.included(base) luis@1070: base.send(:include, InstanceMethods) luis@1441: luis@1441: base.class_eval do luis@1441: # adapted from the app/models/principals_model.rb luis@1441: # to remove the email address from the search luis@1441: scope :name_like, lambda {|q| luis@1441: q = q.to_s luis@1441: if q.blank? luis@1441: where({}) luis@1441: else luis@1441: pattern = "%#{q}%" luis@1441: sql = %w(login firstname lastname).map {|column| "LOWER(#{ table_name}. #{column}) LIKE LOWER(:p)"}.join(" OR ") luis@1441: params = {:p => pattern} luis@1441: if q =~ /^(.+)\s+(.+)$/ luis@1441: a, b = "#{$1}%", "#{$2}%" luis@1441: sql << " OR (LOWER(#{table_name}.firstname) LIKE LOWER(:a) AND LOWER (#{table_name}.lastname) LIKE LOWER(:b))" luis@1441: sql << " OR (LOWER(#{table_name}.firstname) LIKE LOWER(:b) AND LOWER (#{table_name}.lastname) LIKE LOWER(:a))" luis@1441: params.merge!(:a => a, :b => b) luis@1441: end luis@1441: where(sql, params) luis@1441: end luis@1441: } luis@1441: end #base.class_eval luis@1070: luis@466: end #self.included luis@1070: luis@483: module InstanceMethods luis@518: luis@1441: # todo: deprecated? ~lf.20131011 luis@600: def institution luis@600: unless self.ssamr_user_detail.nil? luis@600: institution_name = self.ssamr_user_detail.institution_name luis@600: else luis@600: institution_name = "No Institution Set" luis@1070: end luis@1070: return institution_name luis@600: end luis@600: luis@483: end #InstanceMethods luis@1070: luis@466: end #UserPublicationsPatch chris@567: end #RedmineBibliography