Commit 3731d14fe303892ba4909ca050a07e941c3f4f94
1 parent
86be5aff
Exists in
refactor_software_communities
software-communities: extract category hardcoded extensions (checkpoint)
Showing
4 changed files
with
29 additions
and
29 deletions
Show diff stats
src/noosfero-spb/software_communities/lib/ext/category.rb
| 1 | require_dependency 'category' | 1 | require_dependency 'category' |
| 2 | 2 | ||
| 3 | class Category | 3 | class Category |
| 4 | - SOFTWARE_CATEGORIES = [ | ||
| 5 | - _('Agriculture, Fisheries and Extraction'), | ||
| 6 | - _('Science, Information and Communication'), | ||
| 7 | - _('Economy and Finances'), | ||
| 8 | - _('Public Administration'), | ||
| 9 | - _('Habitation, Sanitation and Urbanism'), | ||
| 10 | - _('Individual, Family and Society'), | ||
| 11 | - _('Health'), | ||
| 12 | - _('Social Welfare and Development'), | ||
| 13 | - _('Defense and Security'), | ||
| 14 | - _('Education'), | ||
| 15 | - _('Government and Politics'), | ||
| 16 | - _('Justice and Legislation'), | ||
| 17 | - _('International Relationships'), | ||
| 18 | - _('Transportation and Transit') | ||
| 19 | - ] | ||
| 20 | - | ||
| 21 | - scope :software_categories, lambda { | ||
| 22 | - software_category = Category.find_by_name("Software") | ||
| 23 | - if software_category.nil? | ||
| 24 | - [] | ||
| 25 | - else | ||
| 26 | - software_category.children | ||
| 27 | - end | ||
| 28 | - } | ||
| 29 | - | ||
| 30 | def software_infos | 4 | def software_infos |
| 31 | software_list = self.communities | 5 | software_list = self.communities |
| 32 | software_list.collect { |x| software_list.delete(x) unless x.software? } | 6 | software_list.collect { |x| software_list.delete(x) unless x.software? } |
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
| @@ -151,12 +151,12 @@ class SearchController | @@ -151,12 +151,12 @@ class SearchController | ||
| 151 | end | 151 | end |
| 152 | 152 | ||
| 153 | def prepare_software_infos_category_groups | 153 | def prepare_software_infos_category_groups |
| 154 | - @categories = Category.software_categories.sort{|a, b| a.name <=> b.name} | 154 | + @categories = SoftwareCommunitiesPlugin.software_categories.sort{|a, b| a.name <=> b.name} |
| 155 | end | 155 | end |
| 156 | 156 | ||
| 157 | def prepare_software_infos_category_enable | 157 | def prepare_software_infos_category_enable |
| 158 | @enabled_check_box = Hash.new | 158 | @enabled_check_box = Hash.new |
| 159 | - categories = Category.software_categories | 159 | + categories = SoftwareCommunitiesPlugin.software_categories |
| 160 | 160 | ||
| 161 | categories.each do |category| | 161 | categories.each do |category| |
| 162 | if category.software_infos.count > 0 | 162 | if category.software_infos.count > 0 |
src/noosfero-spb/software_communities/lib/software_communities_plugin.rb
| @@ -17,6 +17,23 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin | @@ -17,6 +17,23 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin | ||
| 17 | _('Add Public Software and MPOG features.') | 17 | _('Add Public Software and MPOG features.') |
| 18 | end | 18 | end |
| 19 | 19 | ||
| 20 | + SOFTWARE_CATEGORIES = [ | ||
| 21 | + _('Agriculture, Fisheries and Extraction'), | ||
| 22 | + _('Science, Information and Communication'), | ||
| 23 | + _('Economy and Finances'), | ||
| 24 | + _('Public Administration'), | ||
| 25 | + _('Habitation, Sanitation and Urbanism'), | ||
| 26 | + _('Individual, Family and Society'), | ||
| 27 | + _('Health'), | ||
| 28 | + _('Social Welfare and Development'), | ||
| 29 | + _('Defense and Security'), | ||
| 30 | + _('Education'), | ||
| 31 | + _('Government and Politics'), | ||
| 32 | + _('Justice and Legislation'), | ||
| 33 | + _('International Relationships'), | ||
| 34 | + _('Transportation and Transit') | ||
| 35 | + ] | ||
| 36 | + | ||
| 20 | def profile_tabs | 37 | def profile_tabs |
| 21 | if context.profile.community? && context.profile.software? | 38 | if context.profile.community? && context.profile.software? |
| 22 | return profile_tabs_software | 39 | return profile_tabs_software |
| @@ -47,6 +64,15 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin | @@ -47,6 +64,15 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin | ||
| 47 | } | 64 | } |
| 48 | end | 65 | end |
| 49 | 66 | ||
| 67 | + def self.software_categories | ||
| 68 | + software_category = Category.find_by_name("Software") | ||
| 69 | + if software_category.nil? | ||
| 70 | + [] | ||
| 71 | + else | ||
| 72 | + software_category.children | ||
| 73 | + end | ||
| 74 | + end | ||
| 75 | + | ||
| 50 | def stylesheet? | 76 | def stylesheet? |
| 51 | true | 77 | true |
| 52 | end | 78 | end |
src/noosfero-spb/software_communities/lib/tasks/create_categories.rake
| @@ -5,7 +5,7 @@ namespace :software do | @@ -5,7 +5,7 @@ namespace :software do | ||
| 5 | if env.plugin_enabled?("SoftwareCommunitiesPlugin") or env.plugin_enabled?("SoftwareCommunities") | 5 | if env.plugin_enabled?("SoftwareCommunitiesPlugin") or env.plugin_enabled?("SoftwareCommunities") |
| 6 | print 'Creating categories: ' | 6 | print 'Creating categories: ' |
| 7 | software = Category.create(:name => _("Software"), :environment => env) | 7 | software = Category.create(:name => _("Software"), :environment => env) |
| 8 | - Category::SOFTWARE_CATEGORIES.each do |category_name| | 8 | + SoftwareCommunitiesPlugin::SOFTWARE_CATEGORIES.each do |category_name| |
| 9 | unless Category.find_by_name(category_name) | 9 | unless Category.find_by_name(category_name) |
| 10 | print '.' | 10 | print '.' |
| 11 | Category.create(:name => category_name, :environment => env, :parent => software) | 11 | Category.create(:name => category_name, :environment => env, :parent => software) |