Defect #5354 » scvmc_project_cf_updated_on_r3.diff
app/models/custom_value.rb (working copy) | ||
---|---|---|
18 | 18 |
class CustomValue < ActiveRecord::Base |
19 | 19 |
belongs_to :custom_field |
20 | 20 |
belongs_to :customized, :polymorphic => true |
21 |
after_update :after_save_value |
|
21 | 22 | |
22 | 23 |
def after_initialize |
23 | 24 |
if new_record? && custom_field && (customized_type.blank? || (customized && customized.new_record?)) |
24 | 25 |
self.value ||= custom_field.default_value |
25 | 26 |
end |
26 | 27 |
end |
28 | ||
29 |
# Update the parent project's updated on timestamp if the custom value |
|
30 |
# attached to it has changed. This has been abstracted using callbacks |
|
31 |
# due to a bug that causes :touch => true to hang on |
|
32 |
# the polymorphic association. |
|
33 |
def after_save_value |
|
34 |
return unless self.changed? |
|
35 |
if customized_type == "Project" |
|
36 |
self.customized.touch |
|
37 |
end |
|
38 |
end |
|
27 | 39 |
|
28 | 40 |
# Returns true if the boolean custom value is true |
29 | 41 |
def true? |