Добавил отображение ДО

This commit is contained in:
2025-05-20 16:28:26 +03:00
parent d0edaf8318
commit dca5697b43
5 changed files with 55 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
from datetime import datetime, timedelta
from datetime import datetime
import logging
from colorama import Fore
@@ -51,6 +51,7 @@ class ClockifyAPI(ClockifyConfig):
task_title=task_title,
project_id=activity["projectId"],
vetro_project_id=activity["taskId"],
vetro_project_title=config.VETRO_PROJECTS.get(activity.get("taskId")),
description=activity["description"],
time_spent=time_to_hour((end if end else datetime.now()) - start),
date_start=start,

View File

@@ -1,23 +1,26 @@
from dataclasses import dataclass
from datetime import datetime
from datetime import datetime, timedelta
from enums import ClockifyProjects, VetroProjects
@dataclass
class Activity:
id: str
task_id: int
vetro_project_id: str
vetro_project_id: VetroProjects
vetro_project_title: str
task_title: str
tag_id: str
description: str
project_id: str
project_id: ClockifyProjects
time_spent: float
date_start: datetime
date_end: datetime = None
is_tracked: bool = False
def __str__(self):
return f'{self.date_start}: {self.description} для задачи "{self.task_title}"'
return f'{self.date_start + timedelta(hours=3)}|{self.vetro_project_title}|{self.description} для задачи "{self.task_title}"'
@dataclass

View File

@@ -14,6 +14,27 @@ class Config(BaseSettings):
DATETIME_FORMAT: str = "%Y-%m-%dT%H:%M:%SZ"
VETRO_PROJECTS: dict = {
"682c438ca9a5d61a4cc9a405": "Админка",
"682c7c1b537d26222fe3cde8": "Чаты Авито",
"682c7cc5a4e2fd3c34a5e933": "Звонки",
"682b2c2d537d26222fc5671c": "Регистрация гарантии",
"682b3cc4f01c6c02e4e765b0": "Клиент",
"682b2c1366a3b415535a23fa": "Контрагенты",
"682b2c3f24f321560e283cb2": "Урегулирование страховых случаев",
"682b2c52d7ce797b226fddef": "Почта",
"682c7cd766a3b4155378f8a4": "Товар",
"682c7d05d7ce797b228edd06": "Закупка",
"682b2bf324f321560e283084": "Страховые направления",
"682b2c09f01c6c02e4e49681": "Задачи направлений",
"682b2c1bd096503066890985": "Заказ",
"682b2c22b417733736a3ae9f": "Задачи заказов",
"682b3280560c2445c917951c": "Услуга клиенту",
"682b2c7324f321560e284588": "Потерянные трудочасы",
"682c7d0ed7ce797b228edf3a": "WhatsApp",
"682b2bada9a5d61a4cb1b6e1": "Прочие активности по Ветро",
}
def configure_argument_parser():
parser = argparse.ArgumentParser(description='Трекер трудочасов с Clockify в Redmine')

View File

@@ -13,3 +13,24 @@ class ClockifyProjects(StrEnum):
VETRO3 = "67e266148411754017d0cee5"
VETRO_RETAIL = "67e29b8e837a92506f5e86df"
SPHERA = "67e5476b1b872e13361e007c"
class VetroProjects(StrEnum):
ADMIN = "682c438ca9a5d61a4cc9a405"
AVITO_CHAT = "682c7c1b537d26222fe3cde8"
CALL = "682c7cc5a4e2fd3c34a5e933"
CLAIM_STOA = "682b2c2d537d26222fc5671c"
CLIENT = "682b3cc4f01c6c02e4e765b0"
CONTRACTOR = "682b2c1366a3b415535a23fa"
INS_CLAIM = "682b2c3f24f321560e283cb2"
MAIL_GUI = "682b2c52d7ce797b226fddef"
PRODUCT = "682c7cd766a3b4155378f8a4"
PURCHASE = "682c7d05d7ce797b228edd06"
REQUEST = "682b2bf324f321560e283084"
REQUEST_TASK = "682b2c09f01c6c02e4e49681"
SALE = "682b2c1bd096503066890985"
SALE_TASK = "682b2c22b417733736a3ae9f"
SERVICE = "682b3280560c2445c917951c"
UNDEFINED_TIME = "682b2c7324f321560e284588"
WHATSAPP = "682c7d0ed7ce797b228edf3a"
OTHER = "682b2bada9a5d61a4cb1b6e1"

View File

@@ -37,8 +37,10 @@ def main():
"page-size": args.page_size,
},
)
tracked_activities = red.track_activities(activities)
clock.mark_tracked(tracked_activities)
# tracked_activities = red.track_activities(activities)
# clock.mark_tracked(tracked_activities)
for activity in activities:
print(activity)
if __name__ == "__main__":