From 955524ef5e5165a71c67b66abaad2c9e2797efd6 Mon Sep 17 00:00:00 2001 From: hukl Date: Sun, 22 Feb 2009 16:03:09 +0100 Subject: cloning tags from heads to new drafts. splitted the find_or_create_draft method to make it easier to read. fixed a bug in the importer which caused tag loss --- app/models/node.rb | 33 +++++++++++++++++++-------------- lib/update_importer.rb | 3 ++- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/models/node.rb b/app/models/node.rb index 2820f30..b04aeba 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -60,22 +60,27 @@ class Node < ActiveRecord::Base elsif draft && draft.user != user raise "Page is locked" else - # TODO clone tags later on - p = self.pages.create! - - I18n.available_locales.each do |l| - next if l == :root - I18n.locale = l - - p.title = self.head.title - p.abstract = self.head.abstract - p.body = self.head.body - end + create_new_draft user + end + end + + def create_new_draft user + p = self.pages.create! + + p.tag_list = self.head.tag_list.join(", ") + + I18n.available_locales.each do |l| + next if l == :root + I18n.locale = l - p.user = user - p.save - p + p.title = self.head.title + p.abstract = self.head.abstract + p.body = self.head.body end + + p.user = user + p.save + p end def publish_draft! diff --git a/lib/update_importer.rb b/lib/update_importer.rb index 49614b4..0cc07fe 100644 --- a/lib/update_importer.rb +++ b/lib/update_importer.rb @@ -114,9 +114,10 @@ class UpdateImporter if (flags = xhtml.elements['flags']) && page page.tag_list.add("event") if flags.attributes['calendar'] page.tag_list.add("pressemitteilung") if flags.attributes['pm'] - page.save! end + page.save! + if node.head.nil? && page node.head = page node.save! -- cgit v1.3