diff --git a/app/models/article.rb b/app/models/article.rb index 3bb49c6..e161bf6 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -2,6 +2,8 @@ require 'hpricot' class Article < ActiveRecord::Base + acts_as_having_image + SEARCHABLE_FIELDS = { :name => 10, :abstract => 3, diff --git a/db/migrate/20131113151730_add_image_to_article.rb b/db/migrate/20131113151730_add_image_to_article.rb new file mode 100644 index 0000000..2c8980b --- /dev/null +++ b/db/migrate/20131113151730_add_image_to_article.rb @@ -0,0 +1,13 @@ +class AddImageToArticle < ActiveRecord::Migration + + def self.up + add_column :articles, :image_id, :integer + add_column :article_versions, :image_id, :integer + end + + def self.down + remove_column :articles, :image_id + remove_column :article_versions, :image_id + end + +end diff --git a/db/migrate/20131113151835_add_position_to_article.rb b/db/migrate/20131113151835_add_position_to_article.rb new file mode 100644 index 0000000..b960f61 --- /dev/null +++ b/db/migrate/20131113151835_add_position_to_article.rb @@ -0,0 +1,13 @@ +class AddPositionToArticle < ActiveRecord::Migration + + def self.up + add_column :articles, :position, :integer + add_column :article_versions, :position, :integer + end + + def self.down + remove_column :articles, :position + remove_column :article_versions, :position + end + +end diff --git a/plugins/display_content/lib/display_content_block.rb b/plugins/display_content/lib/display_content_block.rb index 2f66d50..0a0fc24 100644 --- a/plugins/display_content/lib/display_content_block.rb +++ b/plugins/display_content/lib/display_content_block.rb @@ -2,8 +2,13 @@ class DisplayContentBlock < Block settings_items :nodes, :type => Array, :default => [] settings_items :parent_nodes, :type => Array, :default => [] - settings_items :chosen_attributes, :type => Array, :default => ['title'] - + settings_items :sections, + :type => Array, + :default => [{:name => _('Title'), :checked => true}, + {:name => _('Abstract'), :checked => true}, + {:name => _('Body'), :checked => false}, + {:name => _('Image'), :checked => false}] + def self.description _('Display your contents') end @@ -39,13 +44,27 @@ class DisplayContentBlock < Block include ActionController::UrlWriter def content(args={}) docs = owner.articles.find(:all, :conditions => {:id => self.nodes}) + + content_sections = '' + block_title(title) + - content_tag('ul', docs.map {|item| - content_tag('li', - (display_attribute?('title') ? content_tag('div', link_to(h(item.title), item.url), :class => 'title') : '') + - (display_attribute?('abstract') ? content_tag('div', item.abstract ,:class => 'lead') : '') + - (display_attribute?('body') ? content_tag('div', item.body ,:class => 'body') : '') - ) + content_tag('ul', docs.map {|item| + sections.select { |section| + case section[:name] + when 'title' + content_sections += (display_section?(section) ? (content_tag('div', link_to(h(item.title), item.url), :class => 'title') ) : '') + when 'abstract' + content_sections += (display_section?(section) ? (content_tag('div', item.abstract ,:class => 'lead')) : '' ) + when 'body' + content_sections += (display_section?(section) ? (content_tag('div', item.body ,:class => 'body')) : '' ) + when 'image' + image_section = image_tag item.image.public_filename if item.image + if !image_section.blank? + content_sections += (display_section?(section) ? (content_tag('div', image_section ,:class => 'image')) : '' ) + end + end + } + content_tag('li', content_sections) }.join("\n")) end @@ -61,8 +80,8 @@ class DisplayContentBlock < Block params end - def display_attribute?(attr) - chosen_attributes.include?(attr) + def display_section?(section) + section[:checked] end protected diff --git a/plugins/display_content/lib/display_content_plugin.rb b/plugins/display_content/lib/display_content_plugin.rb index 9a21d00..9fdce6f 100644 --- a/plugins/display_content/lib/display_content_plugin.rb +++ b/plugins/display_content/lib/display_content_plugin.rb @@ -20,7 +20,6 @@ class DisplayContentPlugin < Noosfero::Plugin false end - #FIXME make this test def stylesheet? true end diff --git a/plugins/display_content/public/style.css b/plugins/display_content/public/style.css index 5884349..b0212ae 100644 --- a/plugins/display_content/public/style.css +++ b/plugins/display_content/public/style.css @@ -1,7 +1,41 @@ -#display_content_plugin ul { +#display_content_plugin .sections { + width: auto; +} + +#display_content_plugin .sections td { + padding: 2px; +} + +.block.display-content-block ul { list-style: none; + padding: 0px; +} + +.block.display-content-block li { + margin: 5px; +} + +.block.display-content-block .title, +.block.display-content-block .lead, +.block.display-content-block .body, +.block.display-content-block .image { + margin: 2px 0px 2px 0px; } -#display_content_plugin .display_attributes li{ - display: inline; +.block.display-content-block .title { + //border: 1px solid green; } + +.block.display-content-block .lead { + //border: 1px solid purple; +} + +.block.display-content-block .body { + //border: 1px solid blue; +} + +.block.display-content-block .image { + //border: 1px solid yellow; + display: table; +} + diff --git a/plugins/display_content/views/box_organizer/_display_content_block.rhtml b/plugins/display_content/views/box_organizer/_display_content_block.rhtml index b1f417e..337485c 100644 --- a/plugins/display_content/views/box_organizer/_display_content_block.rhtml +++ b/plugins/display_content/views/box_organizer/_display_content_block.rhtml @@ -1,11 +1,17 @@
<%= hidden_field_tag 'block[sections][][name]', section[:name] %> <%= check_box_tag 'block[sections][][checked]', section[:name], section[:checked] %> | +<%= section[:name]%> | +