]> git.0d.be Git - chloro.git/commitdiff
misc: make it possible to exclude posts from feed
authorFrédéric Péters <fpeters@0d.be>
Sat, 16 Dec 2023 12:05:51 +0000 (13:05 +0100)
committerFrédéric Péters <fpeters@0d.be>
Sat, 16 Dec 2023 12:05:51 +0000 (13:05 +0100)
(for standalone page)

chloro/phyll/migrations/0007_note_included_in_feed.py [new file with mode: 0644]
chloro/phyll/models.py
chloro/phyll/views.py

diff --git a/chloro/phyll/migrations/0007_note_included_in_feed.py b/chloro/phyll/migrations/0007_note_included_in_feed.py
new file mode 100644 (file)
index 0000000..5faefc7
--- /dev/null
@@ -0,0 +1,17 @@
+# Generated by Django 3.2.16 on 2023-12-16 12:03
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('phyll', '0006_interlink'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='note',
+            name='included_in_feed',
+            field=models.BooleanField(default=True, verbose_name='Include in feed'),
+        ),
+    ]
index 2b937dd2652820129452e8a25ba945d8ccb59f38..6642771ada6991ecf57f74debf76aa8198637930 100644 (file)
@@ -32,6 +32,7 @@ class Note(models.Model):
     text = RichTextField(_('Text'), blank=True, null=True)
     plain_text = models.TextField(blank=True, null=True)
     tags = TaggableManager(_('Tags'), blank=True)
+    included_in_feed = models.BooleanField(_('Include in feed'), default=True)
     published = models.BooleanField(_('Published'), default=True)
     creation_timestamp = models.DateTimeField(auto_now_add=True)
     last_update_timestamp = models.DateTimeField(auto_now=True)
index 86f6f09533a0e58871d769d1e3b4ad81ea1c5ea4..2a30215854abe79e3a602c0ab3aaea3aa26cd23b 100644 (file)
@@ -54,7 +54,7 @@ class NoteView(DetailView):
 
 class NoteEditView(UpdateView):
     model = Note
-    fields = ['title', 'slug', 'text', 'tags', 'published']
+    fields = ['title', 'slug', 'text', 'tags', 'published', 'included_in_feed']
 
 
 class NoteApiSaveView(View):
@@ -69,7 +69,7 @@ class NoteApiSaveView(View):
 
 class NoteAddView(CreateView):
     model = Note
-    fields = ['title', 'slug', 'text', 'tags', 'published']
+    fields = ['title', 'slug', 'text', 'tags', 'published', 'included_in_feed']
 
 
 class NoteDeleteView(DeleteView):
@@ -96,7 +96,7 @@ class ArchivesView(ListView):
     def get_queryset(self):
         qs = super().get_queryset()
         if not self.request.user.is_staff:
-            qs = qs.filter(published=True)
+            qs = qs.filter(published=True, included_in_feed=True)
         return qs
 
 
@@ -129,7 +129,7 @@ class AtomFeed(Feed):
         return super().get_object(request, *args, **kwargs)
 
     def items(self):
-        qs = Note.objects.filter(published=True)
+        qs = Note.objects.filter(published=True, included_in_feed=True)
         if self.sub == 'default':
             pass
         elif self.sub == 'gnome-en':