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? |