Skip to content

Instantly share code, notes, and snippets.

@sorl
Created April 12, 2011 00:35
Show Gist options
  • Save sorl/914686 to your computer and use it in GitHub Desktop.
Save sorl/914686 to your computer and use it in GitHub Desktop.
#coding=utf-8
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from django.db.models import Q
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext as _
from faq.models import FAQ, FAQGroup
from itertools import groupby
from utkik import View
from utkik.decorators import handler_decorator
class FAQList(View):
template_name = 'faq/faq_list.html'
def get(self):
search = self.request.GET.get('search', '').strip()
q = Q(title__icontains=search) if search else Q()
def group_faqs():
for k, g in groupby(FAQ.objects.filter(q), lambda obj: obj.group):
yield k, list(g)
self.c.group_faqs = group_faqs()
class FAQDetail(View):
template_name = 'faq/faq_detail.html'
def setup(self, slug):
self.c.faq = get_object_or_404(FAQ.objects, slug=slug)
def get(self, slug):
pass
@handler_decorator(login_required)
def post(self, slug):
Form = self.c.faq.get_comment_form()
self.c.comment_form = Form(data=self.request.POST)
if self.c.comment_form.is_valid():
obj = self.c.comment_form.save(commit=False)
obj.author = self.request.user.profile
obj.item = self.c.faq
obj.save()
messages.add_message(
self.request, messages.INFO, _(u'Tack för din kommentar'))
return HttpResponseRedirect(self.request.path)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment