def clean_expired_enrolls(request): now = datetime.datetime.utcnow() exp_min = cfg.getConfigInt('ENROLL_CHECK_TIMEOUT_MINUTES',60) td = datetime.timedelta(minutes=exp_min) lim = now-td list = Student.list_for_cleanup(lim).fetch(20) for s in list: rd = s.reg_datetime logging.info('id: %s, rd:%s, now:%s, lim:%s'%(s.key().id(),rd,now,lim)) s.delete() return HttpResponse('ok')
def email_job_create(request): email_groups = EMailList.all() email_templates = EMailTemplate.all() if request.method == 'POST': form = EMailJobCreateForm(request.POST,email_groups=email_groups, email_templates=email_templates) if form.is_valid(): logging.info('creating new job request') el = EMailList.get(form.cleaned_data['email_group_id']) if el is None: raise Http404 et = EMailTemplate.get(form.cleaned_data['email_template_id']) if et is None: raise Http404 job = EMailJob() job.name = "'%s' -> '%s'"%(et.name,el.name) job.save() job_data = EMailJobData(parent=job) job_data.sender = getConfig('DEFAULT_SENDER') job_data.split_count = getConfigInt('MAIL_SPLIT_COUNT',10) job_data.emails = el.emails job_data.data = et.data job_data.save() job.data_ref = job_data.key() job.save() logging.info('new job: %s'%job) taskqueue.add(url='/tasks/prepare_email_job/%d/'%job.key().id(), method='GET') return redirect('..') else: form = EMailJobCreateForm(email_groups=email_groups, email_templates=email_templates) return render_to_response('emails/email_job_create.html', RequestContext(request, { 'form': form}))
def check_for_course_backup(request): if not cfg.getConfigBool('BACKUP_ON',False): logging.info('BACKUP_ON is OFF!') return HttpResponse('ok') now = datetime.datetime.utcnow() exp_min = cfg.getConfigInt('BACKUP_CHECK_MINUTES',180) td = datetime.timedelta(minutes=exp_min) lim = now-td course_list = Course.list_for_backup_check(lim).fetch(100) for c in course_list: logging.info('course: %s'%c) if c.backup_datetime is None: c.backup_flag = True c.save() logging.info('marked for backup') elif c.backup_datetime < c.modify_datetime: c.backup_flag = True c.save() logging.info('marked for backup') return HttpResponse('ok')