from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def fix_project_ext_id():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202503131306_fix_project_ext_id )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча fix_project_ext_id')
    projects = models.CmfProject.list(
        filter=[
            ["ext_id", "NOT LIKE", "::%::"],
            ["cmf_import", "!=", None],
        ],
        fields=["ext_id"],
    )
    for project in tqdm(projects):
        project.ext_id = f"::{project.ext_id}::"
        project.save(only_data=True)


if __name__ == "__main__":
    fix_project_ext_id()
