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 | ||||
		Loading…
	
		Reference in New Issue