Exemple #1
0
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')
Exemple #2
0
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}))
Exemple #3
0
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')