Ejemplo n.º 1
0
def course_fullsync(request):
    logging.info(request.POST)
    course_id = request.POST['course_id']
    course = Course.get_by_id(int(course_id))
    if course is None:
        raise Http404 
    cdbsync.plan_cdb_put(course)
    logging.info('course=%s'%course)
    students = Student.list_for_course(course.key())
    for s in students:
        logging.info("student %s" % s.key())
        cdbsync.plan_cdb_put(s)
    logging.info("all done")
    return HttpResponse('ok')
Ejemplo n.º 2
0
def update_all_students_for_course(request):
    logging.info(request.POST)
    course_id = request.POST['course_id']
    course = Course.get_by_id(int(course_id))
    if course is None:
        raise Http404 
    logging.info('course=%s'%course)
    cdbsync.plan_cdb_put(course)
    students = Student.list_for_course(course.key())
    for s in students:
        logging.info("student %s" % s.key())
        taskqueue.add(url='/task/update_all_students_do_one/', params={'student_key':s.key()})
 
    logging.info("all done")
    return HttpResponse('ok')
Ejemplo n.º 3
0
def hide_course_students(request):
    logging.info(request.POST)
    course_id = request.POST['course_id']
    course = Course.get_by_id(int(course_id))
    
    if course is None:
        raise Http404
 
    list = Student.list_for_course(course.key())
    for s in list:
        s.hidden = True
        s.save()
        cdbsync.plan_cdb_put(s)


    course.mark_as_modify()
    course.save()
    cdbsync.plan_cdb_put(course)

 
    return HttpResponse('ok')
Ejemplo n.º 4
0
def recount_course_capacity(course):
   
    if course is None:
        raise Http404

    pending = 0
    pending_m = 0
    pending_f = 0
    enrolled = 0
    enrolled_m = 0
    enrolled_f = 0

    unconf = 0
    unconf_m = 0
    unconf_f = 0


    enrolled_paid = 0

    stat_fp_m = 0
    stat_pp_m = 0
    stat_np_m = 0

    stat_fp_f = 0
    stat_pp_f = 0
    stat_np_f = 0


    list = Student.list_for_course(course.key())
    for s in list:
        m = False
        f = False
        if s.addressing == 'p':
            m=True
        elif s.addressing == 's' or s.addressing == 'd':
            f=True

        if s.status == 's':
            pending+=1
            if m:
                pending_m+=1
            if f:
                pending_f+=1
        elif s.status == 'n':
            unconf+=1
            if m:
                unconf_m+=1
            if f:
                unconf_f+=1
             
        elif s.status == 'e':
            if not s.paid is None:
                enrolled_paid+=s.paid

            enrolled+=1
            if m:
                enrolled_m+=1
            if f:
                enrolled_f+=1
 
            if s.is_fp():
                if m:
                    stat_fp_m+=1   
                if f:
                    stat_fp_f+=1   
            elif s.is_pp():
                if m:
                    stat_pp_m+=1   
                if f:
                    stat_pp_f+=1   
            elif s.is_np():
                if m:
                    stat_np_m+=1   
                if f:
                    stat_np_f+=1   
 
 


    course.pending=pending
    course.usage=enrolled
    course.unconf=unconf

    course.stat_e_m = enrolled_m
    course.stat_s_m = pending_m
    course.stat_e_f = enrolled_f
    course.stat_s_f = pending_f
    course.stat_paid = enrolled_paid
    
    course.stat_fp_m = stat_fp_m
    course.stat_pp_m = stat_pp_m
    course.stat_np_m = stat_np_m

    course.stat_fp_f = stat_fp_f
    course.stat_pp_f = stat_pp_f
    course.stat_np_f = stat_np_f





    pend_open = True
    if (course.pending_limit!=-1):
        if (course.pending>=course.pending_limit):
            pend_open = False


    cap_open = True
    if (course.capacity!=-1):
        if (course.usage>=course.capacity):
            cap_open = False


    course.suspend = not (cap_open or pend_open)
    course.mark_as_modify()