added export and filter for users
This commit is contained in:
parent
85d753d49d
commit
6cc56bee26
|
@ -5,8 +5,26 @@ class Admin::MemberCounselorsController < OrbitAdminController
|
||||||
@table_fields = ["member_counselor.file_date","member_counselor.file_title", "member_counselor.downloaded_times", "member_counselor.account", "member_counselor.user_type", "actions"]
|
@table_fields = ["member_counselor.file_date","member_counselor.file_title", "member_counselor.downloaded_times", "member_counselor.account", "member_counselor.user_type", "actions"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def results
|
||||||
|
@files = HpsResult.all.desc(:created_at).page(params[:page]).per(10)
|
||||||
|
@table_fields = ["member_counselor.file_date","member_counselor.file_title", "member_counselor.downloaded_times", "member_counselor.account", "member_counselor.user_type", "actions"]
|
||||||
|
end
|
||||||
|
|
||||||
|
def records
|
||||||
|
@records = HpsCounselingRecord.all.desc(:created_at).page(params[:page]).per(10)
|
||||||
|
@table_fields = ["member_counselor.file_date","member_counselor.title", "member_counselor.event_title", "member_counselor.account", "actions"]
|
||||||
|
end
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@counselors = HpsMember.all.desc(:created_at).page(params[:page]).per(10)
|
if !params[:user_type].present?
|
||||||
|
@counselors = HpsMember.all.desc(:created_at)
|
||||||
|
else
|
||||||
|
types = params[:user_type].collect{|ut| ut.to_i if ut.is_i?}
|
||||||
|
types.delete(nil)
|
||||||
|
@counselors = HpsMember.where(:user_type.in => params[:user_type])
|
||||||
|
end
|
||||||
|
@counselors = search_data(@counselors,[:name, :account]).page(params[:page]).per(10)
|
||||||
|
|
||||||
@table_fields = ["member_counselor.account","member_counselor.name", "member_counselor.user_type"]
|
@table_fields = ["member_counselor.account","member_counselor.name", "member_counselor.user_type"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -59,6 +77,31 @@ class Admin::MemberCounselorsController < OrbitAdminController
|
||||||
redirect_to uploads_admin_member_counselors_path
|
redirect_to uploads_admin_member_counselors_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy_result
|
||||||
|
hpresult = HpsResult.find(params[:id])
|
||||||
|
hpresult.destroy
|
||||||
|
redirect_to results_admin_member_counselors_path
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy_record
|
||||||
|
record = HpsCounselingRecord.find(params[:id])
|
||||||
|
record.destroy
|
||||||
|
redirect_to records_admin_member_counselors_path
|
||||||
|
end
|
||||||
|
|
||||||
|
def showrecord
|
||||||
|
@record = HpsCounselingRecord.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def export_records
|
||||||
|
@records = HpsCounselingRecord.all.desc(:created_at)
|
||||||
|
respond_to do |format|
|
||||||
|
format.xlsx {
|
||||||
|
response.headers['Content-Disposition'] = 'attachment; filename="counselor_records.xlsx"'
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def counselor_params
|
def counselor_params
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
wb = xlsx_package.workbook
|
||||||
|
|
||||||
|
wb.add_worksheet(name: "Counselor Records") do |sheet|
|
||||||
|
|
||||||
|
heading = sheet.styles.add_style(:b => true, :locked => true)
|
||||||
|
row = []
|
||||||
|
row << "新增日期"
|
||||||
|
row << "縣市"
|
||||||
|
row << "對象"
|
||||||
|
row << "輔導日期"
|
||||||
|
row << "方式"
|
||||||
|
row << "會議/活動名稱"
|
||||||
|
row << "縣市輔導項目(可複選)"
|
||||||
|
row << "學校輔導項目(可複選)"
|
||||||
|
row << "內容記要(如:所輔導內容、所解決困難、所達成共識、待解決問題…):"
|
||||||
|
row << "委員建議(如:對該縣市健康促進計畫推動、輔導學校之建議…):"
|
||||||
|
|
||||||
|
sheet.add_row row, :style => heading
|
||||||
|
|
||||||
|
@records.each do |record|
|
||||||
|
row = []
|
||||||
|
row << record.created_at.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
row << (record.get_city.name rescue "") + "/" + (record.get_county.name rescue "")
|
||||||
|
row << record.get_school.name
|
||||||
|
row << record.counseling_date.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
s = ""
|
||||||
|
record.counseling_method.each do |methd|
|
||||||
|
s = s + methd
|
||||||
|
end
|
||||||
|
s = s + (record.counseling_method_description rescue "") if record.counseling_method.include?("個別議題輔導")
|
||||||
|
row << s
|
||||||
|
row << record.event_title
|
||||||
|
s = ""
|
||||||
|
record.purpose_for_county.each do |methd|
|
||||||
|
s = s + methd
|
||||||
|
end
|
||||||
|
s = s + (record.purpose_for_county_extra rescue "") if record.purpose_for_county.include?("(8)其他(請填寫):")
|
||||||
|
row << s
|
||||||
|
s = ""
|
||||||
|
record.purpose_for_school.each do |methd|
|
||||||
|
s = s + methd
|
||||||
|
end
|
||||||
|
s = s + (record.purpose_for_school_extra rescue "") if record.purpose_for_school.include?("(7)其他(請填寫):")
|
||||||
|
row << record.minutes_of_event
|
||||||
|
row << record.evaluation_of_event
|
||||||
|
|
||||||
|
sheet.add_row row
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,3 +1,37 @@
|
||||||
|
<% content_for :right_nav do %>
|
||||||
|
<div class="searchClear pull-left">
|
||||||
|
<form id="module-search-form">
|
||||||
|
<input type="text" id="filter-input" class="search-query input-medium" placeholder="<%= t(:search_) %>" name="keywords" value="<%=params[:keywords]%>">
|
||||||
|
<% if params[:keywords].present? %>
|
||||||
|
<a href="<%= admin_member_counselors_path %>" class="btn btn-link btn-small"><i class="icons-cycle"></i> <%= t(:clear) %></a>
|
||||||
|
<% end %>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="pull-right">
|
||||||
|
<ul class="nav nav-pills filter-nav pull-right">
|
||||||
|
<li class="accordion-group <%= params[:user_type].present? ? "active" : "" %>">
|
||||||
|
<div class="accordion-heading">
|
||||||
|
<a href="#collapse-type" data-toggle="collapse" data-parent="#filter" class="accordion-toggle">User Type</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="filter-group accordion-group">
|
||||||
|
<div class="accordion-body <%= params[:user_type].present? ? "" : "collapse" %>" id="collapse-type">
|
||||||
|
<div class="accordion-inner pagination-right" >
|
||||||
|
<form action="" method="get" id="filter-form" >
|
||||||
|
<label style="display: inline;" for="user_type_0"><input id="user_type_0" type="checkbox" name="user_type[]" <%= params[:user_type].present? && params[:user_type].include?("0") ? "checked=checked" : "" %> value="0" class="filterable"> <%= t("member_counselor.type1") %></label>
|
||||||
|
<label style="display: inline;" for="user_type_1"><input id="user_type_1" type="checkbox" name="user_type[]" <%= params[:user_type].present? && params[:user_type].include?("1") ? "checked=checked" : "" %> value="1" class="filterable"> <%= t("member_counselor.type2") %></label>
|
||||||
|
<label style="display: inline;" for="user_type_2"><input id="user_type_2" type="checkbox" name="user_type[]" <%= params[:user_type].present? && params[:user_type].include?("2") ? "checked=checked" : "" %> value="2" class="filterable"> <%= t("member_counselor.type3") %></label>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<% if params[:user_type].present? %>
|
||||||
|
<div class="filter-clear">
|
||||||
|
<a href="<%= admin_member_counselors_path %>" class="btn btn-link btn-small"><i class="icons-cycle"></i> <%= t(:clear) %></a>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
<table class="table main-list">
|
<table class="table main-list">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="sort-header">
|
<tr class="sort-header">
|
||||||
|
@ -39,3 +73,19 @@
|
||||||
content_tag :div, paginate(@counselors), class: "pagination pagination-centered"
|
content_tag :div, paginate(@counselors), class: "pagination pagination-centered"
|
||||||
end
|
end
|
||||||
%>
|
%>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
$("#filter-form").submit(function() {
|
||||||
|
$(this).find(":input").filter(function(){ return !this.value; }).attr("disabled", "disabled");
|
||||||
|
return true; // ensure form still submits
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$(".filterable").on("click",function(){
|
||||||
|
$("#filter-form").submit();
|
||||||
|
})
|
||||||
|
$("#filter-input").on("keyup",function(){
|
||||||
|
if(e.keycode == 13){
|
||||||
|
$("#module-search-form").submit();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<table class="table main-list">
|
||||||
|
<thead>
|
||||||
|
<tr class="sort-header">
|
||||||
|
<% @table_fields.each do |f| %>
|
||||||
|
<%= thead(f) %>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @records.each do |record| %>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<%= record.created_at.strftime("%Y/%m/%d") %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="<%= showrecord_admin_member_counselor_path(record) %>"><%= record.get_title %></a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= record.event_title %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= record.hps_member.account %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="<%= destroy_record_admin_member_counselor_path(record) %>" data-method="delete" data-confirm="Are you sure?" class="text-error">Delete</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<%=
|
||||||
|
content_tag :div, class: "bottomnav clearfix" do
|
||||||
|
content_tag :div, paginate(@records), class: "pagination pagination-centered"
|
||||||
|
link_to t("member_counselor.export"), export_records_admin_member_counselors_path(:format => "xlsx"), :class => "pull-right btn btn-info", :target => "_blank"
|
||||||
|
end
|
||||||
|
%>
|
|
@ -0,0 +1,39 @@
|
||||||
|
<table class="table main-list">
|
||||||
|
<thead>
|
||||||
|
<tr class="sort-header">
|
||||||
|
<% @table_fields.each do |f| %>
|
||||||
|
<%= thead(f) %>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @files.each do |file| %>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<%= file.created_at.strftime("%Y/%m/%d") %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="<%= file.file.url %>" target="_blank"><%= file.title %></a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= file.download_count %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= file.hps_member.account %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= file.hps_member.get_user_type %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="<%= destroy_result_admin_member_counselor_path(file) %>" data-method="delete" data-confirm="Are you sure?" class="text-error">Delete</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<%=
|
||||||
|
content_tag :div, class: "bottomnav clearfix" do
|
||||||
|
content_tag :div, paginate(@files), class: "pagination pagination-centered"
|
||||||
|
end
|
||||||
|
%>
|
|
@ -0,0 +1,87 @@
|
||||||
|
<table width="100%" border="1">
|
||||||
|
<tr>
|
||||||
|
<td>新增日期</td>
|
||||||
|
<td id="date-time"><%= @record.created_at.strftime("%Y-%m-%d %H:%M:%S") %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>縣市</td>
|
||||||
|
<td>
|
||||||
|
<%= @record.get_city.name rescue "" %>/<%= @record.get_county.name rescue "" %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>對象</td>
|
||||||
|
<td>
|
||||||
|
<%= @record.get_school.name rescue "" %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>輔導日期</td>
|
||||||
|
<td>
|
||||||
|
<%= @record.counseling_date.strftime("%Y-%m-%d %H:%M:%S") %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>方式</td>
|
||||||
|
<td>
|
||||||
|
<% @record.counseling_method.each do |methd| %>
|
||||||
|
<%= methd %>
|
||||||
|
<% if methd != "個別議題輔導" %>
|
||||||
|
<br/>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<% if @record.counseling_method.include?("個別議題輔導") %>
|
||||||
|
<%= @record.counseling_method_description %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>會議/活動名稱</td>
|
||||||
|
<td>
|
||||||
|
<%= @record.event_title %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
縣市輔導項目(可複選)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<% @record.purpose_for_county.each do |methd| %>
|
||||||
|
<%= methd %>
|
||||||
|
<% if methd != "(8)其他(請填寫):" %>
|
||||||
|
<br/>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<% if @record.purpose_for_county.include?("(8)其他(請填寫):") %>
|
||||||
|
<%= @record.purpose_for_county_extra %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>學校輔導項目(可複選)</td>
|
||||||
|
<td>
|
||||||
|
<% @record.purpose_for_school.each do |methd| %>
|
||||||
|
<%= methd %>
|
||||||
|
<% if methd != "(7)其他(請填寫):" %>
|
||||||
|
<br/>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<% if @record.purpose_for_school.include?("(7)其他(請填寫):") %>
|
||||||
|
<%= @record.purpose_for_school_extra %>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="20%">內容記要(如:所輔導內容、所解決困難、所達成共識、待解決問題…):</td>
|
||||||
|
<td><%= @record.minutes_of_event %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>委員建議(如:對該縣市健康促進計畫推動、輔導學校之建議…):</td>
|
||||||
|
<td><%= @record.evaluation_of_event %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<a href="" onclick="window.history.back();return false;" class="btn">Back</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
|
@ -3,6 +3,9 @@ en:
|
||||||
member_counselor: HPS Members
|
member_counselor: HPS Members
|
||||||
new_user: Create User
|
new_user: Create User
|
||||||
all_members: All Members
|
all_members: All Members
|
||||||
|
uploads: Uploads
|
||||||
|
results: Results
|
||||||
|
records: Counselor Records
|
||||||
account: User Account
|
account: User Account
|
||||||
password: Password
|
password: Password
|
||||||
confirm_password: Confirm Password
|
confirm_password: Confirm Password
|
||||||
|
@ -10,7 +13,9 @@ en:
|
||||||
name: Name
|
name: Name
|
||||||
organization: Organization
|
organization: Organization
|
||||||
title: Title
|
title: Title
|
||||||
|
event_title: Event Title
|
||||||
county: County
|
county: County
|
||||||
|
export: Export
|
||||||
address: Address
|
address: Address
|
||||||
email: Email
|
email: Email
|
||||||
telephone: Telphone
|
telephone: Telphone
|
||||||
|
|
|
@ -3,6 +3,9 @@ zh_tw:
|
||||||
member_counselor: HPS Members
|
member_counselor: HPS Members
|
||||||
new_user: Create User
|
new_user: Create User
|
||||||
all_members: All Members
|
all_members: All Members
|
||||||
|
uploads: Uploads
|
||||||
|
results: Results
|
||||||
|
records: Counselor Records
|
||||||
account: 帳號
|
account: 帳號
|
||||||
password: 密碼
|
password: 密碼
|
||||||
confirm_password: 確認密碼
|
confirm_password: 確認密碼
|
||||||
|
@ -10,6 +13,8 @@ zh_tw:
|
||||||
name: 姓名
|
name: 姓名
|
||||||
organization: 服務機關
|
organization: 服務機關
|
||||||
title: 職稱
|
title: 職稱
|
||||||
|
event_title: 會議/活動名稱
|
||||||
|
export: Export
|
||||||
county: 縣市
|
county: 縣市
|
||||||
address: 地址
|
address: 地址
|
||||||
email: 電子信箱
|
email: 電子信箱
|
||||||
|
|
|
@ -6,10 +6,16 @@ Rails.application.routes.draw do
|
||||||
resources :member_counselors do
|
resources :member_counselors do
|
||||||
collection do
|
collection do
|
||||||
get "uploads"
|
get "uploads"
|
||||||
|
get "results"
|
||||||
|
get "records"
|
||||||
|
get "export_records"
|
||||||
get "get_info"
|
get "get_info"
|
||||||
end
|
end
|
||||||
member do
|
member do
|
||||||
delete "destroy_upload"
|
delete "destroy_upload"
|
||||||
|
delete "destroy_result"
|
||||||
|
delete "destroy_record"
|
||||||
|
get "showrecord"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,12 +19,24 @@ module MemberCounselor
|
||||||
active_for_controllers (['admin/member_counselors'])
|
active_for_controllers (['admin/member_counselors'])
|
||||||
head_link_path "uploads_admin_member_counselors_path"
|
head_link_path "uploads_admin_member_counselors_path"
|
||||||
|
|
||||||
context_link 'all',
|
context_link 'member_counselor.uploads',
|
||||||
:link_path=>"uploads_admin_member_counselors_path" ,
|
:link_path=>"uploads_admin_member_counselors_path" ,
|
||||||
:priority=>1,
|
:priority=>1,
|
||||||
:active_for_action=>{'admin/member_counselors'=>"uploads"},
|
:active_for_action=>{'admin/member_counselors'=>"uploads"},
|
||||||
:available_for => 'admin'
|
:available_for => 'admin'
|
||||||
|
|
||||||
|
context_link 'member_counselor.results',
|
||||||
|
:link_path=>"results_admin_member_counselors_path" ,
|
||||||
|
:priority=>1,
|
||||||
|
:active_for_action=>{'admin/member_counselors'=>"results"},
|
||||||
|
:available_for => 'admin'
|
||||||
|
|
||||||
|
context_link 'member_counselor.records',
|
||||||
|
:link_path=>"records_admin_member_counselors_path" ,
|
||||||
|
:priority=>1,
|
||||||
|
:active_for_action=>{'admin/member_counselors'=>"records"},
|
||||||
|
:available_for => 'admin'
|
||||||
|
|
||||||
context_link 'member_counselor.all_members',
|
context_link 'member_counselor.all_members',
|
||||||
:link_path=>"admin_member_counselors_path" ,
|
:link_path=>"admin_member_counselors_path" ,
|
||||||
:priority=>1,
|
:priority=>1,
|
||||||
|
|
Loading…
Reference in New Issue