90 lines
2.4 KiB
Python
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 DevGroup, Session
|
||
|
|
|
||
|
|
class DevGroupManager(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(DevGroup, 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(DevGroup, 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(DevGroup, 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(DevGroup, id, data)
|
||
|
|
return ok
|
||
|
|
|
||
|
|
@pyqtSlot(str, result=bool)
|
||
|
|
@pyqtSlot(list, result=bool)
|
||
|
|
def delete(self, id):
|
||
|
|
if isinstance(id, str):
|
||
|
|
ok,res = Session.deleteById(DevGroup, id)
|
||
|
|
return ok
|
||
|
|
else:
|
||
|
|
ok,res = Session.deleteByIds(DevGroup, id)
|
||
|
|
return ok
|
||
|
|
|
||
|
|
@pyqtSlot(str, result=QVariant)
|
||
|
|
@pyqtSlot(str, result=list)
|
||
|
|
def getInfo(self, id = "all"):
|
||
|
|
if id == "all":
|
||
|
|
ok,res = Session.queryByAll(DevGroup)
|
||
|
|
if ok:
|
||
|
|
return res
|
||
|
|
else:
|
||
|
|
return []
|
||
|
|
else:
|
||
|
|
ok,res = Session.queryById(DevGroup, id)
|
||
|
|
if ok:
|
||
|
|
return res
|
||
|
|
return None
|
||
|
|
|
||
|
|
devGroupManager = DevGroupManager()
|
||
|
|
|
||
|
|
|