Exemple #1
0
def getValueOfdays(fundvalues, beginDateStr, endDateStr, day):
    beginDate = str2date(beginDateStr)
    endDate = str2date(endDateStr)
    currDate = beginDate
    ret = {}

    while (currDate < endDate and currDate < datetime.now()):
        if (currDate.strftime("%a") == day or currDate.day == day or day == 0):
            if (not currDate in fundvalues.keys()):
                dbg(date2str(currDate))
                currDate = incday(currDate)
                while (not currDate in fundvalues.keys()):
                    dbg(date2str(currDate))
                    currDate = incday(currDate)
            ret[currDate] = fundvalues[currDate]

        currDate = incday(currDate)

    return ret
Exemple #2
0
def datepicker(field,value):
    from myutils import date2str
    return DIV(
		        INPUT(_class="form-control date-picker",_id="%s_%s" % (field._tablename, field.name),
		              _name=field.name,_type="text",requires=field.requires,_value=date2str(value),
		              _placeholder=T('Y-m-d'), **{'_data-date-format':T('Y-m-d')}),
		        SPAN(I(_class="icon-calendar bigger-110"),
		             _class="input-group-addon"),
	            _class="input-group"
        )
Exemple #3
0
def addPolicy(fv, detailInfo, more, rate, threshold=-0.01):
    days = list(detailInfo.keys())
    added = {}

    for i in range(1, len(days) - 2):
        #latestinfo = detailInfo[days[i]]
        #preinfo = detailInfo[days[i-1]]
        if (fv[days[i]] - fv[days[i - 1]]) / fv[days[i - 1]] < threshold:  #1%
            #nextinfo = detailInfo[days[i+2]]
            moreshare = more * (1 - rate) / fv[days[i + 2]]
            added[days[i + 2]] = [more, moreshare]
            #detailInfo[days[i + 2]] = [nextinfo[0]+more, nextinfo[1]+more, nextinfo[2]+moreshare, nextinfo[3]+moreshare, detailInfo[days[i + 2]][-1]]
            #detailInfo[days[-1]] = [0, detailInfo[days[-1]][1]+more, detailInfo[days[-1]][2]+moreshare, detailInfo[days[-1]][3]+moreshare, (detailInfo[days[-1]][3]+moreshare)*]

            log('Today: [%s], Mkt: %f; Preday: [%s], Mkt: %f. [%s] Add: %f, Share: %f' \
                % (date2str(days[i]), fv[days[i]], date2str(days[i-1]), fv[days[i-1]], \
                date2str(days[i+2]), more, moreshare))
        elif (fv[days[i]] - fv[days[i - 1]]) / fv[days[i - 1]] > -threshold:
            moreshare = more * (1 - rate) / fv[days[i + 2]]
            added[days[i + 2]] = [-more, -moreshare]

    return added
Exemple #4
0
    Field('termino_confirmacao', 'date', label='Término Confirmação', comment="Data a partir da qual o período de confirmação se encerra. Quando utilizado em paralelo a lista de espera, é uma boa prática que esta data seja um ou dois dias antes do início da atividade, este tempo serve para as pessoas se informaram a respeito de sua vaga. Note que se deixado em branco a confirmação vai até o inicio da atividade."),
    Field('limitantes', 'list:string', label='Combinações possíveis', comment='Este campo serve para limitar o número de atividades que uma pessoa pode se inscrever em um evento. Informe em cada linha da tabela uma combinação possível. Por exemplo, para limitar a uma palestra e 1 curso digite "um" em palestra e em curso na primeira linha, e caso existam outras opções, insira novas linhas com suas respectivas combinações.'),
    Field('num_chamadas', 'integer', label='Número de listas de presença', comment='Estimativa do número de vezes que se passará a lista de presença durante a atividades.'),
#    Field('balanco_id', 'integer'),
#    Field('configuracao_id', 'integer'),
    Field('divulgar', 'boolean', comment="Quando marcado, todos poderão ver esta atividade."),
    Field('slug', 'string', compute=lambda r: IS_SLUG()(r.nome)[0] ),
    format = lambda row: db_utils.atividade_format(db, row),
)


db.define_table('atividade_periodo',
    Field('atividade_id', 'reference atividade', required=True),
    Field('inicio', 'datetime', required=True),
    Field('termino', 'datetime', required=True),
    format=lambda r: "%s %s" %(date2str(r.inicio), date2str(r.termino) ) ,
)


db.define_table('divisao',
    Field('grupo_id', 'integer'),
    Field('nome', 'string'),
)


db.define_table('lotacao',
    Field('divisao_id', 'integer'),
    Field('organizacao_id', 'integer'),
    Field('pessoa_id', 'reference pessoa'),
)
def periodos_shortcut(db,atividade):
    periodos={}
    for p in db(db.atividade_periodo.atividade_id==atividade).select(orderby=db.atividade_periodo.inicio):
        inicio = p.inicio.date()
        termino = p.termino.date()
        if periodos.has_key(inicio):
            periodos[inicio]+=[p.inicio.time()]
        else:
            periodos[inicio]=[p.inicio.time()]
            
        if periodos.has_key(termino):
            periodos[termino]+=[p.termino.time()]
        else:
            periodos[termino]=[p.termino.time()]
            
    t='<table class="table table-bordered">'
    for data, horas in periodos.items():
        hrs=[]
        for i,h in enumerate(horas[::2]):
            hrs.append( ' - '.join(map(date2str,horas[i*2:2*(i+1)])) )
            
        n = len(hrs)
        t+='<tr><td rowspan="%s" style="vertical-align:middle;" align="center" class="col-xs-5"><b>%s</b></td> <td align="center" class="col-xs-7">%s</td> </tr>' %(n, date2str(data),hrs[0])
        for h in hrs[1:]:
            t+='<tr><td align="center">%s</td></tr>' %h
    
    t+='</table>'
#        t += date2str(date)

#        date2 = p.inicio.date()
#        if date==p.termino.date() and date2==date:
#            inicio = p.inicio.time()
#            termino = p.termino.time()
#            t+=" %s - %s" %(date2str(inicio),date2str(termino) )
#        else:
#            t+='<br/>'
#        date = p.inicio.date()
            
#    if np > 2:
#        periodos = [periodos[0],"...",periodos[np-1]]
    return XML(t)#''.join(['%s<br />' %db.atividade_periodo._format(periodo) for periodo in periodos or []]))