added sorting DSL
This commit is contained in:
1 parent
1ccfd6e48c
commit
e7aa7ea1fa
3 files changed
+17
-8
No files matched your search
@@ -11,23 +11,26 @@ class DefaultWidgetController< OrbitWidgetController
|
||||
end
|
||||
|
||||
def query_for_default_widget
|
||||
|
||||
@ori_class_name = @default_widget["query"].split('.')[0]
|
||||
@ori_query = @default_widget["query"]
|
||||
result = nil
|
||||
result_objects = nil
|
||||
if !params["tag_id"].blank?
|
||||
if params["category_id"].blank? #has tag no cate
|
||||
result = eval("#{@ori_query}.where(:tagged_ids.in => params['tag_id'])")
|
||||
result = eval(@ori_query)
|
||||
result.selector[:tagged_ids] = { "$in" => params['tag_id'].collect{|t| BSON::ObjectId(t)}}
|
||||
else #has tag and cate
|
||||
result = eval("#{@ori_query}.where(:#{get_category_field_name}.in=>params['category_id'], :tagged_ids.in => params['tag_id'])")
|
||||
result = eval(@ori_query)
|
||||
result.selector[get_category_field_name] = { "$in" => params['category_id'].collect{|t| BSON::ObjectId(t)}}
|
||||
result.selector[:tagged_ids] = { "$in" => params['tag_id'].collect{|t| BSON::ObjectId(t)}}
|
||||
end
|
||||
elsif params["category_id"].blank? #no tag no cate
|
||||
result = eval(@ori_query)
|
||||
else #no tag has cate
|
||||
result = eval("#{@ori_query}.where(:#{get_category_field_name}.in=>params['category_id'])")
|
||||
result = eval(@ori_query)
|
||||
result.selector[get_category_field_name] = { "$in" => params['category_id'].collect{|t| BSON::ObjectId(t)}}
|
||||
end
|
||||
result.available_for_lang(I18n.locale).can_display.desc(:created_at)
|
||||
eval("result.#{@default_widget[:sorting_query]}")
|
||||
end
|
||||
|
||||
def search_result
|
||||
@@ -95,9 +98,9 @@ class DefaultWidgetController< OrbitWidgetController
|
||||
end
|
||||
|
||||
def get_category_field_name
|
||||
@ori_class_name = @ori_class_name.constantize
|
||||
@ori_class_name = @ori_class_name.constantize unless @ori_class_name.is_a? Class
|
||||
@ori_class_name.fields.each_key do |key|
|
||||
return key if key.include?('category_id')
|
||||
return key.to_s if key.include?('category_id')
|
||||
end
|
||||
nil
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user