Получить список подзадач проблемы, используя модуль Python Redmine

Я пишу скрипт на Python с использованием модуля python-redmine для автоматизации создания проблемы в инструменте Redmine для отслеживания задач проекта.

С помощью документации по python-redmine было довольно легко создавать проблемы и выполнять подзадачи под ними. Также очень просто получить родительскую проблему данной проблемы с помощью атрибута parent.

Теперь, для данной проблемы, я хотел бы получить список связанных подзадач, а затем извлечь атрибуты, такие как, дата начала и окончания подзадачи, чтобы объединить их с основной проблемой.

Я нашел длинное решение, как указано ниже.

>>>from redmine import Redmine
>>>projt = redmine.project.get('redmine_test')
>>>projt.issues
>>> for iss in projt.issues:
...   try:
...     print(iss.id,':',iss.parent)
...   except:
...     pass
...
4341 : 4335
4340 : 4335
4339 : 4335
4299 : 4297
4298 : 4297
4212 : 4211
4211 : 4187

Из этой подзадачи проблемы могут быть перечислены, например, проблема 4335 имеет подзадачи 4339, 4340 и 4341.

Есть ли какой-нибудь другой более простой способ?

1 ответ

Решение

У вас есть 2 варианта получения заданий для детей:

1) Это предпочтительный вариант, потому что он возвратит все подзадачи за один вызов:

issue = redmine.issue.get(105, include='children')
issue.children
<redmine.resultsets.ResourceSet object with Issue resources>

2) Вы можете использовать по требованию включает в себя:

issue = redmine.issue.get(105)
issue.children
<redmine.resultsets.ResourceSet object with Issue resources>

Разница в том, что в первом случае вы получите подзадачи за один вызов Redmine, а во втором - второй вызов Redmine, когда вы начнете работать с issue.children,

Для вашего примера вам придется использовать второй вариант, потому что вы получаете все проблемы проекта, а не одну.

Другие вопросы по тегам