diff --git a/atlas/models.py b/atlas/models.py
index 85f512a6..b17a5511 100644
--- a/atlas/models.py
+++ b/atlas/models.py
@@ -692,6 +692,10 @@ class CaseCollection(ExamOrCollectionGenericBase):
"REP",
_("Report"),
)
+ VIVA = (
+ "VIV",
+ _("Viva"),
+ )
collection_type = models.CharField(
max_length=3,
diff --git a/atlas/templates/atlas/collection_viva.html b/atlas/templates/atlas/collection_viva.html
new file mode 100644
index 00000000..7a52fcae
--- /dev/null
+++ b/atlas/templates/atlas/collection_viva.html
@@ -0,0 +1,45 @@
+{% extends 'atlas/exams.html' %}
+
+{% block content %}
+
Cases
+
+ {% for case in cases %}
+ - Case {{forloop.counter}}: {{case.title}}
+
+
+
+
+ {% endfor %}
+
+
+
+
+{% endblock %}
+
+
+{% block js %}
+
+
+{{ form.media }}
+{% endblock %}
\ No newline at end of file
diff --git a/atlas/urls.py b/atlas/urls.py
index d6c00262..3abe34e3 100755
--- a/atlas/urls.py
+++ b/atlas/urls.py
@@ -56,6 +56,7 @@ urlpatterns = [
name="exam_update",
),
path("collection/", views.collection_detail, name="collection_detail"),
+ path("collection//viva", views.collection_viva, name="collection_viva"),
path(
"collection//take",
views.collection_take_start,
diff --git a/atlas/views.py b/atlas/views.py
index 778aff69..b53f3e3e 100755
--- a/atlas/views.py
+++ b/atlas/views.py
@@ -1338,6 +1338,17 @@ class CollectionView(LoginRequiredMixin, SingleTableMixin, FilterView):
filterset_class = CaseCollectionFilter
+@user_is_collection_author_or_atlas_editor
+def collection_viva(request, pk):
+ collection = get_object_or_404(CaseCollection, pk=pk)
+
+ cases = collection.cases.all().order_by("casedetail__sort_order")
+
+ return render(
+ request,
+ "atlas/collection_viva.html",
+ {"collection": collection, "cases": cases, "can_edit": True},
+ )
@user_is_collection_author_or_atlas_editor
def collection_detail(request, pk):