diff --git a/app/models/article.rb b/app/models/article.rb index 9e2495e..9679923 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -20,6 +20,8 @@ class Article < ActiveRecord::Base settings_items :display_hits, :type => :boolean, :default => true + belongs_to :reference_article, :class_name => "Article", :foreign_key => 'reference_article_id' + before_create do |article| article.published_at = article.created_at if article.published_at.nil? end diff --git a/app/models/folder.rb b/app/models/folder.rb index 9fbe2b4..52da75e 100644 --- a/app/models/folder.rb +++ b/app/models/folder.rb @@ -71,7 +71,8 @@ class Folder < Article has_many :images, :class_name => 'Article', :foreign_key => 'parent_id', - :order => 'type, name', - :conditions => ['type = ? and content_type in (?) or type = ?', 'UploadedFile', UploadedFile.content_types, 'Folder'] + :order => 'articles.type, articles.name', + :include => :reference_article, + :conditions => ["articles.type = 'UploadedFile' and articles.content_type in (?) or articles.type = 'Folder' or (articles.type = 'PublishedArticle' and reference_articles_articles.type = 'UploadedFile' and reference_articles_articles.content_type in (?))", UploadedFile.content_types, UploadedFile.content_types] end diff --git a/app/models/published_article.rb b/app/models/published_article.rb index c993b6e..d58ec32 100644 --- a/app/models/published_article.rb +++ b/app/models/published_article.rb @@ -1,6 +1,4 @@ class PublishedArticle < Article - belongs_to :reference_article, :class_name => "Article" - before_create do |article| parent = article.reference_article.parent if parent && parent.blog? && article.profile.has_blog? diff --git a/app/views/content_viewer/_published_article.rhtml b/app/views/content_viewer/_published_article.rhtml new file mode 100644 index 0000000..ebd0660 --- /dev/null +++ b/app/views/content_viewer/_published_article.rhtml @@ -0,0 +1,7 @@ +<% article = published_article.reference_article %> +<% if article.image? %> +