def prepare_invitations(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') owner = request.POST['owner'] mode = request.POST['mode'] addressing_parents = request.POST['addressing_parents'] addressing_p = request.POST['addressing_p'] addressing_s = request.POST['addressing_s'] addressing_d = request.POST['addressing_d'] inflector.init_dicts() logging.info('student list %s'%student_ids) for student_id in student_ids: try: prepare_invitation(owner, student_id, mode,addressing_parents, addressing_p, addressing_s, addressing_d) except: logging.info("can't prepare invitation") job.finish() job.save() return HttpResponse('ok')
def prepare_cardout(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') owner = request.POST['owner'] logging.info('student list %s'%student_ids) for student_id in student_ids: try: mark_cardout(owner, student_id) except: logging.info("can't prepare card") job.finish() job.save() return HttpResponse('ok')
def prepare_cards(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') owner = request.POST['owner'] season_name = request.POST['season_name'] course_code = request.POST['course_code'] info_line_1 = request.POST['info_line_1'] info_line_2 = request.POST['info_line_2'] logging.info('student list %s'%student_ids) for student_id in student_ids: try: prepare_card(owner, student_id, season_name, course_code, info_line_1, info_line_2) except: logging.info("can't prepare card") job.finish() job.save() return HttpResponse('ok')
def makecopy_students(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') target_course_id = request.POST['target_course_id'] source_course_id = request.POST['source_course_id'] target_course = Course.get_by_id(int(target_course_id)) if target_course is None: logging.info('missing target course') job.finish(error=True) job.save() return HttpResponse('error') source_course = Course.get_by_id(int(source_course_id)) if source_course is None: logging.info('missing source course') job.finish(error=True) job.save() return HttpResponse('error') logging.info('student list %s'%student_ids) pr = dict() for student_id in student_ids: (old_refkey,new) = makecopy_student(int(student_id), target_course) pr[old_refkey]=new logging.info('stage 2 done') for n in pr.values(): np = pr.get(n.partner_ref_code,None) if not np is None: logging.info('update partner_ref_code %s -> %s'%(n.partner_ref_code,np.ref_key)) n.partner_ref_code=np.ref_key n.save() cdbsync.plan_cdb_put(n) taskqueue.add(url='/task/recount_capacity/', params={'course_id':target_course.key().id()}) job.finish() job.save() return HttpResponse('ok')
def wait(request,job_id): now = datetime.datetime.utcnow() job = Job.get_by_id(int(job_id)) if job is None: raise Http404 if not job.active: return HttpResponseRedirect(job.finish_target) return render_to_response('admin/jobs_wait.html', RequestContext(request, { 'now': now, 'job':job }))
def delete(request,job_id): job = Job.get_by_id(int(job_id)) if job is None: raise Http404 job.active=False job.save() return HttpResponseRedirect('../..')
def transfer_students(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') target_course_id = request.POST['target_course_id'] source_course_id = request.POST['source_course_id'] target_course = Course.get_by_id(int(target_course_id)) if target_course is None: logging.info('missing target course') job.finish(error=True) job.save() return HttpResponse('error') source_course = Course.get_by_id(int(source_course_id)) if source_course is None: logging.info('missing source course') job.finish(error=True) job.save() return HttpResponse('error') logging.info('student list %s'%student_ids) for student_id in student_ids: transfer_student(int(student_id), target_course) recount_course_capacity(source_course) source_course.save() logging.info(source_course) cdbsync.plan_cdb_put(source_course) taskqueue.add(url='/task/recount_capacity/', params={'course_id':target_course.key().id()}) job.finish() job.save() return HttpResponse('ok')
def prepare_qcards(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') owner = request.POST['owner'] logging.info('student list %s'%student_ids) for student_id in student_ids: try: prepare_qcard(owner, student_id) except Exception,e: logging.info(e) logging.info("can't prepare qcard %s" %x)
def hide_students(request): logging.info(request.POST) job_id = request.POST['job_id'] job = Job.get_by_id(int(job_id)) job.start() job.save() student_ids = request.POST.getlist('student_ids') owner = request.POST['owner'] course_id = request.POST['course_id'] course = Course.get_by_id(int(course_id)) if course is None: logging.info('missing course') job.finish(error=True) job.save() return HttpResponse('error') logging.info('student list %s'%student_ids) for student_id in student_ids: try: hide_student(owner, student_id) except: logging.info("can't hide student") recount_course_capacity(course) course.save() logging.info(course) cdbsync.plan_cdb_put(course) job.finish() job.save() return HttpResponse('ok')