Commit 07e24499d212b00d38aa0a508f0e2d0136d6f72c

Authored by Leandro Santos
1 parent ce1288aa

refactoring community template management

app/models/community.rb
... ... @@ -78,7 +78,7 @@ class Community < Organization
78 78 end
79 79  
80 80 def default_template
81   - environment.community_template
  81 + environment.community_default_template
82 82 end
83 83  
84 84 def news(limit = 30, highlight = false)
... ...
app/models/environment.rb
... ... @@ -717,13 +717,17 @@ class Environment < ActiveRecord::Base
717 717 ]
718 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 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 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 731 end
728 732  
729 733 def person_templates
... ... @@ -845,7 +849,7 @@ class Environment < ActiveRecord::Base
845 849  
846 850 self.enterprise_template = enterprise_template
847 851 self.inactive_enterprise_template = inactive_enterprise_template
848   - self.community_template = community_template
  852 + self.community_default_template = community_template
849 853 self.person_default_template = person_template
850 854 self.save!
851 855 end
... ...
test/unit/environment_test.rb
... ... @@ -494,32 +494,16 @@ class EnvironmentTest < ActiveSupport::TestCase
494 494 # the templates must be created
495 495 assert_kind_of Enterprise, e.enterprise_template
496 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 498 assert_kind_of Person, e.person_default_template
499 499  
500 500 # the templates must be private
501 501 assert !e.enterprise_template.visible?
502 502 assert !e.inactive_enterprise_template.visible?
503   - assert !e.community_template.visible?
  503 + assert !e.community_default_template.visible?
504 504 assert !e.person_default_template.visible?
505 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 507 should 'person_templates return all templates of person' do
524 508 e = fast_create(Environment)
525 509  
... ... @@ -581,6 +565,67 @@ class EnvironmentTest < ActiveSupport::TestCase
581 565 assert_equal p3, e.person_default_template
582 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 630 should 'have a layout template' do
586 631 e = build(Environment, :layout_template => 'mytemplate')
... ...