@login_required()
def form_view(request: WSGIRequest, pk: int) -> TemplateResponse:
ticket = get_object_or_null_obj(HelpDeskTicket, pk=pk)
nav = HelpDeskNavigation()
nav.set_page_title_to_form_action_from_model_instance(ticket)
nav.breadcrumbs.add('Tickets', 'django_spire:help_desk:page:list')
if pk:
nav.breadcrumbs.add(
name=str(ticket),
view_name='django_spire:help_desk:page:detail',
view_kwargs={'pk': ticket.pk},
)
nav.breadcrumbs.add('Edit')
nav.breadcrumbs.add(f'{ticket.description}' if ticket.pk else 'New Ticket (With Glue)')
form = forms.HelpDeskTicketModelForm(request.POST or None, instance=ticket)
Glue.form(request, 'ticket_form', form, Glue.Access.DELETE)
context = {**nav.as_context()}
return TemplateResponse(
request=request,
context=context,
template='django_spire/help_desk/page/ticket_form_page.html',
)