diff --git a/ChatServiceApp/forms.py b/ChatServiceApp/forms.py index 91cc81a..48631d8 100644 --- a/ChatServiceApp/forms.py +++ b/ChatServiceApp/forms.py @@ -5,7 +5,7 @@ from django.core.exceptions import ValidationError from .models import * -class CreateTicketForm(forms.ModelForm): +class TicketForm(forms.ModelForm): text = forms.CharField(required=True) # files = forms.CharField(required=True) class Meta: diff --git a/ChatServiceApp/js_urls.py b/ChatServiceApp/js_urls.py index c9f1c51..9641770 100644 --- a/ChatServiceApp/js_urls.py +++ b/ChatServiceApp/js_urls.py @@ -7,7 +7,8 @@ from django.contrib.auth import views from RoutesApp.js_views import new_route_view_ajax urlpatterns = [ - path('support_create_ticket_ajax/', support_create_ticket_ajax, name='support_create_ticket_ajax'), + path('support_create_ticket_form/', support_create_ticket_form_ajax, name='support_create_ticket_form_ajax'), + path('create_ticket/', create_ticket_ajax, name='create_ticket_ajax'), # path('create_/', registration_ajax, name='registration_ajax'), ] \ No newline at end of file diff --git a/ChatServiceApp/js_views.py b/ChatServiceApp/js_views.py index a2783a9..d86604a 100644 --- a/ChatServiceApp/js_views.py +++ b/ChatServiceApp/js_views.py @@ -13,7 +13,7 @@ from django.template.loader import render_to_string from django.urls import reverse @login_required(login_url='/profile/login/') -def support_create_ticket_ajax(request): +def support_create_ticket_form_ajax(request): from ChatServiceApp.forms import CreateTicketForm if request.method != 'POST': @@ -24,4 +24,52 @@ def support_create_ticket_ajax(request): } html = render_to_string('blocks/profile/b_create_ticket.html', Dict, request=request) - return JsonResponse({'html': html}, status=200) \ No newline at end of file + return JsonResponse({'html': html}, status=200) + + +@login_required(login_url='/profile/login/') +def create_ticket_ajax(request): + from ChatServiceApp.forms import TicketForm + + if request.method != 'POST': + raise Http404 + + try: + + data = request.POST + + form = TicketForm(data) + if not form.is_valid(): + form.initial = form.cleaned_data + Dict = {'form': form} + html = render_to_string('blocks/profile/b_create_ticket.html', Dict, request=request) + return JsonResponse({'html': html}, status=400) + + obj = form.save(commit=False) + obj.owner = request.user + obj.save() + + Dict = { + 'ticket': obj + } + + + html = render_to_string('blocks/profile/b_support_chat.html', Dict, request=request) + + res_Dict = { + 'html': html + } + + return JsonResponse(res_Dict) + + except Exception as e: + + errors_Dict = { + 'errors': { + 'all__': f'ошибка в запросе = {str(e)}' + } + } + Dict = {'form': errors_Dict} + html = render_to_string('blocks/profile/b_create_ticket.html', Dict, request=request) + return JsonResponse({'html': html}, status=400) +