Example #1
0
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)
Example #2
0
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()))