kaauh_ats/recruitment/management/commands/debug_agency_login.py

56 lines
2.7 KiB
Python

from django.core.management.base import BaseCommand
from recruitment.models import AgencyAccessLink, AgencyJobAssignment, HiringAgency
from django.utils import timezone
class Command(BaseCommand):
help = 'Debug agency login issues by checking existing access links'
def handle(self, *args, **options):
self.stdout.write("=== Agency Access Link Debug ===")
# Check total counts
total_links = AgencyAccessLink.objects.count()
total_assignments = AgencyJobAssignment.objects.count()
total_agencies = HiringAgency.objects.count()
self.stdout.write(f"Total Access Links: {total_links}")
self.stdout.write(f"Total Assignments: {total_assignments}")
self.stdout.write(f"Total Agencies: {total_agencies}")
self.stdout.write("")
if total_links == 0:
self.stdout.write("❌ NO ACCESS LINKS FOUND!")
self.stdout.write("This is likely the cause of 'Invalid token or password' error.")
self.stdout.write("")
self.stdout.write("To fix this:")
self.stdout.write("1. Create an agency first")
self.stdout.write("2. Create a job assignment for the agency")
self.stdout.write("3. Create an access link for the assignment")
return
# Show existing links
self.stdout.write("📋 Existing Access Links:")
for link in AgencyAccessLink.objects.all():
assignment = link.assignment
agency = assignment.agency if assignment else None
job = assignment.job if assignment else None
self.stdout.write(f" 📍 Token: {link.unique_token}")
self.stdout.write(f" Password: {link.access_password}")
self.stdout.write(f" Active: {link.is_active}")
self.stdout.write(f" Expires: {link.expires_at}")
self.stdout.write(f" Agency: {agency.name if agency else 'None'}")
self.stdout.write(f" Job: {job.title if job else 'None'}")
self.stdout.write(f" Valid: {link.is_valid}")
self.stdout.write("")
# Show assignments without links
self.stdout.write("📋 Assignments WITHOUT Access Links:")
assignments_without_links = AgencyJobAssignment.objects.filter(access_link__isnull=True)
for assignment in assignments_without_links:
self.stdout.write(f" 📍 {assignment.agency.name} - {assignment.job.title}")
self.stdout.write(f" Status: {assignment.status}")
self.stdout.write(f" Active: {assignment.is_active}")
self.stdout.write(f" Can Submit: {assignment.can_submit}")
self.stdout.write("")