jekyll-open-sdg-plugins 1.5.0 → 1.6.0.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9b70242f00e6228710b67c6261811d51e3c0edba1c6f33161772d40773dcc7d
4
- data.tar.gz: f4d8497479c9f63841f8a9d256422a2e22bce3fee2697550d180aa915cbbda9e
3
+ metadata.gz: b37fec3e9d58774c1d4bb3b6102a3e37347e92c559e9eafacaa97d793d8584ce
4
+ data.tar.gz: b64a110e6f4f6da10c805e221ae3d591bbd65ae026baa5e7a835395790a2857f
5
5
  SHA512:
6
- metadata.gz: f979af1073ddf69197f32468b4ed9a9dbf1edf2e8df74f866e6484f6365cbd0da5ed592936556bd63233b96d8edd0a152a6e1b0d6223cd1380ffed0c62a16a93
7
- data.tar.gz: 7bf6a399bc7e04e65924754a9fe4622a003ec33ec218aa7f16cea093f42550534cc2ad543464d410d5f07d16f69113f394f5cf2928aef8d2448e95659f6a73d4
6
+ metadata.gz: 2297001ac108425e4ecb56bc59d16c63ddfc84c85588a67e65c0adde49d83d46db4d0cdc8dc2452700a0118f1cfc50de9b5f578c2e0749596a6835ebb60ad8e7
7
+ data.tar.gz: af31105e71d58e3193ab246a1c91e4f4fc04ee34e7013570631e0bcd899fe269f696687e71b7a10f5395cccfe14b935b512cfc7b06741eb1c185b03510ba744d
@@ -0,0 +1,61 @@
1
+ require "jekyll"
2
+ require_relative "helpers"
3
+
4
+ module JekyllOpenSdgPlugins
5
+ class BackwardsCompatibility < Jekyll::Generator
6
+ safe true
7
+ priority :low
8
+
9
+ def add_translation_keys(statuses, site)
10
+ statuses.each do |status|
11
+ status_var = 'value'
12
+ unless status.has_key?(status_var)
13
+ status_var = 'status'
14
+ end
15
+ status_in_site_config = site.config['reporting_status']['status_types'].detect {|s| s['value'] == status[status_var] }
16
+ if status_in_site_config.nil?
17
+ opensdg_notice('Unexpected reporting status type: ' + status[status_var] + '. Expected reporting status types:')
18
+ puts site.config['reporting_status']['status_types'].map { |s| s['value'] }
19
+ end
20
+ status['translation_key'] = status_in_site_config['label']
21
+ end
22
+ end
23
+
24
+ # This file is used to avoid any backwards compatibility issues
25
+ # as the Open SDG API changes over time.
26
+ def generate(site)
27
+
28
+ # Handle legacy treatment of reporting status types.
29
+ unless (site.config.has_key?('reporting_status') &&
30
+ site.config['reporting_status'].has_key?('status_types') &&
31
+ site.config['reporting_status']['status_types'].count > 0)
32
+ reporting_status = site.data['schema'].detect {|f| f['name'] == 'reporting_status' }
33
+ reporting_status_types = reporting_status['field']['options']
34
+ site.config['reporting_status']['status_types'] = reporting_status_types.map do |status_type|
35
+ {
36
+ 'value' => status_type['value'],
37
+ 'label' => status_type['translation_key'],
38
+ }
39
+ end
40
+ end
41
+
42
+ # Also fill in the "reporting" data with things needed by older templates.
43
+ add_translation_keys(site.data['reporting']['statuses'], site)
44
+ add_translation_keys(site.data['reporting']['overall']['statuses'], site)
45
+
46
+ if site.data['reporting'].has_key?('extra_fields')
47
+ site.data['reporting']['extra_fields'].each do |key, extra_field|
48
+ extra_field.each do |extra_field_value|
49
+ add_translation_keys(extra_field_value['statuses'], site)
50
+ end
51
+ end
52
+ end
53
+
54
+ if site.data['reporting'].has_key?('goals')
55
+ site.data['reporting']['goals'].each do |goal|
56
+ add_translation_keys(goal['statuses'], site)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -14,33 +14,6 @@ module JekyllOpenSdgPlugins
14
14
  form_settings_meta = site.config['indicator_metadata_form']
15
15
  form_settings_data = site.config['indicator_data_form']
16
16
 
17
- # Special treatment of repository_link settings: prefix them
18
- # with the repository_url_data site config if needed.
19
- repo_url = site.config['repository_url_data']
20
- if repo_url && repo_url != '' && repo_url.start_with?('http')
21
- if form_settings_config != nil && form_settings_config && form_settings_config['enabled']
22
- if form_settings_config['repository_link'] && form_settings_config['repository_link'] != ''
23
- unless form_settings_config['repository_link'].start_with?('http')
24
- form_settings_config['repository_link'] = repo_url + form_settings_config['repository_link']
25
- end
26
- end
27
- end
28
- if form_settings_meta != nil && form_settings_meta && form_settings_meta['enabled']
29
- if form_settings_meta['repository_link'] && form_settings_meta['repository_link'] != ''
30
- unless form_settings_meta['repository_link'].start_with?('http')
31
- form_settings_meta['repository_link'] = repo_url + form_settings_meta['repository_link']
32
- end
33
- end
34
- end
35
- if form_settings_data != nil && form_settings_data && form_settings_data['enabled']
36
- if form_settings_data['repository_link'] && form_settings_data['repository_link'] != ''
37
- unless form_settings_data['repository_link'].start_with?('http')
38
- form_settings_data['repository_link'] = repo_url + form_settings_data['repository_link']
39
- end
40
- end
41
- end
42
- end
43
-
44
17
  translations = site.data['translations']
45
18
  # If site.create_indicators is set, create indicators per the metadata.
46
19
  if (language_config and indicator_config and indicator_config.key?('layout') and indicator_config['layout'] != '')
@@ -81,15 +81,6 @@ module JekyllOpenSdgPlugins
81
81
  # Make sure the form settings are set.
82
82
  config_page = pages.find { |page| page['layout'] == 'config-builder' }
83
83
  if config_page != nil && form_settings && form_settings['enabled']
84
- # Special treatment of repository_link.
85
- if form_settings['repository_link'] && form_settings['repository_link'] != ''
86
- unless form_settings['repository_link'].start_with?('http')
87
- repo_url = site.config['repository_url_site']
88
- if repo_url && repo_url != '' && repo_url.start_with?('http')
89
- form_settings['repository_link'] = repo_url + form_settings['repository_link']
90
- end
91
- end
92
- end
93
84
  config_page['form_settings'] = form_settings
94
85
  end
95
86
 
@@ -613,11 +613,23 @@
613
613
  ]
614
614
  }
615
615
  },
616
+ "progress_status": {
617
+ "type": "string",
618
+ "title": "Progress status",
619
+ "enum": ["not_available", "challenges_remain", "approaching_target", "target_achieved"],
620
+ "description": "The progress status of the indicator.",
621
+ "links": [
622
+ {
623
+ "rel": "More information on the progress status setting",
624
+ "href": "https://open-sdg.readthedocs.io/en/latest/indicator-configuration/#progress-status"
625
+ }
626
+ ]
627
+ },
616
628
  "reporting_status": {
617
629
  "type": "string",
618
630
  "title": "Reporting status",
619
631
  "enum": ["complete", "inprogress", "notstarted", "notapplicable"],
620
- "description": "The status of the indicator.",
632
+ "description": "The reporting status of the indicator.",
621
633
  "links": [
622
634
  {
623
635
  "rel": "More information on the reporting status setting",
@@ -175,7 +175,8 @@
175
175
  "",
176
176
  "goal",
177
177
  "goal-by-target",
178
- "goal-by-target-vertical"
178
+ "goal-by-target-vertical",
179
+ "goal-with-progress"
179
180
  ],
180
181
  "options": {
181
182
  "enum_titles": [
@@ -328,7 +329,6 @@
328
329
  },
329
330
  "data_edit_url": {
330
331
  "type": "string",
331
- "minLength": 1,
332
332
  "title": "Data edit URL",
333
333
  "description": "This setting controls the URL of the 'Edit Data' buttons that appear on the staging site's indicator pages.",
334
334
  "links": [
@@ -1147,7 +1147,6 @@
1147
1147
  },
1148
1148
  "metadata_edit_url": {
1149
1149
  "type": "string",
1150
- "minLength": 1,
1151
1150
  "title": "Metadata edit URL",
1152
1151
  "description": "This setting controls the URL of the 'Edit Metadata' buttons that appear on the staging site's indicator pages.",
1153
1152
  "links": [
@@ -1224,6 +1223,58 @@
1224
1223
  }
1225
1224
  ]
1226
1225
  },
1226
+ "progress_status": {
1227
+ "options": {"collapsed": true},
1228
+ "type": "object",
1229
+ "title": "Progress status",
1230
+ "description": "This setting is used in the 'goal-with-progress' layout. It controls the behavior of progress status functionality.",
1231
+ "properties": {
1232
+ "status_heading": {
1233
+ "title": "Status heading",
1234
+ "type": "string",
1235
+ "description": "A heading to display before the progress status on indicator pages."
1236
+ },
1237
+ "status_types": {
1238
+ "options": {"collapsed": true},
1239
+ "type": "array",
1240
+ "title": "Status types",
1241
+ "description": "Controls the behavior and labels for the different progress status types.",
1242
+ "items": {
1243
+ "type": "object",
1244
+ "title": "Status type",
1245
+ "properties": {
1246
+ "value": {
1247
+ "type": "string",
1248
+ "minLength": 1,
1249
+ "title": "Value",
1250
+ "description": "The value of the status type, as it is set in the indicator configuration (eg, 'targetachieved')."
1251
+ },
1252
+ "label": {
1253
+ "type": "string",
1254
+ "title": "Label",
1255
+ "description": "The human-readable label for the status type. Can be a translation key (eg, 'status.target_achieved')."
1256
+ },
1257
+ "image": {
1258
+ "type": "string",
1259
+ "title": "Image",
1260
+ "description": "The internal path to the image to use (if any) for this progress status."
1261
+ },
1262
+ "alt": {
1263
+ "type": "string",
1264
+ "title": "Alt",
1265
+ "description": "An alt tag for the image above."
1266
+ }
1267
+ }
1268
+ }
1269
+ }
1270
+ },
1271
+ "links": [
1272
+ {
1273
+ "rel": "More information on the progress status setting",
1274
+ "href": "https://open-sdg.readthedocs.io/en/latest/configuration/#progress_status"
1275
+ }
1276
+ ]
1277
+ },
1227
1278
  "remote_data_prefix": {
1228
1279
  "type": "string",
1229
1280
  "minLength": 1,
@@ -1250,6 +1301,36 @@
1250
1301
  "type": "boolean",
1251
1302
  "description": "Whether or not to display disaggregation status tabs. If you enable this setting, you should also use 'expected_disaggregations' in your indicator configuration, in order to provide the disaggregation status report with useful metrics.",
1252
1303
  "format": "checkbox"
1304
+ },
1305
+ "status_types": {
1306
+ "options": {"collapsed": true},
1307
+ "type": "array",
1308
+ "title": "Status types",
1309
+ "description": "Controls the behavior and labels for the different reporting status types.",
1310
+ "items": {
1311
+ "type": "object",
1312
+ "title": "Status type",
1313
+ "properties": {
1314
+ "value": {
1315
+ "type": "string",
1316
+ "minLength": 1,
1317
+ "title": "Value",
1318
+ "description": "The value of the status type, as it is set in the indicator configuration (eg, 'complete')."
1319
+ },
1320
+ "label": {
1321
+ "type": "string",
1322
+ "minLength": 1,
1323
+ "title": "Label",
1324
+ "description": "The human-readable label for the status type. Can be a translation key (eg, 'status.reported_online')."
1325
+ },
1326
+ "hide_on_goal_pages": {
1327
+ "type": "boolean",
1328
+ "title": "Hide on goal pages",
1329
+ "description": "Whether to hide this status type on goal pages. Useful for the most commonly-occuring type.",
1330
+ "format": "checkbox"
1331
+ }
1332
+ }
1333
+ }
1253
1334
  }
1254
1335
  }
1255
1336
  }
@@ -1,3 +1,3 @@
1
1
  module JekyllOpenSdgPlugins
2
- VERSION = "1.5.0".freeze
2
+ VERSION = "1.6.0-beta1".freeze
3
3
  end
@@ -12,6 +12,7 @@ require_relative "jekyll-open-sdg-plugins/sdg_variables"
12
12
  require_relative "jekyll-open-sdg-plugins/search_index"
13
13
  require_relative "jekyll-open-sdg-plugins/validate_indicator_config"
14
14
  require_relative "jekyll-open-sdg-plugins/metadata_schema_to_config"
15
+ require_relative "jekyll-open-sdg-plugins/backwards_compatibility"
15
16
 
16
17
  module JekyllOpenSdgPlugins
17
18
  end
data/tests/_config.yml CHANGED
@@ -154,4 +154,15 @@ indicator_config_form:
154
154
  indicator_metadata_form:
155
155
  repository_link: https://github.com/open-sdg/open-sdg-data-starter/tree/develop/meta
156
156
  scopes:
157
- - national
157
+ - national
158
+
159
+ reporting_status:
160
+ status_types:
161
+ - value: complete
162
+ label: Complete
163
+ - value: notstarted
164
+ label: Not started
165
+ - value: inprogress
166
+ label: In progress
167
+ - value: notapplicable
168
+ label: Not applicable
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-open-sdg-plugins
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0.pre.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brock Fanning
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-15 00:00:00.000000000 Z
11
+ date: 2021-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -67,6 +67,7 @@ files:
67
67
  - README.md
68
68
  - jekyll-open-sdg-plugins.gemspec
69
69
  - lib/jekyll-open-sdg-plugins.rb
70
+ - lib/jekyll-open-sdg-plugins/backwards_compatibility.rb
70
71
  - lib/jekyll-open-sdg-plugins/create_goals.rb
71
72
  - lib/jekyll-open-sdg-plugins/create_indicators.rb
72
73
  - lib/jekyll-open-sdg-plugins/create_pages.rb
@@ -101,9 +102,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
102
  version: '0'
102
103
  required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  requirements:
104
- - - ">="
105
+ - - ">"
105
106
  - !ruby/object:Gem::Version
106
- version: '0'
107
+ version: 1.3.1
107
108
  requirements: []
108
109
  rubygems_version: 3.1.4
109
110
  signing_key: