Skip to content

Commit 280d70c

Browse files
committed
Add more challenge properties
1 parent 6660f05 commit 280d70c

File tree

1 file changed

+160
-2
lines changed

1 file changed

+160
-2
lines changed

maproulette/models/challenge.py

+160-2
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,24 @@ def default_priority(self):
116116
def default_priority(self, value):
117117
self._default_priority = value
118118

119+
@property
120+
def high_priority_rule(self):
121+
"""The high priority for this challenge"""
122+
return self._high_priority_rule
123+
124+
@high_priority_rule.setter
125+
def high_priority_rule(self, value):
126+
self._high_priority_rule = value
127+
128+
@property
129+
def low_priority_rule(self):
130+
"""The low priority of this challenge"""
131+
return self._low_priority_rule
132+
133+
@low_priority_rule.setter
134+
def low_priority_rule(self, value):
135+
self._low_priority_rule = value
136+
119137
@property
120138
def default_zoom(self):
121139
"""The default zoom level for this challenge"""
@@ -152,9 +170,121 @@ def osm_id_property(self):
152170
def osm_id_property(self, value):
153171
self._osm_id_property = value
154172

173+
@property
174+
def cooperative_type(self):
175+
""""""
176+
return self._cooperative_type
177+
178+
@cooperative_type.setter
179+
def cooperative_type(self, value):
180+
self._cooperative_type = value
181+
182+
@property
183+
def popularity(self):
184+
"""The popularity of a challenge"""
185+
return self._popularity
186+
187+
@popularity.setter
188+
def popularity(self, value):
189+
self._popularity = value
190+
191+
@property
192+
def check_in_comment(self):
193+
"""Comment to be associated with changes made by users"""
194+
return self._check_in_comment
195+
196+
@check_in_comment.setter
197+
def check_in_comment(self, value):
198+
self._check_in_comment = value
199+
200+
@property
201+
def check_in_source(self):
202+
"""Hashtag appended to changeset comments"""
203+
return self._check_in_source
204+
205+
@check_in_source.setter
206+
def check_in_source(self, value):
207+
self._check_in_source = value
208+
209+
@property
210+
def requires_local(self):
211+
"""Whether or not tasks require local knowledge to complete"""
212+
return self._requires_local
213+
214+
@requires_local.setter
215+
def requires_local(self, value):
216+
self._requires_local = value
217+
218+
@property
219+
def default_basemap(self):
220+
"""The default basemap to use for this challenge"""
221+
return self._default_basemap
222+
223+
@default_basemap.setter
224+
def default_basemap(self, value):
225+
self._default_basemap = value
226+
227+
@property
228+
def default_basemap_id(self):
229+
"""The id of the default basemap"""
230+
return self._default_basemap_id
231+
232+
@default_basemap_id.setter
233+
def default_basemap_id(self, value):
234+
self._default_basemap_id = value
235+
236+
@property
237+
def custom_basemap(self):
238+
"""The custom basemap of this challenge"""
239+
return self._custom_basemap
240+
241+
@custom_basemap.setter
242+
def custom_basemap(self, value):
243+
self._custom_basemap = value
244+
245+
@property
246+
def update_tasks(self):
247+
"""Whether or not to periodically delete old tasks"""
248+
return self._update_tasks
249+
250+
@update_tasks.setter
251+
def update_tasks(self, value):
252+
self._update_tasks = value
253+
254+
@property
255+
def exportable_properties(self):
256+
"""Comma separated list of properties to be exportable"""
257+
return self._exportable_properties
258+
259+
@exportable_properties.setter
260+
def exportable_properties(self, value):
261+
self._exportable_properties = value
262+
263+
@property
264+
def preferred_tags(self):
265+
"""List of preferred tags the user can use when completing tasks"""
266+
return self._preferred_tags
267+
268+
@preferred_tags.setter
269+
def preferred_tags(self, value):
270+
self._preferred_tags = value
271+
272+
@property
273+
def task_styles(self):
274+
"""Custom task styling based on specific task feature properties"""
275+
return self._task_styles
276+
277+
@task_styles.setter
278+
def task_styles(self, value):
279+
self._task_styles = value
280+
155281
def __init__(self, name, id=None, description=None, parent=None, instruction=None, difficulty=None, blurb=None,
156282
enabled=None, challenge_type=None, featured=None, overpassQL=None, default_priority=None,
157-
default_zoom=None, min_zoom=None, max_zoom=None, osm_id_property=None):
283+
high_priority_rule=None, low_priority_rule=None, default_zoom=None, min_zoom=None, max_zoom=None,
284+
osm_id_property=None, cooperative_type=None, popularity=None, check_in_comment=None,
285+
check_in_source=None, requires_local=None, default_basemap=None, default_basemap_id=None,
286+
custom_basemap=None, update_tasks=None, exportable_properties=None, preferred_tags=None,
287+
task_styles=None):
158288
self._id = id
159289
self._name = name
160290
self._description = description
@@ -167,10 +297,24 @@ def __init__(self, name, id=None, description=None, parent=None, instruction=Non
167297
self._featured = featured
168298
self._overpassQL = overpassQL
169299
self._default_priority = default_priority
300+
self._high_priority_rule = high_priority_rule
301+
self._low_priority_rule = low_priority_rule
170302
self._default_zoom = default_zoom
171303
self._min_zoom = min_zoom
172304
self._max_zoom = max_zoom
173305
self._osm_id_property = osm_id_property
306+
self._cooperative_type = cooperative_type
307+
self._popularity = popularity
308+
self._check_in_comment = check_in_comment
309+
self._check_in_source = check_in_source
310+
self._requires_local = requires_local
311+
self._default_basemap = default_basemap
312+
self._default_basemap_id = default_basemap_id
313+
self._custom_basemap = custom_basemap
314+
self._update_tasks = update_tasks
315+
self._exportable_properties = exportable_properties
316+
self._preferred_tags = preferred_tags
317+
self._task_styles = task_styles
174318

175319
def to_dict(self):
176320
"""Converts all non-null properties of a challenge object into a dictionary"""
@@ -188,10 +332,24 @@ def to_dict(self):
188332
"featured": self._featured,
189333
"overpassQL": self._overpassQL,
190334
"defaultPriority": self._default_priority,
335+
"highPriorityRule": self._high_priority_rule,
336+
"lowPriorityRule": self._low_priority_rule,
191337
"defaultZoom": self._default_zoom,
192338
"minZoom": self._min_zoom,
193339
"maxZoom": self._max_zoom,
194-
"osmIdProperty": self._osm_id_property
340+
"osmIdProperty": self._osm_id_property,
341+
"cooperativeType": self._cooperative_type,
342+
"popularity": self._popularity,
343+
"checkInComment": self._check_in_comment,
344+
"checkInSource": self._check_in_source,
345+
"requiresLocal": self._requires_local,
346+
"defaultBasemap": self._default_basemap,
347+
"defautlBasemapId": self._default_basemap_id,
348+
"customBasemap": self._custom_basemap,
349+
"updateTasks": self._update_tasks,
350+
"exportableProperties": self._exportable_properties,
351+
"preferredTags": self._preferred_tags,
352+
"taskStyles": self._task_styles
195353
}
196354
return {k: v for (k, v) in properties.items() if v is not None}
197355

0 commit comments

Comments
 (0)