def worked_data(): ret = [] worked = {} q = Queue() worked_list = q.worked_list() # convert all found worked items (inputs + outputs) to suitable output format for datatables for item in worked_list: #print "DEBUG:", item if item["id"] not in worked: worked[item["id"]]={} worked[item["id"]]["id"] = item["id"] worked[item["id"]]["finished"] = False worked[item["id"]]["end_ctime"] = 0 if item["type"] == "input": worked[item["id"]]["start_ctime"] = item["ctime"] if item["type"] != "input": worked[item["id"]]["finished"] = True if ("end_ctime" in worked[item["id"]]) and (worked[item["id"]]["end_ctime"] < item["ctime"]): worked[item["id"]]["end_ctime"] = item["ctime"] else: worked[item["id"]]["end_ctime"] = item["ctime"] for id in worked: if worked[id]["finished"]: duration = "%.2f h" % ( float(worked[id]["end_ctime"]-worked[id]["start_ctime"])/3600 ) else: duration = None ret.append({"id": worked[id]["id"], "start_time": time.ctime(worked[id]["start_ctime"]), "end_time": time.ctime(worked[id]["end_ctime"]), "duration": duration } ) #print "DEBUG:", ret return bson.json_util.dumps({"data":ret}, indent=4)
def flush(): q = Queue() if request.method == "POST": if request.form['submit'] == 'work': q.flush_work() if request.form['submit'] == 'worked': q.flush_worked() if request.form['submit'] == 'both': q.flush_work() q.flush_worked() return redirect(url_for('.index')) else: return render_template('queue_flush.html', work=q.work_left(), worked=len(q.worked_list()))