ecoportal-api-v2 0.8.8 → 0.8.9
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/CHANGELOG.md +38 -3
- data/lib/ecoportal/api/common/content.rb +1 -0
- data/lib/ecoportal/api/common/content/array_model.rb +8 -6
- data/lib/ecoportal/api/common/content/collection_model.rb +10 -4
- data/lib/ecoportal/api/common/content/double_model.rb +11 -0
- data/lib/ecoportal/api/common/content/hash_diff_patch.rb +31 -19
- data/lib/ecoportal/api/common/content/model_helpers.rb +36 -0
- data/lib/ecoportal/api/v2/page.rb +1 -0
- data/lib/ecoportal/api/v2/page/component.rb +33 -3
- data/lib/ecoportal/api/v2/page/component/action.rb +13 -5
- data/lib/ecoportal/api/v2/page/component/action_field.rb +37 -2
- data/lib/ecoportal/api/v2/page/component/chart_field.rb +39 -5
- data/lib/ecoportal/api/v2/page/component/chart_field/benchmark.rb +9 -7
- data/lib/ecoportal/api/v2/page/component/chart_field/config.rb +23 -0
- data/lib/ecoportal/api/v2/page/component/chart_field/frequency.rb +3 -4
- data/lib/ecoportal/api/v2/page/component/chart_field/heatmap.rb +1 -3
- data/lib/ecoportal/api/v2/page/component/chart_field/indicator.rb +4 -5
- data/lib/ecoportal/api/v2/page/component/chart_field/multiseries.rb +3 -5
- data/lib/ecoportal/api/v2/page/component/chart_field/sankey.rb +1 -3
- data/lib/ecoportal/api/v2/page/component/chart_field/serie.rb +3 -4
- data/lib/ecoportal/api/v2/page/component/chart_field/series_config.rb +5 -7
- data/lib/ecoportal/api/v2/page/component/chart_fr_field.rb +7 -5
- data/lib/ecoportal/api/v2/page/component/checklist_field.rb +1 -1
- data/lib/ecoportal/api/v2/page/component/checklist_item.rb +3 -2
- data/lib/ecoportal/api/v2/page/component/date_field.rb +71 -4
- data/lib/ecoportal/api/v2/page/component/file.rb +3 -2
- data/lib/ecoportal/api/v2/page/component/gauge_field.rb +2 -2
- data/lib/ecoportal/api/v2/page/component/geo_coordinates.rb +13 -0
- data/lib/ecoportal/api/v2/page/component/geo_field.rb +4 -1
- data/lib/ecoportal/api/v2/page/component/images_field.rb +57 -1
- data/lib/ecoportal/api/v2/page/component/people_field.rb +102 -4
- data/lib/ecoportal/api/v2/page/component/plain_text_field.rb +34 -2
- data/lib/ecoportal/api/v2/page/component/reference_field.rb +32 -3
- data/lib/ecoportal/api/v2/page/component/selection_field.rb +59 -3
- data/lib/ecoportal/api/v2/page/component/selection_option.rb +2 -1
- data/lib/ecoportal/api/v2/page/component/tag_field.rb +31 -1
- data/lib/ecoportal/api/v2/page/components.rb +8 -3
- data/lib/ecoportal/api/v2/page/permission_flags.rb +67 -0
- data/lib/ecoportal/api/v2/page/section.rb +65 -5
- data/lib/ecoportal/api/v2/page/sections.rb +64 -6
- data/lib/ecoportal/api/v2/page/stage.rb +10 -6
- data/lib/ecoportal/api/v2/page/stages.rb +2 -2
- data/lib/ecoportal/api/v2/pages/page_stage.rb +0 -1
- data/lib/ecoportal/api/v2_version.rb +1 -1
- metadata +6 -2
@@ -7,26 +7,84 @@ module Ecoportal
|
|
7
7
|
|
8
8
|
self.klass = :section_class
|
9
9
|
|
10
|
+
# Creates a new `section`
|
10
11
|
def add(name: nil, split: false, pos: NOT_USED, before: NOT_USED, after: NOT_USED)
|
11
12
|
sec_doc = section_class.new_doc(split: split)
|
12
|
-
upsert!(sec_doc
|
13
|
+
upsert!(sec_doc) do |section| #, pos: pos, before: before, after: after) do |section|
|
13
14
|
section.heading = name
|
14
|
-
if
|
15
|
-
section.weight =
|
15
|
+
if weight = scope_weight(pos: pos, before: before, after: after)
|
16
|
+
section.weight = weight
|
16
17
|
end
|
18
|
+
fix_weights!
|
17
19
|
yield(section) if block_given?
|
18
|
-
#fix_weights! # a server bug prevents to set the weight of existing sections
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
23
|
+
def get_by_type(type)
|
24
|
+
ordered.select do |sec|
|
25
|
+
sec.type == type
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_by_heading(heading)
|
30
|
+
ordered.select do |sec|
|
31
|
+
value = heading == :unnamed ? nil : heading
|
32
|
+
same_string?(sec.heading, value)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# Gets all the sections between `sec1` and `sec2`
|
37
|
+
def between(sec1, sec2, included: false)
|
38
|
+
sorted_secs = ordered
|
39
|
+
pos1 = (sec1 = to_section(sec1)) && sorted_secs.index(sec1)
|
40
|
+
pos2 = (sec2 = to_section(sec2)) && sorted_secs.index(sec2)
|
41
|
+
if included
|
42
|
+
pos1 = pos1 ? pos1 : 0
|
43
|
+
pos2 = pos2 ? pos2 : -1
|
44
|
+
else
|
45
|
+
pos1 = pos1 ? (pos1 + 1) : 0
|
46
|
+
pos2 = pos2 ? (pos2 - 1) : -1
|
47
|
+
end
|
48
|
+
sorted_secs[pos1..pos2]
|
49
|
+
end
|
50
|
+
|
51
|
+
# Gets the sections ordered by `weight` (as they appear in the page)
|
22
52
|
def ordered
|
23
|
-
|
53
|
+
self.sort_by.with_index do |section, index|
|
24
54
|
(section.weight >= 9999) ? [index, index] : [section.weight, index]
|
25
|
-
end
|
55
|
+
end
|
26
56
|
end
|
27
57
|
|
28
58
|
private
|
29
59
|
|
60
|
+
def scope_weight(pos: NOT_USED, before: NOT_USED, after: NOT_USED)
|
61
|
+
case
|
62
|
+
when used_param?(pos)
|
63
|
+
if pos = to_section(pos)
|
64
|
+
pos.weight - 1
|
65
|
+
end
|
66
|
+
when used_param?(before)
|
67
|
+
if before = to_section(before)
|
68
|
+
before.weight - 1
|
69
|
+
end
|
70
|
+
when used_param?(after)
|
71
|
+
if after = to_section(after)
|
72
|
+
after.weight
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def to_section(value)
|
78
|
+
case value
|
79
|
+
when Ecoportal::API::V2::Page::Section
|
80
|
+
value
|
81
|
+
when Numeric
|
82
|
+
ordered[value]
|
83
|
+
else
|
84
|
+
get_by_heading(value).first
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
30
88
|
def fix_weights!
|
31
89
|
ordered.each_with_index do |section, index|
|
32
90
|
section.weight = index
|
@@ -5,13 +5,16 @@ module Ecoportal
|
|
5
5
|
class Stage < Common::Content::DoubleModel
|
6
6
|
passkey :id
|
7
7
|
passthrough :patch_ver
|
8
|
-
passthrough :
|
8
|
+
passthrough :name, :ordering
|
9
9
|
passarray :subtags, order_matters: false
|
10
10
|
passarray :section_ids
|
11
|
-
passthrough :
|
11
|
+
passthrough :status
|
12
|
+
passboolean :complete, :lock_after_completion
|
13
|
+
|
12
14
|
embeds_many :permits, klass: "Ecoportal::API::V2::Page::Permit"
|
13
|
-
|
14
|
-
|
15
|
+
passboolean :disable_direct_permissions
|
16
|
+
passboolean :creator_enabled, :creator_editable
|
17
|
+
embeds_one :creator_flags, klass: "Ecoportal::API::V2::Page::PermissionFlags"
|
15
18
|
passthrough :can
|
16
19
|
|
17
20
|
def sections
|
@@ -22,8 +25,9 @@ module Ecoportal
|
|
22
25
|
end.sort_by {|sec| sec.weight}
|
23
26
|
end
|
24
27
|
|
25
|
-
def
|
26
|
-
section_ids.insert_one(
|
28
|
+
def add_section(*secs)
|
29
|
+
secs.each {|sec| section_ids.insert_one(sec.id)}
|
30
|
+
self
|
27
31
|
end
|
28
32
|
|
29
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecoportal-api-v2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
11
|
+
date: 2021-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -176,6 +176,7 @@ files:
|
|
176
176
|
- lib/ecoportal/api/common/content/doc_helpers.rb
|
177
177
|
- lib/ecoportal/api/common/content/double_model.rb
|
178
178
|
- lib/ecoportal/api/common/content/hash_diff_patch.rb
|
179
|
+
- lib/ecoportal/api/common/content/model_helpers.rb
|
179
180
|
- lib/ecoportal/api/common/content/string_digest.rb
|
180
181
|
- lib/ecoportal/api/common/content/wrapped_response.rb
|
181
182
|
- lib/ecoportal/api/v2.rb
|
@@ -185,6 +186,7 @@ files:
|
|
185
186
|
- lib/ecoportal/api/v2/page/component/action_field.rb
|
186
187
|
- lib/ecoportal/api/v2/page/component/chart_field.rb
|
187
188
|
- lib/ecoportal/api/v2/page/component/chart_field/benchmark.rb
|
189
|
+
- lib/ecoportal/api/v2/page/component/chart_field/config.rb
|
188
190
|
- lib/ecoportal/api/v2/page/component/chart_field/frequency.rb
|
189
191
|
- lib/ecoportal/api/v2/page/component/chart_field/heatmap.rb
|
190
192
|
- lib/ecoportal/api/v2/page/component/chart_field/indicator.rb
|
@@ -200,6 +202,7 @@ files:
|
|
200
202
|
- lib/ecoportal/api/v2/page/component/files_field.rb
|
201
203
|
- lib/ecoportal/api/v2/page/component/gauge_field.rb
|
202
204
|
- lib/ecoportal/api/v2/page/component/gauge_stop.rb
|
205
|
+
- lib/ecoportal/api/v2/page/component/geo_coordinates.rb
|
203
206
|
- lib/ecoportal/api/v2/page/component/geo_field.rb
|
204
207
|
- lib/ecoportal/api/v2/page/component/image.rb
|
205
208
|
- lib/ecoportal/api/v2/page/component/images_field.rb
|
@@ -214,6 +217,7 @@ files:
|
|
214
217
|
- lib/ecoportal/api/v2/page/component/signature_field.rb
|
215
218
|
- lib/ecoportal/api/v2/page/component/tag_field.rb
|
216
219
|
- lib/ecoportal/api/v2/page/components.rb
|
220
|
+
- lib/ecoportal/api/v2/page/permission_flags.rb
|
217
221
|
- lib/ecoportal/api/v2/page/permit.rb
|
218
222
|
- lib/ecoportal/api/v2/page/section.rb
|
219
223
|
- lib/ecoportal/api/v2/page/sections.rb
|