diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/node.rb | 4 | ||||
| -rw-r--r-- | app/models/page.rb | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/app/models/node.rb b/app/models/node.rb index 7a79594..44e6c47 100644 --- a/app/models/node.rb +++ b/app/models/node.rb | |||
| @@ -63,7 +63,7 @@ class Node < ActiveRecord::Base | |||
| 63 | draft | 63 | draft |
| 64 | elsif draft && self.lock_owner.nil? | 64 | elsif draft && self.lock_owner.nil? |
| 65 | lock_for! current_user | 65 | lock_for! current_user |
| 66 | draft.user = current_user | 66 | draft.user = current_user if draft.user.nil? |
| 67 | draft.save | 67 | draft.save |
| 68 | draft | 68 | draft |
| 69 | elsif draft && self.lock_owner != current_user | 69 | elsif draft && self.lock_owner != current_user |
| @@ -80,7 +80,7 @@ class Node < ActiveRecord::Base | |||
| 80 | 80 | ||
| 81 | def create_new_draft user | 81 | def create_new_draft user |
| 82 | empty_page = self.pages.create! | 82 | empty_page = self.pages.create! |
| 83 | empty_page.user = user unless (self.head && self.head.user) | 83 | empty_page.user = (self.head ? self.head.user : user) |
| 84 | empty_page.save | 84 | empty_page.save |
| 85 | 85 | ||
| 86 | empty_page.clone_attributes_from self.head | 86 | empty_page.clone_attributes_from self.head |
diff --git a/app/models/page.rb b/app/models/page.rb index 24c3ef2..56e1692 100644 --- a/app/models/page.rb +++ b/app/models/page.rb | |||
| @@ -35,8 +35,12 @@ class Page < ActiveRecord::Base | |||
| 35 | 35 | ||
| 36 | # Filter | 36 | # Filter |
| 37 | before_create :set_page_title | 37 | before_create :set_page_title |
| 38 | before_create :set_published_at | ||
| 38 | before_save :rewrite_links_in_body | 39 | before_save :rewrite_links_in_body |
| 39 | 40 | ||
| 41 | # Validations | ||
| 42 | validates_presence_of :published_at, :on => :update | ||
| 43 | |||
| 40 | # Security | 44 | # Security |
| 41 | attr_accessible :title, :abstract, :body, :template_name, :published_at, :user_id | 45 | attr_accessible :title, :abstract, :body, :template_name, :published_at, :user_id |
| 42 | 46 | ||
| @@ -126,7 +130,6 @@ class Page < ActiveRecord::Base | |||
| 126 | self.tag_list = page.tag_list | 130 | self.tag_list = page.tag_list |
| 127 | self.template_name = page.template_name | 131 | self.template_name = page.template_name |
| 128 | self.published_at = page.published_at | 132 | self.published_at = page.published_at |
| 129 | self.user = page.user | ||
| 130 | 133 | ||
| 131 | # Getting rid of the auto-generated empty translations | 134 | # Getting rid of the auto-generated empty translations |
| 132 | self.globalize_translations.delete_all | 135 | self.globalize_translations.delete_all |
| @@ -196,6 +199,12 @@ class Page < ActiveRecord::Base | |||
| 196 | end | 199 | end |
| 197 | end | 200 | end |
| 198 | 201 | ||
| 202 | def set_published_at | ||
| 203 | if self.published_at.nil? | ||
| 204 | self.published_at = Time.now | ||
| 205 | end | ||
| 206 | end | ||
| 207 | |||
| 199 | def rewrite_links_in_body | 208 | def rewrite_links_in_body |
| 200 | begin | 209 | begin |
| 201 | if self.body | 210 | if self.body |
