Commit 600d8e0fa2f3f7528d6b7a0e8980e63a5ed2d9ab

Authored by Leandro Santos
1 parent 07e24499

refactoring enterprise template management

app/models/enterprise.rb
@@ -166,7 +166,7 @@ class Enterprise < Organization @@ -166,7 +166,7 @@ class Enterprise < Organization
166 end 166 end
167 167
168 def default_template 168 def default_template
169 - environment.enterprise_template 169 + environment.enterprise_default_template
170 end 170 end
171 171
172 def template_with_inactive_enterprise 172 def template_with_inactive_enterprise
app/models/environment.rb
@@ -743,13 +743,17 @@ class Environment < ActiveRecord::Base @@ -743,13 +743,17 @@ class Environment < ActiveRecord::Base
743 settings[:person_template_id] = value.kind_of?(Person) ? value.id : value 743 settings[:person_template_id] = value.kind_of?(Person) ? value.id : value
744 end 744 end
745 745
746 - def enterprise_template 746 + def enterprise_templates
  747 + self.enterprises.templates
  748 + end
  749 +
  750 + def enterprise_default_template
747 template = Enterprise.find_by_id settings[:enterprise_template_id] 751 template = Enterprise.find_by_id settings[:enterprise_template_id]
748 - template if template && template.is_template 752 + template if template && template.is_template?
749 end 753 end
750 754
751 - def enterprise_template=(value)  
752 - settings[:enterprise_template_id] = value.id 755 + def enterprise_default_template=(value)
  756 + settings[:enterprise_template_id] = value.kind_of?(Enterprise) ? value.id : value
753 end 757 end
754 758
755 def inactive_enterprise_template 759 def inactive_enterprise_template
@@ -847,7 +851,7 @@ class Environment < ActiveRecord::Base @@ -847,7 +851,7 @@ class Environment < ActiveRecord::Base
847 person_template.visible = false 851 person_template.visible = false
848 person_template.save! 852 person_template.save!
849 853
850 - self.enterprise_template = enterprise_template 854 + self.enterprise_default_template = enterprise_template
851 self.inactive_enterprise_template = inactive_enterprise_template 855 self.inactive_enterprise_template = inactive_enterprise_template
852 self.community_default_template = community_template 856 self.community_default_template = community_template
853 self.person_default_template = person_template 857 self.person_default_template = person_template
test/unit/environment_test.rb
@@ -492,13 +492,13 @@ class EnvironmentTest < ActiveSupport::TestCase @@ -492,13 +492,13 @@ class EnvironmentTest < ActiveSupport::TestCase
492 e.reload 492 e.reload
493 493
494 # the templates must be created 494 # the templates must be created
495 - assert_kind_of Enterprise, e.enterprise_template 495 + assert_kind_of Enterprise, e.enterprise_default_template
496 assert_kind_of Enterprise, e.inactive_enterprise_template 496 assert_kind_of Enterprise, e.inactive_enterprise_template
497 assert_kind_of Community, e.community_default_template 497 assert_kind_of Community, e.community_default_template
498 assert_kind_of Person, e.person_default_template 498 assert_kind_of Person, e.person_default_template
499 499
500 # the templates must be private 500 # the templates must be private
501 - assert !e.enterprise_template.visible? 501 + assert !e.enterprise_default_template.visible?
502 assert !e.inactive_enterprise_template.visible? 502 assert !e.inactive_enterprise_template.visible?
503 assert !e.community_default_template.visible? 503 assert !e.community_default_template.visible?
504 assert !e.person_default_template.visible? 504 assert !e.person_default_template.visible?
@@ -626,6 +626,66 @@ class EnvironmentTest < ActiveSupport::TestCase @@ -626,6 +626,66 @@ class EnvironmentTest < ActiveSupport::TestCase
626 assert_equal c3, e.community_default_template 626 assert_equal c3, e.community_default_template
627 end 627 end
628 628
  629 + should 'enterprise_templates return all templates of enterprise' do
  630 + env = fast_create(Environment)
  631 +
  632 + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  633 + e2 = fast_create(Enterprise, :environment_id => env.id)
  634 + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  635 + assert_equivalent [e1,e3], env.enterprise_templates
  636 + end
  637 +
  638 + should 'enterprise_templates return an empty array if there is no templates of enterprise' do
  639 + env = fast_create(Environment)
  640 +
  641 + fast_create(Enterprise, :environment_id => env.id)
  642 + fast_create(Enterprise, :environment_id => env.id)
  643 + assert_equivalent [], env.enterprise_templates
  644 + end
  645 +
  646 + should 'enterprise_default_template return the template defined as default' do
  647 + env = fast_create(Environment)
  648 +
  649 + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  650 + e2 = fast_create(Enterprise, :environment_id => env.id)
  651 + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  652 +
  653 + env.settings[:enterprise_template_id]= e3.id
  654 + assert_equal e3, env.enterprise_default_template
  655 + end
  656 +
  657 + should 'enterprise_default_template not return a enterprise if its not a template' do
  658 + env = fast_create(Environment)
  659 +
  660 + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  661 + e2 = fast_create(Enterprise, :environment_id => env.id)
  662 + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  663 +
  664 + env.settings[:enterprise_template_id]= e2.id
  665 + assert_nil env.enterprise_default_template
  666 + end
  667 +
  668 + should 'enterprise_default_template= define a enterprise model passed as paremeter as default template' do
  669 + env = fast_create(Environment)
  670 +
  671 + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  672 + e2 = fast_create(Enterprise, :environment_id => env.id)
  673 + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  674 +
  675 + env.enterprise_default_template= e3
  676 + assert_equal e3, env.enterprise_default_template
  677 + end
  678 +
  679 + should 'enterprise_default_template= define an id passed as paremeter as the default template' do
  680 + env = fast_create(Environment)
  681 +
  682 + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  683 + e2 = fast_create(Enterprise, :environment_id => env.id)
  684 + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id)
  685 +
  686 + env.enterprise_default_template= e3.id
  687 + assert_equal e3, env.enterprise_default_template
  688 + end
629 689
630 should 'have a layout template' do 690 should 'have a layout template' do
631 e = build(Environment, :layout_template => 'mytemplate') 691 e = build(Environment, :layout_template => 'mytemplate')