from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def hidden_custom_choice():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202308041637_hidden_custom_choice )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    # Патч пересоздан!
    exit(0)
    print('Запуск патча hidden_custom_choice')
    models.CmfTask.custom_field_sync()
    for model_name in vars(models):
        # кастомным таблицам надо поля cmf_hidden добавить
        if model_name.startswith('CmfTaskCf') and model_name.endswith('Ch'):
            model =  vars(models)[model_name]
            try:
                print(f'Добавляем поле в {model_name}')
                model.dp.data_driver.add_custom_column(model.tablename, 'cmf_hidden', fields.CmfBool)
                commit_all_ds()
            except Exception as e:
                print(e)
                rollback_all_ds()


if __name__ == "__main__":
    hidden_custom_choice()
