コード例 #1
0
ファイル: views.py プロジェクト: kataev/pokazania
def form(request):

    models={'teplo':teplo,'energy':energy,'teploForm':teploForm,'energyForm':energyForm}
    
    if request.method == 'POST': # Если пост то обрабатываем данные
        post=request.POST.copy() # Копируем массив, ибо request - read only
        f=models[post['oper']+'Form']

        for field in post:
            post[field]=post[field].replace(',','.')

        form = f(post,prefix=post['oper'])

        if form.is_valid():
            inst = form.save()
            return HttpResponse(json({'status':'ok'}),mimetype="application/json;charset=utf-8")
        else:
            del form.errors['__all__']
            return HttpResponse(json({'status':'error','message':form.errors}),mimetype="application/json;charset=utf-8")
    else:
        rendered = render_to_string('form.html',{'energy_form':energyForm(prefix='energy').as_ul(),'teplo_form':teploForm(prefix='teplo').as_ul()})
        return HttpResponse(rendered,mimetype="text/html;charset=utf-8;")
コード例 #2
0
ファイル: views.py プロジェクト: kataev/pokazania
def delta(request,model):
    response = {'identifier':'id','items':[]}

    if True:

        a = model.objects.order_by('date').reverse()
        query = a[:len(a)-1]
        l = len(query)
        fields = model._meta.fields
        for i in range(l-1):
            cur = query[i]
            next = query[i+1]
            w = 1
            w = int((next.date - cur.date).days)
            if w == 0:
                w=1
            var = {}
            for f in fields:
                if f.name =='id':
                    var.update({'id':cur.pk})
                    continue
                if f.name in ['rpr','robr','tpr','tobr']:
                    var.update({f.name:round(getattr(cur,f.name),2)})
                    continue
                if f.name =='henergy':
                    var.update({f.name:round((getattr(next,f.name)-getattr(cur,f.name))*1000/w,2)})
                    continue
                if f.name in ['date','date_time']:
                    var.update({f.name:str(getattr(cur,f.name))})
                else:
                    vaw = round((getattr(next,f.name)-getattr(cur,f.name))/w,2)
                    if vaw < -1000:
                        vaw = 0
                    var.update({f.name:vaw})
            var['identity']=i+1
            response['items'].append(var)

    return HttpResponse(json(response),mimetype="application/json")
コード例 #3
0
ファイル: views.py プロジェクト: kataev/pokazania
def show_last(request,**kwargs):
    date=datetime.datetime(int(2011),int(5),1,0,0)
    response = {'teplo':{'identifier':'id','items':[],'fields':[]},'energy':{'identifier':'id','items':[],'fields':[]}}
    q=[teplo,energy]
    for model in q:
        query = model.objects.order_by('date').reverse()[:31]
        l = len(query)
        fields = model._meta.fields
        for i in range(l-1):
            cur = query[i]
            var = {}
            for f in fields:
                if f.name =='id':
                    var.update({'id':cur.pk})
                    continue
                if f.name in ['date','date_time']:
                    var.update({f.name:str(getattr(cur,f.name))})
                else:
                    var.update({f.name:round(getattr(cur,f.name),2)})
            var['identity']=i+1
            response[model._meta.app_label]['items'].append(var)
        for f in fields:
            if f.name in ['date_time','id']:
                continue
            if f.name in ['date','date_time']:
                response[model._meta.app_label]['fields'].append({
                    'field': f.name,
                    'name': f.verbose_name,
                    'width': 'auto'})
            else:
                response[model._meta.app_label]['fields'].append({
                    'field': f.name,
                    'name': f.verbose_name,
                    'width': '200px'})


    return HttpResponse(json(response),mimetype="application/json;charset=utf-8;")