ecoportal-api-v2 0.8.5 → 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 +60 -25
- data/bin/console +1 -1
- data/ecoportal-api-v2.gemspec +5 -5
- data/lib/ecoportal/api-v2.rb +2 -2
- data/lib/ecoportal/api/common.v2.rb +8 -0
- 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 +15 -4
- 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 +2 -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 +43 -5
- data/lib/ecoportal/api/v2/page/component/chart_field/benchmark.rb +30 -0
- 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 +104 -6
- 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 +71 -4
- data/lib/ecoportal/api/v2/page/component/selection_option.rb +12 -2
- 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/permit.rb +14 -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 +11 -3
- data/lib/ecoportal/api/v2/page/stages.rb +7 -7
- data/lib/ecoportal/api/v2/pages/page_stage.rb +3 -3
- data/lib/ecoportal/api/v2_version.rb +5 -0
- metadata +16 -10
- data/lib/ecoportal/api/common.rb +0 -18
- data/lib/ecoportal/api/v2/version.rb +0 -7
@@ -34,6 +34,8 @@ module Ecoportal
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
require 'ecoportal/api/v2/page/permission_flags'
|
38
|
+
require 'ecoportal/api/v2/page/permit'
|
37
39
|
require 'ecoportal/api/v2/page/component'
|
38
40
|
require 'ecoportal/api/v2/page/components'
|
39
41
|
require 'ecoportal/api/v2/page/section'
|
@@ -59,7 +59,6 @@ module Ecoportal
|
|
59
59
|
when "checklist"
|
60
60
|
checklist_field_class
|
61
61
|
when "page_action","checklist_task"
|
62
|
-
#doc["type"] = "checklist_task"
|
63
62
|
action_field_class
|
64
63
|
when "file"
|
65
64
|
files_field_class
|
@@ -85,8 +84,9 @@ module Ecoportal
|
|
85
84
|
passkey :id
|
86
85
|
passthrough :patch_ver, :undeletable
|
87
86
|
passthrough :type, :label, :tooltip, :global_binding
|
88
|
-
|
89
|
-
passthrough :
|
87
|
+
passboolean :hidden, :deindex, :required
|
88
|
+
passthrough :accent
|
89
|
+
passboolean :hide_view, :hidden_on_reports, :hidden_on_mobile
|
90
90
|
passarray :refs
|
91
91
|
|
92
92
|
def ref_backend
|
@@ -107,6 +107,36 @@ module Ecoportal
|
|
107
107
|
self.class.indexable_label(label)
|
108
108
|
end
|
109
109
|
|
110
|
+
# Quick config helper
|
111
|
+
# @param conf [Symbol, Array<Symbol>]
|
112
|
+
# - `:required`
|
113
|
+
# - `:hide_view` to hide in view mode
|
114
|
+
# - `:hide_mobile` to hide in mobile app
|
115
|
+
# - `:hide_reports` to hide in reports
|
116
|
+
# - `:global` to define a global binding
|
117
|
+
def configure(*conf)
|
118
|
+
conf.each_with_object([]) do |cnf, unused|
|
119
|
+
case cnf
|
120
|
+
when :required
|
121
|
+
self.required = true
|
122
|
+
when :hide_view
|
123
|
+
self.hide_view = true
|
124
|
+
when :hide_mobile
|
125
|
+
self.hidden_on_mobile = true
|
126
|
+
when :hide_reports
|
127
|
+
self.hidden_on_reports = true
|
128
|
+
when Hash
|
129
|
+
if cnf.key?(:global)
|
130
|
+
self.global_binding = cnf[:global]
|
131
|
+
end
|
132
|
+
else
|
133
|
+
unused.push(cnf)
|
134
|
+
end
|
135
|
+
end.tap do |unused|
|
136
|
+
raise "Unsupported configuration options '#{unused}' for #{self.class}" unless unused.empty?
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
110
140
|
end
|
111
141
|
end
|
112
142
|
end
|
@@ -12,14 +12,22 @@ module Ecoportal
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
passkey :id
|
17
17
|
passthrough :patch_ver, :name
|
18
|
-
passthrough :weight, :
|
19
|
-
|
20
|
-
|
18
|
+
passthrough :weight, :other_information
|
19
|
+
passboolean :complete
|
20
|
+
|
21
21
|
passdate :created_at, read_only: true #, :completed_at
|
22
|
-
|
22
|
+
passthrough :created_by, read_only: true
|
23
|
+
passthrough :assigned_person_member_id, :assigned_person_member
|
24
|
+
|
25
|
+
passdate :due_date, :reminder_date
|
26
|
+
passboolean :overdue, read_only: true
|
27
|
+
|
28
|
+
passthrough :duration_in_days, read_only: true
|
29
|
+
passarray :file_container_ids
|
30
|
+
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -4,9 +4,9 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ActionField < Page::Component
|
7
|
-
|
7
|
+
passboolean :create_actions
|
8
8
|
passthrough :required_number_of_completed_actions
|
9
|
-
|
9
|
+
passboolean :permits_and_rules_integration, :add_subscribed, :add_subscribed_to_tasks
|
10
10
|
|
11
11
|
embeds_many :actions, klass: "Ecoportal::API::V2::Page::Component::Action", order_key: :weight
|
12
12
|
|
@@ -30,8 +30,43 @@ module Ecoportal
|
|
30
30
|
end.map(&:first)
|
31
31
|
end
|
32
32
|
|
33
|
+
# Quick config helper
|
34
|
+
# @param conf [Symbol, Array<Symbol>]
|
35
|
+
# - `:requires` required number of completed actions
|
36
|
+
# - `:all`
|
37
|
+
# - `#Number`
|
38
|
+
def configure(*conf)
|
39
|
+
self.create_actions = true
|
40
|
+
conf.each_with_object([]) do |cnf, unused|
|
41
|
+
case cnf
|
42
|
+
when Hash
|
43
|
+
supported = [:requires]
|
44
|
+
unless (rest = hash_except(cnf.dup, *supported)).empty?
|
45
|
+
unused.push(rest)
|
46
|
+
end
|
47
|
+
if cnf.key?(:requires) then configure_required(cnf[:requires]) end
|
48
|
+
else
|
49
|
+
unused.push(cnf)
|
50
|
+
end
|
51
|
+
end.yield_self do |unused|
|
52
|
+
super(*unused)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
33
56
|
private
|
34
57
|
|
58
|
+
def configure_required(req)
|
59
|
+
self.required = true
|
60
|
+
case req
|
61
|
+
when :all, NilClass
|
62
|
+
self.required_number_of_completed_actions = "all"
|
63
|
+
when Numeric
|
64
|
+
self.required_number_of_completed_actions = req
|
65
|
+
else
|
66
|
+
# Unsupported
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
35
70
|
def fix_task_weights!
|
36
71
|
ordered_tasks.each_with_index do |task, index|
|
37
72
|
task.weight = index
|
@@ -5,10 +5,14 @@ module Ecoportal
|
|
5
5
|
class Component
|
6
6
|
class ChartField < Page::Component
|
7
7
|
passthrough :mode
|
8
|
-
|
9
|
-
passthrough :
|
8
|
+
passboolean :relative, :bounded
|
9
|
+
passthrough :relstart, :relbound
|
10
|
+
passthrough :ubound, :lbound
|
11
|
+
|
10
12
|
passthrough :filter_date_input
|
11
|
-
|
13
|
+
|
14
|
+
passthrough :user_id, :user_lookup
|
15
|
+
passboolean :lock_chart_user
|
12
16
|
|
13
17
|
embeds_one :series_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::SeriesConfig"
|
14
18
|
embeds_one :frequency_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Frequency"
|
@@ -16,13 +20,22 @@ module Ecoportal
|
|
16
20
|
embeds_one :sankey_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Sankey"
|
17
21
|
embeds_one :indicator_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Indicator"
|
18
22
|
embeds_one :faceted_series_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Multiseries"
|
23
|
+
embeds_one :benchmark_config, klass: "Ecoportal::API::V2::Page::Component::ChartField::Benchmark"
|
19
24
|
|
20
25
|
embeds_many :series, klass: "Ecoportal::API::V2::Page::Component::ChartField::Serie"
|
21
26
|
|
22
|
-
MODES = ["frequency", "series", "heatmap", "sankey", "indicator", "faceted_series"]
|
27
|
+
MODES = ["frequency", "series", "heatmap", "sankey", "indicator", "faceted_series", "benchmark"]
|
28
|
+
|
29
|
+
def mode=(value)
|
30
|
+
raise "Unsuported mode #{value}. Should be one of #{MODES}" unless MODES.include?(value)
|
31
|
+
config_doc(nil)
|
32
|
+
doc["mode"] = value
|
33
|
+
config_doc(config.class.new_doc)
|
34
|
+
self.mode
|
35
|
+
end
|
23
36
|
|
24
37
|
def config
|
25
|
-
case mode
|
38
|
+
case self.mode
|
26
39
|
when "frequency"
|
27
40
|
frequency_config
|
28
41
|
when "series"
|
@@ -35,6 +48,29 @@ module Ecoportal
|
|
35
48
|
indicator_config
|
36
49
|
when "faceted_series"
|
37
50
|
faceted_series_config
|
51
|
+
when "benchmark"
|
52
|
+
benchmark_config
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def config_doc(value)
|
59
|
+
case self.mode
|
60
|
+
when "frequency"
|
61
|
+
doc["frequency_config"] = value
|
62
|
+
when "series"
|
63
|
+
doc["series_config"] = value
|
64
|
+
when "heatmap"
|
65
|
+
doc["heatmap_config"] = value
|
66
|
+
when "sankey"
|
67
|
+
doc["sankey_config"] = value
|
68
|
+
when "indicator"
|
69
|
+
doc["indicator_config"] = value
|
70
|
+
when "faceted_series"
|
71
|
+
doc["faceted_series_config"] = value
|
72
|
+
when "benchmark"
|
73
|
+
doc["benchmark_config"] = value
|
38
74
|
end
|
39
75
|
end
|
40
76
|
|
@@ -45,6 +81,7 @@ module Ecoportal
|
|
45
81
|
end
|
46
82
|
end
|
47
83
|
|
84
|
+
require 'ecoportal/api/v2/page/component/chart_field/config'
|
48
85
|
require 'ecoportal/api/v2/page/component/chart_field/frequency'
|
49
86
|
require 'ecoportal/api/v2/page/component/chart_field/series_config'
|
50
87
|
require 'ecoportal/api/v2/page/component/chart_field/serie'
|
@@ -52,3 +89,4 @@ require 'ecoportal/api/v2/page/component/chart_field/heatmap'
|
|
52
89
|
require 'ecoportal/api/v2/page/component/chart_field/sankey'
|
53
90
|
require 'ecoportal/api/v2/page/component/chart_field/indicator'
|
54
91
|
require 'ecoportal/api/v2/page/component/chart_field/multiseries'
|
92
|
+
require 'ecoportal/api/v2/page/component/chart_field/benchmark'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Benchmark < ChartField::Config
|
8
|
+
passthrough :register_id, :source_type
|
9
|
+
|
10
|
+
passthrough :benchmark_field, :benchmark_label
|
11
|
+
|
12
|
+
passboolean :across
|
13
|
+
passthrough :across_field
|
14
|
+
|
15
|
+
passboolean :grouped
|
16
|
+
passthrough :group_field
|
17
|
+
|
18
|
+
passthrough :against_field, :against_label
|
19
|
+
|
20
|
+
passthrough :calculation_mode
|
21
|
+
passthrough :min, :max
|
22
|
+
|
23
|
+
passthrough :filters
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Ecoportal
|
2
|
+
module API
|
3
|
+
class V2
|
4
|
+
class Page
|
5
|
+
class Component
|
6
|
+
class ChartField
|
7
|
+
class Config < Common::Content::DoubleModel
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def new_doc
|
11
|
+
{"id" => new_uuid}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
passkey :id
|
16
|
+
passthrough :patch_ver
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -4,9 +4,7 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class Frequency <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
7
|
+
class Frequency < ChartField::Config
|
10
8
|
passthrough :register_id, :source_type
|
11
9
|
|
12
10
|
passthrough :mode, :input
|
@@ -14,7 +12,8 @@ module Ecoportal
|
|
14
12
|
passthrough :secondary
|
15
13
|
|
16
14
|
passthrough :output, :bar_mode
|
17
|
-
passthrough :series_size
|
15
|
+
passthrough :series_size
|
16
|
+
passboolean :skip_zeroes
|
18
17
|
|
19
18
|
passarray :filters, :people_filters, :task_filters, order_matters: false
|
20
19
|
|
@@ -4,9 +4,7 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class Heatmap <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
7
|
+
class Heatmap < ChartField::Config
|
10
8
|
passthrough :register_id, :source_type
|
11
9
|
|
12
10
|
passthrough :xinput, :xmode
|
@@ -4,15 +4,14 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class Indicator <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
7
|
+
class Indicator < ChartField::Config
|
10
8
|
passthrough :register_id, :source_type
|
11
9
|
|
12
10
|
passthrough :date_input, :secondary
|
13
|
-
passthrough :duration, :math_mode
|
11
|
+
passthrough :duration, :math_mode
|
14
12
|
|
15
|
-
|
13
|
+
passboolean :currency, :display_previous, :invert_colors
|
14
|
+
passthrough :change_format
|
16
15
|
|
17
16
|
passarray :filters, :people_filters, :task_filters, order_matters: false
|
18
17
|
|
@@ -4,17 +4,15 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class Multiseries <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
7
|
+
class Multiseries < ChartField::Config
|
10
8
|
passthrough :register_id, :source_type
|
11
9
|
|
12
10
|
passthrough :xinput, :xlabel
|
13
11
|
passthrough :interval, :calc_mode
|
14
12
|
|
15
13
|
passthrough :yinput, :ylabel
|
16
|
-
|
17
|
-
passthrough :
|
14
|
+
passboolean :facet_by_discrete, :facet_by_tags
|
15
|
+
passthrough :discrete_facet
|
18
16
|
passarray :facet_tags
|
19
17
|
|
20
18
|
passarray :filters, :people_filters, :task_filters, order_matters: false
|
@@ -4,9 +4,7 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class Sankey <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
7
|
+
class Sankey < ChartField::Config
|
10
8
|
passthrough :register_id, :source_type
|
11
9
|
|
12
10
|
passthrough :xinput, :xmode
|
@@ -4,15 +4,14 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class Serie <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
7
|
+
class Serie < ChartField::Config
|
10
8
|
passthrough :register_id
|
11
9
|
|
12
10
|
passthrough :input, :type
|
13
11
|
passarray :y_axes
|
14
12
|
|
15
|
-
passthrough :visual
|
13
|
+
passthrough :visual
|
14
|
+
passboolean :stacked
|
16
15
|
|
17
16
|
passarray :filters, :people_filters, :task_filters, order_matters: false
|
18
17
|
|
@@ -4,16 +4,14 @@ module Ecoportal
|
|
4
4
|
class Page
|
5
5
|
class Component
|
6
6
|
class ChartField
|
7
|
-
class SeriesConfig <
|
8
|
-
passkey :id
|
9
|
-
passthrough :patch_ver
|
10
|
-
|
7
|
+
class SeriesConfig < ChartField::Config
|
11
8
|
passthrough :xlabel, :xtype
|
12
|
-
passthrough :interval, :calc_mode, :comparative_year
|
13
9
|
passthrough :ylabel
|
10
|
+
passthrough :interval, :calc_mode
|
11
|
+
passboolean :comparative_year
|
14
12
|
|
15
|
-
|
16
|
-
|
13
|
+
passboolean :filled_up_with_zeros, :zero_y, :bounds_rigid
|
14
|
+
passboolean :stack_all
|
17
15
|
end
|
18
16
|
end
|
19
17
|
end
|
@@ -7,16 +7,18 @@ module Ecoportal
|
|
7
7
|
passthrough :register_id, :date_input
|
8
8
|
passthrough :filter
|
9
9
|
|
10
|
-
|
11
|
-
passthrough :select_input, :select_mapping
|
10
|
+
passboolean :facet_by_tag, :facet_by_select
|
12
11
|
passarray :facet_tags
|
12
|
+
passthrough :select_input, :select_mapping
|
13
13
|
|
14
|
-
|
15
|
-
passthrough :
|
14
|
+
passboolean :relative, :bounded
|
15
|
+
passthrough :relstart, :relbound
|
16
|
+
passthrough :ubound, :lbound
|
16
17
|
|
17
18
|
passthrough :display_mode, :display_type
|
18
19
|
passarray :guidelines
|
19
|
-
|
20
|
+
passboolean :cumulative
|
21
|
+
passthrough :cumulative_mode, :cumulative_start
|
20
22
|
passthrough :multiplier, :granularity
|
21
23
|
|
22
24
|
passthrough :color
|