fix for not displaying bulletin at fronted when it's parent category is disable
This commit is contained in:
parent
98b274d9dd
commit
ca2c056a07
|
@ -1,4 +1,34 @@
|
|||
module OrbitCoreLib
|
||||
module BelongsToCategoryMayDisable
|
||||
def self.included(base)
|
||||
base.instance_eval("belongs_to :#{base::BelongsToCategory.to_s}")
|
||||
base.instance_eval("
|
||||
scope :currently_available_by_category, lambda { |category|
|
||||
check_data = category.to_a.collect{|cate| cate.id}
|
||||
any_in(#{ base::BelongsToCategory.to_s}_id: check_data)
|
||||
}
|
||||
")
|
||||
base.instance_eval("scope :admin_manager_all,find(:all)")
|
||||
# base.instance_eval("scope :all,where(disable: false)")
|
||||
base.instance_eval("
|
||||
scope :all, lambda {
|
||||
category = base::BelongsToCategory.to_s.classify.constantize.all
|
||||
check_data = category.to_a.collect{|cate| cate.id}
|
||||
any_in(#{ base::BelongsToCategory.to_s}_id: check_data)
|
||||
}
|
||||
")
|
||||
base.class_eval("
|
||||
def disable?
|
||||
#{base::BelongsToCategory.to_s}.disable?
|
||||
end
|
||||
")
|
||||
end
|
||||
|
||||
|
||||
# end
|
||||
|
||||
|
||||
end
|
||||
module ObjectDisable
|
||||
def self.included(base)
|
||||
|
||||
|
|
|
@ -29,8 +29,12 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
|||
preview_content
|
||||
else
|
||||
@bulletin = Bulletin.can_display.where(_id: params[:id]).first
|
||||
impressionist(@bulletin)
|
||||
get_categorys
|
||||
unless @bulletin.disable?
|
||||
impressionist(@bulletin)
|
||||
get_categorys
|
||||
else
|
||||
render :nothing => true, :status => 403
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -8,4 +8,8 @@ class AnnouncementTag < Tag
|
|||
self.bulletins.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
|
||||
end
|
||||
|
||||
def bulletins
|
||||
Bulletin.all.any_in(:_id => bulletin_ids)
|
||||
end
|
||||
|
||||
end
|
|
@ -5,6 +5,10 @@ class Bulletin
|
|||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Impressionist::Impressionable
|
||||
|
||||
BelongsToCategory = :bulletin_category
|
||||
include OrbitCoreLib::BelongsToCategoryMayDisable
|
||||
|
||||
# include NccuSearch
|
||||
|
||||
scope :searchable,where(:is_checked=>true,:is_hidden=>false,:is_pending=>false)
|
||||
|
@ -39,7 +43,7 @@ class Bulletin
|
|||
|
||||
mount_uploader :image, ImageUploader
|
||||
|
||||
belongs_to :bulletin_category
|
||||
|
||||
# belongs_to :unit_list_for_anc
|
||||
|
||||
# embeds_many :bulletin_links, :cascade_callbacks => true
|
||||
|
@ -59,6 +63,17 @@ class Bulletin
|
|||
after_save :save_bulletin_files
|
||||
|
||||
|
||||
|
||||
# scope :currently_available, lambda { |category, limit|
|
||||
# # limit ||= 5
|
||||
# # {
|
||||
# # debugger
|
||||
# # a=1
|
||||
# :where => {:bulletin_category_id => bulletin_category_id, :disable => false}#,
|
||||
# # :limit => limit
|
||||
# # }
|
||||
# }
|
||||
|
||||
def publish_month
|
||||
published_at.strftime("%B %Y")
|
||||
end
|
||||
|
|
|
@ -5,7 +5,10 @@ class AnnouncementTag < Tag
|
|||
|
||||
def get_visible_bulletins(sort = :name)
|
||||
date_now = Time.now
|
||||
self.bulletins.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
|
||||
self.bulletins.all.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
|
||||
end
|
||||
|
||||
def bulletins
|
||||
Bulletin.all.any_in(:_id => bulletin_ids)
|
||||
end
|
||||
end
|
|
@ -264,7 +264,7 @@ class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
|
|||
respond_to do |format|
|
||||
if @news_bulletin.update_attributes(params[:news_bulletin])
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletin_url(@news_bulletin), :notice => t('news_bulletin.update_news_bulletin_success')) }
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.update_news_bulletin_success')) }
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.update_success')) }
|
||||
format.js { render 'toggle_enable' }
|
||||
format.xml { head :ok }
|
||||
else
|
||||
|
|
|
@ -49,8 +49,13 @@ class Panel::News::FrontEnd::NewsBulletinsController < OrbitWidgetController
|
|||
preview_content
|
||||
else
|
||||
@news_bulletin = NewsBulletin.can_display.where(_id: params[:id]).first
|
||||
impressionist(@news_bulletin)
|
||||
get_categorys
|
||||
unless @news_bulletin.disable?
|
||||
impressionist(@news_bulletin)
|
||||
get_categorys
|
||||
else
|
||||
render :nothing => true, :status => 403
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -51,11 +51,11 @@ class Panel::News::Widget::NewsBulletinsController < OrbitWidgetController
|
|||
|
||||
def home_banner
|
||||
if !params[:category_id].blank?
|
||||
@news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).widget_datas.limit(9)
|
||||
@news_bulletins = NewsBulletin.all.can_display.where(:news_bulletin_category_id => params[:category_id]).widget_datas.limit(9)
|
||||
elsif !params[:tag_id].blank?
|
||||
@news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.widget_datas.limit(9) rescue nil
|
||||
else
|
||||
@news_bulletins = NewsBulletin.can_display.widget_datas.limit(9)
|
||||
@news_bulletins = NewsBulletin.all.can_display.widget_datas.limit(9)
|
||||
end
|
||||
get_categorys
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@ class NewsBulletin
|
|||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Impressionist::Impressionable
|
||||
|
||||
BelongsToCategory = :news_bulletin_category
|
||||
include OrbitCoreLib::BelongsToCategoryMayDisable
|
||||
# include Tire::Model::Search
|
||||
# include Tire::Model::Callbacks
|
||||
# include Redis::Objects
|
||||
|
@ -43,7 +46,6 @@ class NewsBulletin
|
|||
|
||||
mount_uploader :image, ImageUploader
|
||||
|
||||
belongs_to :news_bulletin_category
|
||||
belongs_to :unit_list_for_anc
|
||||
|
||||
# embeds_many :news_bulletin_links, :cascade_callbacks => true
|
||||
|
|
|
@ -8,4 +8,8 @@ class NewsTag < Tag
|
|||
self.news_bulletins.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
|
||||
end
|
||||
|
||||
def news_bulletins
|
||||
NewsBulletin.all.any_in(:_id => news_bulletin_ids)
|
||||
end
|
||||
|
||||
end
|
Reference in New Issue