from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def rename_old_sd_wf_add_new():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202401121432_rename_old_sd_wf_add_new )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    
    from cmf.system_data import scaffold_workflow, scaffold_scheme_wf, scaffold_status_codes

    print('Запуск патча rename_old_sd_wf_add_new')
    wfs = models.CmfWorkflow.list(filter=[
        ['code', 'LIKE', 'task.sd\_%'],
        ['system', '=', True]
    ])
    for wf in wfs:
        if not wf.name.startswith("(Устаревший)"):
            wf.name = f"(Устаревший) {wf.name}"
            wf.save(only_data=True)

    scheme_wf = models.CmfSchemeWf.get(code='servicedesk:default')
    scheme_wf.name = f"(Устаревшая) {scheme_wf.name}"
    scheme_wf.code = 'servicedesk-old202401:default'
    scheme_wf.save(only_data=True)

    scaffold_status_codes()
    scaffold_workflow()
    scaffold_scheme_wf()

if __name__ == "__main__":
    rename_old_sd_wf_add_new()
