def category(request, slug, iframe=False): category = get_object_or_404(KBCategory, slug__iexact=slug) if not user.huser_from_request(request).can_access_kbcategory(category): raise Http404 items = category.kbitem_set.filter(enabled=True) selected_item = request.GET.get('kbitem', None) try: selected_item = int(selected_item) except TypeError: pass qparams = request.GET.copy() try: del qparams['kbitem'] except KeyError: pass template = 'helpdesk/kb_category.html' if iframe: template = 'helpdesk/kb_category_iframe.html' staff = request.user.is_authenticated and request.user.is_staff return render( request, template, { 'category': category, 'items': items, 'selected_item': selected_item, 'query_param_string': qparams.urlencode(), 'helpdesk_settings': helpdesk_settings, 'iframe': iframe, 'staff': staff, })
def index(request): huser = user.huser_from_request(request) # TODO: It'd be great to have a list of most popular items here. return render( request, 'helpdesk/kb_index.html', { 'kb_categories': huser.get_allowed_kb_categories(), 'helpdesk_settings': helpdesk_settings, })
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['kb_categories'] = huser_from_request( self.request).get_allowed_kb_categories() return context