Commit 82a9151e32a90a9c87ccb7eb083ab1381652f277
Committed by
Antonio Terceiro
1 parent
0f2dfa79
Exists in
master
and in
29 other branches
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
Showing
5 changed files
with
62 additions
and
8 deletions
Show diff stats
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 < 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 < 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 | ... | ... |