Добавил деление трудочасов пополам для новичков #4
@@ -60,6 +60,7 @@ nano .env
|
|||||||
*CLOCKIFY_TOKEN=<api_ключ_clockify>
|
*CLOCKIFY_TOKEN=<api_ключ_clockify>
|
||||||
?USER_ID=<user_id_clockify>
|
?USER_ID=<user_id_clockify>
|
||||||
?WORKSPACE_ID=<workspace_id_clockify>
|
?WORKSPACE_ID=<workspace_id_clockify>
|
||||||
|
?TRIAL_END_DATE=<дата_середины_испытательного_срока>
|
||||||
```
|
```
|
||||||
\* - Обязательные.<br>
|
\* - Обязательные.<br>
|
||||||
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе.
|
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе.
|
||||||
@@ -74,6 +75,10 @@ nano .env
|
|||||||
В теле ответа вы получите нужные переменные:<br>
|
В теле ответа вы получите нужные переменные:<br>
|
||||||
id - это `USER_ID`<br>
|
id - это `USER_ID`<br>
|
||||||
activeWorkspace - это `WORKSPACE_ID`
|
activeWorkspace - это `WORKSPACE_ID`
|
||||||
|
<br>
|
||||||
|
## TRIAL_END_DATE
|
||||||
|
Это дата, после которой ваши трудочасы должны заноситься в Redmine в полном количестве. Данная переменная больше актуальна для новичков, которым нужно делить трудочасы пополам.<br>
|
||||||
|
До указанной даты трудочасы будут заноситься в Redmine наполовину. После этой даты - целиком.<br>
|
||||||
## Запуск.
|
## Запуск.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ class RedmineAPI(RedmineConfig):
|
|||||||
|
|
||||||
def track_activities(self, activities: list[Activity]) -> list[Activity]:
|
def track_activities(self, activities: list[Activity]) -> list[Activity]:
|
||||||
"""Заносит трудочасы на сервер Redmine"""
|
"""Заносит трудочасы на сервер Redmine"""
|
||||||
|
is_beginner = config.is_beginner
|
||||||
|
if is_beginner:
|
||||||
|
logging.info(f"{Fore.YELLOW}Делим трудочасы пополам{Fore.RESET}")
|
||||||
if len(activities) == 0:
|
if len(activities) == 0:
|
||||||
logger.info(Fore.YELLOW + "Нет задач для занесения трудочасов" + Fore.RESET)
|
logger.info(Fore.YELLOW + "Нет задач для занесения трудочасов" + Fore.RESET)
|
||||||
return
|
return
|
||||||
@@ -42,7 +45,7 @@ class RedmineAPI(RedmineConfig):
|
|||||||
json={
|
json={
|
||||||
"time_entry": {
|
"time_entry": {
|
||||||
"issue_id": activity.task_id,
|
"issue_id": activity.task_id,
|
||||||
"hours": activity.time_spent,
|
"hours": activity.time_spent / (2 if is_beginner else 1),
|
||||||
"activity_id": ActivityTypes.DEVELOPMENT,
|
"activity_id": ActivityTypes.DEVELOPMENT,
|
||||||
"comments": activity.description,
|
"comments": activity.description,
|
||||||
"spent_on": activity.date_start.strftime(self.datetime_format)
|
"spent_on": activity.date_start.strftime(self.datetime_format)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
from datetime import datetime
|
||||||
from pydantic_settings import BaseSettings
|
from pydantic_settings import BaseSettings
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
@@ -16,6 +17,8 @@ class Config(BaseSettings):
|
|||||||
USER_ID: str = None
|
USER_ID: str = None
|
||||||
WORKSPACE_ID: str = None
|
WORKSPACE_ID: str = None
|
||||||
|
|
||||||
|
TRIAL_END_DATE: str = datetime.today().strftime("%Y-%m-%d")
|
||||||
|
|
||||||
ENV_TXT: str = ".env.txt"
|
ENV_TXT: str = ".env.txt"
|
||||||
DB_NAME: str = "db/RedmineTracker.db"
|
DB_NAME: str = "db/RedmineTracker.db"
|
||||||
SQL_PATH: str = "config/RedmineTracker.sql"
|
SQL_PATH: str = "config/RedmineTracker.sql"
|
||||||
@@ -37,6 +40,11 @@ class Config(BaseSettings):
|
|||||||
12: "декабря"
|
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():
|
def configure_argument_parser():
|
||||||
parser = argparse.ArgumentParser(description='Трекер трудочасов с Clockify в Redmine')
|
parser = argparse.ArgumentParser(description='Трекер трудочасов с Clockify в Redmine')
|
||||||
|
|||||||
@@ -2,3 +2,4 @@ REDMINE_TOKEN=
|
|||||||
CLOCKIFY_TOKEN=
|
CLOCKIFY_TOKEN=
|
||||||
USER_ID=
|
USER_ID=
|
||||||
WORKSPACE_ID=
|
WORKSPACE_ID=
|
||||||
|
TRIAL_END_DATE=
|
||||||
Reference in New Issue
Block a user