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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 175cc54015004403a128771778a417c4ab6402a7680ae3b24cf7c8c2e5b981ab
4
- data.tar.gz: e7decd6ce36ab8100c263b64fc96e1145198def0111978668b323181d73d3e2a
3
+ metadata.gz: 21756353defebf8818cdf3af3b7acab5e9ffe7a8e5d37d00c1a2be1c76e9ebbc
4
+ data.tar.gz: 84f86cdece486e5d99b73356c369a0a2e69c4aa3535b1a9949f32b7651d4cc50
5
5
  SHA512:
6
- metadata.gz: 280acbe90bea161e95840f0475d53fce602c8b59e035ae079bd67a9617b9971529fe5a3c10398f6d5f97093a44c8756fb7020b3b01e7df9f1be5955ba4ce231d
7
- data.tar.gz: 024b25633282c38bbd237e266f2dd3941aa0e246a565ab2276656e5c93eaf9273ba484ed3ef0301f2e7208040e956e5a81505022ae83298bbf08228e6c8eabf1
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
- Context::AgentCustomizationContext.new(self, caller),
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
@@ -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 == 'PolymorphicManyToOne' && extended
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
- to_one_relations = %w[ManyToOne OneToOne PolymorphicOneToOne]
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
 
@@ -1,3 +1,3 @@
1
1
  module ForestAdminDatasourceCustomizer
2
- VERSION = "1.25.2"
2
+ VERSION = "1.26.0"
3
3
  end
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.25.2
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-06 00:00:00.000000000 Z
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