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')
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')
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')
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()