forest_admin_datasource_customizer 1.25.2 → 1.26.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 +4 -4
- data/lib/forest_admin_datasource_customizer/composite_datasource.rb +2 -2
- data/lib/forest_admin_datasource_customizer/decorators/chart/chart_collection_decorator.rb +3 -3
- data/lib/forest_admin_datasource_customizer/decorators/chart/chart_context.rb +3 -2
- data/lib/forest_admin_datasource_customizer/decorators/chart/chart_datasource_decorator.rb +2 -2
- data/lib/forest_admin_datasource_customizer/decorators/chart/datasource_chart_context.rb +14 -0
- data/lib/forest_admin_datasource_customizer/decorators/search/search_collection_decorator.rb +5 -3
- data/lib/forest_admin_datasource_customizer/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 21756353defebf8818cdf3af3b7acab5e9ffe7a8e5d37d00c1a2be1c76e9ebbc
|
|
4
|
+
data.tar.gz: 84f86cdece486e5d99b73356c369a0a2e69c4aa3535b1a9949f32b7651d4cc50
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7db3962f7e5625d16226b59e45c4f734a7ecdb39b048d38cd43cbe0d4b93e8481e80048bd3bbd553d1fcd33bbc5751fff119e13afebcdcdc548c0bf2cb6e234a
|
|
7
|
+
data.tar.gz: bc5ca5727f78d5af18c3bab935063036d4070d1573365b56087f624dbbd213d1d44c151551798c254651d347141e47b3736765aeca4bdb3fdc0fa44209646e8b
|
|
@@ -31,9 +31,9 @@ module ForestAdminDatasourceCustomizer
|
|
|
31
31
|
"Collection '#{name}' not found. List of available collections: #{collections.keys.sort.join(", ")}"
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
def render_chart(caller_obj, name)
|
|
34
|
+
def render_chart(caller_obj, name, parameters = {})
|
|
35
35
|
@datasources.each do |ds|
|
|
36
|
-
return ds.render_chart(caller_obj, name) if ds.schema[:charts].include?(name)
|
|
36
|
+
return ds.render_chart(caller_obj, name, parameters) if ds.schema[:charts].include?(name)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
raise ForestAdminDatasourceToolkit::Exceptions::ForestException,
|
|
@@ -19,15 +19,15 @@ module ForestAdminDatasourceCustomizer
|
|
|
19
19
|
mark_schema_as_dirty
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def render_chart(caller, name, record_id)
|
|
22
|
+
def render_chart(caller, name, record_id, parameters = {})
|
|
23
23
|
if @charts.key?(name)
|
|
24
|
-
context = ChartContext.new(self, caller, record_id)
|
|
24
|
+
context = ChartContext.new(self, caller, record_id, parameters)
|
|
25
25
|
result_builder = ResultBuilder.new
|
|
26
26
|
|
|
27
27
|
return @charts[name].call(context, result_builder)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
@child_collection.render_chart(caller, name, record_id)
|
|
30
|
+
@child_collection.render_chart(caller, name, record_id, parameters)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def refine_schema(sub_schema)
|
|
@@ -6,11 +6,12 @@ module ForestAdminDatasourceCustomizer
|
|
|
6
6
|
include ForestAdminDatasourceToolkit::Components::Query
|
|
7
7
|
include ForestAdminDatasourceToolkit::Components::Query::ConditionTree
|
|
8
8
|
|
|
9
|
-
attr_reader :composite_record_id
|
|
9
|
+
attr_reader :composite_record_id, :parameters
|
|
10
10
|
|
|
11
|
-
def initialize(collection, caller, record_id)
|
|
11
|
+
def initialize(collection, caller, record_id, parameters = {})
|
|
12
12
|
super(collection, caller)
|
|
13
13
|
@composite_record_id = record_id
|
|
14
|
+
@parameters = (parameters || {}).freeze
|
|
14
15
|
end
|
|
15
16
|
|
|
16
17
|
def _composite_record_id=(value)
|
|
@@ -28,12 +28,12 @@ module ForestAdminDatasourceCustomizer
|
|
|
28
28
|
@charts[name] = definition
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
def render_chart(caller, name)
|
|
31
|
+
def render_chart(caller, name, parameters = {})
|
|
32
32
|
chart_definition = @charts[name]
|
|
33
33
|
|
|
34
34
|
if chart_definition
|
|
35
35
|
return chart_definition.call(
|
|
36
|
-
|
|
36
|
+
DatasourceChartContext.new(self, caller, parameters),
|
|
37
37
|
ResultBuilder.new
|
|
38
38
|
)
|
|
39
39
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module ForestAdminDatasourceCustomizer
|
|
2
|
+
module Decorators
|
|
3
|
+
module Chart
|
|
4
|
+
class DatasourceChartContext < ForestAdminDatasourceCustomizer::Context::AgentCustomizationContext
|
|
5
|
+
attr_reader :parameters
|
|
6
|
+
|
|
7
|
+
def initialize(datasource, caller, parameters = {})
|
|
8
|
+
super(datasource, caller)
|
|
9
|
+
@parameters = (parameters || {}).freeze
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/forest_admin_datasource_customizer/decorators/search/search_collection_decorator.rb
CHANGED
|
@@ -5,6 +5,9 @@ module ForestAdminDatasourceCustomizer
|
|
|
5
5
|
include ForestAdminDatasourceToolkit::Schema
|
|
6
6
|
include ForestAdminDatasourceToolkit::Components::Query::ConditionTree
|
|
7
7
|
|
|
8
|
+
POLYMORPHIC_TYPES = %w[PolymorphicManyToOne PolymorphicOneToOne].freeze
|
|
9
|
+
TO_ONE_RELATIONS = %w[ManyToOne OneToOne].freeze
|
|
10
|
+
|
|
8
11
|
def initialize(child_collection, datasource)
|
|
9
12
|
super
|
|
10
13
|
@replacer = nil
|
|
@@ -112,7 +115,7 @@ module ForestAdminDatasourceCustomizer
|
|
|
112
115
|
@child_collection.schema[:fields].each do |name, field|
|
|
113
116
|
fields.push([name, field]) if field.type == 'Column' && searchable_field?(field)
|
|
114
117
|
|
|
115
|
-
if field.type
|
|
118
|
+
if POLYMORPHIC_TYPES.include?(field.type) && extended
|
|
116
119
|
ForestAdminAgent::Facades::Container.logger.log(
|
|
117
120
|
'Debug',
|
|
118
121
|
"We're not searching through #{self.name}.#{name} because it's a polymorphic relation. " \
|
|
@@ -121,8 +124,7 @@ module ForestAdminDatasourceCustomizer
|
|
|
121
124
|
)
|
|
122
125
|
end
|
|
123
126
|
|
|
124
|
-
|
|
125
|
-
next unless extended && to_one_relations.include?(field.type)
|
|
127
|
+
next unless extended && TO_ONE_RELATIONS.include?(field.type)
|
|
126
128
|
|
|
127
129
|
related = @child_collection.datasource.get_collection(field.foreign_collection)
|
|
128
130
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: forest_admin_datasource_customizer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.26.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matthieu
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2026-03-
|
|
12
|
+
date: 2026-03-20 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -209,6 +209,7 @@ files:
|
|
|
209
209
|
- lib/forest_admin_datasource_customizer/decorators/chart/chart_collection_decorator.rb
|
|
210
210
|
- lib/forest_admin_datasource_customizer/decorators/chart/chart_context.rb
|
|
211
211
|
- lib/forest_admin_datasource_customizer/decorators/chart/chart_datasource_decorator.rb
|
|
212
|
+
- lib/forest_admin_datasource_customizer/decorators/chart/datasource_chart_context.rb
|
|
212
213
|
- lib/forest_admin_datasource_customizer/decorators/chart/result_builder.rb
|
|
213
214
|
- lib/forest_admin_datasource_customizer/decorators/computed/compute_collection_decorator.rb
|
|
214
215
|
- lib/forest_admin_datasource_customizer/decorators/computed/computed_definition.rb
|