From 5f29bb632ee2a2b91fe40d0614b066c0855c819b Mon Sep 17 00:00:00 2001 From: Timothy Hobbs Date: Mon, 6 Jan 2020 14:25:37 +0100 Subject: [PATCH] Associate queues with KB categories --- helpdesk/forms.py | 4 +++- helpdesk/models.py | 9 +++++++++ helpdesk/templates/helpdesk/kb_category.html | 4 ++++ helpdesk/views/public.py | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/helpdesk/forms.py b/helpdesk/forms.py index 01a1187c..a635a75b 100644 --- a/helpdesk/forms.py +++ b/helpdesk/forms.py @@ -337,7 +337,7 @@ class PublicTicketForm(AbstractTicketForm): help_text=_('We will e-mail you when your ticket is updated.'), ) - def __init__(self, hidden_fields=(), *args, **kwargs): + def __init__(self, hidden_fields=(), readonly_fields=(), *args, **kwargs): """ Add any (non-staff) custom fields that are defined to the form """ @@ -354,6 +354,8 @@ class PublicTicketForm(AbstractTicketForm): setting = field_hide_table.get(field, None) if (setting and hasattr(settings, setting)) or field in hidden_fields: self.fields[field].widget = forms.HiddenInput() + if field in readonly_fields: + self.fields[field].disabled = True self.fields['queue'].choices = [('', '--------')] + [ (q.id, q.title) for q in Queue.objects.filter(allow_public_submission=True)] diff --git a/helpdesk/models.py b/helpdesk/models.py index c724a0c3..ec17b3ba 100644 --- a/helpdesk/models.py +++ b/helpdesk/models.py @@ -1216,6 +1216,15 @@ class KBCategory(models.Model): _('Description'), ) + queue = models.ForeignKey( + Queue, + blank=True, + null=True, + on_delete=models.CASCADE, + verbose_name=_('Default queue when creating a ticket after viewing this category.'), + ) + + def __str__(self): return '%s' % self.title diff --git a/helpdesk/templates/helpdesk/kb_category.html b/helpdesk/templates/helpdesk/kb_category.html index c34ea65c..f7a6a3e1 100644 --- a/helpdesk/templates/helpdesk/kb_category.html +++ b/helpdesk/templates/helpdesk/kb_category.html @@ -41,5 +41,9 @@ {% ifequal itemnumperrow 'three' %}{% endifequal %} {% endfor %} +{% ifnotequal itemnumperrow 'three' %}{% endifnotequal %} +{% if category.queue %} + +{% endif %} {% endblock %} diff --git a/helpdesk/views/public.py b/helpdesk/views/public.py index d058d75b..94820d13 100644 --- a/helpdesk/views/public.py +++ b/helpdesk/views/public.py @@ -92,6 +92,7 @@ class BaseCreateTicketView(FormView): def get_form_kwargs(self, *args, **kwargs): kwargs = super().get_form_kwargs(*args, **kwargs) kwargs['hidden_fields'] = self.request.GET.get('_hide_fields_', '').split(',') + kwargs['readonly_fields'] = self.request.GET.get('_readonly_fields_', '').split(',') return kwargs def form_valid(self, form):