diff --git a/community/community/widgets/Avatar.html b/community/community/widgets/Avatar.html
index 8158f3df..e0c88cf5 100644
--- a/community/community/widgets/Avatar.html
+++ b/community/community/widgets/Avatar.html
@@ -1,4 +1,5 @@
{% set color = member.get_palette() %}
+
{% if member.photo %}
@@ -9,4 +10,5 @@
{{ member.abbr }}
{% endif %}
+
diff --git a/community/lms/widgets/CourseTeaser.html b/community/lms/widgets/CourseTeaser.html
index 525d94c1..029db9ae 100644
--- a/community/lms/widgets/CourseTeaser.html
+++ b/community/lms/widgets/CourseTeaser.html
@@ -7,7 +7,9 @@
diff --git a/community/lms/widgets/SketchTeaser.html b/community/lms/widgets/SketchTeaser.html
index 6c8ec431..02f5f5d7 100644
--- a/community/lms/widgets/SketchTeaser.html
+++ b/community/lms/widgets/SketchTeaser.html
@@ -9,7 +9,8 @@
{{sketch.title}}
- by {{sketch.get_owner().full_name}}
+ {% set owner = sketch.get_owner() %}
+ by
{{owner.full_name}}
diff --git a/community/widgets.py b/community/widgets.py
index 1e135187..99ed1829 100644
--- a/community/widgets.py
+++ b/community/widgets.py
@@ -36,8 +36,9 @@ class Widgets:
'Hello, World!
'
"""
def __getattr__(self, name):
+ widget_globals = {"widgets": self}
if not name.startswith("__"):
- return Widget(name)
+ return Widget(name, widget_globals)
else:
raise AttributeError(name)
@@ -51,11 +52,13 @@ class Widget:
>>> w(name="World!")
'Hello, World!
'
"""
- def __init__(self, name):
+ def __init__(self, name, widget_globals={}):
+ self.widget_globals = widget_globals
self.name = name
def __call__(self, **kwargs):
# the widget could be in any of the modules
paths = [f"{module}/widgets/{self.name}.html" for module in MODULES]
env = get_jenv()
+ kwargs.update(self.widget_globals)
return env.get_or_select_template(paths).render(kwargs)