Mercurial > hg > soundsoftware-site
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 |