From d0bbe272178b038d9bad9236e334f6009505728c Mon Sep 17 00:00:00 2001 From: r888888888 Date: Mon, 22 Aug 2016 14:59:43 -0700 Subject: [PATCH] include saved searches section in user profiles --- app/models/saved_search.rb | 2 +- app/models/user.rb | 9 ++++++++- app/presenters/user_presenter.rb | 8 ++++++++ app/views/users/_post_summary.html.erb | 16 ++++++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/app/models/saved_search.rb b/app/models/saved_search.rb index 3980b5977..7de5f743f 100644 --- a/app/models/saved_search.rb +++ b/app/models/saved_search.rb @@ -106,7 +106,7 @@ class SavedSearch < ActiveRecord::Base end end - body.scan(/\d+/).map(&:to_i) + body.to_s.scan(/\d+/).map(&:to_i) end def normalize diff --git a/app/models/user.rb b/app/models/user.rb index e78c8075d..9b569a415 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -790,7 +790,14 @@ class User < ActiveRecord::Base module SavedSearchMethods def unique_saved_search_categories - [SavedSearch::UNCATEGORIZED_NAME] + saved_searches.pluck(:category).reject {|x| x.blank?}.uniq + categories = saved_searches.pluck(:category) + + if categories.any? {|x| x.nil?} + categories.compact! + categories.unshift(SavedSearch::UNCATEGORIZED_NAME) + end + + categories end end diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb index ca9dfba60..86739971e 100644 --- a/app/presenters/user_presenter.rb +++ b/app/presenters/user_presenter.rb @@ -212,6 +212,14 @@ class UserPresenter user.subscriptions.select {|x| x.is_public?} end end + + def saved_search_categories + if CurrentUser.user.id == user.id + user.unique_saved_search_categories + else + [] + end + end def previous_names UserNameChangeRequest.approved.where("user_id = ?", user.id).map(&:original_name).join(", ") diff --git a/app/views/users/_post_summary.html.erb b/app/views/users/_post_summary.html.erb index e3093232b..687141dd3 100644 --- a/app/views/users/_post_summary.html.erb +++ b/app/views/users/_post_summary.html.erb @@ -33,3 +33,19 @@ <% end %> + +<% if CurrentUser.user.id == @user.id && @user.has_saved_searches? && @user.is_gold? %> + <% presenter.saved_search_categories.each do |category| %> +
+

+ Saved Search: <%= link_to category, posts_path(:tags => "search:#{category}") %> +

+ +
+ <% presenter.posts_for_saved_search_category(category).each do |post| %> + <%= PostPresenter.preview(post, :tags => "search:#{category}") %> + <% end %> +
+
+ <% end %> +<% end %> \ No newline at end of file