from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def cust_field():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202405061025_cust_field )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча cust_field')
    for cust_field in tqdm(models.CmfCustField.list(fields=['default'])):
        if not isinstance(cust_field.default.value, dict) or 'value' not in cust_field.default:
            cust_field.default = dict(value=cust_field.default.value)
    for cust_field in tqdm(models.CmfCustFieldConfField.list(fields=['default'])):
        if not isinstance(cust_field.default, dict) or 'value' not in cust_field.default:
            cust_field.default = dict(value=cust_field.default.value)
    models.CmfTask.custom_field_sync()


if __name__ == "__main__":
    cust_field()
