simple_drilldown 0.10.0 → 0.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/simple_drilldown/controller.rb +5 -5
- data/lib/simple_drilldown/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67475c124f66b63918120130bef9a0d96d911c061c1e81853229088d2a1bba32
|
4
|
+
data.tar.gz: c73d08fec7a08faac6ae93e9a38ce4a351f056c50339d1473fc5ed20da4ce44e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac86c2eb185285bfd9a5f27c90e4c99600a029778595956d99a55ff1d92248c3052d1765227c98368c7a709a16f8d840b46cf09db178d522e9d9ef30f4bde0f9
|
7
|
+
data.tar.gz: 988d82b766671b72d4df71a705feb68aef5b7ac8eef66987136712bb276b760985e5c3b5b4af4942eefea1dce3c34547acdf1e7e6f0c3c97dcbab6d3d90f4b51
|
@@ -267,8 +267,8 @@ module SimpleDrilldown
|
|
267
267
|
fk_col = ass.options[:foreign_key] || "#{model}_id"
|
268
268
|
sql = +"LEFT JOIN #{include_table} #{include_alias} ON #{include_alias}.#{fk_col} = #{model_table}.id"
|
269
269
|
sql << " AND #{include_alias}.deleted_at IS NULL" if ass.klass.paranoid?
|
270
|
-
if ass.scope && (
|
271
|
-
ass_order
|
270
|
+
if ass.scope && (base_ass_order = ScopeHolder.new(ass.scope).to_s)
|
271
|
+
/^(?<ass_order>\S*)(?<ass_order_desc>\s+DESC)?/i =~ base_ass_order
|
272
272
|
ass_order_prefixed = ass_order.dup
|
273
273
|
ActiveRecord::Base.connection.columns(include_table).map(&:name).each do |cname|
|
274
274
|
ass_order_prefixed.gsub!(/\b#{cname}\b/, "#{include_alias}.#{cname}")
|
@@ -276,10 +276,10 @@ module SimpleDrilldown
|
|
276
276
|
paranoid_clause = 'AND t2.deleted_at IS NULL' if ass.klass.paranoid?
|
277
277
|
# FIXME(uwe): Should we add "where" from the ScopeHolder here as well?
|
278
278
|
# Ref: SimpleDrilldown::Changes#changes_for
|
279
|
-
|
280
|
-
SELECT MIN(#{ass_order}) FROM #{include_table} t2 WHERE t2.#{fk_col} = #{model_table}.id #{paranoid_clause}
|
279
|
+
aggregate_query = <<~SQL
|
280
|
+
SELECT #{ass_order_desc ? :MAX : :MIN}(#{ass_order}) FROM #{include_table} t2 WHERE t2.#{fk_col} = #{model_table}.id #{paranoid_clause}
|
281
281
|
SQL
|
282
|
-
sql << " AND #{ass_order_prefixed} = (#{
|
282
|
+
sql << " AND #{ass_order_prefixed} = (#{aggregate_query})"
|
283
283
|
end
|
284
284
|
sql
|
285
285
|
else
|