# encoding: utf-8 class ArchiveFile include Mongoid::Document include Mongoid::Timestamps include OrbitCategory::Categorizable include OrbitModel::Status include OrbitTag::Taggable include Slug # include Tire::Model::Search # include Tire::Model::Callbacks # BelongsToCategory = :archive_file_category # PAYMENT_TYPES = @site_valid_locales field :title, as: :slug_title, localize: true field :create_user_id field :update_user_id field :postdate , :type => DateTime, :default => Time.now field :deadline , :type => DateTime field :uid, type: String field :sort_number, type: Integer field :rss2_sn # scope :can_display,where(is_hidden: false) scope :can_display, ->{where(is_hidden: false).order_by(:is_top=>-1, :sort_number=>1, :title=>1)} # belongs_to :archive_file_category has_many :archive_file_multiples, :autosave => true, :dependent => :destroy accepts_nested_attributes_for :archive_file_multiples, :allow_destroy => true # validates :title, :at_least_one => true after_save :save_archive_file_multiples # def to_indexed_json # self.to_json # end # search_in :title # searchable do # text :titles do # title_translations.to_a.collect{|t| t[1]} # end # boolean :frontend_search do # !is_hidden # end # end # def self.search( category_id = nil ) # if category_id.to_s.size > 0 # find(:all, :conditions => {archive_file_category_id: category_id}).desc( :is_top, :title ) # else # find(:all).desc( :is_top, :title) # end # end def self.find_by_param(input) self.find_by(uid: input) end def self.widget_datas where( :is_hidden => false ).desc(:is_top, :title) end def get_file_icon( file_data ) file_icon = "#{file_data.split('.')[-1]}".html_safe end def save_archive_file_multiples self.archive_file_multiples.each do |t| if t.should_destroy t.destroy end end end end