From 68daacb6ce92f6ed11ceafbf060286927f9c85db Mon Sep 17 00:00:00 2001 From: MoisesMachado Date: Thu, 10 Jul 2008 23:25:59 +0000 Subject: [PATCH] ActionItem514: category is now updating categorization of parents of categories to non virtual properly --- app/models/categorization.rb | 2 ++ test/unit/article_categorization_test.rb | 11 +++++++++++ 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/app/models/categorization.rb b/app/models/categorization.rb index b895f86..519b1f4 100644 --- a/app/models/categorization.rb +++ b/app/models/categorization.rb @@ -9,6 +9,8 @@ module Categorization connection.execute("insert into #{table_name} (category_id, #{object_id_column}, virtual) values(#{c.id}, #{object.id}, 1>0)") c = c.parent end + else + connection.execute "update #{table_name} set virtual = (1!=1) where #{object_id_column} = #{object.id} and category_id = #{category.id}" end end diff --git a/test/unit/article_categorization_test.rb b/test/unit/article_categorization_test.rb index 7f3460e..a92bb24 100644 --- a/test/unit/article_categorization_test.rb +++ b/test/unit/article_categorization_test.rb @@ -74,4 +74,15 @@ class ArticleCategorizationTest < Test::Unit::TestCase end end + should 'make parent real when categorized after child' do + c1 = Category.create!(:name => 'c1', :environment => Environment.default) + c2 = c1.children.create!(:name => 'c2', :environment => Environment.default) + + p = create_user('testuser').person + a = p.articles.create!(:name => 'test') + ArticleCategorization.add_category_to_article(c2, a) + ArticleCategorization.add_category_to_article(c1, a) + + assert ArticleCategorization.find(:first, :conditions => [ 'category_id = ? and article_id = ? and not virtual', c1.id, a.id ]), 'categorization must be promoted to not virtual' + end end -- libgit2 0.21.2