from django.urls import path from . import views_frontend from . import views from . import views_integration from . import views_source urlpatterns = [ path("", views_frontend.dashboard_view, name="dashboard"), # Job URLs (using JobPosting model) path("persons/", views.PersonListView.as_view(), name="person_list"), path("persons/create/", views.PersonCreateView.as_view(), name="person_create"), path("persons//", views.PersonDetailView.as_view(), name="person_detail"), path("persons//update/", views.PersonUpdateView.as_view(), name="person_update"), path("persons//delete/", views.PersonDeleteView.as_view(), name="person_delete"), path("jobs/", views_frontend.JobListView.as_view(), name="job_list"), path("jobs/create/", views.create_job, name="job_create"), path( "job//upload_image_simple/", views.job_image_upload, name="job_image_upload", ), path("jobs//update/", views.edit_job, name="job_update"), # path('jobs//delete/', views., name='job_delete'), path('jobs//', views.job_detail, name='job_detail'), # path('jobs//download/cvs/', views.job_cvs_download, name='job_cvs_download'), path('job//request-download/', views.request_cvs_download, name='request_cvs_download'), path('job//download-ready/', views.download_ready_cvs, name='download_ready_cvs'), path('careers/',views.kaauh_career,name='kaauh_career'), # LinkedIn Integration URLs path( "jobs//post-to-linkedin/", views.post_to_linkedin, name="post_to_linkedin", ), path("jobs/linkedin/login/", views.linkedin_login, name="linkedin_login"), path("jobs/linkedin/callback/", views.linkedin_callback, name="linkedin_callback"), path("jobs//staff-assignment/", views.staff_assignment_view, name="staff_assignment_view"), # Candidate URLs path( "applications/", views_frontend.ApplicationListView.as_view(), name="application_list" ), path( "application/create/", views_frontend.ApplicationCreateView.as_view(), name="application_create", ), path( "application/create//", views_frontend.ApplicationCreateView.as_view(), name="application_create_for_job", ), path( "jobs//application/", views_frontend.JobApplicationListView.as_view(), name="job_applications_list", ), path( "applications//update/", views_frontend.ApplicationUpdateView.as_view(), name="application_update", ), path( "application//delete/", views_frontend.ApplicationDeleteView.as_view(), name="application_delete", ), path( "application//view/", views_frontend.application_detail, name="application_detail", ), path( "application//resume-template/", views_frontend.application_resume_template_view, name="application_resume_template", ), path( "application//update-stage/", views_frontend.application_update_stage, name="application_update_stage", ), path( "application//retry-scoring/", views_frontend.retry_scoring_view, name="application_retry_scoring", ), # Training URLs path("training/", views_frontend.TrainingListView.as_view(), name="training_list"), path( "training/create/", views_frontend.TrainingCreateView.as_view(), name="training_create", ), path( "training//", views_frontend.TrainingDetailView.as_view(), name="training_detail", ), path( "training//update/", views_frontend.TrainingUpdateView.as_view(), name="training_update", ), path( "training//delete/", views_frontend.TrainingDeleteView.as_view(), name="training_delete", ), # Meeting URLs # path("meetings/", views.ZoomMeetingListView.as_view(), name="list_meetings"), # JobPosting functional views URLs (keeping for compatibility) path("api/create/", views.create_job, name="create_job_api"), path("api//edit/", views.edit_job, name="edit_job_api"), # ERP Integration URLs path( "integration/erp/", views_integration.ERPIntegrationView.as_view(), name="erp_integration", ), path( "integration/erp/create-job/", views_integration.erp_create_job_view, name="erp_create_job", ), path( "integration/erp/update-job/", views_integration.erp_update_job_view, name="erp_update_job", ), path( "integration/erp/health/", views_integration.erp_integration_health, name="erp_integration_health", ), # Form Preview URLs # path('forms/', views.form_list, name='form_list'), path("forms/builder/", views.form_builder, name="form_builder"), path( "forms/builder//", views.form_builder, name="form_builder" ), path("forms/", views.form_templates_list, name="form_templates_list"), path( "forms/create-template/", views.create_form_template, name="create_form_template", ), path( "jobs//edit_linkedin_post_content/", views.edit_linkedin_post_content, name="edit_linkedin_post_content", ), path( "jobs//applications_screening_view/", views.applications_screening_view, name="applications_screening_view", ), path( "jobs//applications_exam_view/", views.applications_exam_view, name="applications_exam_view", ), path( "jobs//applications_interview_view/", views.applications_interview_view, name="applications_interview_view", ), path( "jobs//applications_document_review_view/", views.applications_document_review_view, name="applications_document_review_view", ), path( "jobs//applications_offer_view/", views_frontend.applications_offer_view, name="applications_offer_view", ), path( "jobs//applications_hired_view/", views_frontend.applications_hired_view, name="applications_hired_view", ), path( "jobs//export//csv/", views_frontend.export_applications_csv, name="export_applications_csv", ), path( "jobs//application//update_status///", views_frontend.update_application_status, name="update_application_status", ), # Sync URLs (check) path( "jobs//sync-hired-applications/", views_frontend.sync_hired_applications, name="sync_hired_applications", ), path( "sources//test-connection/", views_frontend.test_source_connection, name="test_source_connection", ), # path( # "jobs///reschedule_meeting_for_application//", # views.reschedule_meeting_for_application, # name="reschedule_meeting_for_application", # ), path( "jobs//update_application_exam_status/", views.update_application_exam_status, name="update_application_exam_status", ), # path( # "jobs//bulk_update_application_exam_status/", # views.bulk_update_application_exam_status, # name="bulk_update_application_exam_status", # ), path( "htmx//application_criteria_view/", views.application_criteria_view_htmx, name="application_criteria_view_htmx", ), path( "htmx//application_set_exam_date/", views.application_set_exam_date, name="application_set_exam_date", ), path( "htmx//application_update_status/", views.application_update_status, name="application_update_status", ), # path('forms/form//submit/', views.submit_form, name='submit_form'), # path('forms/form//', views.form_wizard_view, name='form_wizard'), path( "forms//submissions//", views.form_submission_details, name="form_submission_details", ), path( "forms/template//submissions/", views.form_template_submissions_list, name="form_template_submissions_list", ), path( "forms/template//all-submissions/", views.form_template_all_submissions, name="form_template_all_submissions", ), # path('forms//', views.form_preview, name='form_preview'), # path('forms//submit/', views.form_submit, name='form_submit'), # path('forms//embed/', views.form_embed, name='form_embed'), # path('forms//submissions/', views.form_submissions, name='form_submissions'), # path('forms//edit/', views.edit_form, name='edit_form'), # path('api/forms/save/', views.save_form_builder, name='save_form_builder'), # path('api/forms//load/', views.load_form, name='load_form'), # path('api/forms//update/', views.update_form_builder, name='update_form_builder'), # path('api/templates/', views.list_form_templates, name='list_form_templates'), # path('api/templates/save/', views.save_form_template, name='save_form_template'), # path('api/templates//', views.load_form_template, name='load_form_template'), # path('api/templates//delete/', views.delete_form_template, name='delete_form_template'), # path( # "jobs//calendar/", # views.interview_calendar_view, # name="interview_calendar", # ), # path( # "jobs//calendar/interview//", # views.interview_detail_view, # name="interview_detail", # ), # users urls path("user/", views.user_detail, name="user_detail"), path( "user/user_profile_image_update/", views.user_profile_image_update, name="user_profile_image_update", ), path("easy_logs/", views.easy_logs, name="easy_logs"), path("settings/", views.admin_settings, name="admin_settings"), path("staff/create", views.create_staff_user, name="create_staff_user"), path( "set_staff_password//", views.set_staff_password, name="set_staff_password", ), path( "account_toggle_status/", views.account_toggle_status, name="account_toggle_status", ), # Source URLs path("sources/", views_source.SourceListView.as_view(), name="source_list"), path( "sources/create/", views_source.SourceCreateView.as_view(), name="source_create" ), path( "sources//", views_source.SourceDetailView.as_view(), name="source_detail", ), path( "sources//update/", views_source.SourceUpdateView.as_view(), name="source_update", ), path( "sources//delete/", views_source.SourceDeleteView.as_view(), name="source_delete", ), path( "sources//generate-keys/", views_source.generate_api_keys_view, name="generate_api_keys", ), path( "sources//toggle-status/", views_source.toggle_source_status_view, name="toggle_source_status", ), path( "sources/api/copy-to-clipboard/", views_source.copy_to_clipboard_view, name="copy_to_clipboard", ), # Meeting Comments URLs # path( # "meetings//comments/add/", # views.add_meeting_comment, # name="add_meeting_comment", # ), # path( # "meetings//comments//edit/", # views.edit_meeting_comment, # name="edit_meeting_comment", # ), # path( # "meetings//comments//delete/", # views.delete_meeting_comment, # name="delete_meeting_comment", # ), # path( # "meetings//set_meeting_application/", # views.set_meeting_application, # name="set_meeting_application", # ), # Hiring Agency URLs path("agencies/", views.agency_list, name="agency_list"), path("agencies/create/", views.agency_create, name="agency_create"), path("agencies//", views.agency_detail, name="agency_detail"), path("agencies//update/", views.agency_update, name="agency_update"), path("agencies//delete/", views.agency_delete, name="agency_delete"), path( #check the html of this url it is not used anywhere "agencies//applications/", views.agency_applications, name="agency_applications", ), # path('agencies//send-message/', views.agency_detail_send_message, name='agency_detail_send_message'), # Agency Assignment Management URLs path( "agency-assignments/", views.agency_assignment_list, name="agency_assignment_list", ), path( #check "agency-assignments/create/", views.agency_assignment_create, name="agency_assignment_create", ), path(#check "agency-assignments//create/", views.agency_assignment_create, name="agency_assignment_create", ), path( "agency-assignments//", views.agency_assignment_detail, name="agency_assignment_detail", ), path( "agency-assignments//update/", views.agency_assignment_update, name="agency_assignment_update", ), path( "agency-assignments//extend-deadline/", views.agency_assignment_extend_deadline, name="agency_assignment_extend_deadline", ), # Agency Access Link URLs path( "agency-access-links/create/", views.agency_access_link_create, name="agency_access_link_create", ), path( "agency-access-links//", views.agency_access_link_detail, name="agency_access_link_detail", ), path( "agency-access-links//deactivate/", views.agency_access_link_deactivate, name="agency_access_link_deactivate", ), path( "agency-access-links//reactivate/", views.agency_access_link_reactivate, name="agency_access_link_reactivate", ), # Admin Message Center URLs (messaging functionality removed) # path('admin/messages/', views.admin_message_center, name='admin_message_center'), # path('admin/messages/compose/', views.admin_compose_message, name='admin_compose_message'), # path('admin/messages//', views.admin_message_detail, name='admin_message_detail'), # path('admin/messages//reply/', views.admin_message_reply, name='admin_message_reply'), # path('admin/messages//mark-read/', views.admin_mark_message_read, name='admin_mark_message_read'), # path('admin/messages//delete/', views.admin_delete_message, name='admin_delete_message'), # Agency Portal URLs (for external agencies) # path("portal/login/", views.agency_portal_login, name="agency_portal_login"), path("portal//reset/", views.portal_password_reset, name="portal_password_reset"), path( "portal/dashboard/", views.agency_portal_dashboard, name="agency_portal_dashboard", ), # Unified Portal URLs path("login/", views.portal_login, name="portal_login"), path( "applicant/dashboard/", views.applicant_portal_dashboard, name="applicant_portal_dashboard", ), path( "applications/application//", views.applicant_application_detail, name="applicant_application_detail", ), # path( # "candidate//applications//detail//", # views.applicant_application_detail, # name="applicant_application_detail", # ), path( "portal/dashboard/", views.agency_portal_dashboard, name="agency_portal_dashboard", ), path( "portal/persons/", views.agency_portal_persons_list, name="agency_portal_persons_list", ), path( "portal/assignment//", views.agency_portal_assignment_detail, name="agency_portal_assignment_detail", ), path( "portal/assignment//submit-application/", views.agency_portal_submit_application_page, name="agency_portal_submit_application_page", ), path( "portal/submit-application/", views.agency_portal_submit_application, name="agency_portal_submit_application", ), path("portal/logout/", views.portal_logout, name="portal_logout"), # Agency Portal Candidate Management URLs path( "portal/applications//edit/", views.agency_portal_edit_application, name="agency_portal_edit_application", ), path( "portal/applications//delete/", views.agency_portal_delete_application, name="agency_portal_delete_application", ), # API URLs for messaging (removed) # path('api/agency/messages//', views.api_agency_message_detail, name='api_agency_message_detail'), # path('api/agency/messages//mark-read/', views.api_agency_mark_message_read, name='api_agency_mark_message_read'), # API URLs for candidate management path( "api/application//", views.api_application_detail, name="api_application_detail", ), # # Admin Notification API # path('api/admin/notification-count/', views.api_notification_count, name='admin_notification_count'), # # Agency Notification API # path('api/agency/notification-count/', views.api_notification_count, name='api_agency_notification_count'), # # SSE Notification Stream # path('api/notifications/stream/', views.notification_stream, name='notification_stream'), # # Notification URLs # path('notifications/', views.notification_list, name='notification_list'), # path('notifications//', views.notification_detail, name='notification_detail'), # path('notifications//mark-read/', views.notification_mark_read, name='notification_mark_read'), # path('notifications//mark-unread/', views.notification_mark_unread, name='notification_mark_unread'), # path('notifications//delete/', views.notification_delete, name='notification_delete'), # path('notifications/mark-all-read/', views.notification_mark_all_read, name='notification_mark_all_read'), # path('api/notification-count/', views.api_notification_count, name='api_notification_count'), # participants urls # path( # "participants/", # views_frontend.ParticipantsListView.as_view(), # name="participants_list", # ), # path( # "participants/create/", # views_frontend.ParticipantsCreateView.as_view(), # name="participants_create", # ), # path( # "participants//", # views_frontend.ParticipantsDetailView.as_view(), # name="participants_detail", # ), # path( # "participants//update/", # views_frontend.ParticipantsUpdateView.as_view(), # name="participants_update", # ), # path( # "participants//delete/", # views_frontend.ParticipantsDeleteView.as_view(), # name="participants_delete", # ), # Email composition URLs path( "jobs//applications/compose-email/", views.compose_application_email, name="compose_application_email", ), # Message URLs path("messages/", views.message_list, name="message_list"), path("messages/create/", views.message_create, name="message_create"), path("messages//", views.message_detail, name="message_detail"), path("messages//reply/", views.message_reply, name="message_reply"), path("messages//mark-read/", views.message_mark_read, name="message_mark_read"), path("messages//mark-unread/", views.message_mark_unread, name="message_mark_unread"), path("messages//delete/", views.message_delete, name="message_delete"), path("api/unread-count/", views.api_unread_count, name="api_unread_count"), # Documents path("documents/upload//", views.document_upload, name="document_upload"), path("documents//delete/", views.document_delete, name="document_delete"), path("documents//download/", views.document_download, name="document_download"), # Candidate Document Management URLs path("application/documents/upload//", views.document_upload, name="application_document_upload"), path("application/documents//delete/", views.document_delete, name="application_document_delete"), path("application/documents//download/", views.document_download, name="application_document_download"), path('jobs//applications/compose_email/', views.compose_application_email, name='compose_application_email'), # path('interview/partcipants//',views.create_interview_participants,name='create_interview_participants'), # path('interview/email//',views.send_interview_email,name='send_interview_email'), # Candidate Signup path('application/signup//', views.application_signup, name='application_signup'), # Password Reset path('user//password-reset/', views.portal_password_reset, name='portal_password_reset'), # Interview URLs path('interviews/', views.interview_list, name='interview_list'), path('interviews//', views.interview_detail, name='interview_detail'), # Interview Creation URLs path('interviews/create//', views.interview_create_type_selection, name='interview_create_type_selection'), path('interviews/create//remote/', views.interview_create_remote, name='interview_create_remote'), path('interviews/create//onsite/', views.interview_create_onsite, name='interview_create_onsite'), path('interviews//get_interview_list', views.get_interview_list, name='get_interview_list'), # # --- SCHEDULED INTERVIEW URLS (New Centralized Management) --- # path('interview/list/', views.interview_list, name='interview_list'), # path('interviews//', views.ScheduledInterviewDetailView.as_view(), name='scheduled_interview_detail'), # path('interviews//update/', views.ScheduledInterviewUpdateView.as_view(), name='update_scheduled_interview'), # path('interviews//delete/', views.ScheduledInterviewDeleteView.as_view(), name='delete_scheduled_interview'), #interview and meeting related urls # path( # "jobs//schedule-interviews/", # views.schedule_interviews_view, # name="schedule_interviews", # ), # path( # "jobs//confirm-schedule-interviews/", # views.confirm_schedule_interviews_view, # name="confirm_schedule_interviews_view", # ), # path( # "meetings/create-meeting/", # views.ZoomMeetingCreateView.as_view(), # name="create_meeting", # ), # path( # "meetings/meeting-details//", # views.ZoomMeetingDetailsView.as_view(), # name="meeting_details", # ), # path( # "meetings/update-meeting//", # views.ZoomMeetingUpdateView.as_view(), # name="update_meeting", # ), # path( # "meetings/delete-meeting//", # views.ZoomMeetingDeleteView, # name="delete_meeting", # ), # Candidate Meeting Scheduling/Rescheduling URLs # path( # "jobs//applications//schedule-meeting/", # views.schedule_application_meeting, # name="schedule_application_meeting", # ), # path( # "api/jobs//applications//schedule-meeting/", # views.api_schedule_application_meeting, # name="api_schedule_application_meeting", # ), # path( # "jobs//applications//reschedule-meeting//", # views.reschedule_application_meeting, # name="reschedule_application_meeting", # ), # path( # "api/jobs//applications//reschedule-meeting//", # views.api_reschedule_application_meeting, # name="api_reschedule_application_meeting", # ), # New URL for simple page-based meeting scheduling # path( # "jobs//applications//schedule-meeting-page/", # views.schedule_meeting_for_application, # name="schedule_meeting_for_application", # ), # path( # "jobs//applications//delete_meeting_for_application//", # views.delete_meeting_for_candidate, # name="delete_meeting_for_candidate", # ), # path("interviews/meetings/", views.MeetingListView.as_view(), name="list_meetings"), # 1. Onsite Reschedule URL # path( # '/application//onsite/reschedule//', # views.reschedule_onsite_meeting, # name='reschedule_onsite_meeting' # ), # 2. Onsite Delete URL # path( # 'job//applications//delete-onsite-meeting//', # views.delete_onsite_meeting_for_application, # name='delete_onsite_meeting_for_application' # ), # path( # 'job//application//schedule/onsite/', # views.schedule_onsite_meeting_for_application, # name='schedule_onsite_meeting_for_application' # This is the name used in the button # ), # Detail View (assuming slug is on ScheduledInterview) # path("interviews/meetings//", views.meeting_details, name="meeting_details"), # Email invitation URLs # path("interviews/meetings//send-application-invitation/", views.send_application_invitation, name="send_application_invitation"), # path("interviews/meetings//send-participants-invitation/", views.send_participants_invitation, name="send_participants_invitation"), ]