Mercurial > hg > soundsoftware-site
comparison app/models/user_preference.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | 051f544170fe |
children | 5f33065ddc4b |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 # redMine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006 Jean-Philippe Lang | 2 # Copyright (C) 2006-2011 Jean-Philippe Lang |
3 # | 3 # |
4 # This program is free software; you can redistribute it and/or | 4 # This program is free software; you can redistribute it and/or |
5 # modify it under the terms of the GNU General Public License | 5 # modify it under the terms of the GNU General Public License |
6 # as published by the Free Software Foundation; either version 2 | 6 # as published by the Free Software Foundation; either version 2 |
7 # of the License, or (at your option) any later version. | 7 # of the License, or (at your option) any later version. |
8 # | 8 # |
9 # This program is distributed in the hope that it will be useful, | 9 # This program is distributed in the hope that it will be useful, |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 # GNU General Public License for more details. | 12 # GNU General Public License for more details. |
13 # | 13 # |
14 # You should have received a copy of the GNU General Public License | 14 # You should have received a copy of the GNU General Public License |
15 # along with this program; if not, write to the Free Software | 15 # along with this program; if not, write to the Free Software |
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
17 | 17 |
18 class UserPreference < ActiveRecord::Base | 18 class UserPreference < ActiveRecord::Base |
19 belongs_to :user | 19 belongs_to :user |
20 serialize :others | 20 serialize :others |
21 | 21 |
22 attr_protected :others | 22 attr_protected :others |
23 | 23 |
24 def initialize(attributes = nil) | 24 def initialize(attributes = nil) |
25 super | 25 super |
26 self.others ||= {} | 26 self.others ||= {} |
27 end | 27 end |
28 | 28 |
29 def before_save | 29 def before_save |
30 self.others ||= {} | 30 self.others ||= {} |
31 end | 31 end |
32 | 32 |
33 def [](attr_name) | 33 def [](attr_name) |
34 if attribute_present? attr_name | 34 if attribute_present? attr_name |
35 super | 35 super |
36 else | 36 else |
37 others ? others[attr_name] : nil | 37 others ? others[attr_name] : nil |
38 end | 38 end |
39 end | 39 end |
40 | 40 |
41 def []=(attr_name, value) | 41 def []=(attr_name, value) |
42 if attribute_present? attr_name | 42 if attribute_present? attr_name |
43 super | 43 super |
44 else | 44 else |
45 h = read_attribute(:others).dup || {} | 45 h = read_attribute(:others).dup || {} |
46 h.update(attr_name => value) | 46 h.update(attr_name => value) |
47 write_attribute(:others, h) | 47 write_attribute(:others, h) |
48 value | 48 value |
49 end | 49 end |
50 end | 50 end |
51 | 51 |
52 def comments_sorting; self[:comments_sorting] end | 52 def comments_sorting; self[:comments_sorting] end |
53 def comments_sorting=(order); self[:comments_sorting]=order end | 53 def comments_sorting=(order); self[:comments_sorting]=order end |
54 | 54 |
55 def warn_on_leaving_unsaved; self[:warn_on_leaving_unsaved] || '1'; end | 55 def warn_on_leaving_unsaved; self[:warn_on_leaving_unsaved] || '1'; end |
56 def warn_on_leaving_unsaved=(value); self[:warn_on_leaving_unsaved]=value; end | 56 def warn_on_leaving_unsaved=(value); self[:warn_on_leaving_unsaved]=value; end |
57 end | 57 end |