forest_admin_datasource_toolkit 1.0.0.pre.beta.101 → 1.0.0.pre.beta.102
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_toolkit/collection.rb +9 -0
- data/lib/forest_admin_datasource_toolkit/components/caller.rb +9 -0
- data/lib/forest_admin_datasource_toolkit/components/query/filter.rb +4 -4
- data/lib/forest_admin_datasource_toolkit/components/query/filter_factory.rb +19 -0
- data/lib/forest_admin_datasource_toolkit/components/query/page.rb +4 -0
- data/lib/forest_admin_datasource_toolkit/datasource.rb +11 -0
- data/lib/forest_admin_datasource_toolkit/decorators/collection_decorator.rb +3 -1
- data/lib/forest_admin_datasource_toolkit/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 495f875b6cecfc26c1355cc38e11043a3510e50d1ad8515191dad964f8d9bd74
|
4
|
+
data.tar.gz: acafa1e27c47f638d275a7d50caee2dc1574a6dd223b300689b2f81718308bf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3f43f1c7d7398f4f80fd493907b7831072f6f70e28fe74e55a2442cb80b9d2f7e4774119d26d0df9a657b4273d65059c9a098b0fbfee41335ddafb95b30645d
|
7
|
+
data.tar.gz: 0040f777cb0c5c812659c27c3bc8d6c5e2cd633c2315fe722fa87b434131608b39b03e7ce9f6ac9b90649241cdf039765cbc4678b870972a6cd2594f85c47387
|
@@ -63,6 +63,15 @@ module ForestAdminDatasourceToolkit
|
|
63
63
|
schema[:actions][name] = action
|
64
64
|
end
|
65
65
|
|
66
|
+
def add_chart(name)
|
67
|
+
if @schema[:charts].include?(name)
|
68
|
+
raise Exceptions::ForestException,
|
69
|
+
"Chart #{name} already defined in collection"
|
70
|
+
end
|
71
|
+
|
72
|
+
schema[:charts] << name
|
73
|
+
end
|
74
|
+
|
66
75
|
def render_chart(_caller, name, _record_id)
|
67
76
|
raise Exceptions::ForestException, "Chart #{name} is not implemented."
|
68
77
|
end
|
@@ -32,6 +32,15 @@ module ForestAdminDatasourceToolkit
|
|
32
32
|
@project = project
|
33
33
|
@environment = environment
|
34
34
|
end
|
35
|
+
|
36
|
+
def to_h
|
37
|
+
result = {}
|
38
|
+
instance_variables.each do |attribute|
|
39
|
+
result[attribute.to_s.delete('@').to_sym] = instance_variable_get(attribute)
|
40
|
+
end
|
41
|
+
|
42
|
+
result
|
43
|
+
end
|
35
44
|
end
|
36
45
|
end
|
37
46
|
end
|
@@ -20,14 +20,14 @@ module ForestAdminDatasourceToolkit
|
|
20
20
|
@page = page
|
21
21
|
end
|
22
22
|
|
23
|
-
def to_h
|
23
|
+
def to_h(deeply: true)
|
24
24
|
{
|
25
|
-
condition_tree: @condition_tree,
|
25
|
+
condition_tree: deeply && !@condition_tree.nil? ? @condition_tree.to_h : @condition_tree,
|
26
26
|
search: @search,
|
27
27
|
search_extended: @search_extended,
|
28
28
|
segment: @segment,
|
29
29
|
sort: @sort,
|
30
|
-
page: @page
|
30
|
+
page: deeply && !page.nil? ? @page.to_h : @page
|
31
31
|
}
|
32
32
|
end
|
33
33
|
|
@@ -36,7 +36,7 @@ module ForestAdminDatasourceToolkit
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def override(args)
|
39
|
-
args = to_h.merge(args)
|
39
|
+
args = to_h(deeply: false).merge(args)
|
40
40
|
|
41
41
|
Filter.new(**args)
|
42
42
|
end
|
@@ -9,6 +9,25 @@ module ForestAdminDatasourceToolkit
|
|
9
9
|
include ForestAdminDatasourceToolkit::Schema::Relations
|
10
10
|
include ForestAdminDatasourceToolkit::Components::Query::ConditionTree
|
11
11
|
|
12
|
+
def self.from_plain_object(json)
|
13
|
+
return Filter.new if json.nil? || json.empty?
|
14
|
+
|
15
|
+
Filter.new(
|
16
|
+
condition_tree: ConditionTree::ConditionTreeFactory.from_plain_object(
|
17
|
+
json['condition_tree'] || nil
|
18
|
+
),
|
19
|
+
page: if json['page'].nil?
|
20
|
+
nil
|
21
|
+
else
|
22
|
+
Page.new(offset: json['page']['offset'], limit: json['page']['limit'])
|
23
|
+
end,
|
24
|
+
search: json['search'],
|
25
|
+
search_extended: json['search_extended'],
|
26
|
+
sort: json['sort'].nil? ? nil : Sort.new(json['sort']),
|
27
|
+
segment: json['segment']
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
12
31
|
def self.get_previous_period_filter(filter, timezone)
|
13
32
|
filter.override(condition_tree: filter.condition_tree.replace_leafs do |leaf|
|
14
33
|
case leaf.operator
|
@@ -34,5 +34,16 @@ module ForestAdminDatasourceToolkit
|
|
34
34
|
def build_binding_symbol(_connection_name, _binds)
|
35
35
|
raise Exceptions::ForestException, 'this datasource do not support native query.'
|
36
36
|
end
|
37
|
+
|
38
|
+
def add_chart(chart)
|
39
|
+
if @schema[:charts].any? do |c|
|
40
|
+
c[:name] == chart[:name]
|
41
|
+
end
|
42
|
+
raise Exceptions::ForestException,
|
43
|
+
"Chart #{chart[:name]} already defined in datasource"
|
44
|
+
end
|
45
|
+
|
46
|
+
@schema[:charts] << chart
|
47
|
+
end
|
37
48
|
end
|
38
49
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module ForestAdminDatasourceToolkit
|
2
2
|
module Decorators
|
3
3
|
class CollectionDecorator < Collection
|
4
|
+
include ForestAdminDatasourceToolkit::Components::Query
|
5
|
+
|
4
6
|
attr_reader :datasource, :child_collection, :last_schema
|
5
7
|
attr_writer :parent
|
6
8
|
|
@@ -36,7 +38,7 @@ module ForestAdminDatasourceToolkit
|
|
36
38
|
end
|
37
39
|
|
38
40
|
def get_form(caller, name, data = nil, filter = nil, metas = {})
|
39
|
-
refined_filter = refine_filter(caller, filter)
|
41
|
+
refined_filter = refine_filter(caller, filter || Filter.new)
|
40
42
|
|
41
43
|
@child_collection.get_form(caller, name, data, refined_filter, metas)
|
42
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forest_admin_datasource_toolkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.beta.
|
4
|
+
version: 1.0.0.pre.beta.102
|
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: 2025-05-
|
12
|
+
date: 2025-05-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|