def teacheradmin_students(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() teachers_ids = [t["id"] for t in course.teachers.values("id")] institutions = course.institutions institutions_values = institutions.values("domains") institutions_domains = [i["domains"] for i in institutions_values] students = course.students.all().order_by("first_name").order_by( "username") students = [{ 'id': s.id, 'username': s.get_full_name() or s.username, 'email': s.email, 'is_member': institutions.is_member(s, institutions_domains), 'is_teacher': s.id in teachers_ids, 'gravatar': avatar_img_for_user(s, 20), } for s in students.select_related()] return render_to_response('teacheradmin/students.html', { 'course': course, 'is_enrolled': is_enrolled, 'students': students, 'request': request, }, context_instance=RequestContext(request))
def teacheradmin_teachers(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() teachers = course.teachers.all() teachers = [{ 'id': t.id, 'username': t.get_full_name() or t.username, 'gravatar': avatar_img_for_user(t, 20), } for t in teachers] invitations = Invitation.objects.filter(course=course) invitations = [{ 'id': -1, 'username': inv.email, 'gravatar': gravatar_img_for_email(inv.email, 20), } for inv in invitations] teachers.extend(invitations) return render_to_response('teacheradmin/teachers.html', { 'course': course, 'is_enrolled': is_enrolled, 'teachers': teachers, 'request': request, }, context_instance=RequestContext(request))
def teacheradmin_students_enrol(request, course_slug): course = get_object_or_404(Course, slug=course_slug) student_id = request.POST['data'] user = None response = None try: user = User.objects.get(id=student_id) except (ValueError, User.DoesNotExist): response = HttpResponse(status=404) if course.students.filter(id=user.id).exists(): user = None response = HttpResponse(status=405) if user is not None: course.students.add(user) name = user.get_full_name() if not name: name = user.username data = { 'id': user.id, 'name': name, 'email': user.email, 'is_member': course.institutions.is_member(user), 'is_teacher': course.teachers.filter(id=user.id).exists(), 'is_owner': course.owner == user, 'institutions': course.institutions.exists(), 'gravatar': avatar_img_for_user(user, 20), } response = HttpResponse(simplejson.dumps(data), mimetype='application/json') elif response is None: #TODO: Send an invitation? response = HttpResponse(status=409) return response
def teacheradmin_students(request, course_slug): course = get_object_or_404(Course, slug=course_slug) is_enrolled = course.students.filter(id=request.user.id).exists() teachers_ids = [t["id"] for t in course.teachers.values("id")] institutions = course.institutions institutions_values = institutions.values("domains") institutions_domains = [i["domains"] for i in institutions_values] students = course.students.all().order_by("first_name").order_by("username") students = [{ 'id': s.id, 'username': s.get_full_name() or s.username, 'email': s.email, 'is_member': institutions.is_member(s, institutions_domains), 'is_teacher': s.id in teachers_ids, 'gravatar': avatar_img_for_user(s, 20), } for s in students.select_related()] return render_to_response('teacheradmin/students.html', { 'course': course, 'is_enrolled': is_enrolled, 'students': students, 'request': request, }, context_instance=RequestContext(request))