summaryrefslogtreecommitdiff
path: root/pgweb/news/feeds.py
blob: d0927dc866597ebc27d603191c97a3d172a032d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from django.contrib.syndication.views import Feed
from django.template.defaultfilters import slugify

from pgweb.util.moderation import ModerationState
from .models import NewsArticle

from datetime import datetime, time


class NewsFeed(Feed):
    title = description = "PostgreSQL news"
    link = "https://www.postgresql.org/"

    description_template = 'news/rss_description.html'
    title_template = 'news/rss_title.html'

    def get_object(self, request, tagurl=None):
        return tagurl

    def items(self, obj):
        if obj:
            return NewsArticle.objects.filter(modstate=ModerationState.APPROVED, tags__urlname=obj)[:10]
        else:
            return NewsArticle.objects.filter(modstate=ModerationState.APPROVED)[:10]

    def item_link(self, obj):
        return "https://www.postgresql.org/about/news/{}-{}/".format(slugify(obj.title), obj.id)

    def item_pubdate(self, obj):
        return datetime.combine(obj.date, time.min)