from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def fix_deleted_resources():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202411061247_fix_deleted_resources )
    """
    print('Запуск патча fix_deleted_resources')

    _filter = [
        ['cache_status_type', '!=', 'CLOSED'],
        ['cmf_deleted', '==', False],
        ['OR',
            ['responsible.cmf_deleted', '==', True],
            ['executors', 'EXISTS', ['cmf_deleted', '==', True]]
        ]
    ]
    _fields = ['executors.cmf_deleted', 'responsible.cmf_deleted']

    for task in models.CmfTask.list(filter=_filter, fields=_fields, include_deleted=True):
        removed = []
        if task.responsible and task.responsible.cmf_deleted:
            removed.append(task.responsible.value)
        removed += [executor for executor in task.executors if executor.cmf_deleted]

        models.CmfTaskResAssign.sync_task_resources(task=task, removed_resources=removed)

        cmf_commit()

if __name__ == "__main__":
    fix_deleted_resources()
