HH/test_api_fix.py

61 lines
1.8 KiB
Python

#!/usr/bin/env python
"""
Test script to verify the staff hierarchy API fix.
"""
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PX360.settings')
django.setup()
from apps.organizations.models import Staff
def test_api_data():
"""Test that staff data is available"""
print("Testing Staff Hierarchy API Data...")
print("-" * 60)
# Get all staff
staff_queryset = Staff.objects.all()
total_staff = staff_queryset.count()
print(f"✓ Total staff in database: {total_staff}")
if total_staff == 0:
print("\n⚠️ No staff data found!")
return False
# Get staff with managers
staff_list = staff_queryset.select_related('report_to', 'hospital', 'department')
# Find root nodes
staff_dict = {staff.id: staff for staff in staff_list}
root_staff = [
staff for staff in staff_list
if staff.report_to_id is None or staff.report_to_id not in staff_dict
]
print(f"✓ Root nodes (top-level managers): {len(root_staff)}")
print()
# Show sample data
print("Sample Top-Level Managers:")
for i, staff in enumerate(root_staff[:3], 1):
print(f" {i}. {staff.get_full_name()} ({staff.job_title or 'No title'})")
print(f" Hospital: {staff.hospital.name if staff.hospital else 'None'}")
print(f" Department: {staff.department.name if staff.department else 'None'}")
if len(root_staff) > 3:
print(f" ... and {len(root_staff) - 3} more")
print()
print("-" * 60)
print("✓ API data test PASSED!")
print()
print("The hierarchy API should now work correctly.")
print("Visit http://localhost:8000/organizations/staff/hierarchy/ to view it.")
return True
if __name__ == '__main__':
success = test_api_data()
exit(0 if success else 1)