Files
postgres-web/pgweb/core/views.py
Magnus Hagander f216b00037 Implement software catalogue. Break the organisation object out as
part of the core, since it seems like it could be useful for other
kinds of objects as well in the future, but for now only the
software catalogue uses it.
2009-12-28 14:22:17 +01:00

60 lines
1.7 KiB
Python

from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponse, Http404
from django.template import TemplateDoesNotExist, loader, Context
from django.contrib.auth.decorators import login_required
from pgweb.util.decorators import ssl_required
from pgweb.util.contexts import NavContext
from pgweb.util.helpers import simple_form
# models needed for the pieces on the frontpage
from news.models import NewsArticle
from events.models import Event
from quotes.models import Quote
from models import Version
# models and forms needed for core objects
from models import Organisation
from forms import OrganisationForm
# Front page view
def home(request):
news = NewsArticle.objects.filter(approved=True)[:3]
events = Event.objects.select_related('country').filter(approved=True).filter(training=False)[:3]
quote = Quote.objects.filter(approved=True).order_by('?')[0]
versions = Version.objects.all()
return render_to_response('index.html', {
'title': 'The world\'s most advanced open source database',
'news': news,
'events': events,
'quote': quote,
'versions': versions,
})
# Generic fallback view for static pages
def fallback(request, url):
if url.find('..') > -1:
raise Http404('Page not found.')
try:
t = loader.get_template('pages/%s.html' % url)
except TemplateDoesNotExist, e:
raise Http404('Page not found.')
# Guestimate the nav section by looking at the URL and taking the first
# piece of it.
try:
navsect = url.split('/',2)[0]
except:
navsect = ''
return HttpResponse(t.render(NavContext(request, navsect)))
# Edit-forms for core objects
@ssl_required
@login_required
def organisationform(request, itemid):
return simple_form(Organisation, itemid, request, OrganisationForm)