summaryrefslogtreecommitdiff
path: root/blog/views.py
blob: 182905b40f80ae5cc4d2b33b511cdebf3adecbff (plain)
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
from blog.models import Articulo, ArticuloForm, Comentario, ComentarioForm
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import user_passes_test


def index(request):
    lista_articulos = Articulo.objects.all()
    return render_to_response('blog/index.html',
                              RequestContext(request, {
                                  'lista_articulos': lista_articulos}))


def articulo(request, articulo_id):
    articulo = get_object_or_404(Articulo, pk=articulo_id)
    lista_comentarios = Comentario.objects.filter(articulo__pk=articulo_id)
    form = ComentarioForm()
    return render_to_response('blog/articulo.html',
                              RequestContext(request, {
                                  'articulo': articulo,
                                  'lista_comentarios': lista_comentarios,
                                  'form': form,
                                  'user': request.user}))


@user_passes_test(lambda u: u.has_perm('blog.can_add_comentario'),
                  login_url='/usuarios/login/')
def crear_comentario(request, articulo_id):
    articulo = get_object_or_404(Articulo, pk=articulo_id)
    comentario = Comentario(id=None,
                            texto=request.POST['texto'],
                            autor=request.user,
                            articulo=articulo,
                            )
    comentario.save()
    return HttpResponseRedirect('/blog/%s/' % articulo_id)


@user_passes_test(lambda u: u.has_perm('blog.can_add_articulo'),
                  login_url='/usuarios/login/')
def nuevo(request):
    if request.POST:
        articulo = Articulo(id=None,
                            titulo=request.POST['titulo'],
                            texto=request.POST['texto'],
                            autor=request.user,
                            )
        articulo.save()
        return HttpResponseRedirect('/blog/%s/' % articulo.id)
    else:
        form = ArticuloForm()
        return render_to_response('blog/nuevo.html', {'form': form})