Исправил ошибку при которой трекалась не законченная задача. Исправил отображение в README
This commit is contained in:
23
README.MD
23
README.MD
@@ -10,8 +10,8 @@
|
|||||||
|--------|-------|------|
|
|--------|-------|------|
|
||||||
|Описание задачи (Description)|Комментарий|Уточнение у аналитика|
|
|Описание задачи (Description)|Комментарий|Уточнение у аналитика|
|
||||||
|Теги (Tags)|<Задача> - <Название задачи>|28882 - Прочие активности по Ветро|
|
|Теги (Tags)|<Задача> - <Название задачи>|28882 - Прочие активности по Ветро|
|
||||||
|Трекать/Не трекать (Billable/Non-billable)|<Занесена в Redmine или нет>|Если выбрано, то активность будет перенесена
|
|Трекать/Не трекать (Billable/Non-billable)|<Занесена в Redmine или нет>|Если выбрано, то активность будет перенесена|
|
||||||
<br>
|
|
||||||
Тег обязательно должен содержать номер задачи (5 цифр) в начале.<br>
|
Тег обязательно должен содержать номер задачи (5 цифр) в начале.<br>
|
||||||
28882 - Прочие активности<br>
|
28882 - Прочие активности<br>
|
||||||
28882<br>
|
28882<br>
|
||||||
@@ -50,7 +50,7 @@ pip install -r requirements.txt
|
|||||||
```
|
```
|
||||||
Создайте файл .env и добавьте в него переменные:
|
Создайте файл .env и добавьте в него переменные:
|
||||||
```bash
|
```bash
|
||||||
touch .env
|
nano .env
|
||||||
```
|
```
|
||||||
```env
|
```env
|
||||||
*REDMINE_TOKEN=<api_ключ_redmine>
|
*REDMINE_TOKEN=<api_ключ_redmine>
|
||||||
@@ -78,14 +78,13 @@ python track.py
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Аргументы запуска
|
## Аргументы запуска
|
||||||
| Аргумент | Описание | Пример использования |
|
| Аргумент | Описание | Пример использования |
|
||||||
|-------------------|--------------------------------------------------------------|--------------------------------------|
|
|-------------------|----------------------------------------------------------------------------------------------|--------------------------------------|
|
||||||
| `-h [--help]` | Показать справку | `python track.py --help` |
|
| `-h [--help]` | Показать справку | `python track.py --help` |
|
||||||
| `-s [--start]` | Дата начала парсинга активностей в формате гггг-мм-дд | `python track.py --start 2025-05-19` |
|
| `-s [--start]` | Дата начала парсинга активностей в формате гггг-мм-дд | `python track.py --start 2025-05-19` |
|
||||||
| `-e [--end]` | Дата окончания парсинга активностей в формате гггг-мм-дд | `python track.py -e 2025-05-19` |
|
| `-e [--end]` | Дата окончания парсинга активностей в формате гггг-мм-дд | `python track.py -e 2025-05-19` |
|
||||||
| `-p [--page-size]`| Количество задач для вывода. Выведет последние n записей | `python track.py --page-size 15` |
|
| `-p [--page-size]`| Количество задач для вывода. Выведет последние n записей | `python track.py --page-size 15` |
|
||||||
| `-d [--debug]` | Режим отладки. Не загружает трудочасы в Redmine | `python track.py -d` |
|
| `-d [--debug]` | Режим отладки. Не загружает трудочасы в Redmine | `python track.py -d` |
|
||||||
| `-i [--init-db]` | Режим инициализации бд. | `python track.py -init-db` |
|
| `-i [--init-db]` | Режим инициализации бд.<br>Подгружает с серверов теги, виды деятельности и Проекты (ДО) Ветро| `python track.py -init-db` |
|
||||||
| | Подгружает с серверов теги, виды деятельности и проекты Ветро| |
|
|
||||||
|
|
||||||
[Власов Эдуард](https://github.com/QuickLike)
|
[Власов Эдуард](https://github.com/QuickLike)
|
||||||
@@ -27,31 +27,32 @@ class RedmineAPI(RedmineConfig):
|
|||||||
return
|
return
|
||||||
tracked = []
|
tracked = []
|
||||||
for activity in tqdm(activities, desc="Занесение трудочасов"):
|
for activity in tqdm(activities, desc="Занесение трудочасов"):
|
||||||
if not activity.is_tracked:
|
if not(not activity.is_tracked and activity.date_end):
|
||||||
try:
|
continue
|
||||||
resp = requests.post(
|
try:
|
||||||
self.base_url + self.time_entries_url,
|
resp = requests.post(
|
||||||
headers={"X-Redmine-Api-Key": self.token},
|
self.base_url + self.time_entries_url,
|
||||||
json={
|
headers={"X-Redmine-Api-Key": self.token},
|
||||||
"time_entry": {
|
json={
|
||||||
"issue_id": activity.task_id,
|
"time_entry": {
|
||||||
"hours": activity.time_spent,
|
"issue_id": activity.task_id,
|
||||||
"activity_id": ActivityTypes.DEVELOPMENT,
|
"hours": activity.time_spent,
|
||||||
"comments": activity.description,
|
"activity_id": ActivityTypes.DEVELOPMENT,
|
||||||
"spent_on": activity.date_start.strftime(self.datetime_format)
|
"comments": activity.description,
|
||||||
}
|
"spent_on": activity.date_start.strftime(self.datetime_format)
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
if resp.ok:
|
)
|
||||||
activity.is_tracked = True
|
if resp.ok:
|
||||||
tracked.append(activity)
|
activity.is_tracked = True
|
||||||
logger.debug(activity)
|
tracked.append(activity)
|
||||||
else:
|
logger.debug(activity)
|
||||||
logger.error(Fore.RED + f"{activity} Не была затрекана" + Fore.RED)
|
else:
|
||||||
logger.error(f"{resp.json()['errors']} {resp.status_code}")
|
logger.error(Fore.RED + f"{activity} Не была затрекана" + Fore.RED)
|
||||||
except Exception as e:
|
logger.error(f"{resp.json()['errors']} {resp.status_code}")
|
||||||
logger.error(e)
|
except Exception as e:
|
||||||
continue
|
logger.error(e)
|
||||||
|
continue
|
||||||
if len(activities) == len(tracked):
|
if len(activities) == len(tracked):
|
||||||
logger.info("Все задачи были успешно занесены в Redmine")
|
logger.info("Все задачи были успешно занесены в Redmine")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user