diff --git a/src/newsreader/news/collection/templates/news/collection/views/import.html b/src/newsreader/news/collection/templates/news/collection/views/import.html
index 9675842..b9df9a2 100644
--- a/src/newsreader/news/collection/templates/news/collection/views/import.html
+++ b/src/newsreader/news/collection/templates/news/collection/views/import.html
@@ -5,6 +5,6 @@
{% block content %}
{% url "news:collection:rules" as cancel_url %}
- {% include "form.html" with form=form title="Import an OPML file" cancel_url=cancel_url only %}
+ {% include "form.html" with form=form title="Import an OPML file" cancel_url=cancel_url %}
{% endblock %}
diff --git a/src/newsreader/news/collection/templates/news/collection/views/rule-create.html b/src/newsreader/news/collection/templates/news/collection/views/rule-create.html
index d83d7ec..c444885 100644
--- a/src/newsreader/news/collection/templates/news/collection/views/rule-create.html
+++ b/src/newsreader/news/collection/templates/news/collection/views/rule-create.html
@@ -5,6 +5,6 @@
{% block content %}
{% url "news:collection:rules" as cancel_url %}
- {% include "form/form.html" with form=form title="Create rule" cancel_url=cancel_url only %}
+ {% include "form/form.html" with form=form title="Create rule" cancel_url=cancel_url %}
{% endblock %}
diff --git a/src/newsreader/news/collection/templates/news/collection/views/rule-update.html b/src/newsreader/news/collection/templates/news/collection/views/rule-update.html
index 8a6b750..6a3c46a 100644
--- a/src/newsreader/news/collection/templates/news/collection/views/rule-update.html
+++ b/src/newsreader/news/collection/templates/news/collection/views/rule-update.html
@@ -5,6 +5,6 @@
{% block content %}
{% url "news:collection:rules" as cancel_url %}
- {% include "form/form.html" with form=form title="Update rule" cancel_url=cancel_url only %}
+ {% include "form/form.html" with form=form title="Update rule" cancel_url=cancel_url %}
{% endblock %}
diff --git a/src/newsreader/news/core/forms.py b/src/newsreader/news/core/forms.py
index eca603a..a830dd9 100644
--- a/src/newsreader/news/core/forms.py
+++ b/src/newsreader/news/core/forms.py
@@ -7,7 +7,7 @@ from newsreader.news.core.widgets import RulesWidget
class CategoryForm(forms.ModelForm):
rules = forms.ModelMultipleChoiceField(
- required=False, queryset=CollectionRule.objects.all(), widget=RulesWidget
+ required=False, queryset=CollectionRule.objects.none(), widget=RulesWidget
)
def __init__(self, *args, **kwargs):
@@ -17,6 +17,8 @@ class CategoryForm(forms.ModelForm):
self.fields["rules"].queryset = CollectionRule.objects.filter(user=self.user)
+ self.fields["rules"].widget.category = self.instance
+
def save(self, commit=True):
instance = super().save(commit=False)
instance.user = self.user
diff --git a/src/newsreader/news/core/templates/news/core/views/category-create.html b/src/newsreader/news/core/templates/news/core/views/category-create.html
index e145760..21eb48a 100644
--- a/src/newsreader/news/core/templates/news/core/views/category-create.html
+++ b/src/newsreader/news/core/templates/news/core/views/category-create.html
@@ -5,6 +5,6 @@
{% block content %}
{% url "news:core:categories" as cancel_url %}
- {% include "form/form.html" with form=form title="Create category" cancel_url=cancel_url only %}
+ {% include "form/form.html" with form=form title="Create category" cancel_url=cancel_url %}
{% endblock %}
diff --git a/src/newsreader/news/core/templates/news/core/views/category-update.html b/src/newsreader/news/core/templates/news/core/views/category-update.html
index f8c56fd..60e215c 100644
--- a/src/newsreader/news/core/templates/news/core/views/category-update.html
+++ b/src/newsreader/news/core/templates/news/core/views/category-update.html
@@ -1,9 +1,10 @@
-{% extends "news/core/views/category.html" %}
+{% extends "base.html" %}
-{% block form-header %}
-
-{% endblock %}
+{% load static %}
-{% block confirm-button %}
-
+{% block content %}
+
+ {% url "news:core:categories" as cancel_url %}
+ {% include "form/form.html" with form=form title="Update category" cancel_url=cancel_url %}
+
{% endblock %}
diff --git a/src/newsreader/news/core/widgets.py b/src/newsreader/news/core/widgets.py
index 509c705..f38b86f 100644
--- a/src/newsreader/news/core/widgets.py
+++ b/src/newsreader/news/core/widgets.py
@@ -8,4 +8,7 @@ class RulesWidget(CheckboxSelectMultiple):
def create_option(self, *args, **kwargs):
option = super().create_option(*args, **kwargs)
instance = self.choices.queryset.get(pk=option["value"])
+
+ if self.category and instance.category:
+ option["selected"] = self.category.pk == instance.category.pk
return {**option, "instance": instance}