示例#1
0
def teacheradmin_emails(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    is_enrolled = course.students.filter(id=request.user.id).exists()
    students = course.students.count()

    if request.method == 'POST':
        form = MassiveEmailForm(request.POST)
        if form.is_valid():
            form.instance.course = course
            form.instance.datetime = datetime.now()
            form.save()

            form.instance.send_in_batches(send_massive_email_task)

            messages.success(request, _("The email has been queued, and it will be send in batches to every student in the course."))
            return HttpResponseRedirect(reverse('teacheradmin_stats', args=[course_slug]))
    else:
        form = MassiveEmailForm()

    return render_to_response('teacheradmin/emails.html', {
        'course': course,
        'is_enrolled': is_enrolled,
        'students': students,
        'form': form,
    }, context_instance=RequestContext(request))
示例#2
0
def teacheradmin_emails(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    is_enrolled = course.students.filter(id=request.user.id).exists()
    students = course.students.count()

    if request.method == 'POST':
        form = MassiveEmailForm(request.POST)
        if form.is_valid():
            form.instance.course = course
            form.instance.datetime = datetime.now()
            form.save()

            form.instance.send_in_batches(send_massive_email_task)

            messages.success(
                request,
                _("The email has been queued, and it will be send in batches to every student in the course."
                  ))
            return HttpResponseRedirect(
                reverse('teacheradmin_stats', args=[course_slug]))
    else:
        form = MassiveEmailForm()

    return render_to_response('teacheradmin/emails.html', {
        'course': course,
        'is_enrolled': is_enrolled,
        'students': students,
        'form': form,
    },
                              context_instance=RequestContext(request))
示例#3
0
文件: views.py 项目: Macro-Bin/moocng
def teacheradmin_emails(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    is_enrolled = course.students.filter(id=request.user.id).exists()
    students = course.students.count()
    data = None
    if request.method == 'POST':
        data = request.POST
    massive_emails = course.massive_emails.all()
    form = MassiveEmailForm(data=data, course=course)
    remain_send_emails = form.remain_send_emails(massive_emails)
    if remain_send_emails > 0 and form.is_valid():
        form.save()
        messages.success(request, _("The email has been queued, and it will be send in batches to every student in the course."))
        return HttpResponseRedirect(reverse('teacheradmin_stats', args=[course_slug]))
    return render_to_response('teacheradmin/emails.html', {
        'course': course,
        'massive_emails': massive_emails,
        'remain_send_emails': remain_send_emails,
        'is_enrolled': is_enrolled,
        'students': students,
        'form': form,
    }, context_instance=RequestContext(request))
示例#4
0
def teacheradmin_emails(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    is_enrolled = course.students.filter(id=request.user.id).exists()
    students = course.students.count()

    if request.method == 'POST':
        form = MassiveEmailForm(request.POST)
        if form.is_valid():
            form.instance.course = course
            form.instance.datetime = datetime.now()
            form.save()

            batch = 30
            try:
                batch = settings.MASSIVE_EMAIL_BATCH_SIZE
            except AttributeError:
                pass

            batches = (course.students.count() / batch) + 1
            students = course.students.all()
            for i in range(batches):
                init = batch * i
                end = init + batch
                students_ids = [s.id for s in students[init:end]]
                send_massive_email_task.delay(form.instance.id, students_ids)

            messages.success(request, _("The email has been queued, and it will be send in batches to every student in the course."))
            return HttpResponseRedirect(reverse('teacheradmin_stats', args=[course_slug]))
    else:
        form = MassiveEmailForm()

    return render_to_response('teacheradmin/emails.html', {
        'course': course,
        'is_enrolled': is_enrolled,
        'students': students,
        'form': form,
    }, context_instance=RequestContext(request))
示例#5
0
def teacheradmin_emails(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    is_enrolled = course.students.filter(id=request.user.id).exists()
    students = course.students.count()

    if request.method == 'POST':
        form = MassiveEmailForm(request.POST)
        if form.is_valid():
            form.instance.course = course
            form.instance.datetime = datetime.now()
            form.save()

            batch = 30
            try:
                batch = settings.MASSIVE_EMAIL_BATCH_SIZE
            except AttributeError:
                pass

            batches = (course.students.count() / batch) + 1
            students = course.students.all()
            for i in range(batches):
                init = batch * i
                end = init + batch
                students_ids = [s.id for s in students[init:end]]
                send_massive_email_task.delay(form.instance.id, students_ids)

            messages.success(
                request,
                _("The email has been queued, and it will be send in batches to every student in the course."
                  ))
            return HttpResponseRedirect(
                reverse('teacheradmin_stats', args=[course_slug]))
    else:
        form = MassiveEmailForm()

    return render_to_response('teacheradmin/emails.html', {
        'course': course,
        'is_enrolled': is_enrolled,
        'students': students,
        'form': form,
    },
                              context_instance=RequestContext(request))
示例#6
0
文件: views.py 项目: ntwuxc/moocng
def teacheradmin_emails(request, course_slug):
    course = get_object_or_404(Course, slug=course_slug)
    is_enrolled = course.students.filter(id=request.user.id).exists()
    students = course.students.count()
    data = None
    if request.method == 'POST':
        data = request.POST
    massive_emails = course.massive_emails.all()
    form = MassiveEmailForm(data=data, course=course)
    remain_send_emails = form.remain_send_emails(massive_emails)
    if remain_send_emails > 0 and form.is_valid():
        form.save()
        messages.success(request, _("The email has been queued, and it will be send in batches to every student in the course."))
        return HttpResponseRedirect(reverse('teacheradmin_stats', args=[course_slug]))
    return render_to_response('teacheradmin/emails.html', {
        'course': course,
        'massive_emails': massive_emails,
        'remain_send_emails': remain_send_emails,
        'is_enrolled': is_enrolled,
        'students': students,
        'form': form,
    }, context_instance=RequestContext(request))