django-helpdesk/helpdesk/views/abstract_views.py
2025-03-22 15:29:19 -10:00

44 lines
1.4 KiB
Python

from helpdesk.models import CustomField, KBItem, Queue
class AbstractCreateTicketMixin:
def get_initial(self):
initial_data = {}
request = self.request
try:
initial_data["queue"] = Queue.objects.get(
slug=request.GET.get("queue", None)
).id
except Queue.DoesNotExist:
pass
u = request.user
if (
u.is_authenticated
and u.usersettings_helpdesk.use_email_as_submitter
and u.email
):
initial_data["submitter_email"] = u.email
query_param_fields = ["submitter_email", "title", "body", "queue", "kbitem"]
custom_fields = [
"custom_%s" % f.name for f in CustomField.objects.filter(staff_only=False)
]
query_param_fields += custom_fields
for qpf in query_param_fields:
initial_data[qpf] = request.GET.get(qpf, initial_data.get(qpf, ""))
return initial_data
def get_form_kwargs(self, *args, **kwargs):
kwargs = super().get_form_kwargs(*args, **kwargs)
kbitem = self.request.GET.get(
"kbitem",
self.request.POST.get("kbitem", None),
)
if kbitem:
try:
kwargs["kbcategory"] = KBItem.objects.get(pk=int(kbitem)).category
except (ValueError, KBItem.DoesNotExist):
pass
return kwargs