from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def do_patch():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202507312245_evatest_for_old_projects )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print(f'Запуск патча {__file__}')
    for handler in tqdm(models.CmfMailHandler.list(
                filter=[
                    ['parent.logic_prefix', '=', 'project.servicedesk'],
                    ['parent.servicedesk_public', '=', False],
                    ['allow_non_project_clients', '=', False],
                ],
    )):
        handler.allow_non_project_clients = True
        handler.save_data()


if __name__ == "__main__":
    do_patch()
