Files
2025-04-20 17:46:30 +05:45

296 lines
11 KiB
Python

from django.urls import path
from app import views
from app import auth
from app import staffviews
from app import studentviews
from app import parentviews
from app import admissionviews
from app import hodviews
# URL patterns for the main application
urlpatterns = [
# Dashboard URLs ---------------------------------------------------
path("dashboard/", views.dashboard, name="dashboard"),
path("student-dashboard/", studentviews.studentDashboard, name="studentDashboard"),
path("teacher-dashboard/", staffviews.teacherDashboard, name="teacherDashboard"),
path("parent-dashboard/", parentviews.parent_dashboard, name="parentDashboard"),
path(
"admission-officer-dashboard/",
admissionviews.admission_officer_dashboard,
name="admissionOfficerDashboard",
),
path("hodDashboard/", hodviews.hod_dashboard, name="hodDashboard"),
# Notice Management ------------------------------------------------
path("add-notice/", views.add_notice, name="add_notice"),
path("delete-notice/<int:notice_id>/", views.delete_notice, name="delete_notice"),
# Leave Management -------------------------------------------------
# Student Leave
path("request-leave/", views.request_leave, name="request_leave"),
path(
"approve-student-leave/<int:leave_id>/",
views.approve_student_leave,
name="approve_student_leave",
),
path(
"reject-student-leave/<int:leave_id>/",
views.reject_student_leave,
name="reject_student_leave",
),
path("get-student-leaves/", views.get_student_leaves, name="get_student_leaves"),
# Staff Leave
path("request-staff-leave/", views.request_staff_leave, name="request_staff_leave"),
path(
"approve-staff-leave/<int:leave_id>/",
views.approve_staff_leave,
name="approve_staff_leave",
),
path(
"reject-staff-leave/<int:leave_id>/",
views.reject_staff_leave,
name="reject_staff_leave",
),
path("get-staff-leaves/", views.get_staff_leaves, name="get_staff_leaves"),
# Feedback --------------------------------------------------------
# Student Feedback
path("submit-feedback/", views.submit_feedback, name="submit_feedback"),
path(
"submit-institute-feedback/",
views.submit_institute_feedback,
name="submit_institute_feedback",
),
# Staff Feedback
path(
"submit-staff-institute-feedback/",
views.submit_staff_institute_feedback,
name="submit_staff_institute_feedback",
),
# Parent Feedback
path(
"parent/feedback/submit/",
parentviews.submit_parent_feedback,
name="submit_parent_feedback",
),
path(
"parent/feedback/institute/submit/",
parentviews.submit_parent_institute_feedback,
name="submit_parent_institute_feedback",
),
# Profile Management ----------------------------------------------
path("update-profile/", views.update_profile, name="update_profile"),
path("change-password/", views.change_password, name="change_password"),
path(
"teacher-update-profile-picture/",
views.teacher_update_profile_picture,
name="teacher_update_profile_picture",
),
path(
"teacher-change-password/",
views.teacher_change_password,
name="teacher_change_password",
),
# Subject and Course Management -----------------------------------
path("add-subject/", hodviews.add_subject, name="add_subject"),
path(
"subject/<int:subject_id>/files/",
views.get_subject_files,
name="get_subject_files",
),
path(
"subject/<int:subject_id>/syllabus/",
staffviews.view_subject_syllabus,
name="view_subject_syllabus",
),
path("get-subjects/", views.get_subjects, name="get_subjects"),
path("get-teachers/", views.get_teachers, name="get_teachers"),
path("get-course-duration/", views.get_course_duration, name="get_course_duration"),
path(
"get-subject-schedule/", views.get_subject_schedule, name="get_subject_schedule"
),
path('subject/<int:subject_id>/view/', hodviews.view_subject, name='view_subject'),
path('edit-subject/<int:subject_id>/', hodviews.edit_subject, name='edit_subject'),
path('delete-subject/<int:subject_id>/', hodviews.delete_subject, name='delete_subject'),
# Student Management
path('add-student/', hodviews.add_student, name='add_student'),
path('get-student/<int:student_id>/', hodviews.get_student, name='get_student'),
path('edit-student/<int:student_id>/', hodviews.edit_student, name='edit_student'),
path('delete-student/<int:student_id>/', hodviews.delete_student, name='delete_student'),
# HOD Notice Management
path('hod/add-notice/', hodviews.add_notice, name='hod_add_notice'),
path('notice/<int:notice_id>/', hodviews.view_notice, name='view_notice'),
path('delete-notice/<int:notice_id>/', hodviews.delete_notice, name='delete_notice'),
# Subject File Management
path(
"delete-subject-file/",
staffviews.delete_subject_file,
name="delete_subject_file",
),
path(
"get-teacher-subjects/",
staffviews.get_teacher_subjects,
name="get_teacher_subjects",
),
# Attendance Management -------------------------------------------
path("save-attendance/", views.save_attendance, name="save_attendance"),
path(
"get-attendance-form/",
staffviews.get_attendance_form,
name="get_attendance_form",
),
# Password Management ---------------------------------------------
# Password Reset Options
path("password-reset/", auth.reset_password_options, name="reset_password_options"),
# Phone-based Reset
path(
"password-reset/phone/", auth.password_reset_phone, name="phone_reset_password"
),
path(
"password-reset/phone/verify/",
auth.password_reset_phone_verify,
name="verify_reset_otp",
),
path(
"password-reset/phone/resend/", auth.resend_phone_otp, name="resend_phone_otp"
),
# Email-based Reset
path(
"password-reset/email/", auth.password_reset_email, name="email_reset_password"
),
path(
"password-reset/email/verify/",
auth.password_reset_email_verify,
name="password_reset_done",
),
path(
"password-reset/email/resend/", auth.resend_email_code, name="resend_reset_code"
),
# New Password Setup
path("password-reset/set/", auth.set_new_password, name="set_new_password"),
# Password Security
path("check-weak-password/", views.check_weak_password, name="check_weak_password"),
# Parent-Teacher Meeting ------------------------------------------
path("parent/meetings/", parentviews.parent_meetings, name="parent_meetings"),
path("api/meetings/add/", parentviews.add_meeting, name="add_meeting"),
path(
"api/meetings/<int:meeting_id>/complete/",
parentviews.complete_meeting,
name="complete_meeting",
),
path(
"api/meetings/<int:meeting_id>/cancel/",
parentviews.cancel_meeting,
name="cancel_meeting",
),
path(
"api/meetings/<int:meeting_id>/reschedule/",
parentviews.reschedule_meeting,
name="reschedule_meeting",
),
path(
"api/meetings/<int:meeting_id>/notes/",
parentviews.get_meeting_notes,
name="get_meeting_notes",
),
path(
"api/meetings/<int:meeting_id>/agenda/",
parentviews.get_meeting_agenda,
name="get_meeting_agenda",
),
path(
"api/meetings/<int:meeting_id>/cancellation-reason/",
views.get_meeting_cancellation_reason,
name="get_meeting_cancellation_reason",
),
# API Endpoints --------------------------------------------------
# Student API
path(
"api/students/<int:student_id>/details/",
parentviews.get_student_details,
name="get_student_details",
),
path("get-students/", staffviews.get_students, name="get_students"),
# Meeting API Endpoints (HOD)
path("api/hod/meetings/<int:meeting_id>/", hodviews.api_get_meeting, name="api_get_meeting"),
path("api/hod/meetings/", hodviews.api_create_meeting, name="api_create_meeting"),
path("api/hod/meetings/<int:meeting_id>/edit/", hodviews.api_update_meeting, name="api_update_meeting"),
path("api/hod/meetings/<int:meeting_id>/cancel/", hodviews.api_cancel_meeting, name="api_cancel_meeting"),
path("api/hod/meetings/<int:meeting_id>/notes/", hodviews.get_meeting_notes, name="get_meeting_notes"),
path("api/hod/meetings/<int:meeting_id>/agenda/", hodviews.get_meeting_agenda, name="get_meeting_agenda"),
path("api/hod/meetings/<int:meeting_id>/cancellation-reason/", hodviews.get_cancellation_reason, name="get_cancellation_reason"),
# Routine API Endpoints (HOD)
path("api/hod/routines/", hodviews.api_create_routine, name="api_create_routine"),
path("api/hod/routines/<int:routine_id>/", hodviews.api_get_routine, name="api_get_routine"),
path("api/hod/routines/<int:routine_id>/edit/", hodviews.api_update_routine, name="api_update_routine"),
path("api/hod/routines/<int:routine_id>/delete/", hodviews.api_delete_routine, name="api_delete_routine"),
# Progress API Endpoints (HOD)
path("api/get-student-progress/", hodviews.get_student_progress, name="get_student_progress"),
path("api/get-progress/<int:progress_id>/", hodviews.get_progress, name="get_progress"),
path("api/edit-progress/<int:progress_id>/", hodviews.edit_progress, name="edit_progress"),
# Firebase Cloud Messaging ---------------------------------------
path("saveFCMToken/", views.save_fcm_token, name="saveFCMToken"),
# Admission Officer routes ----------------------------------------
path("add-student/", admissionviews.add_student, name="add_student"),
path("add-batch/", admissionviews.add_batch, name="add_batch"),
path("add-course/", admissionviews.add_course, name="add_course"),
path(
"add-course-tracking/",
admissionviews.add_course_tracking,
name="add_course_tracking",
),
path("get-courses/", admissionviews.get_courses, name="get_courses"),
path("get-batches/", admissionviews.get_batches, name="get_batches"),
path(
"admission-get-students/",
admissionviews.get_students,
name="admission_get_students",
),
path(
"get-student/<int:student_id>/", admissionviews.get_student, name="get_student"
),
path("edit-student/", admissionviews.edit_student, name="edit_student"),
path(
"get-course-tracking/<int:tracking_id>/",
admissionviews.get_course_tracking,
name="get_course_tracking",
),
path(
"edit-course-tracking/",
admissionviews.edit_course_tracking,
name="edit_course_tracking",
),
# Staff Management URLs
path('staff/<int:staff_id>/', hodviews.view_staff, name='view_staff'),
path('edit-staff/<int:staff_id>/', hodviews.edit_staff, name='edit_staff'),
path('delete-staff/<int:staff_id>/', hodviews.delete_staff, name='delete_staff'),
path('add-staff/', hodviews.add_staff, name='add_staff'),
# Test endpoints (commented out)
# path('test/error/505/', views.test_505_error, name='test_505_error'),
]