From 1cfef71c52b32fcd7e59e3e5ea0a31baa3a0462d Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Fri, 20 Nov 2020 16:03:37 +0100 Subject: [PATCH] Show the about-to-be complete URL for slugified news on moderation page This makes it easier when the links is to be included in for example the actual web commit of a realease. --- pgweb/news/admin.py | 6 +----- pgweb/news/models.py | 9 ++++++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pgweb/news/admin.py b/pgweb/news/admin.py index 7eb54bd0..62646b7f 100644 --- a/pgweb/news/admin.py +++ b/pgweb/news/admin.py @@ -1,6 +1,5 @@ from django.contrib import admin from django import forms -from django.template.defaultfilters import slugify from pgweb.util.admin import PgwebAdmin from pgweb.core.models import OrganisationEmail @@ -17,16 +16,13 @@ class NewsArticleAdminForm(forms.ModelForm): class NewsArticleAdmin(PgwebAdmin): - list_display = ('title', 'org', 'date', 'modstate', 'posturl') + list_display = ('title', 'org', 'date', 'modstate', 'permanenturl') list_filter = ('modstate', ) filter_horizontal = ('tags', ) search_fields = ('content', 'title', ) exclude = ('modstate', 'firstmoderator', ) form = NewsArticleAdminForm - def posturl(self, obj): - return '/about/news/{}-{}/'.format(slugify(obj.title), obj.id) - class NewsTagAdmin(PgwebAdmin): list_display = ('urlname', 'name', 'description') diff --git a/pgweb/news/models.py b/pgweb/news/models.py index 8725f4d6..9e750777 100644 --- a/pgweb/news/models.py +++ b/pgweb/news/models.py @@ -2,6 +2,7 @@ from django.db import models from datetime import date from pgweb.core.models import Organisation, OrganisationEmail from pgweb.util.moderation import TristateModerateModel, ModerationState, TwoModeratorsMixin +from django.template.defaultfilters import slugify from .util import send_news_email, render_news_template, embed_images_in_html @@ -35,7 +36,7 @@ class NewsArticle(TwoModeratorsMixin, TristateModerateModel): account_edit_suburl = 'news' markdown_fields = ('content',) - moderation_fields = ('org', 'sentfrom', 'email', 'date', 'title', 'content', 'taglist') + moderation_fields = ('permanenturl', 'org', 'sentfrom', 'email', 'date', 'title', 'content', 'taglist') preview_fields = ('title', 'sentfrom', 'email', 'content', 'taglist') notify_fields = ('org', 'email', 'date', 'title', 'content', 'tags') rendered_preview_fields = ('content', ) @@ -53,6 +54,10 @@ class NewsArticle(TwoModeratorsMixin, TristateModerateModel): def __str__(self): return "%s: %s" % (self.date, self.title) + @property + def permanenturl(self): + return '/about/news/{}-{}/'.format(slugify(self.title), self.id) + def verify_submitter(self, user): return (len(self.org.managers.filter(pk=user.pk)) == 1) @@ -105,3 +110,5 @@ class NewsArticle(TwoModeratorsMixin, TristateModerateModel): return 'List of tags' elif f == 'content': return 'Content preview' + elif f == 'permanenturl': + return 'Permanent URL' -- 2.39.5