import datetime as dt

from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def previous_3_years_calendar():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202309221609_previous_3_years_calendar )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча previous_3_years_calendar')
    with cmfutil.disable_acl(), cmfutil.disable_notify():
        from_year = dt.datetime.now().year - 1
        to_year = from_year - 3

        calendars = models.CmfCalendar.list()
        for calendar in tqdm(calendars):
            for year in range(from_year, to_year, -1):
                models.CmfCalendar.calc_one_year(calendar, year)


if __name__ == "__main__":
    previous_3_years_calendar()
