diff --git a/celeryproject/settings/base.py b/celeryproject/settings/base.py index 6fab748..46a1902 100644 --- a/celeryproject/settings/base.py +++ b/celeryproject/settings/base.py @@ -35,7 +35,7 @@ # calendars according to the current locale. USE_L10N = True -LOCALE_PATHS = (join(PROJECT_ROOT, 'celeryweb/locale')) +LOCALE_PATHS = (join(PROJECT_ROOT, 'celeryweb/locale'),) # If you set this to False, Django will not use timezone-aware datetimes. USE_TZ = True diff --git a/celeryproject/urls.py b/celeryproject/urls.py index 0f248ba..b5f5d21 100644 --- a/celeryproject/urls.py +++ b/celeryproject/urls.py @@ -6,6 +6,7 @@ urlpatterns = [url(r'^news/$', views.news, name='news'), url(r'^news/(?P[\w-]*)', views.news, name='news_entry'), + url(r'^news/feed/$', views.NewsFeed(), name='news_feed'), url(r'^tutorials/$', views.tutorials, name='tutorials'), url(r'^tutorials/(?P[\w-]*)', views.tutorials, name='tutorial'), diff --git a/celeryweb/models.py b/celeryweb/models.py index 9a1a199..c27e106 100644 --- a/celeryweb/models.py +++ b/celeryweb/models.py @@ -6,7 +6,6 @@ from django.contrib.flatpages.models import FlatPage from django.utils.translation import ugettext_lazy as _ - class TrackingModel(models.Model): creator = models.CharField(verbose_name=_("_creator"), max_length=255, @@ -104,7 +103,6 @@ def __unicode__(self): def permalink(self): return "/news/%s/" % self.slug - class Tutorial(TrackingModel): title = models.CharField(verbose_name=_("_title"), max_length=255) slug = models.SlugField(verbose_name=_("_slug"), unique=True) diff --git a/celeryweb/views.py b/celeryweb/views.py index 6a59a0c..9f02994 100644 --- a/celeryweb/views.py +++ b/celeryweb/views.py @@ -7,6 +7,8 @@ from django.contrib.auth.models import User from django.shortcuts import get_object_or_404, render from django.core.paginator import Paginator, InvalidPage, EmptyPage +from django.contrib.syndication.views import Feed +from django.urls import reverse from .models import News, Tutorial, CommunityLink @@ -140,3 +142,21 @@ def package_info(request): 'ajax/celery_package_info.html', package_info_context, ) + +class NewsFeed(Feed): + title = "News | Celery: Distributed Task Queue" + link = "/sitenews/" + description = "News" + + def items(self): + return News.objects.order_by('-pub_date')[:5] + + def item_title(self, item): + return item.title + + def item_description(self, item): + return item.text + + # item_link is only needed if NewsItem has no get_absolute_url method. + def item_link(self, item): + return reverse('news_entry', args=[item.slug]) diff --git a/templates/news.html b/templates/news.html index 750ee57..1c2ac30 100644 --- a/templates/news.html +++ b/templates/news.html @@ -1,6 +1,8 @@ {%extends "base.html" %} {% load url from future %} {%block title%}News{%endblock%} + {%block content%}

News