from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def calendar_calc_from_until():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202409241508_calendar_calc_from_until )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча calendar_calc_from')
    for calendar in tqdm(models.CmfCalendar.list(include_system=True)):
        calc_from = models.CmfCalendarDay.get(parent=calendar, order_by=['date'], fields=['date']).date.value
        calc_until = models.CmfCalendarDay.get(parent=calendar, order_by=['-date'], fields=['date']).date.value
        calendar.calc_from = calc_from
        calendar.calc_until = calc_until
        calendar.save(only_data=True, emit=False, notify=False)

if __name__ == "__main__":
    calendar_calc_from_until()
