# HG changeset patch # User luisf # Date 1310746865 -3600 # Node ID 3be6bc3c2a17f23d94e7878b3c9381a905824a29 # Parent b24091590b631b92db5b307a2488e9bccb2e761a Correctly searches and sends the parameters for both users and authors. diff -r b24091590b63 -r 3be6bc3c2a17 vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb --- a/vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb Thu Jul 14 17:10:24 2011 +0100 +++ b/vendor/plugins/redmine_bibliography/app/controllers/publications_controller.rb Fri Jul 15 17:21:05 2011 +0100 @@ -4,8 +4,7 @@ unloadable before_filter :find_project_by_project_id, :except => [:autocomplete_for_project, :add_author, :sort_authors, :autocomplete_for_author] - - + def new @publication = Publication.new @@ -17,8 +16,8 @@ @project_id = params[:project_id] @current_user = User.current + end - end def create @publication = Publication.new(params[:publication]) @@ -27,6 +26,9 @@ logger.error { "PARAMS publication" } logger.error { params[:publication] } + # array with the user ids + @users = [] + @publication.projects << @project if @publication.save @@ -196,20 +198,23 @@ end def autocomplete_for_author - @authors = [] + @results = [] authors_list = Author.like(params[:q]).find(:all, :limit => 100) users_list = User.active.like(params[:q]).find(:all, :limit => 100) - logger.debug "Query for \"#{params[:q]}\" returned \"#{authors_list.size}\" authors and \"#{users_list.size}\"" + logger.debug "Query for \"#{params[:q]}\" returned \"#{authors_list.size}\" authors and \"#{users_list.size}\" users" # need to subtract both lists - # give priority to the users + # give priority to the users + users_list.each do |user| + @results << user + end - authors_list.each do |author| - @authors << author unless author.user_id.nil? + authors_list.each do |author| + @results << author unless users_list.include?(author.user_id) end - + render :layout => false end diff -r b24091590b63 -r 3be6bc3c2a17 vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb --- a/vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb Thu Jul 14 17:10:24 2011 +0100 +++ b/vendor/plugins/redmine_bibliography/app/helpers/publications_helper.rb Fri Jul 15 17:21:05 2011 +0100 @@ -10,7 +10,7 @@ end def identify_author(author) - if author.class == User + if author.class == User author_info = { :name_on_paper => author.name, :user_id => author.id @@ -29,10 +29,10 @@ link_to_function(author.name, "update_author_info(this," + author_info.to_json + ")") end - def choose_author_link(name, authors) + def choose_author_link(name, authors_users) s = '' - authors.sort.each do |author| - s << "#{identify_author author}\n" + authors_users.sort.each do |author_user| + s << "#{identify_author author_user}\n" end s end diff -r b24091590b63 -r 3be6bc3c2a17 vendor/plugins/redmine_bibliography/app/models/authorship.rb --- a/vendor/plugins/redmine_bibliography/app/models/authorship.rb Thu Jul 14 17:10:24 2011 +0100 +++ b/vendor/plugins/redmine_bibliography/app/models/authorship.rb Fri Jul 15 17:21:05 2011 +0100 @@ -14,16 +14,12 @@ end # setter and getter for virtual attribute :user_id - def user_id - logger.error { "USER ID SETTER" } - logger.error { self } - logger.error { "END USER ID SETTER" } - + def user_id end def user_id=(uid) - # process the user id - # test for undefined - + if User.find(uid).author.nil? + User.find(uid).author = Author.new :name => User.find(uid).name + end end end diff -r b24091590b63 -r 3be6bc3c2a17 vendor/plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.rhtml --- a/vendor/plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.rhtml Thu Jul 14 17:10:24 2011 +0100 +++ b/vendor/plugins/redmine_bibliography/app/views/publications/autocomplete_for_author.rhtml Fri Jul 15 17:21:05 2011 +0100 @@ -1,3 +1,3 @@ <% if params[:q] && params[:q].length > 1 %> - <%= choose_author_link 'publication[author_ids][]', @authors %> + <%= choose_author_link 'publication[author_ids][]', @results %> <% end %> diff -r b24091590b63 -r 3be6bc3c2a17 vendor/plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb --- a/vendor/plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb Thu Jul 14 17:10:24 2011 +0100 +++ b/vendor/plugins/redmine_bibliography/lib/bibliography/user_author_patch.rb Fri Jul 15 17:21:05 2011 +0100 @@ -7,7 +7,8 @@ extend ClassMethods base.class_eval do - has_one :publication + has_one :publication + end end #self.included