from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def update_sla_cycles():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202403281142_update_sla_cycles )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    print('Запуск патча update_sla_cycles')
    limit = 100
    start = 0
    while True:
        cycles = models.CmfSDeskSlaCycle.list(
            filter=['current', '=', False],
            slice=[start, start + limit]
        )
        start += limit
        if not cycles:
            break

        for cycle in tqdm(cycles):
            cycle.show_cycle = False
            cycle.save(only_data=True)


if __name__ == "__main__":
    update_sla_cycles()
