alchemy-custom-model 2.0.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32dfcdd9c7960977963a3758ef1af6d517362b28
|
4
|
+
data.tar.gz: ec7f6360bd70622e39f25904c6b5f680667507a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80de05b395cebc79fca0426fc5d759dae0d651709f4c14de7a3e290cc50cb7ad2b4fc1e83d9ace7b94428d538bfd340c5a90885e7a6d214b8e3997414f374de1
|
7
|
+
data.tar.gz: 9519f06da535bc01c2de997224a5d385ccf380b8533ca02fb4efec48a72e5f2ed935ce2138df8cd4250a0238e7d59e9241bccf2f1522e67f585004ac6130cf01
|
@@ -74,6 +74,26 @@ module Alchemy::Custom::Model
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
def export_csv
|
78
|
+
|
79
|
+
@query = base_class.ransack(params[:q])
|
80
|
+
@objects = @query.result(distinct: true)
|
81
|
+
@objects = @objects.accessible_by(current_ability)
|
82
|
+
@objects = @objects.page(params[:page]).
|
83
|
+
per(params[:per_page] ||
|
84
|
+
(base_class::DEFAULT_PER_PAGE if base_class.const_defined? :DEFAULT_PER_PAGE) ||
|
85
|
+
25)
|
86
|
+
|
87
|
+
|
88
|
+
send_data generate_csv, filename: "export_member.csv", disposition: :attachment, type: "text/csv"
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
def export_csv_full
|
93
|
+
@objects = base_class.all.accessible_by(current_ability)
|
94
|
+
send_data generate_csv, filename: "export_member.csv", disposition: :attachment, type: "text/csv"
|
95
|
+
end
|
96
|
+
|
77
97
|
|
78
98
|
class << self
|
79
99
|
|
@@ -202,6 +222,28 @@ module Alchemy::Custom::Model
|
|
202
222
|
end
|
203
223
|
|
204
224
|
|
225
|
+
def generate_csv
|
226
|
+
header_csv = self.columns_csv.collect {|attr| base_class.human_attribute_name(attr)}
|
227
|
+
|
228
|
+
CSV.generate(headers: true) do |csv|
|
229
|
+
csv << header_csv
|
230
|
+
@objects.each do |member|
|
231
|
+
csv_row = self.columns_csv.collect do |attr|
|
232
|
+
member.send attr
|
233
|
+
end
|
234
|
+
csv << csv_row
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
|
240
|
+
protected
|
241
|
+
|
242
|
+
def columns_csv
|
243
|
+
table_columns
|
244
|
+
end
|
245
|
+
|
246
|
+
|
205
247
|
|
206
248
|
end
|
207
249
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
<% content_for(:toolbar) do %>
|
3
2
|
<%= render 'alchemy/admin/partials/site_select' %>
|
4
3
|
<%= render 'language_tree_select' %>
|
@@ -32,6 +31,28 @@
|
|
32
31
|
}
|
33
32
|
end
|
34
33
|
|
34
|
+
if can?(:export_csv, base_class) and check_presence_polymorphic_path([:export_csv, :admin, base_class.to_s.demodulize.downcase.pluralize ], :get, format: :csv)
|
35
|
+
buttons << {
|
36
|
+
icon: "download",
|
37
|
+
label: t(:export_selected_data),
|
38
|
+
url: polymorphic_path([:export_csv, :admin, base_class.to_s.demodulize.downcase.pluralize],format: :csv),
|
39
|
+
title: t(:export_selected_data),
|
40
|
+
dialog: false,
|
41
|
+
if_permitted_to: [:export_csv, base_class]
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
if can?(:export_csv_full, base_class) and check_presence_polymorphic_path([:export_csv_full, :admin, base_class.to_s.demodulize.downcase.pluralize ], :get, format: :csv)
|
46
|
+
buttons << {
|
47
|
+
icon: "file-archive",
|
48
|
+
label: t(:export_all_data),
|
49
|
+
url: polymorphic_path([:export_csv_full, :admin, base_class.to_s.demodulize.downcase.pluralize],format: :csv),
|
50
|
+
title: t(:export_all_data),
|
51
|
+
dialog: false,
|
52
|
+
if_permitted_to: [:export_csv_full, base_class]
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
35
56
|
%>
|
36
57
|
|
37
58
|
<% toolbar(
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy-custom-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alessandro Baccanelli
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-07-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: alchemy_cms
|