diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index 87baedd..c3f407f 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -166,7 +166,7 @@ class Enterprise < Organization end def default_template - environment.enterprise_template + environment.enterprise_default_template end def template_with_inactive_enterprise diff --git a/app/models/environment.rb b/app/models/environment.rb index ebe5870..5672e57 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -743,13 +743,17 @@ class Environment < ActiveRecord::Base settings[:person_template_id] = value.kind_of?(Person) ? value.id : value end - def enterprise_template + def enterprise_templates + self.enterprises.templates + end + + def enterprise_default_template template = Enterprise.find_by_id settings[:enterprise_template_id] - template if template && template.is_template + template if template && template.is_template? end - def enterprise_template=(value) - settings[:enterprise_template_id] = value.id + def enterprise_default_template=(value) + settings[:enterprise_template_id] = value.kind_of?(Enterprise) ? value.id : value end def inactive_enterprise_template @@ -847,7 +851,7 @@ class Environment < ActiveRecord::Base person_template.visible = false person_template.save! - self.enterprise_template = enterprise_template + self.enterprise_default_template = enterprise_template self.inactive_enterprise_template = inactive_enterprise_template self.community_default_template = community_template self.person_default_template = person_template diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index 451838d..7c321ce 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -492,13 +492,13 @@ class EnvironmentTest < ActiveSupport::TestCase e.reload # the templates must be created - assert_kind_of Enterprise, e.enterprise_template + assert_kind_of Enterprise, e.enterprise_default_template assert_kind_of Enterprise, e.inactive_enterprise_template assert_kind_of Community, e.community_default_template assert_kind_of Person, e.person_default_template # the templates must be private - assert !e.enterprise_template.visible? + assert !e.enterprise_default_template.visible? assert !e.inactive_enterprise_template.visible? assert !e.community_default_template.visible? assert !e.person_default_template.visible? @@ -626,6 +626,66 @@ class EnvironmentTest < ActiveSupport::TestCase assert_equal c3, e.community_default_template end + should 'enterprise_templates return all templates of enterprise' do + env = fast_create(Environment) + + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) + e2 = fast_create(Enterprise, :environment_id => env.id) + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) + assert_equivalent [e1,e3], env.enterprise_templates + end + + should 'enterprise_templates return an empty array if there is no templates of enterprise' do + env = fast_create(Environment) + + fast_create(Enterprise, :environment_id => env.id) + fast_create(Enterprise, :environment_id => env.id) + assert_equivalent [], env.enterprise_templates + end + + should 'enterprise_default_template return the template defined as default' do + env = fast_create(Environment) + + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) + e2 = fast_create(Enterprise, :environment_id => env.id) + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) + + env.settings[:enterprise_template_id]= e3.id + assert_equal e3, env.enterprise_default_template + end + + should 'enterprise_default_template not return a enterprise if its not a template' do + env = fast_create(Environment) + + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) + e2 = fast_create(Enterprise, :environment_id => env.id) + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) + + env.settings[:enterprise_template_id]= e2.id + assert_nil env.enterprise_default_template + end + + should 'enterprise_default_template= define a enterprise model passed as paremeter as default template' do + env = fast_create(Environment) + + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) + e2 = fast_create(Enterprise, :environment_id => env.id) + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) + + env.enterprise_default_template= e3 + assert_equal e3, env.enterprise_default_template + end + + should 'enterprise_default_template= define an id passed as paremeter as the default template' do + env = fast_create(Environment) + + e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id) + e2 = fast_create(Enterprise, :environment_id => env.id) + e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id) + + env.enterprise_default_template= e3.id + assert_equal e3, env.enterprise_default_template + end should 'have a layout template' do e = build(Environment, :layout_template => 'mytemplate') -- libgit2 0.21.2