Compare commits
2 Commits
b586998f9d
...
de885281fc
| Author | SHA1 | Date | |
|---|---|---|---|
| de885281fc | |||
| 764437112b |
@@ -60,6 +60,7 @@ nano .env
|
||||
*CLOCKIFY_TOKEN=<api_ключ_clockify>
|
||||
?USER_ID=<user_id_clockify>
|
||||
?WORKSPACE_ID=<workspace_id_clockify>
|
||||
?TRIAL_END_DATE=<дата_середины_испытательного_срока>
|
||||
```
|
||||
\* - Обязательные.<br>
|
||||
? - Опциональные. Могут быть пустыми, но не должны отсутствовать вовсе.
|
||||
@@ -74,6 +75,10 @@ nano .env
|
||||
В теле ответа вы получите нужные переменные:<br>
|
||||
id - это `USER_ID`<br>
|
||||
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]:
|
||||
"""Заносит трудочасы на сервер 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)
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
REDMINE_TOKEN=
|
||||
CLOCKIFY_TOKEN=
|
||||
USER_ID=
|
||||
WORKSPACE_ID=
|
||||
WORKSPACE_ID=
|
||||
TRIAL_END_DATE=
|
||||
Reference in New Issue
Block a user