{% else %}
diff --git a/yaksh/tests.py b/yaksh/tests.py
index bd733c3..831a0fb 100644
--- a/yaksh/tests.py
+++ b/yaksh/tests.py
@@ -21,6 +21,12 @@ def setUpModule():
Profile.objects.create(user=student, roll_number=3, institute='IIT',
department='Chemical', position='Student')
+ student1 = User.objects.create_user(username='demo_user4',
+ password='demo',
+ email='demo@test.com')
+ Profile.objects.create(user=student1, roll_number=4, institute='IIT',
+ department='Chemical', position='Student')
+
# create group
group = Group(name="moderator")
group.save()
@@ -393,6 +399,7 @@ class CourseTestCases(unittest.TestCase):
self.creator = User.objects.get(pk=1)
self.student1 = User.objects.get(pk=2)
self.student2 = User.objects.get(pk=3)
+ self.student3 = User.objects.get(pk=4)
self.quiz1 = Quiz.objects.get(pk=1)
self.quiz2 = Quiz.objects.get(pk=2)
@@ -457,6 +464,12 @@ class CourseTestCases(unittest.TestCase):
def test_remove_teachers(self):
""" Test to remove teachers from a course"""
- self.course.add_teachers(self.student1, self.student2)
- self.course.remove_teachers(self.student1)
- self.assertSequenceEqual(self.course.get_teachers(), [self.student2])
+ self.course.add_teachers(self.student2, self.student3)
+ self.course.remove_teachers(self.student2)
+ self.assertSequenceEqual(self.course.get_teachers(), [self.student3])
+
+ def test_is_teacher(self):
+ """ Test to check if user is teacher"""
+ self.course.add_teachers(self.student2)
+ result = self.course.is_teacher(self.student2)
+ self.assertTrue(result)
diff --git a/yaksh/urls.py b/yaksh/urls.py
index 1716818..ea1922d 100644
--- a/yaksh/urls.py
+++ b/yaksh/urls.py
@@ -87,6 +87,6 @@ urlpatterns += [
views.reject, {'was_enrolled': True}),
url(r'^manage/searchteacher/(?P\d+)/$', views.search_teacher),
url(r'^manage/addteacher/(?P\d+)/$', views.add_teacher),
- url(r'^manage/viewcourse/$', views.view_courses),
+ url(r'^manage/allotted_course/$', views.allotted_courses),
url(r'^manage/remove_teachers/(?P\d+)/$', views.remove_teachers)
]
diff --git a/yaksh/views.py b/yaksh/views.py
index dd8cc2b..3823976 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -608,12 +608,11 @@ def courses(request):
def course_detail(request, course_id):
user = request.user
ci = RequestContext(request)
- if not is_moderator(user):
- raise Http404('You are not allowed to view this page')
course = Course.objects.filter(Q(creator=user)|Q(teachers=user),
pk=course_id).first()
- if user != course.creator and user not in course.teachers.all():
+ if not is_moderator(user) or not course:
raise Http404('You are not allowed to view this page')
+
return my_render_to_response('yaksh/course_detail.html', {'course': course},
context_instance=ci)
@@ -843,7 +842,8 @@ def download_csv(request, questionpaper_id):
if not is_moderator(user):
raise Http404('You are not allowed to view this page!')
quiz = Quiz.objects.get(questionpaper=questionpaper_id)
- if quiz.course.creator != user and user not in quiz.course.teachers.all():
+
+ if not quiz.course.is_creator(user) and not quiz.course.is_teacher(user):
raise Http404('The question paper does not belong to your course')
papers = AnswerPaper.objects.get_latest_attempts(questionpaper_id)
if not papers:
@@ -1098,7 +1098,7 @@ def add_teacher(request, course_id):
@login_required
-def view_courses(request):
+def allotted_courses(request):
""" show courses allotted to a user """
user = request.user
@@ -1113,7 +1113,7 @@ def view_courses(request):
@login_required
def remove_teachers(request, course_id):
- """ show courses allotted to a user """
+ """ remove user from a course """
user = request.user
if not is_moderator(user):
--
cgit