# vim: set fileencoding=utf-8 ts=4 shiftwidth=4 softtabstop=4 expandtab: from wiki.models import Pagina, PaginaForm from django.shortcuts import render_to_response from django.template import RequestContext from django.http import HttpResponseRedirect from django.contrib.auth.decorators import user_passes_test def index(request): return HttpResponseRedirect('/wiki/Portada/') def lista(request): lista_paginas = Pagina.objects.all() return render_to_response('wiki/lista.html', RequestContext(request, { 'lista_paginas': lista_paginas })) def pagina(request, titulo, static=None): try: pagina = Pagina.objects.get(titulo__exact=titulo) return render_to_response('wiki/pagina.html', RequestContext(request, { 'pagina': pagina, 'static': static, })) except Pagina.DoesNotExist: pagina = Pagina(titulo=titulo) return HttpResponseRedirect('/wiki/' + pagina.titulo + '/editar/') @user_passes_test(lambda u: u.has_perm('wiki.can_editar_pagina'), login_url='/usuarios/login/') def editar(request, titulo, static=None): """Procesar cambios a la página (POST) o crear diálogo de edición""" if request.POST: try: pagina = Pagina.objects.get(titulo__exact=titulo) except Pagina.DoesNotExist: pagina = Pagina(titulo=titulo) pagina.texto = request.POST['texto'] pagina.autor_id = request.user.id pagina.save() return HttpResponseRedirect('/wiki/' + pagina.titulo + '/') else: try: pagina = Pagina.objects.get(titulo__exact=titulo) except Pagina.DoesNotExist: pagina = Pagina(titulo=titulo) form = PaginaForm(instance=pagina) return render_to_response('wiki/editar.html', RequestContext(request, { 'form': form, 'pagina': pagina, 'static': static, })) @user_passes_test(lambda u: u.has_perm('wiki.can_add_pagina'), login_url='/usuarios/login/') def nueva(request): if request.POST: pagina = Pagina(id=None, titulo=request.POST['titulo'], texto=request.POST['texto'], autor=request.user, ) pagina.save() return HttpResponseRedirect('/wiki/%s/' % pagina.titulo) else: form = PaginaForm(instance=pagina) return render_to_response('wiki/nueva.html', RequestContext(request, {'form': form}))