diff --git a/alembic/versions/813a2379f36d_add_project_column_to_time.py b/alembic/versions/813a2379f36d_add_project_column_to_time.py
new file mode 100644
index 0000000..f42355e
--- /dev/null
+++ b/alembic/versions/813a2379f36d_add_project_column_to_time.py
@@ -0,0 +1,29 @@
+"""Add project column to time.
+
+Revision ID: 813a2379f36d
+Revises: 348acf3ce3c3
+Create Date: 2025-10-25 07:49:49.562787
+
+"""
+
+from collections.abc import Sequence
+
+import sqlalchemy as sa
+
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision: str = "813a2379f36d"
+down_revision: str | Sequence[str] | None = "348acf3ce3c3"
+branch_labels: str | Sequence[str] | None = None
+depends_on: str | Sequence[str] | None = None
+
+
+def upgrade() -> None:
+ """Upgrade schema."""
+ op.add_column("Events", sa.Column("Project", sa.String(), nullable=True))
+
+
+def downgrade() -> None:
+ """Downgrade schema."""
+ op.drop_column("Events", "Project")
diff --git a/scripts/insert_working_days.py b/scripts/insert_working_days.py
index 1bf5b47..a6ab71d 100644
--- a/scripts/insert_working_days.py
+++ b/scripts/insert_working_days.py
@@ -41,17 +41,17 @@ def main() -> None:
end_minute = random.randint(0, 59)
end_dt = datetime.datetime.combine(current, datetime.time(end_hour, end_minute))
# Insert start event
- DB_CONTROLLER.add_event("start", start_dt)
+ DB_CONTROLLER.add_event("start", start_dt, "default")
# 40% chance for a break from 12:00 to 13:00
pause_chance = 0.8
if random.random() < pause_chance:
pause_start = datetime.datetime.combine(current, datetime.time(12, 0))
pause_end = datetime.datetime.combine(current, datetime.time(13, 0))
- DB_CONTROLLER.add_event("stop", pause_start)
- DB_CONTROLLER.add_event("start", pause_end)
+ DB_CONTROLLER.add_event("stop", pause_start, "default")
+ DB_CONTROLLER.add_event("start", pause_end, "default")
# Add pause (60 minutes)
# Insert end event
- DB_CONTROLLER.add_event("stop", end_dt)
+ DB_CONTROLLER.add_event("stop", end_dt, "default")
current += datetime.timedelta(days=1)
diff --git a/scripts/plotting.ipynb b/scripts/plotting.ipynb
index 2c66e9f..85fa662 100644
--- a/scripts/plotting.ipynb
+++ b/scripts/plotting.ipynb
@@ -9,55 +9,58 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
- "import sys\n",
"import os\n",
"import random\n",
+ "import sys\n",
"\n",
- "parent_path = os.path.abspath('..')\n",
+ "parent_path = os.path.abspath(\"..\")\n",
"sys.path.append(parent_path)"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
- "from src.datastore import store\n",
- "from src import utils\n",
+ "import datetime\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
- "import datetime"
+ "import seaborn as sns\n",
+ "\n",
+ "from src import utils\n",
+ "from src.config_handler import CONFIG_HANDLER\n",
+ "from src.datastore import store\n"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# generate a test dataframe for a given full month, having values for each weekday, ranging between 7.0 and 9.0 with one decimal\n",
- "# df should have columns: day(index), work_time, pause, work\n",
+ "# df should have columns: day(index), total_time, pause, work\n",
"def gen_df_test():\n",
" df2 = pd.DataFrame(\n",
" {\n",
" \"day\": pd.date_range(start='2021-01-01', periods=31).date,\n",
- " \"work_time\": [round(random.uniform(7.5, 9), 1) for _ in range(31)],\n",
+ " \"total_time\": [round(random.uniform(7.5, 9), 1) for _ in range(31)],\n",
" \"pause\": [round(random.uniform(0, 0.6), 1) for _ in range(31)],\n",
" }\n",
" )\n",
- " df2[\"work\"] = df2[\"work_time\"] - df2[\"pause\"]\n",
+ " df2[\"work\"] = df2[\"total_time\"] - df2[\"pause\"]\n",
" return df2"
]
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -85,42 +88,484 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " total_time | \n",
+ " start_time | \n",
+ " end_time | \n",
+ " pause | \n",
+ " work | \n",
+ " break_time | \n",
+ " target_time | \n",
+ " overtime | \n",
+ "
\n",
+ " \n",
+ " | day | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 2025-01-01 | \n",
+ " 8.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 8.00 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-02 | \n",
+ " 8.70 | \n",
+ " 06:10:00 | \n",
+ " 15:52:00 | \n",
+ " 1.0 | \n",
+ " 7.70 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -0.30 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-03 | \n",
+ " 7.78 | \n",
+ " 06:48:00 | \n",
+ " 15:35:00 | \n",
+ " 1.0 | \n",
+ " 6.78 | \n",
+ " 1.0 | \n",
+ " 6.0 | \n",
+ " 0.78 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-04 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-05 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-06 | \n",
+ " 8.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 8.00 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-07 | \n",
+ " 7.95 | \n",
+ " 06:34:00 | \n",
+ " 15:31:00 | \n",
+ " 1.0 | \n",
+ " 6.95 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -1.05 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-08 | \n",
+ " 8.43 | \n",
+ " 06:33:00 | \n",
+ " 15:59:00 | \n",
+ " 1.0 | \n",
+ " 7.43 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -0.57 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-09 | \n",
+ " 9.10 | \n",
+ " 06:19:00 | \n",
+ " 15:25:00 | \n",
+ " 0.0 | \n",
+ " 9.10 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 1.10 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-10 | \n",
+ " 7.85 | \n",
+ " 06:46:00 | \n",
+ " 15:37:00 | \n",
+ " 1.0 | \n",
+ " 6.85 | \n",
+ " 1.0 | \n",
+ " 6.0 | \n",
+ " 0.85 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-11 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-12 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-13 | \n",
+ " 8.15 | \n",
+ " 06:38:00 | \n",
+ " 15:47:00 | \n",
+ " 1.0 | \n",
+ " 7.15 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -0.85 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-14 | \n",
+ " 8.10 | \n",
+ " 06:00:00 | \n",
+ " 15:06:00 | \n",
+ " 1.0 | \n",
+ " 7.10 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -0.90 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-15 | \n",
+ " 9.02 | \n",
+ " 06:22:00 | \n",
+ " 15:23:00 | \n",
+ " 0.0 | \n",
+ " 9.02 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 1.02 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-16 | \n",
+ " 8.98 | \n",
+ " 06:42:00 | \n",
+ " 15:41:00 | \n",
+ " 0.0 | \n",
+ " 8.98 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 0.98 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-17 | \n",
+ " 9.07 | \n",
+ " 06:06:00 | \n",
+ " 15:10:00 | \n",
+ " 0.0 | \n",
+ " 9.07 | \n",
+ " 0.0 | \n",
+ " 6.0 | \n",
+ " 3.07 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-18 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-19 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-20 | \n",
+ " 7.53 | \n",
+ " 06:51:00 | \n",
+ " 15:23:00 | \n",
+ " 1.0 | \n",
+ " 6.53 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -1.47 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-21 | \n",
+ " 8.23 | \n",
+ " 06:52:00 | \n",
+ " 15:06:00 | \n",
+ " 0.0 | \n",
+ " 8.23 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 0.23 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-22 | \n",
+ " 8.07 | \n",
+ " 06:43:00 | \n",
+ " 15:47:00 | \n",
+ " 1.0 | \n",
+ " 7.07 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -0.93 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-23 | \n",
+ " 8.68 | \n",
+ " 06:13:00 | \n",
+ " 15:54:00 | \n",
+ " 1.0 | \n",
+ " 7.68 | \n",
+ " 1.0 | \n",
+ " 8.0 | \n",
+ " -0.32 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-24 | \n",
+ " 8.50 | \n",
+ " 06:19:00 | \n",
+ " 15:49:00 | \n",
+ " 1.0 | \n",
+ " 7.50 | \n",
+ " 1.0 | \n",
+ " 6.0 | \n",
+ " 1.50 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-25 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-26 | \n",
+ " 0.00 | \n",
+ " None | \n",
+ " None | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ " 0.0 | \n",
+ " 0.0 | \n",
+ " 0.00 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-27 | \n",
+ " 9.18 | \n",
+ " 06:24:00 | \n",
+ " 15:35:00 | \n",
+ " 0.0 | \n",
+ " 9.18 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 1.18 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-28 | \n",
+ " 9.42 | \n",
+ " 06:05:00 | \n",
+ " 15:30:00 | \n",
+ " 0.0 | \n",
+ " 9.42 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 1.42 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-29 | \n",
+ " 9.10 | \n",
+ " 06:24:00 | \n",
+ " 15:30:00 | \n",
+ " 0.0 | \n",
+ " 9.10 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 1.10 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-30 | \n",
+ " 8.73 | \n",
+ " 06:30:00 | \n",
+ " 15:14:00 | \n",
+ " 0.0 | \n",
+ " 8.73 | \n",
+ " 0.0 | \n",
+ " 8.0 | \n",
+ " 0.73 | \n",
+ "
\n",
+ " \n",
+ " | 2025-01-31 | \n",
+ " 9.10 | \n",
+ " 06:20:00 | \n",
+ " 15:26:00 | \n",
+ " 0.0 | \n",
+ " 9.10 | \n",
+ " 0.0 | \n",
+ " 6.0 | \n",
+ " 3.10 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
"text/plain": [
- "7.8"
+ " total_time start_time end_time pause work break_time \\\n",
+ "day \n",
+ "2025-01-01 8.00 None None 0.0 8.00 0.0 \n",
+ "2025-01-02 8.70 06:10:00 15:52:00 1.0 7.70 1.0 \n",
+ "2025-01-03 7.78 06:48:00 15:35:00 1.0 6.78 1.0 \n",
+ "2025-01-04 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-05 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-06 8.00 None None 0.0 8.00 0.0 \n",
+ "2025-01-07 7.95 06:34:00 15:31:00 1.0 6.95 1.0 \n",
+ "2025-01-08 8.43 06:33:00 15:59:00 1.0 7.43 1.0 \n",
+ "2025-01-09 9.10 06:19:00 15:25:00 0.0 9.10 0.0 \n",
+ "2025-01-10 7.85 06:46:00 15:37:00 1.0 6.85 1.0 \n",
+ "2025-01-11 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-12 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-13 8.15 06:38:00 15:47:00 1.0 7.15 1.0 \n",
+ "2025-01-14 8.10 06:00:00 15:06:00 1.0 7.10 1.0 \n",
+ "2025-01-15 9.02 06:22:00 15:23:00 0.0 9.02 0.0 \n",
+ "2025-01-16 8.98 06:42:00 15:41:00 0.0 8.98 0.0 \n",
+ "2025-01-17 9.07 06:06:00 15:10:00 0.0 9.07 0.0 \n",
+ "2025-01-18 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-19 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-20 7.53 06:51:00 15:23:00 1.0 6.53 1.0 \n",
+ "2025-01-21 8.23 06:52:00 15:06:00 0.0 8.23 0.0 \n",
+ "2025-01-22 8.07 06:43:00 15:47:00 1.0 7.07 1.0 \n",
+ "2025-01-23 8.68 06:13:00 15:54:00 1.0 7.68 1.0 \n",
+ "2025-01-24 8.50 06:19:00 15:49:00 1.0 7.50 1.0 \n",
+ "2025-01-25 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-26 0.00 None None 0.0 0.00 0.0 \n",
+ "2025-01-27 9.18 06:24:00 15:35:00 0.0 9.18 0.0 \n",
+ "2025-01-28 9.42 06:05:00 15:30:00 0.0 9.42 0.0 \n",
+ "2025-01-29 9.10 06:24:00 15:30:00 0.0 9.10 0.0 \n",
+ "2025-01-30 8.73 06:30:00 15:14:00 0.0 8.73 0.0 \n",
+ "2025-01-31 9.10 06:20:00 15:26:00 0.0 9.10 0.0 \n",
+ "\n",
+ " target_time overtime \n",
+ "day \n",
+ "2025-01-01 8.0 0.00 \n",
+ "2025-01-02 8.0 -0.30 \n",
+ "2025-01-03 6.0 0.78 \n",
+ "2025-01-04 0.0 0.00 \n",
+ "2025-01-05 0.0 0.00 \n",
+ "2025-01-06 8.0 0.00 \n",
+ "2025-01-07 8.0 -1.05 \n",
+ "2025-01-08 8.0 -0.57 \n",
+ "2025-01-09 8.0 1.10 \n",
+ "2025-01-10 6.0 0.85 \n",
+ "2025-01-11 0.0 0.00 \n",
+ "2025-01-12 0.0 0.00 \n",
+ "2025-01-13 8.0 -0.85 \n",
+ "2025-01-14 8.0 -0.90 \n",
+ "2025-01-15 8.0 1.02 \n",
+ "2025-01-16 8.0 0.98 \n",
+ "2025-01-17 6.0 3.07 \n",
+ "2025-01-18 0.0 0.00 \n",
+ "2025-01-19 0.0 0.00 \n",
+ "2025-01-20 8.0 -1.47 \n",
+ "2025-01-21 8.0 0.23 \n",
+ "2025-01-22 8.0 -0.93 \n",
+ "2025-01-23 8.0 -0.32 \n",
+ "2025-01-24 6.0 1.50 \n",
+ "2025-01-25 0.0 0.00 \n",
+ "2025-01-26 0.0 0.00 \n",
+ "2025-01-27 8.0 1.18 \n",
+ "2025-01-28 8.0 1.42 \n",
+ "2025-01-29 8.0 1.10 \n",
+ "2025-01-30 8.0 0.73 \n",
+ "2025-01-31 6.0 3.10 "
]
},
- "execution_count": 16,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "0.975 * needed_hours"
+ "df"
]
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
- "text/plain": [
- "Text(0.5, 1.0, 'Working time for June 2024')"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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CgAAQD0izAEAAAAAAChgjeq6AAAAAAAAABZMmAMAAAAAAFDACirMadq0abp3Xy9Nmzat61IAAAAAAAAKQkGFOWus0SXXXX991lijS12XAgAAAAAAUBAKKswBAAAAAACgMmEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUsJK6LgAAAFg6Vlxxxeyww3bZcMMNUtqktK7LoR6aMWNGPvv887w64NW8MmBAZs2aXdclAQDAckmYAwAADVCjRo1y3LFHp2PHDpkxY0YmTZpc1yVRDzVvvkJ6bLxRemy8Ubqv1z233HKrQAcAAOqAMAcAABqg73xn63Ts2CEDX38j1113fcrLy+u6JOqp1VZbLYf+7JBsteUWeeedd/Pyy6/UdUkAALDccc8cAABogDbdpGeS5K67/inIYYkMGzYsN950c5KkV69N67gaAABYPglzAACgAVpxxRUzbdq0jB07tq5LoQEYOnRYpkyZko4dOtR1KQAAsFwS5gAAQANUWlqaqVOn1nUZNCDTp09P48aN67oMAABYLglzAACggZrtPvXUIssTAADUHWEOAAAAAABAARPmAAAALIF27dqlX/8Xctwvj6/rUgAAgAZKmAMAAAAAAFDASuq6AAAAYNlrcuLgui6hwvTLu9V1CQAAAAXNmTkAAAAAAAAFTJgDAADUW/+6976cf8GFC3y8pKQkTz3znxx/wokV4/7v/7bOX6+9Lk8+/Uwee/yJXHrZ5em29trVTv+b089Iv/4vpKysLCeceFIeeOjhPPn0M7nhppuzeufOC3zeJk2a5LLLr8i/n3gyG2640eLPIAAAQIQ5AABAPfb2W29l3e7dF/h417XWSmlpad5++60kyTbbbJsLL7oozZo1y3XX/jV3/P3vWWfddfLnP1/9reHMmWednXXXXTd33vH3/OWaqzNixPCstOJK1bZt0qRJLrzooqy/wQY58YTj89Zbby7ZTAIAAMs998wBAADqrbfffivbbb99VlpppXzxxRdp0qRJmjdvni+++CJJst566yVJ3nprTphzxFFHZdJXX+WoI4/IV199lSTp3/+/ufGmm/Oznx2ac84+q9rnady4cY468ojMmjUrSfLPu+9Oo0ZVfxvXpElpLrr44qzbvXtOPP6Xeeedd2p9ngEAgOWPMAcAAJZAWVlZjup7dLbZdtu0aNEiw4YOzS233Jynn3qqRtM3bdo0vzjiiGyz7XfTunXrDP300/ztb9el3/PPL+XKG4a5IU339dbLf/v1y08OOjiHHnZYDv7JT/LRRx9m3e7dM2rUqIwcMSJt27ZN586d8+ADD1QEOUkyeNCgvP/ee+nVu/cCn+fWW26uCHLmmn+4tLQ0F19ySXr07Jkjj/hF3nv33VqcUwCA+sn+MsvC8rCcucwaAAAsgb5HH5O999kn06dPy6uvvppOq6+es84+J13WXLPG0++73/6ZPXtWBgwYkNU7d85551+QddZZZylX3jAMHjQoU6dOrTgDp/dmm2XChAnpvdmcYGa97uvlf2+/nSRZZdVVkyQjRgyv0s/w4cOz4oorpkmTJtU+z5AhQxZay267756Ne/RISUlJunXrtljzAwDQ0NhfZllYHpYzYQ4AACyBHj17JEkOP/SwnHLyr/LgAw+kuLg4nVbrVKPpt9l22yRJ3yOPzCkn/yo333RTSkpKstvuP1haJTcoM2fOzLvvvpt1u3dPs2bNss466+Tmm27MZpttnqZNm2b1zp0rzt5ZEhMnTlxom/HjxuXwQ3+Wt99+K8ce98usttpqS/y8AAD1nf1lloXlYTkT5gAAwBIY8tGcMzauve66XHTxJfnBD3+Yga+9lhdffLFG0y/oTJBua69dazU2dG+/9Va6d18vm/bqlcGDBuXJJ57IRhtvnA032ijFxcV5+603kySjRo5MkrRr175KH+3bt8/48eMzffr0xa7j6aefzocffpjfnXNukuTMs89JcXHxYvcHANAQ2F9mWVgeljNhDgAALIFLL7k4AwcOTKfVV8//bb11ioqK8sIL/TN9+rQaTT/wtdeSJFf/5S+56OJLcshPf5okad2q1dIqucF5+6230rJly+y511556aUXM3bs2AwbOjT7739Apk2blvfffz9JMnr06HzyySfZ9rvfTfPmzSum77b22lln3XUzYMArtVLPZ58Ny5+u+mPWW2+9HHb44bXSJwBAfWV/mWVheVjOhDkAALAE9t1vv2ywwQY5/rjjsstOO+aVl19O36OPyXe22aZG01922aV57rlns8IKzbNWt2556MEHkySzZs9emmU3KG99febN5ptvkZe+/uXdSy+9mM232CLvvftuZs6cWdH2r3+5Js2bN881f/lr9j/ggBzy05/m8iuuyJQpU3LzjTfWWk0P3H9//tuvX378k4Oy0cYb11q/AAD1jf1lloXlYTkT5gAAwGIqLS3NwYf8NIMHD86AAa9k4sSJue++e5Mkm27aq0Z9jB0zJr859dTsstOO2XuvPfPSS3PCiDFjRi+1uhuaCRMm5NNPPsmXX36Zd955J0kqQp233658v5znnn02p516SqZMmZJfHHFkfvzjn2TQoEE5pu9RGTJkSK3W9fsLL8iECV/mt2eelRVWWKFW+wYAqA/sL7MsLC/LWUldFwAAAPVVcXFxSkpK0r59+5SVlWXq1Knp1q1bkmTixIkV7bp3Xy9nnHlmkuSXxx5b6QvBSiutlK+++irTp09PSUlJ9tt//yTJa6++tlRrn355t6Xa/7L2owMPqDQ8cODAbL3VltW2/W+/fvlvv3416veC88/LBeef961tRowYUe1zjRs3Lj/YbbcaPQ8AQENUn/eXqT+Wl+VMmAMAAItp8uTJef31genRo2duvvXWDBs6LL169055eXme/c8zFe3KykrTuXPnJElJSXGlPnpuskmO++Xxee+997LGGp3TseNqGTN6dO6951/LdF4AAKC22V9mWVheljOXWQMAgCVw1pln5rHHHk1paVk23GijDB40KKedeko++OCDGk0/YvjwTJgwIb17907z5i3y9FNPpe9RR2bChAlLuXIAAFj67C+zLCwPy1nRGl3WKpg7+HTvvl6uu/76/Pyww/Luu+/UdTkAAFBvXXzRhUmSX59yWh1XQkNhmQIAgLrjzBwAAAAAAIACJswBAAAAAAAoYMIcAAAAAACAAibMAQAAAAAAKGDCHAAAAAAAgAImzAEAAAAAAChgwhwAAAAAAIACJswBAAAAAAAoYMIcAAAAAACAAibMAQAAKFA9e/ZMv/4vZJddd63rUgAAgDpUUtcFAABAIWp8z1Z1XcJCzejTv65LYDHssuuuad68Re6+6x91XQoAwBKxz8yyYDmbQ5gDAADLoSEbFs5J+l3emlXXJSxTu+66W9q1b1+jMOf111/P97+7bcrLy5dBZQAAQKES5gAAABSo2bNnZ/r06XVdBgAAUMcK5+d4AAAAi2mVVVbJb886Kw8+/Eie/s+zufW227NXnz4Vj3/3e99Lv/4vZOvvfKfKtDvvsmv69X8hm22+eaXx22y7ba7567V54qmn8/gTT+ayy6/IWt26Vfv8/fq/kN+cfkbWWXfd/PGqP+WJp57Ow48+ljN+e2aSOZdW69f/hfTr/0J6brJJ2rdvXzFc3T1xLrrk0m99PPnmfjqH//wXeeChh/Ove+7Nxj165MKLLsrjTz6V3513fkpKSqpMc8WVf8hjjz+RJ59+Jldf85f03GSTmr3IAABAnRHmAAAA9doKK6yQP1/zl3zve9/Po488kj9ddVXGjRuXk351cg756U+TJP3/2z+TJk3K97+/XZXpt9tuu4wb90VeHTCgYtyBB/4oF1z4+0yfPi1/uebq3Hjjjem42mq5+uprsnrnztXWscoqq+TKP/wxn3/+ef78p6ty9113ZeWVV06SvPH66zn3nLNz7jln5+OPP864ceMqhs895+y88frrlfq68++359xzzs4tN9+00PnffIvNc9utt6ZV69a5/IorM3bM2DzwwP353ve/n2222bai3fe32y5X/vGqtGzVKjfecH3++pdr0qRJk1xx5R/Ss2fPhT4PAABQd1xmDQAAqNf26tMn7du3z3m/+10ee/SRJMn9992bv157XQ46+JD88+67M2nSpPTr93y23vo7adKkScWly1q0aJFevXvnoQcfyMyZM5Mkq7ZrlyOOOirPPPN0fnv66RXP8+ijj+Qfd92dn/3s0Jxz9llV6ujVu3fOOeusPPHE4xXjGjWa8/u5zz//PJ9//nmS5Ac/+GFKS0vz+L//vcB5GjhwYJI5Z9IcfMhPv3X+77rzH3niicez+eabp0fPnrn8sksze/bs7LVXn6zVrVuefvqpNG3aNL86+dd579130/eoIyvm9f777svtd9yZXxx5VI464hff+jwAAEDdcWYOAABQr/Xq1TtTp07Nk/OEKDNnzsyjjz6SsrKybLTxxkmSp554MiussEK22GLLinbbbLNtGjdunCeffLJi3He/+92UlJTksUcfTatWrSr+zZ41Kx9++OECL0s2dOjQSkFOksyaNas2Z7Va48aNS5J8+eWXmTBhQmbNmpXZs2dnwoQJadWqVZKk92abpWXLlvn3v/+d5s2bV8xT06ZN87//vZ311lsvpaWlS71WAABg8TgzBwAAqNdWWWWVjBkzJuXl5ZXGjxg+4uvHV02SvPTSi5kwYUK+v/12ee65Z5Mk399+u4waNarSZc5WW61TkuSiiy+p9vnmntUyv48/HrJE87G4Zs6cM9/l5eWVXoPy8vKUNJ7zla9TpznzdOJJJ+XEk06qtp9WrVpl1KhRS7laAABgcQhzAACA5cLMmTPz7H/+k+223z5NmpSmrKw0m27aK/+8+65q25915m/z5fgva9z/xAkTa6vUWlOUokrDf7jyigz5qPrQafz48cugIgAAYHEIc4AGr6ysLEf1PTrbbLttWrRokWFDh+aWW27O0089VeM+OnTokCOOPCqb9uqVpk2bZujQobn49xfmnXfeWYqVV9WQ5gUAasuoUaOywYYbpqSkpNKZKe3at0uSjJ7nbJOnnnwyP/jhD7PV/22VFi1apKSkpNIl1pLks8+GJUm+GDu24t41tWn27Nm13ufCDBs2Z56++uqrDBjwyjJ/fgAACo/jTPWLMAdo8PoefUz67L13PvtsWF59dVB69eqVs84+J0OGDMmQjz5a6PStWrXK1df8JW3ats0Hgwfn8+Gfp9NqndKufftlvmFqSPMCALVlwIBX0qt372y/w4557NFHkiTFxcXZZZddM23atLz55hsVbV977dWMHTs22223/ZwvrMOG5b13363U33+eeSZHHtU3Bx1ySN58880ql1VbtV27jBwxYrHrnTx5clq1apXi4uIFXrKttr388suZOGFCDvzRj/L0U09l2rRplR5f0nkCAKD+qS/HmQad9WKt9bW0dFkGzyHMARq8Hj17JEkOP/SwTJw4IcefcGL22XffdFqtU402THv12Ttt2rbNnXfekT/98Y9Ludpv15DmBQBqy7333JM99twrJ//61+nSpUtGjhyZ7373u1m3e/fccP3f8tVXX1W0nTVrVv7zzDPZbffdU1JSkttvu7VKfyNGjMhfr7kmRx97bK67/oY8/dRTmThhQlbr1ClbbrVV3nrzzVz0+wsXu9633nozW3/nO/n1KafmueeeTfmM8nz44YcZM2Z0kjm/btxgww2TJGussUaSZIMNNqwIfj784IN8+OGHi/ScUyZPziWXXJwzzzo7t9x2Wx595NF88cXYtGvXPr03652vJn6VE47/5WLPEwAA9Y/jTPWLMAdo8IZ8NCRrrtk11153XT799NP06t07A197LS++WLNUf5NNNkmSNC5pnLv/dU+aNWuWF/r3z+WXXZrJkycvzdKraEjzAgC1ZdKkSTn6qCNz5FF9s/sPfpCmTZvm888/zxWXX5Z//fOfVdo/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Hzjwtey08y7ZfIstMm3atAwcODA333hjBgx4ZSlXDgDLlm0mLFjje7aq6xIqzOjTv65LAChI9mUAgLmK1uiy1uyFN1s2undfL9ddf31+fthheffdd+q6HJaBsrKyHNX36Gyz7bZp0aJFhg0dmltuuTlPP/XUIve1xx575uRTTkmSHPSTH2fIRx/VdrkL1dDmBwCWZ4UUdizIt4UgF190YZLk16ecVu3jhTR/wpz6YWHL1PLI/j8Ay7tC2qdckNre17T9X/aGbFj4d4vp8taspf4czsyhTvU9+pj02XvvfPbZsLz66qD06tUrZ519ToYMGbJIH14dOnTI0cccsxQrrZmGNj/1QUPaaWhI8wJAgVmxcV1X8O1WbJyMm7HYk++y6645/Yzf5szfnpHtt98hvTfbLFOnTskTjz+Rv1xzdaZPn54kWW+99dJn732ywYYbpm3btpk2bVrefvut3HD99Xnv3Xcr9dmv/wt55OGHc8H551WM69mzZ67689U5/7zf5dFHHqkY36FDh/z8F0dk4x490rp164wfPz7/e/vtXHPN1fn8s88q9bvWWmvl0MMOz8Y9eqSsrCwff/xxbr3l5vznmWdC/WP/HwCWP/Vh++8YU8NU+JEWDVqPnj2SJIcfelhOOflXefCBB1JcXJxOq3WqcR9FRUU57fQzMnrMmIwZM2YpVVozDW1+AADqkxNOPDFNmjTJNX/+c1566aXst//++fUpp1Y8vs2222b99dfPk088kcsvvTS333ZrOnfunD/9+ep0WXPNxXrO4uLiXHbFldls883z0IMP5LJLL80D99+fVdu1yxqd16jUdqONN85frr0ua3btmr/fflv+fNVVmThxYs47/4LsuNNOSzLr1BH7/wCw/LH9p644M4c6NeSjIVlzza659rrr8umnn6ZX794Z+NprefHFF2vcx/4HHJANN9wwRx1xRM4977yFT7AUNbT5AQCoT4YN+ywn/+qkzJ49O/fc8680KmqUnXfZJTfffFOGfvpp7r777vzlmmsqTfP0U0/l7n/dkx/usUf+cMUVi/yca6yxRjp16pSr/viH/OPOOyvG33TjDSkurnwj8lNOPS1fjB2bQ396SCZPnpwkueeef+Wv116XI4/qm8f//e/FmGvqkv1/AFj+2P5TV5yZQ5269JKLM3DgwHRaffX839Zbp6ioKC+80D/Tp0+r0fSdO3fOz39xRP5++20FcZ+lhjY/AAD1yeP/fiyzZ39zS9DHH58TjvTu1TtJMnaeXz02bdYsrVq1yuTJkzNu3BeL9EvKec0NZTbYYMOUlpZWemzmzJkVf6+99trp3Llznnnm6TRu3DitWrWq+Pf6669nlVVWSafVV1+sGqg79v8BYPlj+09dcWYOdWrf/fbLBhtskOOPOy7vv/9ezvjtmel79DEZOnRonn/uuYVOf/pvz8zQTz/NDddfvwyqXbiGNj8AAPXJyBEjKw+PnDO8yqqrJElWXHHFHNm3b77znW3SsmXLSm2bNGmyWM85fPjw3HnH33PAgT/Kllttlffeezf/e/vtPPH44/nggw8q2q3WaU5Y9OOfHJQf/+SgavtaccUVM/TTTxerDuqG/X8AWP7Y/lNXhDnUmdLS0hx8yE8zaNCgDBjwSpLkvvvuzf9tvXU23bRXjT781ltvvSTJf557vtL4W2+7Pcce3TcDBw6s/cIXoKHNDwBAQzF9+owUFRXliiv/kNU7d87dd92Vd975XyZ9NSlJctY556SoqGih/TRqVFzt+D9ddVUeeOCBbL75Fum5Sc/su9/+2f+AA3P6b07Lf/v1q9T21ltuyasDBlTbz6LcMJe6Z/8fAJY/tv/UJWEOdaa4uDglJSVp3759ysrKMnXq1HTr1i1JMnHixIp23buvlzPOPDNJ8stjj82YMaMrHnvzjTcq9bnOuuumtLQ077//fr6aNGkZzMU3Gtr8AADUN+3atas0vOqqqyZJRo4Yka5du2atbt1y4w035Pq/XVfRpnHjxmnRokWVvmbMmJGysrJK49q0bbPA5/70k0/y6Sef5O67/pHVO3fOzbfcmr332acizPls2LCv+51e8cWf+s3+PwAsf2z/qUvCHOrM5MmT8/rrA9OjR8/cfOutGTZ0WHr17p3y8vI8+59nKtqVlZWmc+fOSZKSksq/hux71JGVhu/+1z1p3759zvvducv8l40NbX4AAOqbHXbaKffee0/FfXN23HGnlJeXZ+DrAyvuZzPvfWySpM/ee6ekpOrXotGjRmWdddepNG777Xeo0m6FFVbI1KlTK/U7YviIlJeXp3FJ44pxgwYNytBPP82ee/XJPf/6V8aPH1+pn1XbtcvIESMWbYapU/b/AWD5Y/tPXRLmUKfOOvPMHNW3b3r16p0NN9oogwcNyvXX/63S9cXrk4Y2P7A0lZWV5ai+R2ebbbdNixYtMmzo0Nxyy815+qmnajT9Hnvsmb323jvt27dPcXFxRowYkX8/9lhuu/WWSje/BmD5sdpqq+XiSy5N//7/zfrrb5Add9opjzz8cD7/7LMUFxdnyJAh+dGPf5zGjUsyauSorL/BBtlss80ybty4Kn099/xzOeCAA3PRxZdkwIAB2XTTTbPK12f6zGuTTTfNr07+df7zzDP55OOPk6Ki7LTTTmnatGkee+yxinazZ8/OhRdekMuvuDK33HZ7HnrwgQwfPjyrrLJqNt5447Rt2zYHHrD/0nx5WArs/wMNge9msGhs/6krwpwC0/iereq6hIWa0ad/rfU1dsyYnHfuud/aZuDAgdl6qy1r1N++e/epjbIWW0ObH1ia+h59TPrsvXc++2xYXn11UHr16pWzzj4nQ4YMqdEvUdbt3j1FRUV5/fXXU1SUbLLJpjniyCNTPmNG7rjj78tgDqhry9s2k2Vv0Fkv1nUJC9WlrgsoMFdecXm232GH9D36mEydOjV3331Xrvnz1UnmnJHz61+dlGOP+2X23KtPSkpK8uYbb+S4447NxZdcWqWv6/761zRfoXn+b+uts8GGG+aJxx/Pvffck8uuuKJSuw8GD85//9svm222WXbbffdMnz49n3zySc787RlVDoK9+cYb+cXhh+enP/tZfvDDH2aFFZrniy/GZtD7g3LvPfcsvReGpcb+P0vCvgyFwnczWDS2/9QVYQ4AdaJHzx5JksMPPSwTJ07I8SecmH323TedVutUoy8MF1/0+0q/8vrJQQflyKP6ptPqnZZWyQANyozDGt59W74YOzannXLKAh8fPnx4fnPaqVXGH7DfvlXGTZs2Lb+/8IIq4+f/Uj58+PBc/Pvf17jGjz76MGf+9owatweApc13M4D6QZgDQJ0Y8tGQrLlm11x73XX59NNP06t37wx87bW8+GLNfgk/e/bsNG3WLKecemqaNm2WTTbZJB9++GHu+LtffgEAANSU72YA9YMwB4A6ceklF2ellVdOz54902n11TN9+vS88EL/TJ8+rcZ9NGncuOJm1F999VX6//e/GT58+NIqGQAAoMHx3QygfmhU1wUAsHzad7/9ssEGG+T4447LLjvtmFdefjl9jz4m39lmmxr38eWXX2brrbbM7rvtmtdeezUHHXxwfv6L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ODYDAItnuQpz9txrzi8/HnrwwcycOXORph07Zkx+c+qp2WWnHbP3XnvmpZfmXNJgzJjRtV4nAACw+EpLS3PwIT/N4MGDM2DAK5k4cWLuu+/eJMmmm/aqUR/jxo9PkkybNi1//MOVmTZ9+pzx48YtlZoXpCHNC0Di2AwALK7lJsxp1qxZtt9hx5SXl+fBB+6vtk337uvl9jvuzO133Jk2bdpWemyllVaquDZrSUlJ9tt//yTJa6++tnQLBwAAFklxcXFKSkrSvn37lJWVJUm6deuWJJk4cWJFu2/b/3/3nXeSJL17906SbLbZZkmS9959d6nXP6+GNC8Ajs0AwOIrqesClpWdd94lzZo1y3PPPZtRo0ZV26asrDSdO3dOkpSUFFd6rOcmm+S4Xx6f9957L2us0TkdO66WMaNH5957/rXUawcAAGpu8uTJef31genRo2duvvXWDBs6LL169055eXme/c8zFe2+bf//gfvvS5+9987+BxyYddZZN+tvsEGSRb+/w5JqSPMC4NgMACy+5ebMnD2+Po33/nvvW6zpRwwfngkTJqR3795p3rxFnn7qqfQ96shMmDChFqsEAABqw1lnnpnHHns0paVl2XCjjTJ40KCcduop+eCDD2o0/SeffJLTTj0ln376STbu0SNffDE2F55/fl55+eWlXHlVDWlegOWbYzMAsPiWmzNzDjnoJwttM3DgwGy91ZbVPva///0vB/34R7VdFgAAsBSMHTMm55177re2+bb9/yR58YUX8uILL9R2aYusIc0LsHxzbAYAFt9yE+YAczS+Z6u6LmGhZvTpX+O2g856cSlWUju61HUBdcD7AgAAAAC1Z7m5zBoAAAAAAEB9JMwBAAAAAAAoYMIcAAAAAACAArZE98zp1KlTDjv88Gy40cZp1apVRo0cmaeffjq3335bpkyeXFs1AgAAAAAALLcWO8xp27Ztrr3ub5lRXp5//fOf+eKLsem+3no5+JBDstFGG+W4Y4+pzToBAAAAAACWS4sd5uy4005p0bJlTjrhhLz00otJkgcfeCDNmjXL9tvvkHbt2mXEiBG1VigAAAAAAMDyaLHvmdOsWbMkybhxX1QaP27cuCTJtGnTlqAsAAAAAAAAkiUIcwa88kqS5Ohjj80666yTtm3b5rvf+1522WXX3HvPPRWhDgAAAAAAAIuvaI0ua81e3In3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AGDpE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAAAAAAABQwYQ4AAAAAAEABE+YAAAAAAAAUMGEOAAAAAABAARPmAAAAAAAAFDBhDgAAAAAAQAET5gAA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AFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDBhDkAAAAAAAAFE+YAAAAAAAAUTJgDAAAAAABQMGEOAAAAAABAwYQ5AAAAAAAABRPmAAAAAAAAFEyYAwAAAAAAUDBhDgAAAAAAQMGEOQAAAAAAAAUT5gAAAAAAABRMmAMAAAAAAFAwYQ4AAAAAAEDB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mDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgglzAAAAAAAACibMAQAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIc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0O50busC2trIkSOz7nrrpa6uLt26dUtjY2MmT56cxx97LE8//XRbl/e21n/AgMycMSMLFy5c9uv9+2fEyJH5z733rt7CVpHBgwdnYF1dnnv22cyePbuty3lDPXv2fMPX+/Xrlw033DCD6gdVt50zZ87qKG2V6j9gQPr27ZupU6Zm5swZbV3OClt//fWzyaabplev3pk5Y0buvfffeeaZZ9q6rDf1oZ12yt133ZXp06e3dSmrzJAhQ9LY2Jhp06ZV140cOTKbv/Od6dGjZx577NHcc/fdbVfgW9CpU6eMHj06o9apZMCAAenatWvmzZubl156KQ888ECee/bZti4RAGC59enTtzoHUMvn/m+kR8+e6dunT15++eW2LoV2pFu3btlt991z2623+t0qSLdu3dK7d+/MnDkr8+c3tnU5LKFr127p2bNHi3mBWtGjR4/q9f/cefPSMGnS687T1oL2cOzvMHLUus1tXURb2GrrrXP4EV/K8OHD06FDh1avNzc359lnn83Yn52T22+7rQ0q/O8Zvdlmede7tshFv7qwrUtZpt123z1fPPSw9OvXL42Njbn2mmty3i9+nhkzWg6ynT784XzrhG9n+223aaNK39x222+f/fbbPwPr6nLvv/+dH//oh2lsnJ+Tv3NKtt76/UmShQsX5tcXX1zs+5EkN958y5tu06FDhzQ3L9qdNDc35wPbbfvfLmuFvH+bbfLII49kckNDdd2W73lPDj/iSxk1alR13UMPPZSzfvTDjB8/vi3KXC477vjBDB4yOL//3e+SLArdvnvqqdlii3e32K81Nzfnuuuuzfe/972iD7o33XJrFixYkDtuvz3jxl2V22+7reh630iPHj3y/dPPyDvf+c4kyd/++tf8+Ec/zP4HHJgDx4xJx46LPhjb3Nyc/9x7b445+uiiT7j3+shH8vlDvpC+ffu2WL/496y5uTn33Xdfzjzj9JoIDpfWHk7olocJHf4bTOiUyYROuUzotJ0ePXrkY3vvne0/sEPWWWeddOnSpfpaU1NTnnzyydzwz+vz10svzdy5c9uw0lVnv/33z0EHf77oa+a6urp88lOfzsiRIzNp0sRcddVVefCBB1ptt8222+bII7+cj++7TxtUuXx69eqVnXfZNXV1A3Pvvffm7rvuSrJoXuBje++TuoED8+STT+aii36Vp558so2rXXGDBtXnL3/9a4792jG544472rqcFdKtW7f8z0c/mne/e8tFN3ROnZrbbrs1V115ZdH7tbpBg9Knd+8WN5/vtNOH85nPfa46n9Hc3JzxjzyS888/r+gbB6+/4cZ2ce2/2M677JLddt898+Y15reX/Cb3/ec/WXfddfO1rx+bDTfaKEnS0NCQC355fsZddVUbV/vG6gYNymc/97lss822GTx4cIvXFi5cmPHjx+eKyy8rvo+kfR7735ZhzrbbbZfvfu/UTJw4MddcfXXGj38kUyZPzvympnTt0iUD6+qy4YYb5sM775L6+voc/81v5NZb3nwyu1aUfEK31dZb5/QzfpCGhoY8cP/9qaury6bveEcmTZqYbx53XB599NHqtqWHOaNHj87ZPxubKVOmZObMGRk5clRuvOGGNExuyBZbbJEbb7gxXbp0zg477pihQ9fIsV//Wu64/fa2LnuZbrrl1syfPz8333RT5jfNb/V6927ds8OOO+Zf99yTiZMmJkm+/73vre4yl8uNN9+S755ySq677tokybvfvWXO/NGPFvV3802ZNHFi1lhjWLbZdtssWLAgX/j8wcV+Su/Ciy7O3XfdmXPHjk2SHP+tE/LhnXfO5ZddlltvuTnTp8/IgAEDsuOHPpgPf3jnXPSrX+XCC37ZxlW/vptuuTXjxz+SEWuPSLfu3TNjxvRce821+fvfx+Xxxx5r6/LekoMO/nz223///PP6f2TqtGnZZZdd8/vf/S4HjhmTP/z+97nj9tvSsWOnbP+BD+R/PvrR/PaSS/KLn5/b1mUv0y677Jpvfutbefrpp3LjDTemsXFeRm+2WTbZZNP85KwfZ/as2XnfVu/LLrvulsbGxhxy8EF54YUX2rrsN9QeT+iWR8nH/8VM6NSeWp/QqdXJnMSETslM6JSnvr4+Pz3nZ1lzzTUzaeLEjH90fKZMnpKmpvnp0qVrBtYNzAbrb5D6wYPz/PPP58gjDs+kSZPauuyVVvqxv76+Puf98oLU1dVV1zU3N+fyyy7LWT/+UYt9QenX/4sfPT506NAki/o4+6c/yZQpU3LSyadk0sSJ6dylSwYMGJDZs2fngP0+V+xNEN879ftv+HrXrl3z3ve9Lw888ECmTpmS5ubmfOv4b66m6t66cVdfkzNOPy03/POfSRa9V2f/bGxGjBiRV155JdOnT0///v2TJPfdd1+++pUvp6mpqQ0rfn0/OPOHmTlzZk45+aQkyR577pmvH3tcZsyYkX/dc09mzJie/gMGZMst35Pu3bvna8ccXT0HLc1Nt9xavSG4lq/9k0XzzN879ftpamrK/MbGdO7SJUcecUTOOPMHaWxszP/96//SsVPHvPvdW2bAgAE54fjjc9NNN7Z12cs0fO2187Ox56Z///6ZNHFi5jU2Zo011sicOXPy/667LvX19dn8ne9M7969c+edd+Qbxx5b7Hlbez32vy0fs7b//gfkwQceyFe+fGTmz180MT16s82yxqBBuenGRYPp5ptuykW/+lV+8tOzM2bMQe0qzCnZpz/z2Tzx+OM59ItfyLx585Ikm2yySU448aSc/bOx+eZxx+Vf/7qnjatcPvvtf0AeefjhHH7YoVmwYEG+dOSXs/c+++T+++/PQQceWD05uPiii/Kri3+dT37yU8WGOV885PM5+pivZZNNN83Px47N9df/o8Xr9fX12WHHHfOHP/y+2B4WW/qTeId88YuZPn16Djn4oBYn02uPGJFfnHd+DhgzJid9+9uru8zlstaaa+bS556rLn9ghx3y+9/9LueO/VmL7W677dYkyS677FJ0mJMkf/z9H3LLLTfngx/6UPbYc8/s+/GPZ599982TTzyRcePG5bprr6mJO1l3/OAHc+UVV+QHZ5yeJPnPvffmpJNPyZ///KcW78+//nVP+vTpkx0/uGOxYc6+n/hEHnjggRxx2KF55ZVXFq38zW8y5qCDc8gXvpCP77NPbr31llx66aUZO/bcjDno4Hz3O6e0bdFvYOkTurvuunOZJ3RfPPSw7LnXR2rmhK49WNaEzu577LnMCZ0ePXpkyKuTJSVaekLns5/bb5kTOjvsuGPe89731vyETocOHbLfAQdmz70+UvSEzvJM5my40UbZauuts9OHdy56MidJjjvuG687oXPDP//ZYkLnzB/+qOgJnc6dO+f922yT92+zTbuY0Dn+WydUJ3Te9aMft5jQuebqq6sTOsce943MmjmrZiZ0JkyYsMwJnWOP+0Y+sMMORU/ofOnIL6dv3775+jFHV4PnTp06pVOnzi0+vfbe974v3z7ppBzxpSNz4rdPaKty39A+++673NtuUvh3mh58yCHp1bNnvvXNb+bOO+9I3aBB+dSnPp29PvKRjBgxIscd+/WaeXz3fvsfkF69euUbxx6byVMm55hjvpb9DzggL77wYo44/LDc95//JEne97735XvfPy37H3BAzjj99Dauetm23W67NDc3L/MpNos1Nzdn0003rf65ZL17906Xzq/dvHXEkUdm7bXXztifnZO//PnPaWpqSrdu3fKZz342Bxw4Jp/bb79ceMEFbVjx69tgww3zm19fXF0+8MAxue++/+Too45KY+Nr+7I+ffrknLHn5sADxxR77E+SM39wRhYuXJg99qjda/8k+eQnP5Xx4x/Jl7/0pcyZMydfOeqr+e6pp+bZZ57NUV/5cnXuuUfPnvnFeeflk5/+dLHH/kMPPSydO3fOoV/8QvWmurpBg/Kd73w3dYPqcvw3v5EuXbpkv/0PyP4HHJBPfupT+e0ll7Rx1cvWno79S3pbhjkjR43KWT/+UXUwJclpp5+Rnj175qMf2StTp05Nsuju3HHjrspXjvpqW5W63C741UXLve3AgQP/e4WspA3WXz/nn39eNchJkgcffDAHHXhATj3ttJxx5pk5+cQTi93pLWndddfNJZf8JgsWLEiSXHH5Zdn34x/P1ePGtZgYmDt3bsZddWU++rG926rUN/XQQw/loDEH5mMf2zvHfP3r+dg+e+fsn/yk+giyws/dXlenTp2ywQYb5Odjx7aaRHv2mWdy+WV/y6677d5G1b25V5qb061btySL7izu1q1b7r//vmVue/9992eHHXZcneWtsLlz5+bKK67IlVdckREjRmTPvfbKh3feJV868sgcethhueOO2/P3ceNy2623FjthMHjw4Dz00EPV5QfufyAdO3bMv//v/1pt++9//1+223771VneWzJixIiMPeec14KcV1199d9zwIEHZr311sv48ePz1JNP5q9//Wt2273cMZO0vxM6EzplMqFTpvY0mZOY0CmVCZ0yJ3TeveWW+e0lv2nxCcKx5/48g4cMySc/vm91zNx55x353f/+Np/+zGfbqtQ3deSXv/Km++Ullbxffu973pu//OUv1THwwvPP54dn/iB33H57TjjxxJx9zs9y1Fe+3OqR6yV63/vel7/99dLceuuiG4HHjv1ZzvrJT/OXP/+letxPkjvuuCPjrroqW2yxRVuV+qb+9te/Ztfddsuf//Sn/Prii1p9Ur2+vj5/+evf8vWvHVP8zZzLst222+WqK6+oPq48SRobG3PhBRekUlk3H/zQ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d911VzbbbLMW65Z13O/du3e2/8AHck2hczLLMnPmjJxx2mm58vLL89Wjj8lZPz276Btrl/b3v49bxtrW9Xft2jXbbb/9ct0k1Vbmz2/MkUccno9/4hPZY48985nPvvZI6OHDh2f48OGZM2dOrv/HP/KrX12YZ2vspuE38p97723rEl7X9df/I/37989H9947ffv1y9VX/z0/PeusNDU15ZTvfDdjXr1Obm5uzpVXXNHiU+6l+eull6Z///751Kc/kw022DDJorpvvfWWnHbqqS22vfrqv+eFJZ5GUJr2dOxfUoeRo9atnT0wAMBKGjp0aPWErl+/fq1enz59em6++aaaOKHr06dPhgwZkmeffbbFdzHUom232y5fOeqrOfnEb7/uhE6yKGxfPKGz3TbvX40VLr8DDhyTzTbbLEd95Y0fCde7d+9c+rfLcs3Vf88PzzzzDbctzcYbb5yvHn1M9caaY7/+teK/M+cbxx/fat3khoac94tftFjXtWvX/PHPf8m99/47J33726urvBXSuXPn6oTOWsOHt3p9zpw5uf2224qf0LnpllvznZNPznXXXdvWpawSH/vY3vno3nunZ8+eueeeu1tM6Gz9/kX7rcUTOj84o9wwJ0kOHDMmn/r0Z9K9e/ckLSd0lvwOs2232y4vPP98i8evlqy+vj51gwala5cumd/UlMkNDZk0qfXjsGFV69OnTyqVdTNhwoRlPoK9Fuy6224ZOnRorr3m2jz/fLmfLnyrunXrluHDh2fy5MnLfMRkifr27ZshQ4emR/fumd/UlKlTphT9dJElDRk6NNOmTi3+E+qrQn19fQYPHpwXXnihZn63unbtllGjRqZz586ZMGHCcn1He+nay7FfmAMAvG21lxM6atPiCZ3nJjyXyQ0NbV3OCmmPEzq1OJmTmNCpFSZ02l7/AQMyc8aMLHyd7yvq379/RowcWfRd4IvppUxv2suAARkxYkT76KWG3pekffWjlzLppXYMHjw4A+vq8tyzz77h45dL07GtCwAAaCuTJk3KIw8/nPvuuy+PPPxwiyBn9GabFf84r7eiPfUzevTodtHLzJkz80rzK9lzz73aupQV9vdx4/KrCy/M889PaDe/Y42NjenZq1c+8j8fbetS3pIZM2bksUcfre7PlgxySn9vXn7ppeUOckrv5c1MmjQpDz74YKZOnVozvcyf35jx48fnwQcffN0gpxZ62W333XP5lVflssuvyN+vuTbHfO3r6du3b6vttnzPe/LTs89pgwqXn17KtNy9bLll++mlBt6XpH31o5cy6aVM222/fX55wYW59G+X5dsnnpQ+ffqka9du+f7pp+dPf7k0vzjv/Fxx1bjiz2GWJMwBAFiGzTffPAeOqZ2TujfTnvrZ/J3vbD+9tKf3RS/Fak/96KVMpfey1dZb57hvfDMLFizIjTfckMcefTR77rVXLrzooqxf8PewLoteyqSXcrWnfvRSJr2UafTo0fnOd7+XukGDMmvWzHxop53y9WOPy6GHH5Y111wzv7744vzuf3+bSZMm5sAxY/K+rbZq65KXS+e2LgAAAADgv+XTn/lsnnj88Rz6xS9k3rx5SZJNNtkkJ5x4Us7+2dh887jj8q9/3dPGVS4fvZRJL+VqT/3opUx6KdN++x+QRx5+OIcfdmgWLFiQLx355ey9zz65//77c9CBB6apqSlJcvFFF+VXF/86n/zkp4r/DtBEmAMAvI1c8KuLlnvbgQMH/vcKWUXaUz96KZNeytWe+tFLmdpTLxusv37OP/+86sRUkjz44IM56MADcuppp+WMM8/MySeemJtuurENq1w+eimTXsrVnvrRS5n0UqZ11103l1zymyxYsCBJcsXll2Xfj388V48bVw1ykmTu3LkZd9WV+ejH9m6rUt8SYQ4A8Lax3nrrZe7cucv15c3dunVbDRWtnPbUj17KpJdytad+9FKm9tTLK83NLSamFps9e3aOPuqonHjyyTn5O9/Jad8/Na+88kobVLj89FImvZSrPfWjlzLppUy9+/TJ3Lmv9TJ16tQkyUsvvdRq20mTJi3ze4FKJMwBAN42XnjhhUx47rkcc/RX33Tb/Q84IGMOOng1VLXi2lM/eimTXsrVnvrRS5naUy8vvfhiNthgw1yRy1u9tmDBgpxw/PE59rhv5BvfPD73/vvfbVDh8tNLmfRSrvbUj17KpJcyTZkyJYMG1VWXGxsbc+2116ShYVKrbevq6jJzxozVWd4K69jWBQAArC4PPvhANt5kk+Xatrm5+b9czcprT/3opUx6KVd76kcvZWpPvdx1113ZYccd3/ATRKef9v386Y9/zLu22GI1VvbW6aVMeilXe+pHL2XSS5kef+yxbLzJptXlefPm5bunnJJnnnmm1bZbbbV1nl7G+hL5ZA4A8LZx5x13ZNSodTJkyJC8/PLLb7jt4489nquv/vtqqmzFtKd+9FImvZSrPfWjlzK1p14uv+xvmT9/foYPH57HH3/8dbf72Tln5+WXX8p666+/Gqt7a/RSJr2Uqz31o5cy6aVMf/rTH7Puuuu+6XbDhg1LfX19/vznP6+GqlZeh5Gj1i37FhoAAAAAAIC3MY9ZAwAAAAAAKJgwBwAAAAAAoGDCHAAAAAAAgIIJcwAAAAAAAAomzAEAAAAAACiYMAcAAAAAAKBgwhwAAAAAAICCCXMAAAAAAAAKJswBAAAAAAAomDAHAAAAAACgYMIcAAAAAACAgv1/KUeyP/p7PLcAAAAASUVORK5CYII=",
+ "image/png": "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Jk9O7+fMmRPXXXtNzJk7t6h80qQqrDmwPJz7AAAAAECWCXNKSQY7z83NjZVXXjny8vLSsh49ippEJxd3i/Xp0zfuue/+9NahQ8cy2xj+6afp/cCBA9P7DTbYIL3/bPjwatsPYOk49wEAAACALDNmTikzZ86MDz4YGv369Y877rorvhv9XToIen5+frzy8ksl6+XlNUnHxUjk5jYss41HH3k49txrr9h3v/2jV6/eseZaa6XlDz30YDXvDVBRzn0AAAAAIMu0zFnIueecE08//VQ0aZIXa6+zTowcMSLOPOP0+OKLLyr0+G+++SZd/9tvv4l1+/WLiRMnxCUXXZSOvwFkl3MfAAAAAMgqLXMWMmH8+Ljw/POXuM7QoUNjs002Xuzyt996K70BtYdzHwAAAACI+h7mdO7cOQYffnisvc660bp16xj700/x4osvxj333B2zZs6srmoAAAAAAADUKtUS5nTs2DH+cfM/Y15+fvz3gQfS7of69O0bBx18cKyzzjpx4gnHV0c1AAAAAAAAap1qCXO22377aNmqVZxy0knxzjtvp2WPPfpoNGvWLAYN2jZWWmmlGDNmTHVUBQAAAAAAoFZpUB1PkoQ2iUmTJpYpnzRpUno/Z86c6qgGAAAAAABArVMtYc6Q995L74874YTo1atX2u3aVr/6Vey4407x0IMPloQ6AAAAAAAA1EA3a0OHDo1rr7k6Dht8eNxy2+1pWUFBQdx26y1x2623LvGxHTp0TMOf0rp1757eX3HVVSWtenJycqJhw4bx7LPPxl+vuzYtO/F3v49B224b8+fPj8LCwrQsWScnInbbdZd0vmu3bnH9X29I65PcEg0a5ESDBg3T+iVhU+LSyy+PPn36Rn5+fkk9cnNzY8yPP8aRRxyezm+x5ZZx6ml/WGhbDdLbn889N95/f0hadufdd0eb1m0if/78n+ue1Cs3/vf++3HeueekZQf83//FfvsfsGjdc3Li0IMPigkTJkReXl78+4H/psuT9Uofh8cfezT+8fe/p2V/OP302GzzLWJ+fn4UbSkit2HDmDt3buy9157pfO/efeKyK64ot+433nhDPP3kk2nZNdddH6utttoix+Gbr7+OE44/Lp3ffvsd0uCuYP78KCiue4MGkdOgQZzxh9Pi008/Tcvu//d/omnTpovU/c033oi/XHJxWpa8Z3bfY49y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dOzYMUaPHh3f+uY3Yvbs2XHeBRfGsGHDasvdesstWQ/EBfu6JF27dYtzzzs/zjv3nHji738v2saOHRs52nW33eJPjzwSEyZMqLVts+12cdDBBxc7efUmT5oU55x9djz88EORq5132TV69eoZ37/00uJ5XV2POPf882LQoMHRrFmz2nJpAk7r5bivHxuzZs2KHN3/4ENFP58fOzZuvvmmYgdoxowZUUZdunaNiy6+JAYOHFg8f+SPf4wTjj8ujjv+hNhm221ry6V4x48fH4cefFCxQ56jAw48KHbfY49o2bJlbZtK/V7w91dffTXOOuOMePzxv0XOdtp559j/qwcUH4AWHB/1Uixvvvlm/OiyH8bvr7suqiD3+T4x5+fHnJ8f832eqjTfJ+b8cjPnNx7zfX6qMt8n5vw8mfPzZL7PnzNzVgCf/ezWsc9XvlIcMZF27up61MXIkZvFT664Ik795jeKhFkWG2+8SRx2+OExZszTxU7e+uuvHyeedHJMnjw5ZkyfHt8966xo2apVfHbrrYtHOtrljttvjxxdcdVPP7Iin14/8qija89zTSyHH/G1mDF9Rm1Hb4stt4zjTzihWC9X/+yn8frrk6Jv3z7xuW22idPPPDMOO+TgePLJJyPXievee+6pPT/m68dGv37947If/iAefOCBmDFzZnGExRZbbFl8cDrgoIPigvPOi1ylIz/SzlFaRwcfcmgx3tNO3x8ffnixo95ytvc++0Tfvn3j2muuienTp8XnP797HH3MMbHlVlsVH4ZSPM1btIjNNhsVBx50UHz1gAOKDxU5flBN201aL3ffdVfMnjO7OEoyHQVyzve+Fy+99FJssOEGsfsee8bZ554bBx14QDz37LORo+223z6OOvqYGD36yfjDDX8o8vLUKVNi3rx50apVq+jWvXusuuqqse122xXLzZs3P2668Q9N3e3KM+eb85e3qsz55vs8VWW+T8z55vzlrSpzvvnefL+8mfPzZM7Pb84335eDYs5S3HzrbQ1eNm3Uudplt13j748/Hkccflhtx6J3797xzW+dFmee9Z34zplnZn+6db09vvCFIjkec/RRtVNMDzjwwHjkkT/GUUd+rbbcDdf/Pn5yxZWx0047Z7ujl05RTFXum2+6qTg9eVErdehQTGZ33nFHTJgwPnK2aLV+n32+Eq+88krsu8/e8dZbb9Xaf37ttXHlVT+NvfbeJ44/7uuRozQ2Xnv11eL35s2bF6f3XnnF5XHN1VfXlpk+bVr8+PnLiiPHRo3aPOsdvdtuvTXuuOP2+MQnPhnbbrdtbDpys+J08pkzZ8Qdt98Rt9xyczz7zDORu4022iiu+91v44c/+H7x/IUXXoizzzk3rrj8J3Hd735XW+7n115T7BButPEmWe7opZ2jlK+OO/bYWttdd94ZL744Lo474YTYeccd4tprxhbr7ceXXxFf+cq+cfJJJ0aOUn56+KGHiqOn6n3601tE97q6+PWvfhlTp04tdlBv/MMf4jvf/V7sscce2e7oVWW+T8z55vzlrSpzvvk+T1WZ7xNzvjl/eavKnG++z1NV5vvEnJ8nc35+c775vhyaN3UHcrbSSisVk3HaUD/qMW3q4hN1LoYMGRp3333XQkeIvPbaa8WRE3fddWeccNJJscuuu0YZDB48KB588IHa83vvubv4mXaGFpRivfOO26P/gAGRqy99Yc949NE/Fae8z549J3561VVxxeWX1x6/uPbnxXK3335bra0M0rU1Bw0eHL/65S8X2slLpk+fHjfccENxTdRcpSMOOnbqWPzesmWr4hTZtFOxJOm6zQueYp6zdATbqd/8Zuy4/XZx4QXnx+RJk4tT53/8k8vjiiuvit0+v3t06dIlctW9e1288PwH66H+cgRjnh6z2LLpmrq5xpJ2Qh96cPFLEDz04IPFtjR8+PDi+ZQpU4pTltM1wnPVt1+/eOCBD/JxcvyJJxZHVqadvQXdf//9xfK5qsp8n5jz82TOz4/5Pk9Vme8Tc36ezPn5Md/nr8zzfWLOz5M5Pz/m+3JwZs5SjH/xxZg6bWp87fDDG3x9vRyljXdJp/qm0y+/fdppxeR7xNeOLK6HmI60yFnbtu1i/vz5tef118tMp/ouKsXVvn37yNXEiRPjpBNOKG6Olk6z3mHHHePSSy6O+++7L8ruvWuBvvKhcbdt2zZy9dTo0cUlC379q1/F3LlzitNKN910ZDxw//1LvCTA66+/HmXyxhtvxG9/85viMWLEiOIIki233CoOP+KI4vrHW2w+KnI0Zcrk6NO3b+153z7v/b6kD3MDBw6KKUvICTlIH366d+++WHvaMUrjZsHT4lNeyzmHpRvsrr322gsdifPTq66M3r37LPb+r73O2tmukyrN94k5P0/m/PyY7833y5s5P0/m/PyY78uhrPN9Ys435y9vVZnzzffloJizFOl6rZtvvnlxeulHXfc0Z6+88nKsscaaH3pjqosvvDDemPlGseGOfe65yFlKej169Kw9rz/a5dUl7Jz26tWruMZu7tL1Tb/85y8UN3z8xjdPLXY0Lrjg/Jg+Lf++L2jkqM2iX//+tYms5wLraUE9e/aIf/3rX5Grq668Ii68+JK48KKL48c//lGc/d3vxv+dfkaccdZZxWmy6bTSurq62GabbWO9j30sLv/Jj6OsnnnmmeI05YsuvDBGbb75QjcZzM2fH/tzcWThxImvFR/ivrLvfsW6WGeddeL558fGX/785+KU+XSd8B132inuu/feyNFf//KX2O3zn4+nn3qqOA37nXfeiSFDh8aRRx1V3ETwuQVycL9+fbP+IHHTjTcWN0Zs2apl/OH6G4qjpRa8VEG79u1rHya22uoz8eMf/ShyVZX5PjHn582cnw/zfZ6qMt8n5vw8mfPzY77PVxXm+8Scnydzfn7M9+WgmLMU9957T3G9zJTUJ02atNRlH3/88eKamzlKNw3bY48946ILL6gd5bKkye3NN98ojtzJ2TNjxhRV4nrpqIof/+iyJS6bEv7zzz8fZZBO+738Jz+JW2+5JY48+ujitNiHH36oVAkn3ZQuPeptsummcf31v19subXXXqf44JGrJ554Iv73lJPj68cdH+dfcGHtKIp0nd10lM6C0rWQf/bTn0bZzZ07N26/7bbikau0Q/3JT32qWC9JWiennXpqTJs2Lc674IJiPaVJOu3szZo1K9sd8HQ94HXXWy/O/M53attWOs0//X7mGacvdMTOyiuPiLvvujNylbb9Ll26xs677FIc+VWfy+bNnVvcpDZdjiFJsaWjxH7206siV1WZ7xNzfv7M+Xkw3+epKvN9Ys7Pkzk/P+b7fFVhvk/M+Xky5+fHfF8OzQYPGV6emYR/SzrVb4MNN4onnvh7TBi/9JvsbTpyZHEtx1yv3Tps2LDilMuPqsin61WecOJJxURchps+Lmk9pB3udOTRcV8/tjiyJ2e9evderO3dd95Z7GiDzp07FxP1H//4x2xvklavTZs2xYeFNdZcM3r17hXt2raLufPmxrSp04rr6D700EMfOZ6a2oknnxzXX3ddcURCFaR1kna209Egf/vbX+OVl9/7wLDaaqsXlzDo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",
"text/plain": [
""
]
@@ -130,28 +575,59 @@
}
],
"source": [
- "def adjust_df_for_plot(df: pd.DataFrame, needed_hours: float) -> pd.DataFrame:\n",
- " \"\"\"Adjust the dataframe for plotting.\"\"\"\n",
- " # check if df got pause column, else add it with 0\n",
- " if \"pause\" not in df.columns:\n",
- " df[\"pause\"] = 0\n",
- " df[\"overtime\"] = df[\"work\"] - needed_hours\n",
- " df[\"overtime\"] = df[\"overtime\"].clip(lower=0)\n",
- " df[\"work\"] = df[\"work\"].clip(upper=needed_hours, lower=0)\n",
- " return df[[\"work\", \"overtime\", \"pause\"]]\n",
- "\n",
- "\n",
- "is_month = True\n",
+ "plot_month = True\n",
"use_pause = True\n",
+ "selected_date = datetime.date(2025, 1, 1)\n",
+ "\n",
+ "\n",
+ "def generate_plot_df(df: pd.DataFrame) -> pd.DataFrame:\n",
+ " cols = [\"work\", \"overtime\"]\n",
+ " if CONFIG_HANDLER.config.plot_pause:\n",
+ " cols.append(\"pause\")\n",
+ "\n",
+ " plot_df = df[cols].copy()\n",
+ " plot_df[\"color\"] = df[\"overtime\"].apply(lambda x: \"positive\" if x >= 0 else \"negative\")\n",
+ "\n",
+ " return df[cols]\n",
"\n",
"# clears the old values and then adds a subplot to insert all the data\n",
"fig = plt.figure(figsize=(13, 8), dpi=128, tight_layout=True)\n",
+ "# self.figure.clear()\n",
"ax = fig.add_subplot(111)\n",
"\n",
- "needed_hours = 8\n",
- "df2 = gen_df_test()\n",
- "plot_df = adjust_df_for_plot(df2, needed_hours)\n",
+ "# update the store before plotting\n",
+ "store.update_data(selected_date)\n",
+ "# get the store date -> this is needed to show the correct month in the dropdown\n",
+ "# if the user did not change it there before\n",
+ "# self._only_change_date(store.current_date)\n",
+ "\n",
+ "if plot_month:\n",
+ " df = store.df.copy()\n",
+ " needed_hours = CONFIG_HANDLER.config.daily_hours\n",
+ "else:\n",
+ " df = store.get_year_data(store.current_date.year)\n",
+ " # lets use \"easy\" constant monthly working hours for now\n",
+ " needed_hours = CONFIG_HANDLER.config.weekly_hours * 52 / 12\n",
+ "plot_df = generate_plot_df(df)\n",
"plot_df.plot.bar(stacked=True, ax=ax, width=0.8, color=[\"#2693ff\", \"#ff4e26\", \"#25cf5e\"], zorder=2)\n",
+ "sns.p\n",
+ "ax.legend(fancybox=True, framealpha=0.9)\n",
+ "\n",
+ "ax.axhline(needed_hours, color=text_color, ls=\"--\", lw=1, zorder=3)\n",
+ "ax.yaxis.grid(True, lw=1, ls=\":\", color=text_color, alpha=0.2, zorder=1)\n",
+ "ax.xaxis.get_label().set_visible(False)\n",
+ "\n",
+ "if plot_month:\n",
+ " tick_labels = [day.strftime(\"%a %d\") for day in plot_df.index]\n",
+ " rotation = \"vertical\"\n",
+ " # shift the xticks to the middle of the bars\n",
+ "else:\n",
+ " tick_labels = [month.strftime(\"%b\") for month in plot_df.index]\n",
+ " rotation = \"horizontal\"\n",
+ "ax.set_xticklabels(tick_labels, rotation=rotation)\n",
+ "\n",
+ "# hide the x ticks\n",
+ "ax.tick_params(axis=\"x\", which=\"both\", bottom=False, top=False)\n",
"\n",
"# Add numbers above the bars\n",
"for i, (_, row) in enumerate(plot_df.iterrows()):\n",
@@ -159,46 +635,27 @@
" if total_time <= 0.0:\n",
" continue\n",
" # put small offset for the numbers to not overlap with the bar\n",
- " # last 2.5% will collide with the line, in this case just put it above the line already\n",
- " line_collide = 0.97 * needed_hours <= total_time <= needed_hours\n",
" position = (i, total_time + 0.01 * needed_hours)\n",
+ " # last 3% will collide with the line, in this case just put it above the line already\n",
+ " line_collide = 0.97 * needed_hours <= total_time <= needed_hours\n",
" if line_collide:\n",
" position = (i, 1.01 * needed_hours)\n",
" ax.annotate(f\"{total_time:.1f}\", position, ha=\"center\", va=\"bottom\", fontsize=8, weight=\"bold\")\n",
"\n",
- "ax.legend(fancybox=True, framealpha=0.9)\n",
- "# hide the x ticks\n",
- "ax.tick_params(axis=\"x\", which=\"both\", bottom=False, top=False)\n",
- "\n",
- "ax.axhline(needed_hours, color=text_color, ls=\"--\", lw=1, zorder=3)\n",
- "ax.yaxis.grid(True, lw=1, ls=\":\", color=text_color, alpha=0.2, zorder=1)\n",
- "ax.xaxis.get_label().set_visible(False)\n",
- "\n",
- "if is_month:\n",
+ "if plot_month:\n",
" title = f\"Working time for {store.current_date.strftime('%B %Y')}\"\n",
"else:\n",
" title = f\"Working time for {store.current_date.year}\"\n",
- "ax.set_title(title, weight=\"bold\", fontsize=15)"
+ "ax.set_title(title, weight=\"bold\", fontsize=15)\n",
+ "# self.figure.autofmt_xdate(rotation=90)\n",
+ "plt.show()\n",
+ " "
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
"kernelspec": {
- "display_name": ".venv",
+ "display_name": "time-tracker",
"language": "python",
"name": "python3"
},
@@ -212,7 +669,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.9"
+ "version": "3.11.10"
}
},
"nbformat": 4,
diff --git a/src/config_handler.py b/src/config_handler.py
index a8c7112..beef81a 100644
--- a/src/config_handler.py
+++ b/src/config_handler.py
@@ -13,6 +13,7 @@
# need at least all that config has
NEEDED_DATA = {
"name": "",
+ "project_names": ["Default"],
"save_path": "",
"work_hours": 40.0,
"use_hours_per_week": True,
@@ -24,6 +25,7 @@
}
CONFIG_NAMES = Literal[
"name",
+ "project_names",
"save_path",
"work_hours",
"use_hours_per_week",
@@ -39,6 +41,7 @@
@dataclass_json
class Config:
name: str
+ project_names: list[str]
save_path: str
work_hours: float
use_hours_per_week: bool
@@ -64,7 +67,7 @@ def from_kwargs(cls, **kwargs: Any) -> "Config":
setattr(c, new_name, new_val)
return c
- def __getitem__(self, item: str) -> Any:
+ def __getitem__(self, item: CONFIG_NAMES) -> Any:
return getattr(self, item)
def get_weekly_hours(self) -> float:
diff --git a/src/database_controller.py b/src/database_controller.py
index 9c5e1fc..0cee036 100644
--- a/src/database_controller.py
+++ b/src/database_controller.py
@@ -70,13 +70,18 @@ def session_scope(self) -> Generator[Session, None, None]:
finally:
session.close()
- def add_event(self, event: str, entry_datetime: datetime.datetime) -> None:
+ def add_event(self, event: str, entry_datetime: datetime.datetime, project: str) -> None:
datetime_string = entry_datetime.isoformat()
logger.info("Add Event: %s, timestamp: %s", event, datetime_string)
with self.session_scope() as session:
- new_event = Event(date=entry_datetime, action=event)
+ new_event = Event(date=entry_datetime, action=event, project=project)
session.add(new_event)
+ def get_last_event(self) -> Event | None:
+ with self.session_scope() as session:
+ stmt = select(Event).order_by(Event.date.desc()).limit(1)
+ return session.execute(stmt).scalar_one_or_none()
+
def add_pause(self, pause_time: int, entry_date: datetime.date) -> None:
if self.day_exists(entry_date):
self.update_pause(pause_time, entry_date)
diff --git a/src/datastore.py b/src/datastore.py
index 3e88c5f..0a6c00d 100644
--- a/src/datastore.py
+++ b/src/datastore.py
@@ -282,10 +282,13 @@ def _calculate_overtime(row: pd.Series) -> float:
# Make typing happy, should not happen here
if not isinstance(day_date, datetime.date):
return 0.0
+ # For future dates, we cannot calculate overtime yet since the day hasn't happened
+ if day_date > today:
+ return 0.0
+ # For today, only show positive, since we can still work to get more hours
overtime = work_hours - daily_target
- if day_date >= today:
+ if day_date == today:
return max(0.0, overtime)
-
return overtime
diff --git a/src/models.py b/src/models.py
index 387aa41..74a64b6 100644
--- a/src/models.py
+++ b/src/models.py
@@ -28,12 +28,14 @@ class Event(Base):
ID: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
date: Mapped[datetime.datetime] = mapped_column(DateTime, nullable=False, name="Date")
action: Mapped[str] = mapped_column(String, nullable=False, name="Action")
+ project: Mapped[str | None] = mapped_column(String, nullable=True, name="Project")
__table_args__ = (Index("idx_datetime", "Date"),)
- def __init__(self, date: datetime.datetime, action: str) -> None: # noqa: D107
+ def __init__(self, date: datetime.datetime, action: str, project: str | None) -> None: # noqa: D107
self.date = date
self.action = action
+ self.project = project
class Pause(Base):
diff --git a/src/ui_config_window.py b/src/ui_config_window.py
index 6e84e15..476f20a 100644
--- a/src/ui_config_window.py
+++ b/src/ui_config_window.py
@@ -100,6 +100,7 @@ def _adjust_subdiv(self) -> None:
def set_config_values(self) -> None:
"""Set config values to the input fields, other than country and subdiv."""
self.input_name.setText(CONFIG_HANDLER.config.name)
+ self.input_project_names.setText(";".join(CONFIG_HANDLER.config.project_names))
self.input_working_hours.setValue(CONFIG_HANDLER.config.work_hours)
self.work_hours_button.setChecked(CONFIG_HANDLER.config.use_hours_per_week)
self.work_hours_button.setText("/ Week" if CONFIG_HANDLER.config.use_hours_per_week else "/ Day")
@@ -118,6 +119,9 @@ def apply_config(self) -> None:
CONFIG_HANDLER.config.country = self.input_country.currentText()
CONFIG_HANDLER.config.subdiv = self.input_subdiv.currentText() or None
CONFIG_HANDLER.config.name = self.input_name.text()
+ CONFIG_HANDLER.config.project_names = [
+ name.strip() for name in self.input_project_names.text().split(";") if name.strip()
+ ]
CONFIG_HANDLER.config.work_hours = self.input_working_hours.value()
CONFIG_HANDLER.config.use_hours_per_week = self.work_hours_button.isChecked()
selected_days: list[int] = []
@@ -132,6 +136,7 @@ def apply_config(self) -> None:
CONFIG_HANDLER.write_config_file()
self.main_window.update_data_window()
+ self.main_window.update_project_names()
self.close()
def _apply_subdiv_filter(self) -> None:
diff --git a/src/ui_data_window.py b/src/ui_data_window.py
index 6014e4e..8ee6774 100644
--- a/src/ui_data_window.py
+++ b/src/ui_data_window.py
@@ -340,12 +340,14 @@ def delete_selected_event(self) -> None:
event_data = self.get_selected_event()
if event_data is None:
return
- if UIC.user_okay(f"Do you want to delete event {event_data.event} at: {event_data.event_time}?"):
- logger.info("Delete event %s at: %s", event_data.event, event_data.event_time)
- DB_CONTROLLER.delete_event(event_data.event_time)
- store.update_data(self.selected_date)
- self.update_table_data()
- self.plot()
+ if not UIC.user_okay(f"Do you want to delete event {event_data.event} at: {event_data.event_time}?"):
+ return
+ logger.info("Delete event %s at: %s", event_data.event, event_data.event_time)
+ DB_CONTROLLER.delete_event(event_data.event_time)
+ store.update_data(self.selected_date)
+ self.update_table_data()
+ self.plot()
+ self.main_window.update_last_event_label()
def get_selected_event(self) -> EventData | None:
indexes = self.tableWidget.selectionModel().selectedRows()
diff --git a/src/ui_mainwindow.py b/src/ui_mainwindow.py
index e6cf5c6..17ad3bc 100644
--- a/src/ui_mainwindow.py
+++ b/src/ui_mainwindow.py
@@ -7,6 +7,7 @@
from PyQt6.QtGui import QAction, QIcon
from PyQt6.QtWidgets import QApplication, QMainWindow, QMenu, QSystemTrayIcon
+from src.config_handler import CONFIG_HANDLER
from src.database_controller import DB_CONTROLLER
from src.icons import get_preset_icons
from src.ui_config_window import ConfigWindow
@@ -33,6 +34,7 @@ def __init__(self) -> None:
self.set_tray()
self.menubar.setNativeMenuBar(False) # for macOS to show the menu bar in the app window
self.setWindowIcon(self.clock_icon)
+ self.update_project_names()
# set manual here, since it does not recognize the hidden state at init somehow.
# The default app shows the elements and got the additional height.
self.past_datetime_edit.hide()
@@ -42,6 +44,7 @@ def __init__(self) -> None:
self.data_window = DataWindow(self)
self.config_window: ConfigWindow | None = None
self.vacation_window: VacationWindow | None = None
+ self.update_last_event_label()
def connect_buttons(self) -> None:
self.start_button.clicked.connect(lambda: self.add_start())
@@ -82,6 +85,11 @@ def add_tray_menu_option(self, tray_menu: QMenu, icon: QIcon, text: str, action:
start_action.triggered.connect(action)
tray_menu.addAction(start_action)
+ def update_project_names(self) -> None:
+ """Update the project names in the project input box."""
+ self.input_project.clear()
+ self.input_project.addItems(CONFIG_HANDLER.config.project_names)
+
def close_app(self) -> None:
"""Close the app after asking the user."""
if UIC.user_okay("Do you want to quit the application?"):
@@ -177,10 +185,12 @@ def add_event(self, event: str, check_past_entry: bool = True) -> None:
entry_datetime = datetime.datetime.now().replace(microsecond=0)
if self.is_past_time and check_past_entry:
entry_datetime = self.get_past_datetime()
- DB_CONTROLLER.add_event(event, entry_datetime)
+ project = self.input_project.currentText()
+ DB_CONTROLLER.add_event(event, entry_datetime, project)
UIC.show_notification(
self.tray_icon, f"Added event {event} at {entry_datetime.strftime('%d-%m-%Y - %H:%M:%S')}", "Event Added"
)
+ self.update_last_event_label()
def add_start(self, check_past_entry: bool = True) -> None:
"""Add a start event."""
@@ -192,6 +202,17 @@ def add_stop(self, check_past_entry: bool = True) -> None:
self.add_event("stop", check_past_entry)
self.update_other_windows()
+ def update_last_event_label(self) -> None:
+ """Refresh the last-event label with the latest stored event."""
+ last_event = DB_CONTROLLER.get_last_event()
+ if last_event is None:
+ label_text = "No Events Recorded"
+ else:
+ timestamp = last_event.date.strftime("%Y/%m/%d %H:%M")
+ label_text = f"{last_event.project} | {timestamp} | {last_event.action.capitalize()}"
+
+ self.label_last_event.setText(label_text)
+
def get_updates(self) -> None:
"""Ask the user if they want to update and then update."""
message = "Want to search and get updates? This could take a short time."
diff --git a/src/utils.py b/src/utils.py
index 184efa0..1c2b32a 100644
--- a/src/utils.py
+++ b/src/utils.py
@@ -85,9 +85,9 @@ def open_folder_in_explorer(p: Path = SAVE_FOLDER) -> None:
if system == "Windows":
os.startfile(resolved_path) # type: ignore
elif system == "Darwin": # Mac
- os.system(f"open {resolved_path}")
+ os.system(f'open "{resolved_path}"')
elif system == "Linux":
- os.system(f"xdg-open {resolved_path}")
+ os.system(f'xdg-open "{resolved_path}"')
def setup_logging(log_file_path: Path = LOG_FILE_PATH) -> None:
diff --git a/tests/conftest.py b/tests/conftest.py
index d522c11..fcd6c0a 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -28,11 +28,11 @@ def db_controller() -> Generator[DatabaseController, Any, None]:
end_dt = datetime.datetime.combine(current, datetime.time(14, 30))
pause_start = datetime.datetime.combine(current, datetime.time(12, 0))
pause_end = datetime.datetime.combine(current, datetime.time(13, 0))
- db_controller.add_event("start", start_dt)
+ db_controller.add_event("start", start_dt, "default")
if current.day % 2 == 0:
- db_controller.add_event("stop", pause_start)
- db_controller.add_event("start", pause_end)
- db_controller.add_event("stop", end_dt)
+ db_controller.add_event("stop", pause_start, "default")
+ db_controller.add_event("start", pause_end, "default")
+ db_controller.add_event("stop", end_dt, "default")
current += datetime.timedelta(days=1)
yield db_controller
diff --git a/tests/database_controller_test.py b/tests/database_controller_test.py
index e68d278..3286c4e 100644
--- a/tests/database_controller_test.py
+++ b/tests/database_controller_test.py
@@ -28,11 +28,22 @@ def test_get_day_data_limits_to_selected_day(self, db_controller: DatabaseContro
def test_insert_event(self, db_controller: DatabaseController) -> None:
future_date = datetime.datetime(2026, 1, 1, 10, 0, 0)
- db_controller.add_event("start", future_date)
+ db_controller.add_event("start", future_date, "default")
day_data, _ = db_controller.get_day_data(future_date.date())
assert any(future_date.isoformat() in item for item in day_data)
assert day_data[0] == (future_date.isoformat(), "start")
+ def test_get_last_event_returns_latest_entry(self, db_controller: DatabaseController) -> None:
+ earlier_event = datetime.datetime(2026, 1, 6, 8, 0)
+ latest_event = datetime.datetime(2026, 1, 6, 18, 0)
+ db_controller.add_event("start", earlier_event, "default")
+ db_controller.add_event("stop", latest_event, "default")
+
+ last_event = db_controller.get_last_event()
+ assert last_event is not None
+ assert last_event.date == latest_event
+ assert last_event.action == "stop"
+
def test_insert_pause(self, db_controller: DatabaseController) -> None:
future_date = datetime.date(2026, 1, 2)
db_controller.add_pause(60, future_date)
@@ -42,7 +53,7 @@ def test_insert_pause(self, db_controller: DatabaseController) -> None:
def test_delete_event(self, db_controller: DatabaseController) -> None:
future_date = datetime.datetime(2026, 1, 3, 10, 0, 0)
- db_controller.add_event("start", future_date)
+ db_controller.add_event("start", future_date, "default")
db_controller.delete_event(future_date)
day_data, _ = db_controller.get_day_data(future_date.date())
assert not any(future_date.isoformat() in item for item in day_data)
@@ -91,10 +102,10 @@ def test_change_time_off_reason(self, db_controller: DatabaseController) -> None
def test_get_period_work_orders_results(self, db_controller: DatabaseController) -> None:
random_events = [
- Event(date=datetime.datetime(2030, 5, 1, 15, 45), action="stop"),
- Event(date=datetime.datetime(2030, 5, 1, 6, 15), action="start"),
- Event(date=datetime.datetime(2030, 5, 1, 12, 0), action="coffee"),
- Event(date=datetime.datetime(2030, 5, 1, 14, 0), action="resume"),
+ Event(date=datetime.datetime(2030, 5, 1, 15, 45), action="stop", project="default"),
+ Event(date=datetime.datetime(2030, 5, 1, 6, 15), action="start", project="default"),
+ Event(date=datetime.datetime(2030, 5, 1, 12, 0), action="coffee", project="default"),
+ Event(date=datetime.datetime(2030, 5, 1, 14, 0), action="resume", project="default"),
]
with db_controller.session_scope() as session:
diff --git a/tests/store_test.py b/tests/store_test.py
index 43b5d39..bf88b58 100644
--- a/tests/store_test.py
+++ b/tests/store_test.py
@@ -128,3 +128,117 @@ def test_calculate_overtime_totals_with_data(store_and_controller: tuple[Store,
store_instance.calculate_overtime_totals()
assert isinstance(store_instance.total_overtime, float)
assert isinstance(store_instance.overtime_by_year, dict)
+
+
+def test_vacation_day_future_no_work_should_have_zero_work_and_overtime(
+ store_and_controller: tuple[Store, MagicMock],
+) -> None:
+ """Test that a vacation day in the future with no work entries has 0 work and 0 overtime."""
+ store_instance, mock_db_controller = store_and_controller
+ daily_target = 8.0
+ expected_zero = 0.0
+
+ # Get tomorrow's date
+ tomorrow = datetime.date.today() + datetime.timedelta(days=1)
+ month_first = tomorrow.replace(day=1)
+
+ # Mock CONFIG_HANDLER to return 8 hours as daily target
+ with patch("src.datastore.CONFIG_HANDLER") as mock_config:
+ mock_config.config.get_daily_hours_at.return_value = daily_target
+ mock_config.config.workdays = [0, 1, 2, 3, 4] # Mon-Fri
+ mock_config.config.get_holidays.return_value = []
+ mock_config.config_hash.return_value = 12345
+
+ # Set tomorrow as a vacation/free day
+ mock_db_controller.get_time_off_days.return_value = [tomorrow]
+
+ # Need at least one work entry for _generate_month_report to create full dataframe
+ # Using a past date so it doesn't interfere with tomorrow's vacation
+ past_date_str = f"{month_first.year}-{month_first.month:02d}-01T08:00:00"
+ mock_db_controller.get_month_data.return_value = (
+ [(past_date_str, "start"), (f"{month_first.year}-{month_first.month:02d}-01T09:00:00", "stop")],
+ [],
+ )
+
+ # Generate month data
+ month_data = store_instance.generate_month_data(month_first)
+ df = month_data.df
+
+ assert not df.empty, "Dataframe should not be empty"
+
+ # Find tomorrow's row by converting index to date and comparing
+ index_dates = [idx.date() if hasattr(idx, "date") else idx for idx in df.index]
+ tomorrow_mask = [d == tomorrow for d in index_dates]
+ tomorrow_rows = df[tomorrow_mask]
+
+ assert not tomorrow_rows.empty, f"Tomorrow ({tomorrow}) should be in the dataframe"
+
+ # Extract the values for tomorrow
+ overtime_hours = tomorrow_rows["overtime"].values[0]
+ target_time = tomorrow_rows["target_time"].values[0]
+
+ # For future dates: overtime should be 0 (we cannot calculate overtime for future dates)
+ assert overtime_hours == expected_zero, (
+ f"Future vacation day should have {expected_zero} overtime hours, but got {overtime_hours} hours. "
+ f"Overtime cannot be calculated for future dates."
+ )
+
+ # target_time should be 0 for future dates (as per current logic)
+ assert target_time == expected_zero, f"Future date target_time should be {expected_zero}, but got {target_time}"
+
+
+def test_vacation_day_past_no_work_has_correct_zero_overtime(
+ store_and_controller: tuple[Store, MagicMock],
+) -> None:
+ """Test that a vacation day in the past with no work entries correctly has 0 overtime."""
+ store_instance, mock_db_controller = store_and_controller
+ daily_target = 8.0
+
+ # Get yesterday's date
+ yesterday = datetime.date.today() - datetime.timedelta(days=1)
+ month_first = yesterday.replace(day=1)
+
+ # Mock CONFIG_HANDLER to return 8 hours as daily target
+ with patch("src.datastore.CONFIG_HANDLER") as mock_config:
+ mock_config.config.get_daily_hours_at.return_value = daily_target
+ mock_config.config.workdays = [0, 1, 2, 3, 4] # Mon-Fri
+ mock_config.config.get_holidays.return_value = []
+ mock_config.config_hash.return_value = 12345
+
+ # Set yesterday as a vacation/free day
+ mock_db_controller.get_time_off_days.return_value = [yesterday]
+
+ # Add a work entry on yesterday (the vacation day) to ensure the dataframe includes it
+ yesterday_str = f"{yesterday.year}-{yesterday.month:02d}-{yesterday.day:02d}T08:00:00"
+ yesterday_end = f"{yesterday.year}-{yesterday.month:02d}-{yesterday.day:02d}T09:00:00"
+ mock_db_controller.get_month_data.return_value = (
+ [(yesterday_str, "start"), (yesterday_end, "stop")],
+ [],
+ )
+
+ # Generate month data
+ month_data = store_instance.generate_month_data(month_first)
+ df = month_data.df
+
+ assert not df.empty, "Dataframe should not be empty"
+
+ # Find yesterday's row by converting index to date and comparing
+ index_dates = [idx.date() if hasattr(idx, "date") else idx for idx in df.index]
+ yesterday_mask = [d == yesterday for d in index_dates]
+ yesterday_rows = df[yesterday_mask]
+
+ assert not yesterday_rows.empty, f"Yesterday ({yesterday}) should be in the dataframe"
+
+ # Extract the values for yesterday
+ work_hours = yesterday_rows["work"].values[0]
+ overtime_hours = yesterday_rows["overtime"].values[0]
+ target_time = yesterday_rows["target_time"].values[0]
+
+ # For a past vacation day, target_time is set correctly (8 hours)
+ # This test confirms that PAST vacation days work correctly
+ assert target_time == daily_target, f"Past date target_time should be {daily_target}, but got {target_time}"
+ # The work hours should be approximately 1 (from 8am to 9am) + daily target added by free day logic
+ assert work_hours > 0, f"Past vacation day work should be > 0, but got {work_hours}"
+ # For this test, we're mainly checking that target_time is correctly set for past dates
+ # The overtime calculation for past dates should work correctly
+ assert isinstance(overtime_hours, (int, float)), f"Overtime should be a number, but got {type(overtime_hours)}"
diff --git a/ui/config_window.py b/ui/config_window.py
index 36ce141..5600812 100644
--- a/ui/config_window.py
+++ b/ui/config_window.py
@@ -12,7 +12,7 @@
class Ui_ConfigWindow(object):
def setupUi(self, ConfigWindow):
ConfigWindow.setObjectName("ConfigWindow")
- ConfigWindow.resize(741, 417)
+ ConfigWindow.resize(752, 504)
self.verticalLayout = QtWidgets.QVBoxLayout(ConfigWindow)
self.verticalLayout.setContentsMargins(9, 6, 9, 6)
self.verticalLayout.setObjectName("verticalLayout")
@@ -30,7 +30,7 @@ def setupUi(self, ConfigWindow):
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
- self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 723, 293))
+ self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 734, 351))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout_3.setContentsMargins(0, 0, 4, 0)
@@ -39,34 +39,36 @@ def setupUi(self, ConfigWindow):
self.gridLayout_2.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetDefaultConstraint)
self.gridLayout_2.setSpacing(6)
self.gridLayout_2.setObjectName("gridLayout_2")
- self.label_9 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- self.label_9.setMaximumSize(QtCore.QSize(16777215, 50))
+ self.label_4 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_4.setMaximumSize(QtCore.QSize(16777215, 50))
font = QtGui.QFont()
font.setPointSize(12)
- self.label_9.setFont(font)
- self.label_9.setObjectName("label_9")
- self.gridLayout_2.addWidget(self.label_9, 1, 0, 1, 1)
- self.label_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- self.label_2.setMaximumSize(QtCore.QSize(16777215, 50))
+ self.label_4.setFont(font)
+ self.label_4.setObjectName("label_4")
+ self.gridLayout_2.addWidget(self.label_4, 3, 0, 1, 1)
+ self.filter_subdiv = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
+ self.filter_subdiv.setMinimumSize(QtCore.QSize(0, 35))
+ self.filter_subdiv.setMaximumSize(QtCore.QSize(100, 16777215))
font = QtGui.QFont()
font.setPointSize(12)
- self.label_2.setFont(font)
- self.label_2.setObjectName("label_2")
- self.gridLayout_2.addWidget(self.label_2, 0, 0, 1, 1)
- self.label_11 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- self.label_11.setMaximumSize(QtCore.QSize(16777215, 50))
+ self.filter_subdiv.setFont(font)
+ self.filter_subdiv.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+ self.filter_subdiv.setObjectName("filter_subdiv")
+ self.gridLayout_2.addWidget(self.filter_subdiv, 7, 3, 1, 1)
+ self.input_country = QtWidgets.QComboBox(parent=self.scrollAreaWidgetContents)
+ self.input_country.setMinimumSize(QtCore.QSize(0, 35))
font = QtGui.QFont()
font.setPointSize(12)
- self.label_11.setFont(font)
- self.label_11.setObjectName("label_11")
- self.gridLayout_2.addWidget(self.label_11, 5, 0, 1, 1)
+ self.input_country.setFont(font)
+ self.input_country.setObjectName("input_country")
+ self.gridLayout_2.addWidget(self.input_country, 6, 1, 1, 1)
self.label_13 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.label_13.setMaximumSize(QtCore.QSize(16777215, 50))
font = QtGui.QFont()
font.setPointSize(12)
self.label_13.setFont(font)
self.label_13.setObjectName("label_13")
- self.gridLayout_2.addWidget(self.label_13, 6, 0, 1, 1)
+ self.gridLayout_2.addWidget(self.label_13, 7, 0, 1, 1)
self.input_name = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
self.input_name.setMinimumSize(QtCore.QSize(0, 35))
font = QtGui.QFont()
@@ -75,27 +77,6 @@ def setupUi(self, ConfigWindow):
self.input_name.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.input_name.setObjectName("input_name")
self.gridLayout_2.addWidget(self.input_name, 0, 1, 1, 3)
- self.label_10 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- self.label_10.setMaximumSize(QtCore.QSize(16777215, 50))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.label_10.setFont(font)
- self.label_10.setObjectName("label_10")
- self.gridLayout_2.addWidget(self.label_10, 4, 0, 1, 1)
- self.label_6 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- self.label_6.setMaximumSize(QtCore.QSize(16777215, 50))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.label_6.setFont(font)
- self.label_6.setObjectName("label_6")
- self.gridLayout_2.addWidget(self.label_6, 3, 0, 1, 1)
- self.label_4 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- self.label_4.setMaximumSize(QtCore.QSize(16777215, 50))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.label_4.setFont(font)
- self.label_4.setObjectName("label_4")
- self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
self.work_hours_button = QtWidgets.QPushButton(parent=self.scrollAreaWidgetContents)
self.work_hours_button.setMinimumSize(QtCore.QSize(0, 35))
font = QtGui.QFont()
@@ -104,7 +85,14 @@ def setupUi(self, ConfigWindow):
self.work_hours_button.setCheckable(True)
self.work_hours_button.setChecked(True)
self.work_hours_button.setObjectName("work_hours_button")
- self.gridLayout_2.addWidget(self.work_hours_button, 1, 3, 1, 1)
+ self.gridLayout_2.addWidget(self.work_hours_button, 2, 3, 1, 1)
+ self.label_11 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_11.setMaximumSize(QtCore.QSize(16777215, 50))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_11.setFont(font)
+ self.label_11.setObjectName("label_11")
+ self.gridLayout_2.addWidget(self.label_11, 6, 0, 1, 1)
self.input_working_hours = QtWidgets.QDoubleSpinBox(parent=self.scrollAreaWidgetContents)
self.input_working_hours.setMinimumSize(QtCore.QSize(0, 35))
font = QtGui.QFont()
@@ -112,37 +100,42 @@ def setupUi(self, ConfigWindow):
self.input_working_hours.setFont(font)
self.input_working_hours.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.input_working_hours.setObjectName("input_working_hours")
- self.gridLayout_2.addWidget(self.input_working_hours, 1, 1, 1, 2)
- self.filter_country = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
- self.filter_country.setMinimumSize(QtCore.QSize(0, 35))
- self.filter_country.setMaximumSize(QtCore.QSize(100, 16777215))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.filter_country.setFont(font)
- self.filter_country.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
- self.filter_country.setObjectName("filter_country")
- self.gridLayout_2.addWidget(self.filter_country, 5, 3, 1, 1)
- self.input_country = QtWidgets.QComboBox(parent=self.scrollAreaWidgetContents)
- self.input_country.setMinimumSize(QtCore.QSize(0, 35))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.input_country.setFont(font)
- self.input_country.setObjectName("input_country")
- self.gridLayout_2.addWidget(self.input_country, 5, 1, 1, 1)
+ self.gridLayout_2.addWidget(self.input_working_hours, 2, 1, 1, 2)
self.label_7 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
font = QtGui.QFont()
font.setPointSize(12)
self.label_7.setFont(font)
self.label_7.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.label_7.setObjectName("label_7")
- self.gridLayout_2.addWidget(self.label_7, 5, 2, 1, 1)
- self.input_subdiv = QtWidgets.QComboBox(parent=self.scrollAreaWidgetContents)
- self.input_subdiv.setMinimumSize(QtCore.QSize(0, 35))
+ self.gridLayout_2.addWidget(self.label_7, 6, 2, 1, 1)
+ self.label_6 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_6.setMaximumSize(QtCore.QSize(16777215, 50))
font = QtGui.QFont()
font.setPointSize(12)
- self.input_subdiv.setFont(font)
- self.input_subdiv.setObjectName("input_subdiv")
- self.gridLayout_2.addWidget(self.input_subdiv, 6, 1, 1, 1)
+ self.label_6.setFont(font)
+ self.label_6.setObjectName("label_6")
+ self.gridLayout_2.addWidget(self.label_6, 4, 0, 1, 1)
+ self.label_10 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_10.setMaximumSize(QtCore.QSize(16777215, 50))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_10.setFont(font)
+ self.label_10.setObjectName("label_10")
+ self.gridLayout_2.addWidget(self.label_10, 5, 0, 1, 1)
+ self.label_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_2.setMaximumSize(QtCore.QSize(16777215, 50))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_2.setFont(font)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout_2.addWidget(self.label_2, 0, 0, 1, 1)
+ self.label_9 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_9.setMaximumSize(QtCore.QSize(16777215, 50))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_9.setFont(font)
+ self.label_9.setObjectName("label_9")
+ self.gridLayout_2.addWidget(self.label_9, 2, 0, 1, 1)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setSpacing(6)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
@@ -202,23 +195,14 @@ def setupUi(self, ConfigWindow):
self.input_hours_day_6.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.input_hours_day_6.setObjectName("input_hours_day_6")
self.horizontalLayout_3.addWidget(self.input_hours_day_6)
- self.gridLayout_2.addLayout(self.horizontalLayout_3, 4, 1, 1, 3)
- self.label_8 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
- font = QtGui.QFont()
- font.setPointSize(12)
- self.label_8.setFont(font)
- self.label_8.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
- self.label_8.setObjectName("label_8")
- self.gridLayout_2.addWidget(self.label_8, 6, 2, 1, 1)
- self.filter_subdiv = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
- self.filter_subdiv.setMinimumSize(QtCore.QSize(0, 35))
- self.filter_subdiv.setMaximumSize(QtCore.QSize(100, 16777215))
+ self.gridLayout_2.addLayout(self.horizontalLayout_3, 5, 1, 1, 3)
+ self.input_subdiv = QtWidgets.QComboBox(parent=self.scrollAreaWidgetContents)
+ self.input_subdiv.setMinimumSize(QtCore.QSize(0, 35))
font = QtGui.QFont()
font.setPointSize(12)
- self.filter_subdiv.setFont(font)
- self.filter_subdiv.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
- self.filter_subdiv.setObjectName("filter_subdiv")
- self.gridLayout_2.addWidget(self.filter_subdiv, 6, 3, 1, 1)
+ self.input_subdiv.setFont(font)
+ self.input_subdiv.setObjectName("input_subdiv")
+ self.gridLayout_2.addWidget(self.input_subdiv, 7, 1, 1, 1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetDefaultConstraint)
self.horizontalLayout_2.setSpacing(6)
@@ -293,7 +277,7 @@ def setupUi(self, ConfigWindow):
self.radio_weekday_6.setAutoExclusive(False)
self.radio_weekday_6.setObjectName("radio_weekday_6")
self.horizontalLayout_2.addWidget(self.radio_weekday_6)
- self.gridLayout_2.addLayout(self.horizontalLayout_2, 3, 1, 1, 3)
+ self.gridLayout_2.addLayout(self.horizontalLayout_2, 4, 1, 1, 3)
self.input_different_times = QtWidgets.QCheckBox(parent=self.scrollAreaWidgetContents)
self.input_different_times.setMinimumSize(QtCore.QSize(0, 35))
self.input_different_times.setMaximumSize(QtCore.QSize(16777215, 16777215))
@@ -304,7 +288,38 @@ def setupUi(self, ConfigWindow):
self.input_different_times.setIconSize(QtCore.QSize(20, 20))
self.input_different_times.setChecked(False)
self.input_different_times.setObjectName("input_different_times")
- self.gridLayout_2.addWidget(self.input_different_times, 2, 1, 1, 3)
+ self.gridLayout_2.addWidget(self.input_different_times, 3, 1, 1, 3)
+ self.filter_country = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
+ self.filter_country.setMinimumSize(QtCore.QSize(0, 35))
+ self.filter_country.setMaximumSize(QtCore.QSize(100, 16777215))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.filter_country.setFont(font)
+ self.filter_country.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+ self.filter_country.setObjectName("filter_country")
+ self.gridLayout_2.addWidget(self.filter_country, 6, 3, 1, 1)
+ self.label_8 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_8.setFont(font)
+ self.label_8.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+ self.label_8.setObjectName("label_8")
+ self.gridLayout_2.addWidget(self.label_8, 7, 2, 1, 1)
+ self.label_3 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
+ self.label_3.setMaximumSize(QtCore.QSize(16777215, 50))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_3.setFont(font)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
+ self.input_project_names = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
+ self.input_project_names.setMinimumSize(QtCore.QSize(0, 35))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.input_project_names.setFont(font)
+ self.input_project_names.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+ self.input_project_names.setObjectName("input_project_names")
+ self.gridLayout_2.addWidget(self.input_project_names, 1, 1, 1, 3)
self.verticalLayout_3.addLayout(self.gridLayout_2)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.verticalLayout.addWidget(self.scrollArea)
@@ -322,17 +337,16 @@ def setupUi(self, ConfigWindow):
def retranslateUi(self, ConfigWindow):
_translate = QtCore.QCoreApplication.translate
ConfigWindow.setWindowTitle(_translate("ConfigWindow", "Settings"))
- self.label_5.setText(_translate("ConfigWindow", "Change your local settings
Use decimals for minutes, e.g. 30 minutes are 30/60 = 0.5 h
"))
- self.label_9.setText(_translate("ConfigWindow", "Work Hours:"))
- self.label_2.setText(_translate("ConfigWindow", "Name:"))
- self.label_11.setText(_translate("ConfigWindow", "Country:"))
- self.label_13.setText(_translate("ConfigWindow", "Subdiv:"))
- self.label_10.setText(_translate("ConfigWindow", "Time Per Day:"))
- self.label_6.setText(_translate("ConfigWindow", "Workdays:"))
+ self.label_5.setText(_translate("ConfigWindow", "Change your local settings
Use decimals for minutes, e.g. 30 minutes are 30/60 = 0.5 h
Project Names should be ";" separated like"Name;Name2;..."
"))
self.label_4.setText(_translate("ConfigWindow", "Different Times:"))
+ self.label_13.setText(_translate("ConfigWindow", "Subdiv:"))
self.work_hours_button.setText(_translate("ConfigWindow", "/ Week"))
+ self.label_11.setText(_translate("ConfigWindow", "Country:"))
self.label_7.setText(_translate("ConfigWindow", "Filter:"))
- self.label_8.setText(_translate("ConfigWindow", "Filter:"))
+ self.label_6.setText(_translate("ConfigWindow", "Workdays:"))
+ self.label_10.setText(_translate("ConfigWindow", "Time Per Day:"))
+ self.label_2.setText(_translate("ConfigWindow", "Name:"))
+ self.label_9.setText(_translate("ConfigWindow", "Work Hours:"))
self.radio_weekday_0.setText(_translate("ConfigWindow", "Mon"))
self.radio_weekday_1.setText(_translate("ConfigWindow", "Tue"))
self.radio_weekday_2.setText(_translate("ConfigWindow", "Wed"))
@@ -341,6 +355,8 @@ def retranslateUi(self, ConfigWindow):
self.radio_weekday_5.setText(_translate("ConfigWindow", "Sat"))
self.radio_weekday_6.setText(_translate("ConfigWindow", "Sun"))
self.input_different_times.setText(_translate("ConfigWindow", "Define different times for each day"))
+ self.label_8.setText(_translate("ConfigWindow", "Filter:"))
+ self.label_3.setText(_translate("ConfigWindow", "Available Project Names:"))
self.apply_button.setText(_translate("ConfigWindow", "Apply"))
diff --git a/ui/config_window.ui b/ui/config_window.ui
index 0042370..7204fba 100644
--- a/ui/config_window.ui
+++ b/ui/config_window.ui
@@ -6,8 +6,8 @@
0
0
- 741
- 417
+ 752
+ 504
@@ -34,7 +34,7 @@
- <html><head/><body><p align="center"><span style=" font-weight:700;">Change your local settings</span></p><p align="center"><span style=" font-size:10pt;">Use decimals for minutes, e.g. 30 minutes are 30/60 = 0.5 h</span></p></body></html>
+ <html><head/><body><p align="center"><span style=" font-weight:700;">Change your local settings</span></p><p align="center"><span style=" font-size:10pt;">Use decimals for minutes, e.g. 30 minutes are 30/60 = 0.5 h</span></p><p align="center"><span style=" font-size:10pt;">Project Names should be ";" separated like"Name;Name2;..."</span></p></body></html>
true
@@ -60,8 +60,8 @@
0
0
- 723
- 293
+ 734
+ 351
@@ -85,8 +85,8 @@
6
- -
-
+
-
+
16777215
@@ -99,16 +99,22 @@
- Work Hours:
+ Different Times:
- -
-
+
-
+
+
+
+ 0
+ 35
+
+
- 16777215
- 50
+ 100
+ 16777215
@@ -116,17 +122,17 @@
12
-
- Name:
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- -
-
-
+
-
+
+
- 16777215
- 50
+ 0
+ 35
@@ -134,12 +140,9 @@
12
-
- Country:
-
- -
+
-
@@ -175,12 +178,12 @@
- -
-
-
+
-
+
+
- 16777215
- 50
+ 0
+ 35
@@ -189,30 +192,18 @@
- Time Per Day:
-
-
-
- -
-
-
-
- 16777215
- 50
-
+ / Week
-
-
- 12
-
+
+ true
-
- Workdays:
+
+ true
- -
-
+
-
+
16777215
@@ -225,12 +216,12 @@
- Different Times:
+ Country:
- -
-
+
-
+
0
@@ -242,47 +233,32 @@
12
-
- / Week
-
-
- true
-
-
- true
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- -
-
-
-
- 0
- 35
-
-
+
-
+
12
+
+ Filter:
+
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- -
-
-
-
- 0
- 35
-
-
+
-
+
- 100
- 16777215
+ 16777215
+ 50
@@ -290,17 +266,17 @@
12
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+ Workdays:
- -
-
-
+
-
+
+
- 0
- 35
+ 16777215
+ 50
@@ -308,29 +284,35 @@
12
+
+ Time Per Day:
+
- -
-
+
-
+
+
+
+ 16777215
+ 50
+
+
12
- Filter:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+ Name:
- -
-
-
+
-
+
+
- 0
- 35
+ 16777215
+ 50
@@ -338,9 +320,12 @@
12
+
+ Work Hours:
+
- -
+
-
6
@@ -473,46 +458,22 @@
- -
-
-
-
- 12
-
-
-
- Filter:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
+
-
+
0
35
-
-
- 100
- 16777215
-
-
12
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
- -
+
-
6
@@ -718,7 +679,7 @@
- -
+
-
@@ -754,6 +715,81 @@
+ -
+
+
+
+ 0
+ 35
+
+
+
+
+ 100
+ 16777215
+
+
+
+
+ 12
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 12
+
+
+
+ Filter:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 16777215
+ 50
+
+
+
+
+ 12
+
+
+
+ Available Project Names:
+
+
+
+ -
+
+
+
+ 0
+ 35
+
+
+
+
+ 12
+
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
diff --git a/ui/mainwindow.py b/ui/mainwindow.py
index bbe71e8..cd5283e 100644
--- a/ui/mainwindow.py
+++ b/ui/mainwindow.py
@@ -12,21 +12,21 @@
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(368, 283)
+ MainWindow.resize(368, 370)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName("horizontalLayout")
- self.verticalLayout = QtWidgets.QVBoxLayout()
- self.verticalLayout.setObjectName("verticalLayout")
- self.start_button = QtWidgets.QPushButton(parent=self.centralwidget)
- self.start_button.setMinimumSize(QtCore.QSize(0, 50))
- self.start_button.setMaximumSize(QtCore.QSize(200, 100))
+ self.gridLayout = QtWidgets.QGridLayout()
+ self.gridLayout.setObjectName("gridLayout")
+ self.pause_button = QtWidgets.QPushButton(parent=self.centralwidget)
+ self.pause_button.setMinimumSize(QtCore.QSize(0, 50))
+ self.pause_button.setMaximumSize(QtCore.QSize(200, 100))
font = QtGui.QFont()
font.setPointSize(18)
- self.start_button.setFont(font)
- self.start_button.setObjectName("start_button")
- self.verticalLayout.addWidget(self.start_button)
+ self.pause_button.setFont(font)
+ self.pause_button.setObjectName("pause_button")
+ self.gridLayout.addWidget(self.pause_button, 3, 1, 1, 1)
self.stop_button = QtWidgets.QPushButton(parent=self.centralwidget)
self.stop_button.setMinimumSize(QtCore.QSize(0, 50))
self.stop_button.setMaximumSize(QtCore.QSize(200, 100))
@@ -34,19 +34,7 @@ def setupUi(self, MainWindow):
font.setPointSize(18)
self.stop_button.setFont(font)
self.stop_button.setObjectName("stop_button")
- self.verticalLayout.addWidget(self.stop_button)
- self.past_datetime_edit = QtWidgets.QDateTimeEdit(parent=self.centralwidget)
- self.past_datetime_edit.setMinimumSize(QtCore.QSize(0, 50))
- self.past_datetime_edit.setMaximumSize(QtCore.QSize(200, 100))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.past_datetime_edit.setFont(font)
- self.past_datetime_edit.setCalendarPopup(True)
- self.past_datetime_edit.setObjectName("past_datetime_edit")
- self.verticalLayout.addWidget(self.past_datetime_edit)
- self.horizontalLayout.addLayout(self.verticalLayout)
- self.verticalLayout_2 = QtWidgets.QVBoxLayout()
- self.verticalLayout_2.setObjectName("verticalLayout_2")
+ self.gridLayout.addWidget(self.stop_button, 3, 0, 1, 1)
self.pause_box = QtWidgets.QSpinBox(parent=self.centralwidget)
self.pause_box.setMinimumSize(QtCore.QSize(0, 50))
self.pause_box.setMaximumSize(QtCore.QSize(16777215, 100))
@@ -58,15 +46,34 @@ def setupUi(self, MainWindow):
self.pause_box.setMaximum(120)
self.pause_box.setSingleStep(5)
self.pause_box.setObjectName("pause_box")
- self.verticalLayout_2.addWidget(self.pause_box)
- self.pause_button = QtWidgets.QPushButton(parent=self.centralwidget)
- self.pause_button.setMinimumSize(QtCore.QSize(0, 50))
- self.pause_button.setMaximumSize(QtCore.QSize(200, 100))
+ self.gridLayout.addWidget(self.pause_box, 2, 1, 1, 1)
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetMinimumSize)
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.label_project = QtWidgets.QLabel(parent=self.centralwidget)
+ self.label_project.setMaximumSize(QtCore.QSize(70, 50))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_project.setFont(font)
+ self.label_project.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+ self.label_project.setObjectName("label_project")
+ self.horizontalLayout_2.addWidget(self.label_project)
+ self.input_project = QtWidgets.QComboBox(parent=self.centralwidget)
+ self.input_project.setMinimumSize(QtCore.QSize(0, 40))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.input_project.setFont(font)
+ self.input_project.setObjectName("input_project")
+ self.horizontalLayout_2.addWidget(self.input_project)
+ self.gridLayout.addLayout(self.horizontalLayout_2, 0, 0, 1, 2)
+ self.start_button = QtWidgets.QPushButton(parent=self.centralwidget)
+ self.start_button.setMinimumSize(QtCore.QSize(0, 50))
+ self.start_button.setMaximumSize(QtCore.QSize(200, 100))
font = QtGui.QFont()
font.setPointSize(18)
- self.pause_button.setFont(font)
- self.pause_button.setObjectName("pause_button")
- self.verticalLayout_2.addWidget(self.pause_button)
+ self.start_button.setFont(font)
+ self.start_button.setObjectName("start_button")
+ self.gridLayout.addWidget(self.start_button, 2, 0, 1, 1)
self.back_button = QtWidgets.QPushButton(parent=self.centralwidget)
self.back_button.setMinimumSize(QtCore.QSize(0, 50))
self.back_button.setMaximumSize(QtCore.QSize(200, 100))
@@ -74,8 +81,27 @@ def setupUi(self, MainWindow):
font.setPointSize(18)
self.back_button.setFont(font)
self.back_button.setObjectName("back_button")
- self.verticalLayout_2.addWidget(self.back_button)
- self.horizontalLayout.addLayout(self.verticalLayout_2)
+ self.gridLayout.addWidget(self.back_button, 4, 1, 1, 1)
+ self.label_last_event = QtWidgets.QLabel(parent=self.centralwidget)
+ self.label_last_event.setMaximumSize(QtCore.QSize(16777215, 30))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.label_last_event.setFont(font)
+ self.label_last_event.setScaledContents(False)
+ self.label_last_event.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
+ self.label_last_event.setWordWrap(True)
+ self.label_last_event.setObjectName("label_last_event")
+ self.gridLayout.addWidget(self.label_last_event, 1, 0, 1, 2)
+ self.past_datetime_edit = QtWidgets.QDateTimeEdit(parent=self.centralwidget)
+ self.past_datetime_edit.setMinimumSize(QtCore.QSize(0, 50))
+ self.past_datetime_edit.setMaximumSize(QtCore.QSize(200, 100))
+ font = QtGui.QFont()
+ font.setPointSize(12)
+ self.past_datetime_edit.setFont(font)
+ self.past_datetime_edit.setCalendarPopup(True)
+ self.past_datetime_edit.setObjectName("past_datetime_edit")
+ self.gridLayout.addWidget(self.past_datetime_edit, 4, 0, 1, 1)
+ self.horizontalLayout.addLayout(self.gridLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 368, 22))
@@ -123,10 +149,12 @@ def setupUi(self, MainWindow):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Time Tracker"))
- self.start_button.setText(_translate("MainWindow", "Start"))
- self.stop_button.setText(_translate("MainWindow", "Stop"))
self.pause_button.setText(_translate("MainWindow", "Pause"))
+ self.stop_button.setText(_translate("MainWindow", "Stop"))
+ self.label_project.setText(_translate("MainWindow", "Project: "))
+ self.start_button.setText(_translate("MainWindow", "Start"))
self.back_button.setText(_translate("MainWindow", "Back"))
+ self.label_last_event.setText(_translate("MainWindow", "Last Event was at label"))
self.menuOptions.setTitle(_translate("MainWindow", "Options"))
self.action_show_events.setText(_translate("MainWindow", "Events Anzeigen"))
self.action_add_events.setText(_translate("MainWindow", "Add old Events"))
diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui
index 6e953fd..b5c6a31 100644
--- a/ui/mainwindow.ui
+++ b/ui/mainwindow.ui
@@ -7,7 +7,7 @@
0
0
368
- 283
+ 370
@@ -16,9 +16,9 @@
-
-
-
-
-
+
+
-
+
0
@@ -37,11 +37,11 @@
- Start
+ Pause
- -
+
-
@@ -65,8 +65,8 @@
- -
-
+
-
+
0
@@ -75,26 +75,74 @@
- 200
+ 16777215
100
- 12
+ 18
-
- true
+
+ Qt::AlignCenter
+
+
+ -120
+
+
+ 120
+
+
+ 5
-
-
- -
-
-
-
-
+
-
+
+
+ QLayout::SetMinimumSize
+
+
-
+
+
+
+ 70
+ 50
+
+
+
+
+ 12
+
+
+
+ Project:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 40
+
+
+
+
+ 12
+
+
+
+
+
+
+ -
+
0
@@ -103,7 +151,7 @@
- 16777215
+ 200
100
@@ -112,22 +160,13 @@
18
-
- Qt::AlignCenter
-
-
- -120
-
-
- 120
-
-
- 5
+
+ Start
- -
-
+
-
+
0
@@ -146,12 +185,39 @@
- Pause
+ Back
- -
-
+
-
+
+
+
+ 16777215
+ 30
+
+
+
+
+ 12
+
+
+
+ Last Event was at label
+
+
+ false
+
+
+ Qt::AlignCenter
+
+
+ true
+
+
+
+ -
+
0
@@ -166,11 +232,11 @@
- 18
+ 12
-
- Back
+
+ true