OSDN Git Service

Fixes custom fields display order at several places (#1768).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 11 Aug 2008 18:24:39 +0000 (18:24 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 11 Aug 2008 18:24:39 +0000 (18:24 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1731 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/account_controller.rb
app/models/custom_field.rb
app/models/project.rb
app/views/issues/_form.rhtml
app/views/issues/_form_custom_fields.rhtml
test/functional/issues_controller_test.rb
vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb

index 96a2fc9..4b2ec83 100644 (file)
@@ -25,7 +25,7 @@ class AccountController < ApplicationController
   # Show user's account
   def show
     @user = User.find_active(params[:id])
-    @custom_values = @user.custom_values.find(:all, :include => :custom_field)
+    @custom_values = @user.custom_values
     
     # show only public projects and private projects that the logged in user is also a member of
     @memberships = @user.memberships.select do |membership|
index 7ad1943..704fbe0 100644 (file)
@@ -66,7 +66,7 @@ class CustomField < ActiveRecord::Base
   
   # to move in project_custom_field
   def self.for_all
-    find(:all, :conditions => ["is_for_all=?", true])
+    find(:all, :conditions => ["is_for_all=?", true], :order => 'position')
   end
   
   def type_name
index 5679344..9e4bd69 100644 (file)
@@ -198,7 +198,7 @@ class Project < ActiveRecord::Base
   # Returns an array of all custom fields enabled for project issues
   # (explictly associated custom fields and custom fields enabled for all projects)
   def all_issue_custom_fields
-    @all_issue_custom_fields ||= (IssueCustomField.for_all + issue_custom_fields).uniq
+    @all_issue_custom_fields ||= (IssueCustomField.for_all + issue_custom_fields).uniq.sort
   end
   
   def project
index 9bb74fd..4eca3cb 100644 (file)
@@ -42,7 +42,7 @@
 </div>
 
 <div style="clear:both;"> </div>
-<%= render :partial => 'form_custom_fields', :locals => {:values => @custom_values} %>
+<%= render :partial => 'form_custom_fields' %>
 
 <% if @issue.new_record? %>
 <p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
index ebd4c32..752fb4d 100644 (file)
@@ -1,5 +1,5 @@
 <div class="splitcontentleft">
-<% i = 1 %>
+<% i = 0 %>
 <% split_on = @issue.custom_field_values.size / 2 %>
 <% @issue.custom_field_values.each do |value| %>
        <p><%= custom_field_tag_with_label :issue, value %></p>
index 22f9a3b..005542f 100644 (file)
@@ -212,7 +212,7 @@ class IssuesControllerTest < Test::Unit::TestCase
     assert_equal 2, issue.author_id
     assert_equal 3, issue.tracker_id
     assert_nil issue.estimated_hours
-    v = issue.custom_values.find_by_custom_field_id(2)
+    v = issue.custom_values.find(:first, :conditions => {:custom_field_id => 2})
     assert_not_nil v
     assert_equal 'Value for field 2', v.value
   end
index 05857d0..a5598db 100644 (file)
@@ -27,7 +27,10 @@ module Redmine
           return if self.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods)
           cattr_accessor :customizable_options
           self.customizable_options = options
-          has_many :custom_values, :dependent => :delete_all, :as => :customized
+          has_many :custom_values, :as => :customized,
+                                   :include => :custom_field,
+                                   :order => "#{CustomField.table_name}.position",
+                                   :dependent => :delete_all
           before_validation_on_create { |customized| customized.custom_field_values }
           # Trigger validation only if custom values were changed
           validates_associated :custom_values, :on => :update, :if => Proc.new { |customized| customized.custom_field_values_changed? }