diff --git a/app/charts/main.ipynb b/app/charts/main.ipynb index 227d1ea..647e888 100644 --- a/app/charts/main.ipynb +++ b/app/charts/main.ipynb @@ -1,14 +1,32 @@ { "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "env: PYTHONPATH=app\n" + ] + } + ], + "source": [ + "%env PYTHONPATH=app" + ] + }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ - "from click import style\n", + "from helper.source_env import dbt_models_path\n", + "import os\n", "import streamlit as st\n", - "import pandas as pd\n", + "\n", "import duckdb\n", "import os\n", "\n", @@ -16,86 +34,19 @@ "con = duckdb.connect(f'md:ticktick_gtd?motherduck_token={motherduck_token}')\n", "cur = con.cursor()\n", "\n", - "def highlight_cell(val):\n", - " if val < 20:\n", - " color = 'yellow' \n", - " # elif val < 80:\n", - " # color = 'yellow'\n", - " # elif val < 75:\n", - " # color = 'orange'\n", - " elif val == 100:\n", - " color = 'blue'\n", - " else: \n", - " color = ''\n", - " return f'background-color: {color}'\n", - "\n", - "def highlight_text(val):\n", - " if val == 100:\n", - " return 'color: #86acff; font-weight: bold;'\n", - " elif 0 <= val < 100:\n", - " # Calculate the RGB values for a color between red and green based on the progress\n", - " r = int(255 * (1 - val/100))\n", - " g = int(255 * (val/100))\n", - " b = 0\n", - " return f'color: rgb({r}, {g}, {b}); font-weight: bold;'\n", - " else:\n", - " return ''\n", - "\n", - "def highlight_row(row):\n", - " if any(row.astype(str).str.count('-') >= 4):\n", - " return ['background-color: gray; font-weight: bold;'] * len(row)\n", - " else:\n", - " return [''] * len(row)\n", - "\n", - "st.set_page_config(page_title=\"MY GTD DASHBOARD\", layout=\"wide\", initial_sidebar_state=\"collapsed\", menu_items=None)\n", - "# [theme]\n", - "# base=\"light\"\n", - "# primaryColor=\"#86acff\"\n", - "\n", - "\n", - "\n", - "# df=lvl1_lvl2_progress\n", - "# df=df.style.map(highlight_low_val,subset=['done_progress','clarify_progress'])\n", - "obt=cur.sql(\"select * from obt\").df() \n", - "\n", - "\n", - "# with st.sidebar:\n", - "# folders = obt['fld_folder_name'].drop_duplicates().to_list()\n", - "# filter_folder = st.multiselect('folders',folders,default=folders)\n", "\n", + "analytics_path = os.path.join(dbt_models_path,'analytics')\n", + "target = os.path.join(analytics_path,'active_tags_count.sql')\n", "\n", - "# st.write(\"# lvl1-lvl2 analytics\")\n", - "# st.write(\"## progress summary\")\n", - "lvl1_lvl2_progress = cur.query(\"select * from lvl1_lvl2_progress\").df()\n", "\n", - "filtered_lvl1_lvl2_progress = lvl1_lvl2_progress[lvl1_lvl2_progress['fld_folder_name'].isin(filter_folder)]\n", - "colored_lvl1_lvl2_progress = filtered_lvl1_lvl2_progress.style.map(\n", - " highlight_text,subset=['done_progress','clarify_progress']\n", - ").apply(\n", - " highlight_row\n", - ")\n", - "final_lvl1_lvl2_progress = colored_lvl1_lvl2_progress\n", "\n", - "# st.dataframe(\n", - "# final_lvl1_lvl2_progress,\n", - "# column_config={\n", - "# \"done_progress\": st.column_config.ProgressColumn(\n", - "# \"done_progress\",\n", - "# format=\"%f\",\n", - "# min_value=0,\n", - "# max_value=100\n", - "# ),\n", - "# \"clarify_progress\": st.column_config.ProgressColumn(\n", - "# \"clarify_progress\",\n", - "# format=\"%f\",\n", - "# min_value=0,\n", - "# max_value=100\n", - "# )\n", - "# },\n", + "with open(target,'r') as f:\n", + " query = f.read()\n", + " # print(query)\n", + " df = cur.sql(query).df()\n", + " \n", "\n", - "# hide_index=True,\n", - "# use_container_width=True\n", - "# )\n" + "\n" ] }, { @@ -106,674 +57,47 @@ { "data": { "text/html": [ - "\n", - "
\n", - " | fld_folder_name | \n", - "l_list_name | \n", - "done_progress | \n", - "clarify_progress | \n", + "||||||
---|---|---|---|---|---|---|---|---|---|---|
\n", + " | cnt_clarifyme | \n", + "cnt_none | \n", + "cnt_context | \n", + "cnt_someday | \n", + "cnt_waiting_for | \n", "|||||
0 | \n", - "▶️lvl2 - Innovature | \n", - "----------------------- | \n", - "60.410000 | \n", - "91.390000 | \n", - "||||||
1 | \n", - "▶️lvl2 - Innovature | \n", - "1H 2024 comm pi SOP dev handbook | \n", - "33.330000 | \n", - "100.000000 | \n", - "||||||
2 | \n", - "▶️lvl2 - Innovature | \n", - "1H 2024 commitment doc mngmnt system | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
3 | \n", - "▶️lvl2 - Innovature | \n", - "UA add new field JP on off shore type | \n", - "40.000000 | \n", - "0.000000 | \n", - "||||||
4 | \n", - "▶️lvl2 - Innovature | \n", - "UA bug incorrect financial SP amounts | \n", - "100.000000 | \n", - "100.000000 | \n", - "||||||
5 | \n", - "▶️lvl2 - Innovature | \n", - "UA implement job family mapping | \n", - "75.000000 | \n", - "100.000000 | \n", - "||||||
6 | \n", - "▶️lvl2 - Innovature | \n", - "UA re position the field in contractor table Pre id | \n", - "80.000000 | \n", - "100.000000 | \n", - "||||||
7 | \n", - "▶️lvl2 - Innovature | \n", - "UA split TS in daily ETL | \n", - "50.000000 | \n", - "100.000000 | \n", - "||||||
8 | \n", - "▶️lvl2 - Innovature | \n", - "UA update new cost center schema | \n", - "25.000000 | \n", - "100.000000 | \n", - "||||||
9 | \n", - "▶️lvl2 - Innovature | \n", - "UAL re point correct pay rate values | \n", - "95.450000 | \n", - "100.000000 | \n", - "||||||
10 | \n", - "▶️lvl2 - Innovature | \n", - "UALdebug multi cost center associated to time and invoice amount | \n", - "90.630000 | \n", - "100.000000 | \n", - "||||||
11 | \n", - "▶️lvl2 - Innovature | \n", - "United collaborated UAT testing | \n", - "96.510000 | \n", - "100.000000 | \n", - "||||||
12 | \n", - "▶️lvl2 - Innovature | \n", - "address integrity issues in inno dw | \n", - "22.220000 | \n", - "100.000000 | \n", - "||||||
13 | \n", - "▶️lvl2 - Innovature | \n", - "apply recursive query to inno hierrachy needs | \n", - "66.670000 | \n", - "100.000000 | \n", - "||||||
14 | \n", - "▶️lvl2 - Innovature | \n", - "beef up pi scripting for deployment | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
15 | \n", - "▶️lvl2 - Innovature | \n", - "beef up testing united (h2 comm sub list) | \n", - "83.330000 | \n", - "100.000000 | \n", - "||||||
16 | \n", - "▶️lvl2 - Innovature | \n", - "biweekly notes | \n", - "98.590000 | \n", - "100.000000 | \n", - "||||||
17 | \n", - "▶️lvl2 - Innovature | \n", - "build logic for applicants and requests activity inno dw | \n", - "50.000000 | \n", - "100.000000 | \n", - "||||||
18 | \n", - "▶️lvl2 - Innovature | \n", - "etl and dag design inno DW | \n", - "56.250000 | \n", - "100.000000 | \n", - "||||||
19 | \n", - "▶️lvl2 - Innovature | \n", - "fix workflow cycle time UA | \n", - "84.210000 | \n", - "33.330000 | \n", - "||||||
20 | \n", - "▶️lvl2 - Innovature | \n", - "inno capturing historical employee hierrachy | \n", - "33.330000 | \n", - "100.000000 | \n", - "||||||
21 | \n", - "▶️lvl2 - Innovature | \n", - "phase 1 UAL WO 1k and 2k hours change flag | \n", - "73.680000 | \n", - "60.000000 | \n", - "||||||
22 | \n", - "▶️lvl2 - Innovature | \n", - "python for ad hoc csv | \n", - "64.710000 | \n", - "100.000000 | \n", - "||||||
23 | \n", - "▶️lvl2 - Innovature | \n", - "reverse engineer & learn Pi etl design | \n", - "47.370000 | \n", - "100.000000 | \n", - "||||||
24 | \n", - "▶️lvl2 - Innovature | \n", - "▶️BAU NEXT ACTION | \n", - "83.440000 | \n", - "100.000000 | \n", - "||||||
25 | \n", - "🏚lvl2 - Personal | \n", - "----------------------- | \n", - "38.520000 | \n", - "93.750000 | \n", - "||||||
26 | \n", - "🏚lvl2 - Personal | \n", - "adjust my weight to a comfortable state. | \n", - "75.000000 | \n", - "100.000000 | \n", - "||||||
27 | \n", - "🏚lvl2 - Personal | \n", - "caress for my body and soul under soltitude | \n", - "17.650000 | \n", - "100.000000 | \n", - "||||||
28 | \n", - "🏚lvl2 - Personal | \n", - "dai hoc sis mission control | \n", - "10.000000 | \n", - "0.000000 | \n", - "||||||
29 | \n", - "🏚lvl2 - Personal | \n", - "emergency plan for phone lost situations | \n", - "31.250000 | \n", - "100.000000 | \n", - "||||||
30 | \n", - "🏚lvl2 - Personal | \n", - "keeping healthy habits in check | \n", - "89.470000 | \n", - "100.000000 | \n", - "||||||
31 | \n", - "🏚lvl2 - Personal | \n", - "moderate stress to void dizziness | \n", - "50.000000 | \n", - "100.000000 | \n", - "||||||
32 | \n", - "🏚lvl2 - Personal | \n", - "new identity no PMO | \n", - "25.000000 | \n", - "100.000000 | \n", - "||||||
33 | \n", - "🏚lvl2 - Personal | \n", - "peace of mind for the reduncany | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
34 | \n", - "🏚lvl2 - Personal | \n", - "people observation | \n", - "20.000000 | \n", - "100.000000 | \n", - "||||||
35 | \n", - "🏚lvl2 - Personal | \n", - "personal GTD dashboard | \n", - "44.740000 | \n", - "100.000000 | \n", - "||||||
36 | \n", - "🏚lvl2 - Personal | \n", - "room org | \n", - "87.500000 | \n", - "100.000000 | \n", - "||||||
37 | \n", - "🏚lvl2 - Personal | \n", - "setup a remote troubleshooting tool for her | \n", - "40.740000 | \n", - "100.000000 | \n", - "||||||
38 | \n", - "🏚lvl2 - Personal | \n", - "setup photo studio for mom | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
39 | \n", - "🏚lvl2 - Personal | \n", - "sis career and schooling path insights | \n", - "50.000000 | \n", - "100.000000 | \n", - "||||||
40 | \n", - "🏚lvl2 - Personal | \n", - "ticktick gtd v2 with dbt, dagster and postgres | \n", - "48.280000 | \n", - "100.000000 | \n", - "||||||
41 | \n", - "🏚lvl2 - Personal | \n", - "⚓breaking a bad habit pmo | \n", - "26.670000 | \n", - "100.000000 | \n", - "||||||
42 | \n", - "💤on hold lists | \n", - "----------------------- | \n", - "75.000000 | \n", - "100.000000 | \n", - "||||||
43 | \n", - "💤on hold lists | \n", - "UAL phase 2 BR change flag | \n", - "75.000000 | \n", - "100.000000 | \n", - "||||||
44 | \n", - "💵lvl2 - Finance | \n", - "----------------------- | \n", - "65.380000 | \n", - "100.000000 | \n", - "||||||
45 | \n", - "💵lvl2 - Finance | \n", - "financing for next 3 months | \n", - "65.380000 | \n", - "100.000000 | \n", - "||||||
46 | \n", - "💻lvl2 - Professional | \n", - "----------------------- | \n", - "30.430000 | \n", - "100.000000 | \n", - "||||||
47 | \n", - "💻lvl2 - Professional | \n", - "ETL ticktick data with tickpy API | \n", - "51.430000 | \n", - "100.000000 | \n", - "||||||
48 | \n", - "💻lvl2 - Professional | \n", - "GTD implementation | \n", - "85.860000 | \n", - "100.000000 | \n", - "||||||
49 | \n", - "💻lvl2 - Professional | \n", - "deep implement quota to shallow work endeavor in the month | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
50 | \n", - "💻lvl2 - Professional | \n", - "deep work implementations | \n", - "37.500000 | \n", - "100.000000 | \n", - "||||||
51 | \n", - "💻lvl2 - Professional | \n", - "first take with duckdb for cloud DE | \n", - "12.500000 | \n", - "100.000000 | \n", - "||||||
52 | \n", - "💻lvl2 - Professional | \n", - "gtd lvl3 quarterly review | \n", - "31.580000 | \n", - "100.000000 | \n", - "||||||
53 | \n", - "💻lvl2 - Professional | \n", - "gtd weekly review recurring tasks | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
54 | \n", - "💻lvl2 - Professional | \n", - "job hoppin - getting ready | \n", - "42.860000 | \n", - "100.000000 | \n", - "||||||
55 | \n", - "💻lvl2 - Professional | \n", - "move from lastpass | \n", - "100.000000 | \n", - "100.000000 | \n", - "||||||
56 | \n", - "💻lvl2 - Professional | \n", - "pgsql cli 101 | \n", - "50.000000 | \n", - "100.000000 | \n", - "||||||
57 | \n", - "💻lvl2 - Professional | \n", - "practice wiki google scraping | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
58 | \n", - "💻lvl2 - Professional | \n", - "scrape tictick habit data for data driven next action | \n", - "16.670000 | \n", - "100.000000 | \n", - "||||||
59 | \n", - "💻lvl2 - Professional | \n", - "set up learning a cert | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
60 | \n", - "💻lvl2 - Professional | \n", - "setup lvl2 gtd review process | \n", - "88.890000 | \n", - "100.000000 | \n", - "||||||
61 | \n", - "💻lvl2 - Professional | \n", - "taking up cloud DE courses and material | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
62 | \n", - "💻lvl2 - Professional | \n", - "up my documentation skills | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
63 | \n", - "💻lvl2 - Professional | \n", - "wildly important goal and any benefit mindset | \n", - "0.000000 | \n", - "100.000000 | \n", - "||||||
64 | \n", - "📥lvl2 - organized inbox | \n", - "----------------------- | \n", - "64.650000 | \n", - "100.000000 | \n", - "||||||
65 | \n", - "📥lvl2 - organized inbox | \n", - "⏭NEXT | \n", - "64.650000 | \n", - "100.000000 | \n", + "0 | \n", + "35.0 | \n", + "21.0 | \n", + "204.0 | \n", + "232.0 | \n", + "3.0 | \n", "