diff --git a/dmapp/dmweb/dm.py b/dmapp/dmweb/dm.py index a2f431c..0340ba3 100644 --- a/dmapp/dmweb/dm.py +++ b/dmapp/dmweb/dm.py @@ -2,13 +2,7 @@ from datetime import datetime, timedelta from flask import Blueprint, render_template -from .get_period_times import ( - get_period_totals, - read_and_extract, - task_file, - task_or_none, - timezone, -) +from .get_period_times import get_period_totals, task_or_none, timezone dmbp = Blueprint("deskmeter", __name__, url_prefix="/", template_folder="templates") @@ -43,11 +37,11 @@ def oneday( ): task = task_or_none(task) - start = datetime(2020, month, day).replace( + start = datetime(2025, month, day).replace( hour=0, minute=0, second=0, tzinfo=timezone ) - end = datetime(2020, month, day).replace( + end = datetime(2025, month, day).replace( hour=23, minute=59, second=59, tzinfo=timezone ) @@ -72,23 +66,18 @@ def period(start, end): @dmbp.route("/totals") -def totals(): +@dmbp.route("/totals/") +def totals(task=None): """ Show total time used in each desktop for all time """ - pipe = [ - {"$group": {"_id": "$workspace", "totals": {"$sum": "$delta"}}}, - {"$sort": {"_id": 1}}, - ] + task = task_or_none(task) - rows = [] - for total in switches.aggregate(pipeline=pipe): - rows.append( - { - "ws": total["_id"], - "total": str(timedelta(seconds=total["totals"])), - } - ) + start = datetime(2020, 1, 1).replace(hour=0, minute=0, second=0, tzinfo=timezone) + + end = datetime(2030, 1, 1).replace(hour=23, minute=59, second=59, tzinfo=timezone) + + rows = get_period_totals(start, end) return render_template("pages.html", rows=rows) diff --git a/dmapp/dmweb/get_period_times.py b/dmapp/dmweb/get_period_times.py index 766ff84..350056b 100644 --- a/dmapp/dmweb/get_period_times.py +++ b/dmapp/dmweb/get_period_times.py @@ -30,17 +30,17 @@ def now(): return datetime.now(timezone) -def convert_seconds(seconds): - days = seconds // 86400 # 86400 seconds in a day +def convert_seconds(seconds, use_days=False): + days = seconds // 86400 hours = (seconds % 86400) // 3600 minutes = (seconds % 3600) // 60 remaining_seconds = seconds % 60 - if days > 0: + + if use_days: return "{} days, {:02d}:{:02d}:{:02d}".format( days, hours, minutes, remaining_seconds ) - else: - return "{:02d}:{:02d}:{:02d}".format(hours, minutes, remaining_seconds) + return "{:02d}:{:02d}:{:02d}".format(hours + days * 24, minutes, remaining_seconds) def extract(line): diff --git a/dmapp/run.py b/dmapp/run.py index 0f7a83d..1648d44 100644 --- a/dmapp/run.py +++ b/dmapp/run.py @@ -2,5 +2,4 @@ from dmweb import create_app app = create_app() -app.run(host='0.0.0.0', debug=True, threaded=True) - +app.run(host="0.0.0.0", debug=True, threaded=True, port=10000) diff --git a/dmmain.py b/dmmain.py index 2601728..3e0d907 100644 --- a/dmmain.py +++ b/dmmain.py @@ -19,7 +19,7 @@ switches = db.switch dailies = db.daily -desktops = ("Plan", "Think", "Work", "Other", "Away") +desktops = ("Plan", "Think", "Work", "Other", "Away", "Work", "Work") task_file = "/home/mariano/LETRAS/org/task/main" @@ -101,9 +101,7 @@ while True: {"_id": last_doc["_id"]}, {"$set": {"delta": delta, "task": current_task}} ) else: - time.sleep(2) current_workspace = active_workspace() - switch = { "workspace": desktop(current_workspace), "date": now(),