Commit 600d8e0fa2f3f7528d6b7a0e8980e63a5ed2d9ab
1 parent
07e24499
Exists in
staging
and in
26 other branches
refactoring enterprise template management
Showing
3 changed files
with
72 additions
and
8 deletions
Show diff stats
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') |