11module Cms
22 class DynamicView < ActiveRecord ::Base
3+ store_templates
4+
35
46 after_save :write_file_to_disk
57 after_destroy :remove_file_from_disk
68
79 include DefaultAccessible
810 # Need to explicitly define these, since during new project creation, these files aren't discoverable.
9- attr_accessible :name , :body , :format , :handler
11+ attr_accessible :name , :body , :format , :handler , :locale , :path , :partial
1012
1113 scope :with_file_name , lambda { |file_name |
1214 conditions = { :name => nil , :format => nil , :handler => nil }
@@ -29,8 +31,9 @@ def self.inherited(subclass)
2931 is_versioned
3032
3133 before_validation :set_publish_on_save
34+ before_validation :set_defaults , :set_path
3235
33- validates_presence_of :name , :format , :handler
36+ validates_presence_of :name , :format , :handler , :path , :locale
3437 validates_uniqueness_of :name , :scope => [ :format , :handler ] ,
3538 :message => "Must have a unique combination of name, format and handler"
3639
@@ -43,7 +46,7 @@ def self.title
4346 end
4447
4548 def self . new_with_defaults ( options = { } )
46- new ( { :format => "html" , :handler => "erb" , :body => default_body } . merge ( options ) )
49+ new ( { :format => "html" , :handler => "erb" , :body => default_body , :locale => I18n . locale } . merge ( options ) )
4750 end
4851
4952 def self . find_by_file_name ( file_name )
@@ -107,5 +110,15 @@ def self.resource_collection_name
107110 def self . engine
108111 "cms"
109112 end
113+
114+ def set_path
115+ self . path = self . class . relative_path + '/' + name
116+ end
117+
118+ def set_defaults
119+ self . locale = I18n . locale . to_s unless locale
120+ self . partial = partial?
121+ return true
122+ end
110123 end
111124end
0 commit comments