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()):
        ...
    """
    count = 0
    for person_var in tqdm(models.CmfPersonVar.list(fields=['person', 'cmf_owner'])):
        if person_var.person and person_var.person != person_var.cmf_owner:
            count += 1
            print(f'Fix PersonVar owner for {person_var.person}')
            person_var.cmf_owner = person_var.person
            person_var.save(only_data=True)
    print(f'Total fixed {count}')


if __name__ == "__main__":
    patch()
