Commit 8a5c98ff30faef1df4aed138ae053b08739e2750

Authored by MoisesMachado
1 parent 9ede4b26

ActionItem591: setted the templates and iterface to edit them

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2412 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/admin/admin_panel_controller.rb
... ... @@ -20,6 +20,9 @@ class AdminPanelController < AdminController
20 20 end
21 21 end
22 22  
  23 + def edit_templates
  24 + end
  25 +
23 26 protected
24 27  
25 28 def load_default_enviroment
... ...
app/models/environment.rb
... ... @@ -31,7 +31,7 @@ class Environment < ActiveRecord::Base
31 31 'disable_products_for_enterprises' => _('Disable products for enterprises'),
32 32 }
33 33 end
34   -
  34 +
35 35 # #################################################
36 36 # Relationships and applied behaviour
37 37 # #################################################
... ... @@ -90,7 +90,7 @@ class Environment < ActiveRecord::Base
90 90 def settings
91 91 self[:settings] ||= {}
92 92 end
93   -
  93 +
94 94 # Enables a feature identified by its name
95 95 def enable(feature)
96 96 self.settings["#{feature}_enabled"] = true
... ... @@ -193,7 +193,7 @@ class Environment < ActiveRecord::Base
193 193  
194 194 self.settings['organization_approval_method'] = actual_value
195 195 end
196   -
  196 +
197 197 # the description of the environment. Normally used in the homepage.
198 198 def description
199 199 self.settings[:description]
... ... @@ -263,4 +263,32 @@ class Environment < ActiveRecord::Base
263 263 self[:theme] || 'default'
264 264 end
265 265  
  266 + def enterprise_template
  267 + Enterprise.find settings[:enterprise_template_id]
  268 + end
  269 +
  270 + def community_template
  271 + Community.find settings[:community_template_id]
  272 + end
  273 +
  274 + def person_template
  275 + Person.find settings[:person_template_id]
  276 + end
  277 +
  278 + after_create do |env|
  279 + pre = env.name.to_slug + '_'
  280 + ent_id = Enterprise.create!(:name => 'Enterprise template', :identifier => pre + 'enterprise_template', :environment => env, :public_profile => false).id
  281 + com_id = Community.create!(:name => 'Community template', :identifier => pre + 'community_template', :environment => env, :public_profile => false).id
  282 + pass = Digest::MD5.hexdigest rand.to_s
  283 + user = User.create!(:login => 'person_template', :email => 'template@template.noo', :password => pass, :password_confirmation => pass).person
  284 + user.environment = env
  285 + user.public_profile = false
  286 + user.save!
  287 + usr_id = user.id
  288 + env.settings[:enterprise_template_id] = ent_id
  289 + env.settings[:community_template_id] = com_id
  290 + env.settings[:person_template_id] = usr_id
  291 + env.save!
  292 + end
  293 +
266 294 end
... ...
app/views/admin_panel/edit_templates.rhtml 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +<h1><%= _('Edit Templates') %></h1>
  2 +
  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>
  7 +</ul>
... ...
app/views/admin_panel/index.rhtml
... ... @@ -10,4 +10,5 @@
10 10 <li><%= link_to _('Manage Categories'), :controller => 'categories'%></li>
11 11 <li><%= link_to _('Manage User roles'), :controller => 'role' %></li>
12 12 <li><%= link_to _('Manage Validators by region'), :controller => 'region_validators' %></li>
  13 + <li><%= link_to _('Edit Templates'), :action => 'edit_templates' %></li>
13 14 </ul>
... ...
lib/tasks/populate.rake
... ... @@ -30,6 +30,12 @@ def create_roles
30 30 'manage_environment_categories',
31 31 'manage_environment_roles',
32 32 'manage_environment_validators',
  33 + 'edit_profile',
  34 + 'destroy_profile',
  35 + 'manage_memberships',
  36 + 'post_content',
  37 + 'edit_profile_design',
  38 + 'manage_products',
33 39 ])
34 40 Role.create!(:key => 'profile_admin', :name => N_('Profile Administrator'), :permissions => [
35 41 'edit_profile',
... ...
test/unit/environment_test.rb
... ... @@ -379,4 +379,22 @@ class EnvironmentTest &lt; Test::Unit::TestCase
379 379 assert_equal 'default', Environment.new.theme
380 380 end
381 381  
  382 + should 'create templates' do
  383 + e = Environment.create!(:name => 'test_env')
  384 + e.reload
  385 +
  386 + assert_kind_of Enterprise, e.enterprise_template
  387 + assert_kind_of Community, e.community_template
  388 + assert_kind_of Person, e.person_template
  389 + end
  390 +
  391 + should 'have private templates' do
  392 + e = Environment.create!(:name => 'test_env')
  393 + e.reload
  394 +
  395 + assert !e.enterprise_template.public?
  396 + assert !e.community_template.public?
  397 + assert !e.person_template.public?
  398 + end
  399 +
382 400 end
... ...