0001-draft-28639.patch
tests/test_formdata.py | ||
---|---|---|
676 | 676 |
pub.substitutions.feed(formdata) |
677 | 677 |
for mode in (None, 'lazy'): |
678 | 678 |
assert WorkflowStatusItem.compute('=form_var_map') == '2;4' |
679 |
assert WorkflowStatusItem.compute('{{ form_var_map }}') == '2;4' |
|
679 | 680 |
assert WorkflowStatusItem.compute('=form_var_map.split(";")[0]') == '2' |
681 |
assert WorkflowStatusItem.compute('=form_var_map_lat') == '2' |
|
682 |
assert WorkflowStatusItem.compute('{{ form_var_map_lat }}') == '2' |
|
683 |
assert WorkflowStatusItem.compute('=form_var_map_lon') == '4' |
|
684 |
assert WorkflowStatusItem.compute('{{ form_var_map_lon }}') == '4' |
|
680 | 685 | |
681 | 686 |
formdata.data['7'] = None |
682 | 687 |
formdata.store() |
wcs/variables.py | ||
---|---|---|
307 | 307 | |
308 | 308 |
if field.key == 'date': |
309 | 309 |
return LazyFieldVarDate(self.data, field, self.formdata) |
310 |
if field.key == 'map': |
|
311 |
return LazyFieldVarMap(self.data, field, self.formdata) |
|
310 | 312 | |
311 | 313 |
return LazyFieldVar(self.data, field, self.formdata) |
312 | 314 | |
... | ... | |
438 | 440 |
return self.get_raw().tm_yday |
439 | 441 | |
440 | 442 | |
443 |
class LazyFieldVarMap(LazyFieldVar): |
|
444 |
@property |
|
445 |
def latlng(self): |
|
446 |
value = self.data.get(self.field.id) |
|
447 |
if not value or ';' not in value: |
|
448 |
return {'lat': '', 'lon': ''} |
|
449 |
lat, lon = value.split(';') |
|
450 |
try: |
|
451 |
lat = float(lat) |
|
452 |
lon = float(lon) |
|
453 |
except ValueError: |
|
454 |
return {'lat': '', 'lon': ''} |
|
455 |
return {'lat': lat, 'lon': lon} |
|
456 | ||
457 |
@property |
|
458 |
def lat(self): |
|
459 |
return self.latlng.get('lat') |
|
460 | ||
461 |
@property |
|
462 |
def lon(self): |
|
463 |
return self.latlng.get('lon') |
|
464 | ||
465 | ||
441 | 466 |
class LazyUser(object): |
442 | 467 |
def __init__(self, user): |
443 | 468 |
self.user = user |
444 |
- |