Commit c434a2af23163e2003f937a709ea22d764dcdaba

Authored by Joenio Costa
Committed by Daniela Feitosa
1 parent 2e2cf49f

Adding link to edit inactive enterprise template to admin control panel

(ActionItem1934)
app/models/environment.rb
... ... @@ -673,13 +673,14 @@ class Environment < ActiveRecord::Base
673 673 def create_templates
674 674 pre = self.name.to_slug + '_'
675 675 ent_id = Enterprise.create!(:name => 'Enterprise template', :identifier => pre + 'enterprise_template', :environment => self, :visible => false).id
  676 + inactive_enterprise_tmpl = Enterprise.create!(:name => 'Inactive Enterprise template', :identifier => pre + 'inactive_enterprise_template', :environment => self, :visible => false)
676 677 com_id = Community.create!(:name => 'Community template', :identifier => pre + 'community_template', :environment => self, :visible => false).id
677 678 pass = Digest::MD5.hexdigest rand.to_s
678 679 user = User.create!(:login => (pre + 'person_template'), :email => (pre + 'template@template.noo'), :password => pass, :password_confirmation => pass, :environment => self).person
679   - user.visible = false
680   - user.save!
  680 + user.update_attributes(:visible => false, :name => "Person template")
681 681 usr_id = user.id
682 682 self.settings[:enterprise_template_id] = ent_id
  683 + self.inactive_enterprise_template = inactive_enterprise_tmpl
683 684 self.settings[:community_template_id] = com_id
684 685 self.settings[:person_template_id] = usr_id
685 686 self.save!
... ... @@ -687,7 +688,7 @@ class Environment < ActiveRecord::Base
687 688  
688 689 after_destroy :destroy_templates
689 690 def destroy_templates
690   - [enterprise_template, community_template, person_template].compact.each do |template|
  691 + [enterprise_template, inactive_enterprise_template, community_template, person_template].compact.each do |template|
691 692 template.destroy
692 693 end
693 694 end
... ...
app/views/admin_panel/edit_templates.rhtml
1 1 <h1><%= _('Edit Templates') %></h1>
2 2  
3 3 <ul>
4   -<li><%= link_to _('Edit Person Template'), :controller => 'profile_editor', :profile => environment.person_template.identifier %></li>
5   -<li><%= link_to _('Edit Community Template'), :controller => 'profile_editor', :profile => environment.community_template.identifier %></li>
6   -<li><%= link_to __('Edit Enterprise Template'), :controller => 'profile_editor', :profile => environment.enterprise_template.identifier %></li>
  4 +<% [[_('Edit Person Template'), environment.person_template],
  5 + [_('Edit Community Template'), environment.community_template],
  6 + [__('Edit Enterprise Template'), environment.enterprise_template],
  7 + [__('Edit Inactive Enterprise Template'), environment.inactive_enterprise_template]].select{|i| i[1]}.each do |row| %>
  8 +<li><%= link_to row[0], :controller => 'profile_editor', :profile => row[1].identifier %></li>
  9 +<% end %>
7 10 </ul>
... ...
features/edit_environment_templates.feature 0 → 100644
... ... @@ -0,0 +1,53 @@
  1 +Feature: edit environment templates
  2 + As an administrator
  3 + I want edit templates
  4 +
  5 + Background:
  6 + Given that the default environment have all profile templates
  7 +
  8 + Scenario: See links to edit all templates
  9 + Given I am logged in as admin
  10 + When I follow "Administration"
  11 + And I follow "Edit Templates"
  12 + Then I should see "Edit Person Template" link
  13 + And I should see "Edit Community Template" link
  14 + And I should see "Edit Enterprise Template" link
  15 + And I should see "Edit Inactive Enterprise Template" link
  16 +
  17 + Scenario: Go to control panel of person template
  18 + Given I am logged in as admin
  19 + When I follow "Administration"
  20 + And I follow "Edit Templates"
  21 + And I follow "Edit Person Template"
  22 + Then I should be on Person template's control panel
  23 +
  24 + Scenario: Go to control panel of enterprise template
  25 + Given I am logged in as admin
  26 + When I follow "Administration"
  27 + And I follow "Edit Templates"
  28 + And I follow "Edit Enterprise Template"
  29 + Then I should be on Enterprise template's control panel
  30 +
  31 + Scenario: Go to control panel of inactive enterprise template
  32 + Given I am logged in as admin
  33 + When I follow "Administration"
  34 + And I follow "Edit Templates"
  35 + And I follow "Edit Inactive Enterprise Template"
  36 + Then I should be on Inactive Enterprise template's control panel
  37 +
  38 + Scenario: Go to control panel of community template
  39 + Given I am logged in as admin
  40 + When I follow "Administration"
  41 + And I follow "Edit Templates"
  42 + And I follow "Edit Community Template"
  43 + Then I should be on Community template's control panel
  44 +
  45 + Scenario: Not see link to edit an unexistent template
  46 + Given that the default environment have no Inactive Enterprise template
  47 + And I am logged in as admin
  48 + When I follow "Administration"
  49 + And I follow "Edit Templates"
  50 + Then I should see "Edit Person Template" link
  51 + And I should see "Edit Community Template" link
  52 + And I should see "Edit Enterprise Template" link
  53 + And I should not see "Edit Inactive Enterprise Template" link
... ...
features/step_definitions/noosfero_steps.rb
... ... @@ -411,3 +411,13 @@ end
411 411 And /^I want to add "([^\"]*)" as cost$/ do |string|
412 412 selenium.answer_on_next_prompt(string)
413 413 end
  414 +
  415 +Given /^that the default environment have (.+) templates?$/ do |option|
  416 + env = Environment.default
  417 + case option
  418 + when 'all profile'
  419 + env.create_templates
  420 + when 'no Inactive Enterprise'
  421 + env.inactive_enterprise_template && env.inactive_enterprise_template.destroy
  422 + end
  423 +end
... ...
test/unit/environment_test.rb
... ... @@ -303,7 +303,7 @@ class EnvironmentTest &lt; Test::Unit::TestCase
303 303  
304 304 should 'destroy templates' do
305 305 env = fast_create(Environment)
306   - templates = [mock, mock, mock]
  306 + templates = [mock, mock, mock, mock]
307 307 templates.each do |item|
308 308 item.expects(:destroy)
309 309 end
... ... @@ -311,6 +311,7 @@ class EnvironmentTest &lt; Test::Unit::TestCase
311 311 env.stubs(:person_template).returns(templates[0])
312 312 env.stubs(:community_template).returns(templates[1])
313 313 env.stubs(:enterprise_template).returns(templates[2])
  314 + env.stubs(:inactive_enterprise_template).returns(templates[3])
314 315  
315 316 env.destroy
316 317 end
... ... @@ -507,11 +508,13 @@ class EnvironmentTest &lt; Test::Unit::TestCase
507 508  
508 509 # the templates must be created
509 510 assert_kind_of Enterprise, e.enterprise_template
  511 + assert_kind_of Enterprise, e.inactive_enterprise_template
510 512 assert_kind_of Community, e.community_template
511 513 assert_kind_of Person, e.person_template
512 514  
513 515 # the templates must be private
514 516 assert !e.enterprise_template.visible?
  517 + assert !e.inactive_enterprise_template.visible?
515 518 assert !e.community_template.visible?
516 519 assert !e.person_template.visible?
517 520 end
... ...