from .kimaiapi import ( KimaiAPI, Customer as KimaiAPICustomer, Project as KimaiAPIProject, Activity as KimaiAPIActivity, Tag as KimaiAPITag, ) from .db import ( KimaiTag, db, KimaiProject, KimaiCustomer, KimaiActivity, ) def sync() -> None: api = KimaiAPI() KimaiCustomer.delete().execute() KimaiProject.delete().execute() KimaiActivity.delete().execute() KimaiTag.delete().execute() customers = KimaiAPICustomer.list(api) with db.atomic(): KimaiCustomer.insert_many( [ { "id": customer.id, "name": customer.name, "visible": customer.visible, } for customer in customers ] ).execute() projects = KimaiAPIProject.list(api) with db.atomic(): KimaiProject.insert_many( [ { "id": project.id, "name": project.name, "customer_id": project.customer.id, "allow_global_activities": project.allow_global_activities, "visible": project.visible, } for project in projects ] ).execute() activities = KimaiAPIActivity.list(api) with db.atomic(): KimaiActivity.insert_many( [ { "id": activity.id, "name": activity.name, "project_id": (activity.project.id if activity.project else None), "visible": activity.visible, } for activity in activities ] ).execute() tags = KimaiAPITag.list(api) with db.atomic(): KimaiTag.insert_many( [ { "id": tag.id, "name": tag.name, "visible": tag.visible, } for tag in tags ] ).execute()