Commit c434a2af23163e2003f937a709ea22d764dcdaba
Committed by
Daniela Feitosa
1 parent
2e2cf49f
Exists in
master
and in
23 other branches
Adding link to edit inactive enterprise template to admin control panel
(ActionItem1934)
Showing
5 changed files
with
77 additions
and
7 deletions
Show diff stats
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> | ... | ... |
| ... | ... | @@ -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 < 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 < 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 < 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 | ... | ... |