#!/opt/homebrew/bin/python3 # -*- coding:utf-8 -*- import json import uuid from PyQt6 import * from PyQt6.QtCore import * from logs import log from typing import Union from models import TaskGroup, Session class TaskGroupManager(QObject): def __init__(self, parent=None): super().__init__() @pyqtSlot(QVariant, result=str) def create(self, param): if not type(param) == dict: param = param.toVariant() param["id"] = str(uuid.uuid4()) ok, res = Session.addByClass(TaskGroup, param) if ok: return str(res["id"]) return "" @pyqtSlot(QVariant, result=str) def create_from_json(self, param): if not isinstance(param, dict): param = param.toVariant() data = { "id": param["id"], "name": param["name"] } ok, res = Session.addByClass(TaskGroup, data) if ok: return str(res["id"]) return "" @pyqtSlot(QVariant, result=str) def create_from_git_json(self, param): if not isinstance(param, dict): param = param.toVariant() data = { "id": param["id"], "name": param["name"] } ok, res = Session.addByClassFromGit(TaskGroup, data) if ok: return str(res["id"]) return "" @pyqtSlot(str, QVariant, result=bool) def update(self, id, param=None): if not type(param) == dict: param = param.toVariant() data = {} if "name" in param: data["name"] = param["name"] ok,res = Session.updateById(TaskGroup, id, data) return ok @pyqtSlot(str, result=bool) @pyqtSlot(list, result=bool) def delete(self, id): if isinstance(id, str): ok,res = Session.deleteById(TaskGroup, id) return ok else: ok,res = Session.deleteByIds(TaskGroup, id) return ok @pyqtSlot(str, result=QVariant) @pyqtSlot(str, result=list) def getInfo(self, id = "all"): if id == "all": ok,res = Session.queryByAll(TaskGroup) if ok: return res else: return [] else: ok,res = Session.queryById(TaskGroup, id) if ok: return res return None taskGroupManager = TaskGroupManager()