django-helpdesk/helpdesk/views/kb.py

63 lines
1.9 KiB
Python
Raw Normal View History

"""
django-helpdesk - A Django powered ticket tracker for small enterprise.
(c) Copyright 2008 Jutda. All Rights Reserved. See LICENSE for details.
views/kb.py - Public-facing knowledgebase views. The knowledgebase is a
simple categorised question/answer system to show common
resolutions to common problems.
"""
from datetime import datetime
from django.http import HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.template import RequestContext
from django.utils.translation import ugettext as _
2011-09-01 13:01:03 +02:00
from helpdesk import settings as helpdesk_settings
from helpdesk.models import KBCategory, KBItem
def index(request):
category_list = KBCategory.objects.all()
# TODO: It'd be great to have a list of most popular items here.
return render(request, template_name='helpdesk/kb_index.html',
context = {
2011-02-06 23:51:25 +01:00
'kb_categories': category_list,
2011-09-01 13:01:03 +02:00
'helpdesk_settings': helpdesk_settings,
})
def category(request, slug):
category = get_object_or_404(KBCategory, slug__iexact=slug)
items = category.kbitem_set.all()
return render(request, template_name='helpdesk/kb_category.html',
context = {
'category': category,
'items': items,
2011-09-01 13:01:03 +02:00
'helpdesk_settings': helpdesk_settings,
})
def item(request, item):
item = get_object_or_404(KBItem, pk=item)
return render(request, template_name='helpdesk/kb_item.html',
context = {
'item': item,
2011-09-01 13:01:03 +02:00
'helpdesk_settings': helpdesk_settings,
})
def vote(request, item):
item = get_object_or_404(KBItem, pk=item)
vote = request.GET.get('vote', None)
if vote in ('up', 'down'):
item.votes += 1
if vote == 'up':
item.recommendations += 1
item.save()
return HttpResponseRedirect(item.get_absolute_url())