コード例 #1
0
ファイル: views.py プロジェクト: aaksham/HFMG2012V1
def strategy(request,username,name):
    t=StudentTeam.objects.get(pk=name)
    tm=TeamMonth.objects.filter(team=t).filter(month=t.cm)[0]
    strategies=TeamStrategy.objects.filter(team=t).filter(month=t.cm.month_id-1)
    adjusted_round_limit=t.round_limit+timedelta(minutes=60)
    if strategies:
        strategies=roundings(strategies)
    StrategyFormSet=formset_factory(StrategyForm, extra=tm.strat_num)
    c=str(tm.strat_num)
    data={'form-TOTAL_FORMS': c,'form-INITIAL_FORMS': u'0','form-MAX_NUM_FORMS': u''}
    formset=StrategyFormSet(data)
    if request.method=='POST':
        formset=StrategyFormSet(request.POST)
        if formset.is_valid():
            chk=0
            for form in formset:
                if(form.cleaned_data['gearing']>t.maxg):
                    return render(request,'game/Step2.html',{'name':name,'username': username,'formset':formset,'status':t.approve,
                                                                      'error':'Your gearing level cannot exceed %s'%(t.maxg), 'limit':t.round_limit,
                                'lmonth':t.round_limit.strftime("%B"),'aum':round(tm.aum),'strategies':strategies})
                chk+=form.cleaned_data['weight']
            if(chk==100):
                for form in formset:
                    g=0
                    if form.cleaned_data['gearing']:
                        g=form.cleaned_data['gearing']
                    ts=TeamStrategy(team=t,month=t.cm,name=form.cleaned_data['name'],weight=form.cleaned_data['weight'],
                            gearing=g,profit=0.0,market_return=0.0)
                    ts.save()
                return HttpResponseRedirect(BASE_URL+'%(username)s/%(name)s/game/4/' %{"username":username,"name":name})
            else:
                return render(request,'game/Step2.html',{'name':name,'username': username,'formset':formset,'status':t.approve,
                                                         'error':'The weights do not add up to 100%','month':t.cm,
                'limit':t.round_limit,'lmonth':t.round_limit.strftime("%B"),'aum':round(tm.aum),'strategies':strategies})                
        else:
            return render(request,'game/Step2.html',{'name':name,'username': username,'formset':formset,'status':t.approve, 'error':'Invalid','month':t.cm,
            'limit':t.round_limit,'lmonth':t.round_limit.strftime("%B"),'aum':round(tm.aum),'strategies':strategies})
    
    if(t.cm.month_id==t.launch_month.month_id):
        return render_to_response('game/Step2.html',{'name': name, 'username': username, 'status':t.approve, 'formset':formset,'error':'', 'month':t.cm,
    'limit':adjusted_round_limit,'lmonth':t.round_limit.strftime("%B"),'aum':round(t.saum),'strategies':strategies},RequestContext(request))
    return render_to_response('game/Step2.html',{'name': name, 'username': username, 'status':t.approve, 'formset':formset,'error':'', 'month':t.cm,
            'limit':adjusted_round_limit,'lmonth':t.round_limit.strftime("%B"),'aum':round(tm.aum),'strategies':strategies},
                              RequestContext(request))
コード例 #2
0
ファイル: views.py プロジェクト: aaksham/HFMG2012V1
def record_new_strategies(t):
    tss=TeamStrategy.objects.filter(team=t).filter(month=t.cm.month_id-1)
    for s in tss:
        ts=TeamStrategy(team=t,month=t.cm,name=s.name,weight=s.weight,
                            gearing=s.gearing,profit=0.0,market_return=0.0)
        ts.save()