from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def sd_wf_rule_fix():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202311071159_sd_wf_rule_fix )
    Добавляет лоджик тайп для согласования, исправляет запись
    """
    print('Запуск патча sd_wf_rule_fix')
    
    with cmfutil.disable_acl(), cmfutil.disable_notify():
        from cmf.system_data import scaffold_logic_type
        scaffold_logic_type()
        commit_all_ds()
        
        lt = models.CmfLogicType.get(code='task.sd_service_request_approve:default')

        wfr = models.CmfSchemeWfRule.get(filter=[
            ['scheme_wf.code', '=', 'servicedesk:default'],
            ['logic_type.code', '=', 'task.sd_service_request:default'],
            ['target_workflow.code', '=', 'task.sd_service_request_with_approvals:default']
        ])
        if wfr:
            wfr.logic_type = lt
            wfr.save(only_data=True)

if __name__ == "__main__":
    sd_wf_rule_fix()
