adjust tag and sort
This commit is contained in:
1 parent
6b0a6a1fc8
commit
d33b0fe5a7
13 files changed
+106
-282
No files matched your search
@@ -9,70 +9,48 @@ class Admin::AsksController < OrbitAdminController
|
||||
@app_title = "ask"
|
||||
end
|
||||
|
||||
# 重新定義排序
|
||||
def sort
|
||||
unless params[:sort].blank?
|
||||
case params[:sort]
|
||||
when "status"
|
||||
@sort = {:status=>params[:order]}
|
||||
when "category"
|
||||
@sort = {:category_id=>params[:order]}
|
||||
when "start_date"
|
||||
@sort = {:postdate=>params[:order]}
|
||||
when "end_date"
|
||||
@sort = {:deadline=>params[:order]}
|
||||
when "last_modified"
|
||||
@sort = {:update_user_id=>params[:order]}
|
||||
when "banner"
|
||||
@sort = {'banner_id'=>params[:order]}
|
||||
when "banner_name"
|
||||
@sort = {:title=>params[:order]}
|
||||
when "effect"
|
||||
@sort = {:ad_fx=>params[:order]}
|
||||
when "transition_interval"
|
||||
@sort = {:timeout=>params[:order]}
|
||||
when "transition_speed"
|
||||
@sort = {:speed=>params[:order]}
|
||||
when "size"
|
||||
@sort = {:height=>params[:order]}
|
||||
when "link"
|
||||
@sort = {:out_link=>params[:order]}
|
||||
else
|
||||
s = Sanitize.clean(params[:sort]).to_sym
|
||||
@sort = {s=>params[:order]}
|
||||
end
|
||||
else
|
||||
@sort = {:created_at=>'desc'}
|
||||
end
|
||||
@sort
|
||||
end
|
||||
|
||||
# 重新定義分類搜尋
|
||||
def filter_fields(categories)
|
||||
def filter_fields(categories, tags)
|
||||
{
|
||||
:status=>[{:title=>"待處理",:id=>"is_hot"},{:title=>"已處理",:id=>"is_top"},{:title=>"轉介其他單位",:id=>"is_hidden"}],
|
||||
:category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}}
|
||||
:situation=>[{:title=>"is_waiting",:id=>"is_waiting"},{:title=>"is_processed",:id=>"is_processed"},{:title=>"is_referral",:id=>"is_referral"}],
|
||||
:category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}},
|
||||
:identity=>tags.map{|tag| {:title=>(tag.name.blank? ? " " : tag.name), :id=>tag.id}}
|
||||
}
|
||||
end
|
||||
|
||||
# 抓取網址的狀態參數
|
||||
def filter2(type)
|
||||
case type
|
||||
when "status"
|
||||
params[:filters][:status].blank? ? [] : params[:filters][:status] rescue []
|
||||
when "situation"
|
||||
params[:filters][:situation].blank? ? [] : params[:filters][:situation] rescue []
|
||||
when "identity"
|
||||
params[:filters][:identity].blank? ? [] : params[:filters][:identity] rescue []
|
||||
end
|
||||
end
|
||||
|
||||
def index
|
||||
@tags = @module_app.tags
|
||||
@categories = @module_app.categories
|
||||
@filter_fields = filter_fields(@categories)
|
||||
@filter_fields = filter_fields(@categories, @tags)
|
||||
# 列表欄位
|
||||
@table_fields = [:status, :category, :title, 'ask.name', 'ask.created_at']
|
||||
@table_fields = [:situation, :category, :title, 'ask.name', 'ask.created_at']
|
||||
# 列表排序
|
||||
if filter2("status").blank?
|
||||
@askquestions = AskQuestion.order_by(sort) .with_categories(filters("category"))
|
||||
# debugger
|
||||
if filter2("situation").blank? and filter2("identity").blank?
|
||||
@askquestions = AskQuestion.order_by(sort)
|
||||
.with_categories(filters("category"))
|
||||
elsif filter2("situation").blank?
|
||||
@askquestions = AskQuestion.order_by(sort)
|
||||
.with_categories(filters("category"))
|
||||
.any_in(:identity => filter2("identity"))
|
||||
elsif filter2("identity").blank?
|
||||
@askquestions = AskQuestion.order_by(sort)
|
||||
.with_categories(filters("category"))
|
||||
.any_in(:situation => filter2("situation"))
|
||||
else
|
||||
@askquestions = AskQuestion.order_by(sort) .with_categories(filters("category")) .where(:status.in => filter2("status"))
|
||||
@askquestions = AskQuestion.order_by(sort)
|
||||
.with_categories(filters("category"))
|
||||
.any_in(:identity => filter2("identity"))
|
||||
.any_in(:situation => filter2("situation"))
|
||||
end
|
||||
|
||||
# 分頁
|
||||
@@ -82,6 +60,10 @@ class Admin::AsksController < OrbitAdminController
|
||||
end
|
||||
end
|
||||
|
||||
def search_tag(tag)
|
||||
Tag.find(tag).name_translations{}
|
||||
end
|
||||
|
||||
def edit
|
||||
@ask_question = AskQuestion.find(params[:id])
|
||||
@url = admin_ask_path(@ask_question)
|
||||
@@ -149,16 +131,18 @@ class Admin::AsksController < OrbitAdminController
|
||||
AskQuestion.human_attribute_name(:reply),
|
||||
AskQuestion.human_attribute_name(:comment)]
|
||||
@ask_questions.each do |ask_question|
|
||||
csv << [ ask_question.category.title,
|
||||
ask_question.name,
|
||||
ask_question[:identity],
|
||||
ask_question.mail,
|
||||
ask_question.phone,
|
||||
ask_question.fax,
|
||||
ask_question.title,
|
||||
ask_question.content,
|
||||
ask_question.reply,
|
||||
ask_question.comment ]
|
||||
Tag.where({:id => ask_question[:identity]}).each do |tag|
|
||||
csv << [ ask_question.category.title,
|
||||
ask_question.name,
|
||||
tag.name,
|
||||
ask_question.mail,
|
||||
ask_question.phone,
|
||||
ask_question.fax,
|
||||
ask_question.title,
|
||||
ask_question.content,
|
||||
ask_question.reply,
|
||||
ask_question.comment ]
|
||||
end
|
||||
end
|
||||
end
|
||||
send_data csv.encode('Big5'), type: 'text/csv', filename: "Questions-#{date_start}-#{date_end}.csv"
|
||||
|
||||
@@ -7,10 +7,12 @@ class AsksController < ApplicationController
|
||||
def index
|
||||
module_app = ModuleApp.where(:key => "ask").first
|
||||
categories = module_app.categories
|
||||
tags = module_app.tags
|
||||
ask_question = AskQuestion.new
|
||||
{
|
||||
"ask_question" => ask_question,
|
||||
"categories" => categories,
|
||||
"tags" => tags,
|
||||
"module_app" => module_app
|
||||
}
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user