Изменил формат Номера задачи

This commit is contained in:
2025-05-22 17:29:53 +03:00
parent 217f3a184f
commit 08ca8d1b4d
5 changed files with 12 additions and 5 deletions

View File

@@ -11,7 +11,10 @@
|Описание задачи (Description)|Комментарий|Уточнение у аналитика|
|Теги (Tags)|<Задача> - <Название задачи>|28882 - Прочие активности по Ветро|
|Трекать/Не трекать (Billable/Non-billable)|<Занесена в Redmine или нет>|Если выбрано, то активность будет перенесена
Тег обязательно должен содержать номер задачи (5 цифр) в начале.<br>
28882 - Прочие активности<br>
28882<br>
28882 Прочие активности<br>
### Запуск:
Клонируйте [репозиторий](https://git.sbps.ru/e.vlasov/redmine_tracker) и перейдите в него в командной строке:

View File

@@ -8,7 +8,7 @@ from tqdm import tqdm
from config import ClockifyConfig, config
from classes import Activity, Tag, VetroProject
from exceptions import InvalidToken
from utils import time_to_hour
from utils import parse_task_id, time_to_hour
logger = logging.getLogger(__name__)
@@ -42,7 +42,7 @@ class ClockifyAPI(ClockifyConfig):
time_worked_out_total += time_to_hour((end if end else datetime.utcnow()) - start)
tag = [tag for tag in self.get_tags() if tag.id == tag_id][0]
try:
task_id, _ = tag.title.split(" - ")
task_id = parse_task_id(tag.title)
except ValueError:
logger.info(f'{activity["timeInterval"]["start"]}: {activity["description"]} - Неправильный формат тега {tag}')
continue

View File

@@ -18,7 +18,7 @@ class Activity:
is_tracked: bool = False
def __str__(self):
return f'{self.date_start + timedelta(hours=3)}|{self.description} для задачи #{self.task_id}'
return f'|{self.date_start + timedelta(hours=3)}| {self.description} для задачи #{self.task_id}'
@dataclass

View File

@@ -23,6 +23,7 @@ class Database:
logger.error("Ошибка при инициализации БД:", e)
self.con.rollback()
# Сделать изменение поля is_tracked при IntegrityError
def insert_activities(self, activities: list[Activity]):
cur = self.con.cursor()
is_updated = True
@@ -53,7 +54,6 @@ class Database:
if not is_updated:
logging.info("База данных устарела. Рекомендуем обновить с помощью флага -i [--init-db]")
# Доделать
def insert_time_entries(self, activities: list[Activity]):
cur = self.con.cursor()
for act in activities:

View File

@@ -1,4 +1,5 @@
from datetime import datetime, timedelta
import re
from typing import Optional
from config import config
@@ -28,3 +29,6 @@ def str_to_date(date: str) -> Optional[datetime]:
def format_date(date: datetime) -> datetime:
if date:
return date.strftime(config.DATETIME_FORMAT)
def parse_task_id(tag: str) -> int:
return int(re.search(r"^(?P<task_id>\d{5})", tag).group("task_id"))