Fix get_sorted_and_filtered, accepts 3 arguments and works for category
This commit is contained in:
		
							parent
							
								
									62288a71ca
								
							
						
					
					
						commit
						5190c1160a
					
				| 
						 | 
				
			
			@ -229,7 +229,7 @@ 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)  
 | 
			
		||||
    if params[:filter] || params[:sort] || params[:new_filter]
 | 
			
		||||
      @filter = params[:filter]
 | 
			
		||||
      new_filter = params[:new_filter]
 | 
			
		||||
| 
						 | 
				
			
			@ -248,11 +248,11 @@ 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue