orbit4-5/app/models/site.rb

67 lines
2.3 KiB
Ruby

class Site
include Mongoid::Document
include Mongoid::Timestamps
field :title, type: String, localize: true
field :school, type: String
field :department, type: String
field :address, type: String
field :footer, localize: true
field :sub_menu, localize: true
field :site_map_link, type: String, :default => "/sitemap"
field :terms_of_use_link, type: String
field :google_analytics, type: String
field :in_use_locales, :type => Array
field :valid_locales, :type => Array
field :site_active, :type => Boolean
field :frontend_open, :type => Boolean, :default => true
field :backend_openness_on, :type => Boolean, :default => false
field :mobile_api_openness_on, :type => Boolean, :default => false
field :desktop_closed, :type => Boolean, :default => false
field :enable_language_detection, :type => Boolean, :default => false
field :enable_zh_cn, :type => Boolean, :default => true
field :default_locale, :default => "en"
field :mobile_on, :type => Boolean, :default => false
field :announcement_category, :type => Array, :default=>[]
field :mobile_bar_color, :type => Array, :default=>[]
field :phone_number, :type => Array,:default=>[]
field :title_always_on, :type => Boolean, :default => false
field :sitemap_menu_in_header, :type => Boolean, :default => false
field :enable_terms_of_use, :type => Boolean, :default => false
field :search,:type => Hash
field :site_settings
field :template, type: String
field :site_token
field :store_confirmation, type: Boolean, default: false
mount_uploader :default_image, ImageUploader
mount_uploader :site_logo, ImageUploader
mount_uploader :favicon, ImageUploader
mount_uploader :mobile_icon, ImageUploader
def to_param
I18n.locale = :en
title.parameterize
end
def confirm_store(site_token)
if self.site_token.eql?(site_token)
self.store_confirmation = true
self.save
end
end
def generate_site_token
if self.site_token.nil?
self.site_token = SecureRandom.uuid.gsub('-','')
self.save
end
end
def register_site(url,university,department,email,country)
api_key = STORE_CONFIG[:store_settings]["api_key"]
self.generate_site_token
store = Store.new(self.id.to_s,self.site_token,api_key)
store.post_client(self.id.to_s,self.site_token,self.title,url,university,department,email,country)
end
end