from django.urls import path, include from generic.models import Examination from . import views from generic.views import ExamViews as GenericExamViews, GenericViewBase app_name = "generic" urlpatterns = [ # path('', views.question_list, name='question_list'), path("examination/", views.ExaminationView.as_view(), name="examination_view"), path("examination/", views.examination_detail, name="examination_detail"), path( "examination//delete", views.ExaminationDelete.as_view(), name="examination_delete", ), path( "examination//update", views.ExaminationUpdate.as_view(), name="examination_update", ), path( "examination//merge", views.examination_merge, name="examination_merge" ), path("examination/create/", views.create_examination, name="create_examination"), path( "examination/ajax/get_examination_id", views.get_examination_id, name="get_examination_id", ), path( "generic_exam_json_edit", views.generic_exam_json_edit, name="generic_exam_json_edit", ), path( "examination-autocomplete", views.ExaminationAutocomplete.as_view( model=Examination, create_field="examination" ), name="examination-autocomplete", ), path( "cids/manage//update", views.CidUserUpdate.as_view(), name="update_cid" ), path( "cids/manage//update/exams", views.CidUserExamUpdate.as_view(), name="update_cid_exams", ), path( "cids/manage//email_results", views.candidate_email_results, name="candidate_email_results", ), path( "cids/manage//email_details", views.candidate_email_details, name="candidate_email_details", ), path("cids/manage/", views.CidUserView.as_view(), name="manage_cids"), path("cids/manage/exams", views.CidUserExamView.as_view(), name="manage_cid_exams"), path("cids/group/", views.cid_group_view, name="cid_group_view"), path("cids/group/all", views.cid_group_view_all, name="cid_group_view_all"), path( "cids/group//", views.cid_group_view_detail, name="cid_group_detail", ), path("cids/group//email", views.group_email, name="group_email"), path( "cids/group//exams", views.CidGroupExamUpdate.as_view(), name="cid_group_exams", ), path( "cids/group//email_results", views.group_email_results, name="group_email_results", ), path( "cids/group//email_results/resend", views.group_email_results_resend, name="group_email_results_resend", ), path( "cids/group//email/resend", views.group_email_resend, name="group_email_resend", ), path( "cids/group//update", views.CidUserGroupUpdate.as_view(), name="cid_group_update", ), path( "cids/group//delete", views.CidUserGroupDelete.as_view(), name="cid_group_delete", ), path( "cids/group/create", views.CidUserGroupCreate.as_view(), name="cid_group_create" ), path( "user/bulk_delete_supervisors/", views.users_bulk_delete_supervisors, name="users_bulk_delete_supervisors", ), path( "user/bulk_edit/", views.users_bulk_edit, name="users_bulk_edit", ), path("user/group/", views.user_group_view, name="user_group_view"), path("user/group/all", views.user_group_view_all, name="user_group_view_all"), path( "user/group//", views.user_group_view_detail, name="user_group_detail", ), path( "user/group//exams", views.UserGroupExamUpdate.as_view(), name="user_group_exams", ), path( "user/group//update", views.UserUserGroupUpdate.as_view(), name="user_group_update", ), path( "user/group//delete", views.UserUserGroupDelete.as_view(), name="user_group_delete", ), path( "user/group/create", views.UserUserGroupCreate.as_view(), name="user_group_create", ), path("cids/create", views.manage_cid_users, name="manage_cid_users"), path("cids//details", views.cid_details, name="cid_details"), path("cids/create/email", views.create_cid_email, name="create_cid_email"), path("supervisor", views.SupervisorList.as_view(), name="supervisor"), path( "supervisor/", views.SupervisorDetail.as_view(), name="supervisor_detail", ), path( "supervisor//edit", views.SupervisorUpdate.as_view(), name="supervisor_edit", ), path( "supervisor/create", views.SupervisorCreate.as_view(), name="supervisor_create" ), path( "supervisor//delete", views.SupervisorDelete.as_view(), name="supervisor_delete", ), path( "examcollection/", views.ExamCollectionList.as_view(), name="examcollection_list", ), path( "examcollection//", views.ExamCollectionDetail.as_view(), name="examcollection_detail", ), path( "examcollection//edit", views.ExamCollectionEdit.as_view(), name="examcollection_edit", ), path( "examcollection/create", views.ExamCollectionCreate.as_view(), name="examcollection_create", ), path( "examcollection//clone", views.ExamCollectionClone.as_view(), name="examcollection_clone", ), path( "examcollection//delete", views.ExamCollectionDelete.as_view(), name="examcollection_delete", ), ] def generic_view_urls(generic_views: GenericViewBase): urlpatterns = [ path( "user_answers/delete", generic_views.user_answer_delete_multiple, name="user_answer_delete_multiple", ), path("author//", generic_views.author_detail, name="author_detail"), path("author/", generic_views.author_list, name="author_list"), path( "question//", generic_views.question_detail, name="question_detail" ), path( "question//user_answers", generic_views.question_user_answers, name="question_user_answers", ), path( "question//user_answers//str", generic_views.question_user_answers_by_compare, name="question_user_answers_by_compare", ), path( "exam//review", generic_views.question_review, name="question_review", ), ] return urlpatterns def generic_exam_urls(generic_exam_view: GenericExamViews): urlpatterns = [ path("", generic_exam_view.index, name="index"), path("exam//", generic_exam_view.exam_overview, name="exam_overview"), path( "exam//mark", generic_exam_view.mark_overview, name="mark_overview" ), path( "exam//question//", generic_exam_view.exam_question_detail, name="exam_question_detail", ), #path( # "exam//question//answer/", # generic_exam_view.exam_question_user_answer, # name="exam_question_user_answer", #), path( "exam//question//answer//", generic_exam_view.exam_question_user_answer, name="exam_question_user_answer", ), path( "exam//user/", generic_exam_view.exam_user, name="exam_user", ), path( "exam//report/email", generic_exam_view.exam_report_email, name="exam_report_email", ), path( "exam//report/email_unsent", generic_exam_view.exam_report_email_unsent, name="exam_report_email_unsent", ), path( "exam//report/email/status", generic_exam_view.exam_report_email_status, name="exam_report_email_status", ), path( "exam//report/", generic_exam_view.exam_user_report, name="exam_user_report", ), path( "exam//report//email", generic_exam_view.exam_user_report_email, name="exam_user_report_email", ), path( "exam//json_edit", generic_exam_view.exam_json_edit, name="exam_json_edit", ), path( "exam//scores", generic_exam_view.exam_scores_all, name="exam_scores_all", ), path( "exam//stats", generic_exam_view.exam_stats, name="exam_stats", ), path( "exam//scores/refresh", generic_exam_view.exam_scores_refresh, # cache_page(60 * 1)(exam_scores_all), name="exam_scores_refresh", ), path( "exam//scores///", generic_exam_view.exam_scores_cid_user, name="exam_scores_cid_user", ), path( "exam//scores//", generic_exam_view.exam_scores_cid_user_admin, name="exam_scores_cid_user_admin", ), path( "exam//scores/", generic_exam_view.exam_scores_user, name="exam_scores_user", ), path( "exam//scores//user", generic_exam_view.exam_scores_user_admin, name="exam_scores_user_admin", ), path( "exam//toggle_active", generic_exam_view.exam_toggle_active, name="exam_toggle_active", ), path( "exam//toggle_results_published", generic_exam_view.exam_toggle_results_published, name="exam_toggle_results_published", ), path( "exam//toggle_archived", generic_exam_view.exam_toggle_archived, name="exam_toggle_archived", ), path( "exam/submit", generic_exam_view.post_exam_answers, name="exam_answers_submit", ), path("exam/", generic_exam_view.exam_list, name="exam_list"), path("exam/all", generic_exam_view.exam_list_all, name="exam_list_all"), path("exam//cids", generic_exam_view.exam_cids, name="exam_cids"), #path("exam//groups", generic_exam_view.exam_groups_edit, name="exam_groups_edit"), path( "exam//reset_answers", generic_exam_view.exam_reset_answers, name="exam_reset_answers", ), path( "exam//cids/edit", generic_exam_view.exam_cids_edit, name="exam_cids_edit", ), path( "exam//users/edit", generic_exam_view.exam_users_edit, name="exam_users_edit", ), path("exam/json/", generic_exam_view.active_exams, name="active_exams"), path("exam/json/", generic_exam_view.exam_json, name="exam_json"), path( "exam/json///", generic_exam_view.exam_json_cid, name="exam_json_cid", ), path( "exam/json//unbased", generic_exam_view.exam_json_unbased, name="exam_json_unbased", ), path( "exam/json////unbased", generic_exam_view.exam_json_cid_unbased, name="exam_json_cid_unbased", ), # These are a little more ambiguous than ideal path( "exam/json//question/", generic_exam_view.exam_question_json, name="exam_question_json", ), path( "exam/json//question//unbased", generic_exam_view.exam_question_json_unbased, name="exam_question_json_unbased", ), path( "exam/json//question///", generic_exam_view.exam_question_json_cid, name="exam_question_json_cid", ), path( "exam/json//question////unbased", generic_exam_view.exam_question_json_unbased_cid, name="exam_question_json_unbased_cid", ), # path( # "exam/json//", # generic_exam_view.exam_question_json, # name="exam_question_json", # ), # path( # "exam/json///unbased", # generic_exam_view.exam_question_json_unbased, # name="exam_question_json_unbased", # ), # path( # "exam/json////", # generic_exam_view.exam_question_json_cid, # name="exam_question_json_cid", # ), # path( # "exam/json/////unbased", # generic_exam_view.exam_question_json_unbased_cid, # name="exam_question_json_unbased_cid", # ), path( "exam/json//recreate", generic_exam_view.exam_json_recreate, name="exam_json_recreate", ), path( "exam//user_status", generic_exam_view.exam_user_status, name="exam_user_status", ), path( "exam//user_status//cid", generic_exam_view.exam_user_status_cid, name="exam_user_status_cid", ), path( "exam//user_status//user", generic_exam_view.exam_user_status_user, name="exam_user_status_user", ), ] return urlpatterns