X-Git-Url: https://git.toastfreeware.priv.at/philipp/winterrodeln/wradmin.git/blobdiff_plain/3153a7277b4e90b56d346b0b95e86d4cb98ecaaf..cedf0a723df48ca40a2adf563e6241a7fff82dff:/wradmin/template_helper.py diff --git a/wradmin/template_helper.py b/wradmin/template_helper.py index b37571f..b9c1dda 100644 --- a/wradmin/template_helper.py +++ b/wradmin/template_helper.py @@ -1,7 +1,10 @@ +from typing import List from urllib.parse import quote_plus from flask import url_for, current_app import wrpylib.wrvalidators +from wrpylib.mwmarkup import create_template +from wrpylib.wrvalidators import LonLat, lonlat_to_str class PylonsHelper: @@ -59,3 +62,30 @@ class PylonsHelper: def public_transport(self, value): return wrpylib.wrvalidators.opt_public_transport_german_to_str(value) + + def json_position(self, value: dict) -> str: + lon_lat = LonLat(value['longitude'], value['latitude']) + return lonlat_to_str(lon_lat) + + def json_pos_ele_position(self, value: dict) -> str: + pos = value.get('position') + if pos is None: + return '' + return self.json_position(pos) + + def json_pos_ele_elevation(self, value: dict) -> str: + return value.get('elevation', '') + + def list_template(self, name: str, value: List[str]) -> str: + return str(create_template(name, value)) + + def json_template(self, value) -> str: + args = [] + kwargs = {} + for p in value.get('parameter', []): + v = p.get('value', '') + if 'key' in p: + kwargs[p['key']] = v + else: + args.append(v) + return str(create_template(value['name'], args, kwargs))