annotate plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb @ 1519:afce8026aaeb redmine-2.4-integration

Merge from branch "live"
author Chris Cannam
date Tue, 09 Sep 2014 09:34:53 +0100
parents 8d721cac2925
children
rev   line source
luis@466 1 require_dependency 'user'
luis@466 2
luis@466 3 module Bibliography
luis@1070 4 module UserAuthorPatch
luis@466 5 def self.included(base)
luis@1070 6 base.send(:include, InstanceMethods)
luis@1441 7
luis@1441 8 base.class_eval do
luis@1441 9 # adapted from the app/models/principals_model.rb
luis@1441 10 # to remove the email address from the search
luis@1441 11 scope :name_like, lambda {|q|
luis@1441 12 q = q.to_s
luis@1441 13 if q.blank?
luis@1441 14 where({})
luis@1441 15 else
luis@1441 16 pattern = "%#{q}%"
luis@1441 17 sql = %w(login firstname lastname).map {|column| "LOWER(#{ table_name}. #{column}) LIKE LOWER(:p)"}.join(" OR ")
luis@1441 18 params = {:p => pattern}
luis@1441 19 if q =~ /^(.+)\s+(.+)$/
luis@1441 20 a, b = "#{$1}%", "#{$2}%"
luis@1441 21 sql << " OR (LOWER(#{table_name}.firstname) LIKE LOWER(:a) AND LOWER (#{table_name}.lastname) LIKE LOWER(:b))"
luis@1441 22 sql << " OR (LOWER(#{table_name}.firstname) LIKE LOWER(:b) AND LOWER (#{table_name}.lastname) LIKE LOWER(:a))"
luis@1441 23 params.merge!(:a => a, :b => b)
luis@1441 24 end
luis@1441 25 where(sql, params)
luis@1441 26 end
luis@1441 27 }
luis@1441 28 end #base.class_eval
luis@1070 29
luis@466 30 end #self.included
luis@1070 31
luis@483 32 module InstanceMethods
luis@518 33
luis@1441 34 # todo: deprecated? ~lf.20131011
luis@600 35 def institution
luis@600 36 unless self.ssamr_user_detail.nil?
luis@600 37 institution_name = self.ssamr_user_detail.institution_name
luis@600 38 else
luis@600 39 institution_name = "No Institution Set"
luis@1070 40 end
luis@1070 41 return institution_name
luis@600 42 end
luis@600 43
luis@483 44 end #InstanceMethods
luis@1070 45
luis@466 46 end #UserPublicationsPatch
chris@567 47 end #RedmineBibliography