from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def fix_custom_field_default():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202502181632_fix_custom_field_default )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча fix_custom_field_default')
    for f in tqdm(models.CmfCustField.list(fields=['default'], filter=[['default', '!=', None], ['field_type','==', 'CmfBool']])):
        if f.default.value.get('value', -1) is None:
            print(f'Исправили поле {f.name}')
            f.default['value'] = False
            f.save()
    models.CmfTask.custom_field_sync()


if __name__ == "__main__":
    fix_custom_field_default()
