diff --git a/README.MD b/README.MD index f9abbe8..f256645 100644 --- a/README.MD +++ b/README.MD @@ -60,6 +60,7 @@ nano .env *CLOCKIFY_TOKEN= ?USER_ID= ?WORKSPACE_ID= +?TRIAL_END_DATE=<дата_середины_испытательного_срока> ``` \* - Обязательные.
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе. @@ -74,6 +75,10 @@ nano .env В теле ответа вы получите нужные переменные:
id - это `USER_ID`
activeWorkspace - это `WORKSPACE_ID` +
+## TRIAL_END_DATE +Это дата, после которой ваши трудочасы должны заноситься в Redmine в полном количестве. Данная переменная больше актуальна для новичков, которым нужно делить трудочасы пополам.
+До указанной даты трудочасы будут заноситься в Redmine наполовину. После этой даты - целиком.
## Запуск. ``` diff --git a/api/redmine.py b/api/redmine.py index 249740c..bf7fe49 100644 --- a/api/redmine.py +++ b/api/redmine.py @@ -28,6 +28,9 @@ class RedmineAPI(RedmineConfig): def track_activities(self, activities: list[Activity]) -> list[Activity]: """Заносит трудочасы на сервер Redmine""" + is_beginner = config.is_beginner + if is_beginner: + logging.info(f"{Fore.YELLOW}Делим трудочасы пополам{Fore.RESET}") if len(activities) == 0: logger.info(Fore.YELLOW + "Нет задач для занесения трудочасов" + Fore.RESET) return @@ -42,7 +45,7 @@ class RedmineAPI(RedmineConfig): json={ "time_entry": { "issue_id": activity.task_id, - "hours": activity.time_spent, + "hours": activity.time_spent / (2 if is_beginner else 1), "activity_id": ActivityTypes.DEVELOPMENT, "comments": activity.description, "spent_on": activity.date_start.strftime(self.datetime_format) diff --git a/config/__init__.py b/config/__init__.py index 94820f8..64594ea 100644 --- a/config/__init__.py +++ b/config/__init__.py @@ -1,4 +1,5 @@ import argparse +from datetime import datetime from pydantic_settings import BaseSettings from dotenv import load_dotenv @@ -16,6 +17,8 @@ class Config(BaseSettings): USER_ID: str = None WORKSPACE_ID: str = None + TRIAL_END_DATE: str = datetime.today().strftime("%Y-%m-%d") + ENV_TXT: str = ".env.txt" DB_NAME: str = "db/RedmineTracker.db" SQL_PATH: str = "config/RedmineTracker.sql" @@ -37,6 +40,11 @@ class Config(BaseSettings): 12: "декабря" } + @property + def is_beginner(self): + from utils import str_to_date + return datetime.today() < str_to_date(self.TRIAL_END_DATE) + def configure_argument_parser(): parser = argparse.ArgumentParser(description='Трекер трудочасов с Clockify в Redmine') diff --git a/env.example b/env.example index 295928b..5a5dff9 100644 --- a/env.example +++ b/env.example @@ -1,4 +1,5 @@ REDMINE_TOKEN= CLOCKIFY_TOKEN= USER_ID= -WORKSPACE_ID= \ No newline at end of file +WORKSPACE_ID= +TRIAL_END_DATE= \ No newline at end of file