Commit 237a3f52 authored by Jean-Philippe Lang's avatar Jean-Philippe Lang

Fixes custom fields display order at several places (#1768).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1731 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 16310190
...@@ -25,7 +25,7 @@ class AccountController < ApplicationController ...@@ -25,7 +25,7 @@ class AccountController < ApplicationController
# Show user's account # Show user's account
def show def show
@user = User.find_active(params[:id]) @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 # show only public projects and private projects that the logged in user is also a member of
@memberships = @user.memberships.select do |membership| @memberships = @user.memberships.select do |membership|
......
...@@ -66,7 +66,7 @@ class CustomField < ActiveRecord::Base ...@@ -66,7 +66,7 @@ class CustomField < ActiveRecord::Base
# to move in project_custom_field # to move in project_custom_field
def self.for_all def self.for_all
find(:all, :conditions => ["is_for_all=?", true]) find(:all, :conditions => ["is_for_all=?", true], :order => 'position')
end end
def type_name def type_name
......
...@@ -198,7 +198,7 @@ class Project < ActiveRecord::Base ...@@ -198,7 +198,7 @@ class Project < ActiveRecord::Base
# Returns an array of all custom fields enabled for project issues # Returns an array of all custom fields enabled for project issues
# (explictly associated custom fields and custom fields enabled for all projects) # (explictly associated custom fields and custom fields enabled for all projects)
def all_issue_custom_fields 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 end
def project def project
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</div> </div>
<div style="clear:both;"> </div> <div style="clear:both;"> </div>
<%= render :partial => 'form_custom_fields', :locals => {:values => @custom_values} %> <%= render :partial => 'form_custom_fields' %>
<% if @issue.new_record? %> <% if @issue.new_record? %>
<p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p> <p><label><%=l(:label_attachment_plural)%></label><%= render :partial => 'attachments/form' %></p>
......
<div class="splitcontentleft"> <div class="splitcontentleft">
<% i = 1 %> <% i = 0 %>
<% split_on = @issue.custom_field_values.size / 2 %> <% split_on = @issue.custom_field_values.size / 2 %>
<% @issue.custom_field_values.each do |value| %> <% @issue.custom_field_values.each do |value| %>
<p><%= custom_field_tag_with_label :issue, value %></p> <p><%= custom_field_tag_with_label :issue, value %></p>
......
...@@ -212,7 +212,7 @@ class IssuesControllerTest < Test::Unit::TestCase ...@@ -212,7 +212,7 @@ class IssuesControllerTest < Test::Unit::TestCase
assert_equal 2, issue.author_id assert_equal 2, issue.author_id
assert_equal 3, issue.tracker_id assert_equal 3, issue.tracker_id
assert_nil issue.estimated_hours 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_not_nil v
assert_equal 'Value for field 2', v.value assert_equal 'Value for field 2', v.value
end end
......
...@@ -27,7 +27,10 @@ module Redmine ...@@ -27,7 +27,10 @@ module Redmine
return if self.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods) return if self.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods)
cattr_accessor :customizable_options cattr_accessor :customizable_options
self.customizable_options = 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 } before_validation_on_create { |customized| customized.custom_field_values }
# Trigger validation only if custom values were changed # Trigger validation only if custom values were changed
validates_associated :custom_values, :on => :update, :if => Proc.new { |customized| customized.custom_field_values_changed? } validates_associated :custom_values, :on => :update, :if => Proc.new { |customized| customized.custom_field_values_changed? }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment