Commit 07e24499d212b00d38aa0a508f0e2d0136d6f72c
1 parent
ce1288aa
Exists in
master
and in
27 other branches
refactoring community template management
Showing
3 changed files
with
73 additions
and
24 deletions
Show diff stats
app/models/community.rb
@@ -78,7 +78,7 @@ class Community < Organization | @@ -78,7 +78,7 @@ class Community < Organization | ||
78 | end | 78 | end |
79 | 79 | ||
80 | def default_template | 80 | def default_template |
81 | - environment.community_template | 81 | + environment.community_default_template |
82 | end | 82 | end |
83 | 83 | ||
84 | def news(limit = 30, highlight = false) | 84 | def news(limit = 30, highlight = false) |
app/models/environment.rb
@@ -717,13 +717,17 @@ class Environment < ActiveRecord::Base | @@ -717,13 +717,17 @@ class Environment < ActiveRecord::Base | ||
717 | ] | 717 | ] |
718 | end | 718 | end |
719 | 719 | ||
720 | - def community_template | 720 | + def community_templates |
721 | + self.communities.templates | ||
722 | + end | ||
723 | + | ||
724 | + def community_default_template | ||
721 | template = Community.find_by_id settings[:community_template_id] | 725 | template = Community.find_by_id settings[:community_template_id] |
722 | - template if template && template.is_template | 726 | + template if template && template.is_template? |
723 | end | 727 | end |
724 | 728 | ||
725 | - def community_template=(value) | ||
726 | - settings[:community_template_id] = value.id | 729 | + def community_default_template=(value) |
730 | + settings[:community_template_id] = value.kind_of?(Community) ? value.id : value | ||
727 | end | 731 | end |
728 | 732 | ||
729 | def person_templates | 733 | def person_templates |
@@ -845,7 +849,7 @@ class Environment < ActiveRecord::Base | @@ -845,7 +849,7 @@ class Environment < ActiveRecord::Base | ||
845 | 849 | ||
846 | self.enterprise_template = enterprise_template | 850 | self.enterprise_template = enterprise_template |
847 | self.inactive_enterprise_template = inactive_enterprise_template | 851 | self.inactive_enterprise_template = inactive_enterprise_template |
848 | - self.community_template = community_template | 852 | + self.community_default_template = community_template |
849 | self.person_default_template = person_template | 853 | self.person_default_template = person_template |
850 | self.save! | 854 | self.save! |
851 | end | 855 | end |
test/unit/environment_test.rb
@@ -494,32 +494,16 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -494,32 +494,16 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
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_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_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_template.visible? |
502 | assert !e.inactive_enterprise_template.visible? | 502 | assert !e.inactive_enterprise_template.visible? |
503 | - assert !e.community_template.visible? | 503 | + assert !e.community_default_template.visible? |
504 | assert !e.person_default_template.visible? | 504 | assert !e.person_default_template.visible? |
505 | end | 505 | end |
506 | 506 | ||
507 | - should 'set templates' do | ||
508 | - e = fast_create(Environment) | ||
509 | - | ||
510 | - comm = fast_create(Community, :is_template => true) | ||
511 | - e.community_template = comm | ||
512 | - assert_equal comm, e.community_template | ||
513 | - | ||
514 | - person = fast_create(Person, :is_template => true) | ||
515 | - e.person_default_template = person | ||
516 | - assert_equal person, e.person_default_template | ||
517 | - | ||
518 | - enterprise = fast_create(Enterprise, :is_template => true) | ||
519 | - e.enterprise_template = enterprise | ||
520 | - assert_equal enterprise, e.enterprise_template | ||
521 | - end | ||
522 | - | ||
523 | should 'person_templates return all templates of person' do | 507 | should 'person_templates return all templates of person' do |
524 | e = fast_create(Environment) | 508 | e = fast_create(Environment) |
525 | 509 | ||
@@ -581,6 +565,67 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -581,6 +565,67 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
581 | assert_equal p3, e.person_default_template | 565 | assert_equal p3, e.person_default_template |
582 | end | 566 | end |
583 | 567 | ||
568 | + should 'community_templates return all templates of community' do | ||
569 | + e = fast_create(Environment) | ||
570 | + | ||
571 | + c1= fast_create(Community, :is_template => true, :environment_id => e.id) | ||
572 | + c2 = fast_create(Community, :environment_id => e.id) | ||
573 | + c3 = fast_create(Community, :is_template => true, :environment_id => e.id) | ||
574 | + assert_equivalent [c1,c3], e.community_templates | ||
575 | + end | ||
576 | + | ||
577 | + should 'community_templates return an empty array if there is no templates of community' do | ||
578 | + e = fast_create(Environment) | ||
579 | + | ||
580 | + fast_create(Community, :environment_id => e.id) | ||
581 | + fast_create(Community, :environment_id => e.id) | ||
582 | + assert_equivalent [], e.community_templates | ||
583 | + end | ||
584 | + | ||
585 | + should 'community_default_template return the template defined as default' do | ||
586 | + e = fast_create(Environment) | ||
587 | + | ||
588 | + c1= fast_create(Community, :is_template => true, :environment_id => e.id) | ||
589 | + c2 = fast_create(Community, :environment_id => e.id) | ||
590 | + c3 = fast_create(Community, :is_template => true, :environment_id => e.id) | ||
591 | + | ||
592 | + e.settings[:community_template_id]= c3.id | ||
593 | + assert_equal c3, e.community_default_template | ||
594 | + end | ||
595 | + | ||
596 | + should 'community_default_template not return a community if its not a template' do | ||
597 | + e = fast_create(Environment) | ||
598 | + | ||
599 | + c1= fast_create(Community, :is_template => true, :environment_id => e.id) | ||
600 | + c2 = fast_create(Community, :environment_id => e.id) | ||
601 | + c3 = fast_create(Community, :is_template => true, :environment_id => e.id) | ||
602 | + | ||
603 | + e.settings[:community_template_id]= c2.id | ||
604 | + assert_nil e.community_default_template | ||
605 | + end | ||
606 | + | ||
607 | + should 'community_default_template= define a community model passed as paremeter as default template' do | ||
608 | + e = fast_create(Environment) | ||
609 | + | ||
610 | + c1= fast_create(Community, :is_template => true, :environment_id => e.id) | ||
611 | + c2 = fast_create(Community, :environment_id => e.id) | ||
612 | + c3 = fast_create(Community, :is_template => true, :environment_id => e.id) | ||
613 | + | ||
614 | + e.community_default_template= c3 | ||
615 | + assert_equal c3, e.community_default_template | ||
616 | + end | ||
617 | + | ||
618 | + should 'community_default_template= define an id passed as paremeter as the default template' do | ||
619 | + e = fast_create(Environment) | ||
620 | + | ||
621 | + c1= fast_create(Community, :is_template => true, :environment_id => e.id) | ||
622 | + c2 = fast_create(Community, :environment_id => e.id) | ||
623 | + c3 = fast_create(Community, :is_template => true, :environment_id => e.id) | ||
624 | + | ||
625 | + e.community_default_template= c3.id | ||
626 | + assert_equal c3, e.community_default_template | ||
627 | + end | ||
628 | + | ||
584 | 629 | ||
585 | should 'have a layout template' do | 630 | should 'have a layout template' do |
586 | e = build(Environment, :layout_template => 'mytemplate') | 631 | e = build(Environment, :layout_template => 'mytemplate') |