コード例 #1
0
ファイル: views.py プロジェクト: CulturePlex/moocng
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))
コード例 #2
0
ファイル: views.py プロジェクト: CulturePlex/moocng
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))
コード例 #3
0
ファイル: views.py プロジェクト: CulturePlex/moocng
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
コード例 #4
0
ファイル: views.py プロジェクト: CulturePlex/moocng
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
コード例 #5
0
ファイル: views.py プロジェクト: CulturePlex/moocng
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))
コード例 #6
0
ファイル: views.py プロジェクト: CulturePlex/moocng
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))