diff --git a/app/controllers/admin/import_controller.rb b/app/controllers/admin/import_controller.rb index 8a0bd3f..f4b043d 100644 --- a/app/controllers/admin/import_controller.rb +++ b/app/controllers/admin/import_controller.rb @@ -231,7 +231,6 @@ class Admin::ImportController < OrbitAdminController page_id = page_id + "_" + (number + 1).to_s end p = Page.new(:page_id => page_id, :parent_page_id => Page.root.id, :page_type => "page", :url => "/#{page_id}", :module => "page_content", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>page["title"]["en"], "zh_tw" => page["title"]["zh_tw"]},:rss2_id => page["page_id"]) - p.number = Page.root.child_page.max(:number) + 1 p.save en = smart_downloader(page["content"]["en"],data["site_url"]) zh_tw = smart_downloader(page["content"]["zh_tw"],data["site_url"]) @@ -254,7 +253,6 @@ class Admin::ImportController < OrbitAdminController case childpage["type"] when "page" cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "page", :url => "/#{p.page_id}/#{p_id}", :module => "page_content", "enabled_for" => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]},:rss2_id => childpage["page_id"]) - cp.number = p.child_page.max(:number) + 1 cp.save en = smart_downloader(childpage["content"]["en"],data["site_url"]) zh_tw = smart_downloader(childpage["content"]["zh_tw"],data["site_url"]) @@ -262,7 +260,6 @@ class Admin::ImportController < OrbitAdminController page_context.save when "exturl" cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "link", "url" => "/#{p.page_id}/#{p_id}", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]}, :external_url_translations => {"en" => childpage["url"], "zh_tw" => childpage["url"]},:rss2_id => childpage["page_id"]) - cp.number = p.child_page.max(:number) + 1 cp.save when "file" asset = Asset.new @@ -273,7 +270,6 @@ class Admin::ImportController < OrbitAdminController @user.save external_url = asset.data.url cp = Page.new(:page_id => p_id, :parent_page_id => p.id, :page_type => "link", "url" => "/#{p.page_id}/#{p_id}", :enabled_for => ["en", "zh_tw"], :menu_enabled_for => ["en", "zh_tw"], :enabled_for_sitemap => ["en","zh_tw"], :name_translations => {"en"=>childpage["title"]["en"], "zh_tw" => childpage["title"]["zh_tw"]}, :external_url_translations => {"en" => external_url, "zh_tw" => external_url},:rss2_id => childpage["page_id"]) - cp.number = p.child_page.max(:number) + 1 cp.save end end diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 2e6b218..343c1a4 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -320,7 +320,6 @@ class PagesController < ApplicationController p["external_url_translations"]["en"] = p["external_url_translations"]["en"].sub("http://" + request.host_with_port,"") p["external_url_translations"]["zh_tw"] = p["external_url_translations"]["zh_tw"].sub("http://" + request.host_with_port,"") end - p[:number] = page.child_page.max(:number) + 1 p end diff --git a/app/models/page.rb b/app/models/page.rb index 8b66303..88eb55b 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -27,6 +27,18 @@ class Page has_many :child_page, :class_name => 'Page', :inverse_of => :parent_page, :dependent => :destroy belongs_to :parent_page, :class_name => 'Page', :inverse_of => :child_page + before_create :assign_page_number + + def assign_page_number + parent_page = self.parent_page + if parent_page.child_page.count == 0 + number = 0 + else + number = parent_page.child_page.max(:number) + 1 + end + self.number = number + end + def to_param page_id.parameterize end