summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/member.rb4
-rw-r--r--app/models/setting.rb3
-rw-r--r--app/models/user.rb21
3 files changed, 24 insertions, 4 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index 0d0540690..b4617c229 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -31,6 +31,10 @@ class Member < ActiveRecord::Base
self.user.name
end
+ def <=>(member)
+ role == member.role ? (user <=> member.user) : (role <=> member.role)
+ end
+
def before_destroy
# remove category based auto assignments for this member
IssueCategory.update_all "assigned_to_id = NULL", ["project_id = ? AND assigned_to_id = ?", project.id, user.id]
diff --git a/app/models/setting.rb b/app/models/setting.rb
index 46b6d76ce..185991d9b 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -53,12 +53,13 @@ class Setting < ActiveRecord::Base
v = read_attribute(:value)
# Unserialize serialized settings
v = YAML::load(v) if @@available_settings[name]['serialized'] && v.is_a?(String)
+ v = v.to_sym if @@available_settings[name]['format'] == 'symbol' && !v.blank?
v
end
def value=(v)
v = v.to_yaml if v && @@available_settings[name]['serialized']
- write_attribute(:value, v)
+ write_attribute(:value, v.to_s)
end
# Returns the value of the setting named name
diff --git a/app/models/user.rb b/app/models/user.rb
index 906420ed4..22d66539d 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -23,6 +23,14 @@ class User < ActiveRecord::Base
STATUS_ACTIVE = 1
STATUS_REGISTERED = 2
STATUS_LOCKED = 3
+
+ USER_FORMATS = {
+ :firstname_lastname => '#{firstname} #{lastname}',
+ :firstname => '#{firstname}',
+ :lastname_firstname => '#{lastname} #{firstname}',
+ :lastname_coma_firstname => '#{lastname}, #{firstname}',
+ :username => '#{login}'
+ }
has_many :memberships, :class_name => 'Member', :include => [ :project, :role ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name", :dependent => :delete_all
has_many :projects, :through => :memberships
@@ -107,8 +115,9 @@ class User < ActiveRecord::Base
end
# Return user's full name for display
- def name
- "#{firstname} #{lastname}"
+ def name(formatter = nil)
+ f = USER_FORMATS[formatter || Setting.user_format] || USER_FORMATS[:firstname_lastname]
+ eval '"' + f + '"'
end
def active?
@@ -164,7 +173,13 @@ class User < ActiveRecord::Base
end
def <=>(user)
- user.nil? ? -1 : (lastname == user.lastname ? firstname <=> user.firstname : lastname <=> user.lastname)
+ if user.nil?
+ -1
+ elsif lastname.to_s.downcase == user.lastname.to_s.downcase
+ firstname.to_s.downcase <=> user.firstname.to_s.downcase
+ else
+ lastname.to_s.downcase <=> user.lastname.to_s.downcase
+ end
end
def to_s