diff --git a/src/newsreader/news/core/templates/news/core/widgets/rule.html b/src/newsreader/news/core/templates/news/core/widgets/rule.html
index fac5e13..b3c7b68 100644
--- a/src/newsreader/news/core/templates/news/core/widgets/rule.html
+++ b/src/newsreader/news/core/templates/news/core/widgets/rule.html
@@ -1,10 +1,10 @@
-
+
-{% if rule.favicon %}
-
+{% if option.instance.favicon %}
+
{% else %}
{% endif %}
-{{ rule.name }}
+{{ option.label }}
diff --git a/src/newsreader/news/core/templates/news/core/widgets/rules.html b/src/newsreader/news/core/templates/news/core/widgets/rules.html
index 60c6a5c..bbdd43a 100644
--- a/src/newsreader/news/core/templates/news/core/widgets/rules.html
+++ b/src/newsreader/news/core/templates/news/core/widgets/rules.html
@@ -1,7 +1,9 @@
- {% for rule in rules %}
- -
- {% include "news/core/widgets/rule.html" %}
-
+ {% for group, options, index in widget.optgroups %}
+ {% for option in options %}
+ -
+ {% include "news/core/widgets/rule.html" with option=option only %}
+
+ {% endfor %}
{% endfor %}
diff --git a/src/newsreader/news/core/widgets.py b/src/newsreader/news/core/widgets.py
index b0d63bf..509c705 100644
--- a/src/newsreader/news/core/widgets.py
+++ b/src/newsreader/news/core/widgets.py
@@ -4,3 +4,8 @@ from django.forms.widgets import CheckboxSelectMultiple
class RulesWidget(CheckboxSelectMultiple):
template_name = "news/core/widgets/rules.html"
option_template_name = "news/core/widgets/rule.html"
+
+ def create_option(self, *args, **kwargs):
+ option = super().create_option(*args, **kwargs)
+ instance = self.choices.queryset.get(pk=option["value"])
+ return {**option, "instance": instance}