71 lines
3.4 KiB
Python
71 lines
3.4 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
|
|
from django.contrib.auth.models import User
|
|
from notification import models as notification
|
|
from django.contrib import messages
|
|
|
|
@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()
|
|
adminUsers = User.objects.filter(is_staff=True)
|
|
notification.send(adminUsers, "petition_opened", {"petition": petition, 'notice_url': reverse('petition.views.view', kwargs={'id':petition.id}),'notice_description': petition.id})
|
|
messages.info(request, "Petition created.")
|
|
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_superuser:
|
|
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()
|
|
if comment.author != petition.author:
|
|
notification.send([petition.author], "petition_commented", {"petition": petition, 'notice_url': reverse('petition.views.view', kwargs={'id':petition.id}),'notice_description': petition.id, 'comment': comment})
|
|
messages.info(request, "Comment added.")
|
|
return HttpResponseRedirect(reverse('petition.views.view', kwargs={"id":petition.id})+"#c"+str(comment.id))
|
|
|
|
@login_required
|
|
def close(request, id):
|
|
petition = models.Petition.objects.get(id__exact=id)
|
|
petition.closed = True
|
|
petition.save()
|
|
if petition.author != request.user:
|
|
notification.send([petition.author], "petition_closed", {"petition": petition, 'notice_url': reverse('petition.views.view', kwargs={'id':petition.id}),'notice_description': petition.id})
|
|
messages.info(request, "Petition closed.")
|
|
return HttpResponseRedirect(reverse('petition.views.view', kwargs={"id":petition.id}))
|