added method to model before create

This commit is contained in:
Harry Bomrah 2014-07-18 18:03:18 +08:00
parent 2ed5d10b9d
commit 655e7d7d3f
3 changed files with 12 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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