update the complaint and inquiry creation for the source user

This commit is contained in:
Faheed 2026-01-14 11:26:44 +03:00 committed by ismail
parent 4dd3c3e505
commit dcb6455819
3 changed files with 27 additions and 44 deletions

View File

@ -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,
}

View File

@ -1,4 +1,4 @@
{% extends "layouts/base.html" %}
{% extends base_layout %}
{% load i18n %}
{% load static %}
{% load math %}

View File

@ -156,15 +156,6 @@
<!-- Sidebar -->
<div class="col-lg-4">
<!-- Due Date -->
<div class="mb-3">
<label class="form-label">{% trans "Due Date" %}</label>
<input type="datetime-local" name="due_date" class="form-control"
placeholder="{% trans 'Optional due date' %}">
<small class="form-text text-muted">
{{ _("Leave empty for default")}}
</small>
</div>
<!-- Help Information -->
<div class="alert alert-info">