from patch.include import *
from tqdm import tqdm
from common.models.cmf_active_entity import CmfActiveEntity

@app_context(commit=True)
def patch():
    """
    Для тестирования патча: ( cd /opt/crm; python3 -m patch.20220XXXXXXX_PATCHNAME )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    for model in tqdm(CmfActiveEntity.iter_subclasses()):
        if model.ui_name.lower() != 'crud':
            for obj in model.list(filter=['ui_view_form', '==', 'crud'], fields=['ui_view_form']):
                obj.ui_view_form = model.ui_name.lower()
                obj.save(only_data=True)
        commit_all_ds()



if __name__ == "__main__":
    patch()
