Mercurial > libervia-backend
diff sat/tools/common/template.py @ 3306:3af0909629a2
common (template): better json dumping:
default method is set for json dumping (the `tojson` filter), if the object has a `json`
attribute, it will be called, otherwise it is replaced by None, this avoids crash when
rendering the template.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 19 Jun 2020 15:45:57 +0200 |
parents | 430204a3cc10 |
children | 29f8122f00f3 |
line wrap: on
line diff
--- a/sat/tools/common/template.py Fri Jun 19 15:39:32 2020 +0200 +++ b/sat/tools/common/template.py Fri Jun 19 15:45:57 2020 +0200 @@ -451,6 +451,11 @@ # policies self.env.policies["ext.i18n.trimmed"] = True + self.env.policies["json.dumps_kwargs"] = { + "sort_keys": True, + # if object can't be serialised, we use None + "default": lambda o: o.json() if hasattr(o, "json") else None + } def getFrontURL(self, template_data, path=None): """Give front URL (i.e. URL seen by end-user) of a path