spud_cms 0.8.7 → 0.8.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -50,9 +50,11 @@ class PagesController < ApplicationController
50
50
  end
51
51
  end
52
52
  if @page.is_private?
53
- if self.respond_to?('require_user') && require_user == false
53
+ if defined?(require_user) && require_user == false
54
+ logger.debug("responds to require user!")
54
55
  return
55
56
  end
57
+ logger.debug("does not!")
56
58
  end
57
59
 
58
60
  layout = Spud::Cms.default_page_layout
@@ -1,6 +1,7 @@
1
1
  class SpudPage < ActiveRecord::Base
2
2
  searchable
3
3
  belongs_to :spud_page
4
+ has_many :spud_page_partial_revisions
4
5
  belongs_to :spud_template,:foreign_key => :template_id
5
6
  has_many :spud_pages, :dependent => :nullify
6
7
  has_many :spud_page_partials,:dependent => :destroy
@@ -1,4 +1,22 @@
1
1
  class SpudPagePartial < ActiveRecord::Base
2
2
  belongs_to :spud_page
3
3
  attr_accessible :name,:spud_page_id,:content,:format
4
+ before_save :maintain_revisions
5
+
6
+
7
+ def maintain_revisions
8
+ if !self.changed.include?('content')
9
+ return true
10
+ end
11
+ revision = SpudPagePartialRevision.new(:spud_page_id => self.spud_page_id,:name => self.name,:format => self.format,:content => self.content)
12
+ revision.save
13
+ if Spud::Cms.max_revisions > 0
14
+ revision_count = SpudPagePartialRevision.where(:spud_page_id => self.spud_page_id,:name => self.name).count
15
+ if revision_count > Spud::Cms.max_revisions
16
+ revision_bye = SpudPagePartialRevision.where(:spud_page_id => self.spud_page_id,:name => self.name).order("created_at ASC").first
17
+ revision_bye.destroy if !revision_bye.blank?
18
+ end
19
+ end
20
+ return true
21
+ end
4
22
  end
@@ -0,0 +1,5 @@
1
+ class SpudPagePartialRevision < ActiveRecord::Base
2
+ belongs_to :spud_page
3
+
4
+ # attr_accessible :title, :body
5
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSpudPagePartialRevisions < ActiveRecord::Migration
2
+ def change
3
+ create_table :spud_page_partial_revisions do |t|
4
+ t.string :name
5
+ t.text :content
6
+ t.string :format
7
+ t.integer :spud_page_id
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :spud_page_partial_revisions,[:spud_page_id,:name],:name => "revision_idx"
12
+ end
13
+ end
@@ -2,7 +2,7 @@ module Spud
2
2
  module Cms
3
3
  include ActiveSupport::Configurable
4
4
 
5
- config_accessor :menus_enabled,:templates_enabled,:root_page_name,:default_page_parts,:yield_body_as_content_block,:default_page_layout,:enable_sitemap,:enable_full_page_caching,:enable_action_caching,:multisite_config
5
+ config_accessor :menus_enabled,:templates_enabled,:root_page_name,:default_page_parts,:yield_body_as_content_block,:default_page_layout,:enable_sitemap,:enable_full_page_caching,:enable_action_caching,:multisite_config,:max_revisions
6
6
 
7
7
  self.root_page_name = "home"
8
8
  self.menus_enabled = true
@@ -13,6 +13,7 @@ module Spud
13
13
  self.enable_full_page_caching = false
14
14
  self.enable_action_caching = false
15
15
  self.enable_sitemap = true
16
+ self.max_revisions = 10
16
17
  self.multisite_config = []
17
18
  def self.site_config_for_short_name(short_name)
18
19
  configs = Spud::Cms.multisite_config.select{|p| p[:short_name].to_s == short_name.to_s}
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Cms
3
- VERSION = "0.8.7"
3
+ VERSION = "0.8.9"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spud_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.7
4
+ version: 0.8.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-08 00:00:00.000000000 Z
12
+ date: 2012-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70342597642680 !ruby/object:Gem::Requirement
16
+ requirement: &70196896877860 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70342597642680
24
+ version_requirements: *70196896877860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: spud_core
27
- requirement: &70342597642140 !ruby/object:Gem::Requirement
27
+ requirement: &70196896877140 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: 0.9.0
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *70342597642140
38
+ version_requirements: *70196896877140
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: spud_permalinks
41
- requirement: &70342597641260 !ruby/object:Gem::Requirement
41
+ requirement: &70196896876340 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ~>
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: 0.0.4
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *70342597641260
49
+ version_requirements: *70196896876340
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: codemirror-rails
52
- requirement: &70342597640760 !ruby/object:Gem::Requirement
52
+ requirement: &70196896875960 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :runtime
59
59
  prerelease: false
60
- version_requirements: *70342597640760
60
+ version_requirements: *70196896875960
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: mysql2
63
- requirement: &70342597640060 !ruby/object:Gem::Requirement
63
+ requirement: &70196896875480 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ! '>='
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: '0'
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *70342597640060
71
+ version_requirements: *70196896875480
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: rspec
74
- requirement: &70342597639400 !ruby/object:Gem::Requirement
74
+ requirement: &70196896875000 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: '0'
80
80
  type: :development
81
81
  prerelease: false
82
- version_requirements: *70342597639400
82
+ version_requirements: *70196896875000
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec-rails
85
- requirement: &70342597638820 !ruby/object:Gem::Requirement
85
+ requirement: &70196896874580 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ! '>='
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
- version_requirements: *70342597638820
93
+ version_requirements: *70196896874580
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: factory_girl
96
- requirement: &70342597638140 !ruby/object:Gem::Requirement
96
+ requirement: &70196896873800 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - =
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: 2.5.0
102
102
  type: :development
103
103
  prerelease: false
104
- version_requirements: *70342597638140
104
+ version_requirements: *70196896873800
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: mocha
107
- requirement: &70342597637080 !ruby/object:Gem::Requirement
107
+ requirement: &70196896873100 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - =
@@ -112,10 +112,10 @@ dependencies:
112
112
  version: 0.10.3
113
113
  type: :development
114
114
  prerelease: false
115
- version_requirements: *70342597637080
115
+ version_requirements: *70196896873100
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: database_cleaner
118
- requirement: &70342597652700 !ruby/object:Gem::Requirement
118
+ requirement: &70196896872400 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - =
@@ -123,7 +123,7 @@ dependencies:
123
123
  version: 0.7.1
124
124
  type: :development
125
125
  prerelease: false
126
- version_requirements: *70342597652700
126
+ version_requirements: *70196896872400
127
127
  description: Spud CMS is a full-featured light weight modular cms engine as a part
128
128
  of the spud suite of rails gems. This particular gem comes with page management,
129
129
  administrative dashboard, template management, menu management and more. It is also
@@ -156,6 +156,7 @@ files:
156
156
  - app/models/spud_menu_item.rb
157
157
  - app/models/spud_page.rb
158
158
  - app/models/spud_page_partial.rb
159
+ - app/models/spud_page_partial_revision.rb
159
160
  - app/models/spud_template.rb
160
161
  - app/views/layouts/spud/admin/cms/detail.html.erb
161
162
  - app/views/pages/show.html.erb
@@ -196,6 +197,7 @@ files:
196
197
  - db/migrate/20120329132314_add_site_id_to_spud_pages.rb
197
198
  - db/migrate/20120329132322_add_site_id_to_spud_templates.rb
198
199
  - db/migrate/20120329132330_add_site_id_to_spud_menus.rb
200
+ - db/migrate/20120510195151_create_spud_page_partial_revisions.rb
199
201
  - lib/spud_cms/configuration.rb
200
202
  - lib/spud_cms/engine.rb
201
203
  - lib/spud_cms/page_route.rb
@@ -257,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
257
259
  version: '0'
258
260
  segments:
259
261
  - 0
260
- hash: -2359263101530837589
262
+ hash: 3473395814718108521
261
263
  required_rubygems_version: !ruby/object:Gem::Requirement
262
264
  none: false
263
265
  requirements:
@@ -266,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
268
  version: '0'
267
269
  segments:
268
270
  - 0
269
- hash: -2359263101530837589
271
+ hash: 3473395814718108521
270
272
  requirements: []
271
273
  rubyforge_project:
272
274
  rubygems_version: 1.8.15