from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def fix_sprints():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202310091518_fix_sprints )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча fix_sprints')
    step = 1000
    _filter = [['cache_status_type', '==', 'IN_PROGRESS'], ['workflow', '!=', None]]
    cnt = models.CmfList.count(filter=_filter)
    i = 0
    while i*step<cnt:
        for sprint in tqdm(models.CmfList.list(filter=_filter, slice=[step*i, step*i + step])):
            if models.CmfListHistoryOTR.count(task_list_id=sprint.id) > 0:
                continue
            print(f'Стартуем {sprint}')
            sprint.do_start()
            commit_all_ds()
        i += 1
        

if __name__ == "__main__":
    fix_sprints()
