.
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
{% load thumbnail %}
|
{% load thumbnail %}
|
||||||
<div class="anatomy">
|
<div class="anatomy">
|
||||||
<a href="{% url 'anatomy:exam_update' exam.id %}" title="Edit the Exam">Edit</a>
|
<a href="{% url 'anatomy:exam_update' exam.id %}" title="Edit the Exam">Edit</a>
|
||||||
|
<a href="{% url 'anatomy:exam_delete' exam.id %}" title="Delete the Exam">Delete</a>
|
||||||
<a href="{% url 'admin:anatomy_exam_change' exam.id %}" title="Edit the Exam using the admin interface">Admin Edit</a>
|
<a href="{% url 'admin:anatomy_exam_change' exam.id %}" title="Edit the Exam using the admin interface">Admin Edit</a>
|
||||||
<h1>Exam: {{ exam.name }}</h1>
|
<h1>Exam: {{ exam.name }}</h1>
|
||||||
This exam has {{question_number}} questions. Time limit: {{exam.time_limit}} seconds.
|
This exam has {{question_number}} questions. Time limit: {{exam.time_limit}} seconds.
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ urlpatterns = [
|
|||||||
path("exam/", views.AnatomyExamViews.exam_list, name="exam_list"),
|
path("exam/", views.AnatomyExamViews.exam_list, name="exam_list"),
|
||||||
path("exam/create", views.ExamCreate.as_view(), name="exam_create"),
|
path("exam/create", views.ExamCreate.as_view(), name="exam_create"),
|
||||||
path("exam/<int:pk>/update", views.ExamUpdate.as_view(), name="exam_update"),
|
path("exam/<int:pk>/update", views.ExamUpdate.as_view(), name="exam_update"),
|
||||||
|
path("exam/<int:pk>/delete", views.ExamDelete.as_view(), name="exam_delete"),
|
||||||
path("exam/json/", views.AnatomyExamViews.active_exams, name="active_exams"),
|
path("exam/json/", views.AnatomyExamViews.active_exams, name="active_exams"),
|
||||||
path("exam/json/<int:pk>", views.AnatomyExamViews.exam_json, name="exam_json"),
|
path("exam/json/<int:pk>", views.AnatomyExamViews.exam_json, name="exam_json"),
|
||||||
path("exam/json/<int:pk>/recreate", views.AnatomyExamViews.exam_json_recreate, name="exam_json_recreate"),
|
path("exam/json/<int:pk>/recreate", views.AnatomyExamViews.exam_json_recreate, name="exam_json_recreate"),
|
||||||
|
|||||||
+5
-1
@@ -1024,4 +1024,8 @@ class ExamViewSet(viewsets.ModelViewSet):
|
|||||||
if user.groups.filter(name="rapid_checker").exists():
|
if user.groups.filter(name="rapid_checker").exists():
|
||||||
return Exam.objects.all()
|
return Exam.objects.all()
|
||||||
|
|
||||||
return Exam.objects.filter(author__id=user.id)
|
return Exam.objects.filter(author__id=user.id)
|
||||||
|
|
||||||
|
class ExamDelete(AuthorOrCheckerRequiredMixin, DeleteView):
|
||||||
|
model = Exam
|
||||||
|
success_url = reverse_lazy("anatomy:index")
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
{% load thumbnail %}
|
{% load thumbnail %}
|
||||||
<div class="rapids">
|
<div class="rapids">
|
||||||
<a href="{% url 'rapids:exam_update' exam.id %}" title="Edit the Exam">Edit</a>
|
<a href="{% url 'rapids:exam_update' exam.id %}" title="Edit the Exam">Edit</a>
|
||||||
|
<a href="{% url 'rapids:exam_delete' exam.id %}" title="Delete the Exam">Delete</a>
|
||||||
<a href="{% url 'admin:rapids_exam_change' exam.id %}" title="Edit the Exam using the admin interface">Admin Edit</a>
|
<a href="{% url 'admin:rapids_exam_change' exam.id %}" title="Edit the Exam using the admin interface">Admin Edit</a>
|
||||||
<h1>Exam: {{ exam.name }}</h1>
|
<h1>Exam: {{ exam.name }}</h1>
|
||||||
This exam has {{question_number}} questions. Time limit: {{exam.time_limit}} seconds.<br/>
|
This exam has {{question_number}} questions. Time limit: {{exam.time_limit}} seconds.<br/>
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ urlpatterns = [
|
|||||||
path("exam/", views.RapidExamViews.exam_list, name="exam_list"),
|
path("exam/", views.RapidExamViews.exam_list, name="exam_list"),
|
||||||
path("exam/create", views.ExamCreate.as_view(), name="exam_create"),
|
path("exam/create", views.ExamCreate.as_view(), name="exam_create"),
|
||||||
path("exam/<int:pk>/update", views.ExamUpdate.as_view(), name="exam_update"),
|
path("exam/<int:pk>/update", views.ExamUpdate.as_view(), name="exam_update"),
|
||||||
|
path("exam/<int:pk>/delete", views.ExamDelete.as_view(), name="exam_delete"),
|
||||||
path("exam/json/", views.RapidExamViews.active_exams, name="active_exams"),
|
path("exam/json/", views.RapidExamViews.active_exams, name="active_exams"),
|
||||||
path("exam/json/<int:pk>", views.RapidExamViews.exam_json, name="exam_json"),
|
path("exam/json/<int:pk>", views.RapidExamViews.exam_json, name="exam_json"),
|
||||||
path("exam/json/<int:pk>/unbased", views.RapidExamViews.exam_json_unbased, name="exam_json_unbased"),
|
path("exam/json/<int:pk>/unbased", views.RapidExamViews.exam_json_unbased, name="exam_json_unbased"),
|
||||||
|
|||||||
@@ -1001,3 +1001,6 @@ class RapidViewSet(viewsets.ModelViewSet):
|
|||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
pagination_class = StandardResultsSetPagination
|
pagination_class = StandardResultsSetPagination
|
||||||
|
|
||||||
|
class ExamDelete(AuthorOrCheckerRequiredMixin, DeleteView):
|
||||||
|
model = Exam
|
||||||
|
success_url = reverse_lazy("rapids:index")
|
||||||
Reference in New Issue
Block a user