from patch.include import *
from tqdm import tqdm


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

    while True:
        users = models.CmfPerson.list(filter=['calendar', '==', None], limit=500)

        if not users:
            break

        for user in users:
            user.calendar = default_calendar
            user.save(only_data=True, emit=False, notify=False)

        commit_all_ds()

if __name__ == "__main__":
    default_person_calendar()
