Commit cf5172f0f099b484efc6564801c77b454052fb1f
1 parent
bb5df40e
Exists in
master
and in
28 other branches
ActionItem0: loading boxes correctly
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@89 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
1 changed file
with
35 additions
and
11 deletions
Show diff stats
app/controllers/application.rb
| ... | ... | @@ -2,22 +2,14 @@ |
| 2 | 2 | # available in all controllers. |
| 3 | 3 | class ApplicationController < ActionController::Base |
| 4 | 4 | |
| 5 | + TEMPLATE_DIR_PATH = 'public/templates' | |
| 6 | + ICON_DIR_PATH = 'public/icons' | |
| 7 | + | |
| 5 | 8 | before_filter :detect_stuff_by_domain |
| 6 | 9 | attr_reader :virtual_community |
| 7 | 10 | |
| 8 | 11 | uses_manage_template :edit => false |
| 9 | 12 | |
| 10 | - before_filter :load_boxes | |
| 11 | - #TODO To diplay the content we need a variable called '@boxes'. | |
| 12 | - #This variable is a set of boxes belongs to a owner | |
| 13 | - #We have to see a better way to do that | |
| 14 | - def load_boxes | |
| 15 | - if Profile.exists?(1) | |
| 16 | - owner = Profile.find(1) | |
| 17 | - @boxes = owner.boxes | |
| 18 | - end | |
| 19 | - end | |
| 20 | - | |
| 21 | 13 | before_filter :load_template |
| 22 | 14 | # Load the template belongs to a Profile and set it at @chosen_template variable. |
| 23 | 15 | # If no profile exist the @chosen_template variable is set to 'default' |
| ... | ... | @@ -28,6 +20,38 @@ class ApplicationController < ActionController::Base |
| 28 | 20 | @chosen_template = @owner.nil? ? "default" : @owner.template |
| 29 | 21 | end |
| 30 | 22 | |
| 23 | + before_filter :load_boxes | |
| 24 | + #Load a set of boxes belongs to a owner. We have to situations. | |
| 25 | + # 1 - The owner has equal or more boxes that boxes defined in template. | |
| 26 | + # The system limit the max number of boxes to the number permited in template | |
| 27 | + # 2 - The owner there isn't enough box that defined in template | |
| 28 | + # The system create the boxes needed to use the current template | |
| 29 | + def load_boxes | |
| 30 | + raise _('Template not found') if @chosen_template.nil? | |
| 31 | + n = boxes_by_template(@chosen_template) | |
| 32 | + @boxes = Array.new | |
| 33 | + if Profile.exists?(1) | |
| 34 | + owner = Profile.find(1) | |
| 35 | + @boxes = owner.boxes | |
| 36 | + end | |
| 37 | + | |
| 38 | + if @boxes.length >= n | |
| 39 | + @boxes = @boxes.first(n) | |
| 40 | + else | |
| 41 | + @boxes = @boxes | |
| 42 | + end | |
| 43 | + | |
| 44 | + end | |
| 45 | + | |
| 46 | + def boxes_by_template(template) | |
| 47 | + #f = YAML.load_file("#{TEMPLATE_DIR_PATH}/#{template}/#{template}.yml") | |
| 48 | + f = YAML.load_file("#{RAILS_ROOT}/public/templates/default/default.yml") | |
| 49 | + number_of_boxes = f[template.to_s]["number_of_boxes"] | |
| 50 | + raise _("The file #{template}.yml it's not a valid template filename") if number_of_boxes.nil? | |
| 51 | + number_of_boxes | |
| 52 | + end | |
| 53 | + | |
| 54 | + | |
| 31 | 55 | def set_default_template |
| 32 | 56 | p = Profile.find(params[:object_id]) |
| 33 | 57 | set_template(p,params[:template_name]) | ... | ... |