Projet

Général

Profil

0001-draft-28639.patch

Thomas Noël, 05 décembre 2018 17:01

Télécharger (2,36 ko)

Voir les différences:

Subject: [PATCH] draft #28639

 tests/test_formdata.py |  5 +++++
 wcs/variables.py       | 25 +++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
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
-