diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 7c02f1df..bdb9059e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -229,7 +229,8 @@ class ApplicationController < ActionController::Base redirect_to ret end - def get_sorted_and_filtered(object_class, query=nil) + def get_sorted_and_filtered(object_class, query = nil, objects = nil) + object_class = object_class.classify.constantize if params[:filter] || params[:sort] || params[:new_filter] @filter = params[:filter] new_filter = params[:new_filter] @@ -248,11 +249,10 @@ class ApplicationController < ActionController::Base @filter = {new_filter[:type] => [new_filter[:id].to_s]} end - objects = get_objects(object_class, query) - object_class = object_class.classify.constantize - if !params[:sort].blank? + objects ||= get_objects(object_class, query) + unless params[:sort].blank? options = params[:sort_options] - options = [options] if !options.class.eql?(Array) + options = [options] unless options.is_a?(Array) options.each do |option| if object_class.fields.include?(option) if object_class.fields[option].type.to_s.eql?('Object') && !object_class.relations[option].nil? @@ -272,6 +272,19 @@ class ApplicationController < ActionController::Base when :referenced_in objects = get_objects_from_referenced_objects(object_class.relations[option].class_name.constantize, objects, "#{option}_id") end + elsif option.eql?('category') + category_array = @module_app.categories.inject([]){ |result, value| + result << [value.title, value] + } + params[:direction].eql?('asc') ? category_array.sort! : category_array.sort!.reverse! + sorted_objects = Array.new + category_array.each do |x| + buffer_categories = x[1].buffer_categories + buffer_categories.each {|buffer_category| sorted_objects << buffer_category.categorizable } + end + sorted_objects.flatten! + sorted_objects.uniq! + objects = get_with_nil(objects, option, sorted_objects) elsif option.eql?('tags') tag_array = @module_app.tags.inject([]){ |result, value| result << [value.name, value] @@ -285,7 +298,7 @@ class ApplicationController < ActionController::Base sorted_objects.flatten! sorted_objects.uniq! objects = get_with_nil(objects, option, sorted_objects) - end + end end end if @filter @@ -381,7 +394,6 @@ class ApplicationController < ActionController::Base end def get_objects(object_class, query=nil) - object_class = object_class.classify.constantize if query objects = object_class.where(query) else diff --git a/app/controllers/orbit_backend_controller.rb b/app/controllers/orbit_backend_controller.rb index 510b09eb..2d220cfa 100644 --- a/app/controllers/orbit_backend_controller.rb +++ b/app/controllers/orbit_backend_controller.rb @@ -21,9 +21,11 @@ class OrbitBackendController < ApplicationController status << 'is_top' status << 'is_hot' status << 'is_hidden' unless is_guest? - status << 'is_pending' if is_manager? - status << 'is_checked' if is_manager? - status << 'is_rejected' if is_manager? + if @module_app.is_approvable && is_manager? + status << 'is_pending' + status << 'is_checked' + status << 'is_rejected' + end status end diff --git a/lib/orbit_category/categorizable.rb b/lib/orbit_category/categorizable.rb index 3cd29544..4670dce0 100644 --- a/lib/orbit_category/categorizable.rb +++ b/lib/orbit_category/categorizable.rb @@ -31,7 +31,11 @@ module OrbitCategory def category=(id) self.buffer_category.destroy if self.buffer_category self.build_buffer_category(category_id: id) - self.category_id = id + self.write_attribute(:category_id, id) + end + + def category_id=(id) + self.category = id end def disable? diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb index 80f80b60..14bdb653 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb @@ -51,7 +51,7 @@