Commit 82a9151e32a90a9c87ccb7eb083ab1381652f277

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 0f2dfa79

When creating an enterprise apply inactive template

   * Added feature 'enterprises_are_disabled_when_created'
   * After create, when applying template:
      * if enterprise is disabled, apply inactive_template
      * if enterprise is enabled, apply active_template

ActionItem1268
app/models/enterprise.rb
... ... @@ -121,8 +121,19 @@ class Enterprise < Organization
121 121 blocks
122 122 end
123 123  
  124 + before_create do |enterprise|
  125 + if enterprise.environment.enabled?('enterprises_are_disabled_when_created')
  126 + enterprise.enabled = false
  127 + end
  128 + true
  129 + end
  130 +
124 131 def template
125   - environment.enterprise_template
  132 + if enabled?
  133 + environment.enterprise_template
  134 + else
  135 + environment.inactive_enterprise_template
  136 + end
126 137 end
127 138  
128 139 settings_items :enable_contact_us, :type => :boolean, :default => true
... ...
app/models/environment.rb
... ... @@ -130,6 +130,7 @@ class Environment < ActiveRecord::Base
130 130 'articles_dont_accept_comments_by_default' => _("Articles don't accept comments by default"),
131 131 'organizations_are_moderated_by_default' => _("Organizations have moderated publication by default"),
132 132 'enable_organization_url_change' => _("Allow organizations to change their address"),
  133 + 'enterprises_are_disabled_when_created' => _('Enterprises are disabled when created'),
133 134 }
134 135 end
135 136  
... ...
lib/unifreire_terminology.rb
... ... @@ -38,6 +38,7 @@ class UnifreireTerminology < Noosfero::Terminology::Custom
38 38 'Enable Enterprise' => N_('Enable Institution'),
39 39 'Enterprise Validation' => N_('Institution Validation'),
40 40 'Enterprise Info and settings' => N_('Institution Info and settings'),
  41 + 'Enterprises are disabled when created' => N_('Institutions are disabled when created'),
41 42 })
42 43 end
43 44  
... ...
lib/zen3_terminology.rb
... ... @@ -82,6 +82,7 @@ class Zen3Terminology < Noosfero::Terminology::Custom
82 82 'Choose the communities you want to join and/or create your own.' => N_('Choose the groups you want to join and/or create your own.'),
83 83 'New community' => N_('New group'),
84 84 "Tags are important to new users, they'll be able to find your new community more easily." => N_("Tags are important to new users, they'll be able to find your new group more easily."),
  85 + 'Enterprises are disabled when created' => N_('Organizations are disabled when created'),
85 86 })
86 87 end
87 88  
... ...
test/unit/enterprise_test.rb
... ... @@ -177,14 +177,17 @@ class EnterpriseTest < Test::Unit::TestCase
177 177 end
178 178  
179 179 should 'not replace template if environment doesnt allow' do
180   - template = Enterprise.create!(:name => 'template enteprise', :identifier => 'template_enterprise', :enabled => false)
181   - template.boxes.destroy_all
182   - template.boxes << Box.new
183   - template.boxes[0].blocks << Block.new
184   - template.save!
  180 + inactive_template = Enterprise.create!(:name => 'inactive enteprise template', :identifier => 'inactive_enterprise_template')
  181 + inactive_template.boxes.destroy_all
  182 + inactive_template.boxes << Box.new
  183 + inactive_template.save!
  184 +
  185 + active_template = Enterprise.create!(:name => 'enteprise template', :identifier => 'enterprise_template')
  186 + assert_equal 3, active_template.boxes.size
185 187  
186 188 e = Environment.default
187   - e.enterprise_template = template
  189 + e.inactive_enterprise_template = inactive_template
  190 + e.enterprise_template = active_template
188 191 e.save!
189 192  
190 193 ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
... ... @@ -193,7 +196,6 @@ class EnterpriseTest &lt; Test::Unit::TestCase
193 196 ent.enable(p)
194 197 ent.reload
195 198 assert_equal 1, ent.boxes.size
196   - assert_equal 1, ent.boxes[0].blocks.size
197 199 end
198 200  
199 201 should 'create EnterpriseActivation task when creating with enabled = false' do
... ... @@ -329,4 +331,42 @@ class EnterpriseTest &lt; Test::Unit::TestCase
329 331 assert_equal 'http://website.with.http', p.organization_website
330 332 end
331 333  
  334 + should 'be created disabled if feature enterprises_are_disabled_when_created is enabled' do
  335 + e = Environment.default
  336 + e.enable('enterprises_are_disabled_when_created')
  337 + e.save!
  338 +
  339 + ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent')
  340 + assert_equal false, Enterprise['test_ent'].enabled?
  341 + end
  342 +
  343 + should 'have inactive_template when creating enterprise and feature is enabled' do
  344 + inactive_template = Enterprise.create!(:name => 'inactive enteprise template', :identifier => 'inactive_enterprise_template')
  345 + inactive_template.boxes.destroy_all
  346 + inactive_template.boxes << Box.new
  347 + inactive_template.save!
  348 +
  349 + e = Environment.default
  350 + e.enable('enterprises_are_disabled_when_created')
  351 + e.inactive_enterprise_template = inactive_template
  352 + e.save!
  353 +
  354 + ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent')
  355 + assert_equal 1, ent.boxes.size
  356 + end
  357 +
  358 + should 'have active_template when creating enterprise and feature is disabled' do
  359 + inactive_template = Enterprise.create!(:name => 'inactive enteprise template', :identifier => 'inactive_enterprise_template')
  360 + inactive_template.boxes.destroy_all
  361 + inactive_template.boxes << Box.new
  362 + inactive_template.save!
  363 +
  364 + e = Environment.default
  365 + e.disable('enterprises_are_disabled_when_created')
  366 + e.inactive_enterprise_template = inactive_template
  367 + e.save!
  368 +
  369 + ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent')
  370 + assert_equal 3, ent.boxes.size
  371 + end
332 372 end
... ...