from django.shortcuts import render_to_response, get_object_or_404 from django.template.context import RequestContext from django.http import HttpResponseRedirect, HttpResponseBadRequest,\ HttpResponseForbidden, Http404 from django.core.urlresolvers import reverse from django.utils.translation import ugettext, ugettext_lazy as _ from django.core.exceptions import ObjectDoesNotExist from wakawaka import get_wikipage_model, get_revision_model, get_wiki_app_name from wakawaka.forms import WikiPageForm, DeleteWikiPageForm __all__ = ['index', 'page', 'edit', 'revisions', 'changes', 'revision_list', 'page_list'] wiki_app_name = get_wiki_app_name() revision_model = get_revision_model() wikipage_model = get_wikipage_model() revision_model_name = revision_model.__name__.lower() wikipage_model_name = wikipage_model.__name__.lower() def index(request, template_name='wakawaka/page.html', extra_context={}): ''' Redirects to the default wiki index name. ''' index_slug = getattr(settings, 'WAKAWAKA_DEFAULT_INDEX', 'WikiIndex') return HttpResponseRedirect(reverse('wakawaka_page', kwargs={'slug': index_slug})) def page(request, slug, rev_id=None, template_name='wakawaka/page.html', extra_context={}): ''' Displays a wiki page. Redirects to the edit view if the page doesn't exist. ''' try:
from django.contrib import admin from wakawaka import get_wikipage_model, get_revision_model from wakawaka.models import WikiPage, Revision class RevisionInlines(admin.TabularInline): model = Revision extra = 1 class WikiPageAdmin(admin.ModelAdmin): inlines = [RevisionInlines] class RevisionAdmin(admin.ModelAdmin): pass # Only register the default admin if models are built-in models # (this won't be true if there's a custom wiki app). if get_wikipage_model() is WikiPage: admin.site.register(WikiPage, WikiPageAdmin) if get_revision_model() is Revision: admin.site.register(Revision, RevisionAdmin)