Commit f81b2eafb36b724aa17a3454da91e4803f694d04

Authored by Gabriela Navarro
Committed by Arthur Esposte
1 parent 916c5b7d

Add categories software block for home page

Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
README.md
... ... @@ -32,6 +32,13 @@ Schedule Institutions Update
32 32 ./plugins/mpog_software/script/schedule_institution_update.sh
33 33  
34 34  
  35 +Create Categories
  36 +-------------------
  37 +
  38 +To create the categories that a software can have run
  39 +
  40 +rake software:create_categories
  41 +
35 42 Running MPOG Software tests
36 43 --------------------
37 44 $ ruby plugins/mpog_software/test/unit/name_of_file.rb
... ...
lib/categories_software_block.rb 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +class CategoriesSoftwareBlock < Block
  2 +
  3 + attr_accessible :show_name
  4 +
  5 + settings_items :show_name, :type => :boolean, :default => false
  6 +
  7 + def self.description
  8 + _('Categories Softwares')
  9 + end
  10 +
  11 + def help
  12 + _('This block displays the categories and the amount of softwares for each categorie.')
  13 + end
  14 +
  15 + def content(args={})
  16 + block = self
  17 + s = show_name
  18 + lambda do |object|
  19 + render(
  20 + :file => 'blocks/categories_software',
  21 + :locals => { :block => block, :show_name => s }
  22 + )
  23 + end
  24 + end
  25 +
  26 + def cacheable?
  27 + false
  28 + end
  29 +end
... ...
lib/ext/category.rb 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +require_dependency 'category'
  2 +
  3 +class Category
  4 +
  5 + def software_infos
  6 + software_list = self.communities
  7 + software_list.collect{|x| software_list.delete(x) unless x.software? }
  8 + software_list
  9 + end
  10 +
  11 +end
... ...
lib/mpog_software_plugin.rb
... ... @@ -126,7 +126,8 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
126 126 InstitutionsBlock => {:type => [Environment, Person]},
127 127 DownloadBlock => {:type => [Community]},
128 128 RepositoryBlock => {:type => [Community]},
129   - CategoriesAndTagsBlock => {:type => [Community]}
  129 + CategoriesAndTagsBlock => {:type => [Community]},
  130 + CategoriesSoftwareBlock => {:type => [Environment]}
130 131 }
131 132 end
132 133  
... ...
test/unit/categories_software_block_test.rb 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +require File.dirname(__FILE__) + '/../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
  3 +
  4 +class CategoriesSoftwareBlockTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + should 'inherit from Block' do
  7 + assert_kind_of Block, CategoriesSoftwareBlock.new
  8 + end
  9 +
  10 + should 'declare its default title' do
  11 + CategoriesSoftwareBlock.any_instance.stubs(:profile_count).returns(0)
  12 + assert_equal Block.new.default_title, CategoriesSoftwareBlock.new.default_title
  13 + end
  14 +
  15 + should 'describe itself' do
  16 + assert_not_equal Block.description, CategoriesSoftwareBlock.description
  17 + end
  18 +
  19 +end
... ...
views/blocks/categories_software.html.erb 0 → 100644
... ... @@ -0,0 +1,24 @@
  1 +<div id="mais-software-block">
  2 + <div id="sbp-information-softwares">
  3 +
  4 + <h2>Veja mais Software</h2>
  5 + <ul>
  6 + <li><a href="#">Mais baixados</a></li>
  7 + <li><a href="#">Melhores notas</a></li>
  8 + <li><a href="#">Atualizados recentemente</a></li>
  9 + <li><a href="#">Novos no Portal</a></li>
  10 + </ul>
  11 + </div>
  12 +
  13 + <div id="list-categories">
  14 + <p><%= _("Categories:") %></p>
  15 + <ul class="categories-mais-software">
  16 +
  17 + <% Category.all.each do |category| %>
  18 + <% if category.name != "Software" %>
  19 + <li><%= link_to category.name + " (#{category.software_infos.count})", "#" %></li>
  20 + <% end %>
  21 + <% end %>
  22 + </ul>
  23 + </div>
  24 +</div>
0 25 \ No newline at end of file
... ...