diff --git a/vendor/built_in_modules/announcement/app/models/bulletin - %BDƻs.rb b/vendor/built_in_modules/announcement/app/models/bulletin - %BDƻs.rb
new file mode 100644
index 00000000..c65e65f7
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/models/bulletin - %BDƻs.rb	
@@ -0,0 +1,101 @@
+# encoding: utf-8
+
+class Bulletin
+  include Mongoid::Document
+  include Mongoid::Timestamps
+  include Mongoid::MultiParameterAttributes
+  
+  # field :category_id, :type => Integer
+  field :title
+  # has_one :title_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+  # has_one :subtitle_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+  # has_one :text_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+  field :subtitle
+  field :text
+  field :postdate , :type => Date
+  field :deadline , :type => Date
+  # field :url
+  field :create_user_id
+  field :update_user_id
+  
+  field :is_top, :type => Boolean, :default => false
+  
+  mount_uploader :image, ImageUploader
+  
+  belongs_to :bulletin_category
+  
+  embeds_many :bulletin_links, :cascade_callbacks => true
+  embeds_many :bulletin_files, :cascade_callbacks => true
+
+  # has_many :bulletin_files, :autosave => true, :dependent => :destroy
+  
+  accepts_nested_attributes_for :bulletin_files, :allow_destroy => true
+  accepts_nested_attributes_for :bulletin_links, :allow_destroy => true
+  
+  # validates_presence_of :title_variable
+  validates_presence_of :title
+  
+  after_save :save_bulletin_links
+  after_save :save_bulletin_files
+  
+
+  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, 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 => {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 self.widget_datas
+  
+	date_now = Time.now
+	
+    # find(:all, :conditions => {:postdate => {"$lte" => Date.today}, deadline: nil} ).desc( :is_top, :postdate)
+	# where( :postdate.lte => date_now ).where( :deadline => nil ).desc(:is_top, :postdate)
+	# any_of({ :title => "test" },{:deadline => nil, :title => "123"})
+	any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).limit(5)
+
+
+  end
+ 
+
+  def is_top?
+    self.is_top
+  end
+  
+  def save_bulletin_links
+	self.bulletin_links.each do |t|
+	  if t.should_destroy
+		t.destroy
+	  end
+    end
+  end
+  
+  def save_bulletin_files
+	self.bulletin_files.each do |t|
+	  if t.should_destroy
+		t.destroy
+	  end
+    end
+  end
+  
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/_list_table.html.erb.can_del b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/_list_table.html.erb.can_del
new file mode 100644
index 00000000..59bac03a
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/_list_table.html.erb.can_del
@@ -0,0 +1,15 @@
+
<%= bulletin_category.key %>
+
+  
+	| <%= t('bulletin.status') %> | 
+	<%= t('bulletin.category') %> | 
+	<%= t('bulletin.title') %> | 
+	<%= t('bulletin.postdate') %> | 
+	<%= t('bulletin.deadline') %> | 
+	<%= t('bulletin.action') %> | 
+  
+
+<% bulletin_category.bulletins.each do |post| %>
+	<%= render :partial => 'panel/announcement/back_end/bulletins/bulletins', :locals => {:post => post,:fact_check_allow=>true} %>
+<% end %>	
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/_privilege_user.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/_privilege_user.html.erb
new file mode 100644
index 00000000..347b15b2
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/_privilege_user.html.erb
@@ -0,0 +1,7 @@
+<%= content_tag :div ,:id => "users_checkbox_ary", do -%>
+<% sys_users = User.all -%>
+	<% sys_users.each do |user| -%>
+		<%= label_tag "lab-user-#{user.id}", user.name rescue '' -%>
+		<%= check_box_tag "[users][#{user.id}]", 'true',users.include?(user)  -%>
+	<% end -%>
+<% end -%>
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/index.html.erb.can_del b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/index.html.erb.can_del
new file mode 100644
index 00000000..32f3d820
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/index.html.erb.can_del
@@ -0,0 +1,50 @@
+<%= render 'panel/announcement/back_end/bulletins/filter' %>
+
+	<%= render 'panel/announcement/back_end/bulletins/bulletins' %>
+
+
+	<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_panel_announcement_back_end_bulletin_path, :class => 'btn btn-primary' %>
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/setting.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/setting.html.erb
new file mode 100644
index 00000000..d5d589cf
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/setting.html.erb
@@ -0,0 +1,20 @@
+<%= label_tag :fact_check_setting, t("announcement.bulletin.fact_check_setting") %>
+
+<%= form_tag('', :remote => true)  %>
+<%= label_tag :category, t("announcement.bulletin.category") %>
+<%= select_tag "category_id", options_from_collection_for_select(@bulletin_categorys, "id", "key") %>
+
+
+<%= label_tag :role, t("admin.roles") %>
+<%= content_tag :div do -%>
+	<% form_tag :action => "update_setting"  do %>
+		<%= render :partial => "privilege_user", :locals => {:users => @users_array} %>
+		<%= submit_tag "Update" %>
+	<% end -%>
+<% end -%>
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/setting.js.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/setting.js.erb
new file mode 100644
index 00000000..a01c9d6a
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/fact_checks/setting.js.erb
@@ -0,0 +1 @@
+$("#users_checkbox_ary").replaceWith('<%= (render :partial => 'privilege_user', :locals => {:users => @users_array}).html_safe%>');
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html - %BDƻs.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html - %BDƻs.erb
new file mode 100644
index 00000000..2c4cd153
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html - %BDƻs.erb	
@@ -0,0 +1,42 @@
+
+
+<% if @bulletin and !@bulletin.nil? %>
+
+
+	
<%= @bulletin.title %>
+	
<%= @bulletin.subtitle %>
+	<%= link_to "read more >",panel_announcement_front_end_bulletin_path(@bulletin.id) %>
+	
read more >
+
 
+
+<% end %>
+
+<% if @bulletins and !@bulletins.nil? %>
+
+
+
news
+
+	<% @bulletins.each do |post| %>
+	- <%= post.postdate.to_s.gsub("-", "") %><%= link_to post.title,panel_announcement_front_end_bulletin_path(post) %>
 
+	<% end %>
+
+<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %>
+
read more >
+
 
+
+
+
news
+
+	<% @bulletins.each do |post| %>
+	- 
+	<%= image_tag(post.image.url, :size => "160x140") if post.image.file %>
+	
<%= post.title %>
+	<%= post.subtitle %>
+	 
+	<% end %>
+
+<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %>
+
read more >
+
 
+
+<% end %>