Commit 9480ac712e653ed16b65db10ff3dbd5b4f794eec
1 parent
1aaa6fa7
Exists in
master
and in
23 other branches
[pluginize-solr] Moving solr_save calls on add_category methods
Showing
4 changed files
with
37 additions
and
20 deletions
Show diff stats
app/models/article.rb
| @@ -142,7 +142,6 @@ class Article < ActiveRecord::Base | @@ -142,7 +142,6 @@ class Article < ActiveRecord::Base | ||
| 142 | else | 142 | else |
| 143 | ArticleCategorization.add_category_to_article(c, self) | 143 | ArticleCategorization.add_category_to_article(c, self) |
| 144 | self.categories(reload) | 144 | self.categories(reload) |
| 145 | - self.solr_save | ||
| 146 | end | 145 | end |
| 147 | end | 146 | end |
| 148 | 147 | ||
| @@ -160,7 +159,6 @@ class Article < ActiveRecord::Base | @@ -160,7 +159,6 @@ class Article < ActiveRecord::Base | ||
| 160 | ArticleCategorization.add_category_to_article(item, self) | 159 | ArticleCategorization.add_category_to_article(item, self) |
| 161 | end | 160 | end |
| 162 | self.categories(true) | 161 | self.categories(true) |
| 163 | - self.solr_save | ||
| 164 | pending_categorizations.clear | 162 | pending_categorizations.clear |
| 165 | end | 163 | end |
| 166 | 164 | ||
| @@ -630,23 +628,6 @@ class Article < ActiveRecord::Base | @@ -630,23 +628,6 @@ class Article < ActiveRecord::Base | ||
| 630 | img.nil? ? '' : img.attributes['src'] | 628 | img.nil? ? '' : img.attributes['src'] |
| 631 | end | 629 | end |
| 632 | 630 | ||
| 633 | - private | ||
| 634 | - | ||
| 635 | - # FIXME: workaround for development env. | ||
| 636 | - # Subclasses aren't (re)loaded, and acts_as_solr | ||
| 637 | - # depends on subclasses method to search | ||
| 638 | - # see http://stackoverflow.com/questions/4138957/activerecordsubclassnotfound-error-when-using-sti-in-rails/4139245 | ||
| 639 | - UploadedFile | ||
| 640 | - TextArticle | ||
| 641 | - TinyMceArticle | ||
| 642 | - TextileArticle | ||
| 643 | - Folder | ||
| 644 | - EnterpriseHomepage | ||
| 645 | - Gallery | ||
| 646 | - Blog | ||
| 647 | - Forum | ||
| 648 | - Event | ||
| 649 | - | ||
| 650 | delegate :region, :region_id, :environment, :environment_id, :to => :profile, :allow_nil => true | 631 | delegate :region, :region_id, :environment, :environment_id, :to => :profile, :allow_nil => true |
| 651 | 632 | ||
| 652 | private | 633 | private |
app/models/profile.rb
| @@ -246,7 +246,6 @@ class Profile < ActiveRecord::Base | @@ -246,7 +246,6 @@ class Profile < ActiveRecord::Base | ||
| 246 | else | 246 | else |
| 247 | ProfileCategorization.add_category_to_profile(c, self) | 247 | ProfileCategorization.add_category_to_profile(c, self) |
| 248 | self.categories(true) | 248 | self.categories(true) |
| 249 | - self.solr_save | ||
| 250 | end | 249 | end |
| 251 | self.categories(reload) | 250 | self.categories(reload) |
| 252 | end | 251 | end |
plugins/solr/lib/ext/article.rb
| @@ -38,6 +38,20 @@ class Article | @@ -38,6 +38,20 @@ class Article | ||
| 38 | solr_save | 38 | solr_save |
| 39 | end | 39 | end |
| 40 | 40 | ||
| 41 | + def add_category_with_solr_save(c, reload=false) | ||
| 42 | + add_category_without_solr_save(c, reload) | ||
| 43 | + if !new_record? | ||
| 44 | + self.solr_save | ||
| 45 | + end | ||
| 46 | + end | ||
| 47 | + alias_method_chain :add_category, :solr_save | ||
| 48 | + | ||
| 49 | + def create_pending_categorizations_with_solr_save | ||
| 50 | + create_pending_categorizations_without_solr_save | ||
| 51 | + self.solr_save | ||
| 52 | + end | ||
| 53 | + alias_method_chain :create_pending_categorizations, :solr_save | ||
| 54 | + | ||
| 41 | private | 55 | private |
| 42 | 56 | ||
| 43 | def self.solr_plugin_f_type_proc(klass) | 57 | def self.solr_plugin_f_type_proc(klass) |
| @@ -81,4 +95,19 @@ class Article | @@ -81,4 +95,19 @@ class Article | ||
| 81 | def solr_plugin_name_sortable | 95 | def solr_plugin_name_sortable |
| 82 | name | 96 | name |
| 83 | end | 97 | end |
| 98 | + | ||
| 99 | + # FIXME: workaround for development env. | ||
| 100 | + # Subclasses aren't (re)loaded, and acts_as_solr | ||
| 101 | + # depends on subclasses method to search | ||
| 102 | + # see http://stackoverflow.com/questions/4138957/activerecordsubclassnotfound-error-when-using-sti-in-rails/4139245 | ||
| 103 | + UploadedFile | ||
| 104 | + TextArticle | ||
| 105 | + TinyMceArticle | ||
| 106 | + TextileArticle | ||
| 107 | + Folder | ||
| 108 | + EnterpriseHomepage | ||
| 109 | + Gallery | ||
| 110 | + Blog | ||
| 111 | + Forum | ||
| 112 | + Event | ||
| 84 | end | 113 | end |
plugins/solr/lib/ext/profile.rb
| @@ -44,6 +44,14 @@ class Profile | @@ -44,6 +44,14 @@ class Profile | ||
| 44 | self.solr_plugin_extra_index_methods.push(block) if block_given? | 44 | self.solr_plugin_extra_index_methods.push(block) if block_given? |
| 45 | end | 45 | end |
| 46 | 46 | ||
| 47 | + def add_category_with_solr_save(c, reload=false) | ||
| 48 | + add_category_without_solr_save(c, reload) | ||
| 49 | + if !new_record? | ||
| 50 | + self.solr_save | ||
| 51 | + end | ||
| 52 | + end | ||
| 53 | + alias_method_chain :add_category, :solr_save | ||
| 54 | + | ||
| 47 | private | 55 | private |
| 48 | 56 | ||
| 49 | def self.solr_plugin_f_categories_label_proc(environment) | 57 | def self.solr_plugin_f_categories_label_proc(environment) |