from copy import copy

from patch.include import *


@app_context(commit=True)
def patch():
    """
    Генерируем nested связи
    :return:
    """
    cards = models.CmfCard.list(
        filter=[["status", "==", "open"], ["pinned", "==", True]]
    )

    tasks = models.CmfTask.list(
        filter=[
            ["id", "IN", [card.obj_id.value for card in cards]],
            [
                "status_id",
                "IN",
                [
                    "CmfStatus:00000000-0000-0000-0000-000000000004",
                    "CmfStatus:00000000-0000-0000-0000-000000000014",
                    "CmfStatus:521e5a2c-571a-11eb-adc5-8f86ecd4cdc9",
                    "CmfStatus:521cf0f6-571a-11eb-adc5-8f86ecd4cdc9",
                ],
            ],
        ]
    )

    tasks_ids = set(task.id.value for task in tasks)

    bad_cards = []

    for card in cards:
        if card.obj_id.value in tasks_ids:
            bad_cards.append(card)
    
    for card in bad_cards:
        card.pinned=False
        card.save(only_data=True)

if __name__ == "__main__":
    patch()
