New and Announcement search. Disabled impression.
This commit is contained in:
1 parent
033667f99b
commit
f9bdb4a327
39 files changed
+222
-1345
No files matched your search
+17
-10
@@ -9,17 +9,24 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
||||
# GET /bulletins.xml
|
||||
|
||||
def index
|
||||
|
||||
date_now = Time.now
|
||||
if !params[:category_id].blank?
|
||||
@bulletins = Bulletin.all.can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(10)
|
||||
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
|
||||
elsif !params[:tag_id].blank?
|
||||
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
|
||||
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
|
||||
@bulletins = @tag.bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(10)
|
||||
if !params[:search_query].blank?
|
||||
search_cond = {:is_checked=>true,:is_hidden=>false}
|
||||
search_cond.merge!({:bulletin_category_id => "#{params[:category_id]}" }) if !params[:category_id].blank?
|
||||
search = Redis::Search.query("Bulletin", params[:search_query], :conditions =>search_cond)
|
||||
search_result = search.collect{|t| t["id"]}
|
||||
@news_bulletins = Bulletin.all.can_display.any_in(_id:search_result).page( params[:page_main]).per(10)
|
||||
else
|
||||
@bulletins = Bulletin.all.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(10)
|
||||
date_now = Time.now
|
||||
if !params[:category_id].blank?
|
||||
@bulletins = Bulletin.all.can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(10)
|
||||
@current_category = BulletinCategory.from_id(params[:category_id]) rescue nil
|
||||
elsif !params[:tag_id].blank?
|
||||
@tag = AnnouncementTag.find(params[:tag_id]) rescue nil
|
||||
@tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag
|
||||
@bulletins = @tag.bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(10)
|
||||
else
|
||||
@bulletins = Bulletin.all.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(10)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
+3
@@ -47,6 +47,9 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
|
||||
get_categorys
|
||||
end
|
||||
|
||||
def bulletins_search_block
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
|
||||
+25
-2
@@ -1,9 +1,10 @@
|
||||
# encoding: utf-8
|
||||
|
||||
# require "impressionist"
|
||||
class Bulletin
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Redis::Search
|
||||
include Impressionist::Impressionable
|
||||
|
||||
BelongsToCategory = :bulletin_category
|
||||
@@ -13,7 +14,7 @@ class Bulletin
|
||||
|
||||
scope :searchable,where(:is_checked=>true,:is_hidden=>false,:is_pending=>false)
|
||||
|
||||
is_impressionable :counter_cache => { :column_name => :view_count }
|
||||
# is_impressionable :counter_cache => { :column_name => :view_count }
|
||||
|
||||
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :subtitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
@@ -62,7 +63,29 @@ class Bulletin
|
||||
after_save :save_bulletin_links
|
||||
after_save :save_bulletin_files
|
||||
|
||||
redis_search_index(:title_field => :s_title,
|
||||
:alias_field =>:s_title_en ,
|
||||
:score_field => :view_count,
|
||||
:condition_fields => [:is_checked,:is_hidden,:bulletin_category_id],
|
||||
:ext_fields => [])
|
||||
# def gen_title_for_search
|
||||
# # [s_title,s_title_en,s_text_en,s_text_zh_tw].join(' ')
|
||||
# end
|
||||
|
||||
def s_title
|
||||
self.title.zh_tw
|
||||
end
|
||||
|
||||
def s_title_en
|
||||
self.title.en
|
||||
end
|
||||
|
||||
# def s_text_en
|
||||
# Nokogiri::HTML(self.text.en).text
|
||||
# end
|
||||
# def s_text_zh_tw
|
||||
# Nokogiri::HTML(self.text.zh_tw).text
|
||||
# end
|
||||
|
||||
# scope :currently_available, lambda { |category, limit|
|
||||
# # limit ||= 5
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<%= form_tag panel_announcement_front_end_bulletins_path, method: :get do %>
|
||||
<p>
|
||||
<%= text_field_tag :search_query, params[:search_query] %>
|
||||
<%= submit_tag "Search", name: nil %>
|
||||
</p>
|
||||
<% end %>
|
||||
@@ -44,6 +44,7 @@ Rails.application.routes.draw do
|
||||
match "reload_bulletins" => "bulletins#reload_bulletins"
|
||||
match "reload_web_links" => "bulletins#reload_web_links"
|
||||
match "bulletins_side_bar" => "bulletins#bulletins_side_bar"
|
||||
match "bulletins_search_block" => "bulletins#bulletins_search_block"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Vendored
+5
-16
@@ -10,21 +10,10 @@ class Panel::News::FrontEnd::NewsBulletinsController < OrbitWidgetController
|
||||
|
||||
def index
|
||||
if !params[:search_query].blank?
|
||||
search_query =params[:search_query].gsub(/"/,"").split(" ")
|
||||
|
||||
words_query = lambda do |boolean|
|
||||
search_query.each do |word|
|
||||
boolean.should { string "title:#{word}" }
|
||||
#boolean.should { string "sub_title:#{word}" }
|
||||
#boolean.should { string "text:#{word}" }
|
||||
end
|
||||
end
|
||||
|
||||
search_result=Tire.search('news_bulletins') do
|
||||
query {boolean &words_query }
|
||||
#raise to_curl
|
||||
end.results.collect{|t| t.id}
|
||||
|
||||
search_cond = {:is_checked=>true,:is_hidden=>false}
|
||||
search_cond.merge!({:news_bulletin_category_id => "#{params[:category_id]}" }) if !params[:category_id].blank?
|
||||
search = Redis::Search.query("NewsBulletin", params[:search_query], :conditions =>search_cond)
|
||||
search_result = search.collect{|t| t["id"]}
|
||||
@news_bulletins = NewsBulletin.all.can_display.any_in(_id:search_result).page( params[:page_main]).per(10)
|
||||
else
|
||||
date_now = Time.now
|
||||
@@ -50,7 +39,7 @@ class Panel::News::FrontEnd::NewsBulletinsController < OrbitWidgetController
|
||||
else
|
||||
@news_bulletin = NewsBulletin.all.can_display.where(_id: params[:id]).first
|
||||
unless @news_bulletin.disable?
|
||||
impressionist(@news_bulletin)
|
||||
# impressionist(@news_bulletin)
|
||||
get_categorys
|
||||
else
|
||||
render :nothing => true, :status => 403
|
||||
|
||||
Vendored
+3
-2
@@ -47,8 +47,9 @@ caches_page :home_banner
|
||||
get_categorys
|
||||
end
|
||||
|
||||
# def news_bulletins_search_block
|
||||
# end
|
||||
def news_bulletins_search_block
|
||||
|
||||
end
|
||||
|
||||
def home_banner
|
||||
if !params[:category_id].blank?
|
||||
|
||||
+23
-25
@@ -4,6 +4,7 @@ class NewsBulletin
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Redis::Search
|
||||
include Impressionist::Impressionable
|
||||
|
||||
BelongsToCategory = :news_bulletin_category
|
||||
@@ -16,7 +17,7 @@ class NewsBulletin
|
||||
|
||||
scope :searchable,where(:is_checked=>true,:is_hidden=>false,:is_pending=>false)
|
||||
|
||||
is_impressionable :counter_cache => { :column_name => :view_count }
|
||||
# is_impressionable :counter_cache => { :column_name => :view_count }
|
||||
|
||||
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :subtitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
@@ -89,32 +90,29 @@ class NewsBulletin
|
||||
"news_bulletin"
|
||||
end
|
||||
|
||||
def to_indexed_json
|
||||
titles = title.zh_tw #+ title.en
|
||||
sub_titles = subtitle.zh_tw #+ subtitle.en
|
||||
texts = text.zh_tw #+ text.en
|
||||
{
|
||||
:_id => _id,
|
||||
:title => Nokogiri::HTML(titles).text,
|
||||
:sub_title => Nokogiri::HTML(sub_titles).text,
|
||||
:text => Nokogiri::HTML(texts).text
|
||||
}.to_json
|
||||
end
|
||||
redis_search_index(:title_field => :s_title,
|
||||
:alias_field => :s_title_en,
|
||||
:score_field => :view_count,
|
||||
:condition_fields => [:is_checked,:is_hidden,:news_bulletin_category_id],
|
||||
:ext_fields =>[])
|
||||
# def gen_title_for_search
|
||||
# # [s_title,s_title_en,s_text_en,s_text_zh_tw].join(' ')
|
||||
# end
|
||||
|
||||
def self.search( search = nil, category_id = nil )
|
||||
if category_id.to_s.size > 0 and search.to_s.size > 0
|
||||
key = /#{search}/
|
||||
find(:all, :conditions => {title: key, news_bulletin_category_id: category_id}).desc( :is_top, :postdate )
|
||||
elsif category_id.to_s.size > 0 and search.to_s.size < 1
|
||||
find(:all, :conditions => {news_bulletin_category_id: category_id}).desc( :is_top, :postdate )
|
||||
elsif search.to_s.size > 0 and category_id.to_s.size < 1
|
||||
key = /#{search}/
|
||||
find(:all, :conditions => {title: key}).desc( :is_top, :postdate )
|
||||
else
|
||||
find(:all).desc( :is_top, :postdate)
|
||||
end
|
||||
end
|
||||
def s_title
|
||||
#self.title.zh_tw
|
||||
end
|
||||
|
||||
def s_title_en
|
||||
#self.title.en
|
||||
end
|
||||
|
||||
# def s_text_en
|
||||
# Nokogiri::HTML(self.text.en).text
|
||||
# end
|
||||
# def s_text_zh_tw
|
||||
# Nokogiri::HTML(self.text.zh_tw).text
|
||||
# end
|
||||
|
||||
def self.widget_datas( category_id = nil )
|
||||
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
<%= form_tag panel_news_front_end_news_bulletins_path, method: :get do %>
|
||||
<p>
|
||||
<%= text_field_tag :search_query, params[:search_query] %>
|
||||
<%= hidden_field_tag :category_id, params[:category_id] %>
|
||||
<%= submit_tag "Search", name: nil %>
|
||||
</p>
|
||||
<% end %>
|
||||
Reference in new issue
Block a user