simple_drilldown 0.14.4 → 0.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/views/simple_drilldown/_excel_record_list_xlsx.xlsx.axlsx +4 -2
- data/app/views/simple_drilldown/_excel_row_header.builder +3 -1
- data/app/views/simple_drilldown/_excel_styles.builder +2 -2
- data/lib/simple_drilldown/controller.rb +26 -5
- data/lib/simple_drilldown/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71d5040959b787d7adfca8b43f2d64fcfa3fe8f4d126baf6f1417ebb8a44bfae
|
4
|
+
data.tar.gz: ec7ac9464c96bfc1686916033cbbadb3af867b1cdc04e1ce5d1bd6ae72cf70dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 149f46e2eef26f80dcaffea81456bc9950ee19d8280954b9e8fd164552d5499fc71bfd6cc16c2475f8850e3db2527491681ff9a4a5610cea495fd43ba5f1f6e1
|
7
|
+
data.tar.gz: a8cd1d324b1d990526c3c5021639c3a33cb940145b8ae3797d2043e5dbeea9060be7873c54f4d53c675bc9288273efb229dac0209117be549dc0d172fce4e399
|
@@ -3,7 +3,9 @@
|
|
3
3
|
def excel_header_row(sheet)
|
4
4
|
padding_cells = @dimensions.empty? ? 1 : @dimensions.size
|
5
5
|
row = (1...(padding_cells - 1)).map { |_n| nil }
|
6
|
-
@search.fields.
|
6
|
+
@search.fields.each do |field|
|
7
|
+
row << t(field, default: [:"attributes.#{field}", field.humanize])
|
8
|
+
end
|
7
9
|
sheet.add_row row
|
8
10
|
end
|
9
11
|
|
@@ -35,7 +37,7 @@ def excel_row(sheet, wrap, transaction:)
|
|
35
37
|
|
36
38
|
row << value
|
37
39
|
end
|
38
|
-
sheet.add_row row, style: wrap
|
40
|
+
sheet.add_row row # , style: wrap
|
39
41
|
end
|
40
42
|
|
41
43
|
sheet.add_row []
|
@@ -5,6 +5,8 @@ xml.Row do
|
|
5
5
|
1.upto(padding_cells - 1) { |_n| xml.Cell('ss:StyleID' => 'Outer') }
|
6
6
|
|
7
7
|
@search.fields.each_with_index do |field, i|
|
8
|
-
xml.Cell('ss:Index' => (padding_cells + i).to_s)
|
8
|
+
xml.Cell('ss:Index' => (padding_cells + i).to_s) do
|
9
|
+
xml.Data t(field, default: [:"attributes.#{field}", field.humanize]), 'ss:Type' => 'String'
|
10
|
+
end
|
9
11
|
end
|
10
12
|
end
|
@@ -31,7 +31,7 @@ xml.Styles do
|
|
31
31
|
xml.NumberFormat 'ss:Format' => '0.000'
|
32
32
|
end
|
33
33
|
xml.Style 'ss:ID' => 'NoDecimalNumberFormat' do
|
34
|
-
xml.NumberFormat 'ss:Format' =>
|
34
|
+
xml.NumberFormat 'ss:Format' => '#,##0'
|
35
35
|
end
|
36
36
|
xml.Style 'ss:ID' => 'Percent' do
|
37
37
|
xml.NumberFormat 'ss:Format' => '0%'
|
@@ -44,7 +44,7 @@ xml.Styles do
|
|
44
44
|
xml.Border 'ss:Position' => 'Bottom', 'ss:Weight' => '1'
|
45
45
|
end
|
46
46
|
xml.Interior 'ss:Color' => '#dedede', 'ss:Pattern' => 'Solid'
|
47
|
-
xml.NumberFormat 'ss:Format' =>
|
47
|
+
xml.NumberFormat 'ss:Format' => '#,##0'
|
48
48
|
end
|
49
49
|
xml.Style 'ss:ID' => 'Outer'
|
50
50
|
xml.Style 'ss:ID' => 'ShortDate' do
|
@@ -117,6 +117,9 @@ module SimpleDrilldown
|
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
120
|
+
pretty_name = I18n.t(:"simple_drilldown.dimension.#{name}",
|
121
|
+
default: [:"simple_drilldown.#{name}", :"activerecord.models.#{name}", name.to_sym,
|
122
|
+
name.to_s.titleize])
|
120
123
|
c_dimension_defs[name.to_s] = {
|
121
124
|
includes: queries.inject(nil) do |a, e|
|
122
125
|
i = e[:includes]
|
@@ -135,9 +138,7 @@ module SimpleDrilldown
|
|
135
138
|
interval: interval,
|
136
139
|
label_method: label_method,
|
137
140
|
legal_values: legal_values,
|
138
|
-
pretty_name:
|
139
|
-
default: [:"simple_drilldown.#{name}", :"activerecord.models.#{name}", name.to_sym,
|
140
|
-
name.to_s.titleize]),
|
141
|
+
pretty_name: pretty_name,
|
141
142
|
queries: queries,
|
142
143
|
reverse: reverse,
|
143
144
|
select_expression:
|
@@ -207,7 +208,7 @@ module SimpleDrilldown
|
|
207
208
|
dimension_def[:queries].each do |query|
|
208
209
|
next unless (where = query[:where])
|
209
210
|
|
210
|
-
where_mapped = where.map { |e| e.respond_to?(:call) ? e.call : e }
|
211
|
+
where_mapped = [*where].map { |e| e.respond_to?(:call) ? e.call : e }
|
211
212
|
condition_strings << where_mapped[0]
|
212
213
|
condition_values += where_mapped[1..]
|
213
214
|
end
|
@@ -265,7 +266,12 @@ module SimpleDrilldown
|
|
265
266
|
include.each do |parent, child|
|
266
267
|
sql << " #{make_join(joins, model, parent)}"
|
267
268
|
ass = model.to_s.camelize.constantize.reflect_on_association parent
|
268
|
-
sql <<
|
269
|
+
sql << case ass.macro
|
270
|
+
when :has_many
|
271
|
+
" #{make_join(joins, ass.class_name.underscore, child, ass.class_name.constantize)}"
|
272
|
+
else
|
273
|
+
" #{make_join(joins, parent, child, ass.class_name.constantize)}"
|
274
|
+
end
|
269
275
|
end
|
270
276
|
sql
|
271
277
|
when Symbol
|
@@ -634,6 +640,21 @@ module SimpleDrilldown
|
|
634
640
|
instance_eval(&scope)
|
635
641
|
end
|
636
642
|
|
643
|
+
# def merge(scope)
|
644
|
+
# @merged_scope = scope
|
645
|
+
# self
|
646
|
+
# end
|
647
|
+
#
|
648
|
+
# def includes(includes)
|
649
|
+
# @includes = includes
|
650
|
+
# self
|
651
|
+
# end
|
652
|
+
#
|
653
|
+
# def references(references)
|
654
|
+
# @references = references
|
655
|
+
# self
|
656
|
+
# end
|
657
|
+
#
|
637
658
|
def order(order)
|
638
659
|
@order = order
|
639
660
|
self
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_drilldown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uwe Kubosch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: caxlsx_rails
|
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '0'
|
147
147
|
requirements: []
|
148
|
-
rubygems_version: 3.
|
148
|
+
rubygems_version: 3.4.6
|
149
149
|
signing_key:
|
150
150
|
specification_version: 4
|
151
151
|
summary: Simple data warehouse and drilldown.
|