mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-13 13:12:42 +00:00

For external consumption. Only tag and description is viewed, but URLs to the feeds and pages can easily be constructed using it.
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from django.shortcuts import render_to_response, get_object_or_404
|
|
from django.http import HttpResponse, Http404
|
|
from pgweb.util.decorators import login_required
|
|
|
|
from pgweb.util.contexts import NavContext
|
|
from pgweb.util.helpers import simple_form
|
|
|
|
from models import NewsArticle, NewsTag
|
|
from forms import NewsArticleForm
|
|
|
|
import json
|
|
|
|
def archive(request, tag=None, paging=None):
|
|
if tag:
|
|
tag = get_object_or_404(NewsTag,urlname=tag.strip('/'))
|
|
news = NewsArticle.objects.filter(approved=True, tags=tag)
|
|
else:
|
|
tag = None
|
|
news = NewsArticle.objects.filter(approved=True)
|
|
return render_to_response('news/newsarchive.html', {
|
|
'news': news,
|
|
'tag': tag,
|
|
'newstags': NewsTag.objects.all(),
|
|
}, NavContext(request, 'about'))
|
|
|
|
def item(request, itemid, throwaway=None):
|
|
news = get_object_or_404(NewsArticle, pk=itemid)
|
|
if not news.approved:
|
|
raise Http404
|
|
return render_to_response('news/item.html', {
|
|
'obj': news,
|
|
'newstags': NewsTag.objects.all(),
|
|
}, NavContext(request, 'about'))
|
|
|
|
def taglist_json(request):
|
|
return HttpResponse(json.dumps({
|
|
'tags': [{'name': t.urlname, 'description': t.description} for t in NewsTag.objects.distinct('urlname')],
|
|
}), content_type='application/json')
|
|
|
|
|
|
@login_required
|
|
def form(request, itemid):
|
|
return simple_form(NewsArticle, itemid, request, NewsArticleForm,
|
|
redirect='/account/edit/news/')
|