def POST(self): inp = web.input() try: wd = WadukDaily.get(int(inp.get('pk'))) wd.set(**{inp.get('name'): float(inp.get('value', 0))}) wd = wd.sqlmeta.asDict() waktu = wd['waktu'] tgl = waktu.strftime('%Y-%m-%d') id = wd['posID'] tma6 = wd['tma6'] tma12 = wd['tma12'] tma18 = wd['tma18'] # memeriksa apakah table 'tma' telah terisi dari pos dan waktu if tma6: tmas = [ t for t in TinggiMukaAir.select( AND(TinggiMukaAir.q.agent == id, TinggiMukaAir.q.waktu == tgl, TinggiMukaAir.q.jam == '6')) ] if tmas == []: TinggiMukaAir( **{ 'agent': id, 'waktu': waktu, 'jam': '6', 'manual': tma6, 'origin': 'web' }) if tmas: tma = [t for t in tmas if t.jam == '6'][0] tma.set(**{'jam': '6', 'manual': tma6}) tma.syncUpdate() if tma12: tmas = [ t for t in TinggiMukaAir.select( AND(TinggiMukaAir.q.agent == id, TinggiMukaAir.q.waktu == tgl, TinggiMukaAir.q.jam == '12')) ] if tmas == []: TinggiMukaAir( **{ 'agent': id, 'waktu': waktu, 'jam': '12', 'manual': tma12, 'origin': 'web' }) if tmas: tma = [t for t in tmas if t.jam == '12'][0] tma.set(**{'jam': '12', 'manual': tma12}) tma.syncUpdate() if tma18: tmas = [ t for t in TinggiMukaAir.select( AND(TinggiMukaAir.q.agent == id, TinggiMukaAir.q.waktu == tgl, TinggiMukaAir.q.jam == '18')) ] if tmas == []: TinggiMukaAir( **{ 'agent': id, 'waktu': waktu, 'jam': '18', 'manual': tma18, 'origin': 'web' }) if tmas: tma = [t for t in tmas if t.jam == '18'][0] tma.set(**{'jam': '18', 'manual': tma18}) tma.syncUpdate() except SQLObjectNotFound: return web.notfound() return {"Ok": "true"}
#f = open('/tmp/out.txt', 'w') for l in lines: (n, d, data) = l.strip().split('\t', 2) # print n b = 11 waktu = datetime.date(th, b, 1) pows = data.strip().split('\t') for i in range(len(pows)): if not i % 2: while waktu.day <= 15: sql = "SELECT id FROM waduk_daily WHERE pos_id=%s AND waktu='%s'" % ( dict_agent[n], waktu) rst = conn.queryAll(sql) if rst: wd = WadukDaily.get(rst[0][0]) print wd.waktu, n wd.po_outflow_q = float(pows[i]) #print rst else: wd = WadukDaily(**dict(pos=dict_agent[n], waktu=waktu, po_outflow_q=float(pows[i]))) print n, waktu #print dict_agent[n], n, waktu, pows[i] waktu += datetime.timedelta(days=1) else: while waktu.day != 1: sql = "SELECT id FROM waduk_daily WHERE pos_id=%s AND waktu='%s'" % ( dict_agent[n], waktu) rst = conn.queryAll(sql)