Commit 4264a15bf71637ad2350afe148660c7911a608bf

Authored by Arthur Esposte
1 parent ff8462b8

Remove hard coded software templates' references

src/noosfero-spb/software_communities/config.yml 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +software_template: software
src/noosfero-spb/software_communities/config.yml.dist 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +software_template: software
src/noosfero-spb/software_communities/controllers/software_communities_plugin_myprofile_controller.rb
@@ -167,8 +167,8 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController @@ -167,8 +167,8 @@ class SoftwareCommunitiesPluginMyprofileController < MyProfileController
167 end 167 end
168 168
169 def set_software_as_template 169 def set_software_as_template
170 - software_template = Community['software']  
171 - software_valid = !software_template.blank? && software_template.is_template && !params['community'].blank? 170 + software_template = SoftwareHelper.software_template
  171 + software_valid = !software_template.blank? && !params['community'].blank?
172 if software_valid 172 if software_valid
173 params['community']['template_id'] = software_template.id if software_valid 173 params['community']['template_id'] = software_template.id if software_valid
174 end 174 end
src/noosfero-spb/software_communities/lib/create_software.rb
@@ -16,7 +16,7 @@ class CreateSoftware < Task @@ -16,7 +16,7 @@ class CreateSoftware < Task
16 end 16 end
17 17
18 def perform 18 def perform
19 - software_template = Community["software"] 19 + software_template = SoftwareHelper.software_template
20 if (!software_template.blank? && software_template.is_template) 20 if (!software_template.blank? && software_template.is_template)
21 template_id = software_template.id 21 template_id = software_template.id
22 end 22 end
src/noosfero-spb/software_communities/lib/software_helper.rb
@@ -25,4 +25,19 @@ module SoftwareHelper @@ -25,4 +25,19 @@ module SoftwareHelper
25 def self.all_table_is_empty? table, ignored_fields=[] 25 def self.all_table_is_empty? table, ignored_fields=[]
26 return !table.keys.any?{|key| ignored_fields.include?(key) ? false : !table[key].empty?} 26 return !table.keys.any?{|key| ignored_fields.include?(key) ? false : !table[key].empty?}
27 end 27 end
  28 +
  29 + def self.software_template
  30 + identifier = SoftwareHelper.software_template_identifier
  31 +
  32 + software_template = Community[identifier]
  33 + if !software_template.blank? && software_template.is_template
  34 + software_template
  35 + else
  36 + nil
  37 + end
  38 + end
  39 +
  40 + def self.software_template_identifier
  41 + identifier = YAML::load(File.open(SoftwareCommunitiesPlugin.root_path + 'config.yml'))['software_template']
  42 + end
28 end 43 end
src/noosfero-spb/software_communities/lib/software_info.rb
@@ -177,7 +177,7 @@ class SoftwareInfo < ActiveRecord::Base @@ -177,7 +177,7 @@ class SoftwareInfo < ActiveRecord::Base
177 ) 177 )
178 ) 178 )
179 else 179 else
180 - software_template = Community["software"] 180 + software_template = SoftwareHelper.software_template
181 181
182 community_hash = {:name => name} 182 community_hash = {:name => name}
183 community_hash[:identifier] = identifier 183 community_hash[:identifier] = identifier
@@ -186,7 +186,7 @@ class SoftwareInfo < ActiveRecord::Base @@ -186,7 +186,7 @@ class SoftwareInfo < ActiveRecord::Base
186 community = Community.new(community_hash) 186 community = Community.new(community_hash)
187 community.environment = environment 187 community.environment = environment
188 188
189 - if (!software_template.blank? && software_template.is_template) 189 + unless software_template.blank?
190 community.template_id = software_template.id 190 community.template_id = software_template.id
191 end 191 end
192 192
src/noosfero-spb/software_communities/lib/tasks/templates.rake
@@ -13,10 +13,11 @@ namespace :templates do @@ -13,10 +13,11 @@ namespace :templates do
13 task :software => :environment do 13 task :software => :environment do
14 Environment.all.each do |env| 14 Environment.all.each do |env|
15 if env.plugin_enabled?("MpogSoftware") or env.plugin_enabled?("SoftwareCommunitiesPlugin") 15 if env.plugin_enabled?("MpogSoftware") or env.plugin_enabled?("SoftwareCommunitiesPlugin")
16 - software = Community["software"] 16 + software = SoftwareHelper.software_template
17 17
18 if software.nil? 18 if software.nil?
19 - software = Community.create!(:name => "Software", :identifier => "software") 19 + identifier = YAML::load(File.open(SoftwareCommunitiesPlugin.root_path + 'config.yml'))['software_template']
  20 + software = Community.create!(:name => "Software", :identifier => identifier)
20 end 21 end
21 22
22 software.layout_template = "default" 23 software.layout_template = "default"
src/noosfero-spb/software_communities/test/unit/software_helper_test.rb
@@ -17,4 +17,29 @@ class SoftwareHelperTest < ActiveSupport::TestCase @@ -17,4 +17,29 @@ class SoftwareHelperTest < ActiveSupport::TestCase
17 assert(ProgrammingLanguage.count == count) 17 assert(ProgrammingLanguage.count == count)
18 end 18 end
19 19
  20 + should "return the software template specified in config.yml file" do
  21 + template_community = Community.create!(:name => "Software", :identifier => "software_template", :is_template => true)
  22 +
  23 + parsed_yaml = {"software_template" => "software_template"}
  24 +
  25 + SoftwareHelper.stubs(:software_template_identifier).returns("software_template")
  26 +
  27 + software_template = SoftwareHelper.software_template
  28 + assert !software_template.blank?
  29 + assert software_template.is_template
  30 + end
  31 +
  32 + should "not return the software template if there is not software template" do
  33 + parsed_yaml = {"software_template" => "software_template"}
  34 +
  35 + SoftwareHelper.stubs(:software_template_identifier).returns("software_template")
  36 +
  37 + software_template = SoftwareHelper.software_template
  38 + assert software_template.blank?
  39 +
  40 + template_community = Community.create!(:name => "Software", :identifier => "software_template")
  41 +
  42 + software_template = SoftwareHelper.software_template
  43 + assert software_template.blank?
  44 + end
20 end 45 end