diff --git a/dmapp/dmweb/dm.py b/dmapp/dmweb/dm.py index 0fb400d..339f246 100644 --- a/dmapp/dmweb/dm.py +++ b/dmapp/dmweb/dm.py @@ -1,7 +1,65 @@ -from flask import Blueprint +from flask import Blueprint, render_template +from pymongo import MongoClient +from pprint import pprint +import datetime +import pytz + +client = MongoClient() +db = client.deskmeter +switches = db.switch + + +dmbp = Blueprint("deskmeter", __name__, url_prefix="/", template_folder='templates') -dmbp = Blueprint("deskmeter", __name__, url_prefix="/") @dmbp.route("/") def index(): - return "Hello, World!" + """ + Show total time used in each desktop for today + """ + + bsas = pytz.timezone("Etc/GMT-0") + + start = datetime.datetime.today().replace(hour=0, + minute=0, + second=0, + tzinfo=bsas) + + + end = datetime.datetime.today().replace (hour=23, + minute=59, + second=59, + tzinfo=bsas) + + + pipe = [ {'$match': { 'date' : {"$gte": start, "$lt": end}} }, + {'$group': { '_id':"$workspace",'totals': {'$sum': '$delta'}}}, + {'$sort': { "_id": 1}}] + + rows = [] + for total in switches.aggregate(pipeline=pipe): + rows.append( {"ws" : total["_id"], + "total": str(datetime.timedelta(seconds=total["totals"]))}) + + + return render_template("pages.html", rows=rows) + + + +@dmbp.route("/totals") +def totals(): + """ + Show total time used in each desktop for all time + """ + + + pipe = [{'$group': {'_id':"$workspace",'totals': {'$sum': '$delta'}}}, + {'$sort': { "_id": 1}}] + + rows = [] + for total in switches.aggregate(pipeline=pipe): + rows.append( {"ws" : total["_id"], + "total": str(datetime.timedelta(seconds=total["totals"]))}) + + print(rows) + return render_template("pages.html", rows=rows) \ No newline at end of file diff --git a/dmapp/dmweb/templates/layout.html b/dmapp/dmweb/templates/layout.html new file mode 100644 index 0000000..ec210e8 --- /dev/null +++ b/dmapp/dmweb/templates/layout.html @@ -0,0 +1,14 @@ + + + + + +{% block content %} +{% endblock %} + + + + + + + \ No newline at end of file diff --git a/dmapp/dmweb/templates/pages.html b/dmapp/dmweb/templates/pages.html new file mode 100644 index 0000000..1d65793 --- /dev/null +++ b/dmapp/dmweb/templates/pages.html @@ -0,0 +1,16 @@ +{% extends 'layout.html' %} + +{% block content %} + + + {% for row in rows %} + + + + +{% endfor %} +
{{ row["ws"] }}{{ row["total"] }}
+ + + +{% endblock content %} \ No newline at end of file diff --git a/dmmain.py b/dmmain.py index 6d2caa5..fc0dcb2 100644 --- a/dmmain.py +++ b/dmmain.py @@ -18,7 +18,8 @@ desktops = ("Work", "Browse", "Write", "Learn", - "Idle") + "Idle", + "Self") unlabeled = "Other" @@ -39,8 +40,6 @@ def desktop(workspace_index): except IndexError: return unlabeled - - current_workspace = active_workspace() last_switch_time = now()