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
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)
|