Files
caminus/petition/views.py
2012-06-07 16:54:59 -04:00

52 lines
2.2 KiB
Python

import models
import forms
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
@login_required
def create(request):
if request.method == 'POST':
form = forms.PetitionForm(request.POST)
else:
form = forms.PetitionForm()
if form.is_valid():
petition = models.Petition()
petition.author = request.user
petition.body = form.cleaned_data['body']
petition.save()
return HttpResponseRedirect(reverse('petition.views.view', kwargs={"id":petition.id}))
return render_to_response('petition/create.html', {'form':form}, context_instance = RequestContext(request))
@login_required
def index(request):
if request.user.is_staff or request.user.is_admin:
openPetitions = models.Petition.objects.filter(closed=False)
closedPetitions = models.Petition.objects.filter(closed=True)
else:
openPetitions = models.Petition.objects.filter(closed=False, author=request.user)
closedPetitions = models.Petition.objects.filter(closed=True, author=request.user)
return render_to_response('petition/index.html', {'openPetitions': openPetitions, 'closedPetitions': closedPetitions}, context_instance = RequestContext(request))
@login_required
def view(request, id):
petition = models.Petition.objects.get(id__exact=id)
commentForm = forms.CommentForm()
return render_to_response('petition/view.html', {'petition':petition, 'form': commentForm}, context_instance = RequestContext(request))
def comment(request, id):
if request.method == 'POST':
form = forms.CommentForm(request.POST)
else:
form = forms.CommentForm()
if form.is_valid():
petition = models.Petition.objects.get(id__exact=id)
comment = models.Comment()
comment.author = request.user
comment.body = form.cleaned_data['body']
comment.petition = petition
comment.save()
return HttpResponseRedirect(reverse('petition.views.view', kwargs={"id":petition.id})+"#c"+str(comment.id))