Skip to content
Snippets Groups Projects
Verified Commit ea703a7e authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Allow defining converter_pre and converter_post in templates

parent 849baba6
No related branches found
No related tags found
No related merge requests found
......@@ -32,22 +32,28 @@ class FieldType:
@classmethod
def get_converter(cls) -> Callable[[Any], Any]:
if not cls.converter:
return lambda val: val
else:
if isinstance(cls.converter, Sequence):
funcs = cls.converter
else:
funcs = [cls.converter]
funcs = [converter_registry.get_from_name(name) for name in funcs]
def _converter_chain(val: Any) -> Any:
new_val = val
for func in funcs:
new_val = func(new_val)
return new_val
return _converter_chain
converters_pre = cls.get_args().get("converter_pre", [])
if isinstance(converters_pre, str):
converters_pre = [converters_pre]
converters_post = cls.get_args().get("converter_post", [])
if isinstance(converters_post, str):
converters_post = [converters_post]
converters = cls.converter
if converters is None:
converters = []
elif isinstance(converters, str):
converters = [converters]
converters = converters_pre + converters + converters_post
funcs = [converter_registry.get_from_name(name) for name in converters]
def _converter_chain(val: Any) -> Any:
new_val = val
for func in funcs:
new_val = func(new_val)
return new_val
return _converter_chain
@classmethod
def get_alternative(cls) -> Optional[str]:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment