diff --git a/econplayground/assignment/tests/test_views.py b/econplayground/assignment/tests/test_views.py index d6c2a2aad..c1e786c09 100644 --- a/econplayground/assignment/tests/test_views.py +++ b/econplayground/assignment/tests/test_views.py @@ -534,3 +534,15 @@ def test_assignment_step_value_submission(self): score_path.refresh_from_db() self.assertEqual(score_path.score, 0.5) + + +class AssignmentDetailStudentViewTest( + LoggedInTestStudentMixin, AssignmentMixin, TestCase): + def test_assignment_step_view(self): + assignment = self.setup_sample_assignment() + r = self.client.get(reverse('assignment_detail_student', kwargs={ + 'pk': assignment.pk + })) + + self.assertEqual(r.status_code, 200) + self.assertContains(r, assignment.title) diff --git a/econplayground/assignment/views.py b/econplayground/assignment/views.py index 9897c3b92..a5101fe81 100644 --- a/econplayground/assignment/views.py +++ b/econplayground/assignment/views.py @@ -114,6 +114,14 @@ def get_context_data(self, **kwargs): return ctx +class AssignmentDetailStudentView(LoginRequiredMixin, DetailView): + """ + Read-only view for working through an assignment. + """ + model = Assignment + template_name = 'assignment/assignment_detail_student.html' + + class AssignmentTreeUpdateView(LoginRequiredMixin, UserPassesTestMixin, View): """ Add and remove nodes from the assignment tree. diff --git a/econplayground/main/tests/test_views.py b/econplayground/main/tests/test_views.py index 3cda28274..b4ddbbe45 100644 --- a/econplayground/main/tests/test_views.py +++ b/econplayground/main/tests/test_views.py @@ -748,8 +748,12 @@ def test_get(self): self.assertContains(r, 'Topic B') self.assertEqual(r.context['all_count'], 3) self.assertEqual(r.context['featured_count'], 2) - self.assertEqual(r.context['topic_list'][0].published_graph_count(), 2) - self.assertEqual(r.context['topic_list'][1].published_graph_count(), 1) + + self.t1.refresh_from_db() + self.t2.refresh_from_db() + self.assertEqual(len(r.context['topic_list']), 2) + self.assertEqual(self.t1.published_graph_count(), 2) + self.assertEqual(self.t2.published_graph_count(), 1) r = self.client.get( '{}?all=true'.format( @@ -769,8 +773,12 @@ def test_get(self): self.assertContains(r, 'Topic B') self.assertEqual(r.context['all_count'], 3) self.assertEqual(r.context['featured_count'], 2) - self.assertEqual(r.context['topic_list'][0].published_graph_count(), 2) - self.assertEqual(r.context['topic_list'][1].published_graph_count(), 1) + + self.t1.refresh_from_db() + self.t2.refresh_from_db() + self.assertEqual(len(r.context['topic_list']), 2) + self.assertEqual(self.t1.published_graph_count(), 2) + self.assertEqual(self.t2.published_graph_count(), 1) r = self.client.get( '{}?topic={}'.format( @@ -815,8 +823,12 @@ def test_get(self): self.assertContains(r, 'Topic B') self.assertEqual(r.context['all_count'], 3) self.assertEqual(r.context['featured_count'], 2) - self.assertEqual(r.context['topic_list'][0].published_graph_count(), 2) - self.assertEqual(r.context['topic_list'][1].published_graph_count(), 1) + + self.t1.refresh_from_db() + self.t2.refresh_from_db() + self.assertEqual(len(r.context['topic_list']), 2) + self.assertEqual(self.t1.published_graph_count(), 2) + self.assertEqual(self.t2.published_graph_count(), 1) class MockLTI(object): diff --git a/econplayground/templates/assignment/assignment_detail_student.html b/econplayground/templates/assignment/assignment_detail_student.html new file mode 100644 index 000000000..956598447 --- /dev/null +++ b/econplayground/templates/assignment/assignment_detail_student.html @@ -0,0 +1,38 @@ +{% extends 'base.html' %} +{% load static %} + +{% block title %}{{ object.title }}{% endblock %} + +{% block breadcrumb %} + +{% endblock %} + +{% block pagetitle %} +