def teacheradmin_teachers_invite(request, course_slug): course = get_object_or_404(Course, slug=course_slug) email_or_id = request.POST['data'] user = None response = None try: validate_email(email_or_id) # is email try: user = User.objects.get(email=email_or_id) except User.DoesNotExist: pass except ValidationError: # is id try: user = User.objects.get(id=email_or_id) except (ValueError, User.DoesNotExist): response = HttpResponse(status=404) if user is not None: try: ct = CourseTeacher.objects.get(course=course, teacher=user) return HttpResponse(status=409) except CourseTeacher.DoesNotExist: ct = CourseTeacher.objects.create(course=course, teacher=user) name = user.get_full_name() if not name: name = user.username data = { 'id': ct.id, 'order': ct.order, 'name': name, 'gravatar': gravatar_img_for_email(user.email, 20), 'pending': False } response = HttpResponse(simplejson.dumps(data), mimetype='application/json') elif response is None: if Invitation.objects.filter(email=email_or_id, course=course).count() == 0: invitation = Invitation(host=request.user, email=email_or_id, course=course, datetime=datetime.now()) invitation.save() send_invitation(request, invitation) data = { 'name': email_or_id, 'gravatar': gravatar_img_for_email(email_or_id, 20), 'pending': True } response = HttpResponse(simplejson.dumps(data), mimetype='application/json') else: response = HttpResponse(status=409) return response
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))