Skip to content

Commit

Permalink
Add blog post redirects
Browse files Browse the repository at this point in the history
  • Loading branch information
apardyl committed Feb 27, 2021
1 parent 9b84111 commit 32d122f
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 4 deletions.
26 changes: 26 additions & 0 deletions blog/migrations/0003_auto_20210228_0052.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 3.1.7 on 2021-02-27 23:52

from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone


class Migration(migrations.Migration):

dependencies = [
('wagtailcore', '0060_fix_workflow_unique_constraint'),
('blog', '0002_auto_20200528_1605'),
]

operations = [
migrations.AddField(
model_name='post',
name='redirect_to',
field=models.ForeignKey(blank=True, help_text='Redirect to a specified page instead of showing content. You should still add content or description to show in previews.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailcore.page', verbose_name='redirect to page'),
),
migrations.AlterField(
model_name='post',
name='date',
field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='post date'),
),
]
29 changes: 25 additions & 4 deletions blog/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from datetime import datetime

from django.db import models
from django.shortcuts import redirect
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.admin.edit_handlers import FieldPanel, PageChooserPanel
from wagtail.core.fields import RichTextField
from wagtail.core.models import Page

Expand Down Expand Up @@ -32,16 +32,37 @@ class Meta:
class Post(SFIPage):
content = RichTextField(verbose_name=_('content'))

date = models.DateTimeField(default=datetime.now, verbose_name=_('post date'))
date = models.DateTimeField(default=timezone.now, verbose_name=_('post date'))

redirect_to = models.ForeignKey(
"wagtailcore.Page",
null=True,
blank=True,
related_name="+",
on_delete=models.PROTECT,
verbose_name=_('redirect to page'),
help_text=_(
'Redirect to a specified page instead of showing content. '
'You should still add content or description to show in previews.')
)

content_panels = SFIPage.content_panels + [
FieldPanel('date'),
FieldPanel('content'),
]

settings_panels = SFIPage.settings_panels + [
PageChooserPanel('redirect_to'),
]

parent_page_types = ['PostIndex']
subpage_types = []

def serve(self, request, *args, **kwargs):
if self.redirect_to:
return redirect(self.redirect_to.url)
return super().serve(request, *args, **kwargs)

class Meta:
verbose_name = _('post')
verbose_name_plural = _('posts')

0 comments on commit 32d122f

Please sign in to comment.