from patch.include import *
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()):
        ...
    """
    projectsList = models.CmfProject.list()
    for project in tqdm(projectsList):
        trashcanFolder = models.CmfList.get(parent_id=project.id.value, sys_type='trash', fields=['sys_type'])
        if trashcanFolder:
            trashcanFolder.delete(recursive=True)

        new_trashcan_folder = models.CmfFolder.get(tree_parent=project, name='Корзина', fields=['sys_type'])
        if not new_trashcan_folder:
            project.scaffold_trashcan()
        else:
            if new_trashcan_folder.sys_type != 'trashcan':
                new_trashcan_folder.sys_type = 'trashcan'
                new_trashcan_folder.system = True
                new_trashcan_folder.tree_hidden = True
                new_trashcan_folder.save(only_data=True)


if __name__ == "__main__":
    patch()
