From dcb645581928df5d492d99bd71e6aa089edbedee Mon Sep 17 00:00:00 2001 From: Faheed Date: Wed, 14 Jan 2026 11:26:44 +0300 Subject: [PATCH] update the complaint and inquiry creation for the source user --- apps/complaints/ui_views.py | 60 ++++++++++------------ templates/complaints/complaint_detail.html | 2 +- templates/complaints/inquiry_form.html | 9 ---- 3 files changed, 27 insertions(+), 44 deletions(-) diff --git a/apps/complaints/ui_views.py b/apps/complaints/ui_views.py index 73f325d..fdc6cc4 100644 --- a/apps/complaints/ui_views.py +++ b/apps/complaints/ui_views.py @@ -1029,45 +1029,36 @@ def inquiry_create(request): from .models import Inquiry from .forms import InquiryForm from apps.organizations.models import Patient + from apps.px_sources.models import SourceUser, PXSource # Determine base layout based on user type - from apps.px_sources.models import SourceUser source_user = SourceUser.objects.filter(user=request.user).first() base_layout = 'layouts/source_user_base.html' if source_user else 'layouts/base.html' if request.method == 'POST': + # Handle form submission + form = InquiryForm(request.POST, user=request.user) + + if not form.is_valid(): + messages.error(request, f"Please correct the errors: {form.errors}") + context = { + 'form': form, + 'base_layout': base_layout, + 'source_user': source_user, + } + return render(request, 'complaints/inquiry_form.html', context) + try: - # Get form data - patient_id = request.POST.get("patient_id", None) - hospital_id = request.POST.get("hospital_id") - department_id = request.POST.get("department_id", None) - - subject = request.POST.get("subject") - message = request.POST.get("message") - category = request.POST.get("category") - - # Contact info (if no patient) - contact_name = request.POST.get("contact_name", "") - contact_phone = request.POST.get("contact_phone", "") - contact_email = request.POST.get("contact_email", "") - - # Validate required fields - if not all([hospital_id, subject, message, category]): - messages.error(request, "Please fill in all required fields.") - return redirect("complaints:inquiry_create") - - # Create inquiry - inquiry = Inquiry.objects.create( - patient_id=patient_id if patient_id else None, - hospital_id=hospital_id, - department_id=department_id if department_id else None, - subject=subject, - message=message, - category=category, - contact_name=contact_name, - contact_phone=contact_phone, - contact_email=contact_email, - ) + # Save inquiry + inquiry = form.save(commit=False) + + # Set source for source users + source_user = SourceUser.objects.filter(user=request.user).first() + if source_user: + inquiry.source = source_user.source + inquiry.created_by = request.user + + inquiry.save() # Log audit AuditService.log_event( @@ -1086,12 +1077,13 @@ def inquiry_create(request): return redirect("complaints:inquiry_create") # GET request - show form - hospitals = Hospital.objects.filter(status="active") + form = InquiryForm(user=request.user) + hospitals = Hospital.objects.filter(status='active') if not request.user.is_px_admin() and request.user.hospital: hospitals = hospitals.filter(id=request.user.hospital.id) context = { - 'hospitals': hospitals, + 'form': form, 'base_layout': base_layout, 'source_user': source_user, } diff --git a/templates/complaints/complaint_detail.html b/templates/complaints/complaint_detail.html index 46aee2f..567c317 100644 --- a/templates/complaints/complaint_detail.html +++ b/templates/complaints/complaint_detail.html @@ -1,4 +1,4 @@ -{% extends "layouts/base.html" %} +{% extends base_layout %} {% load i18n %} {% load static %} {% load math %} diff --git a/templates/complaints/inquiry_form.html b/templates/complaints/inquiry_form.html index aaf4e35..ce61e37 100644 --- a/templates/complaints/inquiry_form.html +++ b/templates/complaints/inquiry_form.html @@ -156,15 +156,6 @@
- -
- - - - {{ _("Leave empty for default")}} - -