from patch.include import *
from tqdm import tqdm


def remove_folders():
    filter = [
        'OR',
        [
            ['sys_type', '=', 'dates'],
            ['name', '=', 'Даты'],
        ],
        [
            ['sys_type', '=', 'tags'],
            ['name', '=', 'Тэги'],
        ],
    ]

    while True:
        folders = models.CmfFolder.list(filter=filter, slice=[0, 100])

        if not folders:
            return
        
        for folder in folders:
            folder.delete(notify=False, recursive=True)

        cmf_commit()

    
def remove_active_entity_filters():
    filter = [
        ['sys_type', '=', 'not_approved'],
        ['name', '=', '#Согласовать'],
    ]

    while True:
        objs = models.CmfActiveEntityFilter.list(filter=filter, slice=[0, 100])

        if not objs:
            return
        
        for obj in objs:
            obj.delete(notify=False, recursive=True)

        cmf_commit()


@app_context(commit=True)
def removing_backlog_subfolders():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202410081334_removing_backlog_subfolders )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча removing_backlog_subfolders')

    remove_folders()
    remove_active_entity_filters()


if __name__ == "__main__":
    removing_backlog_subfolders()
