From 36da89f93efdecb8a2095931984766e6e2bf7140 Mon Sep 17 00:00:00 2001 From: chris Date: Fri, 3 May 2013 16:15:37 +0800 Subject: [PATCH] Add tagged_ids to taggable Changes for queries --- app/controllers/admin/assets_controller.rb | 10 ++--- app/controllers/default_widget_controller.rb | 13 +----- app/models/asset.rb | 9 ++-- app/models/tagging.rb | 8 ++++ lib/orbit_tag/taggable.rb | 36 ++++++++++------ .../announcement/back_end/tags_controller.rb | 8 ---- .../front_end/bulletins_controller.rb | 8 +--- .../widget/bulletins_controller.rb | 18 ++++---- .../announcement/app/models/bulletin.rb | 5 --- .../widget/bulletins/bulletins_list.html.erb | 2 +- .../front_end/archive_files_controller.rb | 13 ++---- .../widget/archive_files_controller.rb | 3 +- .../archive/app/models/archive_file.rb | 4 -- .../panel/faq/front_end/qas_controller.rb | 3 +- vendor/built_in_modules/faq/app/models/qa.rb | 6 +-- .../back_end/album_images_controller.rb | 2 +- .../gallery/back_end/albums_controller.rb | 42 +++++++------------ .../gallery/front_end/albums_controller.rb | 28 ++++--------- .../front_end/orbit_galleries_controller.rb | 15 +++---- .../gallery/app/models/gallery_image.rb | 14 ++++--- .../personal_book/app/models/writing_book.rb | 8 ++-- .../app/models/writing_conference.rb | 11 +++-- .../personal_diploma/app/models/diploma.rb | 11 +++-- .../app/models/experience.rb | 11 +++-- .../personal_honor/app/models/honor.rb | 11 +++-- .../app/models/writing_journal.rb | 11 +++-- .../personal_lab/app/models/lab.rb | 11 +++-- .../app/models/writing_patent.rb | 11 +++-- .../personal_project/app/models/project.rb | 11 +++-- .../personal_research/app/models/research.rb | 11 +++-- .../front_end/web_links_controller.rb | 8 ++-- .../widget/web_links_controller.rb | 8 ++-- .../web_resource/app/models/web_link.rb | 6 +-- 33 files changed, 149 insertions(+), 227 deletions(-) delete mode 100644 vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/tags_controller.rb diff --git a/app/controllers/admin/assets_controller.rb b/app/controllers/admin/assets_controller.rb index d458045bd..91a1a1249 100644 --- a/app/controllers/admin/assets_controller.rb +++ b/app/controllers/admin/assets_controller.rb @@ -11,7 +11,7 @@ class Admin::AssetsController < OrbitBackendController def new @asset = Asset.new @asset_categories = AssetCategory.all - @tags = AssetTag.all + @tags = get_tags respond_to do |format| format.html {} format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/new'} } @@ -21,7 +21,7 @@ class Admin::AssetsController < OrbitBackendController def edit @asset = Asset.find(params[:id]) @asset_categories = AssetCategory.all - @tags = AssetTag.all + @tags = get_tags respond_to do |format| format.html {} format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/edit'} } @@ -46,7 +46,7 @@ class Admin::AssetsController < OrbitBackendController else flash[:error] = t('create.fail') @asset_categories = AssetCategory.all - @tags = AssetTag.all + @tags = get_tags respond_to do |format| format.js { if params[:uploader] @@ -69,7 +69,7 @@ class Admin::AssetsController < OrbitBackendController else flash[:error] = t('update.fail') @asset_categories = AssetCategory.all - @tags = AssetTag.all + @tags = get_tags respond_to do |format| format.html { render :action => :edit } format.js { render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/edit', :locals => {:is_html => false}} } @@ -96,7 +96,7 @@ class Admin::AssetsController < OrbitBackendController def file_upload @asset = Asset.new @asset_categories = AssetCategory.all - @tags = AssetTag.all + @tags = get_tags render :layout => false end diff --git a/app/controllers/default_widget_controller.rb b/app/controllers/default_widget_controller.rb index 47505dc10..0e0a0ddf3 100644 --- a/app/controllers/default_widget_controller.rb +++ b/app/controllers/default_widget_controller.rb @@ -17,25 +17,16 @@ class DefaultWidgetController< OrbitWidgetController result_objects = nil if !params["tag_id"].blank? - @tags = Tag.find(params["tag_id"]) rescue nil - result_ids = nil - - result_ids = @tags.collect{|tag| tag.send(ori_class_name.downcase.pluralize).entries.collect{|t| t.id}} if params["category_id"].blank? #has tag no cate - #nothing + result = ori_class_name.constantize.where(:tagged_ids.in => params["tag_id"]) else #has tag and cate - # result_ids = @tags.collect{|tag| tag.send(ori_class_name.downcase.pluralize).where(:#{get_category_field_name(ori_class_name)}.in=>params["category_id"]).available_for_lang(I18n.locale).can_display.collect{|t| t.id}}.flatten - result_ids << eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id']).entries.collect{|t| t.id}") - result_ids.flatten! - + result = eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id'], :tagged_ids.in => params['tag_id'])") end - result = eval("#{ori_class_name}.where(:id=>result_ids)") elsif params["category_id"].blank? #no tag no cate result = eval(@default_widget["query"]) else #no tag has cate result = eval("#{ori_class_name}.where(:#{get_category_field_name(ori_class_name)}.in=>params['category_id'])") end - date_now = Time.now result.available_for_lang(I18n.locale).can_display.desc(:is_top, :postdate) end diff --git a/app/models/asset.rb b/app/models/asset.rb index f8751d57b..d218db564 100644 --- a/app/models/asset.rb +++ b/app/models/asset.rb @@ -2,6 +2,8 @@ class Asset include Mongoid::Document include Mongoid::Timestamps + include OrbitTag::Taggable + taggable mount_uploader :data, FileAssetUploader @@ -16,18 +18,13 @@ class Asset belongs_to :asset_category belongs_to :assetable, polymorphic: true - has_and_belongs_to_many :tags, :class_name => "AssetTag" before_save :clean_tags - def sorted_tags - tags.order_by(I18n.locale, :asc) - end - protected def clean_tags - self.tag_ids.delete('') + self.tagged_ids.delete('') end end diff --git a/app/models/tagging.rb b/app/models/tagging.rb index b244ce8db..86925c03e 100644 --- a/app/models/tagging.rb +++ b/app/models/tagging.rb @@ -6,4 +6,12 @@ class Tagging belongs_to :tag belongs_to :taggable, polymorphic: true + + before_destroy :update_taggable_tag_ids + + private + + def update_taggable_tag_ids + self.taggable.remove_id(self.tag.id) + end end \ No newline at end of file diff --git a/lib/orbit_tag/taggable.rb b/lib/orbit_tag/taggable.rb index b7a933b38..896bf355e 100644 --- a/lib/orbit_tag/taggable.rb +++ b/lib/orbit_tag/taggable.rb @@ -13,17 +13,35 @@ module OrbitTag def init_tag class_eval do field :tags_to_destroy, type: Array, default: [] + field :tagged_ids, type: Array, default: [] has_many :taggings, as: :taggable, autosave: true, dependent: :destroy accepts_nested_attributes_for :taggings, allow_destroy: true after_save :remove_taggings, unless: Proc.new{self.tags_to_destroy.blank?} + def remove_id(id) + self.class.without_callback(:save, :after, :remove_taggings) do + self.update_attribute(:tagged_ids, self.tagged_ids - [id.to_s]) + end + end + + def sorted_tags + if tags.blank? + [] + else + tag_array = tags.inject([]){ |result, value| + result << [value.name, value] + } + tag_array.sort.map{|x| x[1] } + end + end + def tags - self.taggings.blank? ? [] : self.taggings.map{|t| t.tag} + self.taggings.blank? ? [] : self.taggings.map{|t| t.tag}.compact end def tags=(tag_ids) - tag_ids = [tag_ids].flatten + ids = [tag_ids].flatten tag_ids.delete('') ids = self.taggings.blank? ? [] : self.taggings.map{|t| t.tag.id} tag_ids.each do |tag_id| @@ -40,17 +58,9 @@ module OrbitTag def tag_ids=(ids) self.tags = ids - end - - def sorted_tags - if tags.blank? - [] - else - tag_array = tags.inject([]){ |result, value| - result << [value.name, value] - } - tag_array.sort.map{|x| x[1] } - end + ids = [ids].flatten + ids.delete('') + self.tagged_ids = ids end private diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/tags_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/tags_controller.rb deleted file mode 100644 index 808d6cc8c..000000000 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/tags_controller.rb +++ /dev/null @@ -1,8 +0,0 @@ -class Panel::Announcement::BackEnd::TagsController < Admin::TagsController - - def initialize - super - @app_title = 'announcement' - end - -end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb index e4bae5e5b..2377438cd 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb @@ -39,17 +39,13 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController else date_now = Time.now if !params[:category_id].blank? && !params[:tag_id].blank? - @tag = AnnouncementTag.find(params[:tag_id]) rescue nil - @tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag - @bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) + @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id], :tagged_ids => params[:tag_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) @current_category = BulletinCategory.from_id(params[:category_id]) rescue nil elsif !params[:category_id].blank? @bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) @current_category = BulletinCategory.from_id(params[:category_id]) rescue nil elsif !params[:tag_id].blank? - @tag = AnnouncementTag.find(params[:tag_id]) rescue nil - @tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag - @bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) + @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) else @bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb index c8d328275..f4092bc51 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb @@ -34,9 +34,7 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => @category_id).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num) @current_category = BulletinCategory.from_id(@category_id) rescue nil elsif !params[:tag_id].blank? - @tag = AnnouncementTag.find(params[:tag_id]) rescue nil - @tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag - @bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num) + @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id])any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num) else @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num) end @@ -59,11 +57,9 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController @bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num ) @current_category = BulletinCategory.from_id(params[:category_id]) rescue nil elsif !params[:tag_id].blank? - @tag = AnnouncementTag.find(params[:tag_id]) rescue nil - @tag = AnnouncementTag.where(key: params[:tag_id])[0] unless @tag - @bulletins = @tag.bulletins.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num ) + @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page] ).per(@page_num) else - @bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num ) + @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(@page_num ) end get_categorys @@ -71,13 +67,13 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController end def reload_bulletins - @selected_tag = AnnouncementTag.find(params[:tag_id]) - @bulletins = @selected_tag.get_visible_bulletins(:postdate).available_for_lang(I18n.locale).can_display.page(params[:page]).per(5) rescue nil + @selected_tag = Tag.find(params[:tag_id]) + @bulletins = Bulletin.available_for_lang(I18n.locale).can_display.where(:tagged_ids => params[:tag_id]).where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort).page(params[:page]).per(5) rescue nil end def reload_web_links - @selected_tag = AnnouncementTag.find(params[:tag_id]) - @web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links(:created_at).available_for_lang(I18n.locale).page(params[:page]).per(5) rescue nil + @selected_tag = Tag.find(params[:tag_id]) + @web_links = WebLink.where(:name => @selected_tag.name).where(:is_hidden => false).desc(:is_top, sort).available_for_lang(I18n.locale).page(params[:page]).per(5) rescue nil end def bulletins_side_bar diff --git a/vendor/built_in_modules/announcement/app/models/bulletin.rb b/vendor/built_in_modules/announcement/app/models/bulletin.rb index 77577ad1d..e84b020fc 100644 --- a/vendor/built_in_modules/announcement/app/models/bulletin.rb +++ b/vendor/built_in_modules/announcement/app/models/bulletin.rb @@ -199,11 +199,6 @@ class Bulletin return nil end - # def sorted_tags - # tags.order_by(I18n.locale, :asc) - # end - - def to_preview preview_object = Preview.new(:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_announcement_front_end_bulletin_path",:object_class_type=>"Bulletin") diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb index a07d11257..8e36ae8fa 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb @@ -16,7 +16,7 @@
prev
next
diff --git a/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb b/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb index 1b4a9202a..80cc6064e 100644 --- a/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb +++ b/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb @@ -20,10 +20,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController # @archive_files = ArchiveFile.where( :is_hidden => false ).desc(:is_top).page(params[:page]).per(@page_num) if !params[:category_id].blank? && !params[:tag_id].blank? - @tag = ArchiveTag.find(params[:tag_id]) rescue nil - @tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag - @archive_files = @tag.archive_files.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) - @archive_files = @archive_files.can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) + @archive_files = @archive_files.can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil @@ -31,9 +28,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController @archive_files = ArchiveFile.can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil elsif !params[:tag_id].blank? - @tag = ArchiveTag.find(params[:tag_id]) rescue nil - @tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag - @archive_files = @tag.archive_files.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) + @archive_files = ArchiveFile.can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) else @archive_files = ArchiveFile.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) end @@ -66,9 +61,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController @archive_files = ArchiveFile.can_display.where(:archive_file_category_id => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil elsif !params[:tag_id].blank? - @tag = ArchiveTag.find(params[:tag_id]) rescue nil - @tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag - @archive_files = @tag.archive_files.can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num) + @archive_files = ArchiveFile.can_display.where(:tagged_ids => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) else @archive_files = ArchiveFile.can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num) end diff --git a/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb b/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb index 3779e1e74..0379a371e 100644 --- a/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb +++ b/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb @@ -31,8 +31,7 @@ class Panel::Archive::Widget::ArchiveFilesController < OrbitWidgetController @archive_files = ArchiveFile.all.can_display.any_in(:archive_file_category_id => params[:category_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) @archive_file_categorys = ArchiveFileCategory.any_in(:_id => params[:category_id]).excludes('disable' => true) elsif !params[:tag_id].blank? - @tag = ArchiveTag.find(params[:tag_id]) rescue nil - @tag = ArchiveTag.where(key: params[:tag_id])[0] unless @tag + @archive_files = ArchiveFile.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) get_categorys else @archive_files = ArchiveFile.all.can_display.merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) diff --git a/vendor/built_in_modules/archive/app/models/archive_file.rb b/vendor/built_in_modules/archive/app/models/archive_file.rb index 030d50634..1329125e1 100644 --- a/vendor/built_in_modules/archive/app/models/archive_file.rb +++ b/vendor/built_in_modules/archive/app/models/archive_file.rb @@ -61,10 +61,6 @@ class ArchiveFile self.is_top end - def sorted_tags - tags.order_by(I18n.locale, :asc) - end - def get_file_icon( file_data ) file_icon = "#{file_data.split('.')[-1]}".html_safe diff --git a/vendor/built_in_modules/faq/app/controllers/panel/faq/front_end/qas_controller.rb b/vendor/built_in_modules/faq/app/controllers/panel/faq/front_end/qas_controller.rb index 42140c803..6a89d5f25 100644 --- a/vendor/built_in_modules/faq/app/controllers/panel/faq/front_end/qas_controller.rb +++ b/vendor/built_in_modules/faq/app/controllers/panel/faq/front_end/qas_controller.rb @@ -26,8 +26,7 @@ class Panel::Faq::FrontEnd::QasController < OrbitWidgetController @qas = Qa.all.can_display.any_in(:qa_category_id => params[:category_id]).merge(QaCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num) @qa_categorys = QaCategory.any_in(:_id => @item.category).excludes('disable' => true) rescue nil elsif params[:tag_id] !="[]" && !params[:tag_id].blank? - @tag = FaqTag.find(params[:tag_id]) rescue nil - @tag = FaqTag.where(key: params[:tag_id])[0] unless @tag + Qa.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(QaCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num) @qas = @tag.archive_files.can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num) get_categorys else diff --git a/vendor/built_in_modules/faq/app/models/qa.rb b/vendor/built_in_modules/faq/app/models/qa.rb index 6ba8bb562..1a99c3a24 100644 --- a/vendor/built_in_modules/faq/app/models/qa.rb +++ b/vendor/built_in_modules/faq/app/models/qa.rb @@ -62,10 +62,6 @@ class Qa def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -87,7 +83,7 @@ class Qa self.qa_links.each do |link| link.delete if link.url.blank? && link.title.blank? end - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/album_images_controller.rb b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/album_images_controller.rb index 06eee5de1..c8504bf4e 100644 --- a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/album_images_controller.rb +++ b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/album_images_controller.rb @@ -12,7 +12,7 @@ class Panel::Gallery::BackEnd::AlbumImagesController < OrbitBackendController else @authenticated = false end - @tags = GalleryTag.all + @tags = get_tags @image = GalleryImage.find(params[:id]) @albumid = @image.gallery_album_id @album = GalleryAlbum.find(@albumid) diff --git a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb index 56f6f1899..177a290b4 100644 --- a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb +++ b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb @@ -16,7 +16,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController end @categorylist = GalleryCategory.all @cid = params['cat'] - @tags = GalleryTag.all + @tags = get_tags end def show @@ -26,7 +26,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController @authenticated = false end @album = GalleryAlbum.find(params[:id]) - @tags = GalleryTag.all + @tags = get_tags end def new @@ -55,10 +55,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController if @tags if @tags.kind_of?(Array) @tags.each do |tag| - @albums << GalleryAlbum.where(tag_ids: tag) + @albums << GalleryAlbum.where(tagged_ids: tag) end else - @albums << GalleryAlbum.where(tag_ids: @tags) + @albums << GalleryAlbum.where(tagged_ids: @tags) end else @albums << GalleryAlbum.all @@ -69,10 +69,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController if @tags if @tags.kind_of?(Array) @tags.each do |tag| - @albums << category.gallery_albums.where(tag_ids: tag) + @albums << category.gallery_albums.where(tagged_ids: tag) end else - @albums << category.gallery_albums.where(tag_ids: @tags) + @albums << category.gallery_albums.where(tagged_ids: @tags) end else @albums << category.gallery_albums.all @@ -83,10 +83,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController @albums.each do |album| @albs = Array.new album.each do |values| - tags = Array.new - values.tag_ids.each do |tag| - tags << GalleryTag.find(tag)[I18n.locale] - end + tags = Tag.find(values.tagged_ids).map{|t| t.name} category = GalleryCategory.find(values.gallery_category_id).name @albs << {"_id"=>values.id,"show_path"=>panel_gallery_back_end_album_path(values),"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags} end @@ -107,7 +104,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController @images = @album.gallery_images.all @album_name = @album.name_translations @cover = @album.cover - @tags = GalleryTag.all + @tags = get_tags end end @@ -123,11 +120,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController output = Array.new albums.each do |album| - tag_names = Array.new - - album.tag_ids.each do |tag| - tag_names << GalleryTag.find(tag)[I18n.locale] - end + tag_names = Tag.find(album.tagged_ids).map{|t| t.name} output << { album_cover_file: "http://#{request.host_with_port}#{album.cover_path}", @@ -146,11 +139,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController output = Array.new images.each do |image| - tags = Array.new - - image.tag_ids.each do |tag| - tags << GalleryTag.find(tag)[I18n.locale] - end + tags = Tag.find(image.tagged_ids).map{|t| t.name} output << { image_title: image.title, @@ -169,10 +158,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController @images = @album.gallery_images.all @output = Array.new @images.each do |values| - tags = Array.new - values.tag_ids.each do |tag| - tags << GalleryTag.find(tag)[I18n.locale] - end + tags = Tag.find(values.tagged_ids).map{|t| t.name} @output << { _id: values.id, theater_link: panel_gallery_back_end_album_image_path(values), description: values.description, @@ -190,8 +176,8 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController if @authenticated render :json=>{"images" => @output, "tags" => @album.tag_ids}.to_json else - @album.tag_ids.each do |tag| - @tag_names << GalleryTag.find(tag)[I18n.locale] + @album.tagged_ids.each do |tag| + @tag_names << Tag.find(tag).name end render :json=>{"images" => @output, "tags" => @album.tag_ids, "tag_names" => @tag_names}.to_json end @@ -235,7 +221,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController if params['delete_cover'] == "true" @album.update_attributes(:cover=>"default") end - @tags = GalleryTag.all + @tags = get_tags render :action => :show end end diff --git a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/albums_controller.rb b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/albums_controller.rb index 07f85999f..3924ab7e1 100644 --- a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/albums_controller.rb +++ b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/albums_controller.rb @@ -4,10 +4,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController def show @album = GalleryAlbum.find(params[:id]) - @tags = Array.new - @album.tag_ids.each do |tag| - @tags << GalleryTag.find(tag)[I18n.locale] - end + @tags = Tag.find(@album.tagged_ids).map{|t| t.name} end def get_albums @@ -18,10 +15,10 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController if @tags if @tags.kind_of?(Array) @tags.each do |tag| - @albums << GalleryAlbum.where(tag_ids: tag) + @albums << GalleryAlbum.where(tagged_ids: tag) end else - @albums << GalleryAlbum.where(tag_ids: @tags) + @albums << GalleryAlbum.where(tagged_ids: @tags) end else @albums << GalleryAlbum.all @@ -32,10 +29,10 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController if @tags if @tags.kind_of?(Array) @tags.each do |tag| - @albums << category.gallery_albums.where(tag_ids: tag) + @albums << category.gallery_albums.where(tagged_ids: tag) end else - @albums << category.gallery_albums.where(tag_ids: @tags) + @albums << category.gallery_albums.where(tagged_ids: @tags) end else @albums << category.gallery_albums.all @@ -46,10 +43,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController @albums.each do |album| @albs = Array.new album.each do |values| - tags = Array.new - values.tag_ids.each do |tag| - tags << GalleryTag.find(tag)[I18n.locale] - end + tags = Tag.find(values.tagged_ids).map{|t| t.name} category = GalleryCategory.find(values.gallery_category_id).name @albs << {"_id"=>values.id,"show_path"=>panel_gallery_front_end_album_path(values),"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags} end @@ -63,10 +57,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController @images = @album.gallery_images.all @output = Array.new @images.each do |values| - tags = Array.new - values.tag_ids.each do |tag| - tags << GalleryTag.find(tag)[I18n.locale] - end + tags = Tag.find(values.tagged_ids).map{|t| t.name} @output << {:_id => values.id, :theater_link => theater_panel_gallery_front_end_album_path(values), :description => values.description, @@ -95,10 +86,7 @@ class Panel::Gallery::FrontEnd::AlbumsController < OrbitWidgetController @album = GalleryAlbum.find(@albumid) @images = @album.gallery_images.all tags = @album.tag_ids - @tagnames = Array.new - tags.each do |tag| - @tagnames << GalleryTag.find(tag)[I18n.locale] - end + @tagnames = Tag.find(tags.tagged_ids).map{|t| t.name} @back_link = panel_gallery_front_end_album_path(@albumid) end end diff --git a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/orbit_galleries_controller.rb b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/orbit_galleries_controller.rb index 8ecc4ba4a..af7bf784d 100644 --- a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/orbit_galleries_controller.rb +++ b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/front_end/orbit_galleries_controller.rb @@ -4,7 +4,7 @@ include AdminHelper @authenticated = false @categorylist = GalleryCategory.all @cid = params['cat'] - @tags = GalleryTag.all + @tags = get_tags end def new_category @@ -62,10 +62,10 @@ include AdminHelper if @tags if @tags.kind_of?(Array) @tags.each do |tag| - @albums << GalleryAlbum.where(tag_ids: tag) + @albums << GalleryAlbum.where(tagged_ids: tag) end else - @albums << GalleryAlbum.where(tag_ids: @tags) + @albums << GalleryAlbum.where(tagged_ids: @tags) end else @albums << GalleryAlbum.all @@ -76,10 +76,10 @@ include AdminHelper if @tags if @tags.kind_of?(Array) @tags.each do |tag| - @albums << category.gallery_albums.where(tag_ids: tag) + @albums << category.gallery_albums.where(tagged_ids: tag) end else - @albums << category.gallery_albums.where(tag_ids: @tags) + @albums << category.gallery_albums.where(tagged_ids: @tags) end else @albums << category.gallery_albums.all @@ -90,10 +90,7 @@ include AdminHelper @albums.each do |album| @albs = Array.new album.each do |values| - tags = Array.new - values.tag_ids.each do |tag| - tags << GalleryTag.find(tag)[I18n.locale] - end + tags = Tag.find(values.tagged_ids).map{|t| t.name} category = GalleryCategory.find(values.gallery_category_id).name @albs << {"_id"=>values.id,"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags} end diff --git a/vendor/built_in_modules/gallery/app/models/gallery_image.rb b/vendor/built_in_modules/gallery/app/models/gallery_image.rb index 8b958ddde..f0504db2f 100644 --- a/vendor/built_in_modules/gallery/app/models/gallery_image.rb +++ b/vendor/built_in_modules/gallery/app/models/gallery_image.rb @@ -1,14 +1,16 @@ class GalleryImage include Mongoid::Document - include Mongoid::Timestamps + include Mongoid::Timestamps + include OrbitTag::Taggable + taggable - mount_uploader :file, GalleryUploader + mount_uploader :file, GalleryUploader - field :title - field :description, localize: true + field :title + field :description, localize: true - has_and_belongs_to_many :tags, :class_name => "GalleryTag" + # has_and_belongs_to_many :tags, :class_name => "GalleryTag" - belongs_to :gallery_album + belongs_to :gallery_album end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_book/app/models/writing_book.rb b/vendor/built_in_modules/personal_book/app/models/writing_book.rb index 432711dac..e6c59c8b6 100644 --- a/vendor/built_in_modules/personal_book/app/models/writing_book.rb +++ b/vendor/built_in_modules/personal_book/app/models/writing_book.rb @@ -4,6 +4,8 @@ class WritingBook include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -17,7 +19,7 @@ class WritingBook field :publisher, localize: true field :editor, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalBookTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalBookTag" has_and_belongs_to_many :book_author_types @@ -77,10 +79,6 @@ class WritingBook def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| diff --git a/vendor/built_in_modules/personal_conference/app/models/writing_conference.rb b/vendor/built_in_modules/personal_conference/app/models/writing_conference.rb index 9e22d6c1f..c23b75533 100644 --- a/vendor/built_in_modules/personal_conference/app/models/writing_conference.rb +++ b/vendor/built_in_modules/personal_conference/app/models/writing_conference.rb @@ -3,6 +3,9 @@ class WritingConference include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + include OrbitTag::Taggable + taggable + # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } LANGUAGE_TYPES = [ "English", "Chinese" ] @@ -13,7 +16,7 @@ class WritingConference field :location, localize: true field :sponsor, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalConferenceTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalConferenceTag" has_and_belongs_to_many :conference_author_types has_and_belongs_to_many :conference_paper_types has_and_belongs_to_many :conference_co_authors @@ -79,10 +82,6 @@ class WritingConference self.is_top end - def sorted_tags - tags.order_by(I18n.locale, :asc) - end - def update_avliable_language VALID_LOCALES.each do |locale| if (title_translations[locale].blank? rescue true) @@ -122,7 +121,7 @@ class WritingConference end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') self.conference_author_type_ids.delete('') self.conference_level_type_ids.delete('') end diff --git a/vendor/built_in_modules/personal_diploma/app/models/diploma.rb b/vendor/built_in_modules/personal_diploma/app/models/diploma.rb index 563cf62c2..041fbc49b 100644 --- a/vendor/built_in_modules/personal_diploma/app/models/diploma.rb +++ b/vendor/built_in_modules/personal_diploma/app/models/diploma.rb @@ -4,6 +4,9 @@ class Diploma include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -15,7 +18,7 @@ class Diploma field :department, localize: true field :degree, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalDiplomaTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalDiplomaTag" field :year field :language @@ -50,10 +53,6 @@ class Diploma def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -74,7 +73,7 @@ class Diploma end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_experience/app/models/experience.rb b/vendor/built_in_modules/personal_experience/app/models/experience.rb index d8e95dd0d..29deafb4b 100644 --- a/vendor/built_in_modules/personal_experience/app/models/experience.rb +++ b/vendor/built_in_modules/personal_experience/app/models/experience.rb @@ -4,6 +4,9 @@ class Experience include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -14,7 +17,7 @@ class Experience field :department, localize: true field :job_title, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalExperienceTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalExperienceTag" belongs_to :experience_category @@ -64,10 +67,6 @@ class Experience def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -88,7 +87,7 @@ class Experience end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_honor/app/models/honor.rb b/vendor/built_in_modules/personal_honor/app/models/honor.rb index 7e5f2f1f1..67f9f5f5f 100644 --- a/vendor/built_in_modules/personal_honor/app/models/honor.rb +++ b/vendor/built_in_modules/personal_honor/app/models/honor.rb @@ -4,6 +4,9 @@ class Honor include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -11,7 +14,7 @@ class Honor - has_and_belongs_to_many :tags, :class_name => "PersonalHonorTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalHonorTag" belongs_to :honor_category @@ -61,10 +64,6 @@ class Honor def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -85,7 +84,7 @@ class Honor end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb b/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb index 12c7fba2f..c4739f6bc 100644 --- a/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb +++ b/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb @@ -3,13 +3,16 @@ class WritingJournal include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + include OrbitTag::Taggable + taggable + LANGUAGE_TYPES = [ "English", "Chinese" ] field :paper_title, localize: true field :journal_title, localize: true field :authors, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalJournalTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalJournalTag" has_and_belongs_to_many :journal_author_types has_and_belongs_to_many :journal_level_types has_and_belongs_to_many :journal_co_authors @@ -80,10 +83,6 @@ class WritingJournal self.is_top end - def sorted_tags - tags.order_by(I18n.locale, :asc) - end - def update_avliable_language VALID_LOCALES.each do |locale| if (title_translations[locale].blank? rescue true) @@ -122,7 +121,7 @@ class WritingJournal end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') self.journal_author_type_ids.delete('') self.journal_level_type_ids.delete('') end diff --git a/vendor/built_in_modules/personal_lab/app/models/lab.rb b/vendor/built_in_modules/personal_lab/app/models/lab.rb index 539a25759..9d6b48097 100644 --- a/vendor/built_in_modules/personal_lab/app/models/lab.rb +++ b/vendor/built_in_modules/personal_lab/app/models/lab.rb @@ -4,6 +4,9 @@ class Lab include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -15,7 +18,7 @@ class Lab field :participating_professor, localize: true field :participating_student, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalLabTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalLabTag" field :year field :language @@ -70,10 +73,6 @@ class Lab def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -102,7 +101,7 @@ class Lab end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_patent/app/models/writing_patent.rb b/vendor/built_in_modules/personal_patent/app/models/writing_patent.rb index 632e765c0..72c876227 100644 --- a/vendor/built_in_modules/personal_patent/app/models/writing_patent.rb +++ b/vendor/built_in_modules/personal_patent/app/models/writing_patent.rb @@ -4,6 +4,9 @@ class WritingPatent include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -13,7 +16,7 @@ class WritingPatent field :patent_title, localize: true field :authors, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalPatentTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalPatentTag" belongs_to :writing_patent_category @@ -70,10 +73,6 @@ class WritingPatent def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -102,7 +101,7 @@ class WritingPatent end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_project/app/models/project.rb b/vendor/built_in_modules/personal_project/app/models/project.rb index 32a4fbdce..1b0b86059 100644 --- a/vendor/built_in_modules/personal_project/app/models/project.rb +++ b/vendor/built_in_modules/personal_project/app/models/project.rb @@ -4,6 +4,9 @@ class Project include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -15,7 +18,7 @@ class Project field :participator, localize: true field :unit, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalProjectTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalProjectTag" belongs_to :project_category @@ -72,10 +75,6 @@ class Project def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -104,7 +103,7 @@ class Project end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/personal_research/app/models/research.rb b/vendor/built_in_modules/personal_research/app/models/research.rb index 14080e12e..4c7194578 100644 --- a/vendor/built_in_modules/personal_research/app/models/research.rb +++ b/vendor/built_in_modules/personal_research/app/models/research.rb @@ -4,6 +4,9 @@ class Research include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes + + include OrbitTag::Taggable + taggable # scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } @@ -14,7 +17,7 @@ class Research field :authors, localize: true field :extracted_chapters, localize: true - has_and_belongs_to_many :tags, :class_name => "PersonalResearchTag" + # has_and_belongs_to_many :tags, :class_name => "PersonalResearchTag" field :year field :language @@ -67,10 +70,6 @@ class Research def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -99,7 +98,7 @@ class Research end def clean_checkboxs - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb index f99ce86b6..ba426b292 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb @@ -13,14 +13,12 @@ class Panel::WebResource::FrontEnd::WebLinksController < OrbitWidgetController date_now = Time.now if !params[:category_id].blank? - @web_links = WebLink.where( :is_hidden => false ).where(:web_link_category_id => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(10) + @web_links = WebLink.where( :is_hidden => false ).where(:web_link_category_id => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) @current_category = WebLinkCategory.from_id(params[:category_id]) rescue nil elsif !params[:tag_id].blank? - @tag = WebResourceTag.find(params[:tag_id]) rescue nil - @tag = WebResourceTag.where(key: params[:tag_id])[0] unless @tag - @web_links = @tag.archive_files.where( :is_hidden => false ).desc( :is_top ).page( params[:page_main] ).per(10) + @web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) else - @web_links = WebLink.where( :is_hidden => false ).desc( :is_top ).page( params[:page_main] ).per(10) + @web_links = WebLink.where( :is_hidden => false ).desc( :is_top ).page( params[:page_main] ).per(@page_num) end get_categorys diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb index 4486f04ab..b76a94600 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb @@ -10,14 +10,12 @@ class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController def index if !params[:category_id].blank? - @web_links = WebLink.where(:web_link_category => params[:category_id]).available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(10) + @web_links = WebLink.where(:web_link_category => params[:category_id]).available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(@page_num) @current_category = WebLinkCategory.from_id(params[:category_id]) rescue nil elsif !params[:tag_id].blank? - @tag = WebResourceTag.find(params[:tag_id]) rescue nil - @tag = WebResourceTag.where(key: params[:tag_id])[0] unless @tag - @web_links = @tag.web_links.desc( :is_top, :postdate).page( params[:page]).per(10) + @web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num) else - @web_links = WebLink.available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(10) + @web_links = WebLink.available_for_lang(I18n.locale).desc( :is_top, :postdate).page( params[:page]).per(@page_num) end end diff --git a/vendor/built_in_modules/web_resource/app/models/web_link.rb b/vendor/built_in_modules/web_resource/app/models/web_link.rb index 64e448c44..3028cae30 100644 --- a/vendor/built_in_modules/web_resource/app/models/web_link.rb +++ b/vendor/built_in_modules/web_resource/app/models/web_link.rb @@ -56,10 +56,6 @@ class WebLink def is_top? self.is_top end - - def sorted_tags - tags.order_by(I18n.locale, :asc) - end def update_avliable_language VALID_LOCALES.each do |locale| @@ -80,7 +76,7 @@ class WebLink end def clean_tags - self.tag_ids.delete('') + self.tagged_ids.delete('') end end \ No newline at end of file