diff --git a/frappe/tests/test_website.py b/frappe/tests/test_website.py
index aeb208c5a2..4cd39f4dd5 100644
--- a/frappe/tests/test_website.py
+++ b/frappe/tests/test_website.py
@@ -317,6 +317,22 @@ class TestWebsite(FrappeTestCase):
self.assertIn('', content)
self.assertIn('', content)
+ def test_resolve_class(self):
+ from frappe.utils.jinja_globals import resolve_class
+
+ context = frappe._dict(primary=True)
+ self.assertEqual(resolve_class("test"), "test")
+ self.assertEqual(resolve_class("test", "test-2"), "test test-2")
+ self.assertEqual(resolve_class("test", {"test-2": False, "test-3": True}), "test test-3")
+ self.assertEqual(
+ resolve_class(["test1", "test2", context.primary and "primary"]), "test1 test2 primary"
+ )
+
+ content = 'Test'
+ self.assertEqual(
+ frappe.render_template(content, context), 'Test'
+ )
+
def set_home_page_hook(key, value):
from frappe import hooks
diff --git a/frappe/utils/jinja_globals.py b/frappe/utils/jinja_globals.py
index 1265bd4d42..878d96e2bc 100644
--- a/frappe/utils/jinja_globals.py
+++ b/frappe/utils/jinja_globals.py
@@ -2,12 +2,14 @@
# License: MIT. See LICENSE
-def resolve_class(classes):
+def resolve_class(*classes):
+ if classes and len(classes) == 1:
+ classes = classes[0]
+
if classes is None:
return ""
-
- if isinstance(classes, str):
- return classes
+ if classes is False:
+ return ""
if isinstance(classes, (list, tuple)):
return " ".join(resolve_class(c) for c in classes).strip()