from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def create_registry_requirement_for_projects():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202506041339_create_registry_requirement_for_projects )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча create_registry_requirement_for_projects')
    # обходим все agile, kanban, wiki проекты и создаём для них реджистри Требований
    limit = 100
    start = 0
    while True:
        projects = models.CmfProject.list(
            filter=['logic_prefix', 'IN', ['project.kanban', 'project.agile', 'project.wiki']],
            include_deleted=False,
            slice=[start, start + limit],
            order_by=['id']
        )

        start += limit
        if not projects:
            break

        for project in projects:
            project.scaffold_req_registry()

if __name__ == "__main__":
    create_registry_requirement_for_projects()
