mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-03 15:38:59 +00:00
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from django.shortcuts import get_object_or_404
|
|
from django.http import HttpResponse, Http404
|
|
from pgweb.util.decorators import login_required
|
|
|
|
from pgweb.util.contexts import render_pgweb
|
|
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_pgweb(request, 'about', 'news/newsarchive.html', {
|
|
'news': news,
|
|
'tag': tag,
|
|
'newstags': NewsTag.objects.all(),
|
|
})
|
|
|
|
|
|
def item(request, itemid, throwaway=None):
|
|
news = get_object_or_404(NewsArticle, pk=itemid)
|
|
if not news.approved:
|
|
raise Http404
|
|
return render_pgweb(request, 'about', 'news/item.html', {
|
|
'obj': news,
|
|
'newstags': NewsTag.objects.all(),
|
|
})
|
|
|
|
|
|
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/')
|