Merge pull request #1429 from Tagadda/configpanel-filter-ast

configpanel: filter in AppQuestion
This commit is contained in:
Alexandre Aubin 2022-01-31 03:13:48 +01:00 committed by GitHub
commit 67a293e03b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

View file

@ -14,7 +14,7 @@ i18n = "domain_config"
[feature.app]
[feature.app.default_app]
type = "app"
filters = ["is_webapp"]
filter = "is_webapp"
default = "_none"
[feature.mail]

View file

@ -440,7 +440,7 @@ class ConfigPanel:
"step",
"accept",
"redact",
"filters",
"filter",
],
"defaults": {},
},
@ -706,7 +706,7 @@ class Question:
self.ask = question.get("ask", {"en": self.name})
self.help = question.get("help")
self.redact = question.get("redact", False)
self.filters = question.get("filters", [])
self.filter = question.get("filter", "true")
# .current_value is the currently stored value
self.current_value = question.get("current_value")
# .value is the "proposed" value which we got from the user
@ -1142,12 +1142,13 @@ class AppQuestion(Question):
super().__init__(question, context, hooks)
apps = app_list(full=True)["apps"]
for _filter in self.filters:
apps = [app for app in apps if _filter in app and app[_filter]]
if self.filter:
apps = [app for app in apps if evaluate_simple_js_expression(self.filter, context=app)]
def _app_display(app):
domain_path = f" ({app['domain_path']})" if "domain_path" in app else ""
return app["label"] + domain_path
domain_path_or_id = f" ({app.get('domain_path', app['id'])})"
return app["label"] + domain_path_or_id
self.choices = {"_none": "---"}
self.choices.update({app["id"]: _app_display(app) for app in apps})