diff options
| author | hukl <contact@smyck.org> | 2009-11-17 12:35:04 +0100 |
|---|---|---|
| committer | hukl <contact@smyck.org> | 2009-11-17 12:35:04 +0100 |
| commit | bc6080a332806c2d0d359e05aaee2a7865d08673 (patch) | |
| tree | 47e811f99c60a82d0dd6004b257d3a88a3d42652 | |
| parent | c4b8b7f61d0c455aa77f72b96de4ba02ed03aa41 (diff) | |
don't set the published_at upon creation of the first draft but rather on publish
| -rw-r--r-- | app/models/node.rb | 2 | ||||
| -rw-r--r-- | app/models/page.rb | 10 | ||||
| -rw-r--r-- | test/test_helper.rb | 1 | ||||
| -rw-r--r-- | test/unit/node_test.rb | 7 |
4 files changed, 8 insertions, 12 deletions
diff --git a/app/models/node.rb b/app/models/node.rb index e9d935a..4f67dcb 100644 --- a/app/models/node.rb +++ b/app/models/node.rb | |||
| @@ -95,7 +95,9 @@ class Node < ActiveRecord::Base | |||
| 95 | def publish_draft! | 95 | def publish_draft! |
| 96 | if self.draft | 96 | if self.draft |
| 97 | self.head = self.draft | 97 | self.head = self.draft |
| 98 | self.head.published_at ||= Time.now | ||
| 98 | self.head.save! | 99 | self.head.save! |
| 100 | |||
| 99 | self.draft = nil | 101 | self.draft = nil |
| 100 | 102 | ||
| 101 | if staged_slug && (staged_slug != slug) | 103 | if staged_slug && (staged_slug != slug) |
diff --git a/app/models/page.rb b/app/models/page.rb index 22d2c69..00832bd 100644 --- a/app/models/page.rb +++ b/app/models/page.rb | |||
| @@ -36,13 +36,9 @@ class Page < ActiveRecord::Base | |||
| 36 | 36 | ||
| 37 | # Filter | 37 | # Filter |
| 38 | before_create :set_page_title | 38 | before_create :set_page_title |
| 39 | before_create :set_published_at | ||
| 40 | before_create :set_template | 39 | before_create :set_template |
| 41 | before_save :rewrite_links_in_body | 40 | before_save :rewrite_links_in_body |
| 42 | 41 | ||
| 43 | # Validations | ||
| 44 | validates_presence_of :published_at, :on => :update | ||
| 45 | |||
| 46 | # Security | 42 | # Security |
| 47 | attr_accessible :title, :abstract, :body, :template_name, :published_at, :user_id | 43 | attr_accessible :title, :abstract, :body, :template_name, :published_at, :user_id |
| 48 | 44 | ||
| @@ -201,12 +197,6 @@ class Page < ActiveRecord::Base | |||
| 201 | end | 197 | end |
| 202 | end | 198 | end |
| 203 | 199 | ||
| 204 | def set_published_at | ||
| 205 | if self.published_at.nil? | ||
| 206 | self.published_at = Time.now | ||
| 207 | end | ||
| 208 | end | ||
| 209 | |||
| 210 | def set_template | 200 | def set_template |
| 211 | if node && node.update? | 201 | if node && node.update? |
| 212 | self.template_name = "update" | 202 | self.template_name = "update" |
diff --git a/test/test_helper.rb b/test/test_helper.rb index 22747bb..cda54bc 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb | |||
| @@ -42,7 +42,6 @@ class ActiveSupport::TestCase | |||
| 42 | def create_node_with_published_page | 42 | def create_node_with_published_page |
| 43 | node = create_node_with_draft | 43 | node = create_node_with_draft |
| 44 | draft = node.draft | 44 | draft = node.draft |
| 45 | draft.published_at = Time.now | ||
| 46 | draft.title = "Test" | 45 | draft.title = "Test" |
| 47 | draft.abstract = "Test" | 46 | draft.abstract = "Test" |
| 48 | draft.body = "Test" | 47 | draft.body = "Test" |
diff --git a/test/unit/node_test.rb b/test/unit/node_test.rb index a106856..514ba3f 100644 --- a/test/unit/node_test.rb +++ b/test/unit/node_test.rb | |||
| @@ -254,7 +254,7 @@ class NodeTest < ActiveSupport::TestCase | |||
| 254 | node = create_node_with_draft | 254 | node = create_node_with_draft |
| 255 | draft = node.draft | 255 | draft = node.draft |
| 256 | draft.user = users(:aaron) | 256 | draft.user = users(:aaron) |
| 257 | draft.save | 257 | draft.save! |
| 258 | node.publish_draft! | 258 | node.publish_draft! |
| 259 | new_draft = node.find_or_create_draft( users(:quentin) ) | 259 | new_draft = node.find_or_create_draft( users(:quentin) ) |
| 260 | new_draft.user_id = users(:quentin).id | 260 | new_draft.user_id = users(:quentin).id |
| @@ -276,6 +276,11 @@ class NodeTest < ActiveSupport::TestCase | |||
| 276 | assert update.update? | 276 | assert update.update? |
| 277 | end | 277 | end |
| 278 | 278 | ||
| 279 | test "new nodes should have drafts with no publidhed_at set" do | ||
| 280 | node = Node.root.children.create( :slug => "wow" ) | ||
| 281 | assert_nil node.draft.published_at | ||
| 282 | end | ||
| 283 | |||
| 279 | def create_revisions node, count | 284 | def create_revisions node, count |
| 280 | count.times do | 285 | count.times do |
| 281 | node.find_or_create_draft @user1 | 286 | node.find_or_create_draft @user1 |
