update the complaint and inquiry creation for the source user
This commit is contained in:
parent
4dd3c3e505
commit
dcb6455819
@ -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,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{% extends "layouts/base.html" %}
|
{% extends base_layout %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
{% load math %}
|
{% load math %}
|
||||||
|
|||||||
@ -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">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user