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


@app_context(commit=True)
def patch():
    """
    Для тестирования патча: ( cd /opt/crm; python3 -m patch.20220XXXXXXX_PATCHNAME )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Проставляем у шаблонов logic_prefix')
    for model in (models.CmfDocument, models.CmfTask):
        for obj in tqdm(model.list(is_template=True, fields=['logic_type', 'parent', 'parent.logic_type'])):
            obj.parent.is_changed = True
            lt = obj.logic_type.value
            obj.logic_type = None
            obj.logic_type = lt
            obj._calc_parent_logic_prefix()
            obj._calc_scheme_wf()
            obj.save(only_data=True)


if __name__ == "__main__":
    patch()
