You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.5 KiB
Python

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QGroupBox, QGridLayout, QCheckBox
from DcsUi.userManagement.deleteData import GroupOperatePermission, selectData
from utils.AcountModels import Operation
from utils.core import MainWindowConfig
class myGroupBox(QGroupBox):
def __init__(self, name, key, group_id):
super().__init__()
self.key = key
self.name = name
self.group_id = group_id
self.lis = []
self.map_list = MainWindowConfig.DIC[self.key]
self.checkBox_list = []
self.setTitle(self.name)
self.setCheckable(True)
self.setChecked(False)
self.clicked.connect(self.change)
self.statechecked()
gridLayout = QGridLayout()
positions = [(i, j) for i in range(len(self.map_list) // 5 + 1) for j in range(5)]
for position, name in zip(positions, self.map_list):
checkBox = QCheckBox(name)
self.checkBox_list.append(checkBox)
checkBox.stateChanged.connect(self.operateChangecb)
gridLayout.addWidget(checkBox, *position)
if name in self.select_operations_of_group():
checkBox.setChecked(True)
self.setLayout(gridLayout)
def select_operations_of_group(self):
pass
def statechecked(self):
pass
def operateChangecb(self, state):
pass
def change(self, checked):
pass
class GroupBox(myGroupBox):
def __init__(self, name, key, group_id):
myGroupBox.__init__(self, name, key, group_id)
def select_operations_of_group(self):
return GroupOperatePermission.get_operations_of_group(group_id=self.group_id)
def statechecked(self):
operagroup = selectData.selectOperationGroup(self.group_id)
for i in operagroup:
if i.name in self.map_list:
self.setChecked(True)
self.clicked.connect(self.change)
def operateChangecb(self, state):
checkBox = self.sender()
opera = Operation.get_operation(checkBox.text())
if state == Qt.Checked:
GroupOperatePermission.add_operation_to_group(opera.id, self.group_id)
else:
GroupOperatePermission.delete_operation_from_group(opera.id, self.group_id)
def change(self, checked):
if checked == False:
for i in self.checkBox_list:
i.setChecked(False)
if checked == True:
for j in self.checkBox_list:
j.setChecked(True)