Files
Pinry/pinry/pins/views.py

47 lines
1.5 KiB
Python
Raw Normal View History

2012-04-26 03:44:16 +00:00
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
2012-05-01 05:44:50 +00:00
from django.contrib import messages
from django.utils.functional import lazy
from django.views.generic.base import TemplateView
from django.views.generic import CreateView
2012-04-26 03:44:16 +00:00
from .forms import PinForm
2012-07-24 23:26:38 +00:00
from .models import Pin
2012-04-26 03:44:16 +00:00
reverse_lazy = lambda name=None, *args : lazy(reverse, str)(name, args=args)
2012-04-26 03:44:16 +00:00
class RecentPins(TemplateView):
template_name = 'pins/recent_pins.html'
class NewPin(CreateView):
model = Pin
form_class = PinForm
success_url = reverse_lazy('pins:recent-pins')
def form_valid(self, form):
form.instance.submitter = self.request.user
messages.success(self.request, 'New pin successfully added.')
return super(NewPin, self).form_valid(form)
def form_invalid(self, form):
messages.error(self.request, 'Pin did not pass validation!')
return super(NewPin, self).form_invalid(form)
2012-07-24 23:26:38 +00:00
def delete_pin(request, pin_id):
try:
pin = Pin.objects.get(id=pin_id)
if pin.submitter == request.user:
pin.delete()
messages.success(request, 'Pin successfully deleted.')
else:
messages.error(request, 'You are not the submitter and can not '
'delete this pin.')
except Pin.DoesNotExist:
messages.error(request, 'Pin with the given id does not exist.')
return HttpResponseRedirect(reverse('pins:recent-pins'))