@@ -122,6 +122,7 @@ class ChallengeDAL @Inject() (
122
122
get[Boolean ](" deleted" ) ~
123
123
get[Boolean ](" challenges.is_archived" ) ~
124
124
get[Int ](" challenges.review_setting" ) ~
125
+ get[Option [String ]](" challenges.dataset_url" ) ~
125
126
get[Option [JsValue ]](" challenges.task_widget_layout" ) ~
126
127
get[Option [Int ]](" challenges.completion_percentage" ) ~
127
128
get[Option [Int ]](" challenges.tasks_remaining" ) map {
@@ -132,7 +133,7 @@ class ChallengeDAL @Inject() (
132
133
minZoom ~ maxZoom ~ defaultBasemap ~ defaultBasemapId ~ customBasemap ~ updateTasks ~
133
134
exportableProperties ~ osmIdProperty ~ taskBundleIdProperty ~ preferredTags ~ preferredReviewTags ~
134
135
limitTags ~ limitReviewTags ~ taskStyles ~ lastTaskRefresh ~ dataOriginDate ~ location ~ bounding ~
135
- requiresLocal ~ deleted ~ isArchived ~ reviewSetting ~ taskWidgetLayout ~ completionPercentage ~ tasksRemaining =>
136
+ requiresLocal ~ deleted ~ isArchived ~ reviewSetting ~ datasetUrl ~ taskWidgetLayout ~ completionPercentage ~ tasksRemaining =>
136
137
val hpr = highPriorityRule match {
137
138
case Some (c) if StringUtils .isEmpty(c) || StringUtils .equals(c, " {}" ) => None
138
139
case r => r
@@ -189,7 +190,8 @@ class ChallengeDAL @Inject() (
189
190
taskBundleIdProperty,
190
191
isArchived,
191
192
reviewSetting,
192
- taskWidgetLayout
193
+ taskWidgetLayout,
194
+ datasetUrl
193
195
),
194
196
status,
195
197
statusMessage,
@@ -259,6 +261,7 @@ class ChallengeDAL @Inject() (
259
261
get[Option [List [String ]]](" presets" ) ~
260
262
get[Boolean ](" challenges.is_archived" ) ~
261
263
get[Int ](" challenges.review_setting" ) ~
264
+ get[Option [String ]](" challenges.dataset_url" ) ~
262
265
get[Option [JsValue ]](" challenges.task_widget_layout" ) ~
263
266
get[Option [DateTime ]](" challenges.system_archived_at" ) ~
264
267
get[Option [Int ]](" challenges.completion_percentage" ) ~
@@ -271,7 +274,7 @@ class ChallengeDAL @Inject() (
271
274
customBasemap ~ updateTasks ~ exportableProperties ~ osmIdProperty ~ taskBundleIdProperty ~ preferredTags ~
272
275
preferredReviewTags ~ limitTags ~ limitReviewTags ~ taskStyles ~ lastTaskRefresh ~
273
276
dataOriginDate ~ location ~ bounding ~ requiresLocal ~ deleted ~ virtualParents ~
274
- presets ~ isArchived ~ reviewSetting ~ taskWidgetLayout ~ systemArchivedAt ~ completionPercentage ~ tasksRemaining =>
277
+ presets ~ isArchived ~ reviewSetting ~ datasetUrl ~ taskWidgetLayout ~ systemArchivedAt ~ completionPercentage ~ tasksRemaining =>
275
278
val hpr = highPriorityRule match {
276
279
case Some (c) if StringUtils .isEmpty(c) || StringUtils .equals(c, " {}" ) => None
277
280
case r => r
@@ -329,6 +332,7 @@ class ChallengeDAL @Inject() (
329
332
isArchived,
330
333
reviewSetting,
331
334
taskWidgetLayout,
335
+ datasetUrl,
332
336
systemArchivedAt,
333
337
presets
334
338
),
@@ -481,7 +485,7 @@ class ChallengeDAL @Inject() (
481
485
medium_priority_rule, low_priority_rule, default_zoom, min_zoom, max_zoom,
482
486
default_basemap, default_basemap_id, custom_basemap, updatetasks, exportable_properties,
483
487
osm_id_property, task_bundle_id_property, last_task_refresh, data_origin_date, preferred_tags, preferred_review_tags,
484
- limit_tags, limit_review_tags, task_styles, requires_local, is_archived, review_setting, task_widget_layout)
488
+ limit_tags, limit_review_tags, task_styles, requires_local, is_archived, review_setting, dataset_url, task_widget_layout)
485
489
VALUES ( ${challenge.name}, ${challenge.general.owner}, ${challenge.general.parent}, ${challenge.general.difficulty},
486
490
${challenge.description}, ${challenge.infoLink}, ${challenge.general.blurb}, ${challenge.general.instruction},
487
491
${challenge.general.enabled}, ${challenge.general.featured},
@@ -495,7 +499,7 @@ class ChallengeDAL @Inject() (
495
499
${challenge.dataOriginDate.getOrElse(DateTime .now()).toString}::timestamptz,
496
500
${challenge.extra.preferredTags}, ${challenge.extra.preferredReviewTags}, ${challenge.extra.limitTags},
497
501
${challenge.extra.limitReviewTags}, ${challenge.extra.taskStyles}, ${challenge.general.requiresLocal}, ${challenge.extra.isArchived},
498
- ${challenge.extra.reviewSetting},
502
+ ${challenge.extra.reviewSetting}, ${challenge.extra.datasetUrl} ,
499
503
${asJson(challenge.extra.taskWidgetLayout.getOrElse(Json .parse(" {}" )))}
500
504
) ON CONFLICT(parent_id, LOWER(name)) DO NOTHING RETURNING # ${this .retrieveColumns}"""
501
505
.as(this .parser.* )
@@ -683,6 +687,10 @@ class ChallengeDAL @Inject() (
683
687
.asOpt[Int ]
684
688
.getOrElse(cachedItem.extra.reviewSetting)
685
689
690
+ val datasetUrl = (updates \ " datasetUrl" )
691
+ .asOpt[String ]
692
+ .getOrElse(cachedItem.extra.datasetUrl)
693
+
686
694
val taskWidgetLayout = (updates \ " taskWidgetLayout" )
687
695
.asOpt[JsValue ]
688
696
.getOrElse(cachedItem.extra.taskWidgetLayout.getOrElse(Json .parse(" {}" )))
0 commit comments