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

2 years ago
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)