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 .models import Inquiry
from .forms import InquiryForm from .forms import InquiryForm
from apps.organizations.models import Patient from apps.organizations.models import Patient
from apps.px_sources.models import SourceUser, PXSource
# Determine base layout based on user type # Determine base layout based on user type
from apps.px_sources.models import SourceUser
source_user = SourceUser.objects.filter(user=request.user).first() source_user = SourceUser.objects.filter(user=request.user).first()
base_layout = 'layouts/source_user_base.html' if source_user else 'layouts/base.html' base_layout = 'layouts/source_user_base.html' if source_user else 'layouts/base.html'
if request.method == 'POST': 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: try:
# Get form data # Save inquiry
patient_id = request.POST.get("patient_id", None) inquiry = form.save(commit=False)
hospital_id = request.POST.get("hospital_id")
department_id = request.POST.get("department_id", None) # Set source for source users
source_user = SourceUser.objects.filter(user=request.user).first()
subject = request.POST.get("subject") if source_user:
message = request.POST.get("message") inquiry.source = source_user.source
category = request.POST.get("category") inquiry.created_by = request.user
# Contact info (if no patient) inquiry.save()
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,
)
# Log audit # Log audit
AuditService.log_event( AuditService.log_event(
@ -1086,12 +1077,13 @@ def inquiry_create(request):
return redirect("complaints:inquiry_create") return redirect("complaints:inquiry_create")
# GET request - show form # 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: if not request.user.is_px_admin() and request.user.hospital:
hospitals = hospitals.filter(id=request.user.hospital.id) hospitals = hospitals.filter(id=request.user.hospital.id)
context = { context = {
'hospitals': hospitals, 'form': form,
'base_layout': base_layout, 'base_layout': base_layout,
'source_user': source_user, 'source_user': source_user,
} }

View File

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

View File

@ -156,15 +156,6 @@
<!-- Sidebar --> <!-- Sidebar -->
<div class="col-lg-4"> <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 --> <!-- Help Information -->
<div class="alert alert-info"> <div class="alert alert-info">