TG-PlatformPlus/taskGroupModel/taskGroupManager.py

90 lines
2.4 KiB
Python

#!/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()