def __init__(self): super().__init__() global ts ts = TranslatedStrings() self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setWindowTitle(ts("Iniciar Sesión")) self.setMinimumWidth(380) self.layout = QGridLayout(self) self.setLayout(self.layout) self.lbl_bhp = QLabel(self) self.lbl_bhp.setPixmap( QPixmap(utils.ruta_absoluta('resources/logos/bhp.png'))) self.lbl_bhp.setAlignment(Qt.AlignCenter) self.layout.addWidget(self.lbl_bhp, 0, 0, 1, -1) self.lbl_title = QLabel(ts("Herramienta OVCC")) self.lbl_title.setFont(QFont('SansSerif', 14)) self.lbl_title.setAlignment(Qt.AlignCenter) self.lbl_title.setStyleSheet("QLabel {color: #E35302;}") self.layout.addWidget(self.lbl_title, 1, 0, 1, -1) self.lbl_idioma = QLabel(ts("Idioma"), self) self.lbl_idioma.setFixedWidth(130) self.lbl_idioma.setAlignment(Qt.AlignLeft) self.layout.addWidget(self.lbl_idioma, 2, 0) self.switch = SwitchButton(w1="ES", w2="EN") self.switch.toggled.connect(self.toggle_language) self.layout.addWidget(self.switch, 2, 1) self.lbl_usuario = QLabel(ts("Nombre de Usuario"), self) self.layout.addWidget(self.lbl_usuario, 3, 0) self.txt_usuario = QLineEdit(self) self.lbl_usuario.setBuddy(self.txt_usuario) self.lbl_usuario.setAlignment(Qt.AlignLeft) self.layout.addWidget(self.txt_usuario, 3, 1) self.txt_password = QLineEdit(self) self.txt_password.setEchoMode(QLineEdit.Password) self.lbl_password = QLabel(ts("Contraseña"), self) self.lbl_password.setBuddy(self.txt_password) self.lbl_password.setAlignment(Qt.AlignLeft) self.layout.addWidget(self.lbl_password, 4, 0) self.layout.addWidget(self.txt_password, 4, 1) self.btn_continuar = QPushButton(ts("Continuar"), self) self.layout.addWidget(self.btn_continuar, 5, 0, 1, -1)
def __init__(self, dc, data): super().__init__() ts = TranslatedStrings() ts.set_lang() self.dc = dc self.data = data #print(data) self.setWindowTitle(ts("Tabla Score OVCC")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setMinimumSize(QSize(570, 620)) self.table_model = QStandardItemModel(self) self.table_model.setHorizontalHeaderLabels( [ts("Riesgo"), ts('Controles'), ts('OVCC Asignadas')]) for i in self.data.to_dict('records'): self.table_model.appendRow([ QStandardItem(i['Riesgo Material']), QStandardItem(str(i["q Control"])), QStandardItem(str(int(i["OVCC asignadas (Riesgo)"]))), ]) self.table_view = QTableView(self) # Create a self.table_view self.table_view.setModel(self.table_model) self.table_view.setAlternatingRowColors(True) self.table_view.setSelectionMode(QAbstractItemView.NoSelection) self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows) self.table_view.resizeRowsToContents() self.table_view.horizontalHeader().resizeSection(0, 250) self.table_view.horizontalHeader().resizeSection(1, 80) self.table_view.horizontalHeader().resizeSection(2, 80) self.table_view.horizontalHeader().resizeSection(3, 80) self.table_view.horizontalHeader().setStretchLastSection(True) self.table_view.setEditTriggers(QTableWidget.NoEditTriggers) self.btn_continuar = QPushButton(ts('Continuar'), self) self.btn_continuar.setFixedSize(180, 40) self.btn_atras = QPushButton(ts('Atrás'), self) self.btn_atras.setFixedSize(180, 40) self.grid = QGridLayout(self) self.grid.addWidget(self.table_view, 0, 0, 1, -1) self.grid.addWidget(self.btn_continuar, 1, 2) self.grid.addWidget(self.btn_atras, 1, 0) self.setLayout(self.grid)
def __init__(self, dc, data, fecha): super().__init__() ts = TranslatedStrings() ts.set_lang() self.dc = dc self.data = data self.setWindowTitle(ts("Asignación de OVCC")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) table_header = [ ts("Riesgo"), ts('Control'), ts('Observaciones asignadas') ] """ , (fecha.toPython()).strftime('%Y-%m-%d'), (fecha.toPython()+timedelta(days=7)).strftime('%Y-%m-%d'), (fecha.toPython()+timedelta(days=14)).strftime('%Y-%m-%d'), (fecha.toPython()+timedelta(days=21)).strftime('%Y-%m-%d') ] """ self.table_model = CCTableModel(self, self.generate_table_data(), table_header) self.table_view = QTableView(self) # Create a self.table_view self.table_view.setModel(self.table_model) self.table_view.setAlternatingRowColors(True) self.table_view.setSelectionMode(QAbstractItemView.NoSelection) self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows) self.table_view.resizeRowsToContents() self.table_view.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.table_view.horizontalHeader().setStretchLastSection(True) self.btn_continuar = QPushButton(ts('Continuar'), self) self.btn_continuar.setFixedSize(180, 40) self.btn_continuar.clicked.connect( lambda l: print(self.get_input_data)) self.btn_atras = QPushButton(ts('Atrás'), self) self.btn_atras.setFixedSize(180, 40) self.grid = QGridLayout(self) self.grid.addWidget(self.table_view, 0, 0, 1, -1) self.grid.addWidget(self.btn_continuar, 1, 2) self.grid.addWidget(self.btn_atras, 1, 0) self.setLayout(self.grid)
def mostrar_popup(self, msg=None): self.msg = QMessageBox() self.msg.setIcon(QMessageBox.Warning) self.msg.setWindowTitle("ERROR") self.msg.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) if not msg: self.msg.setText(ts("Solo se pueden asignar 4 OVCC máximo")) else: self.msg.setText(msg) self.msg.setStandardButtons(QMessageBox.Ok) self.msg.show()
def __init__(self, parent, desc, processor, cmb=False): super(FileWidget, self).__init__() global ts ts = TranslatedStrings() self.archivo = None self.setMinimumSize(300, 45) self.desc = desc self.processor = processor self.cmb = cmb widget_layout = QHBoxLayout() self.btn_cargar = QPushButton(ts("Cargar {}").format(desc), self) self.btn_cargar.clicked.connect(self.click_cargar) self.btn_cargar.setFixedWidth(180) widget_layout.addWidget(self.btn_cargar) self.img_check = QLabel(self) pixmap = QPixmap(utils.ruta_absoluta('resources/icons/file_ok.png')) self.img_check.setPixmap(pixmap) self.img_check.setVisible(False) widget_layout.addWidget(self.img_check) widget_layout.addStretch() btn_borrar_text = ts("Borrar Todo") if self.cmb: self.cmb_meses = QComboBox() self.cmb_meses.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.cmb_meses.addItems(self.processor.meses) widget_layout.addWidget(self.cmb_meses) self.lbl_ultima_fecha = QLabel() #self.lbl_ultima_fecha.setText('Ningún mes seleccionado') widget_layout.addWidget(self.lbl_ultima_fecha) btn_borrar_text = ts("Borrar Mes") self.btn_borrar = QPushButton(self) self.btn_borrar.setText(btn_borrar_text) self.btn_borrar.setMaximumWidth(110) self.btn_borrar.clicked.connect(self.click_borrar) widget_layout.addWidget(self.btn_borrar) self.setLayout(widget_layout)
def __init__(self, dc): super().__init__() global ts ts = TranslatedStrings() self.dc = dc self.grid = QGridLayout(self) self.setLayout(self.grid) self.setWindowTitle(ts("Ingreso Personal")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setMinimumSize(QSize(560, 420)) self.archivos = dict() self.w_personal = FileWidget(self, ts("Personal"), self.dc.personal, cmb=False) self.w_personal.sig_archivo_agregado.connect(self.slot_personal_agregar) self.w_personal.sig_archivo_agregado.connect(self.create_table) self.w_personal.sig_archivo_eliminado.connect(self.slot_personal_eliminar) self.grid.addWidget(self.w_personal, 0, 0, 1, -1) self.lbl_selected = QLabel(self) self.lbl_selected.setFont(QFont('SansSerif', 12)) self.lbl_selected.setText("") self.grid.addWidget(self.lbl_selected, 2, 0, 1, -1) self.btn_continuar = QPushButton(ts("Continuar"), self) self.btn_continuar.clicked.connect(self.continuar) #self.btn_atras = QPushButton(ts("Atrás"), self) self.btn_ejemplo = QPushButton(ts("Formato Personal"),self) self.btn_ejemplo.clicked.connect(self.click_ejemplo) self.grid.addWidget(self.btn_continuar, 4, 1) self.grid.addWidget(self.btn_ejemplo, 1, 0) #self.grid.addWidget(self.btn_atras, 3, 0) self.create_table() self.msg = None
def __init__(self, datacontroler, score_count_): super().__init__() ts = TranslatedStrings() ts.set_lang() self.dc = datacontroler self.score_count = score_count_ self.inner_widget = QWidget(self) self.tab = QTabWidget(self) gs = self.dc.gg.GrScore(dc=self.dc, op=self.dc.op, risk_count_=self.score_count, parent=self.inner_widget, width=5, height=15, dpi=10000) try: gp = self.dc.gg.GrPred(dc=self.dc, op=self.dc.op, risk_count_=self.dc.predictivo.datos, parent=self.inner_widget, width=5, height=15, dpi=10000) self.tab.addTab(gp, ts("Modelo Predictivo")) except: pass self.setWindowTitle(ts("Ranking para Riesgos Materiales")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.grid = QGridLayout(self) self.btn_atras = QPushButton(ts("Cerrar"), self) self.btn_atras.clicked.connect(self.hide) self.tab.addTab(gs, ts("Modelo Score")) self.grid.addWidget(self.tab, 0, 0, 1, 2) self.grid.addWidget(self.btn_atras, 2, 0) self.setLayout(self.grid)
def __init__(self, dc, riesgos): super().__init__() global ts ts = TranslatedStrings() self.dc = dc self.riesgos = riesgos self.setWindowTitle(ts("Selección de Riesgos")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setMinimumSize(QSize(560, 620)) self.tree = QTreeWidget() self.tree.setColumnCount(1) self.tree.setHeaderLabel(ts("Riesgos en {}").format(self.dc.op)) self.tree.insertTopLevelItems(0, self.gen_items()) self.tree.setAlternatingRowColors(True) self.tree.itemClicked.connect(self.update_lbl_selected) self.grid = QGridLayout(self) self.setLayout(self.grid) self.lbl_numselected = QLabel("Selected: ", self) self.btn_continuar = QPushButton(ts("Continuar"), self) self.btn_atras = QPushButton(ts("Atrás"), self) self.btn_perfil = QPushButton(ts("Algoritmo utilizado"), self) self.btn_grafico = QPushButton(ts("Mostrar Gráficos"), self) self.btn_grafico.clicked.connect(self.update_lbl_selected) # |col|row|colspan|rowspan| self.grid.addWidget(self.btn_perfil, 0, 0) self.grid.addWidget(self.btn_grafico, 0, 1) self.grid.addWidget(self.lbl_numselected, 0, 2) self.grid.addWidget(self.tree, 1, 0, 1, -1) self.grid.addWidget(self.btn_continuar, 2, 2) self.grid.addWidget(self.btn_atras, 2, 0) self.update_lbl_selected()
def __init__(self, dc): super().__init__() global ts ts = TranslatedStrings() ts.set_lang() self.title = ts("Carga de Archivos") self.archivos = dict() self.dc = dc self.setWindowIcon( QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setWindowTitle(self.title) window_layout = QGridLayout() self.setLayout(window_layout) self.setMinimumWidth(500) """ Imágenes """ lbl_bhp = QLabel(self) pixmap = QPixmap(utils.ruta_absoluta('resources/logos/bhp.png')) lbl_bhp.setPixmap(pixmap) lbl_bhp.setMinimumWidth(220) lbl_tsr = QLabel(self) pixmap2 = QPixmap(utils.ruta_absoluta('resources/logos/tsr.png')) lbl_tsr.setPixmap(pixmap2) lbl_tsr.setMinimumWidth(220) window_layout.addWidget(lbl_bhp, 0, 0, 1, 2) window_layout.addWidget(lbl_tsr, 0, 2) """ Selectores de Archivos """ self.w_ovcc = FileWidget(self, ts("OVCC"), self.dc.ovcc, cmb=True) self.w_eventos = FileWidget(self, ts("Eventos"), self.dc.eventos, cmb=True) self.w_riesgos = FileWidget(self, ts("Perfil de Riesgos"), self.dc.riesgos, cmb=False) self.w_predictivo = FileWidget(self, ts("Modelo Predictivo"), self.dc.predictivo, cmb=False) self.w_flexms = FileWidget(self, ts("Llave Flex EMS"), self.dc.predictivo, cmb=False) self.w_ovcc.sig_archivo_agregado.connect(self.slot_ovcc_agregar) self.w_eventos.sig_archivo_agregado.connect(self.slot_eventos_agregar) self.w_riesgos.sig_archivo_agregado.connect(self.slot_riesgos_agregar) self.w_predictivo.sig_archivo_agregado.connect( self.slot_predictivo_agregar) self.w_flexms.sig_archivo_agregado.connect(self.slot_flexms_agregar) self.w_ovcc.sig_archivo_eliminado.connect(self.slot_ovcc_eliminar) self.w_eventos.sig_archivo_eliminado.connect( self.slot_eventos_eliminar) self.w_riesgos.sig_archivo_eliminado.connect( self.slot_riesgos_eliminar) self.w_predictivo.sig_archivo_eliminado.connect( self.slot_predictivo_eliminar) self.w_flexms.sig_archivo_eliminado.connect(self.slot_flexms_eliminar) window_layout.addWidget(self.w_ovcc, 1, 0, 1, -1) window_layout.addWidget(self.w_eventos, 2, 0, 1, -1) window_layout.addWidget(self.w_predictivo, 3, 0, 1, -1) window_layout.addWidget(self.w_riesgos, 4, 0, 1, -1) window_layout.addWidget(self.w_flexms, 5, 0, 1, -1) """ Boton continuar """ self.lbl_cmbmes = QLabel(self) self.lbl_cmbmes.setText(ts("Meses disponibles para el análisis")) self.cmb_mes = QComboBox(self) self.cmb_mes.addItems(self.dc.meses) self.btn_continuar = QPushButton(ts('Continuar'), self) self.btn_continuar.setFixedSize(180, 40) window_layout.addWidget(self.lbl_cmbmes, 6, 0) window_layout.addWidget(self.cmb_mes, 6, 1) window_layout.addWidget(self.btn_continuar, 6, 2)
def load_json(self): with open(utils.ruta_absoluta("strings.json"), encoding='utf-8') as j: return json.load(j)
def __init__(self, pc, dc, data, fecha): super().__init__() global ts ts = TranslatedStrings() self.pc = pc self.dc = dc self.data = data self.fecha = fecha # print(data) self.setWindowTitle(ts("Exportar CSV")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) #self.setMinimumSize(QSize(570, 620)) self.table_model = QStandardItemModel(self) #self.table_model.setHorizontalHeaderLabels() for i in self.data.to_dict('records'): self.table_model.appendRow([ QStandardItem(str(i['ID persona'])), QStandardItem(str(i['Nombre'])), QStandardItem(str(i['Riesgo / Control Nombre_1'])), #QStandardItem(str(i['ID de la Control_1'])), QStandardItem(str(i['Riesgo / Control Nombre_2'])), #QStandardItem(str(i['ID de la Control_2'])), QStandardItem(str(i['Riesgo / Control Nombre_3'])), #QStandardItem(str(i['ID de la Control_3'])), QStandardItem(str(i['Riesgo / Control Nombre_4'])), #QStandardItem(str(i['ID de la Control_4'])), ]) self.table_model.setHorizontalHeaderLabels([ ts("ID persona"), ts('Nombre'), ts('Riesgo / Control Nombre_1'), #ts('ID de la Control_1'), ts('Riesgo / Control Nombre_2'), #ts('ID de la Control_2'), ts('Riesgo / Control Nombre_3'), #ts('ID de la Control_3'), ts('Riesgo / Control Nombre_4'), #ts('ID de la Control_4')] ]) self.table_view = QTableView(self) # Create a self.table_view self.table_view.setModel(self.table_model) self.table_view.setAlternatingRowColors(True) self.table_view.setSelectionMode(QAbstractItemView.NoSelection) self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows) self.table_view.resizeRowsToContents() #self.table_view.horizontalHeader().resizeSection(0, 250) #self.table_view.horizontalHeader().resizeSection(1, 80) #self.table_view.horizontalHeader().resizeSection(2, 80) #self.table_view.horizontalHeader().resizeSection(3, 80) self.table_view.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.table_view.horizontalHeader().setStretchLastSection(True) self.table_view.setEditTriggers(QTableWidget.NoEditTriggers) self.btn_continuar = QPushButton(ts('Exportar'), self) self.btn_continuar.clicked.connect(self.click_export) self.btn_continuar.setFixedSize(180, 40) self.btn_atras = QPushButton(ts('Atrás'), self) self.btn_atras.setFixedSize(180, 40) self.grid = QGridLayout(self) self.grid.addWidget(self.table_view, 0, 0, 1, -1) self.grid.addWidget(self.btn_continuar, 1, 2) self.grid.addWidget(self.btn_atras, 1, 0) self.setLayout(self.grid)
def __init__(self, dc): super().__init__() global ts ts = TranslatedStrings() self.dc = dc self.setWindowTitle(ts("Algoritmo utilizado para Riesgos")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setMinimumSize(QSize(950, 650)) self.grid = QGridLayout(self) self.setLayout(self.grid) # Preparacion de datos datos = self.dc.riesgos.datos.copy() pred = self.dc.predictivo.datos.copy() if self.dc.op != ' ': datos = datos.loc[datos["Operation"] == str(self.dc.op)] datos = datos.loc[:, ["Asset", "Operation", "Riesgo" ]].drop_duplicates() else: datos = datos.loc[datos["Asset"] == str(self.dc.asset)] datos["Operation"].replace(np.nan, ' ', inplace=True) datos = datos.loc[datos["Operation"] == ' '] datos = datos.loc[:, ["Asset", "Operation", "Riesgo" ]].drop_duplicates() pred = pred.loc[pred["Gerencia General"] == str(self.dc.op)] pred = pred["Riesgo Estandarizado"] self.table = QTableWidget(self) self.table.setColumnCount(datos.columns.size + 2) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) check = QIcon(utils.ruta_absoluta('resources/icons/ok.png')) #Generecion de tabla self.table.setRowCount(len(datos.index)) for i in range(len(datos.index)): for j in range(len(datos.columns)): self.table.setItem(i, j, QTableWidgetItem(str(datos.iloc[i, j]))) if pred.str.contains(str(datos.iloc[i, 2])).any(): check_item = QTableWidgetItem() check_item.setIcon(check) self.table.setItem(i, 3, check_item) else: check_item = QTableWidgetItem() check_item.setIcon(check) self.table.setItem(i, 4, check_item) headerlb = [ ts('Asset'), ts("Gerencia General"), ts("Riesgo"), ts("Modelo Predictivo"), ts("Modelo Score") ] self.table.setHorizontalHeaderLabels(headerlb) header = self.table.horizontalHeader() header.setSectionResizeMode(QHeaderView.ResizeToContents) header.setSectionResizeMode(2, QHeaderView.Stretch) self.btn_atras = QPushButton(ts("Cerrar"), self) self.btn_atras.clicked.connect(self.hide) self.grid.addWidget(self.table, 0, 0) self.grid.addWidget(self.btn_atras, 1, 0)
def __init__(self, dc): super().__init__() global ts ts = TranslatedStrings() self.dc = dc self.archivos = dict() self.setWindowTitle(ts("Filtrar registros")) self.setWindowIcon(\ QIcon(utils.ruta_absoluta('resources/icons/tsr.png'))) self.setSizeGripEnabled(False) self.setModal(True) self.grid = QGridLayout(self) lbl_bhp = QLabel(self) pixmap = QPixmap(utils.ruta_absoluta('resources/logos/bhp.png')) lbl_bhp.setPixmap(pixmap) self.grid.addWidget(lbl_bhp, 0, 0) lbl_tsr = QLabel(self) pixmap2 = QPixmap(utils.ruta_absoluta('resources/logos/tsr.png')) lbl_tsr.setPixmap(pixmap2) self.grid.addWidget(lbl_tsr, 0, 1) self.filtro_1 = None self.filtro_2 = None self.filtro_3 = None ### #Filtro para Región ### self.lbl_f1 = QLabel(ts("Región"), self) self.grid.addWidget(self.lbl_f1, 1, 0) self.cmb_filtro1 = QComboBox(self) self.cmb_filtro1.addItems(list(utils.region())) self.cmb_filtro1.currentTextChanged.connect(self.filtro1_selected) self.grid.addWidget(self.cmb_filtro1, 1, 1) ### #Filtro Gerencia ### self.lbl_f2 = QLabel(ts("Gerencia"), self) self.grid.addWidget(self.lbl_f2, 2, 0) self.cmb_filtro2 = QComboBox(self) self.cmb_filtro2.addItems(list( utils.asset(self.cmb_filtro1.currentText()))) self.cmb_filtro2.currentTextChanged.connect(self.filtro2_selected) self.grid.addWidget(self.cmb_filtro2, 2, 1) ### #Filtro Gerencia General ### self.lbl_f3 = QLabel(ts("Gerencia General"), self) self.grid.addWidget(self.lbl_f3, 3, 0) self.cmb_filtro3 = QComboBox(self) self.cmb_filtro3.addItems(list( utils.operation(self.cmb_filtro2.currentText()))) self.grid.addWidget(self.cmb_filtro3, 3, 1) ### #Filtro Dia-mes ### self.lbl_c1 = QLabel(ts("Seleccionar Fecha Inicio Programación OVCC")) self.grid.addWidget(self.lbl_c1, 5, 0) fecha_actual = QDate.currentDate() self.calendar = QCalendarWidget(self) if fecha_actual.dayOfWeek() == 1: self.calendar.setMinimumDate(fecha_actual) self.calendar.setSelectedDate(fecha_actual) else: dif = -(fecha_actual.dayOfWeek() - 1) fecha_actual = fecha_actual.addDays(dif) self.calendar.setMinimumDate(fecha_actual.addDays(7)) self.calendar.setSelectedDate(fecha_actual.addDays(7)) self.calendar.setFirstDayOfWeek(Qt.Monday) self.calendar.setVerticalHeaderFormat(QCalendarWidget.VerticalHeaderFormat.NoVerticalHeader) self.calendar.clicked.connect(self.date_filter) self.grid.addWidget(self.calendar, 5, 1) ### #Botones ### self.btn_continuar = QPushButton(ts("Continuar"), self) self.btn_continuar.clicked.connect(self.filtrar) self.grid.addWidget(self.btn_continuar, 6, 1) self.btn_atras = QPushButton(ts("Atrás"), self) self.grid.addWidget(self.btn_atras, 6, 0) ### #Creacion layout ### self.setLayout(self.grid)