georgia 0.7.5 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +9 -2
- data/app/controllers/georgia/dashboard_controller.rb +2 -2
- data/app/controllers/georgia/revisions_controller.rb +2 -0
- data/app/decorators/georgia/application_decorator.rb +15 -0
- data/app/models/acts_as_taggable_on/tag.rb +0 -4
- data/app/models/ckeditor/asset.rb +0 -4
- data/app/models/georgia/concerns/contentable.rb +5 -2
- data/app/models/georgia/page.rb +0 -5
- data/app/views/georgia/pages/_page.html.erb +1 -1
- data/app/views/georgia/revisions/fields/_slides.html.erb +2 -2
- data/app/views/georgia/slides/new.html.erb +1 -1
- data/lib/generators/georgia/install/install_generator.rb +10 -2
- data/lib/generators/georgia/views/templates/app/views/pages/show.html.erb +7 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_default.html.erb +1 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_one-column.html.erb +1 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-left.html.erb +24 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-right.html.erb +24 -0
- data/lib/generators/georgia/views/views_generator.rb +17 -0
- data/lib/georgia/engine.rb +1 -0
- data/lib/georgia/indexer.rb +32 -13
- data/lib/georgia/indexer/extensions/solr_adapter/{acts_as_taggable_on_tag.rb → acts_as_taggable_on/tag.rb} +1 -1
- data/lib/georgia/indexer/extensions/solr_adapter/{ckeditor_asset.rb → ckeditor/asset.rb} +1 -1
- data/lib/georgia/indexer/extensions/solr_adapter/{georgia_page.rb → georgia/page.rb} +1 -1
- data/lib/georgia/indexer/solr_adapter.rb +4 -5
- data/lib/georgia/indexer/tire_adapter.rb +4 -2
- data/lib/georgia/version.rb +1 -1
- data/lib/tasks/georgia.rake +0 -15
- metadata +11 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3e6ad208668a7070cb8265fbac2fd21e2216df43
|
|
4
|
+
data.tar.gz: e003d41f4e19d141fcfcb5629335744a5b9eb205
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4c54848250467dc0896fe3be6077a8082e586c4f69bd262f40891d3eb08a811674fff7bb879407895f4baddb0999ae9e63215c0b99977429ca574030b6d03ab3
|
|
7
|
+
data.tar.gz: 15734547e9bfa5631ef996570349ce563b2fe70c36ff6ad31fc1770403c614a0b7cb7532649905e977ca52809a5659c13d11d686194b52c32c846554f1f95234
|
data/README.md
CHANGED
|
@@ -29,7 +29,6 @@ Rails. Engine. CMS. Plug-and-play content management system for Ruby on Rails. H
|
|
|
29
29
|
* Because it's prettier.
|
|
30
30
|
* Because the guys on refinerycms did a great job and you should check them out.
|
|
31
31
|
* Because it's easy to start a website and push to Heroku.
|
|
32
|
-
* Rails 4 compatible.. almost.
|
|
33
32
|
|
|
34
33
|
### Getting started
|
|
35
34
|
|
|
@@ -43,6 +42,10 @@ Then run the generator to mount routes, run migrations & setup initial instances
|
|
|
43
42
|
|
|
44
43
|
rails generate georgia:install
|
|
45
44
|
|
|
45
|
+
We built Georgia to help you quickly develop an application with a CMS (Content Management System). However, we don't want to be in your way when you need to customize it.
|
|
46
|
+
|
|
47
|
+
rails generate georgia:views
|
|
48
|
+
|
|
46
49
|
Start your server (`rails server`) and go to [http://localhost:3000/admin](http://localhost:3000/admin) to get started.
|
|
47
50
|
|
|
48
51
|
### Heroku
|
|
@@ -56,9 +59,13 @@ Add `config/initializers/bonsai.rb` with:
|
|
|
56
59
|
|
|
57
60
|
ENV['ELASTICSEARCH_URL'] = ENV['BONSAI_URL']
|
|
58
61
|
|
|
59
|
-
|
|
62
|
+
Create your indices with these commands:
|
|
60
63
|
|
|
61
64
|
heroku run rake environment tire:import CLASS=Georgia::Page FORCE=true
|
|
62
65
|
heroku run rake environment tire:import CLASS=Ckeditor::Asset FORCE=true
|
|
63
66
|
|
|
67
|
+
Finally, create your first admin user to access to web panel:
|
|
68
|
+
|
|
69
|
+
heroku run rake georgia:seed
|
|
70
|
+
|
|
64
71
|
For more information, you can also follow these [instructions](https://gist.github.com/nz/2041121) to setup bonsai.io. More [here](https://devcenter.heroku.com/articles/bonsai) on heroku.com
|
|
@@ -6,8 +6,8 @@ module Georgia
|
|
|
6
6
|
@awaiting_revisions = Georgia::Revision.reviews.select{|r| r.revisionable.present?}
|
|
7
7
|
end
|
|
8
8
|
if defined? GeorgiaMailer::Message
|
|
9
|
-
if can?(:index,
|
|
10
|
-
@messages =
|
|
9
|
+
if can?(:index, GeorgiaMailer::Message)
|
|
10
|
+
@messages = GeorgiaMailer::Message.ham.latest.limit(5).decorate
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
@@ -2,5 +2,20 @@ module Georgia
|
|
|
2
2
|
class ApplicationDecorator < Draper::Decorator
|
|
3
3
|
delegate_all
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
def pretty_created_at
|
|
7
|
+
prettify_date(created_at)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def pretty_updated_at
|
|
11
|
+
prettify_date(updated_at)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def prettify_date date
|
|
17
|
+
date.is_a?(String) ? date : date.try(:strftime, '%F')
|
|
18
|
+
end
|
|
19
|
+
|
|
5
20
|
end
|
|
6
21
|
end
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
class Ckeditor::Asset < ActiveRecord::Base
|
|
2
2
|
|
|
3
3
|
include Georgia::Indexer::Adapter
|
|
4
|
-
is_searchable({
|
|
5
|
-
solr: Georgia::Indexer::SolrAdapter::CkeditorAssetExtension,
|
|
6
|
-
tire: Georgia::Indexer::TireAdapter::CkeditorAssetExtension,
|
|
7
|
-
})
|
|
8
4
|
|
|
9
5
|
# to allow media_path in to_jq_upload
|
|
10
6
|
include Georgia::Engine.routes.url_helpers
|
|
@@ -10,8 +10,11 @@ module Georgia
|
|
|
10
10
|
accepts_nested_attributes_for :contents
|
|
11
11
|
attr_accessible :contents_attributes
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
scope :with_locale, lambda {|locale| joins(:contents).where(georgia_contents: {locale: locale})}
|
|
14
|
+
|
|
15
|
+
def content(locale=nil)
|
|
16
|
+
locale ||= I18n.locale.to_s
|
|
17
|
+
@content ||= contents.select{|c| c.locale == locale}.first || Georgia::Content.new
|
|
15
18
|
end
|
|
16
19
|
|
|
17
20
|
delegate :title, :text, :excerpt, :keywords, :keyword_list, :image, :locale, to: :content
|
data/app/models/georgia/page.rb
CHANGED
|
@@ -2,11 +2,6 @@ module Georgia
|
|
|
2
2
|
class Page < ActiveRecord::Base
|
|
3
3
|
|
|
4
4
|
include Georgia::Indexer::Adapter
|
|
5
|
-
is_searchable({
|
|
6
|
-
solr: Georgia::Indexer::SolrAdapter::GeorgiaPageExtension,
|
|
7
|
-
tire: Georgia::Indexer::TireAdapter::GeorgiaPageExtension
|
|
8
|
-
})
|
|
9
|
-
|
|
10
5
|
include Georgia::Concerns::Taggable
|
|
11
6
|
include Georgia::Concerns::Orderable
|
|
12
7
|
include Georgia::Concerns::Slugable
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
<div class="control-group">
|
|
10
10
|
<div class="slides js-slides">
|
|
11
11
|
<ul class="nav-list js-sortable">
|
|
12
|
-
<% @
|
|
13
|
-
<%= slide_portlet_tag(slide) %>
|
|
12
|
+
<% @slides.each do |slide| %>
|
|
13
|
+
<%= slide_portlet_tag(slide, content: slide.content(params[:locale])) %>
|
|
14
14
|
<% end -%>
|
|
15
15
|
</ul>
|
|
16
16
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%= slide_portlet_tag(@slide, content: @slide.
|
|
1
|
+
<%= slide_portlet_tag(@slide, content: @slide.content(params[:locale])) %>
|
|
@@ -39,8 +39,16 @@ module Georgia
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def copy_templates
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
copy_file "config/initializers/georgia.rb"
|
|
43
|
+
copy_file "app/controllers/pages_controller.rb"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def create_indices
|
|
47
|
+
if defined? Tire
|
|
48
|
+
say("Creating elasticsearch indices", :yellow)
|
|
49
|
+
rake "environment tire:import CLASS=Georgia::Page FORCE=true"
|
|
50
|
+
rake "environment tire:import CLASS=Ckeditor::Asset FORCE=true"
|
|
51
|
+
end
|
|
44
52
|
end
|
|
45
53
|
|
|
46
54
|
def show_readme
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render 'pages/templates/one-column' %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= @page.text.html_safe %>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<section id="main">
|
|
2
|
+
<div class='container'>
|
|
3
|
+
|
|
4
|
+
<div class="row">
|
|
5
|
+
|
|
6
|
+
<aside id="sidebar-left" class="col-md-3">
|
|
7
|
+
<% @page.widgets.each do |widget| %>
|
|
8
|
+
<div class="widget">
|
|
9
|
+
<h4><%= widget.title %></h4>
|
|
10
|
+
<p>
|
|
11
|
+
<%= widget.text.html_safe %>
|
|
12
|
+
</p>
|
|
13
|
+
</div>
|
|
14
|
+
<% end -%>
|
|
15
|
+
</aside>
|
|
16
|
+
|
|
17
|
+
<div id='content' class="col-md-9">
|
|
18
|
+
<%= @page.text.html_safe %>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
</section>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<section id="main">
|
|
2
|
+
<div class='container'>
|
|
3
|
+
|
|
4
|
+
<div class="row">
|
|
5
|
+
|
|
6
|
+
<div id='content' class="col-md-9">
|
|
7
|
+
<%= @page.text.html_safe %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<aside id="sidebar-right" class="col-md-3">
|
|
11
|
+
<% @page.widgets.each do |widget| %>
|
|
12
|
+
<div class="widget">
|
|
13
|
+
<h4><%= widget.title %></h4>
|
|
14
|
+
<p>
|
|
15
|
+
<%= widget.text.html_safe %>
|
|
16
|
+
</p>
|
|
17
|
+
</div>
|
|
18
|
+
<% end -%>
|
|
19
|
+
</aside>
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
</section>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Georgia
|
|
2
|
+
module Generators
|
|
3
|
+
class ViewsGenerator < ::Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
def copy_pages_views
|
|
7
|
+
copy_file "app/views/pages/show.html.erb"
|
|
8
|
+
copy_file "app/views/pages/templates/_default.html.erb"
|
|
9
|
+
copy_file "app/views/pages/templates/_one-column.html.erb"
|
|
10
|
+
copy_file "app/views/pages/templates/_sidebar-left.html.erb"
|
|
11
|
+
copy_file "app/views/pages/templates/_sidebar-right.html.erb"
|
|
12
|
+
say("Successfully copied Georgia default templates to your application views.", :green)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
data/lib/georgia/engine.rb
CHANGED
data/lib/georgia/indexer.rb
CHANGED
|
@@ -14,28 +14,47 @@ module Georgia
|
|
|
14
14
|
adapter.search model, params
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def self.searching model, extension
|
|
18
|
-
adapter.searching model, extension
|
|
19
|
-
end
|
|
20
|
-
|
|
21
17
|
private
|
|
22
18
|
|
|
23
19
|
def self.adapter_lookup
|
|
24
|
-
(case Georgia.indexer
|
|
25
|
-
when :solr then SolrAdapter
|
|
26
|
-
when :tire then TireAdapter
|
|
20
|
+
@adapter_lookup ||= (case Georgia.indexer
|
|
21
|
+
when :solr then SolrAdapter
|
|
22
|
+
when :tire then TireAdapter
|
|
27
23
|
else
|
|
28
|
-
TireAdapter
|
|
24
|
+
TireAdapter
|
|
29
25
|
end)
|
|
30
26
|
end
|
|
31
27
|
|
|
32
28
|
module Adapter
|
|
33
|
-
extend ActiveSupport::Concern
|
|
34
29
|
|
|
35
|
-
|
|
36
|
-
def
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
class << self
|
|
31
|
+
def included(klass)
|
|
32
|
+
extension = Extension.new(klass)
|
|
33
|
+
begin
|
|
34
|
+
require extension.path
|
|
35
|
+
klass.send(:include, extension.name)
|
|
36
|
+
rescue => ex
|
|
37
|
+
raise "No extension for the #{Georgia.indexer} indexer: #{ex.message}"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class Extension
|
|
42
|
+
def initialize klass
|
|
43
|
+
@klass = klass
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def name
|
|
47
|
+
name = @klass.to_s.gsub('::', '') + 'Extension'
|
|
48
|
+
"#{Georgia::Indexer.adapter}::#{name}".constantize
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def path
|
|
52
|
+
"georgia/indexer/extensions/#{Georgia.indexer}_adapter/#{filename}"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def filename
|
|
56
|
+
@klass.to_s.underscore
|
|
57
|
+
end
|
|
39
58
|
end
|
|
40
59
|
end
|
|
41
60
|
end
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
require 'sunspot_rails' if defined?(Sunspot)
|
|
2
|
-
Dir[File.join(File.dirname(__FILE__), 'extensions', 'solr_adapter', '*.rb')].each {|file| require file }
|
|
3
|
-
|
|
4
1
|
module Georgia
|
|
5
2
|
module Indexer
|
|
6
|
-
|
|
3
|
+
module SolrAdapter
|
|
4
|
+
|
|
5
|
+
require 'sunspot_rails' if defined?(Sunspot)
|
|
7
6
|
|
|
8
7
|
# Delegate search_index to the model
|
|
9
8
|
# Search method is taken by Sunspot
|
|
10
|
-
def search model, params
|
|
9
|
+
def self.search model, params
|
|
11
10
|
model.search_index model, params
|
|
12
11
|
end
|
|
13
12
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
if defined?(Tire)
|
|
2
|
+
require 'tire'
|
|
3
|
+
Dir[File.join(File.dirname(__FILE__), 'extensions', 'tire_adapter', '*.rb')].each {|file| require file }
|
|
4
|
+
end
|
|
3
5
|
|
|
4
6
|
module Georgia
|
|
5
7
|
module Indexer
|
data/lib/georgia/version.rb
CHANGED
data/lib/tasks/georgia.rake
CHANGED
|
@@ -11,19 +11,4 @@ namespace :georgia do
|
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
namespace :messages do
|
|
15
|
-
|
|
16
|
-
desc "Send to Akismet all unverified messages"
|
|
17
|
-
task verify: :environment do
|
|
18
|
-
puts "Check for spam. Currently have #{Georgia::Message.spam.count} spam and #{Georgia::Message.ham.count} ham messages."
|
|
19
|
-
puts "Checking #{Georgia::Message.where(verified_at: nil).count} unverified messages."
|
|
20
|
-
Georgia::Message.where(verified_at: nil).find_each do |message|
|
|
21
|
-
message.update_attributes(spam: message.spam?, verified_at: Time.zone.now)
|
|
22
|
-
end
|
|
23
|
-
puts "Check completed. #{Georgia::Message.spam.count} spam. #{Georgia::Message.ham.count} ham."
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
|
|
29
14
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: georgia
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mathieu Gagné
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-02-
|
|
11
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -719,6 +719,12 @@ files:
|
|
|
719
719
|
- lib/tasks/georgia.rake
|
|
720
720
|
- lib/tasks/upgrade.rake
|
|
721
721
|
- lib/tasks/assets.rake
|
|
722
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_one-column.html.erb
|
|
723
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_default.html.erb
|
|
724
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-right.html.erb
|
|
725
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-left.html.erb
|
|
726
|
+
- lib/generators/georgia/views/templates/app/views/pages/show.html.erb
|
|
727
|
+
- lib/generators/georgia/views/views_generator.rb
|
|
722
728
|
- lib/generators/georgia/install/templates/Procfile
|
|
723
729
|
- lib/generators/georgia/install/templates/app/controllers/pages_controller.rb
|
|
724
730
|
- lib/generators/georgia/install/templates/config/initializers/georgia.rb
|
|
@@ -735,9 +741,9 @@ files:
|
|
|
735
741
|
- lib/georgia/assets.rb
|
|
736
742
|
- lib/georgia/indexer/tire_adapter.rb
|
|
737
743
|
- lib/georgia/indexer/solr_adapter.rb
|
|
738
|
-
- lib/georgia/indexer/extensions/solr_adapter/
|
|
739
|
-
- lib/georgia/indexer/extensions/solr_adapter/
|
|
740
|
-
- lib/georgia/indexer/extensions/solr_adapter/
|
|
744
|
+
- lib/georgia/indexer/extensions/solr_adapter/georgia/page.rb
|
|
745
|
+
- lib/georgia/indexer/extensions/solr_adapter/acts_as_taggable_on/tag.rb
|
|
746
|
+
- lib/georgia/indexer/extensions/solr_adapter/ckeditor/asset.rb
|
|
741
747
|
- lib/georgia/indexer/extensions/tire_adapter/georgia_page.rb
|
|
742
748
|
- lib/georgia/indexer/extensions/tire_adapter/ckeditor_asset.rb
|
|
743
749
|
- lib/georgia/indexer/extensions/tire_adapter/acts_as_taggable_on_tag.rb
|