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 %} -

Update category

-{% 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}