1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# 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}))
|