from patch.include import *
from tqdm import tqdm


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

    with cmfutil.disable_acl(), cmfutil.disable_notify():
        default_scheme = models.CmfAssetScheme.get(asset_code_prefix = "AST")
        if default_scheme:
            for asset in models.CmfAsset.list(parent=None):                
                asset.parent = default_scheme
                asset.save(only_data=True, emit=False, notify=False)

            for asset_type in models.CmfAssetType.list(parent=None):                
                asset_type.parent = default_scheme
                asset_type.save(only_data=True, emit=False, notify=False)


if __name__ == "__main__":
    assets_defaultparent()
