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 | 1 | require_dependency 'category' |
2 | 2 | |
3 | 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 | 4 | def software_infos |
31 | 5 | software_list = self.communities |
32 | 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 | 151 | end |
152 | 152 | |
153 | 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 | 155 | end |
156 | 156 | |
157 | 157 | def prepare_software_infos_category_enable |
158 | 158 | @enabled_check_box = Hash.new |
159 | - categories = Category.software_categories | |
159 | + categories = SoftwareCommunitiesPlugin.software_categories | |
160 | 160 | |
161 | 161 | categories.each do |category| |
162 | 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 | 17 | _('Add Public Software and MPOG features.') |
18 | 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 | 37 | def profile_tabs |
21 | 38 | if context.profile.community? && context.profile.software? |
22 | 39 | return profile_tabs_software |
... | ... | @@ -47,6 +64,15 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin |
47 | 64 | } |
48 | 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 | 76 | def stylesheet? |
51 | 77 | true |
52 | 78 | end | ... | ... |
src/noosfero-spb/software_communities/lib/tasks/create_categories.rake
... | ... | @@ -5,7 +5,7 @@ namespace :software do |
5 | 5 | if env.plugin_enabled?("SoftwareCommunitiesPlugin") or env.plugin_enabled?("SoftwareCommunities") |
6 | 6 | print 'Creating categories: ' |
7 | 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 | 9 | unless Category.find_by_name(category_name) |
10 | 10 | print '.' |
11 | 11 | Category.create(:name => category_name, :environment => env, :parent => software) | ... | ... |