import datetime as dt
from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def calendar_timezone():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202310131225_calendar_timezone )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча calendar_timezone')
    with cmfutil.disable_acl(), cmfutil.disable_notify():
        tz = dt.datetime.now().astimezone().tzinfo
        tz_in_seconds = int(dt.datetime.now(tz).utcoffset().total_seconds())

        calendars = models.CmfCalendar.list(filter=['timezone', '=', None])
        for calendar in tqdm(calendars):
            calendar.timezone = tz_in_seconds
            calendar.save(only_data=True)


if __name__ == "__main__":
    calendar_timezone()
