from patch.include import *
from tqdm import tqdm


@app_context(commit=True)
def patch():
    with cmfutil.disable_acl(), cmfutil.disable_notify():
        for doc in models.CmfDocument.list():
            doc.ui_view_form = "document"
            doc.save(only_data=True, emit=False, notify=False)

        for fld in models.CmfFolder.list(fields=["sys_type"]):
            if fld.sys_type == "disk":
                fld.ui_view_form = "disk"
            elif fld.sys_type == "backlog":
                fld.ui_view_form = "backlog"
            elif fld.sys_type == "trash":
                fld.ui_view_form = "trash"
            elif fld.sys_type == "archive":
                fld.ui_view_form = "archive"
            else:
                continue
            fld.save(only_data=True, emit=False, notify=False)

        for lst in models.CmfList.list(fields=["list_type"]):
            lst.ui_view_form = lst.list_type
            if lst.list_type == "classic":
                lst.ui_view_form = "list"
            lst.save(only_data=True, emit=False, notify=False)

        for tsk in models.CmfTask.list(
            filter=["logic_prefix", "IN", ["task.epic", "task.subproject"]]
        ):
            tsk.ui_view_form = "list"
            tsk.save(only_data=True, emit=False, notify=False)

        for tsk in models.CmfTask.list(filter=["logic_prefix", "IN", ["pfeed.base"]]):
            tsk.ui_view_form = "post"
            tsk.save(only_data=True, emit=False, notify=False)

        for rmap in models.CmfRoadmap.list():
            rmap.ui_view_form = "gantt"
            rmap.save(only_data=True, emit=False, notify=False)


if __name__ == "__main__":
    patch()
