from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def patch():
    """
    Для тестирования патча: ( cd /opt/crm; python3 -m patch.202205230433_tree_parent_set )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...

    Патч заполняет даты status_in_progress_start - 'Дата начала работы'
    """
    for task in models.CmfTask.list(filter=['AND',
                                            ["status_in_progress_start", "==", None],
                                            ["status_closed_at", "==", None],
                                            ["cache_status_type", "!=", "open"],
                                            ["is_template", "==", False]],
                                    fields=["status_in_progress_start", "status_modified_at", "cmf_created_at"]):
        if task.status_modified_at.value:
            task.status_in_progress_start.value = task.status_modified_at.value
        else:
            task.status_in_progress_start.value = task.cmf_created_at.value
        task.save(only_data=True)


if __name__ == "__main__":
    patch()
